about summary refs log tree commit diff
path: root/pkgs/applications/office
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/office')
-rw-r--r--pkgs/applications/office/beamerpresenter/default.nix1
-rw-r--r--pkgs/applications/office/gtg/default.nix1
-rw-r--r--pkgs/applications/office/jabref/default.nix45
-rw-r--r--pkgs/applications/office/karlender/default.nix6
-rw-r--r--pkgs/applications/office/kbibtex/default.nix6
-rw-r--r--pkgs/applications/office/kitsas/default.nix14
-rw-r--r--pkgs/applications/office/kitsas/qt-512.patch24
-rw-r--r--pkgs/applications/office/ledger/default.nix4
-rw-r--r--pkgs/applications/office/libreoffice/default.nix110
-rw-r--r--pkgs/applications/office/libreoffice/wrapper.nix136
-rw-r--r--pkgs/applications/office/libreoffice/wrapper.sh32
-rw-r--r--pkgs/applications/office/morgen/default.nix4
-rw-r--r--pkgs/applications/office/p3x-onenote/default.nix4
-rw-r--r--pkgs/applications/office/paperless-ngx/default.nix2
-rw-r--r--pkgs/applications/office/pdfmixtool/default.nix11
-rw-r--r--pkgs/applications/office/super-productivity/default.nix4
-rw-r--r--pkgs/applications/office/treesheets/default.nix6
-rw-r--r--pkgs/applications/office/trilium/desktop.nix6
-rw-r--r--pkgs/applications/office/trilium/server.nix4
-rw-r--r--pkgs/applications/office/wpsoffice/default.nix8
-rw-r--r--pkgs/applications/office/zim/default.nix3
-rw-r--r--pkgs/applications/office/zk/default.nix6
22 files changed, 267 insertions, 170 deletions
diff --git a/pkgs/applications/office/beamerpresenter/default.nix b/pkgs/applications/office/beamerpresenter/default.nix
index be794c529ac3b..41607522f73cf 100644
--- a/pkgs/applications/office/beamerpresenter/default.nix
+++ b/pkgs/applications/office/beamerpresenter/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
     qtbase
     qtmultimedia
     qttools
+  ] ++ lib.optionals stdenv.isLinux [
     qtwayland
   ] ++ lib.optionals useMupdf [
     freetype
diff --git a/pkgs/applications/office/gtg/default.nix b/pkgs/applications/office/gtg/default.nix
index 8165cc381c112..44aaa6c7146e0 100644
--- a/pkgs/applications/office/gtg/default.nix
+++ b/pkgs/applications/office/gtg/default.nix
@@ -67,7 +67,6 @@ python3Packages.buildPythonApplication rec {
   '';
 
   format = "other";
-  strictDeps = false; # gobject-introspection does not run with strictDeps (https://github.com/NixOS/nixpkgs/issues/56943)
 
   checkPhase = "xvfb-run pytest ../tests/";
 
diff --git a/pkgs/applications/office/jabref/default.nix b/pkgs/applications/office/jabref/default.nix
index 4f6ef33caec5c..786fa2f4623f5 100644
--- a/pkgs/applications/office/jabref/default.nix
+++ b/pkgs/applications/office/jabref/default.nix
@@ -12,15 +12,27 @@
 , perl
 }:
 
+let
+  versionReplace = {
+    easybind = {
+      snapshot = "2.2.1-SNAPSHOT";
+      pin = "2.2.1-20230117.075740-16";
+    };
+    afterburner = {
+      snapshot = "testmoduleinfo-SNAPSHOT";
+      pin = "0e337d8773";
+    };
+  };
+in
 stdenv.mkDerivation rec {
-  version = "5.7";
+  version = "5.9";
   pname = "jabref";
 
   src = fetchFromGitHub {
     owner = "JabRef";
     repo = "jabref";
     rev = "v${version}";
-    hash = "sha256-wzBaAaxGsMPh64uW+bBOiycYfVCW9H5FCn06r6XdxeE=";
+    hash = "sha256-uACmXas5L1NcxLwllkcbgCCt9bRicpQkiJkhkkVWDDY=";
   };
 
   desktopItems = [
@@ -39,28 +51,37 @@ stdenv.mkDerivation rec {
 
   deps = stdenv.mkDerivation {
     pname = "${pname}-deps";
-    inherit src version;
+    inherit src version postPatch;
 
     nativeBuildInputs = [ gradle perl ];
     buildPhase = ''
       export GRADLE_USER_HOME=$(mktemp -d)
-      gradle --no-daemon downloadDependencies
+      gradle --no-daemon downloadDependencies -Dos.arch=amd64
+      gradle --no-daemon downloadDependencies -Dos.arch=aarch64
     '';
     # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar)
     installPhase = ''
       find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \
         | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/''${\($5 =~ s/-jvm//r)}" #e' \
         | sh
+      mv $out/com/tobiasdiez/easybind/${versionReplace.easybind.pin} \
+        $out/com/tobiasdiez/easybind/${versionReplace.easybind.snapshot}
     '';
     # Don't move info to share/
     forceShare = [ "dummy" ];
     outputHashMode = "recursive";
-    outputHash = {
-      x86_64-linux = "sha256-OicHJVFxHGPE76bEDoLhkEhVcAJmplqjoh2I3nnVaLA=";
-      aarch64-linux = "sha256-8QWmweptL/+pSO6DhfBLaLcBrfKd4TDsDoXs4TgXvew=";
-    }.${stdenv.hostPlatform.system} or (throw "Unsupported system ${stdenv.hostPlatform.system}");
+    outputHash = "sha256-s6GA8iT3UEVuELBgpBvzPJlVX+9DpfOQrEd3KIth8eA=";
   };
 
+  postPatch = ''
+    # Pin the version
+    substituteInPlace build.gradle \
+      --replace 'com.github.JabRef:afterburner.fx:${versionReplace.afterburner.snapshot}' \
+        'com.github.JabRef:afterburner.fx:${versionReplace.afterburner.pin}' \
+      --replace 'com.tobiasdiez:easybind:${versionReplace.easybind.snapshot}' \
+        'com.tobiasdiez:easybind:${versionReplace.easybind.pin}'
+  '';
+
   preBuild = ''
     # Include CSL styles and locales in our build
     cp -r buildres/csl/* src/main/resources/
@@ -114,9 +135,13 @@ stdenv.mkDerivation rec {
     # Resources in the jar can't be found, workaround copied from AUR
     cp -r build/resources $out/share/java/jabref
 
-    # workaround for https://github.com/NixOS/nixpkgs/issues/162064
     tar xf build/distributions/JabRef-${version}.tar -C $out --strip-components=1
-    unzip $out/lib/javafx-web-*-linux${lib.optionalString stdenv.isAarch64 "-aarch64"}.jar libjfxwebkit.so -d $out/lib/
+
+    # remove openjfx libs for other platforms
+    rm $out/lib/javafx-*-win.jar ${lib.optionalString stdenv.isAarch64 "$out/lib/javafx-*-linux.jar"}
+
+    # workaround for https://github.com/NixOS/nixpkgs/issues/162064
+    unzip $out/lib/javafx-web-*.jar libjfxwebkit.so -d $out/lib/
 
     DEFAULT_JVM_OPTS=$(sed -n -E "s/^DEFAULT_JVM_OPTS='(.*)'$/\1/p" $out/bin/JabRef | sed -e "s|\$APP_HOME|$out|g" -e 's/"//g')
     rm $out/bin/*
diff --git a/pkgs/applications/office/karlender/default.nix b/pkgs/applications/office/karlender/default.nix
index ebbb0bbd9f93b..84777373d2d57 100644
--- a/pkgs/applications/office/karlender/default.nix
+++ b/pkgs/applications/office/karlender/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "karlender";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitLab {
     owner = "floers";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-lmNG9B2uO/zitOY/cNjnLRjCn6mSJ3CIpXIXpChDi9A=";
+    hash = "sha256-mtkVdVxO796hZZJrGohNTeZfC43rdvEUgUZvBG92f8c=";
   };
 
-  cargoHash = "sha256-foxl8pqRqEbVwUWUGHmaTGazrwLQxcDJ/RvJE9wIszg=";
+  cargoHash = "sha256-jbdQ1dwTRJuA4F89YfxsO2PaHVef8bvxAj13veDteNM=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/applications/office/kbibtex/default.nix b/pkgs/applications/office/kbibtex/default.nix
index e3e3106b83021..8e799917304e0 100644
--- a/pkgs/applications/office/kbibtex/default.nix
+++ b/pkgs/applications/office/kbibtex/default.nix
@@ -5,7 +5,6 @@
 , extra-cmake-modules
 , shared-mime-info
 # Qt
-, qtnetworkauth
 , qtxmlpatterns
 , qtwebengine
 , qca-qt5
@@ -29,13 +28,13 @@
 
 mkDerivation rec {
   pname = "kbibtex";
-  version = "0.9.3.1";
+  version = "0.9.3.2";
 
   src = let
     majorMinorPatch = lib.concatStringsSep "." (lib.take 3 (lib.splitVersion version));
   in fetchurl {
     url = "mirror://kde/stable/KBibTeX/${majorMinorPatch}/kbibtex-${version}.tar.xz";
-    hash = "sha256-kH/E5xv9dmzM7WrIMlGCo4y0Xv/7XHowELJP3OJz8kQ=";
+    hash = "sha256-BzPCTKMiMnzz2S+jbk4ZbEudyJX5EaTDVY59te/AxFc=";
   };
 
   nativeBuildInputs = [
@@ -44,7 +43,6 @@ mkDerivation rec {
   ];
 
   buildInputs = [
-    qtnetworkauth
     qtxmlpatterns
     qtwebengine
     qca-qt5
diff --git a/pkgs/applications/office/kitsas/default.nix b/pkgs/applications/office/kitsas/default.nix
index bcac1b916fa27..3fd6dd82db90c 100644
--- a/pkgs/applications/office/kitsas/default.nix
+++ b/pkgs/applications/office/kitsas/default.nix
@@ -2,17 +2,19 @@
 
 stdenv.mkDerivation rec {
   pname = "kitsas";
-  version = "3.2.1";
+  version = "4.0.3";
 
   src = fetchFromGitHub {
     owner = "artoh";
     repo = "kitupiikki";
     rev = "v${version}";
-    sha256 = "sha256-1gp6CMoDTAp6ORnuk5wos67zygmE9s2pXwvwcR+Hwgg=";
+    hash = "sha256-7s21++sA4enZFuDVUEAbn7InpyLx6BOwrFdsUzHWK0M=";
   };
 
-  # QList::swapItemsAt was introduced in Qt 5.13
-  patches = lib.optional (lib.versionOlder qtbase.version "5.13") ./qt-512.patch;
+  postPatch = ''
+    substituteInPlace kitsas/kitsas.pro \
+      --replace "LIBS += -L/usr/local/opt/poppler-qt5/lib -lpoppler-qt6" "LIBS += -lpoppler-qt5"
+  '';
 
   nativeBuildInputs = [ pkg-config qmake wrapQtAppsHook ];
 
@@ -26,10 +28,10 @@ stdenv.mkDerivation rec {
 
   qmakeFlags = [ "../kitsas/kitsas.pro" ];
 
-  installPhase = if stdenv.isDarwin then ''
+  installPhase = lib.optionalString stdenv.isDarwin ''
     mkdir -p $out/Applications
     mv kitsas.app $out/Applications
-  '' else ''
+  '' + lib.optionalString (!stdenv.isDarwin) ''
     install -Dm755 kitsas -t $out/bin
     install -Dm644 ../kitsas.svg -t $out/share/icons/hicolor/scalable/apps
     install -Dm644 ../kitsas.png -t $out/share/icons/hicolor/256x256/apps
diff --git a/pkgs/applications/office/kitsas/qt-512.patch b/pkgs/applications/office/kitsas/qt-512.patch
deleted file mode 100644
index b225b933104cf..0000000000000
--- a/pkgs/applications/office/kitsas/qt-512.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git i/kitsas/apuri/siirtoapuri.cpp w/kitsas/apuri/siirtoapuri.cpp
-index 9a2c51f3..9565200f 100644
---- i/kitsas/apuri/siirtoapuri.cpp
-+++ w/kitsas/apuri/siirtoapuri.cpp
-@@ -25,6 +25,7 @@
- #include "db/tositetyyppimodel.h"
- #include "tiliote/tiliotekirjaaja.h"
- 
-+#include <QtAlgorithms>
- #include <QDebug>
- 
- SiirtoApuri::SiirtoApuri(QWidget *parent, Tosite *tosite) :
-@@ -361,8 +362,9 @@ void SiirtoApuri::laskunmaksu()
-         TositeVienti eka = lista.at(0).toMap();        
-         tosite()->asetaPvm(eka.pvm());
-         tosite()->asetaOtsikko( eka.selite() );
--        if( eka.kreditEuro() )
--            lista.swapItemsAt(0,1);
-+        if( eka.kreditEuro() ) {
-+            qSwap(lista.begin()[0], lista.begin()[1]);
-+        }
-         tosite()->viennit()->asetaViennit(lista);
-         reset();
- 
diff --git a/pkgs/applications/office/ledger/default.nix b/pkgs/applications/office/ledger/default.nix
index 181c627f238cd..18257a34c32e2 100644
--- a/pkgs/applications/office/ledger/default.nix
+++ b/pkgs/applications/office/ledger/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ledger";
-  version = "3.3.0";
+  version = "3.3.1";
 
   src = fetchFromGitHub {
     owner  = "ledger";
     repo   = "ledger";
     rev    = "v${version}";
-    hash   = "sha256-0hN6Hpmgwb3naV2K1fxX0OyH0IyCQAh1nZ9TMNAutic=";
+    hash   = "sha256-CnMzsFKBNiXmatgY7aiK8UCqIL6qifA4KbV6BJaza40=";
   };
 
   outputs = [ "out" "dev" ] ++ lib.optionals usePython [ "py" ];
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index 8fa7d6d78a74a..a8a6fb8bf963f 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , fetchurl
 , lib
+, substituteAll
 , pam
 , python3
 , libxslt
@@ -88,7 +89,6 @@
 , gdb
 , commonsLogging
 , librdf_rasqal
-, wrapGAppsHook
 , gnome
 , glib
 , ncurses
@@ -102,15 +102,32 @@
 , mkDerivation ? null
 , qtbase ? null
 , qtx11extras ? null
+, qtwayland ? null
 , ki18n ? null
 , kconfig ? null
 , kcoreaddons ? null
 , kio ? null
 , kwindowsystem ? null
-, wrapQtAppsHook ? null
 , variant ? "fresh"
 , symlinkJoin
 , postgresql
+# The rest are used only in passthru, for the wrapper
+, kauth ? null
+, kcompletion ? null
+, kconfigwidgets ? null
+, kglobalaccel ? null
+, kitemviews ? null
+, knotifications ? null
+, ktextwidgets ? null
+, kwidgetsaddons ? null
+, kxmlgui ? null
+, phonon ? null
+, qtdeclarative ? null
+, qtquickcontrols ? null
+, qtsvg ? null
+, qttools ? null
+, solid ? null
+, sonnet ? null
 } @ args:
 
 assert builtins.elem variant [ "fresh" "still" ];
@@ -137,6 +154,7 @@ let
   mkDrv = if kdeIntegration then mkDerivation else stdenv.mkDerivation;
 
   srcs = {
+    primary = primary-src;
     third_party =
       map (x: ((fetchurl { inherit (x) url sha256 name; }) // { inherit (x) md5name md5; }))
         (importVariant "download.nix" ++ [
@@ -176,10 +194,12 @@ in
 
   outputs = [ "out" "dev" ];
 
-  env.NIX_CFLAGS_COMPILE = toString [
+  env.NIX_CFLAGS_COMPILE = toString ([
     "-I${librdf_rasqal}/include/rasqal" # librdf_redland refers to rasqal.h instead of rasqal/rasqal.h
     "-fno-visibility-inlines-hidden" # https://bugs.documentfoundation.org/show_bug.cgi?id=78174#c10
-  ];
+  ] ++ optionals (stdenv.isLinux && stdenv.isAarch64 && variant == "still") [
+    "-O2" # https://bugs.gentoo.org/727188
+  ]);
 
   tarballPath = "external/tarballs";
 
@@ -354,33 +374,24 @@ in
 
   # It installs only things to $out/lib/libreoffice
   postInstall = ''
-    mkdir -p $out/bin $out/share/desktop
-
-    mkdir -p "$out/share/gsettings-schemas/collected-for-libreoffice/glib-2.0/schemas/"
-
-    for a in sbase scalc sdraw smath swriter simpress soffice unopkg; do
-      ln -s $out/lib/libreoffice/program/$a $out/bin/$a
-    done
-
-    ln -s $out/bin/soffice $out/bin/libreoffice
+    mkdir -p $out/share
     ln -s $out/lib/libreoffice/share/xdg $out/share/applications
 
-    for f in $out/share/applications/*.desktop; do
-      substituteInPlace "$f" \
-        --replace "Exec=libreoffice${major}.${minor}" "Exec=libreoffice"
-    done
-
     cp -r sysui/desktop/icons  "$out/share"
     sed -re 's@Icon=libreoffice(dev)?[0-9.]*-?@Icon=@' -i "$out/share/applications/"*.desktop
 
+    # Install dolphin templates, like debian does
+    install -D extras/source/shellnew/soffice.* --target-directory="$out/share/templates/.source"
+    cp ${substituteAll {src = ./soffice-template.desktop; app="Writer";  ext="odt"; type="text";        }} $out/share/templates/soffice.odt.desktop
+    cp ${substituteAll {src = ./soffice-template.desktop; app="Calc";    ext="ods"; type="spreadsheet"; }} $out/share/templates/soffice.ods.desktop
+    cp ${substituteAll {src = ./soffice-template.desktop; app="Impress"; ext="odp"; type="presentation";}} $out/share/templates/soffice.odp.desktop
+    cp ${substituteAll {src = ./soffice-template.desktop; app="Draw";    ext="odg"; type="drawing";     }} $out/share/templates/soffice.odg.desktop
+
     mkdir -p $dev
     cp -r include $dev
-  '' + optionalString kdeIntegration ''
-    for prog in $out/bin/*; do
-      wrapQtApp $prog
-    done
   '';
 
+  # Wrapping is done in ./wrapper.nix
   dontWrapQtApps = true;
 
   configureFlags = [
@@ -464,8 +475,7 @@ in
     jdk17
     libtool
     pkg-config
-  ]
-  ++ [ (if kdeIntegration then wrapQtAppsHook else wrapGAppsHook) ];
+  ];
 
   buildInputs = with xorg; [
     ArchiveZip
@@ -557,20 +567,56 @@ in
     zip
     zlib
   ]
-  ++ (with gst_all_1; [
-    gst-libav
-    gst-plugins-bad
-    gst-plugins-base
-    gst-plugins-good
-    gst-plugins-ugly
-    gstreamer
-  ])
+  ++ passthru.gst_packages
   ++ optionals kdeIntegration [ qtbase qtx11extras kcoreaddons kio ]
   ++ optionals (lib.versionAtLeast (lib.versions.majorMinor version) "7.4") [ libwebp ];
 
   passthru = {
     inherit srcs;
     jdk = jre';
+    inherit kdeIntegration;
+    # For the wrapper.nix
+    inherit gtk3;
+    # Although present in qtPackages, we need qtbase.qtPluginPrefix and
+    # qtbase.qtQmlPrefix
+    inherit qtbase;
+    gst_packages = with gst_all_1; [
+      gst-libav
+      gst-plugins-bad
+      gst-plugins-base
+      gst-plugins-good
+      gst-plugins-ugly
+      gstreamer
+    ];
+    qmlPackages = [
+      ki18n
+      knotifications
+      qtdeclarative
+      qtquickcontrols
+      qtwayland
+      solid
+      sonnet
+    ];
+    qtPackages = [
+      kauth
+      kcompletion
+      kconfigwidgets
+      kglobalaccel
+      ki18n
+      kio
+      kitemviews
+      ktextwidgets
+      kwidgetsaddons
+      kwindowsystem
+      kxmlgui
+      phonon
+      qtbase
+      qtdeclarative
+      qtsvg
+      qttools
+      qtwayland
+      sonnet
+    ];
   };
 
   requiredSystemFeatures = [ "big-parallel" ];
diff --git a/pkgs/applications/office/libreoffice/wrapper.nix b/pkgs/applications/office/libreoffice/wrapper.nix
index 95206ee6a8c64..13819a0fb5ecd 100644
--- a/pkgs/applications/office/libreoffice/wrapper.nix
+++ b/pkgs/applications/office/libreoffice/wrapper.nix
@@ -1,33 +1,117 @@
-{ lib, runCommand
-, libreoffice, dbus, bash, substituteAll
-, coreutils, gnugrep
-, dolphinTemplates ? true
+{ lib
+, stdenv
+# The unwrapped libreoffice derivation
+, unwrapped
+, makeWrapper
+, runCommand
+, substituteAll
+# For Emulating wrapGAppsHook
+, gsettings-desktop-schemas
+, hicolor-icon-theme
+, dconf
+, librsvg
+, gdk-pixbuf
+# Configuration options for the wrapper
+, extraMakeWrapperArgs ? []
+, dbusVerify ? stdenv.isLinux
+, dbus
 }:
-runCommand libreoffice.name {
-  inherit (libreoffice) jdk meta;
-  inherit coreutils dbus gnugrep libreoffice bash;
-} (''
-  mkdir -p "$out/bin"
-  substituteAll "${./wrapper.sh}" "$out/bin/soffice"
-  chmod a+x "$out/bin/soffice"
 
-  for i in $(ls "${libreoffice}/bin/"); do
-    test "$i" = "soffice" || ln -s soffice "$out/bin/$(basename "$i")"
-  done
+let
+  inherit (unwrapped.srcs.primary) major minor;
 
+  makeWrapperArgs = builtins.concatStringsSep " " ([
+    "--set" "GDK_PIXBUF_MODULE_FILE" "${librsvg}/${gdk-pixbuf.moduleDir}.cache"
+    "--prefix" "GIO_EXTRA_MODULES" ":" "${lib.getLib dconf}/lib/gio/modules"
+    "--prefix" "XDG_DATA_DIRS" ":" "${unwrapped.gtk3}/share/gsettings-schemas/${unwrapped.gtk3.name}"
+    "--prefix" "XDG_DATA_DIRS" ":" "$out/share"
+    "--prefix" "XDG_DATA_DIRS" ":" "${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}"
+    "--prefix" "XDG_DATA_DIRS" ":" "${hicolor-icon-theme}/share"
+    "--prefix" "GST_PLUGIN_SYSTEM_PATH_1_0" ":"
+      "${lib.makeSearchPath "lib/girepository-1.0" unwrapped.gst_packages}"
+  ] ++ lib.optionals unwrapped.kdeIntegration [
+    "--prefix" "QT_PLUGIN_PATH" ":" "${
+      lib.makeSearchPath
+      unwrapped.qtbase.qtPluginPrefix
+      (builtins.map lib.getBin unwrapped.qtPackages)
+    }"
+    "--prefix" "QML2_IMPORT_PATH" ":" "${
+      lib.makeSearchPath unwrapped.qtbase.qtQmlPrefix
+      (builtins.map lib.getBin unwrapped.qmlPackages)
+    }"
+  ] ++ [
+    # Add dictionaries from all NIX_PROFILES
+    "--run" (lib.escapeShellArg ''
+      for PROFILE in $NIX_PROFILES; do
+          HDIR="$PROFILE/share/hunspell"
+          if [ -d "$HDIR" ]; then
+              export DICPATH=$DICPATH''${DICPATH:+:}$HDIR
+          fi
+      done
+    '')
+  ] ++ lib.optionals dbusVerify [
+    # If no dbus is running, start a dedicated dbus daemon
+    "--run" (lib.escapeShellArg ''
+      if ! ( test -n "$DBUS_SESSION_BUS_ADDRESS" ); then
+          dbus_tmp_dir="/run/user/$(id -u)/libreoffice-dbus"
+          if ! test -d "$dbus_tmp_dir" && test -d "/run"; then
+                  mkdir -p "$dbus_tmp_dir"
+          fi
+          if ! test -d "$dbus_tmp_dir"; then
+                  dbus_tmp_dir="/tmp/libreoffice-$(id -u)/libreoffice-dbus"
+                  mkdir -p "$dbus_tmp_dir"
+          fi
+          dbus_socket_dir="$(mktemp -d -p "$dbus_tmp_dir")"
+          "${dbus}"/bin/dbus-daemon \
+            --nopidfile \
+            --nofork \
+            --config-file "${dbus}"/share/dbus-1/session.conf \
+            --address "unix:path=$dbus_socket_dir/session"  &> /dev/null &
+          dbus_pid=$!
+          export DBUS_SESSION_BUS_ADDRESS="unix:path=$dbus_socket_dir/session"
+      fi
+    '')
+  ] ++ [
+    "--chdir" "${unwrapped}/lib/libreoffice/program"
+    "--inherit-argv0"
+  ] ++ extraMakeWrapperArgs
+  );
+in runCommand "${unwrapped.name}-wrapped" {
+  inherit (unwrapped) meta;
+  paths = [ unwrapped ];
+  nativeBuildInputs = [ makeWrapper ];
+  passthru = {
+    inherit unwrapped;
+    # For backwards compatibility:
+    libreoffice = lib.warn "libreoffice: Use the unwrapped attributed, using libreoffice.libreoffice is deprecated." unwrapped;
+    inherit (unwrapped) kdeIntegration;
+  };
+} (''
+  mkdir -p "$out/bin"
   mkdir -p "$out/share"
-  ln -s "${libreoffice}/share"/* $out/share
-'' + lib.optionalString dolphinTemplates ''
-  # Add templates to dolphin "Create new" menu - taken from debian
-
-  # We need to unpack the core source since the necessary files aren't available in the libreoffice output
-  unpackFile "${libreoffice.src}"
+  for dir in ${unwrapped}/share/*; do
+    dirname="''${dir##*/}"
+    if [[ $dirname == "applications" ]]; then
+      cp -r $dir/ $out/share/
+    else
+      ln -s $dir $out/share/
+    fi
+  done
 
-  install -D "${libreoffice.name}"/extras/source/shellnew/soffice.* --target-directory="$out/share/templates/.source"
+  ln -s ${unwrapped}/lib $out/lib
+  for f in $out/share/applications/*.desktop; do
+    substituteInPlace "$f" \
+      --replace "Exec=libreoffice${major}.${minor}" "Exec=soffice"
+  done
 
-  cp ${substituteAll {src = ./soffice-template.desktop; app="Writer";  ext="odt"; type="text";        }} $out/share/templates/soffice.odt.desktop
-  cp ${substituteAll {src = ./soffice-template.desktop; app="Calc";    ext="ods"; type="spreadsheet"; }} $out/share/templates/soffice.ods.desktop
-  cp ${substituteAll {src = ./soffice-template.desktop; app="Impress"; ext="odp"; type="presentation";}} $out/share/templates/soffice.odp.desktop
-  cp ${substituteAll {src = ./soffice-template.desktop; app="Draw";    ext="odg"; type="drawing";     }} $out/share/templates/soffice.odg.desktop
+  for i in sbase scalc sdraw smath swriter simpress soffice unopkg; do
+    makeWrapper ${unwrapped}/lib/libreoffice/program/$i $out/bin/$i ${makeWrapperArgs}
+'' + lib.optionalString dbusVerify ''
+    # Delete the dbus socket directory after libreoffice quits
+    sed -i 's/^exec -a "$0" //g' $out/bin/"$i"
+    echo 'code="$?"' >> $out/bin/$i
+    echo 'test -n "$dbus_socket_dir" && { rm -rf "$dbus_socket_dir"; kill $dbus_pid; }' >> $out/bin/$i
+    echo 'exit "$code"' >> $out/bin/$i
+'' + ''
+  done
 '')
-
diff --git a/pkgs/applications/office/libreoffice/wrapper.sh b/pkgs/applications/office/libreoffice/wrapper.sh
deleted file mode 100644
index 162bede3ec69f..0000000000000
--- a/pkgs/applications/office/libreoffice/wrapper.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!@bash@/bin/bash
-export JAVA_HOME="${JAVA_HOME:-@jdk@}"
-#export SAL_USE_VCLPLUGIN="${SAL_USE_VCLPLUGIN:-gen}"
-
-if "@coreutils@"/bin/uname | "@gnugrep@"/bin/grep Linux > /dev/null &&
-       ! ( test -n "$DBUS_SESSION_BUS_ADDRESS" ); then
-    dbus_tmp_dir="/run/user/$(id -u)/libreoffice-dbus"
-    if ! test -d "$dbus_tmp_dir" && test -d "/run"; then
-            mkdir -p "$dbus_tmp_dir"
-    fi
-    if ! test -d "$dbus_tmp_dir"; then
-            dbus_tmp_dir="/tmp/libreoffice-$(id -u)/libreoffice-dbus"
-            mkdir -p "$dbus_tmp_dir"
-    fi
-    dbus_socket_dir="$(mktemp -d -p "$dbus_tmp_dir")"
-    "@dbus@"/bin/dbus-daemon --nopidfile --nofork --config-file "@dbus@"/share/dbus-1/session.conf --address "unix:path=$dbus_socket_dir/session"  &> /dev/null &
-    dbus_pid=$!
-    export DBUS_SESSION_BUS_ADDRESS="unix:path=$dbus_socket_dir/session"
-fi
-
-for PROFILE in $NIX_PROFILES; do
-    HDIR="$PROFILE/share/hunspell"
-    if [ -d "$HDIR" ]; then
-        export DICPATH=$DICPATH''${DICPATH:+:}$HDIR
-    fi
-done
-
-"@libreoffice@/bin/$("@coreutils@"/bin/basename "$0")" "$@"
-code="$?"
-
-test -n "$dbus_socket_dir" && { rm -rf "$dbus_socket_dir"; kill $dbus_pid; }
-exit "$code"
diff --git a/pkgs/applications/office/morgen/default.nix b/pkgs/applications/office/morgen/default.nix
index a6bb64bbdf7c9..f6e8ac7e64010 100644
--- a/pkgs/applications/office/morgen/default.nix
+++ b/pkgs/applications/office/morgen/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "morgen";
-  version = "2.6.6";
+  version = "2.6.7";
 
   src = fetchurl {
     url = "https://download.todesktop.com/210203cqcj00tw1/morgen-${version}.deb";
-    sha256 = "sha256-hmZeXQneKh3Kca/Goct3KP5q+Ce6lpYWDqFfqbcT644=";
+    sha256 = "sha256-DlwAMA/YEnB9Z6Ry1Hvu9R9TgTw737PLtZfAVEKLjPY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/p3x-onenote/default.nix b/pkgs/applications/office/p3x-onenote/default.nix
index b2554cea7a698..29e4f90a957ff 100644
--- a/pkgs/applications/office/p3x-onenote/default.nix
+++ b/pkgs/applications/office/p3x-onenote/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, appimageTools, desktop-file-utils, fetchurl }:
 
 let
-  version = "2022.10.117";
+  version = "2023.4.117";
   name = "p3x-onenote-${version}";
 
   plat = {
@@ -13,7 +13,7 @@ let
   sha256 = {
     aarch64-linux = "0plpwymm1bgzbzwk2689lw1fadxdwxzzn5dmayk1ayxz1k3pj9wi";
     armv7l-linux = "1pvr8f1ccl4nyfmshn3v3jfaa5x519rsy57g4pdapffj10vpbkb8";
-    x86_64-linux = "12j2py8yb81ngahbkbi7269izpc5aydd432cbv0sw45ighhyqhmr";
+    x86_64-linux = "sha256-hr/mPOrliP8Dej3DVE2+wYkb1J789WCkkY3xe9EcM44=";
   }.${stdenv.hostPlatform.system};
 
   src = fetchurl {
diff --git a/pkgs/applications/office/paperless-ngx/default.nix b/pkgs/applications/office/paperless-ngx/default.nix
index f4535b59cf89e..e2a977cb5407f 100644
--- a/pkgs/applications/office/paperless-ngx/default.nix
+++ b/pkgs/applications/office/paperless-ngx/default.nix
@@ -318,7 +318,7 @@ python.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to scan, index, and archive all of your physical documents";
-    homepage = "https://paperless-ngx.readthedocs.io/";
+    homepage = "https://docs.paperless-ngx.com/";
     changelog = "https://github.com/paperless-ngx/paperless-ngx/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ lukegb gador erikarvstedt ];
diff --git a/pkgs/applications/office/pdfmixtool/default.nix b/pkgs/applications/office/pdfmixtool/default.nix
index c8f6ce6de10f2..f7b58acf22b8d 100644
--- a/pkgs/applications/office/pdfmixtool/default.nix
+++ b/pkgs/applications/office/pdfmixtool/default.nix
@@ -13,13 +13,13 @@
 
 mkDerivation rec {
   pname = "pdfmixtool";
-  version = "1.1";
+  version = "1.1.1";
 
   src = fetchFromGitLab {
     owner = "scarpetta";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-S8hhWZ6nHyIWPwsfl+o9XnljLD3aE/vthCLuWEbm5nc=";
+    hash = "sha256-fgtRKUG6J/CM6cXUTHWAPemqL8loWZT3wZmGdRHldq8=";
   };
 
   nativeBuildInputs = [
@@ -36,12 +36,11 @@ mkDerivation rec {
   ];
 
   patches = [
-    # fix incompatibility with qpdf11
+    # fix incompatibility with qpdf11.3.0 usage of c++17 - delete this patch when we reach pdfmixtool version > v1.1.1
     (fetchpatch {
-      url = "https://gitlab.com/scarpetta/pdfmixtool/-/commit/81f7e96f6e68dfeba3cd4e00d8553dfdd2d7f2fa.diff";
-      hash = "sha256-uBchYjUIqL7dJR7U/TSxhSGu1qY742cFUIv0XKU6L2g=";
+      url = "https://gitlab.com/scarpetta/pdfmixtool/-/commit/bd5f78c3a4d977d9b0c74302ce2521c737189b43.diff";
+      hash = "sha256-h2g5toFqgEEnObd2TYQms1a1WFTgN7VsIHyy0Uyq4/I=";
     })
-
   ];
 
   meta = with lib; {
diff --git a/pkgs/applications/office/super-productivity/default.nix b/pkgs/applications/office/super-productivity/default.nix
index 9b7c58ef5c938..869b72fb8f125 100644
--- a/pkgs/applications/office/super-productivity/default.nix
+++ b/pkgs/applications/office/super-productivity/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "super-productivity";
-  version = "7.12.2";
+  version = "7.13.1";
 
   src = fetchurl {
     url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
-    sha256 = "sha256-iWKe4l3n5e0CWd2h+tUtbPfmTznJb+UuKo3shAUDs1E=";
+    sha256 = "sha256-ZZnyPdwzIX0WNywcD2uYxaDG/cbgU8nyiwe0r3YIrs0=";
     name = "${pname}-${version}.AppImage";
   };
 
diff --git a/pkgs/applications/office/treesheets/default.nix b/pkgs/applications/office/treesheets/default.nix
index a18307c77548c..d6833bcfae888 100644
--- a/pkgs/applications/office/treesheets/default.nix
+++ b/pkgs/applications/office/treesheets/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "treesheets";
-  version = "unstable-2023-02-25";
+  version = "unstable-2023-03-07";
 
   src = fetchFromGitHub {
     owner = "aardappel";
     repo = "treesheets";
-    rev = "e2acd675e6aeac609ae071aa169b2661c1fbd862";
-    sha256 = "y7y9DQ6oy/1EuLl4FAkRJd0zzMRm/2OOvnfWtwpf8AU=";
+    rev = "6672b90aa6310f2a02d9527f500645dd525a8fe3";
+    sha256 = "uf4fSkMGVS1/H5HwKTo0Fp69CjI3C9Bmw07oP9PYvlQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/trilium/desktop.nix b/pkgs/applications/office/trilium/desktop.nix
index e48355660cb21..97f8586894dcd 100644
--- a/pkgs/applications/office/trilium/desktop.nix
+++ b/pkgs/applications/office/trilium/desktop.nix
@@ -6,13 +6,13 @@
 
 let
   pname = "trilium-desktop";
-  version = "0.58.8";
+  version = "0.59.2";
 
   linuxSource.url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
-  linuxSource.sha256 = "03v4a135brj2z1gj2y611pi7szfhr62xxj0qhki0mychypvdfx7i";
+  linuxSource.sha256 = "1mnggfb16vi02dikhnsc3nbdrb0m25f9lch4d1r65lr6svw7sxjp";
 
   darwinSource.url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-mac-x64-${version}.zip";
-  darwinSource.sha256 = "0ncf2cl62hn2ja72fw10s40rzkgcwy77ggs29zpgjjlp9hkk3v8q";
+  darwinSource.sha256 = "0j07yxfgvqn76bfpbqlvabdkbfrhp5g4f58w9gf6g1n9ky7w7dzj";
 
   meta = metaCommon // {
     mainProgram = "trilium";
diff --git a/pkgs/applications/office/trilium/server.nix b/pkgs/applications/office/trilium/server.nix
index 78bae4f4655b8..bb785c4ef4c67 100644
--- a/pkgs/applications/office/trilium/server.nix
+++ b/pkgs/applications/office/trilium/server.nix
@@ -3,8 +3,8 @@
 
 let
   serverSource.url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
-  serverSource.sha256 = "0mkbmb26y99rc22bpxlc3gdgv84rj7wvsva741gw2z0cb3jh4ziv";
-  version = "0.58.8";
+  serverSource.sha256 = "1i7rrzj40ixi4l4hhxdn9n0b8zmm40ycprhaklh9kk39v38rai3y";
+  version = "0.59.2";
 in stdenv.mkDerivation rec {
   pname = "trilium-server";
   inherit version;
diff --git a/pkgs/applications/office/wpsoffice/default.nix b/pkgs/applications/office/wpsoffice/default.nix
index 6aa7c8f78d135..44a16df595eaf 100644
--- a/pkgs/applications/office/wpsoffice/default.nix
+++ b/pkgs/applications/office/wpsoffice/default.nix
@@ -20,14 +20,14 @@
 
 stdenv.mkDerivation rec {
   pname = "wpsoffice";
-  version = "11.1.0.11664";
+  version = "11.1.0.11691";
 
   src = if useChineseVersion then fetchurl {
     url = "https://wps-linux-personal.wpscdn.cn/wps/download/ep/Linux2019/${lib.last (lib.splitString "." version)}/wps-office_${version}_amd64.deb";
-    sha256 = "sha256-D2LhxBMHmQjVExa/63DHdws0V+EmOSlJzGq91jbuJHs=";
+    sha256 = "sha256-ubFYACnsMObde9TGp1tyHtG0n5NxYMFtEbY9KXj62No=";
   } else fetchurl {
-    url = "http://wdl1.pcfg.cache.wpscdn.com/wpsdl/wpsoffice/download/linux/${lib.last (lib.splitString "." version)}/wps-office_${version}.XA_amd64.deb";
-    sha256 = "sha256-9qZGqs4nsB9mWCJTi2x+vWmMF0sEoUYgEzLI//hijfU=";
+    url = "https://wdl1.pcfg.cache.wpscdn.com/wpsdl/wpsoffice/download/linux/${lib.last (lib.splitString "." version)}/wps-office_${version}.XA_amd64.deb";
+    sha256 = "sha256-F1foPaDd4YiAcCePleKsABjFzsb2Uv+Lkja+58pnquI=";
   };
 
   unpackCmd = "dpkg -x $src .";
diff --git a/pkgs/applications/office/zim/default.nix b/pkgs/applications/office/zim/default.nix
index 73c94f7339c68..c20c9449ae842 100644
--- a/pkgs/applications/office/zim/default.nix
+++ b/pkgs/applications/office/zim/default.nix
@@ -14,9 +14,8 @@ python3Packages.buildPythonApplication rec {
     sha256 = "sha256-iOF11/fhQYlvnpWJidJS1yJVavF7xLxvBl59VCh9A4U=";
   };
 
-  buildInputs = [ gtk3 gobject-introspection gnome.adwaita-icon-theme ];
+  buildInputs = [ gtk3 gnome.adwaita-icon-theme ];
   propagatedBuildInputs = with python3Packages; [ pyxdg pygobject3 ];
-  # see https://github.com/NixOS/nixpkgs/issues/56943#issuecomment-1131643663
   nativeBuildInputs = [ gobject-introspection wrapGAppsHook ];
 
   dontWrapGApps = true;
diff --git a/pkgs/applications/office/zk/default.nix b/pkgs/applications/office/zk/default.nix
index a6e1909a28806..d2a49bd578faf 100644
--- a/pkgs/applications/office/zk/default.nix
+++ b/pkgs/applications/office/zk/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "zk";
-  version = "0.12.0";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "mickael-menu";
     repo = "zk";
     rev = "v${version}";
-    sha256 = "sha256-F56jbYVbKegy38MIaEZvmeqp++bz37wFnHswkXt45t0=";
+    sha256 = "sha256-Q1MU2NGeVjBNnwoAWuoO18xhtt+bdQ2ms37tHnW+R94=";
   };
 
-  vendorSha256 = "sha256-11GzI3aEhKKTiULoWq9uIc66E3YCrW/HJQUYXRhCaek=";
+  vendorHash = "sha256-11GzI3aEhKKTiULoWq9uIc66E3YCrW/HJQUYXRhCaek=";
 
   doCheck = false;