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/abiword/default.nix4
-rw-r--r--pkgs/applications/office/activitywatch/default.nix2
-rw-r--r--pkgs/applications/office/agenda/default.nix6
-rw-r--r--pkgs/applications/office/appflowy/default.nix107
-rw-r--r--pkgs/applications/office/atlassian-cli/default.nix2
-rw-r--r--pkgs/applications/office/autokey/default.nix8
-rw-r--r--pkgs/applications/office/banana-accounting/default.nix5
-rw-r--r--pkgs/applications/office/banking/default.nix1
-rw-r--r--pkgs/applications/office/beamerpresenter/default.nix8
-rw-r--r--pkgs/applications/office/beancount/beancount_share.nix5
-rw-r--r--pkgs/applications/office/beebeep/default.nix2
-rw-r--r--pkgs/applications/office/bookworm/default.nix6
-rw-r--r--pkgs/applications/office/calligra/default.nix2
-rw-r--r--pkgs/applications/office/clockify/default.nix4
-rw-r--r--pkgs/applications/office/cutemarked-ng/default.nix3
-rw-r--r--pkgs/applications/office/docear/default.nix2
-rw-r--r--pkgs/applications/office/documenso/default.nix8
-rw-r--r--pkgs/applications/office/endeavour/default.nix4
-rw-r--r--pkgs/applications/office/espanso/Cargo.lock1104
-rw-r--r--pkgs/applications/office/espanso/default.nix67
-rw-r--r--pkgs/applications/office/espanso/inject-wx-on-darwin.patch223
-rw-r--r--pkgs/applications/office/fava/default.nix56
-rw-r--r--pkgs/applications/office/foliate/default.nix2
-rw-r--r--pkgs/applications/office/gnote/default.nix8
-rw-r--r--pkgs/applications/office/gnucash/0001-disable-date-and-time-tests.patch43
-rw-r--r--pkgs/applications/office/gnucash/0002-disable-gnc-fq-update.patch18
-rw-r--r--pkgs/applications/office/gnucash/0003-remove-valgrind.patch34
-rw-r--r--pkgs/applications/office/gnucash/0004-exec-fq-wrapper.patch52
-rw-r--r--pkgs/applications/office/gnucash/default.nix165
-rwxr-xr-xpkgs/applications/office/gnucash/update.sh24
-rw-r--r--pkgs/applications/office/gnumeric/default.nix8
-rw-r--r--pkgs/applications/office/grisbi/default.nix10
-rw-r--r--pkgs/applications/office/gtg/default.nix6
-rw-r--r--pkgs/applications/office/homebank/default.nix23
-rw-r--r--pkgs/applications/office/ib/controller/default.nix164
-rw-r--r--pkgs/applications/office/ib/tws/default.nix95
-rw-r--r--pkgs/applications/office/jabref/default.nix112
-rw-r--r--pkgs/applications/office/jabref/deps.json2143
-rw-r--r--pkgs/applications/office/jameica/default.nix4
-rw-r--r--pkgs/applications/office/kexi/default.nix2
-rw-r--r--pkgs/applications/office/kitsas/default.nix4
-rw-r--r--pkgs/applications/office/ktimetracker/default.nix2
-rw-r--r--pkgs/applications/office/ledger-autosync/default.nix67
-rw-r--r--pkgs/applications/office/ledger-web/default.nix2
-rw-r--r--pkgs/applications/office/libreoffice/0001-Strip-away-BUILDCONFIG.patch32
-rw-r--r--pkgs/applications/office/libreoffice/darwin/default.nix16
-rw-r--r--pkgs/applications/office/libreoffice/default.nix646
-rw-r--r--pkgs/applications/office/libreoffice/dont-detect-qt-paths-from-qmake.patch22
-rw-r--r--pkgs/applications/office/libreoffice/fix-unpack-collabora.patch10
-rwxr-xr-xpkgs/applications/office/libreoffice/generate-libreoffice-srcs.py22
-rw-r--r--pkgs/applications/office/libreoffice/readd-explicit-zlib-link.patch36
-rw-r--r--pkgs/applications/office/libreoffice/skip-broken-tests-collabora.patch65
-rw-r--r--pkgs/applications/office/libreoffice/skip-broken-tests-fresh.patch93
-rw-r--r--pkgs/applications/office/libreoffice/skip-broken-tests-still.patch69
-rw-r--r--pkgs/applications/office/libreoffice/skip-broken-tests.patch116
-rw-r--r--pkgs/applications/office/libreoffice/src-collabora/deps.nix1087
-rw-r--r--pkgs/applications/office/libreoffice/src-collabora/help.nix6
-rw-r--r--pkgs/applications/office/libreoffice/src-collabora/main.nix7
-rw-r--r--pkgs/applications/office/libreoffice/src-collabora/translations.nix6
-rw-r--r--pkgs/applications/office/libreoffice/src-collabora/version.nix1
-rw-r--r--pkgs/applications/office/libreoffice/src-fresh/deps.nix505
-rw-r--r--pkgs/applications/office/libreoffice/src-fresh/help.nix7
-rw-r--r--pkgs/applications/office/libreoffice/src-fresh/main.nix7
-rw-r--r--pkgs/applications/office/libreoffice/src-fresh/translations.nix7
-rw-r--r--pkgs/applications/office/libreoffice/src-fresh/version.nix2
-rw-r--r--pkgs/applications/office/libreoffice/src-still/deps.nix432
-rw-r--r--pkgs/applications/office/libreoffice/src-still/help.nix7
-rw-r--r--pkgs/applications/office/libreoffice/src-still/main.nix7
-rw-r--r--pkgs/applications/office/libreoffice/src-still/translations.nix7
-rw-r--r--pkgs/applications/office/libreoffice/src-still/version.nix2
-rwxr-xr-xpkgs/applications/office/libreoffice/update.sh128
-rw-r--r--pkgs/applications/office/libreoffice/wrapper.nix13
-rw-r--r--pkgs/applications/office/mendeley/default.nix8
-rw-r--r--pkgs/applications/office/micropad/default.nix142
-rw-r--r--pkgs/applications/office/micropad/package.json117
-rwxr-xr-xpkgs/applications/office/micropad/update.sh24
-rw-r--r--pkgs/applications/office/mmex/default.nix6
-rw-r--r--pkgs/applications/office/morgen/default.nix6
-rw-r--r--pkgs/applications/office/notes-up/default.nix4
-rw-r--r--pkgs/applications/office/notes/default.nix51
-rw-r--r--pkgs/applications/office/notion-app-enhanced/default.nix2
-rw-r--r--pkgs/applications/office/osmo/default.nix6
-rw-r--r--pkgs/applications/office/p3x-onenote/default.nix4
-rw-r--r--pkgs/applications/office/paperless-ngx/default.nix37
-rw-r--r--pkgs/applications/office/paperwork/paperwork-backend.nix8
-rw-r--r--pkgs/applications/office/paperwork/paperwork-gtk.nix12
-rw-r--r--pkgs/applications/office/paperwork/src.nix4
-rw-r--r--pkgs/applications/office/pdfmixtool/default.nix2
-rw-r--r--pkgs/applications/office/pdfmm/default.nix6
-rw-r--r--pkgs/applications/office/pinpoint/default.nix2
-rw-r--r--pkgs/applications/office/planify/default.nix14
-rw-r--r--pkgs/applications/office/portfolio/default.nix80
-rw-r--r--pkgs/applications/office/pympress/default.nix16
-rw-r--r--pkgs/applications/office/qownnotes/default.nix15
-rw-r--r--pkgs/applications/office/qpdfview/default.nix5
-rw-r--r--pkgs/applications/office/rime-cli/default.nix2
-rw-r--r--pkgs/applications/office/roam-research/common.nix8
-rw-r--r--pkgs/applications/office/roam-research/darwin.nix6
-rw-r--r--pkgs/applications/office/roam-research/linux.nix2
-rw-r--r--pkgs/applications/office/scribus/default.nix5
-rw-r--r--pkgs/applications/office/semantik/default.nix5
-rw-r--r--pkgs/applications/office/skrooge/default.nix2
-rw-r--r--pkgs/applications/office/softmaker/generic.nix4
-rw-r--r--pkgs/applications/office/spice-up/default.nix4
-rw-r--r--pkgs/applications/office/super-productivity/default.nix7
-rw-r--r--pkgs/applications/office/tagainijisho/default.nix2
-rw-r--r--pkgs/applications/office/teapot/001-fix-warning.patch11
-rw-r--r--pkgs/applications/office/teapot/002-remove-help.patch49
-rw-r--r--pkgs/applications/office/teapot/default.nix80
-rw-r--r--pkgs/applications/office/ticktick/default.nix12
-rw-r--r--pkgs/applications/office/timeline/default.nix4
-rw-r--r--pkgs/applications/office/timetrap/default.nix3
-rw-r--r--pkgs/applications/office/timeular/default.nix9
-rw-r--r--pkgs/applications/office/todoman/default.nix3
-rw-r--r--pkgs/applications/office/treesheets/default.nix14
-rw-r--r--pkgs/applications/office/trilium/desktop.nix10
-rw-r--r--pkgs/applications/office/trilium/server.nix4
-rw-r--r--pkgs/applications/office/tryton/default.nix33
-rw-r--r--pkgs/applications/office/tusk/default.nix2
-rw-r--r--pkgs/applications/office/vnote/default.nix43
-rw-r--r--pkgs/applications/office/watson/default.nix2
-rw-r--r--pkgs/applications/office/wpsoffice/default.nix13
-rw-r--r--pkgs/applications/office/zim/default.nix10
-rw-r--r--pkgs/applications/office/zk/default.nix14
-rw-r--r--pkgs/applications/office/zotero/default.nix118
-rw-r--r--pkgs/applications/office/zotero/zotero.sh3
-rw-r--r--pkgs/applications/office/zotero/zotero_7.nix153
127 files changed, 5915 insertions, 3268 deletions
diff --git a/pkgs/applications/office/abiword/default.nix b/pkgs/applications/office/abiword/default.nix
index 0ca18f8e360b5..d03b60da6e733 100644
--- a/pkgs/applications/office/abiword/default.nix
+++ b/pkgs/applications/office/abiword/default.nix
@@ -17,7 +17,7 @@
 , boost
 , libxslt
 , goffice
-, wrapGAppsHook
+, wrapGAppsHook3
 }:
 
 stdenv.mkDerivation rec {
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     pkg-config
-    wrapGAppsHook
+    wrapGAppsHook3
     perl
   ];
 
diff --git a/pkgs/applications/office/activitywatch/default.nix b/pkgs/applications/office/activitywatch/default.nix
index 32c490b0af3dc..54105e7c71017 100644
--- a/pkgs/applications/office/activitywatch/default.nix
+++ b/pkgs/applications/office/activitywatch/default.nix
@@ -240,7 +240,7 @@ rec {
     '';
 
     meta = with lib; {
-      description = "A web-based UI for ActivityWatch, built with Vue.js";
+      description = "Web-based UI for ActivityWatch, built with Vue.js";
       homepage = "https://github.com/ActivityWatch/aw-webui/";
       maintainers = with maintainers; [ huantian ];
       license = licenses.mpl20;
diff --git a/pkgs/applications/office/agenda/default.nix b/pkgs/applications/office/agenda/default.nix
index bcffa8ebf7888..8d06589cb4166 100644
--- a/pkgs/applications/office/agenda/default.nix
+++ b/pkgs/applications/office/agenda/default.nix
@@ -11,7 +11,7 @@
 , glib
 , gtk3
 , libgee
-, wrapGAppsHook
+, wrapGAppsHook3
 }:
 
 stdenv.mkDerivation rec {
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     pkg-config
     python3
     vala
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   buildInputs = [
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A simple, fast, no-nonsense to-do (task) list designed for elementary OS";
+    description = "Simple, fast, no-nonsense to-do (task) list designed for elementary OS";
     homepage = "https://github.com/dahenson/agenda";
     maintainers = with maintainers; [ xiorcale ] ++ teams.pantheon.members;
     platforms = platforms.linux;
diff --git a/pkgs/applications/office/appflowy/default.nix b/pkgs/applications/office/appflowy/default.nix
index 33783ed01b4ba..a7a979ed82d38 100644
--- a/pkgs/applications/office/appflowy/default.nix
+++ b/pkgs/applications/office/appflowy/default.nix
@@ -1,31 +1,46 @@
-{ stdenv
-, lib
-, fetchzip
-, autoPatchelfHook
-, makeWrapper
-, copyDesktopItems
-, makeDesktopItem
-, gtk3
-, xdg-user-dirs
-, keybinder3
-, libnotify
+{
+  stdenvNoCC,
+  lib,
+  fetchzip,
+  autoPatchelfHook,
+  makeWrapper,
+  copyDesktopItems,
+  makeDesktopItem,
+  gtk3,
+  xdg-user-dirs,
+  keybinder3,
+  libnotify,
 }:
 
-stdenv.mkDerivation rec {
+let
+  dist =
+    rec {
+      x86_64-linux = {
+        urlSuffix = "linux-x86_64.tar.gz";
+        hash = "sha256-sQ3dxwPWHLUoWgnR9+oHaFoDzXxtwKRiBvz2wkFB01g=";
+      };
+      x86_64-darwin = {
+        urlSuffix = "macos-universal.zip";
+        hash = "sha256-4bU/qecZBrTr34SZAjDDgwpXAAHDITz6lV6mJGjElko=";
+      };
+      aarch64-darwin = x86_64-darwin;
+    }
+    ."${stdenvNoCC.hostPlatform.system}";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "appflowy";
-  version = "0.5.5";
+  version = "0.6.8";
 
   src = fetchzip {
-    url = "https://github.com/AppFlowy-IO/appflowy/releases/download/${version}/AppFlowy-${version}-linux-x86_64.tar.gz";
-    hash = "sha256-sDA//ARuzU0q2V3jhFXGhaQaeF0jsDRbtdHCBTgIL8U=";
+    url = "https://github.com/AppFlowy-IO/appflowy/releases/download/${finalAttrs.version}/AppFlowy-${finalAttrs.version}-${dist.urlSuffix}";
+    inherit (dist) hash;
     stripRoot = false;
   };
 
   nativeBuildInputs = [
-    autoPatchelfHook
     makeWrapper
     copyDesktopItems
-  ];
+  ] ++ lib.optionals stdenvNoCC.isLinux [ autoPatchelfHook ];
 
   buildInputs = [
     gtk3
@@ -36,35 +51,47 @@ stdenv.mkDerivation rec {
   dontBuild = true;
   dontConfigure = true;
 
-  installPhase = ''
-    runHook preInstall
+  installPhase =
+    lib.optionalString stdenvNoCC.isLinux ''
+      runHook preInstall
+
+      cd AppFlowy/
+
+      mkdir -p $out/{bin,opt}
 
-    cd AppFlowy/
+      # Copy archive contents to the outpout directory
+      cp -r ./* $out/opt/
 
-    mkdir -p $out/opt/
-    mkdir -p $out/bin/
+      # Copy icon
+      install -Dm444 data/flutter_assets/assets/images/flowy_logo.svg $out/share/icons/hicolor/scalable/apps/appflowy.svg
 
-    # Copy archive contents to the outpout directory
-    cp -r ./* $out/opt/
+      runHook postInstall
+    ''
+    + lib.optionalString stdenvNoCC.isDarwin ''
+      runHook preInstall
 
-    # Copy icon
-    install -Dm444 data/flutter_assets/assets/images/flowy_logo.svg $out/share/icons/hicolor/scalable/apps/appflowy.svg
+      mkdir -p $out/{Applications,bin}
+      cp -r ./AppFlowy.app $out/Applications/
 
-    runHook postInstall
-  '';
+      runHook postInstall
+    '';
 
-  preFixup = ''
-    # Add missing libraries to appflowy using the ones it comes with
-    makeWrapper $out/opt/AppFlowy $out/bin/appflowy \
-      --set LD_LIBRARY_PATH "$out/opt/lib/" \
-      --prefix PATH : "${lib.makeBinPath [ xdg-user-dirs ]}"
-  '';
+  preFixup =
+    lib.optionalString stdenvNoCC.isLinux ''
+      # Add missing libraries to appflowy using the ones it comes with
+      makeWrapper $out/opt/AppFlowy $out/bin/appflowy \
+        --set LD_LIBRARY_PATH "$out/opt/lib/" \
+        --prefix PATH : "${lib.makeBinPath [ xdg-user-dirs ]}"
+    ''
+    + lib.optionalString stdenvNoCC.isDarwin ''
+      makeWrapper $out/Applications/AppFlowy.app/Contents/MacOS/AppFlowy $out/bin/appflowy
+    '';
 
-  desktopItems = [
+  desktopItems = lib.optionals stdenvNoCC.isLinux [
     (makeDesktopItem {
-      name = pname;
+      name = "appflowy";
       desktopName = "AppFlowy";
-      comment = meta.description;
+      comment = finalAttrs.meta.description;
       exec = "appflowy";
       icon = "appflowy";
       categories = [ "Office" ];
@@ -76,9 +103,9 @@ stdenv.mkDerivation rec {
     homepage = "https://www.appflowy.io/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.agpl3Only;
-    changelog = "https://github.com/AppFlowy-IO/appflowy/releases/tag/${version}";
+    changelog = "https://github.com/AppFlowy-IO/appflowy/releases/tag/${finalAttrs.version}";
     maintainers = with maintainers; [ darkonion0 ];
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "x86_64-linux" ] ++ platforms.darwin;
     mainProgram = "appflowy";
   };
-}
+})
diff --git a/pkgs/applications/office/atlassian-cli/default.nix b/pkgs/applications/office/atlassian-cli/default.nix
index 54a070596dc6e..d6c4db65c1504 100644
--- a/pkgs/applications/office/atlassian-cli/default.nix
+++ b/pkgs/applications/office/atlassian-cli/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An integrated family of CLI’s for various Atlassian applications";
+    description = "Integrated family of CLI’s for various Atlassian applications";
     homepage = "https://bobswift.atlassian.net/wiki/spaces/ACLI/overview";
     license = licenses.unfreeRedistributable;
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
diff --git a/pkgs/applications/office/autokey/default.nix b/pkgs/applications/office/autokey/default.nix
index af8ceeb4b7bed..91700299400a2 100644
--- a/pkgs/applications/office/autokey/default.nix
+++ b/pkgs/applications/office/autokey/default.nix
@@ -1,12 +1,12 @@
 { lib
 , python3Packages
 , fetchFromGitHub
-, wrapGAppsHook
+, wrapGAppsHook3
 , gobject-introspection
 , gtksourceview3
 , libappindicator-gtk3
 , libnotify
-, gnome
+, zenity
 , wmctrl
 }:
 
@@ -24,7 +24,7 @@ python3Packages.buildPythonApplication rec {
   # Tests appear to be broken with import errors within the project structure
   doCheck = false;
 
-  nativeBuildInputs = [ wrapGAppsHook gobject-introspection ];
+  nativeBuildInputs = [ wrapGAppsHook3 gobject-introspection ];
 
   buildInputs = [
     gtksourceview3
@@ -41,7 +41,7 @@ python3Packages.buildPythonApplication rec {
   ];
 
   runtimeDeps = [
-    gnome.zenity
+    zenity
     wmctrl
   ];
 
diff --git a/pkgs/applications/office/banana-accounting/default.nix b/pkgs/applications/office/banana-accounting/default.nix
index e1c5f7fdeb40a..8afc96eaf88ca 100644
--- a/pkgs/applications/office/banana-accounting/default.nix
+++ b/pkgs/applications/office/banana-accounting/default.nix
@@ -1,6 +1,5 @@
 { autoPatchelfHook
 , cairo
-, config
 , e2fsprogs
 , fetchurl
 , gmp
@@ -10,7 +9,7 @@
 , lib
 , stdenv
 , libgcrypt
-, wrapGAppsHook
+, wrapGAppsHook3
 }:
 
 stdenv.mkDerivation {
@@ -40,7 +39,7 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [
     autoPatchelfHook
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   installPhase = ''
diff --git a/pkgs/applications/office/banking/default.nix b/pkgs/applications/office/banking/default.nix
index 1874521cb0cc4..4aa70e81fab48 100644
--- a/pkgs/applications/office/banking/default.nix
+++ b/pkgs/applications/office/banking/default.nix
@@ -1,5 +1,4 @@
 { lib
-, fetchpatch
 , fetchFromGitLab
 , python3
 , appstream-glib
diff --git a/pkgs/applications/office/beamerpresenter/default.nix b/pkgs/applications/office/beamerpresenter/default.nix
index c3e080ad3d524..2749f3577c984 100644
--- a/pkgs/applications/office/beamerpresenter/default.nix
+++ b/pkgs/applications/office/beamerpresenter/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , cmake
 , pkg-config
-, wrapGAppsHook
+, wrapGAppsHook3
 , wrapQtAppsHook
 , gst_all_1
 , qtbase
@@ -28,19 +28,19 @@
 
 stdenv.mkDerivation rec {
   pname = "beamerpresenter";
-  version = "0.2.4";
+  version = "0.2.5";
 
   src = fetchFromGitHub {
     owner = "stiglers-eponym";
     repo = "BeamerPresenter";
     rev = "v${version}";
-    hash = "sha256-UQbyzkFjrIDPcrE6yGuOWsXNjz8jWyJEWiQwHmf91/8=";
+    hash = "sha256-ofS0KMsn0KG8squIvMPxSCgE/qNK+Kd47psNziLBBoo=";
   };
 
   nativeBuildInputs = [
     cmake
     pkg-config
-    wrapGAppsHook
+    wrapGAppsHook3
     wrapQtAppsHook
   ];
 
diff --git a/pkgs/applications/office/beancount/beancount_share.nix b/pkgs/applications/office/beancount/beancount_share.nix
index 5386deff1d0b6..2d702ad8d7ce7 100644
--- a/pkgs/applications/office/beancount/beancount_share.nix
+++ b/pkgs/applications/office/beancount/beancount_share.nix
@@ -1,7 +1,6 @@
 { lib
 , python3
 , fetchFromGitHub
-, fetchpatch
 }:
 
 python3.pkgs.buildPythonApplication rec {
@@ -23,8 +22,10 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://github.com/akuukis/beancount_share";
-    description = "A beancount plugin to share expenses with external partners within one ledger";
+    description = "Beancount plugin to share expenses with external partners within one ledger";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ matthiasbeyer ];
+    broken = true; # At 2024-06-29, missing unpacked dependency
+                   # https://hydra.nixos.org/build/262800507/nixlog/1
   };
 }
diff --git a/pkgs/applications/office/beebeep/default.nix b/pkgs/applications/office/beebeep/default.nix
index 978066b7199a8..63843433b3c54 100644
--- a/pkgs/applications/office/beebeep/default.nix
+++ b/pkgs/applications/office/beebeep/default.nix
@@ -35,7 +35,7 @@ mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.beebeep.net/";
-    description = "BeeBEEP is the free office messenger that is indispensable in all those places where privacy and security are an essential requirement.";
+    description = "BeeBEEP is the free office messenger that is indispensable in all those places where privacy and security are an essential requirement";
     mainProgram = "beebeep";
     platforms = platforms.linux;
     license = licenses.gpl2Only;
diff --git a/pkgs/applications/office/bookworm/default.nix b/pkgs/applications/office/bookworm/default.nix
index 13d3c46c946d1..f35a0e515897a 100644
--- a/pkgs/applications/office/bookworm/default.nix
+++ b/pkgs/applications/office/bookworm/default.nix
@@ -24,7 +24,7 @@
 , unzip
 , vala
 , webkitgtk
-, wrapGAppsHook
+, wrapGAppsHook3
 }:
 
 stdenv.mkDerivation rec {
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
     ninja
     pkg-config
     vala
-    wrapGAppsHook
+    wrapGAppsHook3
     gobject-introspection
   ];
 
@@ -81,7 +81,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple, focused eBook reader";
+    description = "Simple, focused eBook reader";
     mainProgram = "com.github.babluboy.bookworm";
     longDescription = ''
       Read the books you love without having to worry about different format complexities like epub, pdf, mobi, cbr, etc.
diff --git a/pkgs/applications/office/calligra/default.nix b/pkgs/applications/office/calligra/default.nix
index 302419fdcefcf..611336b8a908e 100644
--- a/pkgs/applications/office/calligra/default.nix
+++ b/pkgs/applications/office/calligra/default.nix
@@ -77,7 +77,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A suite of productivity applications";
+    description = "Suite of productivity applications";
     longDescription = ''
       Calligra Suite is a set of applications written to help
       you to accomplish your work. Calligra includes efficient
diff --git a/pkgs/applications/office/clockify/default.nix b/pkgs/applications/office/clockify/default.nix
index 7b2faa6b7d203..8bcd2785bc22c 100644
--- a/pkgs/applications/office/clockify/default.nix
+++ b/pkgs/applications/office/clockify/default.nix
@@ -14,8 +14,6 @@ appimageTools.wrapType2 rec {
   extraInstallCommands =
     let appimageContents = appimageTools.extract { inherit pname version src; };
     in ''
-      mv $out/bin/${pname}-${version} $out/bin/${pname}
-
       install -Dm 444 ${appimageContents}/clockify.desktop -t $out/share/applications
       install -Dm 444 ${appimageContents}/clockify.png -t $out/share/pixmaps
 
@@ -27,7 +25,7 @@ appimageTools.wrapType2 rec {
     description = "Free time tracker and timesheet app that lets you track work hours across projects";
     homepage = "https://clockify.me";
     license = licenses.unfree;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
     mainProgram = "clockify";
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/office/cutemarked-ng/default.nix b/pkgs/applications/office/cutemarked-ng/default.nix
index 79555fc2f1133..2c55edb037aaf 100644
--- a/pkgs/applications/office/cutemarked-ng/default.nix
+++ b/pkgs/applications/office/cutemarked-ng/default.nix
@@ -4,7 +4,6 @@
 , qmake
 , pkg-config
 , qttools
-, qtbase
 , qtwebengine
 , wrapQtAppsHook
 , qmarkdowntextedit
@@ -48,7 +47,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A Qt-based, free and open source markdown editor";
+    description = "Qt-based, free and open source markdown editor";
     mainProgram = "cutemarked";
     homepage = "https://github.com/Waqar144/CuteMarkEd-NG";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/office/docear/default.nix b/pkgs/applications/office/docear/default.nix
index f8cd25ad78435..3f0544d56f6e9 100644
--- a/pkgs/applications/office/docear/default.nix
+++ b/pkgs/applications/office/docear/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
     '';
 
   meta = with lib; {
-    description = "A unique solution to academic literature management";
+    description = "Unique solution to academic literature management";
     homepage = "http://www.docear.org/";
     # Licenses at: http://www.docear.org/software/download/
     license = with licenses; [
diff --git a/pkgs/applications/office/documenso/default.nix b/pkgs/applications/office/documenso/default.nix
index e57e6d0fae215..00ef8c0e7bbea 100644
--- a/pkgs/applications/office/documenso/default.nix
+++ b/pkgs/applications/office/documenso/default.nix
@@ -1,7 +1,7 @@
 { lib
 , fetchFromGitHub
 , buildNpmPackage
-, nodePackages
+, prisma
 , nix-update-script
 }:
 let
@@ -18,12 +18,14 @@ buildNpmPackage {
     hash = "sha256-uKOJVZ0GRHo/CYvd/Ix/tq1WDhutRji1tSGdcITsNlo=";
   };
 
+  nativeBuildInputs = [ prisma ];
+
   preBuild = ''
     # somehow for linux, npm is not finding the prisma package with the
     # packages installed with the lockfile.
     # This generates a prisma version incompatibility warning and is a kludge
     # until the upstream package-lock is modified.
-    ${nodePackages.prisma}/bin/prisma generate
+    prisma generate
   '';
 
   npmDepsHash = "sha256-+JbvFMi8xoyxkuL9k96K1Vq0neciCGkkyZUPd15ES2E=";
@@ -44,7 +46,7 @@ buildNpmPackage {
   passthru.updateScript = nix-update-script {};
 
   meta = with lib; {
-    description = "The Open Source DocuSign Alternative.";
+    description = "Open Source DocuSign Alternative";
     homepage = "https://github.com/documenso/documenso";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/applications/office/endeavour/default.nix b/pkgs/applications/office/endeavour/default.nix
index 851eab538818d..806e024985772 100644
--- a/pkgs/applications/office/endeavour/default.nix
+++ b/pkgs/applications/office/endeavour/default.nix
@@ -6,7 +6,7 @@
 , pkg-config
 , wrapGAppsHook4
 , gettext
-, gnome
+, adwaita-icon-theme
 , glib
 , gtk4
 , wayland
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
     libpeas
     gnome-online-accounts
     gsettings-desktop-schemas
-    gnome.adwaita-icon-theme
+    adwaita-icon-theme
 
     # Plug-ins
     evolution-data-server-gtk4 # eds
diff --git a/pkgs/applications/office/espanso/Cargo.lock b/pkgs/applications/office/espanso/Cargo.lock
index 82f195f1b7b7c..fcceab7b700ab 100644
--- a/pkgs/applications/office/espanso/Cargo.lock
+++ b/pkgs/applications/office/espanso/Cargo.lock
@@ -59,16 +59,16 @@ version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
 dependencies = [
- "hermit-abi",
+ "hermit-abi 0.1.18",
  "libc",
  "winapi 0.3.9",
 ]
 
 [[package]]
 name = "autocfg"
-version = "1.0.1"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "base64"
@@ -77,6 +77,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
 
 [[package]]
+name = "base64"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
+
+[[package]]
 name = "bitflags"
 version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -89,6 +95,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
 
 [[package]]
+name = "bitflags"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+
+[[package]]
 name = "blake2b_simd"
 version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -132,6 +144,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631"
 
 [[package]]
+name = "bytemuck"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
+dependencies = [
+ "bytemuck_derive",
+]
+
+[[package]]
+name = "bytemuck_derive"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60"
+dependencies = [
+ "proc-macro2",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "byteorder"
 version = "1.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -145,9 +177,9 @@ checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
 
 [[package]]
 name = "bzip2"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6afcd980b5f3a45017c57e57a2fcccbb351cc43a356ce117ef760ef8052b89b0"
+checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8"
 dependencies = [
  "bzip2-sys",
  "libc",
@@ -166,12 +198,28 @@ dependencies = [
 
 [[package]]
 name = "calloop"
-version = "0.9.3"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf2eec61efe56aa1e813f5126959296933cf0700030e4314786c48779a66ab82"
+checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
 dependencies = [
+ "bitflags 2.4.1",
  "log",
- "nix 0.22.3",
+ "polling",
+ "rustix",
+ "slab",
+ "thiserror",
+]
+
+[[package]]
+name = "calloop-wayland-source"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02"
+dependencies = [
+ "calloop",
+ "rustix",
+ "wayland-backend",
+ "wayland-client",
 ]
 
 [[package]]
@@ -180,7 +228,7 @@ version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c088f2dddef283f86b023ab1ebe2301c653326834996458b2f48d29b804e9540"
 dependencies = [
- "errno",
+ "errno 0.2.7",
  "libc",
  "thiserror",
 ]
@@ -244,6 +292,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "concurrent-queue"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
 name = "console"
 version = "0.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -259,12 +316,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "const-sha1"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb58b6451e8c2a812ad979ed1d83378caa5e927eef2622017a45f251457c2c9d"
-
-[[package]]
 name = "const_format"
 version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -280,7 +331,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "29c36c619c422113552db4eb28cddba8faa757e33f758cc3415bd2885977b591"
 dependencies = [
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "unicode-xid 0.2.1",
 ]
 
@@ -385,13 +436,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.8"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38"
-dependencies = [
- "cfg-if 1.0.0",
- "lazy_static",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "cstr_core"
@@ -409,7 +456,7 @@ version = "0.1.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5e98e2ad1a782e33928b96fc3948e7c355e5af34ba4de7670fe8bac2a3b2006d"
 dependencies = [
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
@@ -420,6 +467,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
 
 [[package]]
+name = "cursor-icon"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
+
+[[package]]
+name = "dashmap"
+version = "5.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc"
+dependencies = [
+ "cfg-if 1.0.0",
+ "hashbrown 0.12.3",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core",
+]
+
+[[package]]
 name = "dbus"
 version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -495,9 +561,9 @@ dependencies = [
 
 [[package]]
 name = "dlib"
-version = "0.5.0"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794"
+checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
 dependencies = [
  "libloading",
 ]
@@ -553,13 +619,31 @@ version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595"
 dependencies = [
- "heck",
+ "heck 0.3.2",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
 [[package]]
+name = "enum-as-inner"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
 name = "errno"
 version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -571,6 +655,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "errno"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "errno-dragonfly"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -582,7 +676,7 @@ dependencies = [
 
 [[package]]
 name = "espanso"
-version = "2.1.8"
+version = "2.2.1"
 dependencies = [
  "anyhow",
  "caps",
@@ -592,7 +686,7 @@ dependencies = [
  "crossbeam",
  "dialoguer",
  "dirs 3.0.1",
- "enum-as-inner",
+ "enum-as-inner 0.3.3",
  "espanso-clipboard",
  "espanso-config",
  "espanso-detect",
@@ -615,7 +709,6 @@ dependencies = [
  "libc",
  "log",
  "log-panics",
- "maplit",
  "named_pipe",
  "notify",
  "opener",
@@ -638,8 +731,6 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "cc",
- "lazy_static",
- "lazycell",
  "log",
  "thiserror",
  "wait-timeout",
@@ -652,7 +743,7 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "dunce",
- "enum-as-inner",
+ "enum-as-inner 0.6.0",
  "glob",
  "indoc",
  "lazy_static",
@@ -674,7 +765,7 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "cc",
- "enum-as-inner",
+ "enum-as-inner 0.6.0",
  "lazy_static",
  "lazycell",
  "libc",
@@ -695,7 +786,6 @@ dependencies = [
  "html2text",
  "log",
  "markdown",
- "tempdir",
  "thiserror",
 ]
 
@@ -705,10 +795,7 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "cc",
- "lazy_static",
- "lazycell",
  "log",
- "thiserror",
  "widestring",
 ]
 
@@ -718,10 +805,9 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "cc",
- "enum-as-inner",
+ "enum-as-inner 0.6.0",
  "itertools",
  "lazy_static",
- "lazycell",
  "libc",
  "log",
  "regex",
@@ -735,7 +821,6 @@ name = "espanso-ipc"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "crossbeam",
  "log",
  "named_pipe",
  "serde",
@@ -748,7 +833,6 @@ name = "espanso-kvs"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "log",
  "serde",
  "serde_json",
  "tempdir",
@@ -759,23 +843,17 @@ dependencies = [
 name = "espanso-mac-utils"
 version = "0.1.0"
 dependencies = [
- "anyhow",
  "cc",
  "lazy_static",
- "lazycell",
- "log",
  "regex",
- "thiserror",
 ]
 
 [[package]]
 name = "espanso-match"
 version = "0.1.0"
 dependencies = [
- "anyhow",
  "log",
  "regex",
- "thiserror",
  "unicase",
 ]
 
@@ -784,17 +862,14 @@ name = "espanso-migrate"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "dunce",
  "fs_extra",
  "glob",
  "include_dir",
  "lazy_static",
- "log",
  "path-slash",
  "pretty_assertions",
  "regex",
  "tempdir",
- "tempfile",
  "test-case",
  "thiserror",
  "walkdir",
@@ -809,10 +884,8 @@ dependencies = [
  "cc",
  "glob",
  "lazy_static",
- "log",
  "regex",
  "serde",
- "serde_json",
  "thiserror",
  "winres",
  "zip",
@@ -845,10 +918,8 @@ dependencies = [
 name = "espanso-path"
 version = "0.1.0"
 dependencies = [
- "anyhow",
  "dirs 3.0.1",
  "log",
- "thiserror",
 ]
 
 [[package]]
@@ -857,7 +928,7 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "chrono",
- "enum-as-inner",
+ "enum-as-inner 0.6.0",
  "lazy_static",
  "log",
  "rand 0.8.3",
@@ -881,7 +952,7 @@ dependencies = [
  "serde_json",
  "thiserror",
  "widestring",
- "winrt-notification 0.3.1",
+ "winrt-notification 0.5.1",
 ]
 
 [[package]]
@@ -966,9 +1037,9 @@ dependencies = [
 
 [[package]]
 name = "fs_extra"
-version = "1.2.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394"
+checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
 
 [[package]]
 name = "fsevent"
@@ -1043,19 +1114,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377"
 
 [[package]]
-name = "futures-macro"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bb"
-dependencies = [
- "autocfg",
- "proc-macro-hack",
- "proc-macro2",
- "quote 1.0.9",
- "syn 1.0.67",
-]
-
-[[package]]
 name = "futures-sink"
 version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1076,13 +1134,10 @@ dependencies = [
  "autocfg",
  "futures-core",
  "futures-io",
- "futures-macro",
  "futures-task",
  "memchr",
  "pin-project-lite",
  "pin-utils",
- "proc-macro-hack",
- "proc-macro-nested",
  "slab",
 ]
 
@@ -1132,9 +1187,9 @@ checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
 
 [[package]]
 name = "h2"
-version = "0.3.4"
+version = "0.3.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7f3675cfef6a30c8031cf9e6493ebdc3bb3272a3fea3923c4210d1830e6a472"
+checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
 dependencies = [
  "bytes",
  "fnv",
@@ -1151,9 +1206,15 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.11.2"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 
 [[package]]
 name = "heck"
@@ -1165,6 +1226,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
 name = "hermit-abi"
 version = "0.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1174,6 +1241,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+[[package]]
 name = "hex"
 version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1181,26 +1254,30 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 
 [[package]]
 name = "html2text"
-version = "0.2.1"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26379dcb715e237b96102a12b505c553e2bffa74bae2e54658748d298660ef1"
+checksum = "22f0de8bd2c9fe69eb3fa29e41ae1396c9d2e1b807735acaecafb4c86888674f"
 dependencies = [
+ "dashmap",
  "html5ever",
- "markup5ever_rcdom",
+ "markup5ever",
+ "tendril",
+ "thiserror",
  "unicode-width",
+ "xml5ever",
 ]
 
 [[package]]
 name = "html5ever"
-version = "0.25.1"
+version = "0.26.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aafcf38a1a36118242d29b92e1b08ef84e67e4a5ed06e0a80be20e6a32bfed6b"
+checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7"
 dependencies = [
  "log",
  "mac",
  "markup5ever",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
@@ -1212,7 +1289,7 @@ checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11"
 dependencies = [
  "bytes",
  "fnv",
- "itoa",
+ "itoa 0.4.7",
 ]
 
 [[package]]
@@ -1228,9 +1305,9 @@ dependencies = [
 
 [[package]]
 name = "httparse"
-version = "1.5.1"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
 
 [[package]]
 name = "httpdate"
@@ -1240,9 +1317,9 @@ checksum = "6456b8a6c8f33fee7d958fcd1b60d55b11940a79e63ae87013e6d22e26034440"
 
 [[package]]
 name = "hyper"
-version = "0.14.12"
+version = "0.14.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13f67199e765030fa08fe0bd581af683f0d5bc04ea09c2b1102012c5fb90e7fd"
+checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -1253,7 +1330,7 @@ dependencies = [
  "http-body",
  "httparse",
  "httpdate",
- "itoa",
+ "itoa 1.0.6",
  "pin-project-lite",
  "socket2",
  "tokio",
@@ -1264,17 +1341,15 @@ dependencies = [
 
 [[package]]
 name = "hyper-rustls"
-version = "0.22.1"
+version = "0.23.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64"
+checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c"
 dependencies = [
- "futures-util",
+ "http",
  "hyper",
- "log",
  "rustls",
  "tokio",
  "tokio-rustls",
- "webpki",
 ]
 
 [[package]]
@@ -1321,18 +1396,18 @@ dependencies = [
  "anyhow",
  "proc-macro-hack",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
 [[package]]
 name = "indexmap"
-version = "1.7.0"
+version = "2.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5"
+checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520"
 dependencies = [
- "autocfg",
- "hashbrown",
+ "equivalent",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
@@ -1395,6 +1470,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
 
 [[package]]
+name = "itoa"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+
+[[package]]
 name = "js-sys"
 version = "0.3.53"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1427,9 +1508,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "libc"
-version = "0.2.126"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libdbus-sys"
@@ -1457,6 +1538,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3"
 
 [[package]]
+name = "linux-raw-sys"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "lock_api"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
 name = "log"
 version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1502,12 +1599,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "maplit"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
-
-[[package]]
 name = "markdown"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1520,9 +1611,9 @@ dependencies = [
 
 [[package]]
 name = "markup5ever"
-version = "0.10.1"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd"
+checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016"
 dependencies = [
  "log",
  "phf",
@@ -1533,18 +1624,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "markup5ever_rcdom"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f015da43bcd8d4f144559a3423f4591d69b8ce0652c905374da7205df336ae2b"
-dependencies = [
- "html5ever",
- "markup5ever",
- "tendril",
- "xml5ever",
-]
-
-[[package]]
 name = "matches"
 version = "0.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1558,9 +1637,18 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
 
 [[package]]
 name = "memmap2"
-version = "0.3.1"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b6c2ebff6180198788f5db08d7ce3bc1d0b617176678831a7510825973e357"
+checksum = "43a5a03cefb0d953ec0be133036f14e109412fa594edc2f77227249db66cc3ed"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memmap2"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
 dependencies = [
  "libc",
 ]
@@ -1603,7 +1691,7 @@ dependencies = [
  "kernel32-sys",
  "libc",
  "log",
- "miow 0.2.2",
+ "miow",
  "net2",
  "slab",
  "winapi 0.2.8",
@@ -1611,15 +1699,14 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.7.13"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c2bdb6314ec10835cd3293dd268473a835c02b7b352e788be788b3c6ca6bb16"
+checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
 dependencies = [
  "libc",
  "log",
- "miow 0.3.7",
- "ntapi",
- "winapi 0.3.9",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+ "windows-sys 0.45.0",
 ]
 
 [[package]]
@@ -1647,15 +1734,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "miow"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
-dependencies = [
- "winapi 0.3.9",
-]
-
-[[package]]
 name = "mockall"
 version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1678,7 +1756,7 @@ checksum = "5dd4234635bca06fc96c7368d038061e0aae1b00a764dc817e900dc974e3deea"
 dependencies = [
  "cfg-if 1.0.0",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
@@ -1693,9 +1771,9 @@ dependencies = [
 
 [[package]]
 name = "native-tls"
-version = "0.2.8"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48ba9f7719b5a0f42f338907614285fb5fd70e53858141f69898a1fb7203b24d"
+checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
 dependencies = [
  "lazy_static",
  "libc",
@@ -1733,31 +1811,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
 
 [[package]]
-name = "nix"
-version = "0.22.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4916f159ed8e5de0082076562152a76b7a1f64a01fd9d1e0fea002c37624faf"
-dependencies = [
- "bitflags 1.2.1",
- "cc",
- "cfg-if 1.0.0",
- "libc",
- "memoffset",
-]
-
-[[package]]
-name = "nix"
-version = "0.24.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc"
-dependencies = [
- "bitflags 1.2.1",
- "cfg-if 1.0.0",
- "libc",
- "memoffset",
-]
-
-[[package]]
 name = "nom"
 version = "6.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1804,9 +1857,9 @@ dependencies = [
 
 [[package]]
 name = "ntapi"
-version = "0.3.6"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44"
+checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
 dependencies = [
  "winapi 0.3.9",
 ]
@@ -1836,7 +1889,7 @@ version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
 dependencies = [
- "hermit-abi",
+ "hermit-abi 0.1.18",
  "libc",
 ]
 
@@ -1871,9 +1924,9 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.8.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "opaque-debug"
@@ -1893,19 +1946,31 @@ dependencies = [
 
 [[package]]
 name = "openssl"
-version = "0.10.36"
+version = "0.10.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d9facdb76fec0b73c406f125d44d86fdad818d66fef0531eec9233ca425ff4a"
+checksum = "6b8419dc8cc6d866deb801274bba2e6f8f6108c1bb7fcc10ee5ab864931dbb45"
 dependencies = [
- "bitflags 1.2.1",
+ "bitflags 2.4.1",
  "cfg-if 1.0.0",
  "foreign-types",
  "libc",
  "once_cell",
+ "openssl-macros",
  "openssl-sys",
 ]
 
 [[package]]
+name = "openssl-macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
+dependencies = [
+ "proc-macro2",
+ "quote 1.0.35",
+ "syn 1.0.67",
+]
+
+[[package]]
 name = "openssl-probe"
 version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1913,11 +1978,10 @@ checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.66"
+version = "0.9.97"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1996d2d305e561b70d1ee0c53f1542833f4e1ac6ce9a6708b6ff2738ca67dc82"
+checksum = "c3eaad34cdd97d81de97964fc7f29e2d104f483840d906ef56daa1912338460b"
 dependencies = [
- "autocfg",
  "cc",
  "libc",
  "pkg-config",
@@ -1943,6 +2007,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "parking_lot_core"
+version = "0.9.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "redox_syscall 0.4.1",
+ "smallvec",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
 name = "path-slash"
 version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1956,21 +2033,21 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
 
 [[package]]
 name = "phf"
-version = "0.8.0"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
+checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
 dependencies = [
- "phf_shared",
+ "phf_shared 0.10.0",
 ]
 
 [[package]]
 name = "phf_codegen"
-version = "0.8.0"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
+checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
 dependencies = [
- "phf_generator",
- "phf_shared",
+ "phf_generator 0.10.0",
+ "phf_shared 0.10.0",
 ]
 
 [[package]]
@@ -1979,11 +2056,21 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
 dependencies = [
- "phf_shared",
+ "phf_shared 0.8.0",
  "rand 0.7.3",
 ]
 
 [[package]]
+name = "phf_generator"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
+dependencies = [
+ "phf_shared 0.10.0",
+ "rand 0.8.3",
+]
+
+[[package]]
 name = "phf_shared"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1993,10 +2080,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "phf_shared"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
 name = "pin-project-lite"
-version = "0.2.7"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
 
 [[package]]
 name = "pin-utils"
@@ -2017,6 +2113,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
 
 [[package]]
+name = "polling"
+version = "3.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6"
+dependencies = [
+ "cfg-if 1.0.0",
+ "concurrent-queue",
+ "hermit-abi 0.3.9",
+ "pin-project-lite",
+ "rustix",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "ppv-lite86"
 version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2076,18 +2187,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
 
 [[package]]
-name = "proc-macro-nested"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
-
-[[package]]
 name = "proc-macro2"
-version = "1.0.24"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
- "unicode-xid 0.2.1",
+ "unicode-ident",
 ]
 
 [[package]]
@@ -2097,6 +2202,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b45c49fc4f91f35bae654f85ebb3a44d60ac64f11b3166ffa609def390c732d8"
 
 [[package]]
+name = "quick-xml"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
 name = "quote"
 version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2104,9 +2218,9 @@ checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
 
 [[package]]
 name = "quote"
-version = "1.0.9"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -2279,6 +2393,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.2.1",
+]
+
+[[package]]
 name = "redox_users"
 version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2323,15 +2446,16 @@ dependencies = [
 
 [[package]]
 name = "reqwest"
-version = "0.11.4"
+version = "0.11.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "246e9f61b9bb77df069a947682be06e31ac43ea37862e244a69f177694ea6d22"
+checksum = "13293b639a097af28fc8a90f22add145a9c954e49d77da06263d58cf44d5fb91"
 dependencies = [
- "base64",
+ "base64 0.21.0",
  "bytes",
  "encoding_rs",
  "futures-core",
  "futures-util",
+ "h2",
  "http",
  "http-body",
  "hyper",
@@ -2339,24 +2463,27 @@ dependencies = [
  "hyper-tls",
  "ipnet",
  "js-sys",
- "lazy_static",
  "log",
  "mime",
  "native-tls",
+ "once_cell",
  "percent-encoding",
  "pin-project-lite",
  "rustls",
+ "rustls-pemfile",
  "serde",
+ "serde_json",
  "serde_urlencoded",
  "tokio",
  "tokio-native-tls",
  "tokio-rustls",
+ "tower-service",
  "url",
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "web-sys",
  "webpki-roots",
- "winreg 0.7.0",
+ "winreg 0.10.1",
 ]
 
 [[package]]
@@ -2380,19 +2507,31 @@ version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb"
 dependencies = [
- "base64",
+ "base64 0.13.0",
  "blake2b_simd",
  "constant_time_eq",
  "crossbeam-utils",
 ]
 
 [[package]]
+name = "rustix"
+version = "0.38.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
+dependencies = [
+ "bitflags 2.4.1",
+ "errno 0.3.8",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "rustls"
-version = "0.19.1"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7"
+checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f"
 dependencies = [
- "base64",
  "log",
  "ring",
  "sct",
@@ -2400,6 +2539,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustls-pemfile"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b"
+dependencies = [
+ "base64 0.21.0",
+]
+
+[[package]]
 name = "ryu"
 version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2438,9 +2586,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
 
 [[package]]
 name = "sct"
-version = "0.6.1"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce"
+checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
 dependencies = [
  "ring",
  "untrusted",
@@ -2485,7 +2633,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31"
 dependencies = [
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
@@ -2495,19 +2643,19 @@ version = "1.0.62"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ea1c6153794552ea7cf7cf63b1231a25de00ec90db326ba6264440fa08e31486"
 dependencies = [
- "itoa",
+ "itoa 0.4.7",
  "ryu",
  "serde",
 ]
 
 [[package]]
 name = "serde_urlencoded"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
 dependencies = [
  "form_urlencoded",
- "itoa",
+ "itoa 1.0.6",
  "ryu",
  "serde",
 ]
@@ -2556,40 +2704,52 @@ checksum = "729a25c17d72b06c68cb47955d44fda88ad2d3e7d77e025663fdd69b93dd71a1"
 
 [[package]]
 name = "slab"
-version = "0.4.3"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
 
 [[package]]
 name = "smallvec"
-version = "1.6.1"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "smithay-client-toolkit"
-version = "0.15.4"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a28f16a97fa0e8ce563b2774d1e732dd5d4025d2772c5dba0a41a0f90a29da3"
+checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a"
 dependencies = [
- "bitflags 1.2.1",
+ "bitflags 2.4.1",
+ "bytemuck",
  "calloop",
- "dlib",
- "lazy_static",
+ "calloop-wayland-source",
+ "cursor-icon",
+ "libc",
  "log",
- "memmap2",
- "nix 0.22.3",
+ "memmap2 0.9.4",
  "pkg-config",
+ "rustix",
+ "thiserror",
+ "wayland-backend",
  "wayland-client",
+ "wayland-csd-frame",
  "wayland-cursor",
  "wayland-protocols",
+ "wayland-protocols-wlr",
+ "wayland-scanner",
+ "xkbcommon",
+ "xkeysym",
 ]
 
 [[package]]
 name = "socket2"
-version = "0.4.1"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "765f090f0e423d2b55843402a07915add955e7d60657db13707a159727326cad"
+checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
 dependencies = [
  "libc",
  "winapi 0.3.9",
@@ -2602,12 +2762,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
 
 [[package]]
-name = "squote"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fccf17fd09e2455ea796d2ad267b64fa2c5cbd8701b2a93b555d2aa73449f7d"
-
-[[package]]
 name = "string_cache"
 version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2615,7 +2769,7 @@ checksum = "8ddb1139b5353f96e429e1a5e19fbaf663bddedaa06d1dbd49f82e352601209a"
 dependencies = [
  "lazy_static",
  "new_debug_unreachable",
- "phf_shared",
+ "phf_shared 0.8.0",
  "precomputed-hash",
  "serde",
 ]
@@ -2626,10 +2780,10 @@ version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f24c8e5e19d22a726626f1a5e16fe15b132dcf21d10177fa5a45ce7962996b97"
 dependencies = [
- "phf_generator",
- "phf_shared",
+ "phf_generator 0.8.0",
+ "phf_shared 0.8.0",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
 ]
 
 [[package]]
@@ -2646,11 +2800,11 @@ checksum = "4ca6e4730f517e041e547ffe23d29daab8de6b73af4b6ae2a002108169f5e7da"
 
 [[package]]
 name = "strum"
-version = "0.20.0"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7318c509b5ba57f18533982607f24070a55d353e90d4cae30c467cdb2ad5ac5c"
+checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e"
 dependencies = [
- "strum_macros 0.20.1",
+ "strum_macros 0.22.0",
 ]
 
 [[package]]
@@ -2665,13 +2819,13 @@ dependencies = [
 
 [[package]]
 name = "strum_macros"
-version = "0.20.1"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149"
+checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb"
 dependencies = [
- "heck",
+ "heck 0.3.2",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
@@ -2693,11 +2847,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6498a9efc342871f91cc2d0d694c674368b4ceb40f62b65a7a08c3792935e702"
 dependencies = [
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "unicode-xid 0.2.1",
 ]
 
 [[package]]
+name = "syn"
+version = "2.0.48"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+dependencies = [
+ "proc-macro2",
+ "quote 1.0.35",
+ "unicode-ident",
+]
+
+[[package]]
 name = "synom"
 version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2721,9 +2886,9 @@ dependencies = [
 
 [[package]]
 name = "sysinfo"
-version = "0.24.5"
+version = "0.28.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d80929a3b477bce3a64360ca82bfb361eacce1dcb7b1fb31e8e5e181e37c212"
+checksum = "b4c2f3ca6693feb29a89724516f016488e9aafc7f37264f898593ee4b942f31b"
 dependencies = [
  "cfg-if 1.0.0",
  "core-foundation-sys",
@@ -2796,7 +2961,7 @@ checksum = "956044ef122917dde830c19dec5f76d0670329fde4104836d62ebcb14f4865f1"
 dependencies = [
  "cfg-if 1.0.0",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
  "version_check",
 ]
@@ -2812,22 +2977,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.23"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146"
+checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.23"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1"
+checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
 dependencies = [
  "proc-macro2",
- "quote 1.0.9",
- "syn 1.0.67",
+ "quote 1.0.35",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2858,18 +3023,18 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
 
 [[package]]
 name = "tokio"
-version = "1.10.1"
+version = "1.28.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92036be488bb6594459f2e03b60e42df6f937fe6ca5c5ffdcb539c6b84dc40f5"
+checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2"
 dependencies = [
  "autocfg",
  "bytes",
  "libc",
- "memchr",
- "mio 0.7.13",
+ "mio 0.8.6",
  "num_cpus",
  "pin-project-lite",
- "winapi 0.3.9",
+ "socket2",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -2884,9 +3049,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-rustls"
-version = "0.22.0"
+version = "0.23.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6"
+checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59"
 dependencies = [
  "rustls",
  "tokio",
@@ -2895,16 +3060,16 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.6.7"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1caa0b0c8d94a049db56b5acf8cba99dc0623aab1b26d5b5f5e2d945846b3592"
+checksum = "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45"
 dependencies = [
  "bytes",
  "futures-core",
  "futures-sink",
- "log",
  "pin-project-lite",
  "tokio",
+ "tracing",
 ]
 
 [[package]]
@@ -2924,22 +3089,21 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"
 
 [[package]]
 name = "tracing"
-version = "0.1.26"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "cfg-if 1.0.0",
  "pin-project-lite",
  "tracing-core",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.19"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ca517f43f0fb96e0c3072ed5c275fe5eece87e8cb52f4a77b69226d3b1c9df8"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
- "lazy_static",
+ "once_cell",
 ]
 
 [[package]]
@@ -2976,6 +3140,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "246f4c42e67e7a4e3c6106ff716a5d067d4132a642840b242e357e468a2a0085"
 
 [[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
 name = "unicode-normalization"
 version = "0.1.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3099,14 +3269,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
 
 [[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
 name = "wasm-bindgen"
 version = "0.2.76"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8ce9b1b516211d33767048e5d47fa2a381ed8b76fc48d2ce4aa39877f9f183e0"
 dependencies = [
  "cfg-if 1.0.0",
- "serde",
- "serde_json",
  "wasm-bindgen-macro",
 ]
 
@@ -3120,7 +3294,7 @@ dependencies = [
  "lazy_static",
  "log",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
  "wasm-bindgen-shared",
 ]
@@ -3143,7 +3317,7 @@ version = "0.2.76"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "44468aa53335841d9d6b6c023eaab07c0cd4bddbcfdee3e2bb1e8d2cb8069fef"
 dependencies = [
- "quote 1.0.9",
+ "quote 1.0.35",
  "wasm-bindgen-macro-support",
 ]
 
@@ -3154,7 +3328,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0195807922713af1e67dc66132c7328206ed9766af3858164fb583eedc25fbad"
 dependencies = [
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
@@ -3167,75 +3341,97 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "acdb075a845574a1fa5f09fd77e43f7747599301ea3417a9fbffdeedfc1f4a29"
 
 [[package]]
-name = "wayland-client"
-version = "0.29.5"
+name = "wayland-backend"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715"
+checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40"
 dependencies = [
- "bitflags 1.2.1",
+ "cc",
  "downcast-rs",
- "libc",
- "nix 0.24.2",
+ "rustix",
  "scoped-tls",
- "wayland-commons",
- "wayland-scanner",
+ "smallvec",
  "wayland-sys",
 ]
 
 [[package]]
-name = "wayland-commons"
-version = "0.29.5"
+name = "wayland-client"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902"
+checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
 dependencies = [
- "nix 0.24.2",
- "once_cell",
- "smallvec",
- "wayland-sys",
+ "bitflags 2.4.1",
+ "rustix",
+ "wayland-backend",
+ "wayland-scanner",
+]
+
+[[package]]
+name = "wayland-csd-frame"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
+dependencies = [
+ "bitflags 2.4.1",
+ "cursor-icon",
+ "wayland-backend",
 ]
 
 [[package]]
 name = "wayland-cursor"
-version = "0.29.5"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661"
+checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba"
 dependencies = [
- "nix 0.24.2",
+ "rustix",
  "wayland-client",
  "xcursor",
 ]
 
 [[package]]
 name = "wayland-protocols"
-version = "0.29.5"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6"
+checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
 dependencies = [
- "bitflags 1.2.1",
+ "bitflags 2.4.1",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-scanner",
+]
+
+[[package]]
+name = "wayland-protocols-wlr"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
+dependencies = [
+ "bitflags 2.4.1",
+ "wayland-backend",
  "wayland-client",
- "wayland-commons",
+ "wayland-protocols",
  "wayland-scanner",
 ]
 
 [[package]]
 name = "wayland-scanner"
-version = "0.29.5"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53"
+checksum = "63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283"
 dependencies = [
  "proc-macro2",
- "quote 1.0.9",
- "xml-rs 0.8.3",
+ "quick-xml",
+ "quote 1.0.35",
 ]
 
 [[package]]
 name = "wayland-sys"
-version = "0.29.5"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4"
+checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af"
 dependencies = [
  "dlib",
- "lazy_static",
+ "log",
  "pkg-config",
 ]
 
@@ -3251,9 +3447,9 @@ dependencies = [
 
 [[package]]
 name = "webpki"
-version = "0.21.4"
+version = "0.22.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea"
+checksum = "07ecc0cd7cac091bf682ec5efa18b1cff79d617b84181f38b3951dbe135f607f"
 dependencies = [
  "ring",
  "untrusted",
@@ -3261,9 +3457,9 @@ dependencies = [
 
 [[package]]
 name = "webpki-roots"
-version = "0.21.1"
+version = "0.22.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940"
+checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87"
 dependencies = [
  "webpki",
 ]
@@ -3319,85 +3515,239 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows"
-version = "0.3.1"
+version = "0.24.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "426842497696b65fbfc575691d94ef65befb248ed1a8c4361e293c724e7ebe61"
+checksum = "a9f39345ae0c8ab072c0ac7fe8a8b411636aa34f89be19ddd0d9226544f13944"
 dependencies = [
- "const-sha1",
- "windows_gen",
- "windows_macros",
- "windows_winmd",
+ "windows_i686_gnu 0.24.0",
+ "windows_i686_msvc 0.24.0",
+ "windows_x86_64_gnu 0.24.0",
+ "windows_x86_64_msvc 0.24.0",
 ]
 
 [[package]]
-name = "windows_gen"
-version = "0.3.1"
+name = "windows-sys"
+version = "0.45.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ac8f0f06b647f42ee5459a8e1ffe41795647582c5926ec3fa363a91aad7d77"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
 dependencies = [
- "proc-macro2",
- "quote 1.0.9",
- "squote",
- "syn 1.0.67",
- "windows_gen_macros",
- "windows_winmd",
+ "windows-targets 0.42.2",
 ]
 
 [[package]]
-name = "windows_gen_macros"
-version = "0.3.1"
+name = "windows-sys"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23eac2169a20173b890c496f9e0e1149a92ef29fe4ba96026b72eec363b993f9"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "proc-macro2",
- "quote 1.0.9",
- "syn 1.0.67",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
-name = "windows_macros"
-version = "0.3.1"
+name = "windows-sys"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9edc57c944eec106c7823b425ab0fd9f90163489e50a4df747f65fcf9030e1fb"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "proc-macro2",
- "quote 1.0.9",
- "squote",
- "syn 1.0.67",
- "windows_gen",
- "windows_winmd",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
-name = "windows_winmd"
-version = "0.3.1"
+name = "windows-targets"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16d44527d04c9713312ed598f5d6ce3c453754dbfc03ddc376615be4415ffc88"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
 dependencies = [
- "windows_winmd_macros",
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
 ]
 
 [[package]]
-name = "windows_winmd_macros"
-version = "0.3.1"
+name = "windows-targets"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2353f43f512938450614a176abf2b6cb31ac3b84fd71c88470fee571303e3f36"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
- "proc-macro2",
- "quote 1.0.9",
- "syn 1.0.67",
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
 ]
 
 [[package]]
-name = "winreg"
-version = "0.7.0"
+name = "windows-targets"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
 dependencies = [
- "winapi 0.3.9",
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0866510a3eca9aed73a077490bbbf03e5eaac4e1fd70849d89539e5830501fd"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf0ffed56b7e9369a29078d2ab3aaeceea48eb58999d2cff3aa2494a275b95c6"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "384a173630588044205a2993b6864a2f56e5a8c1e7668c07b93ec18cf4888dc4"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bd8f062d8ca5446358159d79a90be12c543b3a965c847c8f3eedf14b321d399"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+
+[[package]]
 name = "winreg"
 version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3407,6 +3757,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "winreg"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
+dependencies = [
+ "winapi 0.3.9",
+]
+
+[[package]]
 name = "winres"
 version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3439,13 +3798,13 @@ dependencies = [
 
 [[package]]
 name = "winrt-notification"
-version = "0.3.1"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5ee9845acda665033013f93baec4f71ac0e60a391b530a5a83bdb966c1807ca"
+checksum = "007a0353840b23e0c6dc73e5b962ff58ed7f6bc9ceff3ce7fe6fbad8d496edf4"
 dependencies = [
- "strum 0.20.0",
+ "strum 0.22.0",
  "windows",
- "xml-rs 0.8.3",
+ "xml-rs 0.8.8",
 ]
 
 [[package]]
@@ -3468,6 +3827,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "xkbcommon"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13867d259930edc7091a6c41b4ce6eee464328c6ff9659b7e4c668ca20d4c91e"
+dependencies = [
+ "libc",
+ "memmap2 0.8.0",
+ "xkeysym",
+]
+
+[[package]]
+name = "xkeysym"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621"
+dependencies = [
+ "bytemuck",
+]
+
+[[package]]
 name = "xml-rs"
 version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3478,20 +3857,19 @@ dependencies = [
 
 [[package]]
 name = "xml-rs"
-version = "0.8.3"
+version = "0.8.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a"
+checksum = "4f20f14e2bd1fef6ec891d50dbb37c7290a0568a6bbd9020bf62010d02b6f80e"
 
 [[package]]
 name = "xml5ever"
-version = "0.16.1"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b1b52e6e8614d4a58b8e70cf51ec0cc21b256ad8206708bcff8139b5bbd6a59"
+checksum = "4034e1d05af98b51ad7214527730626f019682d797ba38b51689212118d8e650"
 dependencies = [
  "log",
  "mac",
  "markup5ever",
- "time",
 ]
 
 [[package]]
diff --git a/pkgs/applications/office/espanso/default.nix b/pkgs/applications/office/espanso/default.nix
index daa0114b018ca..c8883f36339e4 100644
--- a/pkgs/applications/office/espanso/default.nix
+++ b/pkgs/applications/office/espanso/default.nix
@@ -28,6 +28,7 @@
 , QTKit
 , AVKit
 , WebKit
+, System
 , waylandSupport ? false
 , x11Support ? stdenv.isLinux
 , testers
@@ -39,13 +40,13 @@ assert stdenv.isDarwin -> !x11Support;
 assert stdenv.isDarwin -> !waylandSupport;
 rustPlatform.buildRustPackage rec {
   pname = "espanso";
-  version = "2.1.8";
+  version = "2.2-unstable-2024-05-14";
 
   src = fetchFromGitHub {
     owner = "espanso";
     repo = "espanso";
-    rev = "v${version}";
-    hash = "sha256-5TUo5B1UZZARgTHbK2+520e3mGZkZ5tTez1qvZvMnxs=";
+    rev = "8daadcc949c35a7b7aa20b7f544fdcff83e2c5f7";
+    hash = "sha256-4MArENBmX6tDVLZE1O8cuJe7A0R+sLZoxBkDvIwIVZ4=";
   };
 
   cargoLock = {
@@ -55,10 +56,6 @@ rustPlatform.buildRustPackage rec {
     };
   };
 
-  cargoPatches = lib.optionals stdenv.isDarwin [
-    ./inject-wx-on-darwin.patch
-  ];
-
   nativeBuildInputs = [
     extra-cmake-modules
     pkg-config
@@ -70,7 +67,7 @@ rustPlatform.buildRustPackage rec {
   buildNoDefaultFeatures = true;
   buildFeatures = [
     "modulo"
-  ] ++ lib.optionals waylandSupport[
+  ] ++ lib.optionals waylandSupport [
     "wayland"
   ] ++ lib.optionals stdenv.isLinux [
     "vendored-tls"
@@ -96,6 +93,7 @@ rustPlatform.buildRustPackage rec {
     QTKit
     AVKit
     WebKit
+    System
   ] ++ lib.optionals waylandSupport [
     wl-clipboard
   ] ++ lib.optionals x11Support [
@@ -108,39 +106,39 @@ rustPlatform.buildRustPackage rec {
 
   postPatch = lib.optionalString stdenv.isDarwin ''
     substituteInPlace scripts/create_bundle.sh \
-      --replace target/mac/ $out/Applications/ \
-      --replace /bin/echo ${coreutils}/bin/echo
+      --replace-fail target/mac/ $out/Applications/ \
+      --replace-fail /bin/echo ${coreutils}/bin/echo
     patchShebangs scripts/create_bundle.sh
     substituteInPlace espanso/src/res/macos/Info.plist \
-      --replace "<string>espanso</string>" "<string>${placeholder "out"}/Applications/Espanso.app/Contents/MacOS/espanso</string>"
-    substituteInPlace espanso/src/res/macos/com.federicoterzi.espanso.plist \
-      --replace "<string>/Applications/Espanso.app/Contents/MacOS/espanso</string>" "<string>${placeholder "out"}/Applications/Espanso.app/Contents/MacOS/espanso</string>" \
-      --replace "<string>/usr/bin" "<string>${placeholder "out"}/bin:/usr/bin"
+      --replace-fail "<string>espanso</string>" "<string>${placeholder "out"}/Applications/Espanso.app/Contents/MacOS/espanso</string>"
     substituteInPlace espanso/src/path/macos.rs  espanso/src/path/linux.rs \
-      --replace '"/usr/local/bin/espanso"' '"${placeholder "out"}/bin/espanso"'
+      --replace-fail '"/usr/local/bin/espanso"' '"${placeholder "out"}/bin/espanso"'
   '';
 
   # Some tests require networking
   doCheck = false;
 
-  postInstall = if stdenv.isDarwin then ''
-    EXEC_PATH=$out/bin/espanso BUILD_ARCH=current ${stdenv.shell} ./scripts/create_bundle.sh
-  '' else ''
-    wrapProgram $out/bin/espanso \
-      --prefix PATH : ${lib.makeBinPath (
-        lib.optionals stdenv.isLinux [
-          libnotify
-          setxkbmap
-        ] ++ lib.optionals waylandSupport [
-          wl-clipboard
-        ] ++ lib.optionals x11Support [
-          xclip
-        ]
-      )}
-  '';
+  postInstall =
+    if stdenv.isDarwin then ''
+      EXEC_PATH=$out/bin/espanso BUILD_ARCH=current ${stdenv.shell} ./scripts/create_bundle.sh
+    '' else ''
+      wrapProgram $out/bin/espanso \
+        --prefix PATH : ${lib.makeBinPath (
+          lib.optionals stdenv.isLinux [
+            libnotify
+            setxkbmap
+          ] ++ lib.optionals waylandSupport [
+            wl-clipboard
+          ] ++ lib.optionals x11Support [
+            xclip
+          ]
+        )}
+    '';
 
   passthru.tests.version = testers.testVersion {
     package = espanso;
+    # remove when updating to a release version
+    version = "2.2.1";
   };
 
   meta = with lib; {
@@ -148,8 +146,15 @@ rustPlatform.buildRustPackage rec {
     mainProgram = "espanso";
     homepage = "https://espanso.org";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ kimat pyrox0 ];
+    maintainers = with maintainers; [ kimat pyrox0 n8henrie ];
     platforms = platforms.unix;
+    # With apple_sdk_10_12,
+    # kCFURLVolumeAvailableCapacityForImportantUsageKey
+    # is undefined.
+    # With apple_sdk_11_0, there is an issue with
+    # kColorSyncGenericGrayProfile.
+    broken = stdenv.hostPlatform.system == "x86_64-darwin";
+
 
     longDescription = ''
       Espanso detects when you type a keyword and replaces it while you're typing.
diff --git a/pkgs/applications/office/espanso/inject-wx-on-darwin.patch b/pkgs/applications/office/espanso/inject-wx-on-darwin.patch
deleted file mode 100644
index 34b7112119274..0000000000000
--- a/pkgs/applications/office/espanso/inject-wx-on-darwin.patch
+++ /dev/null
@@ -1,223 +0,0 @@
-From 6a7400c20831c5ff502c7336d6db2be743f156be Mon Sep 17 00:00:00 2001
-From: Nikola Knezevic <nikola.knezevic@imc.com>
-Date: Tue, 16 Aug 2022 22:28:46 +0200
-Subject: [PATCH] Build using system wx on darwin
-
----
- espanso-modulo/build.rs | 174 ++++------------------------------------
- 1 file changed, 17 insertions(+), 157 deletions(-)
-
-diff --git a/espanso-modulo/build.rs b/espanso-modulo/build.rs
-index b8b889a..5d972ec 100644
---- a/espanso-modulo/build.rs
-+++ b/espanso-modulo/build.rs
-@@ -156,161 +156,6 @@ fn build_native() {
-   );
- }
- 
--#[cfg(target_os = "macos")]
--fn build_native() {
--  use std::process::Command;
--
--  let project_dir =
--    PathBuf::from(std::env::var("CARGO_MANIFEST_DIR").expect("missing CARGO_MANIFEST_DIR"));
--  let wx_archive = project_dir.join("vendor").join(WX_WIDGETS_ARCHIVE_NAME);
--  if !wx_archive.is_file() {
--    panic!("could not find wxWidgets archive!");
--  }
--
--  let out_dir = if let Ok(out_path) = std::env::var(WX_WIDGETS_BUILD_OUT_DIR_ENV_NAME) {
--    println!(
--      "detected wxWidgets build output directory override: {}",
--      out_path
--    );
--    let path = PathBuf::from(out_path);
--    std::fs::create_dir_all(&path).expect("unable to create wxWidgets out dir");
--    path
--  } else {
--    PathBuf::from(std::env::var("OUT_DIR").expect("missing OUT_DIR"))
--  };
--  let out_wx_dir = out_dir.join("wx");
--  println!("wxWidgets will be compiled into: {}", out_wx_dir.display());
--
--  let target_arch = match std::env::var("CARGO_CFG_TARGET_ARCH")
--    .expect("unable to read target arch")
--    .as_str()
--  {
--    "x86_64" => "x86_64",
--    "aarch64" => "arm64",
--    arch => panic!("unsupported arch {}", arch),
--  };
--
--  let should_use_ci_m1_workaround =
--    std::env::var("CI").unwrap_or_default() == "true" && target_arch == "arm64";
--
--  if !out_wx_dir.is_dir() {
--    // Extract the wxWidgets archive
--    let wx_archive =
--      std::fs::File::open(&wx_archive).expect("unable to open wxWidgets source archive");
--    let mut archive = zip::ZipArchive::new(wx_archive).expect("unable to read wxWidgets archive");
--    archive
--      .extract(&out_wx_dir)
--      .expect("unable to extract wxWidgets source dir");
--
--    // Compile wxWidgets
--    let build_dir = out_wx_dir.join("build-cocoa");
--    std::fs::create_dir_all(&build_dir).expect("unable to create build-cocoa directory");
--
--    let mut handle = if should_use_ci_m1_workaround {
--      // Because of a configuration problem on the GitHub CI pipeline,
--      // we need to use a series of workarounds to build for M1 machines.
--      // See: https://github.com/actions/virtual-environments/issues/3288#issuecomment-830207746
--      Command::new(out_wx_dir.join("configure"))
--        .current_dir(build_dir.to_string_lossy().to_string())
--        .args(&[
--          "--disable-shared",
--          "--without-libtiff",
--          "--without-liblzma",
--          "--with-libjpeg=builtin",
--          "--with-libpng=builtin",
--          "--enable-universal-binary=arm64,x86_64",
--        ])
--        .spawn()
--        .expect("failed to execute configure")
--    } else {
--      Command::new(out_wx_dir.join("configure"))
--        .current_dir(build_dir.to_string_lossy().to_string())
--        .args(&[
--          "--disable-shared",
--          "--without-libtiff",
--          "--without-liblzma",
--          "--with-libjpeg=builtin",
--          "--with-libpng=builtin",
--          &format!("--enable-macosx_arch={}", target_arch),
--        ])
--        .spawn()
--        .expect("failed to execute configure")
--    };
--
--    if !handle
--      .wait()
--      .expect("unable to wait for configure command")
--      .success()
--    {
--      panic!("configure returned non-zero exit code!");
--    }
--
--    let mut handle = Command::new("make")
--      .current_dir(build_dir.to_string_lossy().to_string())
--      .args(&["-j8"])
--      .spawn()
--      .expect("failed to execute make");
--    if !handle
--      .wait()
--      .expect("unable to wait for make command")
--      .success()
--    {
--      panic!("make returned non-zero exit code!");
--    }
--  }
--
--  // Make sure wxWidgets is compiled
--  if !out_wx_dir.join("build-cocoa").is_dir() {
--    panic!("wxWidgets is not compiled correctly, missing 'build-cocoa/' directory")
--  }
--
--  // If using the M1 CI workaround, convert all the universal libraries to arm64 ones
--  // This is needed until https://github.com/rust-lang/rust/issues/55235 is fixed
--  if should_use_ci_m1_workaround {
--    convert_fat_libraries_to_arm(&out_wx_dir.join("build-cocoa").join("lib"));
--    convert_fat_libraries_to_arm(&out_wx_dir.join("build-cocoa"));
--  }
--
--  let config_path = out_wx_dir.join("build-cocoa").join("wx-config");
--  let cpp_flags = get_cpp_flags(&config_path);
--
--  let mut build = cc::Build::new();
--  build
--    .cpp(true)
--    .file("src/sys/form/form.cpp")
--    .file("src/sys/common/common.cpp")
--    .file("src/sys/search/search.cpp")
--    .file("src/sys/wizard/wizard.cpp")
--    .file("src/sys/wizard/wizard_gui.cpp")
--    .file("src/sys/welcome/welcome.cpp")
--    .file("src/sys/welcome/welcome_gui.cpp")
--    .file("src/sys/textview/textview.cpp")
--    .file("src/sys/textview/textview_gui.cpp")
--    .file("src/sys/troubleshooting/troubleshooting.cpp")
--    .file("src/sys/troubleshooting/troubleshooting_gui.cpp")
--    .file("src/sys/common/mac.mm");
--  build.flag("-std=c++17");
--
--  for flag in cpp_flags {
--    build.flag(&flag);
--  }
--
--  build.compile("espansomodulosys");
--
--  // Render linker flags
--
--  generate_linker_flags(&config_path);
--
--  // On (older) OSX we need to link against the clang runtime,
--  // which is hidden in some non-default path.
--  //
--  // More details at https://github.com/alexcrichton/curl-rust/issues/279.
--  if let Some(path) = macos_link_search_path() {
--    println!("cargo:rustc-link-lib=clang_rt.osx");
--    println!("cargo:rustc-link-search={}", path);
--  }
--}
--
- #[cfg(target_os = "macos")]
- fn convert_fat_libraries_to_arm(lib_dir: &Path) {
-   for entry in
-@@ -440,12 +285,17 @@ fn macos_link_search_path() -> Option<String> {
-   None
- }
- 
-+#[cfg(not(target_os = "macos"))]
-+fn macos_link_search_path() -> Option<String> {
-+    return None
-+}
-+
- // TODO: add documentation for linux
- // Install wxWidgets:
- // sudo apt install libwxgtk3.0-0v5 libwxgtk3.0-dev
- //
- // cargo run
--#[cfg(target_os = "linux")]
-+#[cfg(not(target_os = "windows"))]
- fn build_native() {
-   // Make sure wxWidgets is installed
-   // Depending on the installation package, the 'wx-config' command might also be available as 'wx-config-gtk3',
-@@ -483,7 +333,8 @@ fn build_native() {
-     .file("src/sys/textview/textview.cpp")
-     .file("src/sys/textview/textview_gui.cpp")
-     .file("src/sys/troubleshooting/troubleshooting.cpp")
--    .file("src/sys/troubleshooting/troubleshooting_gui.cpp");
-+    .file("src/sys/troubleshooting/troubleshooting_gui.cpp")
-+    .file("src/sys/common/mac.mm");
-   build.flag("-std=c++17");
- 
-   for flag in cpp_flags {
-@@ -495,6 +346,15 @@ fn build_native() {
-   // Render linker flags
- 
-   generate_linker_flags(&config_path);
-+
-+  // On (older) OSX we need to link against the clang runtime,
-+  // which is hidden in some non-default path.
-+  //
-+  // More details at https://github.com/alexcrichton/curl-rust/issues/279.
-+  if let Some(path) = macos_link_search_path() {
-+    println!("cargo:rustc-link-lib=clang_rt.osx");
-+    println!("cargo:rustc-link-search={}", path);
-+  }
- }
- 
- fn main() {
--- 
-2.37.1
-
diff --git a/pkgs/applications/office/fava/default.nix b/pkgs/applications/office/fava/default.nix
deleted file mode 100644
index d00600bbea592..0000000000000
--- a/pkgs/applications/office/fava/default.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{ lib, python3, fetchPypi }:
-
-python3.pkgs.buildPythonApplication rec {
-  pname = "fava";
-  version = "1.27.3";
-  format = "pyproject";
-
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-GsnXZaazEiOhyjbIinHRD1fdoqlAp3d5csrmtydxmGM=";
-  };
-
-  nativeBuildInputs = with python3.pkgs; [ setuptools-scm ];
-
-  propagatedBuildInputs = with python3.pkgs; [
-    babel
-    beancount
-    cheroot
-    click
-    flask
-    flask-babel
-    jaraco-functools
-    jinja2
-    markdown2
-    ply
-    simplejson
-    werkzeug
-  ];
-
-  nativeCheckInputs = with python3.pkgs; [
-    pytestCheckHook
-  ];
-
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace 'setuptools_scm>=8.0' 'setuptools_scm'
-  '';
-
-  preCheck = ''
-    export HOME=$TEMPDIR
-  '';
-
-  disabledTests = [
-    # runs fava in debug mode, which tries to interpret bash wrapper as Python
-    "test_cli"
-  ];
-
-  meta = with lib; {
-    description = "Web interface for beancount";
-    mainProgram = "fava";
-    homepage = "https://beancount.github.io/fava";
-    changelog = "https://beancount.github.io/fava/changelog.html";
-    license = licenses.mit;
-    maintainers = with maintainers; [ bhipple ];
-  };
-}
diff --git a/pkgs/applications/office/foliate/default.nix b/pkgs/applications/office/foliate/default.nix
index e1f915075b970..4cd888468eaf6 100644
--- a/pkgs/applications/office/foliate/default.nix
+++ b/pkgs/applications/office/foliate/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A simple and modern GTK eBook reader";
+    description = "Simple and modern GTK eBook reader";
     homepage = "https://johnfactotum.github.io/foliate";
     changelog = "https://github.com/johnfactotum/foliate/releases/tag/${version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/office/gnote/default.nix b/pkgs/applications/office/gnote/default.nix
index 0d8c1d2803965..beb68aaa46667 100644
--- a/pkgs/applications/office/gnote/default.nix
+++ b/pkgs/applications/office/gnote/default.nix
@@ -5,6 +5,7 @@
 , gettext
 , gtkmm4
 , itstool
+, libadwaita
 , libsecret
 , libuuid
 , libxml2
@@ -18,15 +19,16 @@
 
 stdenv.mkDerivation rec {
   pname = "gnote";
-  version = "45.1";
+  version = "46.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-nuwn+MsKENL9uRSkUei4QYwmDni/BzYHgaeKXkGM+UE=";
+    hash = "sha256-47v3A6WPgI3Fd9WiVsF3wYkHC5KPS9WSltDA3SXz2pk=";
   };
 
   buildInputs = [
     gtkmm4
+    libadwaita
     libsecret
     libuuid
     libxml2
@@ -51,7 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/gnote";
-    description = "A note taking application";
+    description = "Note taking application";
     mainProgram = "gnote";
     maintainers = with maintainers; [ jfvillablanca ];
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/office/gnucash/0001-disable-date-and-time-tests.patch b/pkgs/applications/office/gnucash/0001-disable-date-and-time-tests.patch
deleted file mode 100644
index c20342564430a..0000000000000
--- a/pkgs/applications/office/gnucash/0001-disable-date-and-time-tests.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff --git a/libgnucash/engine/test/CMakeLists.txt b/libgnucash/engine/test/CMakeLists.txt
-index 8e44172ff..c7289e4fd 100644
---- a/libgnucash/engine/test/CMakeLists.txt
-+++ b/libgnucash/engine/test/CMakeLists.txt
-@@ -167,22 +167,22 @@ set(test_gnc_numeric_SOURCES
- gnc_add_test(test-gnc-numeric "${test_gnc_numeric_SOURCES}"
-   gtest_engine_INCLUDES gtest_qof_LIBS)
- 
--set(test_gnc_timezone_SOURCES
--  ${MODULEPATH}/gnc-timezone.cpp
--  gtest-gnc-timezone.cpp)
--gnc_add_test(test-gnc-timezone "${test_gnc_timezone_SOURCES}"
--  gtest_engine_INCLUDES gtest_old_engine_LIBS)
--
--set(test_gnc_datetime_SOURCES
--  ${MODULEPATH}/gnc-datetime.cpp
--  ${MODULEPATH}/gnc-timezone.cpp
--  ${MODULEPATH}/gnc-date.cpp
--  ${MODULEPATH}/qoflog.cpp
--  ${CMAKE_SOURCE_DIR}/libgnucash/core-utils/gnc-locale-utils.cpp
--  ${gtest_engine_win32_SOURCES}
--  gtest-gnc-datetime.cpp)
--gnc_add_test(test-gnc-datetime "${test_gnc_datetime_SOURCES}"
--  gtest_engine_INCLUDES gtest_qof_LIBS)
-+#set(test_gnc_timezone_SOURCES
-+#  ${MODULEPATH}/gnc-timezone.cpp
-+#  gtest-gnc-timezone.cpp)
-+#gnc_add_test(test-gnc-timezone "${test_gnc_timezone_SOURCES}"
-+#  gtest_engine_INCLUDES gtest_old_engine_LIBS)
-+
-+#set(test_gnc_datetime_SOURCES
-+#  ${MODULEPATH}/gnc-datetime.cpp
-+#  ${MODULEPATH}/gnc-timezone.cpp
-+#  ${MODULEPATH}/gnc-date.cpp
-+#  ${MODULEPATH}/qoflog.cpp
-+#  ${CMAKE_SOURCE_DIR}/libgnucash/core-utils/gnc-locale-utils.cpp
-+#  ${gtest_engine_win32_SOURCES}
-+#  gtest-gnc-datetime.cpp)
-+#gnc_add_test(test-gnc-datetime "${test_gnc_datetime_SOURCES}"
-+#  gtest_engine_INCLUDES gtest_qof_LIBS)
- 
- set(test_import_map_SOURCES
-   gtest-import-map.cpp)
diff --git a/pkgs/applications/office/gnucash/0002-disable-gnc-fq-update.patch b/pkgs/applications/office/gnucash/0002-disable-gnc-fq-update.patch
deleted file mode 100644
index 25170b87129f9..0000000000000
--- a/pkgs/applications/office/gnucash/0002-disable-gnc-fq-update.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/libgnucash/quotes/CMakeLists.txt b/libgnucash/quotes/CMakeLists.txt
-index 7e42016629..7211663408 100644
---- a/libgnucash/quotes/CMakeLists.txt
-+++ b/libgnucash/quotes/CMakeLists.txt
-@@ -1,6 +1,6 @@
- 
- set(_BIN_FILES "")
--foreach(file gnc-fq-update.in finance-quote-wrapper.in)
-+foreach(file finance-quote-wrapper.in)
-   string(REPLACE ".in" "" _OUTPUT_FILE_NAME ${file})
-   set(_ABS_OUTPUT_FILE ${BINDIR_BUILD}/${_OUTPUT_FILE_NAME})
-   configure_file( ${file} ${_ABS_OUTPUT_FILE} @ONLY)
-@@ -26,4 +26,4 @@ add_custom_target(quotes-bin ALL DEPENDS ${_BIN_FILES})
- install(FILES ${_MAN_FILES} DESTINATION  ${CMAKE_INSTALL_MANDIR}/man1)
- install(PROGRAMS ${_BIN_FILES} DESTINATION ${CMAKE_INSTALL_BINDIR})
- 
--set_dist_list(quotes_DIST CMakeLists.txt gnc-fq-update.in finance-quote-wrapper.in README)
-+set_dist_list(quotes_DIST CMakeLists.txt finance-quote-wrapper.in README)
diff --git a/pkgs/applications/office/gnucash/0003-remove-valgrind.patch b/pkgs/applications/office/gnucash/0003-remove-valgrind.patch
deleted file mode 100644
index 329b87985383a..0000000000000
--- a/pkgs/applications/office/gnucash/0003-remove-valgrind.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff --git a/gnucash/CMakeLists.txt b/gnucash/CMakeLists.txt
-index 95ff42cd8f..1c1944a811 100644
---- a/gnucash/CMakeLists.txt
-+++ b/gnucash/CMakeLists.txt
-@@ -169,13 +169,6 @@ set(GNUCASH_BIN_INSTALL_NAME "gnucash")
- 
- set(VALGRIND_OUTDIR ${BINDIR_BUILD})
- 
--configure_file(gnucash-valgrind.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-valgrind @ONLY)
--
--file(COPY ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-valgrind
--          DESTINATION ${VALGRIND_OUTDIR}
--          FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
--)
--
- ## Create the environment file
- 
- file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/environment.in ENV_STRINGS_IN)
-@@ -259,14 +252,13 @@ file(COPY ${ENV_FILE_OUT}
-   FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
- )
- 
--install(FILES ${SCRIPT_LIST} ${VALGRIND_OUTDIR}/gnucash-valgrind DESTINATION ${CMAKE_INSTALL_BINDIR})
- install(FILES ${ENVIRONMENT_FILE_DIR}/environment DESTINATION
-   ${CMAKE_INSTALL_FULL_SYSCONFDIR}/gnucash)
- 
- 
- set_local_dist(gnucash_DIST_local CMakeLists.txt environment.in generate-gnc-script
-     gnucash.cpp gnucash-commands.cpp gnucash-cli.cpp gnucash-core-app.cpp
--    gnucash-locale-macos.mm gnucash-locale-windows.c gnucash.rc.in gnucash-valgrind.in
-+    gnucash-locale-macos.mm gnucash-locale-windows.c gnucash.rc.in
-     ${gnucash_GRESOURCES}
-     ${gnucash_noinst_HEADERS} ${gnucash_EXTRA_DIST})
- 
diff --git a/pkgs/applications/office/gnucash/0004-exec-fq-wrapper.patch b/pkgs/applications/office/gnucash/0004-exec-fq-wrapper.patch
deleted file mode 100644
index 8b00b275e59cd..0000000000000
--- a/pkgs/applications/office/gnucash/0004-exec-fq-wrapper.patch
+++ /dev/null
@@ -1,52 +0,0 @@
---- a/libgnucash/app-utils/gnc-quotes.cpp	2023-09-23 07:04:21.000000000 +0900
-+++ b/libgnucash/app-utils/gnc-quotes.cpp	2023-09-25 11:58:46.482696433 +0900
-@@ -125,7 +125,6 @@
- 
- class GncFQQuoteSource final : public GncQuoteSource
- {
--    const bfs::path c_cmd;
-     std::string c_fq_wrapper;
-     std::string m_version;
-     StrVec m_sources;
-@@ -148,13 +147,12 @@
- static const std::string empty_string{};
- 
- GncFQQuoteSource::GncFQQuoteSource() :
--c_cmd{bp::search_path("perl")},
- m_version{}, m_sources{}, m_api_key{}
- {
-     char *bindir = gnc_path_get_bindir();
-     c_fq_wrapper = std::string(bindir) + "/finance-quote-wrapper";
-     g_free(bindir);
--    StrVec args{"-w", c_fq_wrapper, "-v"};
-+    StrVec args{"-v"};
-     auto [rv, sources, errors] = run_cmd(args, empty_string);
-     if (rv)
-     {
-@@ -200,7 +198,7 @@
- QuoteResult
- GncFQQuoteSource::get_quotes(const std::string& json_str) const
- {
--    StrVec args{"-w", c_fq_wrapper, "-f" };
-+    StrVec args{"-f" };
-     return run_cmd(args, json_str);
- }
- 
-@@ -218,7 +216,7 @@
-         auto input_buf = bp::buffer (json_string);
- 	bp::child process;
- 	if (m_api_key.empty())
--	    process = bp::child(c_cmd, args,
-+	    process = bp::child(c_fq_wrapper, args,
- 				bp::std_out > out_buf,
- 				bp::std_err > err_buf,
- 				bp::std_in < input_buf,
-@@ -227,7 +225,7 @@
- #endif
- 				svc);
- 	else
--	    process = bp::child(c_cmd, args,
-+	    process = bp::child(c_fq_wrapper, args,
- 				bp::std_out > out_buf,
- 				bp::std_err > err_buf,
- 				bp::std_in < input_buf,
diff --git a/pkgs/applications/office/gnucash/default.nix b/pkgs/applications/office/gnucash/default.nix
deleted file mode 100644
index da94f9674ca28..0000000000000
--- a/pkgs/applications/office/gnucash/default.nix
+++ /dev/null
@@ -1,165 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, fetchurl
-, fetchpatch
-, aqbanking
-, boost
-, cmake
-, gettext
-, glib
-, glibcLocales
-, gtest
-, guile
-, gwenhywfar
-, icu
-, libdbi
-, libdbiDrivers
-, libofx
-, libxml2
-, libxslt
-, makeWrapper
-, perlPackages
-, pkg-config
-, swig
-, webkitgtk
-, wrapGAppsHook
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnucash";
-  version = "5.6";
-
-  # raw source code doesn't work out of box; fetchFromGitHub not usable
-  src = fetchurl {
-    url = "https://github.com/Gnucash/gnucash/releases/download/${version}/gnucash-${version}.tar.bz2";
-    hash = "sha256-tLQsYmNQ8+effKHyFzVFzGPd7hrd8kYLGh8iIhvyG9E=";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    gettext
-    makeWrapper
-    wrapGAppsHook
-    pkg-config
-  ];
-
-  buildInputs = [
-    aqbanking
-    boost
-    glib
-    glibcLocales
-    gtest
-    guile
-    gwenhywfar
-    icu
-    libdbi
-    libdbiDrivers
-    libofx
-    libxml2
-    libxslt
-    swig
-    webkitgtk
-  ]
-  ++ (with perlPackages; [
-    JSONParse
-    FinanceQuote
-    perl
-  ]);
-
-  patches = [
-    # this patch disables test-gnc-timezone and test-gnc-datetime which fail due to nix datetime challenges
-    ./0001-disable-date-and-time-tests.patch
-    # this patch prevents the building of gnc-fq-update, a utility which updates the GnuCash cli utils
-    ./0002-disable-gnc-fq-update.patch
-    # this patch prevents the building of gnucash-valgrind
-    ./0003-remove-valgrind.patch
-    # this patch makes gnucash exec the Finance::Quote wrapper directly
-    ./0004-exec-fq-wrapper.patch
-  ];
-
-  # this needs to be an environment variable and not a cmake flag to suppress
-  # guile warning
-  env.GUILE_AUTO_COMPILE = "0";
-
-  env.NIX_CFLAGS_COMPILE = toString (lib.optionals (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "12") [
-    # Needed with GCC 12 but breaks on darwin (with clang) or older gcc
-    "-Wno-error=use-after-free"
-  ]);
-
-  doCheck = true;
-  enableParallelChecking = true;
-  checkTarget = "check";
-
-  passthru.docs = stdenv.mkDerivation {
-    pname = "gnucash-docs";
-    inherit version;
-
-    src = fetchFromGitHub {
-      owner = "Gnucash";
-      repo = "gnucash-docs";
-      rev = version;
-      hash = "sha256-rQZoau466Bi/YpPj1XpSsm67FgTYhiMfZfogTtn+m1k=";
-    };
-
-    nativeBuildInputs = [ cmake ];
-    buildInputs = [ libxml2 libxslt ];
-  };
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      # documentation
-      --prefix XDG_DATA_DIRS : ${passthru.docs}/share
-      # db drivers location
-      --set GNC_DBD_DIR ${libdbiDrivers}/lib/dbd
-      # gsettings schema location on Nix
-      --set GSETTINGS_SCHEMA_DIR ${glib.makeSchemaPath "$out" "gnucash-${version}"}
-    )
-  '';
-
-  # wrapGAppsHook would wrap all binaries including the cli utils which need
-  # Perl wrapping
-  dontWrapGApps = true;
-
-  # gnucash is wrapped using the args constructed for wrapGAppsHook.
-  # gnc-fq-* are cli utils written in Perl hence the extra wrapping
-  postFixup = ''
-    wrapProgram $out/bin/gnucash "''${gappsWrapperArgs[@]}"
-    wrapProgram $out/bin/gnucash-cli "''${gappsWrapperArgs[@]}"
-
-    wrapProgram $out/bin/finance-quote-wrapper \
-      --prefix PERL5LIB : "${with perlPackages; makeFullPerlPath [ JSONParse FinanceQuote ]}"
-  '';
-
-  passthru.updateScript = ./update.sh;
-
-  meta = with lib; {
-    homepage = "https://www.gnucash.org/";
-    description = "Free software for double entry accounting";
-    longDescription = ''
-      GnuCash is personal and small-business financial-accounting software,
-      freely licensed under the GNU GPL and available for GNU/Linux, BSD,
-      Solaris, Mac OS X and Microsoft Windows.
-
-      Designed to be easy to use, yet powerful and flexible, GnuCash allows you
-      to track bank accounts, stocks, income and expenses. As quick and
-      intuitive to use as a checkbook register, it is based on professional
-      accounting principles to ensure balanced books and accurate reports.
-
-      Some interesting features:
-
-      - Double-Entry Accounting
-      - Stock/Bond/Mutual Fund Accounts
-      - Small-Business Accounting
-      - Reports, Graphs
-      - QIF/OFX/HBCI Import, Transaction Matching
-      - Scheduled Transactions
-      - Financial Calculations
-    '';
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ domenkozar AndersonTorres rski nevivurn ];
-    platforms = platforms.unix;
-    mainProgram = "gnucash";
-  };
-}
-# TODO: investigate Darwin support
diff --git a/pkgs/applications/office/gnucash/update.sh b/pkgs/applications/office/gnucash/update.sh
deleted file mode 100755
index b339fd4a7c7c1..0000000000000
--- a/pkgs/applications/office/gnucash/update.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/env nix-shell
-#! nix-shell -I nixpkgs=./. -i bash -p curl jq nix-prefetch-github
-
-set -euo pipefail
-
-latest_version=$(curl -s https://api.github.com/repos/Gnucash/gnucash/releases/latest | jq -r '.tag_name')
-
-if [[ "$latest_version" = "$UPDATE_NIX_OLD_VERSION" ]]; then
-    echo "already up to date"
-    exit 0
-fi
-
-old_src_hash=$(nix-instantiate --eval -A gnucash.src.outputHash | tr -d '"')
-old_src_doc_hash=$(nix-instantiate --eval -A gnucash.docs.src.outputHash | tr -d '"')
-
-src_hash=$(nix-prefetch-url "https://github.com/Gnucash/gnucash/releases/download/$latest_version/gnucash-$latest_version.tar.bz2")
-src_hash=$(nix-hash --to-sri --type sha256 "$src_hash")
-src_doc_hash=$(nix-prefetch-github Gnucash gnucash-docs --rev "$latest_version" | jq -r .hash)
-src_doc_hash=$(nix-hash --to-sri --type sha256 "$src_doc_hash")
-
-cd "$(dirname "${BASH_SOURCE[0]}")"
-sed -i default.nix -e "s|$old_src_hash|$src_hash|"
-sed -i default.nix -e "s|$old_src_doc_hash|$src_doc_hash|"
-sed -i default.nix -e "/ version =/s|\"${UPDATE_NIX_OLD_VERSION}\"|\"${latest_version}\"|"
diff --git a/pkgs/applications/office/gnumeric/default.nix b/pkgs/applications/office/gnumeric/default.nix
index 7e351afadf536..74c9e571375fc 100644
--- a/pkgs/applications/office/gnumeric/default.nix
+++ b/pkgs/applications/office/gnumeric/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, intltool, perlPackages
-, goffice, gnome, wrapGAppsHook, gtk3, bison, python3Packages
+, goffice, gnome, adwaita-icon-theme, wrapGAppsHook3, gtk3, bison, python3Packages
 , itstool
 }:
 
@@ -16,11 +16,11 @@ in stdenv.mkDerivation rec {
 
   configureFlags = [ "--disable-component" ];
 
-  nativeBuildInputs = [ pkg-config intltool bison itstool wrapGAppsHook ];
+  nativeBuildInputs = [ pkg-config intltool bison itstool wrapGAppsHook3 ];
 
   # ToDo: optional libgda, introspection?
   buildInputs = [
-    goffice gtk3 gnome.adwaita-icon-theme
+    goffice gtk3 adwaita-icon-theme
     python pygobject3
   ] ++ (with perlPackages; [ perl XMLParser ]);
 
@@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The GNOME Office Spreadsheet";
+    description = "GNOME Office Spreadsheet";
     license = lib.licenses.gpl2Plus;
     homepage = "http://projects.gnome.org/gnumeric/";
     platforms = platforms.unix;
diff --git a/pkgs/applications/office/grisbi/default.nix b/pkgs/applications/office/grisbi/default.nix
index b0242fc4ae436..911ed9715320d 100644
--- a/pkgs/applications/office/grisbi/default.nix
+++ b/pkgs/applications/office/grisbi/default.nix
@@ -5,9 +5,9 @@
 , libgsf
 , libofx
 , intltool
-, wrapGAppsHook
+, wrapGAppsHook3
 , libsoup
-, gnome
+, adwaita-icon-theme
 }:
 
 stdenv.mkDerivation rec {
@@ -19,17 +19,17 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-vTrbq/xLTfwF7/YtKzZFiiSw8A0HzzWin2ry8gPHej8=";
   };
 
-  nativeBuildInputs = [ pkg-config wrapGAppsHook intltool ];
+  nativeBuildInputs = [ pkg-config wrapGAppsHook3 intltool ];
   buildInputs = [
     gtk
     libgsf
     libofx
     libsoup
-    gnome.adwaita-icon-theme
+    adwaita-icon-theme
   ];
 
   meta = with lib; {
-    description = "A personnal accounting application";
+    description = "Personnal accounting application";
     mainProgram = "grisbi";
     longDescription = ''
       Grisbi is an application written by French developers, so it perfectly
diff --git a/pkgs/applications/office/gtg/default.nix b/pkgs/applications/office/gtg/default.nix
index 18ccdf2db26ec..d990a2004a2dc 100644
--- a/pkgs/applications/office/gtg/default.nix
+++ b/pkgs/applications/office/gtg/default.nix
@@ -1,11 +1,10 @@
 { lib
 , fetchFromGitHub
-, fetchpatch
 , meson
 , python3Packages
 , ninja
 , gtk3
-, wrapGAppsHook
+, wrapGAppsHook3
 , glib
 , gtksourceview4
 , itstool
@@ -33,7 +32,7 @@ python3Packages.buildPythonApplication rec {
     ninja
     itstool
     gettext
-    wrapGAppsHook
+    wrapGAppsHook3
     gobject-introspection
   ];
 
@@ -56,7 +55,6 @@ python3Packages.buildPythonApplication rec {
   ];
 
   nativeCheckInputs = with python3Packages; [
-    nose
     mock
     xvfb-run
     pytest
diff --git a/pkgs/applications/office/homebank/default.nix b/pkgs/applications/office/homebank/default.nix
deleted file mode 100644
index 023a5729ed801..0000000000000
--- a/pkgs/applications/office/homebank/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ fetchurl, lib, stdenv, gtk, pkg-config, libofx, intltool, wrapGAppsHook
-, libsoup_3, gnome }:
-
-stdenv.mkDerivation rec {
-  pname = "homebank";
-  version = "5.7.4";
-  src = fetchurl {
-    url = "https://www.gethomebank.org/public/sources/homebank-${version}.tar.gz";
-    hash = "sha256-Qs5xRsh16gyjyTORtqm/RxTbRiHGP0oJTcxviYW7VOQ=";
-  };
-
-  nativeBuildInputs = [ pkg-config wrapGAppsHook intltool ];
-  buildInputs = [ gtk libofx libsoup_3 gnome.adwaita-icon-theme];
-
-  meta = with lib; {
-    description = "Free, easy, personal accounting for everyone";
-    mainProgram = "homebank";
-    homepage = "https://www.gethomebank.org";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ pSub frlan ];
-    platforms = platforms.linux ++ platforms.darwin;
-  };
-}
diff --git a/pkgs/applications/office/ib/controller/default.nix b/pkgs/applications/office/ib/controller/default.nix
deleted file mode 100644
index 6df00fc174ed7..0000000000000
--- a/pkgs/applications/office/ib/controller/default.nix
+++ /dev/null
@@ -1,164 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, unzip, jdk, ib-tws, xpra }:
-
-stdenv.mkDerivation rec {
-  version = "2.14.0";
-  pname = "ib-controller";
-
-  src = fetchFromGitHub {
-    owner = "ib-controller";
-    repo = "ib-controller";
-    rev = version;
-    sha256 = "sha256-R175CKb3uErjBNe73HEFMI+bNmmuH2nWGraCSh5bXwc=";
-  };
-
-  nativeBuildInputs = [ unzip ];
-  buildInputs = [ jdk ib-tws ];
-
-  installPhase = ''
-    mkdir -p $out $out/bin $out/etc/ib/controller $out/share/IBController
-    cp resources/*.jar $out/share/IBController/.
-    cp resources/*.ini $out/etc/ib/controller/.
-    classpath=""
-    for jar in ${ib-tws}/share/IBJts/*.jar; do
-      classpath="$classpath:$jar"
-    done
-    for jar in $out/share/IBController/*.jar; do
-      classpath="$classpath:$jar"
-    done
-    # strings to use below; separated to avoid nix specific substitutions
-    javaOptions={JAVA_OPTIONS:--Xmx1024M}
-    ibProfileDir={IB_PROFILE_DIR:-~/IB/}
-    cat<<EOF > $out/bin/ib-tws-c
-    #!$SHELL
-    if [[ \$1 == /* ]] || [[ \$1 == ./* ]]; then
-      IB_USER_PROFILE=\`realpath \$1\`
-      IB_USER_PROFILE_TITLE=\`basename \$1\`
-    else
-      if [[ x\$1 != "x" ]] && [[ \$1 != -* ]]; then
-        IB_USER_PROFILE=\`realpath \$$ibProfileDir\$1\`
-        IB_USER_PROFILE_TITLE=\$1
-      else
-        echo "ERROR: \"\$1\" is not a valid name of a profile."
-        exit 1
-      fi
-    fi
-    shift
-    if [ ! -e \$IB_USER_PROFILE ]; then mkdir -p \$IB_USER_PROFILE; fi
-    if [ ! -d \$IB_USER_PROFILE ]; then echo "ERROR: \$IB_USER_PROFILE must be a directory!" && echo 1; fi
-    if [ ! -e \$IB_USER_PROFILE/jts.ini ]; then cp ${ib-tws}/etc/ib/tws/jts.ini \$IB_USER_PROFILE/. && chmod +w \$IB_USER_PROFILE/jts.ini; fi
-    if [ ! -e \$IB_USER_PROFILE/IBController.ini ]; then cp $out/etc/ib/controller/IBController.ini \$IB_USER_PROFILE/. && chmod +w \$IB_USER_PROFILE/IBController.ini; fi
-    if [[ \$1 == "-q" ]]; then
-      if [ -f \$IB_USER_PROFILE/xpra/run ]; then
-        ${xpra}/bin/xpra stop \`cat \$IB_USER_PROFILE/xpra/run\` --socket-dir=\$IB_USER_PROFILE/xpra/ &> /dev/null
-      fi
-      exit 0
-    fi
-    if [[ \$1 == "-d" ]] && [ ! -f \$IB_USER_PROFILE/xpra/run ]; then
-      ( sleep infinity ) &
-      WAIT_DUMMY_PID=\$!
-      ( trap "" INT;
-        DISPLAYNUM=100
-        while [ -f /tmp/.X\$DISPLAYNUM-lock ]; do DISPLAYNUM=\$((\$DISPLAYNUM + 1)); done
-        mkdir -p \$IB_USER_PROFILE/xpra
-        cd \$IB_USER_PROFILE
-        nohup ${xpra}/bin/xpra start :\$DISPLAYNUM \
-          --socket-dir=\$IB_USER_PROFILE/xpra/ \
-          --start-child="echo -n :\$DISPLAYNUM > \$IB_USER_PROFILE/xpra/run \
-                         && kill \$WAIT_DUMMY_PID &> /dev/null \
-                         && ${jdk}/bin/java -cp $classpath \$$javaOptions ibcontroller.IBController \$IB_USER_PROFILE/IBController.ini" \
-          --exit-with-children \
-          --no-pulseaudio \
-          --no-mdns \
-          --no-notification \
-          --no-daemon \
-          &> \$IB_USER_PROFILE/xpra/server.log
-        rm -f \$IB_USER_PROFILE/xpra/run
-        rm -f /tmp/.X\$DISPLAYNUM-lock
-      ) &
-      wait \$WAIT_DUMMY_PID
-      exit 0
-    fi
-    if [ -f \$IB_USER_PROFILE/xpra/run ]; then
-      ${xpra}/bin/xpra attach \`cat \$IB_USER_PROFILE/xpra/run\` --socket-dir=\$IB_USER_PROFILE/xpra/ \
-      --windows \
-      --no-speaker \
-      --no-microphone \
-      --no-tray \
-      --title="\$IB_USER_PROFILE_TITLE: @title@" \
-      &> \$IB_USER_PROFILE/xpra/client.log
-    fi
-    EOF
-    chmod u+x $out/bin/ib-tws-c
-    cat<<EOF > $out/bin/ib-gw-c
-    #!$SHELL
-    if [[ \$1 == /* ]] || [[ \$1 == ./* ]]; then
-      IB_USER_PROFILE=\`realpath \$1\`
-      IB_USER_PROFILE_TITLE=\`basename \$1\`
-    else
-      if [[ x\$1 != "x" ]] && [[ \$1 != -* ]]; then
-        IB_USER_PROFILE=\`realpath \$$ibProfileDir\$1\`
-        IB_USER_PROFILE_TITLE=\$1
-      else
-        echo "ERROR: \"\$1\" is not a valid name of a profile."
-        exit 1
-      fi
-    fi
-    shift
-    if [ ! -e \$IB_USER_PROFILE ]; then mkdir -p \$IB_USER_PROFILE; fi
-    if [ ! -d \$IB_USER_PROFILE ]; then echo "ERROR: \$IB_USER_PROFILE must be a directory!" && echo 1; fi
-    if [ ! -e \$IB_USER_PROFILE/jts.ini ]; then cp ${ib-tws}/etc/ib/tws/jts.ini \$IB_USER_PROFILE/. && chmod +w \$IB_USER_PROFILE/jts.ini; fi
-    if [ ! -e \$IB_USER_PROFILE/IBController.ini ]; then cp $out/etc/ib/controller/IBController.ini \$IB_USER_PROFILE/. && chmod +w \$IB_USER_PROFILE/IBController.ini; fi
-    if [[ \$1 == "-q" ]]; then
-      if [ -f \$IB_USER_PROFILE/xpra/run ]; then
-        ${xpra}/bin/xpra stop \`cat \$IB_USER_PROFILE/xpra/run\` --socket-dir=\$IB_USER_PROFILE/xpra/ &> /dev/null
-      fi
-      exit 0
-    fi
-    if [[ \$1 == "-d" ]] && [ ! -f \$IB_USER_PROFILE/xpra/run ]; then
-      ( sleep infinity ) &
-      WAIT_DUMMY_PID=\$!
-      ( trap "" INT;
-        DISPLAYNUM=100
-        while [ -f /tmp/.X\$DISPLAYNUM-lock ]; do DISPLAYNUM=\$((\$DISPLAYNUM + 1)); done
-        mkdir -p \$IB_USER_PROFILE/xpra
-        cd \$IB_USER_PROFILE
-        nohup ${xpra}/bin/xpra start :\$DISPLAYNUM \
-          --socket-dir=\$IB_USER_PROFILE/xpra/ \
-          --start-child="echo -n :\$DISPLAYNUM > \$IB_USER_PROFILE/xpra/run \
-                         && kill \$WAIT_DUMMY_PID &> /dev/null \
-                         && ${jdk}/bin/java -cp $classpath \$$javaOptions ibcontroller.IBGatewayController \$IB_USER_PROFILE/IBController.ini" \
-          --exit-with-children \
-          --no-pulseaudio \
-          --no-mdns \
-          --no-notification \
-          --no-daemon \
-          &> \$IB_USER_PROFILE/xpra/server.log
-        rm -f \$IB_USER_PROFILE/xpra/run
-        rm -f /tmp/.X\$DISPLAYNUM-lock
-      ) &
-      wait \$WAIT_DUMMY_PID
-      exit 0
-    fi
-    if [ -f \$IB_USER_PROFILE/xpra/run ]; then
-      ${xpra}/bin/xpra attach \`cat \$IB_USER_PROFILE/xpra/run\` --socket-dir=\$IB_USER_PROFILE/xpra/ \
-      --windows \
-      --no-speaker \
-      --no-microphone \
-      --no-tray \
-      --title="\$IB_USER_PROFILE_TITLE: @title@" \
-      &> \$IB_USER_PROFILE/xpra/client.log
-    fi
-    EOF
-    chmod u+x $out/bin/ib-gw-c
-  '';
-
-
-  meta = with lib; {
-    description = "Automation Controller for the Trader Work Station of Interactive Brokers";
-    homepage = "https://github.com/ib-controller/ib-controller";
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
-    license = licenses.gpl3;
-    maintainers = [ ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/applications/office/ib/tws/default.nix b/pkgs/applications/office/ib/tws/default.nix
deleted file mode 100644
index 3b267d79f39fe..0000000000000
--- a/pkgs/applications/office/ib/tws/default.nix
+++ /dev/null
@@ -1,95 +0,0 @@
-{ lib, stdenv, requireFile, jdk }:
-
-stdenv.mkDerivation rec {
-  version = "9542";
-  pname = "ib-tws";
-
-  src = requireFile rec {
-    name = "ibtws_${version}.jar";
-    message = ''
-      This nix expression requires that ${name} is already part of the store.
-      Download the TWS from
-      https://download2.interactivebrokers.com/download/unixmacosx_latest.jar,
-      rename the file to ${name}, and add it to the nix store with
-      "nix-prefetch-url file://\$PWD/${name}".
-    '';
-    sha256 = "1a2jiwwnr5g3xfba1a89c257bdbnq4zglri8hz021vk7f6s4rlrf";
-  };
-
-  buildInputs = [ jdk ];
-
-  buildPhase = ''
-    jar -xf IBJts/jts.jar
-    cp trader/common/images/ibapp_icon.gif ibtws_icon.gif
-    '';
-
-  unpackPhase = ''
-    jar xf ${src}
-    '';
-
-  installPhase = ''
-    mkdir -p $out $out/bin $out/etc/ib/tws $out/share/IBJts $out/share/icons
-    cp IBJts/*.jar $out/share/IBJts/.
-    cp IBJts/*.ini $out/etc/ib/tws/.
-    cp ibtws_icon.gif $out/share/icons/.
-    classpath=""
-    for jar in $out/share/IBJts/*.jar; do
-      classpath="$classpath:$jar"
-    done
-    # strings to use below; separated to avoid nix specific substitutions
-    javaOptions={JAVA_OPTIONS:-'-Xmx1024M -Dawt.useSystemAAFontSettings=lcd -Dsun.java2d.xrender=True -Dsun.java2d.opengl=False'}
-    # OTHER JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java
-    ibProfileDir={IB_PROFILE_DIR:-~/IB/}
-    cat<<EOF > $out/bin/ib-tws
-    #!$SHELL
-    if [[ \$1 == /* ]] || [[ \$1 == ./* ]]; then
-      IB_USER_PROFILE=\`realpath \$1\`
-      IB_USER_PROFILE_TITLE=\`basename \$1\`
-    else
-      if [[ x\$1 != "x" ]] && [[ \$1 != -* ]]; then
-        IB_USER_PROFILE=\`realpath \$$ibProfileDir\$1\`
-        IB_USER_PROFILE_TITLE=\$1
-      else
-        echo "ERROR: \"\$1\" is not a valid name of a profile."
-        exit 1
-      fi
-    fi
-    shift
-    if [ ! -e \$IB_USER_PROFILE ]; then mkdir -p \$IB_USER_PROFILE; fi
-    if [ ! -d \$IB_USER_PROFILE ]; then echo "ERROR: \$IB_USER_PROFILE must be a directory!" && echo 1; fi
-    if [ ! -e \$IB_USER_PROFILE/jts.ini ]; then cp $out/etc/ib/tws/jts.ini \$IB_USER_PROFILE/. && chmod +w \$IB_USER_PROFILE/jts.ini; fi
-    ${jdk}/bin/java -cp $classpath \$$javaOptions jclient.LoginFrame \$IB_USER_PROFILE
-    EOF
-    chmod u+x $out/bin/ib-tws
-    cat<<EOF > $out/bin/ib-gw
-    #!$SHELL
-    if [[ \$1 == /* ]] || [[ \$1 == ./* ]]; then
-      IB_USER_PROFILE=\`realpath \$1\`
-      IB_USER_PROFILE_TITLE=\`basename \$1\`
-    else
-      if [[ x\$1 != "x" ]] && [[ \$1 != -* ]]; then
-        IB_USER_PROFILE=\`realpath \$$ibProfileDir\$1\`
-        IB_USER_PROFILE_TITLE=\$1
-      else
-        echo "ERROR: \"\$1\" is not a valid name of a profile."
-        exit 1
-      fi
-    fi
-    shift
-    if [ ! -e \$IB_USER_PROFILE ]; then mkdir -p \$IB_USER_PROFILE; fi
-    if [ ! -d \$IB_USER_PROFILE ]; then echo "ERROR: \$IB_USER_PROFILE must be a directory!" && echo 1; fi
-    if [ ! -e \$IB_USER_PROFILE/jts.ini ]; then cp $out/etc/ib/tws/jts.ini \$IB_USER_PROFILE/. && chmod +w \$IB_USER_PROFILE/jts.ini; fi
-    ${jdk}/bin/java -cp $classpath -Dsun.java2d.noddraw=true \$$javaOptions ibgateway.GWClient \$IB_USER_PROFILE
-    EOF
-    chmod u+x $out/bin/ib-gw
-    '';
-
-  meta = with lib; {
-    description = "Trader Work Station of Interactive Brokers";
-    homepage = "https://www.interactivebrokers.com";
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
-    license = licenses.unfree;
-    maintainers = [ ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/applications/office/jabref/default.nix b/pkgs/applications/office/jabref/default.nix
index 282e62584cff4..96ff199f964d5 100644
--- a/pkgs/applications/office/jabref/default.nix
+++ b/pkgs/applications/office/jabref/default.nix
@@ -1,8 +1,7 @@
 { lib
 , stdenv
-, fetchurl
 , fetchFromGitHub
-, wrapGAppsHook
+, wrapGAppsHook3
 , makeDesktopItem
 , copyDesktopItems
 , unzip
@@ -10,31 +9,18 @@
 , gtk3
 , jdk
 , gradle
-, perl
 , python3
 }:
 
-let
-  versionReplace = {
-    easybind = {
-      snapshot = "2.2.1-SNAPSHOT";
-      pin = "2.2.1-20230117.075740-16";
-    };
-  };
-  jackson-datatype-jsr310 = fetchurl {
-    url = "https://repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.15.3/jackson-datatype-jsr310-2.15.3.jar";
-    hash = "sha256-vqHXgAnrxOXVSRij967F2p+9CfZiwZGiF//PN+hSfF4=";
-  };
-in
 stdenv.mkDerivation rec {
-  version = "5.12";
+  version = "5.13";
   pname = "jabref";
 
   src = fetchFromGitHub {
     owner = "JabRef";
     repo = "jabref";
     rev = "v${version}";
-    hash = "sha256-+ltd9hItmMkEpKzX6TFfFy5fiOkLBK/tQNsh8OVDeoc=";
+    hash = "sha256-inE2FXAaEEiq7343KwtjEiTEHLtn01AzP0foTpsLoAw=";
     fetchSubmodules = true;
   };
 
@@ -47,43 +33,17 @@ stdenv.mkDerivation rec {
       categories = [ "Office" ];
       icon = "jabref";
       exec = "JabRef %U";
-      startupWMClass = "org.jabref.gui.JabRefMain";
+      startupWMClass = "org.jabref.gui.JabRefGUI";
       mimeTypes = [ "text/x-bibtex" ];
     })
   ];
 
-  deps = stdenv.mkDerivation {
-    pname = "${pname}-deps";
-    inherit src version postPatch;
-
-    nativeBuildInputs = [ gradle perl ];
-    buildPhase = ''
-      export GRADLE_USER_HOME=$(mktemp -d)
-      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}
-      # This is used but not cached by Gradle.
-      cp ${jackson-datatype-jsr310} $out/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.15.3/jackson-datatype-jsr310-2.15.3.jar
-    '';
-    # Don't move info to share/
-    forceShare = [ "dummy" ];
-    outputHashMode = "recursive";
-    outputHash = "sha256-baP/zNgcc6oYwwbWvT7ontULcKKCw0rTQRkdZMgcWfY=";
+  mitmCache = gradle.fetchDeps {
+    inherit pname;
+    data = ./deps.json;
   };
 
   postPatch = ''
-    # Pin the version
-    substituteInPlace build.gradle \
-      --replace 'com.tobiasdiez:easybind:${versionReplace.easybind.snapshot}' \
-        'com.tobiasdiez:easybind:${versionReplace.easybind.pin}'
-
     # Disable update check
     substituteInPlace src/main/java/org/jabref/preferences/JabRefPreferences.java \
       --replace 'VERSION_CHECK_ENABLED, Boolean.TRUE' \
@@ -92,40 +52,12 @@ stdenv.mkDerivation rec {
     # Find OpenOffice/LibreOffice binary
     substituteInPlace src/main/java/org/jabref/logic/openoffice/OpenOfficePreferences.java \
       --replace '/usr' '/run/current-system/sw'
-
-    # Don't fetch predatory sources. These source are fetched from online webpages.
-    sed -i -e '/new PJSource/,/);/c);' src/main/java/org/jabref/logic/journals/predatory/PredatoryJournalListCrawler.java
-
-    # Add back downloadDependencies task for deps download which is removed upstream in https://github.com/JabRef/jabref/pull/10326
-    cat <<EOF >> build.gradle
-    task downloadDependencies {
-      description "Pre-downloads *most* dependencies"
-      doLast {
-        configurations.getAsMap().each { name, config ->
-          println "Retrieving dependencies for $name"
-          try {
-            config.files
-          } catch (e) {
-            // some cannot be resolved, just log them
-            project.logger.info e.message
-          }
-        }
-      }
-    }
-    EOF
-  '';
-
-  preBuild = ''
-    # Use the local packages from -deps
-    sed -i -e '/repositories {/a maven { url uri("${deps}") }' \
-      build.gradle \
-      settings.gradle
   '';
 
   nativeBuildInputs = [
     jdk
     gradle
-    wrapGAppsHook
+    wrapGAppsHook3
     copyDesktopItems
     unzip
   ];
@@ -135,19 +67,13 @@ stdenv.mkDerivation rec {
     python3
   ];
 
-  buildPhase = ''
-    runHook preBuild
-
-    export GRADLE_USER_HOME=$(mktemp -d)
-    gradle \
-      --offline \
-      --no-daemon \
-      -PprojVersion="${version}" \
-      -PprojVersionInfo="${version} NixOS" \
-      -Dorg.gradle.java.home=${jdk} \
-      assemble
+  gradleFlags = [
+    "-PprojVersion=${version}"
+    "-Dorg.gradle.java.home=${jdk}"
+  ];
 
-    runHook postBuild
+  preBuild = ''
+    gradleFlagsArray+=(-PprojVersionInfo="${version} NixOS")
   '';
 
   dontWrapGApps = true;
@@ -170,9 +96,6 @@ stdenv.mkDerivation rec {
 
     tar xf build/distributions/JabRef-${version}.tar -C $out --strip-components=1
 
-    # 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')
 
     runHook postInstall
@@ -192,6 +115,13 @@ stdenv.mkDerivation rec {
     ln -sf $out/bin/JabRef $out/bin/jabref
   '';
 
+  gradleUpdateScript = ''
+    runHook preBuild
+
+    gradle nixDownloadDeps -Dos.arch=amd64
+    gradle nixDownloadDeps -Dos.arch=aarch64
+  '';
+
   meta = with lib; {
     description = "Open source bibliography reference manager";
     homepage = "https://www.jabref.org";
diff --git a/pkgs/applications/office/jabref/deps.json b/pkgs/applications/office/jabref/deps.json
new file mode 100644
index 0000000000000..6b510245eb299
--- /dev/null
+++ b/pkgs/applications/office/jabref/deps.json
@@ -0,0 +1,2143 @@
+{
+ "!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
+ "!version": 1,
+ "https://jitpack.io/com/github/sialcasa": {
+  "mvvmFX#mvvmfx-parent/f195849ca9": {
+   "pom": "sha256-5nTE66pGjgRswUpwK3guGpZb5iI4/2kmYy+wtGIsSz0="
+  },
+  "mvvmFX#mvvmfx-validation/f195849ca9": {
+   "jar": "sha256-Q3dcLohYshPQP3jWb0/Wh6IENg4CGn9Tl8tVvRHVhO0=",
+   "pom": "sha256-MplYnkdrZQ8ptd0PuUqUcWe6SwKaoM4VdOOV1KMAPvs="
+  }
+ },
+ "https://oss.sonatype.org/content/groups/public/com": {
+  "tobiasdiez#easybind/2.2.1-20230117.075740-16/SNAPSHOT": {
+   "jar": "sha256-eubEgC/aixBe3Ho3QWBsJltPkWwmSRFGdlpx/0dl158=",
+   "module": "sha256-tgPZPbaK5Hy7JDPg3Yo5dh/zn+av+bgvbmklypPYZqc=",
+   "pom": "sha256-NudbADyHMI49AKmZi2KOYbTzRW/uuPdiYDDJcwEEPhA="
+  },
+  "tobiasdiez/easybind/2.2.1-SNAPSHOT/maven-metadata": {
+   "xml": {
+    "groupId": "com.tobiasdiez",
+    "lastUpdated": "20230117075740"
+   }
+  }
+ },
+ "https://plugins.gradle.org/m2": {
+  "com/adarshr#gradle-test-logger-plugin/4.0.0": {
+   "jar": "sha256-5nhoOjPSvINWcb3U5YcQAErR2TFqqfmlTP4iQZpPbvk=",
+   "module": "sha256-jERLLH/UQgDNSrMYJyJwHCCXWkOyPH6e35sCJgSavcI=",
+   "pom": "sha256-ienBpTqmJS2mx9fZscN/t/j8qQuysaNq+Ti8cNni3GE="
+  },
+  "com/adarshr/test-logger#com.adarshr.test-logger.gradle.plugin/4.0.0": {
+   "pom": "sha256-sobTcqzS2uG4vHsg/ouoT49kiXMdiBpB83NqYCCFotc="
+  },
+  "com/github/andygoossens#gradle-modernizer-plugin/1.9.2": {
+   "jar": "sha256-PTzh7ej2aFWPPQCOs+nbNiAcYgbDlZDmciyr1XlHnBk=",
+   "module": "sha256-fpPjWPi71bCrOGIfkBU2QZfSguUT85C+oWjfvKqfbss=",
+   "pom": "sha256-/jLkdoa/L/1ARpoP52+JmSmawj38yVpzyzDGf/hsKr4="
+  },
+  "com/github/andygoossens/modernizer#com.github.andygoossens.modernizer.gradle.plugin/1.9.2": {
+   "pom": "sha256-d45Z81rXBHHqcW+H8U+oFW1SuaUyJ4MlEFG6DnrRSy0="
+  },
+  "com/google/code/findbugs#jsr305/3.0.2": {
+   "jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=",
+   "pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4="
+  },
+  "com/google/code/gson#gson-parent/2.10.1": {
+   "pom": "sha256-QkjgiCQmxhUYI4XWCGw+8yYudplXGJ4pMGKAuFSCuDM="
+  },
+  "com/google/code/gson#gson/2.10.1": {
+   "jar": "sha256-QkHBSncnw0/uplB+yAExij1KkPBw5FJWgQefuU7kxZM=",
+   "pom": "sha256-0rEVY09cCF20ucn/wmWOieIx/b++IkISGhzZXU2Ujdc="
+  },
+  "com/google/gradle#osdetector-gradle-plugin/1.7.3": {
+   "jar": "sha256-a0aS+ROiGx+2Axae54uo8+SrKvnXYq+cqIt5EmwcCtE=",
+   "pom": "sha256-hGDJUBJ8o1mHZhYeOLT/jWO01p+4MQoW4As1E1ABDBE="
+  },
+  "kr/motd/maven#os-maven-plugin/1.7.1": {
+   "jar": "sha256-9Hru+Ggh5SsrGHWJeL0EXwPXIikuMudHCCEixiKJUuA=",
+   "pom": "sha256-S3WABEIrljPdMY8p54Tx0YC9ilkgzVCvGTCGH21qVHY="
+  },
+  "me/champeau/jmh#jmh-gradle-plugin/0.7.2": {
+   "jar": "sha256-2Wcgmf+Pw/m/PU0BWGThWG8H7L0qihd6ZhhO8LaKumU=",
+   "module": "sha256-bYSa50VKs5Fxjl/HDicWQY7z7SZEcjRb2Axt5k4AtsQ=",
+   "pom": "sha256-FdkdAH98O7wCJseQSM3cRf/BJPoegAgu//jhAwxoSg8="
+  },
+  "me/champeau/jmh#me.champeau.jmh.gradle.plugin/0.7.2": {
+   "pom": "sha256-V+DCOsYJRa77WgxKkzm+poopU2TKR8epB5oDL3kBOrs="
+  },
+  "net/sf/jopt-simple#jopt-simple/5.0.4": {
+   "jar": "sha256-3ybMWPI19HfbB/dTulo6skPr5Xidn4ns9o3WLqmmbCg=",
+   "pom": "sha256-amd2O3avzZyAuV5cXiR4LRjMGw49m0VK0/h1THa3aBU="
+  },
+  "org/apache#apache/16": {
+   "pom": "sha256-n4X/L9fWyzCXqkf7QZ7n8OvoaRCfmKup9Oyj9J50pA4="
+  },
+  "org/apache/commons#commons-math3/3.6.1": {
+   "jar": "sha256-HlbXsFjSi2Wr0la4RY44hbZ0wdWI+kPNfRy7nH7yswg=",
+   "pom": "sha256-+tcjNup9fdBtoQMUTjdA21CPpLF9nFTXhHc37cJKfmA="
+  },
+  "org/apache/commons#commons-parent/39": {
+   "pom": "sha256-h80n4aAqXD622FBZzphpa7G0TCuLZQ8FZ8ht9g+mHac="
+  },
+  "org/beryx#badass-jlink-plugin/3.0.1": {
+   "jar": "sha256-dgjXY18yKiLff//d+IiBuTngqBDuUmoqTFPFN7/WT4Y=",
+   "module": "sha256-b3ksJpweGUNdCWcOtY12cyOFm2Hpt9YcZLPMdHK8Qgo=",
+   "pom": "sha256-OwPpihIF17Spe7jcvlkCs6AW4D+FACDzkjuIWomh2zM="
+  },
+  "org/beryx/jlink#org.beryx.jlink.gradle.plugin/3.0.1": {
+   "pom": "sha256-MRg/jaYel0ILAf4NarvkrGfgYY5PxAEyfBu8HvoBCqw="
+  },
+  "org/fusesource#fusesource-pom/1.12": {
+   "pom": "sha256-xA2WDarc73sBwbHGZXr7rE//teUxaPj8sLKLhOb9zKE="
+  },
+  "org/fusesource/jansi#jansi/2.4.0": {
+   "jar": "sha256-bNkZkTI917L7KMqT16wSr1qGovUyeeKzWCezAxP9C58=",
+   "pom": "sha256-rECp8tDB7mMfw7CO+OLwvRS6IgEcp2/xvPZftWnq3zU="
+  },
+  "org/gradle/toolchains#foojay-resolver/0.8.0": {
+   "jar": "sha256-+Q5pNRY46QueyYSOdZ0hhjWQfAklQRkRUAN7CyLlFAw=",
+   "module": "sha256-jDzPVNoHLGSkDgaIKqplIzbLKe7C6iMPBtaEOrs4TVE=",
+   "pom": "sha256-pxZyrK0MCu4576V1P1yU+aSjWh2sBl4ii8rDQt6nxUg="
+  },
+  "org/gradle/toolchains/foojay-resolver-convention#org.gradle.toolchains.foojay-resolver-convention.gradle.plugin/0.8.0": {
+   "pom": "sha256-O2ciN72cwejoyobvWnkgpnj2nQTS9L+9DFouedRcXLU="
+  },
+  "org/javamodularity#moduleplugin/1.8.15": {
+   "jar": "sha256-TtYKjxlMndPuoesswP//5xo9gr+lr6YYszce8WDEdGI=",
+   "module": "sha256-rVmC0YlFvQQqTzjgQ+m2X90tdaek+LtlZ8ivt57NSPo=",
+   "pom": "sha256-BH+RV4mcE+kqwL9wlgswRdu77RoUOL6Y34YGIcjgk3A="
+  },
+  "org/javamodularity/moduleplugin#org.javamodularity.moduleplugin.gradle.plugin/1.8.15": {
+   "pom": "sha256-FL6DuFvFUx4otorZSr54f4wPPdBGThV0XPJc9Nbjc1k="
+  },
+  "org/jetbrains#annotations/13.0": {
+   "jar": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=",
+   "pom": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
+  },
+  "org/jetbrains/kotlin#kotlin-stdlib-common/1.9.0": {
+   "jar": "sha256-KDJ0IEvXwCB4nsRvj45yr0JE1/VQszkqV+XKAGrXqiw=",
+   "pom": "sha256-NmDTanD+s6vknxG5BjPkHTYnNXbwcbDhCdqbOg3wgqU="
+  },
+  "org/jetbrains/kotlin#kotlin-stdlib-jdk7/1.9.0": {
+   "jar": "sha256-t5eaeqyUBV8Nnx/TtHzl/+HLYDKoQrqfvnGG8IUokXg=",
+   "pom": "sha256-wRB08MiYqYuGPGFEcdQ409+Soewzgqbjf5NdfXGVS1o="
+  },
+  "org/jetbrains/kotlin#kotlin-stdlib-jdk8/1.9.0": {
+   "jar": "sha256-pZ+iT98f+1lLrs2/D9EAEPl3zqECNtSH/jRkl3pzd/o=",
+   "pom": "sha256-ZNWY3YjiUEZnMeIDBKtvBsu7urfuMitHA7a1n4gcT5I="
+  },
+  "org/jetbrains/kotlin#kotlin-stdlib/1.9.0": {
+   "jar": "sha256-Na7/vi21qkRgcs7lD87ki3+p4vxRyjfAzH19C8OdlS4=",
+   "pom": "sha256-N3UiY/Ysw+MlCFbiiO5Kc9QQLXJqd2JwNPlIBsjBCso="
+  },
+  "org/openjdk/jmh#jmh-core/1.37": {
+   "jar": "sha256-3A6vK78ANqcLYHmMeF1uA6na8GtouO2w8bqes0IbrrM=",
+   "pom": "sha256-BEU74Abwb4bXxD88SS97TrM2JoDK5PHugLpl2yM3P1o="
+  },
+  "org/openjdk/jmh#jmh-parent/1.37": {
+   "pom": "sha256-DCTyFvNjfd52ORFPcCc6aX+FRvekxtWs1Mxtrum+9Mk="
+  },
+  "org/openjfx#javafx-plugin/0.1.0": {
+   "jar": "sha256-Xq7sB5m0QGRrDKTP2iGaMttr4rpXktAyoNpKOlw4j6s=",
+   "module": "sha256-rf+3RA0kntF8BJOD1nBp+UU7F3gncMAFtoKkNBbYNmE=",
+   "pom": "sha256-NMjfVSfrWjXl8AmjzeH3oInEzkoOclgC8uy+UDu9PLY="
+  },
+  "org/openjfx/javafxplugin#org.openjfx.javafxplugin.gradle.plugin/0.1.0": {
+   "pom": "sha256-1tASf/Q2PQAXPDV6mByec+/wPDCl0Ohq2CtgVPrvqEE="
+  },
+  "org/openrewrite#plugin/6.11.2": {
+   "jar": "sha256-dAt66QGZroKUlK4Jfib2q09UNzq0d3eC9yAUMyfL9fs=",
+   "module": "sha256-iA8IW7839ZimMSQz43weQHNo+4bEU9yqx6kC8n6u6n0=",
+   "pom": "sha256-RimWO6LSfL3l71E84EzahIQGwql6NevGzjV13W2fCYM="
+  },
+  "org/openrewrite#rewrite-bom/8.23.1": {
+   "pom": "sha256-8u0Wv2wmF542ps1nOlVp7peJ4Mrqlf0LCiEtVKJcTyI="
+  },
+  "org/openrewrite/rewrite#org.openrewrite.rewrite.gradle.plugin/6.11.2": {
+   "pom": "sha256-bWFob6WyvE+GbjsVgCm5iv3ZYtn6iw3k5xG+e10m4H4="
+  },
+  "org/sonatype/oss#oss-parent/7": {
+   "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
+  },
+  "org/sonatype/oss#oss-parent/9": {
+   "pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
+  }
+ },
+ "https://repo.maven.apache.org/maven2": {
+  "at/favre/lib#hkdf/1.1.0": {
+   "jar": "sha256-gexMVudA1EC8lCb6YAyu5Ku26fTO/1dunOznw4F8WgY=",
+   "pom": "sha256-HCRX381QzRlXEdO38sd7YLFf+8YukrOvxTujzKawfHg="
+  },
+  "com/dlsc#dlsc-maven-parent/1.2.0": {
+   "pom": "sha256-p8CBi7FQmIk6zmfeQXEziZyrn6ANUKNxDMQFmdaoQyA="
+  },
+  "com/dlsc/gemsfx#gemsfx/2.6.0": {
+   "jar": "sha256-aquYe1ejruKNQJPgtvxrm9RSicErcfs6qiYL//9zk24=",
+   "pom": "sha256-edvfx3x1xd6lOE8D6aJDizzq1e5ZJBCtls2Q2TzmZ8M="
+  },
+  "com/dlsc/gemsfx#parent/2.6.0": {
+   "pom": "sha256-nSHYQq+N0GgUmQ06p5Vtnsu+3BAua3y5Rser3CqNOZ8="
+  },
+  "com/dlsc/pickerfx#parent/1.2.0": {
+   "pom": "sha256-4lUHLdlg6zdXzIFKUCAi2JZ6qsn/65YQVIi1nVn6Bz4="
+  },
+  "com/dlsc/pickerfx#pickerfx/1.2.0": {
+   "jar": "sha256-Bb9i2x4nDgVrgCvnEgA2USFljBvuotFqgTGE8H9ZLSU=",
+   "pom": "sha256-9+Gvj6sKVXhyzq9XmHKtd4E3hsvr15iqGS8QD0BV6VQ="
+  },
+  "com/dlsc/unitfx#unitfx-parent/1.0.10": {
+   "pom": "sha256-z1bPD/5QLEIs94RW+7gVoiZHEnArhkw4YuLNaubj5wo="
+  },
+  "com/dlsc/unitfx#unitfx/1.0.10": {
+   "jar": "sha256-Sxhrmeu47j3uesKeevLS+/dkeQQ8cj+q1Zaad+WhnBg=",
+   "pom": "sha256-6v50YYv2uOH3NAVfC75ayZ7hfLkWxfW8AJppE0uCOb8="
+  },
+  "com/fasterxml#aalto-xml/1.3.2": {
+   "jar": "sha256-3PLV9FMFbDzoSMr/QXkCG/uDte+zo9d5Qzxb1wl2Bos=",
+   "pom": "sha256-5G98AijEtoWJ2njFJgySfvR5nydr9g5sGqxDOpjK9hw="
+  },
+  "com/fasterxml#oss-parent/35": {
+   "pom": "sha256-r8Be0hBk6srI3jACUwyxkiCL0RTrJIQX2tGIbL9UBW4="
+  },
+  "com/fasterxml#oss-parent/38": {
+   "pom": "sha256-yD+PRd/cqNC2s2YcYLP4R4D2cbEuBvka1dHBodH5Zug="
+  },
+  "com/fasterxml#oss-parent/43": {
+   "pom": "sha256-5VhcwcNwebLjgXqJl5RXNvFYgxhE1Z0OTTpFsnYR+SY="
+  },
+  "com/fasterxml#oss-parent/44": {
+   "pom": "sha256-PplVTpaDtHlO11OM10Rsk4wZtswb8F+dFIBzkGuQ/iI="
+  },
+  "com/fasterxml#oss-parent/50": {
+   "pom": "sha256-9dpV3XuI+xcMRoAdF3dKZS+y9FgftbHQpfyGqhgrhXc="
+  },
+  "com/fasterxml#oss-parent/56": {
+   "pom": "sha256-/UkfeIV0JBBtLj1gW815m1PTGlZc3IaEY8p+h120WlA="
+  },
+  "com/fasterxml#oss-parent/58": {
+   "pom": "sha256-VnDmrBxN3MnUE8+HmXpdou+qTSq+Q5Njr57xAqCgnkA="
+  },
+  "com/fasterxml/jackson#jackson-base/2.16.1": {
+   "pom": "sha256-jiOFFhGXyf4S3JlltMi1fz0QMhdRIgW1tgudxnW86o0="
+  },
+  "com/fasterxml/jackson#jackson-base/2.17.0": {
+   "pom": "sha256-w9lEq1Kiy2/0VJ3O6wTUIajeYyo8yl3UVPq8f1KsMeI="
+  },
+  "com/fasterxml/jackson#jackson-bom/2.13.4.20221013": {
+   "pom": "sha256-y2P4/5jHzL5THjdkviyR0nW4/P4pcs1nqn8KeBojmjY="
+  },
+  "com/fasterxml/jackson#jackson-bom/2.16.1": {
+   "pom": "sha256-adi/myp9QsnPHXCtgr5C9qxv14iRim4ddXkuzcwRegs="
+  },
+  "com/fasterxml/jackson#jackson-bom/2.17.0": {
+   "pom": "sha256-SWSsYtWw5Ne/Vuz4sscC+pkUGCpfwtLnZvTPdoZP0qU="
+  },
+  "com/fasterxml/jackson#jackson-parent/2.13": {
+   "pom": "sha256-K7qJl4Fyrx7/y00UPQmSGj8wgspNzxIrHe2Yv1WyrVc="
+  },
+  "com/fasterxml/jackson#jackson-parent/2.16": {
+   "pom": "sha256-i/YUKBIUiiq/aFCycvCvTD2P8RIe1gTEAvPzjJ5lRqs="
+  },
+  "com/fasterxml/jackson#jackson-parent/2.17": {
+   "pom": "sha256-rubeSpcoOwQOQ/Ta1XXnt0eWzZhNiSdvfsdWc4DIop0="
+  },
+  "com/fasterxml/jackson/core#jackson-annotations/2.16.1": {
+   "jar": "sha256-pHMHceakld03k6Qs24zmvduWx34V9AyY/Y2aeuCecoY=",
+   "module": "sha256-oBBBBbhXmkrFKxTH+2qLPxPfU9iPT8lCoZrJy/6E9Zo=",
+   "pom": "sha256-xt/2p4sBSYkppprzZObLeK73LSpFJUuS1klbKhmOwSk="
+  },
+  "com/fasterxml/jackson/core#jackson-annotations/2.17.0": {
+   "jar": "sha256-hWJWmgAdRuhOojgCJX4zyPaLJOtHweDv0TOgNyxRKVk=",
+   "module": "sha256-RkPjPFKL6kG0/F7A4vivbBzVlQAr4voTzE+pF2JXf7w=",
+   "pom": "sha256-yHz4sMhDRDpM7E5pp4kTM10OR7FqGdI8IcI4JuCS+Mk="
+  },
+  "com/fasterxml/jackson/core#jackson-core/2.16.1": {
+   "jar": "sha256-9fjvkGCeZP7ILrkI5JfcfYGy65g/5Qm4cCkqGTzeTfs=",
+   "module": "sha256-S6CAt7eaIxoJv7AoTCyURJ7OumQzJlWRwe2CDWBzpuI=",
+   "pom": "sha256-Hu0WEE2ArswTfEH+FuSj/1q5or+ossScV3L+Sl/S5s4="
+  },
+  "com/fasterxml/jackson/core#jackson-core/2.17.0": {
+   "jar": "sha256-Vb4TD2poA4CIomGFbE44POeZV6D8GinsshOp79bvQ4k=",
+   "module": "sha256-PSDo4ew+imyoB/J3vL2UM//DSs27X9PcJIWs8lKXlIc=",
+   "pom": "sha256-lR2zV/nEmlyId8CJYMSoroa9jJqohwYmZL0E96/+6pU="
+  },
+  "com/fasterxml/jackson/core#jackson-databind/2.16.1": {
+   "jar": "sha256-uvio6+6PRe9ozdXi3Tkjs+KWwJN7luwLSAaqOjG8zR0=",
+   "module": "sha256-tDy1vynzVFuW6QV0jyU5FpXGIHEwMnxFGT/R3DdI2f8=",
+   "pom": "sha256-fIprQo6kaI0BIGlWzMr7I6ySj8adcXp2vdd0M0jSjbg="
+  },
+  "com/fasterxml/jackson/core#jackson-databind/2.17.0": {
+   "jar": "sha256-0O1bVMsbC7sIKOJM51KkOgBtwYizTjpK4yOKzHtjdBg=",
+   "module": "sha256-fHs6Ikpqvls4uhoi/kVMCyVh80uyfnI8FwkluK0Akhs=",
+   "pom": "sha256-itZM7RCQyt5O90sVYbmWOkUeM/Sc8/oCp4y7LaCvzxc="
+  },
+  "com/fasterxml/jackson/dataformat#jackson-dataformat-csv/2.16.1": {
+   "jar": "sha256-7aBbHqTiDzaafnPVGbA8SFSX7HzJJDYiaPBvvXr3ob0=",
+   "module": "sha256-wlMG3ZnsfpOimIdHqKgy+8UNxwm8NDxyzndbzQ8/h3U=",
+   "pom": "sha256-nsHgPUHXk2//3LgE0sHQXCyDul7npvXYWwm0PkmH9Fs="
+  },
+  "com/fasterxml/jackson/dataformat#jackson-dataformat-smile/2.16.1": {
+   "jar": "sha256-N2d0Ty435uZyw6mBdOaFZ5B9GOpcRRsgOhnnsK2TQ1Q=",
+   "module": "sha256-Gstdx7Rb/kYEdBemRyijrWm2FsdTIcFpwGPD0CvhK0I=",
+   "pom": "sha256-vWoXuvgb1M2uGZBp+MoPm7JGwV3YtkzsdDIBxtz+9qk="
+  },
+  "com/fasterxml/jackson/dataformat#jackson-dataformat-xml/2.16.1": {
+   "jar": "sha256-uOc/oXHRJ2gyq78g67TfWX43dAX4de05gIzumsyj06w=",
+   "module": "sha256-1w5SJRr2K5qfp47uA3tqJu4ZmTAphVNh8+EQKN5aR68=",
+   "pom": "sha256-khKEVzDdd22UE76t2JQRSQ9UG4/a7wMdIL380dRH0uA="
+  },
+  "com/fasterxml/jackson/dataformat#jackson-dataformat-yaml/2.17.0": {
+   "jar": "sha256-RrZazgNrAXQ3ELz8nn8EHt7S/IK6DT2D4ZsyyBjBi0w=",
+   "module": "sha256-IT9a3fdRMt9CITThwUAswirxt0EiJfk/f1TuDlrt0Jc=",
+   "pom": "sha256-eGjm/vOpdpC6N9WO4lfw5PejOaU1BHPwhI5scuRh2Mk="
+  },
+  "com/fasterxml/jackson/dataformat#jackson-dataformats-binary/2.16.1": {
+   "pom": "sha256-2o7LvtR1bqPGKjNOR734F+omCJ8l2otbxdxcKZ6YCSs="
+  },
+  "com/fasterxml/jackson/dataformat#jackson-dataformats-text/2.16.1": {
+   "pom": "sha256-1DusfWR8CD8XI4P8YinkAOSJY6TuCfTqD2LZAySVvJQ="
+  },
+  "com/fasterxml/jackson/dataformat#jackson-dataformats-text/2.17.0": {
+   "pom": "sha256-xjxXKeuXzo1Qwi/kmg09d/89qYr4WHk4qeES3dGthQI="
+  },
+  "com/fasterxml/jackson/datatype#jackson-datatype-jdk8/2.16.1": {
+   "jar": "sha256-qapcgPjdp3rY8DUApcAhq/cgrNYKrk4pOp6MKIXW3Cs=",
+   "module": "sha256-ixUB9M569HwUmHZVBPzhXhaUduYJr1DnxpxmLMPk+ZI=",
+   "pom": "sha256-8s/ApppgZcY1xfzBr2GTy/HQqrqljrTK2k0u1lrGFBU="
+  },
+  "com/fasterxml/jackson/datatype#jackson-datatype-jsr310/2.16.1": {
+   "jar": "sha256-YoGXBoKo2j3brFS7IDybrfHCb1B/PsqkjvEDGFebya0=",
+   "module": "sha256-kUcpUsDym3P6oCNeMXzrabXy+we+thRESrukR2sK+Yw=",
+   "pom": "sha256-yd4rhj3RPkYjfRhcHmYEmE9uY0cYWeoNot/E6fLwj/E="
+  },
+  "com/fasterxml/jackson/datatype#jackson-datatype-jsr310/2.17.0": {
+   "jar": "sha256-lOovIk42YywC2x5mgSfDAYysuFmvwV3fb0xYWRepM5Y=",
+   "module": "sha256-DXg7+bYOzm6sjx8tuukW4HsxVYQX9y/OPkqrL4yW1MM=",
+   "pom": "sha256-amzpD+KlIb5thcfoIh9k0eP4jxwaDwl67LZXRLFdypk="
+  },
+  "com/fasterxml/jackson/module#jackson-module-jaxb-annotations/2.16.1": {
+   "jar": "sha256-YJYSSYlrXkm+pFZex7hgEA/zhyruHY5Bat4vgS8/yjY=",
+   "module": "sha256-0pECVhl8P5iyv7Lk9OGSDyjab+Xe2ng/1FXeMZ7QMfI=",
+   "pom": "sha256-zdtENElgsf6mNk1EYmApfXTO3fDhL2NjmWP0ci83HQQ="
+  },
+  "com/fasterxml/jackson/module#jackson-module-parameter-names/2.16.1": {
+   "jar": "sha256-mzM+fmkFOAf0Kp2S/B5dpAWTjsxGgxRrix65xpZ/6o4=",
+   "module": "sha256-WY9Np7a+PbFBVD4KBS25ZROVBDlrxP/Sy41H4XKzLuM=",
+   "pom": "sha256-D2U6eU8WV+XpMaADp6NLfP+xlbXv07OcqfrEh0yPcsU="
+  },
+  "com/fasterxml/jackson/module#jackson-modules-base/2.16.1": {
+   "pom": "sha256-iv0eHmPCIXlw+WhHArnWX1F7ctlKxmUgFB3j7WgfAtM="
+  },
+  "com/fasterxml/jackson/module#jackson-modules-java8/2.16.1": {
+   "pom": "sha256-GIciU1hZ78rlq3XDBi3DLg3ejh6qbBgh9ZBSxCA8RKU="
+  },
+  "com/fasterxml/jackson/module#jackson-modules-java8/2.17.0": {
+   "pom": "sha256-3AfGDsVkRInNBomkZKm5ap3V9qP7WePRyjPUbR2iv08="
+  },
+  "com/fasterxml/woodstox#woodstox-core/6.5.1": {
+   "jar": "sha256-ySjWBmXGQV+xw5d1z5XPxE9/RYDPWrAbHDgOv/12iH8=",
+   "pom": "sha256-SDllThaxcU509Rq8s3jYNWgUq49NUnPR3S8c6KOQrdw="
+  },
+  "com/github/ben-manes/caffeine#caffeine/2.9.3": {
+   "jar": "sha256-Hgp7vvHdeRZTFD8/BdDkiZNL9UgeWKh8nmGc1Gtocps=",
+   "module": "sha256-J9/TStZlaZDTxzF2NEsJkfLIJwn6swcJs93qj6MAMHA=",
+   "pom": "sha256-b6TxwQGSgG+O8FtdS+e9n1zli4dvZDZNTpDD/AkjI9w="
+  },
+  "com/github/docker-java#docker-java-api/3.3.6": {
+   "jar": "sha256-OoHkFFKR//tn68dcDhmlZBaTPpEtjyF8N4lAQk0jKbE=",
+   "pom": "sha256-XeM/4+u6ofcEmOMLFKkS2eD1eZpIGhevE10a5snqmyk="
+  },
+  "com/github/docker-java#docker-java-parent/3.3.6": {
+   "pom": "sha256-jdqBOGg4fuv3fOS/85xmT8ggtSDUHTOksZByq9bLWnI="
+  },
+  "com/github/docker-java#docker-java-transport-zerodep/3.3.6": {
+   "jar": "sha256-/f1MfYHq+GWebOa9u5hiKGGdnHtlTb1chavQRPHeAzA=",
+   "pom": "sha256-D7UCE9aHUCOHnIts1pH1ZR5ynFBiSXipDrmhQYq8Tpc="
+  },
+  "com/github/docker-java#docker-java-transport/3.3.6": {
+   "jar": "sha256-MhUpuq96t/UMPppW83ttvNnvSgothGYRDiAqbgf4hZg=",
+   "pom": "sha256-8HHKdfDnP5fCS/rKO+385yPOEa2FEk3I0eGDBv7T0qQ="
+  },
+  "com/github/hypfvieh#dbus-java-core/4.2.1": {
+   "jar": "sha256-Onuf1UOhvpTemQCcNqwYA/CNbRI1dwbI9QQIVTFUadE=",
+   "pom": "sha256-IXRgXAmRRZPObYk10FKvENIo1SuN2V1IYRhnE1zsjIY="
+  },
+  "com/github/hypfvieh#dbus-java-parent/4.2.1": {
+   "pom": "sha256-eeJ6xZ6OgExWBdEMu45x2CHxorciTuc4B4LcV14Cdds="
+  },
+  "com/github/hypfvieh#dbus-java-transport-native-unixsocket/4.2.1": {
+   "jar": "sha256-u2fem9CBSBI7kYRY78eAVRRr1a4VOEh89KAY3Q9kSDc=",
+   "pom": "sha256-MnkIfkz4UMIYm8dSl7nnBVBSgRC+ML6Nb/eFxmGVpkU="
+  },
+  "com/github/javakeyring#java-keyring-parent/1.0.4": {
+   "pom": "sha256-bByWW9rbWaDYGa9MtdDFiZ2GBt6bgtgRt9NWcGxTv0k="
+  },
+  "com/github/javakeyring#java-keyring/1.0.4": {
+   "jar": "sha256-7c0NsZ5aIWJl2gNGFbi+8TgBaNSJFT85CtxIRJPJqlo=",
+   "pom": "sha256-/wQyxT//a1/dcnAG08orA7lEUjl7g4+PFUby92u0OSM="
+  },
+  "com/github/tomtung#latex2unicode_2.13/0.3.2": {
+   "jar": "sha256-sOJRyPXdNuZ1TOunDNRjBZ4pfgy9Iw3Jcc/bG1BY89Q=",
+   "pom": "sha256-wRAxRUgycqScz7gHpv5MuKR31ENvyQT2kRoLUEvieAo="
+  },
+  "com/github/vatbub#mslinks/1.0.6.2": {
+   "jar": "sha256-ue5zrbUjLnWQDg//nc7Cbzj+puROqxPbbudzEh9oRCA=",
+   "pom": "sha256-hdVzY9II1Vxt0ZWTsws8qLZIAW3h2/sNsfcEz9dxNzU="
+  },
+  "com/github/weisj#jsvg/1.2.0": {
+   "jar": "sha256-kS832F3qr1t0dwD1vTdhqTsUpRYZAOdDbP84a2F2EYo=",
+   "pom": "sha256-L1qCkk25xJTbGD3ukkL1S2/TI6/bd0oX5GMlHfPle2A="
+  },
+  "com/google/code/findbugs#jsr305/3.0.2": {
+   "jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=",
+   "pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4="
+  },
+  "com/google/code/gson#gson-parent/2.10": {
+   "pom": "sha256-+1OsCwbBkRbKYaw0S03+inwpzE+Bs1POiJSTpQOQBPs="
+  },
+  "com/google/code/gson#gson/2.10": {
+   "jar": "sha256-DN0WPONZiiD8BO7nGxQLJPbyo7NfCkmdu92YUug/v68=",
+   "pom": "sha256-rGnZ8lQmDK6rOZjqrWDzVVmcJRIeGVFWv9/8ijVfxr0="
+  },
+  "com/google/errorprone#error_prone_annotations/2.10.0": {
+   "jar": "sha256-oknU0l37htQebIL8M131gBifDJ/uq9xTIz/B5QYHJKE=",
+   "pom": "sha256-1oDcn1eKd6bc2ZKywyUOsWinIUzyf48MrB8GUmcQwMw="
+  },
+  "com/google/errorprone#error_prone_annotations/2.26.1": {
+   "jar": "sha256-3iXy2aIVZSm9dl9R2O/fwN+nMB4E77nMdbfxDPXQ4Ps=",
+   "pom": "sha256-rqfpkeLf3LR/X71QhYdTX3gCvLni/C1Ou1C+QbaE2p8="
+  },
+  "com/google/errorprone#error_prone_parent/2.10.0": {
+   "pom": "sha256-B4kah8SQ+QDBIJe+6V7By24HHIp9+BBmY4fgx3Lwifo="
+  },
+  "com/google/errorprone#error_prone_parent/2.26.1": {
+   "pom": "sha256-SmrQDTGwpa3Nmk9gUGXVtEX65KBMv4J+XRrBB34vgU0="
+  },
+  "com/google/guava#failureaccess/1.0.2": {
+   "jar": "sha256-io+Bz5s1nj9t+mkaHndphcBh7y8iPJssgHU+G0WOgGQ=",
+   "pom": "sha256-GevG9L207bs9B7bumU+Ea1TvKVWCqbVjRxn/qfMdA7I="
+  },
+  "com/google/guava#guava-parent/26.0-android": {
+   "pom": "sha256-+GmKtGypls6InBr8jKTyXrisawNNyJjUWDdCNgAWzAQ="
+  },
+  "com/google/guava#guava-parent/33.1.0-jre": {
+   "pom": "sha256-D73wcsyo4Fa6MVQrt18MFJCRRABYbUukIuz8fR38ecY="
+  },
+  "com/google/guava#guava/33.1.0-jre": {
+   "jar": "sha256-NGrsDrjImHNgyKJk5w/xDC+6dgRG6yfoqwfnjnh6df4=",
+   "module": "sha256-6qUNmCgORsANUYq/FUgp3pm1lm0bb+KLffHVvZB+dKg=",
+   "pom": "sha256-VXQa0W+Yzubm3Ard3UOAacxeP/KaJuMXXU/qKHaSVLc="
+  },
+  "com/google/guava#listenablefuture/9999.0-empty-to-avoid-conflict-with-guava": {
+   "jar": "sha256-s3KgN9QjCqV/vv/e8w/WEj+cDC24XQrO0AyRuXTzP5k=",
+   "pom": "sha256-GNSx2yYVPU5VB5zh92ux/gXNuGLvmVSojLzE/zi4Z5s="
+  },
+  "com/google/j2objc#j2objc-annotations/3.0.0": {
+   "jar": "sha256-iCQVc0Z93KRP/U10qgTCu/0Rv3wX4MNCyUyd56cKfGQ=",
+   "pom": "sha256-I7PQOeForYndEUaY5t1744P0osV3uId9gsc6ZRXnShc="
+  },
+  "com/googlecode/javaewah#JavaEWAH/1.2.3": {
+   "jar": "sha256-1lImlJcTxMYaeE9BxRFn57Axb5N2Q5jrup5DNrPZVMI=",
+   "pom": "sha256-5O1sZpYgNm+ZOSBln+CsfLyD11PbwNwOseUplzr5byM="
+  },
+  "com/googlecode/plist#dd-plist/1.28": {
+   "jar": "sha256-iO2Ocw9zhil0hRdsQ4cUbGkUo4wOWPwpbooBzcO2IeE=",
+   "pom": "sha256-64AZrY6Ql2ztM0sYOyPxPxnQi9uuteSrKEpFoos4aIs="
+  },
+  "com/h2database#h2-mvstore/2.2.224": {
+   "jar": "sha256-EMeCk8sHu+6zewzCyRmnkJ6VyeTu8EZ/Ib+WGySSIUw=",
+   "pom": "sha256-csQffdVNSrUhROTkmFBYBJZfpifX6UYnqjN8RUtD9KY="
+  },
+  "com/ibm/icu#icu4j/72.1": {
+   "jar": "sha256-PfVyskCmjRO1zXeK0jk+iF0mQRQ0zY8JisWYfqLmTOM=",
+   "pom": "sha256-Pe8rKa9KGa2AXLFTBWklqJqQP5L77hre4S7S/BTETug="
+  },
+  "com/konghq#unirest-java-parent/3.14.5": {
+   "pom": "sha256-LMc4Plsi7+Umtd0r7KhgCYl2G4jebQffDBf+a7UPJ8A="
+  },
+  "com/konghq#unirest-java/3.14.5": {
+   "jar": "sha256-8MwzkiHp51loG9FDX1kY9GC+rexHRcJ6hxmvbaJtReU=",
+   "pom": "sha256-qIJBno0orj+m1wqfldT6jQH4IicdBcI1egKu6r6v6pE="
+  },
+  "com/oracle/ojdbc#ojdbc10/19.3.0.0": {
+   "jar": "sha256-+iJonNP7sDf07IZBJevngyXzgR/FDPGUxr1w/n5RRWg=",
+   "pom": "sha256-pfJtJo9fU2k9CvaVIXdzZ1/ktv5lXFVm+gZihXltP9Y="
+  },
+  "com/oracle/ojdbc#ons/19.3.0.0": {
+   "jar": "sha256-bj8kNwBxbE+i6d36oIyTlK1v2jpkDTvvA5Qfe1c9+dc=",
+   "pom": "sha256-iS3lC3HfR+jb7pTomhpPLDYC+7rk/LFu+sxtdq6LnlI="
+  },
+  "com/oracle/ojdbc#osdt_cert/19.3.0.0": {
+   "jar": "sha256-+qDMpZTTVNW7H16sPa+hVoOHonV2gTqb1yPW/YdEvow=",
+   "pom": "sha256-7BCuWrL03nbJmeAWpivQ4f49t9YwMLE1FQ6/ZzOWuog="
+  },
+  "com/oracle/ojdbc#osdt_core/19.3.0.0": {
+   "jar": "sha256-x6kMB6Euc9A8Ht1qAuaZABIT5pj+D1IloncczUarC2M=",
+   "pom": "sha256-8ydgabF5+h8t8AXptZtyzyQp2Sfcke7yDKOuMEGKeZw="
+  },
+  "com/oracle/ojdbc#simplefan/19.3.0.0": {
+   "jar": "sha256-UTjWWO3/DgEG8FWfaMcvuQ8c00OBSSmVt10AEuqeEvI=",
+   "pom": "sha256-8kMWnRLNjdURbYO+vsySNSiNGGFySLkjOa3FIX/W5wE="
+  },
+  "com/oracle/ojdbc#ucp/19.3.0.0": {
+   "jar": "sha256-I9jevkCnZN901e2n6MHOmywZCjT3OcpNdR6qlBFNMcw=",
+   "pom": "sha256-+SvQTVeVmp5ZlqjFSYluZRJ5ucW5VAE2EMpjN1zbItU="
+  },
+  "com/puppycrawl/tools#checkstyle/10.15.0": {
+   "jar": "sha256-RI7oAzg3HwsbSuEhPw7bJI0rYEJnpb75l+ARDVxP8aE=",
+   "pom": "sha256-UMoBscqFa2DqEzp9dA2RLUYqIhTpjpCzkBU5hf14K1A="
+  },
+  "com/salesforce/maven#MavenBase/1.0.19": {
+   "pom": "sha256-K6DjALx2Etaz4MDWYiw7Jv0M1s2s2JmuRWsyaw6F8c8="
+  },
+  "com/salesforce/maven#MavenParent/1.0.19": {
+   "pom": "sha256-3OlrnKlw7dinNuI9yiDal9CakdYh1mzNzGylQAdehoU="
+  },
+  "com/squareup/okhttp3#okhttp/3.12.0": {
+   "jar": "sha256-cXh/LFmeBEHHpEE5g7/dk9QLVuG63F4EE9akxIW6PzU=",
+   "pom": "sha256-mklEjyDeMUc8RtcixQDFXhIPp4mCm7Sv3Aa7syzOqag="
+  },
+  "com/squareup/okhttp3#parent/3.12.0": {
+   "pom": "sha256-hkeC3bfMW1sPSzZ04ChLv+jVVbXVlozkN+epQvLpDKc="
+  },
+  "com/squareup/okio#okio-parent/1.15.0": {
+   "pom": "sha256-NOCaPqKqzXId85lHDQWkeuza2AEmmiEhlf+/nSEFbbI="
+  },
+  "com/squareup/okio#okio/1.15.0": {
+   "jar": "sha256-aT+jGafohDMAYCsgQCO3Z08Qbry1d/LdWAchK2YRi9I=",
+   "pom": "sha256-8cELFIDRq3X7BRoHsnPjfNolJel+Fgfug+aDO3Dhv84="
+  },
+  "com/squareup/retrofit2#parent/2.6.1": {
+   "pom": "sha256-hrrYjK2fQEK3mI3+nR5e8t6Uh4FK8sPDB6ilhdSmAp4="
+  },
+  "com/squareup/retrofit2#retrofit/2.6.1": {
+   "jar": "sha256-b+36izjQWs9OUt3ku9dK7W2+A0h8XSZ/4Ehteih+lxI=",
+   "pom": "sha256-6rtyWWf0U2/HGFSh5UW2EBKnbbnxSM/S/rTBLH6a3Xg="
+  },
+  "com/sun/activation#all/1.2.2": {
+   "pom": "sha256-GXPUmcwsEmSv8tbQUqHHFq5hPQGK4cL2EN1qTRwkV44="
+  },
+  "com/sun/activation#all/2.0.1": {
+   "pom": "sha256-ZI1dYrYVP0LxkM7S1ucMHmRCVQyc/rZvvuCWHGYWssw="
+  },
+  "com/sun/activation#jakarta.activation/2.0.1": {
+   "jar": "sha256-ueJLfdbgdJVWLqllMb4xMMltuk144d/Yitu96/QzKHE=",
+   "pom": "sha256-igaFktsI5oUyBP8LYlowFDjjw26l8a5lur/tIIUCeBo="
+  },
+  "com/sun/istack#istack-commons-runtime/4.0.1": {
+   "jar": "sha256-n5ERX0SThIhvVyvWLIgS7hAEJz1LXIXKxlF5rUwWmQ8=",
+   "pom": "sha256-OPtqwbPZtUmt8h99yEzRXBu3x1zOtYEm6b0Wy+bd7u8="
+  },
+  "com/sun/istack#istack-commons-runtime/4.1.2": {
+   "jar": "sha256-f9Z5I2H03QD4xWr0ogzswAZt7qSo897Dg0ivI/wilu4=",
+   "pom": "sha256-EiKikL7dtvbpK8mZvOvDaW/NbXIhWFbSJHJ6e8LcOso="
+  },
+  "com/sun/istack#istack-commons-tools/4.0.1": {
+   "jar": "sha256-NEhuoD6CKWZ9cS4RLhZK3u11NMqBcYuw5lMHK362B4Y=",
+   "pom": "sha256-doe2Z9DL1OB5n8wqq9N64pJ7ORg4AATZR79eHV172M4="
+  },
+  "com/sun/istack#istack-commons/4.0.1": {
+   "pom": "sha256-zDvPJtQsLgI6SpDkfzMXk+DZR2uvJyetndyLvnNSFsI="
+  },
+  "com/sun/istack#istack-commons/4.1.2": {
+   "pom": "sha256-2Ig+twNkcB2uDjdEnIj9knUResPYYEDonxvj6dR+nJ0="
+  },
+  "com/sun/xml/bind#jaxb-bom-ext/3.0.2": {
+   "pom": "sha256-jUSIUplsdYMRpbs9oecjTGqGefTRO1InWxSp9RevjBA="
+  },
+  "com/sun/xml/bind#jaxb-bom-ext/4.0.3": {
+   "pom": "sha256-SkQftgU/yfRooSve6hy48Efq9kNzA34/BJrUMEJ/0PA="
+  },
+  "com/sun/xml/bind/external#relaxng-datatype/3.0.2": {
+   "jar": "sha256-wYsnDxQPFerIy77dRsx3cn4C92haLi237BIgSZkNFms=",
+   "pom": "sha256-8jwf3cYFxiEYtS/1SkTfU9CP4ypQSPtWKfn/yZ9bQQI="
+  },
+  "com/sun/xml/bind/external#rngom/3.0.2": {
+   "jar": "sha256-qo64ztOBV2dT3QBxZXliuNjmDmMnYwmmb1TPn4o80xM=",
+   "pom": "sha256-twSdFXrnU0PYywdBPmPIV4Q9TXsBXokXv0H5S7dP4ro="
+  },
+  "com/sun/xml/bind/mvn#jaxb-codemodel-parent/3.0.2": {
+   "pom": "sha256-sMPbw6G+mLHxcPIoNWNEFzSKK+S0oDwLtNu7hD2Dt2o="
+  },
+  "com/sun/xml/bind/mvn#jaxb-external-parent/3.0.2": {
+   "pom": "sha256-ExwRX0kx+YQ8rtDHeOD0Rb75zr+WvtiZNXh1DoyVYoE="
+  },
+  "com/sun/xml/bind/mvn#jaxb-parent/3.0.2": {
+   "pom": "sha256-HfAhd4Qlf3/Dq0XIzuIU7CBYrnbEH7zZz4OU1emMlnM="
+  },
+  "com/sun/xml/bind/mvn#jaxb-parent/4.0.3": {
+   "pom": "sha256-6WIwlX8fVlh/nP25dKNr7XcH6JYWtakKknss99NHZ28="
+  },
+  "com/sun/xml/bind/mvn#jaxb-runtime-parent/3.0.2": {
+   "pom": "sha256-mFAJ3lm0JVXoj+4X8tRGfYT2widkb4Pm/Bsx80a4690="
+  },
+  "com/sun/xml/bind/mvn#jaxb-runtime-parent/4.0.3": {
+   "pom": "sha256-PjQHp7FdgRMzJfEsVXN8xGeoyhGh5DsTotS9+HBW2no="
+  },
+  "com/sun/xml/bind/mvn#jaxb-txw-parent/3.0.2": {
+   "pom": "sha256-DVq8zIBaLrvyXD8uwbPkLc3rFuqckFuYVnRiAWjBoKs="
+  },
+  "com/sun/xml/bind/mvn#jaxb-txw-parent/4.0.3": {
+   "pom": "sha256-hU4ErXwT/9tlUbKQ6apsCN10JQdTvMgB4HZVB9EYfXw="
+  },
+  "com/sun/xml/dtd-parser#dtd-parser/1.4.5": {
+   "jar": "sha256-pM1q3c7ULi+HDcyhcW9FnaUfBvL+SUMNLRKPFHyOkp0=",
+   "pom": "sha256-sKYTLhmm4ALSU5VPat87YaJjVvz3f16PzEOpz9senUA="
+  },
+  "com/tngtech/archunit#archunit-junit5-api/1.2.1": {
+   "jar": "sha256-zAxo/vGa3fpBwaGDYIsQdd6+/iueLzzcAfQJYZT2u0g=",
+   "pom": "sha256-jpvGRO2Ygl/Jv1w/+Shsg2OMODLXAs+TcsZkhhQO3IU="
+  },
+  "com/tngtech/archunit#archunit-junit5-engine-api/1.2.1": {
+   "jar": "sha256-60XLhCUj2ne8DlDQRPvWftuwaEwAjsApGJGzTBSCqPc=",
+   "pom": "sha256-fBFqW8OgjDIiAIYwBl6aFQH/5GMMYXx53Ljmtp4ySWI="
+  },
+  "com/tngtech/archunit#archunit-junit5-engine/1.2.1": {
+   "jar": "sha256-bGwGyDAtt5rkq9xKpWEPqZURFfaTgbNCy2O3qBmgefQ=",
+   "pom": "sha256-LW4u2WZKQaaZxS5vbhjZpcojmXAOUjR6f6nAS3IMwDg="
+  },
+  "com/tngtech/archunit#archunit/1.2.1": {
+   "jar": "sha256-eLPLD4NQmPImSlnnkdiF+AitgNJCXvKY3Cz+0DPGueg=",
+   "pom": "sha256-GA8sOPoquiEKfyUHxdC1B1FghhfbFK/mvS8iqm/lDbU="
+  },
+  "com/vladsch/flexmark#flexmark-ext-emoji/0.64.8": {
+   "jar": "sha256-AS0ttRRjr9hHAmJ+ST/tzkLrfesbrjCd3O/RgasoPL4=",
+   "pom": "sha256-N1dSYA7KUGOae9HyFnK282sDFbYCoOcKDzoGRZZxQKk="
+  },
+  "com/vladsch/flexmark#flexmark-ext-gfm-strikethrough/0.64.8": {
+   "jar": "sha256-/GytAm+9A2s//QRIJkNgpfG1cnVu80J/8CJxW3/F8cM=",
+   "pom": "sha256-29iSNA0WNyOaf2bF5SGSELfNQX0f13HOk6llsD9xgog="
+  },
+  "com/vladsch/flexmark#flexmark-ext-ins/0.64.8": {
+   "jar": "sha256-W2G4PDHLC9MnPL8SrtOIe2O4vcbfoXsD7PR5zxzhdr0=",
+   "pom": "sha256-TPZAzDnlBtzCvF7Sk0ZOiet9u3X8chhlgre2M8ziWyE="
+  },
+  "com/vladsch/flexmark#flexmark-ext-superscript/0.64.8": {
+   "jar": "sha256-RXkzMk0cqfKDvBWhhCd3xt8DhfMY/M6t5N5BYhOV5AI=",
+   "pom": "sha256-+JfvOutkMsN/uIgBcgUxFtEa84rkcJyQiqcBVM0mGh4="
+  },
+  "com/vladsch/flexmark#flexmark-ext-tables/0.64.8": {
+   "jar": "sha256-zfgtJuES6WrefjcBOK6xaSC34tQR0gxsFcsaz6zR7x8=",
+   "pom": "sha256-+Lnuh0FZExL8I1PkfMjMbZIud2RInYOrrX0V8zU33PU="
+  },
+  "com/vladsch/flexmark#flexmark-ext-wikilink/0.64.8": {
+   "jar": "sha256-8y73ee77TDuA1b6/PEt61yBvxG4IOlkBz1Hbe0U1/3k=",
+   "pom": "sha256-Vr+s6mEz9k+F30Ir6iY/9USKNWCxfSIXw8LSvJRPtbo="
+  },
+  "com/vladsch/flexmark#flexmark-html2md-converter/0.64.8": {
+   "jar": "sha256-PySpCo/t1nCPBr5yu8n19SEavEnDXulZGM57C0FlHmI=",
+   "pom": "sha256-UrrKRFXJePTvC0NK2oOfmHQy9JaQFS7yDkxvHmYb7TA="
+  },
+  "com/vladsch/flexmark#flexmark-java/0.64.8": {
+   "pom": "sha256-QHv3UvN2KqkIxfxNZkuJOZTRt4OqIKKWakP4bBVetDM="
+  },
+  "com/vladsch/flexmark#flexmark-jira-converter/0.64.8": {
+   "jar": "sha256-zMHDqWWaEEt1pTojIenB1M7bBazYZ9Q2bYuOFke9N90=",
+   "pom": "sha256-aO668VQ27ex78DMIQgcN0iOqcXQcaX17yQKVEdlG4II="
+  },
+  "com/vladsch/flexmark#flexmark-util-ast/0.64.8": {
+   "jar": "sha256-pTQvZExqXzfVAvIlw6DLaZwmNiHILnINnAjrpanzuNM=",
+   "pom": "sha256-M5IPcD8naQ/qq7CKQ07O8g073bpMbcF9m1EYACUHITM="
+  },
+  "com/vladsch/flexmark#flexmark-util-builder/0.64.8": {
+   "jar": "sha256-r7nIjZ9lJFHnXxqwaa193XkdcS6yEcUdjSqDSUJAh10=",
+   "pom": "sha256-ERKthdmLh0tJeVT6eySR9AXb4B2kso0x9XVMzFtqL6E="
+  },
+  "com/vladsch/flexmark#flexmark-util-collection/0.64.8": {
+   "jar": "sha256-Ax/wFAjQ9UxiNdsY1FHcbmsVuFmw7B5A/zQpqCN1CCo=",
+   "pom": "sha256-xHLCQN7mFbkqISQcG0Lzm/44ZYlcMChulWI82UBecms="
+  },
+  "com/vladsch/flexmark#flexmark-util-data/0.64.8": {
+   "jar": "sha256-g861mJqwIFBUvxtCRG9Vy22hTBCqfCvaBdaiUEZw81M=",
+   "pom": "sha256-26l1Ca96vWwSBNwLP2K0hpzxqON8np1mNW4QqyTkhfE="
+  },
+  "com/vladsch/flexmark#flexmark-util-dependency/0.64.8": {
+   "jar": "sha256-5BrbXoFEaZtht41Q6wBO633oT5DExjYmYJ5s7l6ii0I=",
+   "pom": "sha256-0EkP+0Tt80pQprn6nrXD3XPT9weOH03oruUhmyIURVY="
+  },
+  "com/vladsch/flexmark#flexmark-util-format/0.64.8": {
+   "jar": "sha256-bJrIdoZHTt8BF7P4ONncs7ll+nK+SZjSF3tZgBNnn3M=",
+   "pom": "sha256-q+B6AP/rbr+L6DoCzOTSdpHnRUlRvnatteV9qmJiSOE="
+  },
+  "com/vladsch/flexmark#flexmark-util-html/0.64.8": {
+   "jar": "sha256-WxnmUGr/eRPHStclr3wrip8jlY5jJL8HEMWmRaRmMBc=",
+   "pom": "sha256-QSOT8DUt+GmWg4KaaRDOIX7RtSyaucYZIg1OM9W0n7o="
+  },
+  "com/vladsch/flexmark#flexmark-util-misc/0.64.8": {
+   "jar": "sha256-dEcsqBqQgOUeoaTxHCcImOPWwkLJInX6tH65k4Bsjys=",
+   "pom": "sha256-7kzBaZZgo0M+YJAy20ar+0yTTlGmP3pYOewfi2qVwOE="
+  },
+  "com/vladsch/flexmark#flexmark-util-options/0.64.8": {
+   "jar": "sha256-JIn0HpyvHZ+AYYM7MRslQDkly7Yx//K4wGkZKATW/Ig=",
+   "pom": "sha256-GA5DN4dxzcVhlDhgQ8XX9Dsq7EW9N9CJwmYV0As5i2A="
+  },
+  "com/vladsch/flexmark#flexmark-util-sequence/0.64.8": {
+   "jar": "sha256-biKXb+TpuN6U/VKZkeyy15zEgqrZSYU2dHCpO+HYJjE=",
+   "pom": "sha256-bOq0Eg9oVbt9IeVyDhVuogqWkeURN9ZGj0uQZzUvg+8="
+  },
+  "com/vladsch/flexmark#flexmark-util-visitor/0.64.8": {
+   "jar": "sha256-2bMAKoM6B4xF4TlWizBtqwrBF/+QRsah+eGAwBVFY/w=",
+   "pom": "sha256-+kWiyg+uR7+nw6GXwiuhe2QiNZhZTDimzlknPlOQwXY="
+  },
+  "com/vladsch/flexmark#flexmark-util/0.64.8": {
+   "jar": "sha256-HiTIkdrJUyu3Ir5xIscCb7R4aMPeNsAkAO7Y6a1TVyc=",
+   "pom": "sha256-g4Eg9qTozQub7BiGcCnXjxFNV3zcvOppRr65fsmM5/g="
+  },
+  "com/vladsch/flexmark#flexmark/0.64.8": {
+   "jar": "sha256-MTOHjRCPDhlk19Qn83mnQz4bcaRfnzwfq37QrAMB07A=",
+   "pom": "sha256-wwO7cco5tSiAann47wLaSpTxklt11Bh3ojRNsbwiWpI="
+  },
+  "commons-beanutils#commons-beanutils/1.9.4": {
+   "jar": "sha256-fZOMgXiQKARcCMBl6UvnX8KAUnYg1b1itRnVg4UyNoo=",
+   "pom": "sha256-w1zKe2HUZ42VeMvAuQG4cXtTmr+SVEQdp4uP5g3gZNA="
+  },
+  "commons-cli#commons-cli/1.6.0": {
+   "jar": "sha256-aeEjcFms1W8PhlTc3gnYoUEu7oKRi+9VZNUfj7J1cRs=",
+   "pom": "sha256-x3AmC5U07xOUD6CHpbAZasVKZNDc1IXermbErapsF1g="
+  },
+  "commons-codec#commons-codec/1.15": {
+   "jar": "sha256-s+n21jp5AQm/DQVmEfvtHPaQVYJt7+uYlKcTadJG7WM=",
+   "pom": "sha256-yG7hmKNaNxVIeGD0Gcv2Qufk2ehxR3eUfb5qTjogq1g="
+  },
+  "commons-codec#commons-codec/1.16.0": {
+   "jar": "sha256-VllfsgsLhbyR0NUD2tULt/G5r8Du1d/6bLslkpAASE0=",
+   "pom": "sha256-bLWVeBnfOTlW/TEaOgw/XuwevEm6Wy0J8/ROYWf6PnQ="
+  },
+  "commons-codec#commons-codec/1.16.1": {
+   "jar": "sha256-7Ie/tV8iy9GyHiGQ7toosrMS7SpDHuSfvcwBgS0EpeQ=",
+   "pom": "sha256-uCbd2S+dfMZDcaAvoIMMFU1nyYNw6lSi0ZbnLrWQrSg="
+  },
+  "commons-collections#commons-collections/3.2.2": {
+   "jar": "sha256-7urpF5FxRKaKdB1MDf9mqlxcX9hVk/8he87T/Iyng7g=",
+   "pom": "sha256-1dgfzCiMDYxxHDAgB8raSqmiJu0aES1LqmTLHWMiFws="
+  },
+  "commons-digester#commons-digester/2.1": {
+   "jar": "sha256-4LK5gKhPxlM8XOKR8ZF7MsUH9ivK1kGY//RDaMIZaj0=",
+   "pom": "sha256-FaWcDnV8bAfD0baJ1zXI46nsVpXWzrapQdQGKrIpAbc="
+  },
+  "commons-io#commons-io/2.15.1": {
+   "jar": "sha256-pYrxLuG2jP0uuwwnyu8WTwhDgaAOyBpIzCdf1+pU4VQ=",
+   "pom": "sha256-Fxoa+CtnWetXQLO4gJrKgBE96vEVMDby9ERZAd/T+R0="
+  },
+  "commons-logging#commons-logging/1.2": {
+   "jar": "sha256-2t3qHqC+D1aXirMAa4rJKDSv7vvZt+TmMW/KV98PpjY=",
+   "pom": "sha256-yRq1qlcNhvb9B8wVjsa8LFAIBAKXLukXn+JBAHOfuyA="
+  },
+  "commons-validator#commons-validator/1.7": {
+   "jar": "sha256-TXT0zk+2iyYX7a0Ibfbe/fkzhGfSN30sYuaQOOHE8C8=",
+   "pom": "sha256-UztBf2dHU/bHn6v7/vlqRj6pw8yj16g/8Ot9dmgpP8k="
+  },
+  "de/rototor/jeuclid#jeuclid-core/3.1.11": {
+   "jar": "sha256-YQbzzUZZnxpEzHn2z937hwY8CpX4z2+Z3g4uUIO/Opk=",
+   "pom": "sha256-vS3A6dN1Fn8TOTnQdApdXprF/gWGTWGs4RJxfYC4vG4="
+  },
+  "de/rototor/jeuclid#jeuclid-parent/3.1.11": {
+   "pom": "sha256-+T/FFx4EcsyDQLfOyXomFjolaNMpCEQFthjooVF1sNE="
+  },
+  "de/rototor/snuggletex#snuggletex-core/1.3.0": {
+   "jar": "sha256-7w3dJvbdYAa7KBc+GclddBNORETGdloYAG4L05LcKxs=",
+   "pom": "sha256-5ydOkNQLsH8QV1/YDte8jAhqgRA+HVhMALqxrjKphbs="
+  },
+  "de/rototor/snuggletex#snuggletex-jeuclid/1.3.0": {
+   "jar": "sha256-XALsqU5bJFi/oQuYVVZQ443GGlUauebI5JN0v76dlhk=",
+   "pom": "sha256-IbGfKgTq1ykaBhEdpQ8OmkmcyOtNY361+AOhCrYhP/I="
+  },
+  "de/rototor/snuggletex#snuggletex/1.3.0": {
+   "pom": "sha256-9oYkdlBlNa7G36UyTmJQk8fYwY47yqx1nvlDDbeK/0Q="
+  },
+  "de/sandec#JMemoryBuddy/0.5.1": {
+   "jar": "sha256-4Exc1XGjH2m7lnM0bQYhA9SPVJ/6wVu/bFyuqBhFOb4=",
+   "pom": "sha256-2Iq74jW0dpXz85Q9xT1rkh3MJXDqZgw3PuOTc4XL8bE="
+  },
+  "de/saxsys#mvvmfx-parent/1.8.0": {
+   "pom": "sha256-tp0rfN1IaPX4/rFgaV7mvP/PsIf7LYGeXXW7o1AjbJs="
+  },
+  "de/saxsys#mvvmfx/1.8.0": {
+   "jar": "sha256-BCQbjfnK7uHeBTsMRi/m4cLeMXLw6fVCsDh5CsUJHV4=",
+   "pom": "sha256-mASw53q9WQLcBOAT5LhQETFo2rjEV0kEZNK3XBud9JM="
+  },
+  "de/swiesend#secret-service/1.8.1-jdk17": {
+   "jar": "sha256-A7ouzaiq01ipF9I23oVP10b25szZp0ti98UkdzMwo0Y=",
+   "pom": "sha256-29pS9ELRHsCI5GAHXeBCgn0JEB93W8IoQoAZAtM3z+Y="
+  },
+  "de/undercouch#citeproc-java/3.0.0": {
+   "jar": "sha256-ah2CFCjGIXZiGS9pLR3sgs25vWTFz7O+R5V+Luo/EPk=",
+   "module": "sha256-0WU5hgCyIOsiGiDXydX+yX3ZBOO7p5hBVuhfWOv4mbo=",
+   "pom": "sha256-0LpxAQH7jCteBQxlLPYr+KmZT+6PBv+jzi2BLdkABMk="
+  },
+  "dev/failsafe#failsafe-parent/3.3.2": {
+   "pom": "sha256-52onlGrLqFePJthfAjPMDzlGiw58KYXcbXxs4BBVLYQ="
+  },
+  "dev/failsafe#failsafe/3.3.2": {
+   "jar": "sha256-LF3Ieabax+o6eynXleJ71JuOeQiwXC8+VgU8GdeYUPU=",
+   "pom": "sha256-elPaR8MAdPlyXIyfzWg8a/gTZ9QnO9+653PzPDR8aCs="
+  },
+  "eu/lestard#doc-annotations/0.2": {
+   "jar": "sha256-Yl5U0tQDYG0hdD/PbYsHJD7yhEQ9pNwvpBKUQX34Glw=",
+   "pom": "sha256-YT1F0/kGPP++cdD0u1U1yHa+JOOkeWTXEFWqCDRBJI4="
+  },
+  "info/debatty#java-string-similarity/2.0.0": {
+   "jar": "sha256-h2dZheY30jG1eD0f6gvZR+cSZ79VetyTzj2uyKUZvSI=",
+   "pom": "sha256-dgQpbIuuApGPJvekSKGwnzjluw2W1XhuTi3yF2B+9No="
+  },
+  "info/picocli#picocli/4.7.5": {
+   "jar": "sha256-6DqQb7mbVwkdHWisEffD0lGL16ganHGyWeLADRVkyOg=",
+   "pom": "sha256-fk6LD0t8pgdSCyDS8eWN9Pk0ymNsseuoKJz/LylWv9g="
+  },
+  "io/fabric8#kubernetes-client-bom/5.12.4": {
+   "pom": "sha256-0jI5KonD79yFqymcWpToud01vALzQM6ERv9lmqFZE6A="
+  },
+  "io/github/classgraph#classgraph/4.8.168": {
+   "jar": "sha256-IjPyDp2MY0qa8oQkYQAEHGdnDdb+OzWroXKHWACWWmg=",
+   "pom": "sha256-98UQqlWYvLu+nMT8dqy/mnD0Z3rQkaJy46weuS31zvw="
+  },
+  "io/github/fastfilter#fastfilter/1.0.2": {
+   "jar": "sha256-OPiCTQfIyTL6UMwBdfMsD/8vr7ORPNL5VxrDScljEUk=",
+   "pom": "sha256-Z+W0AfZs90NI+mBkUbg7wuoYwrWGEKikE23e0Y6IeT4="
+  },
+  "io/github/fastfilter#fastfilter_java/1.0.2": {
+   "pom": "sha256-YEBDeouTEBGJJsGgqK4aRWTisn1dFfM+jF6XgGGTGAw="
+  },
+  "io/github/java-diff-utils#java-diff-utils-parent/4.12": {
+   "pom": "sha256-2BHPnxGMwsrRMMlCetVcF01MCm8aAKwa4cm8vsXESxk="
+  },
+  "io/github/java-diff-utils#java-diff-utils/4.12": {
+   "jar": "sha256-mZCiA5d49rTMlHkBQcKGiGTqzuBiDGxFlFESGpAc1bU=",
+   "pom": "sha256-wm4JftyOxoBdExmBfSPU5JbMEBXMVdxSAhEtj2qRZfw="
+  },
+  "io/micrometer#micrometer-core/1.9.17": {
+   "jar": "sha256-w1DP3HbAg1bxKmDoQPLb6u6nVAcS1YtUvs1sMCqGFHo=",
+   "pom": "sha256-A5aSALpYr0jxc6v17OILwK8Ic1BF+/4zAl9P2aiGqxY="
+  },
+  "io/netty#netty-bom/4.1.107.Final": {
+   "pom": "sha256-w2mXVYv7ThHyAN2m7i5BpF8t+eGu9njtoI553Yk4whA="
+  },
+  "io/quarkus/gizmo#gizmo/1.0.11.Final": {
+   "jar": "sha256-pUv7ttzOkpgTRZWzzR35YbxzJGiCXybuUpbytfiMC5k=",
+   "pom": "sha256-/9w5IIbOwtuB0m4uvTYDRxHokpwoQ1uUdpGWCFNrOP0="
+  },
+  "jakarta/activation#jakarta.activation-api/1.2.2": {
+   "jar": "sha256-oYepORA671hJp6+EvX4nvi0SDEEK8pFDc3X/4GH08J0=",
+   "pom": "sha256-XlD+k4BoRx9QSn78QHGCNCW1IOq8b4DHLZNevVRoMJE="
+  },
+  "jakarta/activation#jakarta.activation-api/2.1.3": {
+   "jar": "sha256-AbF21xihaSY+eCkGkfxHmXcYa8xrMzSHMlCE1lhvRic=",
+   "pom": "sha256-slSZQMF7aGWjT2E1t3Iu2Mv+9tC2wNs3LDDwNGvIzVg="
+  },
+  "jakarta/annotation#jakarta.annotation-api/2.1.1": {
+   "jar": "sha256-X2X9r0JO7itV4diCupuzdr6T+wmze4CL5uIuiFHJCf4=",
+   "pom": "sha256-r2UOyh3huYdBAGrNglB+RAjP/t0v7jOg6kY9YVCNt+w="
+  },
+  "jakarta/inject#jakarta.inject-api/2.0.1": {
+   "jar": "sha256-99yYBi/M8UEmq7dRtk+rEsMSVm6MvchINZi//OqTr3w=",
+   "pom": "sha256-5/1yMuljB6V1sklMk2fWjPQ+yYJEqs48zCPhdz/6b9o="
+  },
+  "jakarta/platform#jakarta.jakartaee-bom/9.1.0": {
+   "pom": "sha256-35jgJmIZ/buCVigm15o6IHdqi6Aqp4fw8HZaU4ZUyKQ="
+  },
+  "jakarta/platform#jakartaee-api-parent/9.1.0": {
+   "pom": "sha256-p3AsSHAmgCeEtXl7YjMKi41lkr8PRzeyXGel6sgmWcA="
+  },
+  "jakarta/servlet#jakarta.servlet-api/6.0.0": {
+   "jar": "sha256-wDTrGvsViYfbtTpf6gyt9hHI2ujardWcRNnVq3ASnO8=",
+   "pom": "sha256-PVolnfvSuUDklcMFy6K2BhWSPcgXjgMrfvYMuyQThDk="
+  },
+  "jakarta/validation#jakarta.validation-api/3.0.2": {
+   "jar": "sha256-KRwl5pEMxqfr2W1Ma66/bXw3Z2xUgsLZYUbpAbYsH8k=",
+   "pom": "sha256-CnucYyeWiv4NgvfPT6y9p+FXloxYCNaby4AZhjspjcQ="
+  },
+  "jakarta/ws/rs#all/3.1.0": {
+   "pom": "sha256-1P3UF4DgZarNWsCZzQSQFxk3zFEi3CyO8biKh7PJQkw="
+  },
+  "jakarta/ws/rs#jakarta.ws.rs-api/3.1.0": {
+   "jar": "sha256-azs2KLi0rt2g0kwzVDNemFSX2O88UQuPMCjpINW4Zj0=",
+   "pom": "sha256-xpejA+n/wxlj6xwnW793pYOn1IKWWsTxuybckeWV/78="
+  },
+  "jakarta/xml/bind#jakarta.xml.bind-api-parent/2.3.3": {
+   "pom": "sha256-KA2lMXYBZtRBI2jQ3Yme9K6/0KfYK/IzUC4phWgGrak="
+  },
+  "jakarta/xml/bind#jakarta.xml.bind-api-parent/3.0.1": {
+   "pom": "sha256-nx+11KAun4/dYu876rlLj+p7gWQ3SMhvaKMfQPd0rVY="
+  },
+  "jakarta/xml/bind#jakarta.xml.bind-api-parent/4.0.2": {
+   "pom": "sha256-SCzbRtTdL1r33IhMim3nPd/+ba9UnvNqbAd/1uQe7Qg="
+  },
+  "jakarta/xml/bind#jakarta.xml.bind-api/2.3.3": {
+   "jar": "sha256-wEU59HLppt0MdoXqgtZ3KCJpq457rKLhRQDjgeDGzsU=",
+   "pom": "sha256-f+LKXc5LFKZGu/kh0TykLK8qLAZU2hVcdWOGXJiTlv0="
+  },
+  "jakarta/xml/bind#jakarta.xml.bind-api/3.0.1": {
+   "jar": "sha256-uPtL7j/1tcHvdxRNhBExYBjXu9Qfzx7eBkb3l4VGuGc=",
+   "pom": "sha256-onPayXQUEv2dzM6ZESmHBteJ5YLcs1GXB19v0qWw6+o="
+  },
+  "jakarta/xml/bind#jakarta.xml.bind-api/4.0.2": {
+   "jar": "sha256-DWvP5Hdj6FBHrPfDmDNtyE/4XrytCny287nT6YEkVAY=",
+   "pom": "sha256-q3Jz4mpUgks7czPUlW5uzSbeE6XrPZDuYwIxk6ktcr4="
+  },
+  "javax/measure#unit-api/2.1.2": {
+   "jar": "sha256-XZ8donteeopyNap7V0jbSjSa0D0poaIAKaiFqYni9jo=",
+   "pom": "sha256-Iwbk9m8ncc0FSEyu2lnyfIWPbl3kHVuFCOlzo2mBUHY="
+  },
+  "junit#junit/4.13.2": {
+   "jar": "sha256-jklbY0Rp1k+4rPo0laBly6zIoP/1XOHjEAe+TBbcV9M=",
+   "pom": "sha256-Vptpd+5GA8llwcRsMFj6bpaSkbAWDraWTdCSzYnq3ZQ="
+  },
+  "net/bytebuddy#byte-buddy-agent/1.14.12": {
+   "jar": "sha256-KzCakwAJLgtpb3xHH9UdmWkAHfeEyKufB5l0N9dXrW0=",
+   "pom": "sha256-ZpifcNNV1gD9TZJtiDXke30b7/Z47r7FnRljY7XNTCw="
+  },
+  "net/bytebuddy#byte-buddy-parent/1.14.12": {
+   "pom": "sha256-m3/SvyklMayw6XTZVeSjbKQTMt0Nr+icJNj+Q5uuV7A="
+  },
+  "net/bytebuddy#byte-buddy-parent/1.14.9": {
+   "pom": "sha256-Zrg0IlHTXyBj5pMW9juvywVjQv516SHA9GXC2WWTU14="
+  },
+  "net/bytebuddy#byte-buddy/1.14.12": {
+   "jar": "sha256-lwY2E01hwYOxn49Y+mMeMNLyq8o0SzeEijk8rHhj3XA=",
+   "pom": "sha256-XamVxw3nt/SoSKhUN8fd7oA9GrfKwtfY33GUw9XicU0="
+  },
+  "net/bytebuddy#byte-buddy/1.14.9": {
+   "jar": "sha256-N3NS4lMoK/hvcxrJDtiDSOj0CmPOAzwAqFmC3n55Dm8=",
+   "pom": "sha256-LWdykQ0WFpvUySKeijZc9U4ZK8Ygy8+n+EJx9dEV6BU="
+  },
+  "net/harawata#appdirs/1.2.2": {
+   "jar": "sha256-wf0q5mJLk4+7/Cr4fTdlb6lTYRNW4lKOhN0EYor4B68=",
+   "pom": "sha256-B+NZycEfUgyvAn17z9nAlpNf6AEj0lC1vr+vw8HDdWw="
+  },
+  "net/java/dev/jna#jna-platform/5.13.0": {
+   "jar": "sha256-R017iPbpcAm27B2YwwJN2VwjGHxl2r+8NTMbysPRc90=",
+   "pom": "sha256-Y7IMivBXyYGW+HieGiGm3d8Cqo84XmsEtLT58N8lcGY="
+  },
+  "net/java/dev/jna#jna-platform/5.14.0": {
+   "jar": "sha256-rkys6zhAcwwlN/m3+1WgG6ulgChrQSKVFIi87lWMJEk=",
+   "pom": "sha256-bLoOBPnuyxZIYAB5O7J+EDsPTQSF4FVOK0wK7RPS7RY="
+  },
+  "net/java/dev/jna#jna/5.13.0": {
+   "jar": "sha256-ZtT4GaBipRodVie//CP6xV0Wd/Dgof66FEqr3WcKZLs=",
+   "pom": "sha256-9RXCV4F49FJH7Mp6nh2xCVMbHELyQk4lPO6w9rjUI3Q="
+  },
+  "net/java/dev/jna#jna/5.14.0": {
+   "jar": "sha256-NO0eHyf6iWvKUNvE6ZzzcylnzsOHp6DV40hsCWc/6MY=",
+   "pom": "sha256-4E4llRUB3yWtx7Hc22xTNzyUiXuE0+FJISknY+4Hrj0="
+  },
+  "net/jcip#jcip-annotations/1.0": {
+   "jar": "sha256-vlgFOSBgxxR0v2yaZ6CZRxJ00wuD7vhL/E4IiaTx3MA=",
+   "pom": "sha256-XBnmhIzFUKlWZPsIIwS8X5/Pe2cvrwOvFjXw6TwmgXc="
+  },
+  "net/jodah#typetools/0.6.1": {
+   "jar": "sha256-7+iqots4OhUeMYgQQAgEw5kr3lQ+dKTXLeon7VR0yvo=",
+   "pom": "sha256-HxvbdkwDDZ3Q3MGAxHfDKgtwRuK6GDmAsSJXVeLegZ8="
+  },
+  "net/sf/jopt-simple#jopt-simple/5.0.4": {
+   "jar": "sha256-3ybMWPI19HfbB/dTulo6skPr5Xidn4ns9o3WLqmmbCg=",
+   "pom": "sha256-amd2O3avzZyAuV5cXiR4LRjMGw49m0VK0/h1THa3aBU="
+  },
+  "net/sf/saxon#Saxon-HE/12.4": {
+   "jar": "sha256-V1+LaW47b5qno78BYRuL8bhFdrVc4pvBZlalOhR+9EE=",
+   "pom": "sha256-op6LTcFteBhLSANZRkoazPbahWpP31vyugKtTistHBs="
+  },
+  "net/synedra#validatorfx/0.5.0": {
+   "jar": "sha256-XfN+TrBpGSzyguSXe8pCcbaitVuzIhhUbsHzB/YlxgY=",
+   "module": "sha256-/Tug0IOZVKYfG8oVdC20pC7lKUQngFYyF4Q5HjNcUo8=",
+   "pom": "sha256-nEf1KmxKSozF0fdU1cQuGIyRvoiA9PxUb50jG6FE70E="
+  },
+  "org/abego/treelayout#org.abego.treelayout.core/1.0.3": {
+   "jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=",
+   "pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw="
+  },
+  "org/antlr#ST4/4.3.4": {
+   "jar": "sha256-+SesOExG10n4texolypTrtIeADE1CSmWFu23O/oV/zM=",
+   "pom": "sha256-nnwfPkiZGUQOjBMInlljcp1bf4D3AjO/uuMJxkmryj4="
+  },
+  "org/antlr#antlr-master/3.5.3": {
+   "pom": "sha256-6p43JQ9cTC52tlOL6XtX8zSb2lhe31PzypfiB7OFuJU="
+  },
+  "org/antlr#antlr-runtime/3.5.3": {
+   "jar": "sha256-aL+fWjPfyzQDNJXFh+Yja+9ON6pmEpGfWx6EO5Bmn7k=",
+   "pom": "sha256-EymODgqvr0FP99RAZCfKtuxPv6NkJ/bXEDxDLzLAfSU="
+  },
+  "org/antlr#antlr4-master/4.11.1": {
+   "pom": "sha256-cupd6Nq7ZhV4X9D+qqur1T3NrnD+FrzXx7lobApuAK0="
+  },
+  "org/antlr#antlr4-master/4.13.1": {
+   "pom": "sha256-28/JebgFKPwMtFP8to28nSsGA6e+LNzpmrL8aHFGnRg="
+  },
+  "org/antlr#antlr4-runtime/4.11.1": {
+   "jar": "sha256-4GxlU8HMwU02BS7EsPxvE7gIz5V7Wx3D9hv0AZlq2lk=",
+   "pom": "sha256-xFbsKVkHjFkfvX72mtlACnJ5IAaNdGmJx0q4BO1oGzQ="
+  },
+  "org/antlr#antlr4-runtime/4.13.1": {
+   "jar": "sha256-VGZdKDjMZkWDQ0aO/FOeRU/JW0aooEsTxqxD/JvmNQU=",
+   "pom": "sha256-GSJrF7+jj5nqImsi6XQg4qjt4JqXQg+xrPGG2a2kZXE="
+  },
+  "org/antlr#antlr4/4.13.1": {
+   "jar": "sha256-ziYdzmlSWDmqn8W9IyzhuBOnpAp1AwcTzEqA74Fw89U=",
+   "pom": "sha256-ahWaEs/WYoqnNuw//ZM/qUEuXLy3zn7FIXo/9CDGapk="
+  },
+  "org/apache#apache/13": {
+   "pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0="
+  },
+  "org/apache#apache/16": {
+   "pom": "sha256-n4X/L9fWyzCXqkf7QZ7n8OvoaRCfmKup9Oyj9J50pA4="
+  },
+  "org/apache#apache/19": {
+   "pom": "sha256-kfejMJbqabrCy69tAf65NMrAAsSNjIz6nCQLQPHsId8="
+  },
+  "org/apache#apache/21": {
+   "pom": "sha256-rxDBCNoBTxfK+se1KytLWjocGCZfoq+XoyXZFDU3s4A="
+  },
+  "org/apache#apache/23": {
+   "pom": "sha256-vBBiTgYj82V3+sVjnKKTbTJA7RUvttjVM6tNJwVDSRw="
+  },
+  "org/apache#apache/29": {
+   "pom": "sha256-PkkDcXSCC70N9jQgqXclWIY5iVTCoGKR+mH3J6w1s3c="
+  },
+  "org/apache#apache/30": {
+   "pom": "sha256-Y91KOTqcDfyzFO/oOHGkHSQ7yNIAy8fy0ZfzDaeCOdg="
+  },
+  "org/apache#apache/31": {
+   "pom": "sha256-VV0MnqppwEKv+SSSe5OB6PgXQTbTVe6tRFIkRS5ikcw="
+  },
+  "org/apache#apache/6": {
+   "pom": "sha256-Eu21CW4T9Aw2LQvUCQJYn6lYZQUSP6Jnmc5QsRb6W7M="
+  },
+  "org/apache#apache/7": {
+   "pom": "sha256-E5fOHbQzrcnyI9vwdJbRM2gUSHUfSuKeWPaOePtLbCU="
+  },
+  "org/apache/commons#commons-compress/1.24.0": {
+   "pom": "sha256-g1qmZTLHql7G6F+FKJ2NP6raDGmLmLmxpBC4pUmcMMU="
+  },
+  "org/apache/commons#commons-compress/1.26.1": {
+   "jar": "sha256-J7tdQPN8O7cgW0oFQCR98FdxXp9su9l9Ymq4tQMYuwQ=",
+   "pom": "sha256-X0SKAh2IyW84QN/mGRKNYuXPticSzW5m3KincElFsG4="
+  },
+  "org/apache/commons#commons-csv/1.10.0": {
+   "jar": "sha256-LQbmoHpja693etjmWSVvIRkQnd4jVRybgMVCLUJLgIw=",
+   "pom": "sha256-JDVBrVAeQ+8Jus96hsh/fD7QGNNKgj/19U5ajFgRCU8="
+  },
+  "org/apache/commons#commons-lang3/3.14.0": {
+   "jar": "sha256-e5a/PuaJSau1vEZVWawnDgVRWW+jRSP934kOxBjd4Tw=",
+   "pom": "sha256-EQQ4hjutN8KPkGv4cBbjjHqMdYujIeCdEdxaI2Oo554="
+  },
+  "org/apache/commons#commons-lang3/3.8.1": {
+   "jar": "sha256-2sgH9lsHaY/zmxsHv+89h64/1G2Ru/iivAKyqDFhb2g=",
+   "pom": "sha256-7I4J91QRaFIFvQ2deHLMNiLmfHbfRKCiJ7J4vqBEWNU="
+  },
+  "org/apache/commons#commons-math3/3.2": {
+   "jar": "sha256-YmipoOo+dp/Ek6IURmZMDvZo5IyT0SZ5H28/dXl4/uI=",
+   "pom": "sha256-LNDbe843DBQEAlzAE8Efj9SfPzw0Cm0tz5nTY9eUimk="
+  },
+  "org/apache/commons#commons-parent/17": {
+   "pom": "sha256-lucYuvU0h07mLOTULeJl8t2s2IORpUDgMNWdmPp8RAg="
+  },
+  "org/apache/commons#commons-parent/28": {
+   "pom": "sha256-FHM6aOixILad5gzZbSIhRtzzLwPBxsxqdQsSabr+hsc="
+  },
+  "org/apache/commons#commons-parent/34": {
+   "pom": "sha256-Oi5p0G1kHR87KTEm3J4uTqZWO/jDbIfgq2+kKS0Et5w="
+  },
+  "org/apache/commons#commons-parent/39": {
+   "pom": "sha256-h80n4aAqXD622FBZzphpa7G0TCuLZQ8FZ8ht9g+mHac="
+  },
+  "org/apache/commons#commons-parent/45": {
+   "pom": "sha256-nIhiPs+pHwEsZz7kYiwO60Nn5eDSItlg92zSCLGk/aY="
+  },
+  "org/apache/commons#commons-parent/47": {
+   "pom": "sha256-io7LVwVTv58f+uIRqNTKnuYwwXr+WSkzaPunvZtC/Lc="
+  },
+  "org/apache/commons#commons-parent/51": {
+   "pom": "sha256-m3edGLItjeVZYFVY57sKCjGz8Awqu5yHgRfDmKrKvso="
+  },
+  "org/apache/commons#commons-parent/52": {
+   "pom": "sha256-ddvo806Y5MP/QtquSi+etMvNO18QR9VEYKzpBtu0UC4="
+  },
+  "org/apache/commons#commons-parent/56": {
+   "pom": "sha256-VgxwUd3HaOE3LkCHlwdk5MATkDxdxutSwph3Nw2uJpQ="
+  },
+  "org/apache/commons#commons-parent/58": {
+   "pom": "sha256-LUsS4YiZBjq9fHUni1+pejcp2Ah4zuy2pA2UbpwNVZA="
+  },
+  "org/apache/commons#commons-parent/61": {
+   "pom": "sha256-0+wtNYSB/lEmDBNbtg+lIRwvXhhaFOp/eNA6Fr2QmNc="
+  },
+  "org/apache/commons#commons-parent/64": {
+   "pom": "sha256-bxljiZToNXtO1zRpb5kgV++q+hI1ZzmYEzKZeY4szds="
+  },
+  "org/apache/commons#commons-parent/65": {
+   "pom": "sha256-bPNJX8LmrJE6K38uA/tZCPs/Ip+wbTNY3EVnjVrz424="
+  },
+  "org/apache/commons#commons-parent/66": {
+   "pom": "sha256-SP1tyEblax9AhmDRY+dTAPnjhLtjvkgqgIKiHXKo25w="
+  },
+  "org/apache/commons#commons-text/1.11.0": {
+   "jar": "sha256-Ks8woHCxkWPVpIDq5BGigTQehwAg41NMbV1MhHJznjA=",
+   "pom": "sha256-O0AZecBkEoXYUM8Ri04Y8EmsIj3Hherk0LNXKPxTTRE="
+  },
+  "org/apache/commons#commons-text/1.3": {
+   "jar": "sha256-gYWzpTEQktg+0fGEwtCTsxBdcmu9doZ8MrNRFUK7mag=",
+   "pom": "sha256-3usrqXAeSV3DHTJjPrhrlLJLCpbg3Gf7h+cGLxUwJ6o="
+  },
+  "org/apache/geronimo/genesis#genesis-default-flava/2.0": {
+   "pom": "sha256-CObhRvTiRSZt/53YALEodd0jZ9P2ejSrZgoSbIESFfg="
+  },
+  "org/apache/geronimo/genesis#genesis-java5-flava/2.0": {
+   "pom": "sha256-58U1i7u8J9qlsyf2O8EmUKdd3J+axtS/oSeJvh8sKds="
+  },
+  "org/apache/geronimo/genesis#genesis/2.0": {
+   "pom": "sha256-ue0vndQ0YxFY13MI7lZIYiwinM7OFyLF43ekKWkj2uY="
+  },
+  "org/apache/httpcomponents#httpasyncclient/4.1.5": {
+   "jar": "sha256-DBh3SJqdG6T6UPbPyrEdESNhiFjLMdVq+qta/dUGTZk=",
+   "pom": "sha256-beSudsiSFXUj62TD2bFNvHSnWGNrQO5MxkVqwRmYKXU="
+  },
+  "org/apache/httpcomponents#httpclient/4.5.13": {
+   "jar": "sha256-b+kCalZsalABYIzz/DIZZkH2weXhmG0QN8zb1fMe90M=",
+   "pom": "sha256-eOua2nSSn81j0HrcT0kjaEGkXMKdX4F79FgB9RP9fmw="
+  },
+  "org/apache/httpcomponents#httpcomponents-asyncclient/4.1.5": {
+   "pom": "sha256-6QGB4oDAJx/zE3QTQ+bwVAX66IJwL0WkzibewBbNnJ8="
+  },
+  "org/apache/httpcomponents#httpcomponents-client/4.5.13": {
+   "pom": "sha256-nLpZTAjbcnHQwg6YRdYiuznmlYORC0Xn1d+C9gWNTdk="
+  },
+  "org/apache/httpcomponents#httpcomponents-core/4.4.13": {
+   "pom": "sha256-xVTnAI5FF8fvVOAFzIt09Mh6VKDqLG9Xvl0Fad9Rk2s="
+  },
+  "org/apache/httpcomponents#httpcomponents-core/4.4.14": {
+   "pom": "sha256-IJ7ZMctXmYJS3+AnyqnAOtpiBhNkIylnkTEWX4scutE="
+  },
+  "org/apache/httpcomponents#httpcomponents-parent/11": {
+   "pom": "sha256-qQH4exFcVQcMfuQ+//Y+IOewLTCvJEOuKSvx9OUy06o="
+  },
+  "org/apache/httpcomponents#httpcomponents-parent/12": {
+   "pom": "sha256-QgnwlZMhKYfCnWgBkXMJ3V5vcbU7Kx0ODw77mErRH6E="
+  },
+  "org/apache/httpcomponents#httpcore-nio/4.4.13": {
+   "jar": "sha256-cfz76GkALEhWPMWXn8c0VxyNDRZ8zOQpcMky8zeYHxk=",
+   "pom": "sha256-8yDynYbZgAPg8NxA1UNj3vuLpGJr5RoNMVhbyXYqFsw="
+  },
+  "org/apache/httpcomponents#httpcore/4.4.13": {
+   "jar": "sha256-4G6J1AlDJF/Po57FN82/zjdirs3o+cWXeA0rAMK0NCQ=",
+   "pom": "sha256-j4Etn6e3Kj1Kp/glJ4kypd80S0Km2DmJBYeUMaG/mpc="
+  },
+  "org/apache/httpcomponents#httpcore/4.4.14": {
+   "jar": "sha256-+VYgnkUMsdDFF3bfvSPlPp3Y25oSmO1itwvwlEumOyg=",
+   "pom": "sha256-VXFjmKl48QID+eJciu/AWA2vfwkHxu0K6tgexftrf9g="
+  },
+  "org/apache/httpcomponents#httpmime/4.5.13": {
+   "jar": "sha256-BudU2ZJFuY3MKGDctD0g5zfWUNor8gd6EF9orMvVxcw=",
+   "pom": "sha256-k0GN8hCu7VBQJUjbzysXwPHZFEMDDnL+++7RZSscKN0="
+  },
+  "org/apache/httpcomponents/client5#httpclient5-parent/5.1.3": {
+   "pom": "sha256-onsUE67OkqOqR3SRX3WJ4MYXnXKNKsailddY7k+iTMU="
+  },
+  "org/apache/httpcomponents/client5#httpclient5/5.1.3": {
+   "jar": "sha256-KMdZJU9ONTGeB4u2/+p1Z2YI3BLLJDsk+zyHMlIpd/4=",
+   "pom": "sha256-GYirPRva4PUfIsg9yXuI+gdWGttiRGedi49xRs3ROq8="
+  },
+  "org/apache/httpcomponents/core5#httpcore5-h2/5.1.3": {
+   "jar": "sha256-0OeLoVqo6+d5grZgrEsJqV1uA129vqdiV33ByOKTWAc=",
+   "pom": "sha256-K8AxehSO3Jrv6j7BU1OU787T0TfWL3/1ZW0LA/lMB4Y="
+  },
+  "org/apache/httpcomponents/core5#httpcore5-parent/5.1.3": {
+   "pom": "sha256-pnU4hlrg83RLIekcpH1GEFRzfFUtH/KdpxTIYMmS1bs="
+  },
+  "org/apache/httpcomponents/core5#httpcore5/5.1.3": {
+   "jar": "sha256-8r8vLHdyFpyeMGmXGWZ60w+bRsTp14QZB96y0S2ZI/4=",
+   "pom": "sha256-f8K4BFgJ8/J6ydTZ6ZudNGIbY3HPk8cxPs2Epa8Om64="
+  },
+  "org/apache/logging#logging-parent/10.6.0": {
+   "pom": "sha256-+CdHWECmQIO1heyNu/cJO2/QJiQpPOw31W7fn8NUEJ4="
+  },
+  "org/apache/logging/log4j#log4j-api/2.23.1": {
+   "jar": "sha256-kuwf02qzvAneYZjS18CRRoXA9xJ+qTGswy/S7N2C6ok=",
+   "pom": "sha256-tnzD0JgJJwSaO+sA1Qbs4oh0ZzKw3sgSJFxZ9FP7HKE="
+  },
+  "org/apache/logging/log4j#log4j-bom/2.23.1": {
+   "pom": "sha256-NyOW4EWNTNMsCWytq+DMkzDsEPT1f6O+LnT3m14XijU="
+  },
+  "org/apache/logging/log4j#log4j-to-slf4j/2.23.1": {
+   "jar": "sha256-eTeoQFUVaRAjTjtCho9V5o/0t77Ltv/RAUb3L1v1TdU=",
+   "pom": "sha256-BVZJuX0nP8asOjx61a/Y3tPA/OAEeyur7RKZ3Bpzk4I="
+  },
+  "org/apache/logging/log4j#log4j/2.23.1": {
+   "pom": "sha256-bOFUBFU2S1PqIqGDQssSamOBYz9lPwlUZ/KqGYURps4="
+  },
+  "org/apache/lucene#lucene-analysis-common/9.10.0": {
+   "jar": "sha256-vOhhPw3pPYblt1Z+ulUb5K+Ac3ObC9mpvXpCJc/cQk0=",
+   "pom": "sha256-Srvab0oxxV8FIKvqyytdhZ9wBJzavpC6fkFeEpFtMS4="
+  },
+  "org/apache/lucene#lucene-core/9.10.0": {
+   "jar": "sha256-r8GtQCslhKfBx86SjYu0bLuAD1xmzuiqhrdIGrF/sLU=",
+   "pom": "sha256-PJXUTXgwFjqAngE5GonrCS0gQUnZ0k4t3JsatJsKBHQ="
+  },
+  "org/apache/lucene#lucene-highlighter/9.10.0": {
+   "jar": "sha256-7ybMHN8UOfqqIE6Vy522/GnBet2umIRyJtWINNKn8Do=",
+   "pom": "sha256-2dp1xDusYvIVdF1tMe07XAw4Zs+crm0HfEHBxrbbs+Y="
+  },
+  "org/apache/lucene#lucene-memory/9.10.0": {
+   "jar": "sha256-OKPssbAQnWHOet9MFp3TZIXhqZP/2bMXiPjG9wTZQbk=",
+   "pom": "sha256-PXwz38GDkdhWHYDEGhKbYd2dJw5OAbQL593wtjsuvvM="
+  },
+  "org/apache/lucene#lucene-queries/9.10.0": {
+   "jar": "sha256-BkR8kzqupa4toz6JPM/RpBy0GgACueUi48UTO8E/nBE=",
+   "pom": "sha256-9KRvTeo+5jnkr/uWw+ptSlC9IF7T94+I7b0mjF4jNAk="
+  },
+  "org/apache/lucene#lucene-queryparser/9.10.0": {
+   "jar": "sha256-4vDlFZm22vZcQrhQ7xs5thfXlLYXasgdP/hZchHL7Ig=",
+   "pom": "sha256-EB74pcAiq+IzQtQCU+nVmjfacjBTydGi4GO5AELX2b8="
+  },
+  "org/apache/lucene#lucene-sandbox/9.10.0": {
+   "jar": "sha256-/VdPTmheCtOC7wdUYNLg4hFp8fr/gVeaMqWf3IIxl5U=",
+   "pom": "sha256-0hLxwbL4qXWtYp8nvFg61n3mBTTT6d8zyCAg9ep88ok="
+  },
+  "org/apache/maven#maven-parent/34": {
+   "pom": "sha256-Go+vemorhIrLJqlZlU7hFcDXnb51piBvs7jHwvRaI38="
+  },
+  "org/apache/maven/doxia#doxia-core/1.12.0": {
+   "jar": "sha256-XknNgnvrvOpYKdOziD0XrRzhXr1jlK61CtUNff2Tn80=",
+   "pom": "sha256-sDiPdIoIheE+fCxFOSH4u53U+1sZBb50VoVHbPNFbqM="
+  },
+  "org/apache/maven/doxia#doxia-logging-api/1.12.0": {
+   "jar": "sha256-mFMGFiwKn0wwnUYQlEfzDwK/b8m8FqPgOdWeHavQGS8=",
+   "pom": "sha256-ndmbQ1AiOEZYUxBpTERjGLFpK6dG7XFzdtWWGaJxI7Q="
+  },
+  "org/apache/maven/doxia#doxia-module-xdoc/1.12.0": {
+   "jar": "sha256-6HMboApO3TSyDv+eSnKcIEXGLLeWw+SRaSYH3kR2qwE=",
+   "pom": "sha256-+2nZW+S1WvLzsKm2jj6OYgY+aVlMH86+cFpaTbCZbSU="
+  },
+  "org/apache/maven/doxia#doxia-modules/1.12.0": {
+   "pom": "sha256-q4/2u0eTz7pZsU+zg/81GjSbEJHQccZrH8vKco1QW9w="
+  },
+  "org/apache/maven/doxia#doxia-sink-api/1.12.0": {
+   "jar": "sha256-XcpqqqnnDYoHZuFD3c+dsJ3l/eD7zHjLY11052TfzKU=",
+   "pom": "sha256-JrUf3babXKbgRM2ii40cGje2+v0M+5v7FakZ3lfGcdU="
+  },
+  "org/apache/maven/doxia#doxia/1.12.0": {
+   "pom": "sha256-LQKgvWTzMbdnzudFWzGTxvuCEQFDoRmFiryWh5il/Ck="
+  },
+  "org/apache/pdfbox#fontbox/3.0.2": {
+   "jar": "sha256-ds8EEOkD49txQDKvu0WNWiO5IlO5/fiAA18J6orTraw=",
+   "pom": "sha256-hthT5W8q+Yb6c1s/kH6jh6KXNCLH0F8TwDasuRNal90="
+  },
+  "org/apache/pdfbox#pdfbox-io/3.0.2": {
+   "jar": "sha256-nW535C437zaC53aBEpwxRRXog9UKvB3aljguejHnDjg=",
+   "pom": "sha256-yD3gYR+UMN4W2dakjfXJEPgrkfHgU1xB9Woy9iYwz0c="
+  },
+  "org/apache/pdfbox#pdfbox-parent/3.0.2": {
+   "pom": "sha256-kN6rEjTjkUu8B07Ax3Y7+kFHgICziISpOwtVVxnWY0g="
+  },
+  "org/apache/pdfbox#pdfbox/3.0.2": {
+   "jar": "sha256-yv4sysEB6ao63z9+p23/AuWIWislWLdfr/l0dvBIfuI=",
+   "pom": "sha256-wMNAwn6AF2V+Y81PaJUG8U03Y10NFebRpAjysZFGax8="
+  },
+  "org/apache/pdfbox#xmpbox/3.0.2": {
+   "jar": "sha256-GJLj3icM8GdIRgZW0G0/sNFfScVLfRs4hB5sl0WwGuQ=",
+   "pom": "sha256-LOPcpcHUKiZOJw5rOrIcR5Dd0f2Vg3ZOkjfGoYqKkXc="
+  },
+  "org/apache/xbean#xbean-reflect/3.7": {
+   "jar": "sha256-EE5em7WmafhnIvMigZYHAPfsjjIJ71GyPrm20j0WKcs=",
+   "pom": "sha256-l5XBUyLF0ZrzNu69nhZPp9WJfEsASn1m4hY1oXPnSKk="
+  },
+  "org/apache/xbean#xbean/3.7": {
+   "pom": "sha256-6nFxMt6EBLYvyQl6HzIVxwXVJdRXvppfEmU63GjDOrc="
+  },
+  "org/apiguardian#apiguardian-api/1.1.2": {
+   "jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=",
+   "module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=",
+   "pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA="
+  },
+  "org/assertj#assertj-core/3.13.2": {
+   "jar": "sha256-2LaYBfg9lmaqZ9vjqbk3RoFgdo30B6I9eHR1LyzFuKw=",
+   "pom": "sha256-aMUxi7Y+vrPoWy/olYk5tQBiVfjxG7JEL4gH7DvSZ6c="
+  },
+  "org/assertj#assertj-parent-pom/2.2.5": {
+   "pom": "sha256-TeW1pTWrd9GKtRYTfuTfTKVQlYCSpb+VqkefdSIEBkY="
+  },
+  "org/bouncycastle#bcprov-jdk18on/1.77": {
+   "jar": "sha256-2ruYwk1yybn1hWM9HfnFzVjZrTc9DNaBNn5qYDpJXVg=",
+   "pom": "sha256-rROCz80DvN2L4TkTwC9E/UadCnalPPLK71vhgK3DayM="
+  },
+  "org/checkerframework#checker-qual/3.19.0": {
+   "jar": "sha256-qCfEkYPzpjInfSegpGc2hss0FQdEe51XAmEJS9dIqmg=",
+   "module": "sha256-U+GJnd48UTyh79N2q/+sDmkH6OhKvV+WYkJjTJXk0Vc=",
+   "pom": "sha256-KbqcXOGpS3AL2CPE7WEvWCe1kPGaSXdf1+uPmX+Ko3E="
+  },
+  "org/checkerframework#checker-qual/3.42.0": {
+   "jar": "sha256-zK7dM68LeJTZ8vO2RPTRnkOSjjKQLmGsTRB3eDD1qsc=",
+   "module": "sha256-4PpiK33mPq4RBH726RtMKtDx8OE8uQP/UggKR/V6V0Y=",
+   "pom": "sha256-v1/KqycvVMvPG753w72WPIIcmrrSBYcIvwvtPIdUlMo="
+  },
+  "org/codehaus/groovy#groovy-bom/3.0.21": {
+   "pom": "sha256-ksw2r/0g9Wi1CSwLlOz1hd3rCigbbIunJWVwuxhdZTQ="
+  },
+  "org/codehaus/groovy#groovy/3.0.21": {
+   "jar": "sha256-XPNzDAwsFcKT93UN1xFO0npnH8lAFlu64DeKKB9bLV4=",
+   "pom": "sha256-uOnopeJGLS/MFGzkHalgebiTHnDbPqudWdaJhj0Jaxc="
+  },
+  "org/codehaus/plexus#plexus-classworlds/2.6.0": {
+   "jar": "sha256-Uvd8XsSfeHycQX6+1dbv2ZIvRKIC8hc3bk+UwNdPNUk=",
+   "pom": "sha256-RppsWfku/6YsB5fOfVLSwDz47hA0uSPDYN14qfUFp7o="
+  },
+  "org/codehaus/plexus#plexus-component-annotations/2.1.0": {
+   "jar": "sha256-veNhfOm1vPlYQSYEYIAEOvaks7rqQKOxU/Aue7wyrKw=",
+   "pom": "sha256-BnC2BSVffcmkVNqux5EpGMzxtUdcv8o3Q2O1H8/U6gA="
+  },
+  "org/codehaus/plexus#plexus-container-default/2.1.0": {
+   "jar": "sha256-bc6xJGsYgVO9y2+WLVQ9Ud22csygfK2Up4+6vJ7fCjk=",
+   "pom": "sha256-i4wg5jC9zHlcyYUCTEwQRcFHvhFgUsLJdeMMYI9/O0U="
+  },
+  "org/codehaus/plexus#plexus-containers/2.1.0": {
+   "pom": "sha256-lNWu2zxGAjJlOWUnz4zn/JRLe9eeTrq5BzhkGOtaCNc="
+  },
+  "org/codehaus/plexus#plexus-utils/3.3.0": {
+   "jar": "sha256-dtF0eSVA4nda+U0D0Q+y08d24s0KwOv0J9PlcAcruc4=",
+   "pom": "sha256-ecl5IHP97jzb69YadrqMLdEWJKn4XRKLrla9oZ4gR1w="
+  },
+  "org/codehaus/plexus#plexus/5.1": {
+   "pom": "sha256-o0PkT/V5au0OpgvhFFTJNc4gqxxfFkrMjaV0SC3Lx+k="
+  },
+  "org/codehaus/woodstox#stax2-api/4.2": {
+   "jar": "sha256-ut9ggaC7Um/SwBlR3++tkbaEa23Q6wBIWH4w0d0zTmg=",
+   "pom": "sha256-YhW0dL03FPG5z0216ig39LqvO42vkSEOh+qM6mWlCXw="
+  },
+  "org/codehaus/woodstox#stax2-api/4.2.1": {
+   "jar": "sha256-Z4Vn5ItRpCxlxpnyZlOa09Z21LGlsK19iezoudV3JXk=",
+   "pom": "sha256-edpBDIwPRqP46K2zDWwkzNYGW272v96HvZfpiB6gouc="
+  },
+  "org/controlsfx#controlsfx/11.2.1": {
+   "jar": "sha256-63VY0JTDa4Yw6oqab40k+K9F0ak6N14R4gbXbAgiFDA=",
+   "pom": "sha256-veC6xL8EPqp19uTOEbpXfHneak+5Mfd1e93Y36MwKTc="
+  },
+  "org/eclipse/angus#angus-activation-project/2.0.1": {
+   "pom": "sha256-wxdtWY0dwW67QG/aGoexTEUBqjNfBa584+Rq6p6NsbU="
+  },
+  "org/eclipse/angus#angus-activation/2.0.1": {
+   "jar": "sha256-siZ2GBWGjt+JZMHXHm0tVKsjjCeIUHBhtOBjOTO0wTE=",
+   "pom": "sha256-Z8XrD/f1JeoaGY8C2v7nfg0qUxudkIBxvEBhOGrgQO8="
+  },
+  "org/eclipse/ee4j#project/1.0.5": {
+   "pom": "sha256-kWtHlNjYIgpZo/32pk2+eUrrIzleiIuBrjaptaLFkaY="
+  },
+  "org/eclipse/ee4j#project/1.0.6": {
+   "pom": "sha256-Tn2DKdjafc8wd52CQkG+FF8nEIky9aWiTrkHZ3vI1y0="
+  },
+  "org/eclipse/ee4j#project/1.0.7": {
+   "pom": "sha256-IFwDmkLLrjVW776wSkg+s6PPlVC9db+EJg3I8oIY8QU="
+  },
+  "org/eclipse/ee4j#project/1.0.8": {
+   "pom": "sha256-DQx7blSjXq9sJG4QfrGox6yP8KC4TEibB6NXcTrfZ0s="
+  },
+  "org/eclipse/ee4j#project/1.0.9": {
+   "pom": "sha256-glN5k0oc8pJJ80ny0Yra95p7LLLb4jFRiXTh7nCUHBc="
+  },
+  "org/eclipse/jetty#jetty-bom/9.4.54.v20240208": {
+   "pom": "sha256-00QQSm7mGdplmEA8JdA6qqrw9U6WRv01EkWN9Xyarrg="
+  },
+  "org/eclipse/jgit#org.eclipse.jgit-parent/6.9.0.202403050737-r": {
+   "pom": "sha256-RLRxOI58JtkpSnpPJNmX7DTzaSFvMjVInkAbKlUdS1U="
+  },
+  "org/eclipse/jgit#org.eclipse.jgit/6.9.0.202403050737-r": {
+   "jar": "sha256-YgmsZpG+KgYyDwIADYm+1z7fBfRdZe+aFVFHURq3fzw=",
+   "pom": "sha256-d5jTR1SE+88OZAOlETeAHPEey2CRi2+vtyIRUiU5Ews="
+  },
+  "org/functionaljava#functionaljava/5.0": {
+   "jar": "sha256-N3rRQOfSa6BPrfIZsJ1+HHS8AjL6QBCyDBx52xH5Zw4=",
+   "pom": "sha256-R9OA2YVT2vdCc5tRC/3ElIp0GHftyypTlvwpGZaJzgk="
+  },
+  "org/fxmisc/flowless#flowless/0.7.2": {
+   "jar": "sha256-VsrfwuST8d5gGZhYCx7WJW/BWO+MWjN55KRdwGckzw8=",
+   "module": "sha256-l0+zKTCi9FClhhTqRgzUDE/UV25NKK6Ca8YTk6hMZjE=",
+   "pom": "sha256-CouO13pqSfjRGZIu1DGJ+Uh3swjL1fQf5GIh3ucsi7Y="
+  },
+  "org/fxmisc/richtext#richtextfx/0.11.2": {
+   "jar": "sha256-jeYtdfz5uFsvvp6ONe/GZAjIxdC1n6bcB/uLSBsoJCE=",
+   "module": "sha256-V2XP/R3VuYQkk0Xpet9SwCiRewJwzji40UE77kLOz6A=",
+   "pom": "sha256-Vahb2I6AB9CPU/POrDa9wNxLJPruAmqXwraXmfklEzw="
+  },
+  "org/fxmisc/undo#undofx/2.1.1": {
+   "jar": "sha256-25cIxYqOLbRX+9Z/BRXkqVlVygsLj06no9y7/L0Z0tc=",
+   "pom": "sha256-t2MMyZwGJaE4Mvzmb+wLKb0OmuwHD76DO461Jy3BhHU="
+  },
+  "org/fxmisc/wellbehaved#wellbehavedfx/0.3.3": {
+   "jar": "sha256-4pEAWo4yM7A2RQ0SbLzScNW0Ujl3GZSVGcM8i6CeJXw=",
+   "pom": "sha256-RxdpNVcNIb1oX5VaJavPbwFwmrtaN3Wsj6iVA3fKSZ0="
+  },
+  "org/gaul#modernizer-maven-annotations/2.7.0": {
+   "jar": "sha256-noNA0HwiJuKKj10RVBiy4qsCE58vOWbc2RY/pZAuJn8=",
+   "pom": "sha256-yoJ5IPQ10QCcug70IeWcw5F0GoYJ/vV0nTZgG/D2k7Q="
+  },
+  "org/gaul#modernizer-maven-parent/2.7.0": {
+   "pom": "sha256-gAUSdml5uc61hhNSs3ZhZDJ/HNSPc2skbJX/x3U+Eo0="
+  },
+  "org/gaul#modernizer-maven-plugin/2.7.0": {
+   "jar": "sha256-QcjLKxfxDnw79Q50lq1L/nMEp/3ZFERxhWChsr5EZPc=",
+   "pom": "sha256-RjjOCZYGJo+Joi0e4qgp3FOg/Z9NtiYBjca5EKDSO+k="
+  },
+  "org/glassfish/grizzly#grizzly-bom/4.0.1": {
+   "pom": "sha256-mm2yNlYQGV49O4GXFx4OVMM5gUNX5vmaJPW8QGP9uwQ="
+  },
+  "org/glassfish/grizzly#grizzly-framework/4.0.1": {
+   "jar": "sha256-9vSRqXbwNZL2hsao4PxPIFRgXR0wF/t9j/Sd6aL7dp0=",
+   "pom": "sha256-2dwKWG7j+v93SUXK9+wVK8QXzBxUD4w5mPLESqMNCaE="
+  },
+  "org/glassfish/grizzly#grizzly-http-server/4.0.1": {
+   "jar": "sha256-gLG79NRUkndw789LIfoy0y2M2ugJKMK5b+gkCwttFcQ=",
+   "pom": "sha256-m6yXc7fb67qrxiRBjoloRX5SEdwBTGbhjMsN4y7+P0Y="
+  },
+  "org/glassfish/grizzly#grizzly-http-servlet/4.0.1": {
+   "jar": "sha256-1ZEIjRLmYpUNHCul35Hi2t0/k/HCPdkCJkEvwlBY8Xw=",
+   "pom": "sha256-fqD4CtPGql+VUxdrv5GLN76A4CHMeqo9LkuV2ySvXmk="
+  },
+  "org/glassfish/grizzly#grizzly-http/4.0.1": {
+   "jar": "sha256-SPcpFdeqWmqaaIMJPCnS/poMGz0MwJkJQtGV4ZiDqA8=",
+   "pom": "sha256-2lhHmLixD4gckYv9UsHWb2U1hN4xEcNzNshf3sGheGc="
+  },
+  "org/glassfish/grizzly#grizzly-project/4.0.1": {
+   "pom": "sha256-1bwcO6NciLv/9nlRP8YlLya9crqSrzzSseLvq7kbjGg="
+  },
+  "org/glassfish/hk2#external/3.1.0": {
+   "pom": "sha256-oh3tpD6bZO1uigyuzMX6dGyOcLU2bkRx+McV2r7j/Zw="
+  },
+  "org/glassfish/hk2#hk2-api/3.1.0": {
+   "jar": "sha256-kgJ30r2mEOLMU6BKT1s4+0hLAwzenI6MXAoS8SbW/5k=",
+   "pom": "sha256-I+ad5ZlFefvsnR1FOKI12knh2rfMwXPcTZymGcRs+Jo="
+  },
+  "org/glassfish/hk2#hk2-locator/3.0.5": {
+   "jar": "sha256-sFInfb3K74EPG0KxDpQWwj58z6DBlbClNE2AzBeGMew=",
+   "pom": "sha256-fbjs2dCxJgwgfvn0l6mzoGnYJSMxN6BAThJFWeH7PQw="
+  },
+  "org/glassfish/hk2#hk2-parent/3.0.5": {
+   "pom": "sha256-4wc+GDpLY13Hl4Q2wq1v9Xl+CK+8nB+jLTMpHMqcVuk="
+  },
+  "org/glassfish/hk2#hk2-parent/3.1.0": {
+   "pom": "sha256-yOhpECjfgN2wyP5MGb7QmL/XVRF5VQemBeN/uEVr7e4="
+  },
+  "org/glassfish/hk2#hk2-utils/3.1.0": {
+   "jar": "sha256-17fKc3GmdocxY+B/e1CMFzKkA2unAep/6CNJ+EnvuOc=",
+   "pom": "sha256-KC/8KZjCw5ScuWuRABq1WMXQg8vf6eS9HG8s8elYKC4="
+  },
+  "org/glassfish/hk2#osgi-resource-locator/1.0.3": {
+   "jar": "sha256-qrXXhJ98/Nosx8VBuhvTZRUdQidvFRyCU4ckXf3j3XQ=",
+   "pom": "sha256-i2Yi64HlVymfvZqoVLxax20wf3rl53BYZImli7Uziyo="
+  },
+  "org/glassfish/hk2/external#aopalliance-repackaged/3.1.0": {
+   "jar": "sha256-RMv2jdXiSe/CJK18RWwdiYtx0ISvvC0hfoQ2RLlrp5s=",
+   "pom": "sha256-I+QCQveDcaQIPtCaMpEUPM21vRwbpVP9iEDlEMjPBwA="
+  },
+  "org/glassfish/jaxb#codemodel/3.0.2": {
+   "jar": "sha256-aTwDgiR2QDufy2V4z2sHsgx/nQ02otJ8zPDAjcWH7ic=",
+   "pom": "sha256-5osyFiDUZnkRXhg3kAvguBEK5FTzjguChwtcj9mYErk="
+  },
+  "org/glassfish/jaxb#jaxb-bom/3.0.2": {
+   "pom": "sha256-BioTMvjLS+0N2c1Yu0zAdQH6RMkNqhf+wQefRQudVwM="
+  },
+  "org/glassfish/jaxb#jaxb-bom/4.0.3": {
+   "pom": "sha256-Zg8EhAYlliYXiumpcrA86VFmXDPDM8q0U7EXi40NJBU="
+  },
+  "org/glassfish/jaxb#jaxb-core/3.0.2": {
+   "jar": "sha256-+aNguTlZdkOyZ241/El6+1YdIOilExKKXABwNm2xG70=",
+   "pom": "sha256-YMLhqbt6sWupylJsRx4DMNtXyHOeLAutDZkOntbHzo4="
+  },
+  "org/glassfish/jaxb#jaxb-core/4.0.3": {
+   "jar": "sha256-1tdcQidSaE+/BN10ohaY/q4OSkBsKJK1rwLSPcl7KsY=",
+   "pom": "sha256-crhKVGcO3sRAUgH3Heo7C/aYJbrkFjNtfzFAbGnHoyc="
+  },
+  "org/glassfish/jaxb#jaxb-runtime/3.0.2": {
+   "jar": "sha256-ezo3hLnG40Oo04/BCGArqBAXfwPy2NHnJYsc73/Z1Mc=",
+   "pom": "sha256-AY2B8CPynufFVdb1lyBuLUwvuAttvBhUWuite6+LGQc="
+  },
+  "org/glassfish/jaxb#jaxb-runtime/4.0.3": {
+   "jar": "sha256-eV4tvdPmTIun5TLjX4MTZgOTGo6aO1/+sF+fSDratuA=",
+   "pom": "sha256-sloOI7PxuK4yG6wnNyC3TCIqN0DdHj3h6W1ItF8ukW0="
+  },
+  "org/glassfish/jaxb#jaxb-xjc/3.0.2": {
+   "jar": "sha256-qLkrrDG2MaGQwgzh9qDutnKVUjP/dAIe/lCcph0nO3c=",
+   "pom": "sha256-2tovgbYhAbOknTPrHeF+KQZCBo7uk5bzS7XDZ4p7qKk="
+  },
+  "org/glassfish/jaxb#txw2/3.0.2": {
+   "jar": "sha256-tLz5T7CnWUVuJSFyRRO67JS3jpMSdUSvFi48/wjZM0M=",
+   "pom": "sha256-aZ+oKsMHb9ZNujfkw8DSJValP4R1ALK+EN/HKUI+eLk="
+  },
+  "org/glassfish/jaxb#txw2/4.0.3": {
+   "jar": "sha256-3welGAG5leRK7JqV74ddlfu43ih0QX3mBm2E9zHLnpw=",
+   "pom": "sha256-i4TetIZ5zAQrPL7GjXA9+c6May+SOdqKKOPKqp7a1Nk="
+  },
+  "org/glassfish/jaxb#xsom/3.0.2": {
+   "jar": "sha256-RXBjIzVKYGMj/xEwy1deRMbU16rEQ5VkF018ys5syQo=",
+   "pom": "sha256-4WK6+AKxr6D6VE2rOuYoVvK7AvnoWVvAwYjrfaatfoM="
+  },
+  "org/glassfish/jersey#project/3.1.5": {
+   "pom": "sha256-qG4HZUqPTqHoQgJUPobD7SafpkgyqXLO2C08p5JkCek="
+  },
+  "org/glassfish/jersey/containers#jersey-container-grizzly2-http/3.1.5": {
+   "jar": "sha256-CRUFmLl8UkVc5WpQbdEL5TbM6uEgrbYKUZFBVhkbSvE=",
+   "pom": "sha256-YO+rDTz6F6XsD7Tq2FkbRjhM1KgJhwuIkpWKsJ7IziM="
+  },
+  "org/glassfish/jersey/containers#jersey-container-grizzly2-servlet/3.1.5": {
+   "jar": "sha256-NmJ3F780m9H9NbOSPFvUBEyRNQL9UPE/vw6dnqTBvDQ=",
+   "pom": "sha256-PN56Lc1NRb9jJmpPSMAtHP23D8eOUAa/MKaNOJhSeOo="
+  },
+  "org/glassfish/jersey/containers#jersey-container-servlet-core/3.1.5": {
+   "jar": "sha256-0HhdH6ximojUY358LM52rhvfhWnT6MFWJaDCsn+r53k=",
+   "pom": "sha256-S8Rp8T3VEcgew+RO5FmhKSNSf993i62d7GU1cYNWiSc="
+  },
+  "org/glassfish/jersey/containers#jersey-container-servlet/3.1.5": {
+   "jar": "sha256-GDEXWGACsiKhBXGo3twMaIlWXGboQmH8nktnPXCv7OQ=",
+   "pom": "sha256-bYYCMI286FDIaQVca8hy56G75XJ+cpkPDZitrkAh5cI="
+  },
+  "org/glassfish/jersey/containers#project/3.1.5": {
+   "pom": "sha256-w0lqpSIlKKZlfbQpB8W21Xic+vEgpLAM8vMj7AiynZg="
+  },
+  "org/glassfish/jersey/core#jersey-client/3.1.5": {
+   "jar": "sha256-4muCTOuB4MpLc8eBBEj7VWbvDBeshxrdk6ksKR5QUkM=",
+   "pom": "sha256-5Ij1g6kL9sbEMHOPxl2vcu6tzDLiKtP7e8lKYv0C3Ew="
+  },
+  "org/glassfish/jersey/core#jersey-common/3.1.5": {
+   "jar": "sha256-xyWPN0Qz31g+ULvlWD/W1mlDk6MikVAk9xnSGiGNwBI=",
+   "pom": "sha256-/knk2CpaOF6H9YzdvJKUG+MWpOhfnorIlUORB9yuyho="
+  },
+  "org/glassfish/jersey/core#jersey-server/3.1.5": {
+   "jar": "sha256-qbleTsxoqwZCycSmUEgmMO3smVvRp0DWIjYWooKwXnY=",
+   "pom": "sha256-M24ILdVc0GTsiV42nLKSbawHHDwrva37cQCGCHuY4aI="
+  },
+  "org/glassfish/jersey/inject#jersey-hk2/3.1.5": {
+   "jar": "sha256-DJSWz8a0+bIjxEyDtN8+3qeSTOTVK/+1XPGA6exLTus=",
+   "pom": "sha256-3jrHm4cU7g1lUp0Cp62C5duJ52Runw7sq+2tNenvad4="
+  },
+  "org/glassfish/jersey/inject#project/3.1.5": {
+   "pom": "sha256-aRrGuMI0wACq6GFyQwpKF6sLZlzSHGijpf+13gg0SEU="
+  },
+  "org/glassfish/jersey/media#jersey-media-jaxb/3.1.5": {
+   "jar": "sha256-2Iuyf13SKPAPBh76KOkQvK5V7SdqPWhGSntF34Rj9s0=",
+   "pom": "sha256-jWmzTdb7VDDtvUIP3/3tU/n7fBCm4tloba213xBqtfw="
+  },
+  "org/glassfish/jersey/media#project/3.1.5": {
+   "pom": "sha256-B3StBF40WyM4BI1aabYx1qBEkSWqO3EIFTCny6WY5x8="
+  },
+  "org/glassfish/jersey/test-framework#jersey-test-framework-core/3.1.5": {
+   "jar": "sha256-GmwP8JuRO4+DFQjA3d8k+pg+2XVFdYEXWBf3DLGGCTs=",
+   "pom": "sha256-RL34Nhr024shPxcP1pRA+UVp4PxlbFrEDJJGU2HT/PQ="
+  },
+  "org/glassfish/jersey/test-framework#project/3.1.5": {
+   "pom": "sha256-tR7CLcyzmCwMtbZPWIi7XRZBpRex1ukrHs0GlrXWiAM="
+  },
+  "org/glassfish/jersey/test-framework/providers#jersey-test-framework-provider-grizzly2/3.1.5": {
+   "jar": "sha256-BFgys+mtbHeTEeUEW0WOWOFoNesKi2k+sT9jeDx7xL4=",
+   "pom": "sha256-vSgHhW2X3Ybj7N5tOAyKuFtmbvhfxLQ9SpakI9DQT6g="
+  },
+  "org/glassfish/jersey/test-framework/providers#project/3.1.5": {
+   "pom": "sha256-+wR6Cq8ol1omU6F9ut6avXmwygNpXG0eNONob5qdnHg="
+  },
+  "org/hamcrest#hamcrest-core/1.3": {
+   "jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=",
+   "pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
+  },
+  "org/hamcrest#hamcrest-core/2.2": {
+   "jar": "sha256-CU9dkrS32ciiv1PMadNWJDronDSZRXvLS5L37Tv5WHk=",
+   "pom": "sha256-9/3i//UQGl/Do54ogQuRHC2iAt3CvVB2X4nnxv+M590="
+  },
+  "org/hamcrest#hamcrest-library/2.2": {
+   "jar": "sha256-OFFSOiAaDUglwlphpu3FBxKCWjm9PQM5G5jEjKPLOWw=",
+   "pom": "sha256-9YrYNdJCZDElnYbk/jpPUWHmcdkWxcvs81c4vN6C/P8="
+  },
+  "org/hamcrest#hamcrest-parent/1.3": {
+   "pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps="
+  },
+  "org/hamcrest#hamcrest/2.2": {
+   "jar": "sha256-XmKEaonwXNeM2cGlU/NA0AJFg4DDIEVd0fj8VJeoocE=",
+   "pom": "sha256-s2E3N2xLP8923DN+KhvFtpGirBqpZqtdJiCak4EvpX0="
+  },
+  "org/hdrhistogram#HdrHistogram/2.1.12": {
+   "jar": "sha256-m0f7rkRP6qxLfgTw6ilFaeS8KCvGnYws4qw/I1dygeI=",
+   "pom": "sha256-f7PnkMFU0bXiMXC7jL9/cO8ICa8XIp8dywENd5llEIA="
+  },
+  "org/jabref#afterburner.fx/2.0.0": {
+   "jar": "sha256-PhxWSKv8xpaYIdi3BnPwxMV5qp8IBP/9/gwn1UTZDIM=",
+   "module": "sha256-j0p3hue1SGir/mBWqjTFp/vJ7uk9vWg8B07GwyBIjm0=",
+   "pom": "sha256-b1tEN8KM1NC5yV5HQ6wNwU9fQPQzpbHCqMJNxvnDH14="
+  },
+  "org/jacoco#org.jacoco.agent/0.8.10": {
+   "jar": "sha256-MtYiEcCjI/UIIqdQpkfBIrKxtVn2NTPqLjJMAyQ4E3A=",
+   "pom": "sha256-8Dj11h4Ka6MZsFBzsoShXIa7d0fko0lrJ/N6cRgLHNc="
+  },
+  "org/jacoco#org.jacoco.ant/0.8.10": {
+   "jar": "sha256-p8jdZ0GsszfMB3GpvxdqpnwJpSpt4BHreg9eeMm9WHI=",
+   "pom": "sha256-8J92Wz8N61zalBSG1r4ldS+XhC4/4yVTfWnoG7wTey8="
+  },
+  "org/jacoco#org.jacoco.build/0.8.10": {
+   "pom": "sha256-49ew2Y3rqhRTOTwiA4GSEsUofrvEZ90LSiKtBGa9bDs="
+  },
+  "org/jacoco#org.jacoco.core/0.8.10": {
+   "jar": "sha256-54lmfZOnUDk47peK5Pu8mhvM2jtUYpmyTYVQ2BbYDgg=",
+   "pom": "sha256-k6Dt1RSc77OOYvS+NIF5FJBoCbxPM7shEoPcQ31x6ok="
+  },
+  "org/jacoco#org.jacoco.report/0.8.10": {
+   "jar": "sha256-PjXBT3hTx8iNvgTPCG7gU6Vzn0GemACZCbvt7N3d1Qw=",
+   "pom": "sha256-aoWwNquHV1jv3g+Y30EAhum51X2CYYiosUVgVC3yuuI="
+  },
+  "org/javassist#javassist/3.28.0-GA": {
+   "jar": "sha256-V9Cp6ShvgvTqqFESUYaZf4Eb784OIGD/ChWnf1qd2ac=",
+   "pom": "sha256-w2p8E9o6SFKqiBvfnbYLnk0a8UbsKvtTmPltWYP21d0="
+  },
+  "org/javassist#javassist/3.29.2-GA": {
+   "jar": "sha256-qQ3bJRNd+eV+qb1OIk4hlVSSl1j5uumWXyn4HWCjKT8=",
+   "pom": "sha256-Ehu5fA3qc0LXSJInrCe/8J2hJ6TkS14Vy09YyeccbIk="
+  },
+  "org/jbibtex#jbibtex/1.0.20": {
+   "jar": "sha256-sOqDZn2darH89q2EieF6pRsA18CGRUrsNQFuL7Ucm7U=",
+   "pom": "sha256-ZMsdu8KSZgmcYTnVsq8NXKfUxgVV/gABoBePhGjfnCo="
+  },
+  "org/jboss#jandex/2.4.2.Final": {
+   "jar": "sha256-PyzlXH1x50RYFIjcUQWAaqgITAjm6RagGbq4+GmJlPA=",
+   "pom": "sha256-6l4By7dQ+V1+DkR9PLk0NadCgZU9ldZTKzyEgHwo10c="
+  },
+  "org/jboss#jboss-parent/12": {
+   "pom": "sha256-nlb1shiYpucR6FdiGsHvts88PeFlpKowfbmYgmrU/98="
+  },
+  "org/jboss#jboss-parent/39": {
+   "pom": "sha256-BN/wdaAAlLYwYa9AfSgW2c3mZ5WsrjdqBUvf6Lox5mQ="
+  },
+  "org/jetbrains#annotations/24.0.1": {
+   "jar": "sha256-YWZtvOfkLmyFtDwE/PuCk6Idy1WzyA6GknDOQsAaazU=",
+   "pom": "sha256-mb7eKcAzHBlS7uBL+ZeN5TWpDJfi3v/6XgCTNRcZJbA="
+  },
+  "org/jetbrains#annotations/24.1.0": {
+   "jar": "sha256-J6dw3HzlBQCRi7jDwGYMmCkGMOx5a1489rkPQDswM8Y=",
+   "pom": "sha256-Ljf9cCCkNkueXZ93xbZ0Kjvqkn3VYMoeOQ3IFcnFCCA="
+  },
+  "org/jetbrains/intellij/deps#trove4j/1.0.20200330": {
+   "jar": "sha256-xf1yW/+rUYRr88d9sTg8YKquv+G3/i8A0j/ht98KQ50=",
+   "pom": "sha256-h3IcuqZaPJfYsbqdIHhA8WTJ/jh1n8nqEP/iZWX40+k="
+  },
+  "org/jetbrains/kotlin#kotlin-bom/1.9.22": {
+   "pom": "sha256-GICVqDQdZtIs9LSZRMAFThWpS7j7m06rL2YabLjD4X4="
+  },
+  "org/jetbrains/kotlin#kotlin-compiler-embeddable/1.9.22": {
+   "jar": "sha256-K/6t7lmrGYjDNtvW5l2ZH3Zq4d2Gg/Km3tX6oCefDKA=",
+   "pom": "sha256-s9o0u29ClqzzoPRDRm8FBsbJnaXNliTW4LdFsiKHhOs="
+  },
+  "org/jetbrains/kotlin#kotlin-daemon-embeddable/1.9.22": {
+   "jar": "sha256-kqV4ExcUR9U0Rh+hP+N9yM07f4bYPpsfe7GwvjBUH4s=",
+   "pom": "sha256-9uo9z2v7Og0GmER8SKa88I2Oqs+D/JX+nUGBpeXjwrE="
+  },
+  "org/jetbrains/kotlin#kotlin-reflect/1.6.10": {
+   "jar": "sha256-MnesECrheq0QpVq+x1/1aWyNEJeQOWQ0tJbnUIeFQgM=",
+   "pom": "sha256-V5BVJCdKAK4CiqzMJyg/a8WSWpNKBGwcxdBsjuTW1ak="
+  },
+  "org/jetbrains/kotlin#kotlin-script-runtime/1.9.22": {
+   "jar": "sha256-uAZwV59/ktRz2NWDTwsST3dVxFmP6UskQYOwKDSDRXQ=",
+   "pom": "sha256-/ra0ns9pEG1MEoXnH5ob2noSfO9oMC4+n9yCmKTjR5U="
+  },
+  "org/jetbrains/kotlin#kotlin-stdlib/1.9.22": {
+   "jar": "sha256-ar4UbCeGQTi4dMzM/l9TTj65I8maG3tdRUlO5WlPPgo=",
+   "module": "sha256-9IIxS1B5wUVfb7DUJXp0XRAcYSTOlhUiuob53JCQHkc=",
+   "pom": "sha256-zOLxUoXsgHijd0a1cwigVAQt1cwlQgxD9zt4V8JGjwM="
+  },
+  "org/jooq#jool/0.9.15": {
+   "jar": "sha256-ow2WcZCZ603oewgVL5etsLo8/vmX2tys6LLk3NwZf4Q=",
+   "pom": "sha256-/mCqsovG1YbUq0u/zSPc9KFXa/gzK2lEwhxaehS8x4M="
+  },
+  "org/jsoup#jsoup/1.17.2": {
+   "jar": "sha256-9gszs46desk+qqaKbHD3BruZA2SUsuKt0r/uEdCaxvU=",
+   "pom": "sha256-ejSdIXeQw3ML4wjO0eqe4yxOdPcgWOg8K2DloolU3Q0="
+  },
+  "org/jspecify#jspecify/0.3.0": {
+   "jar": "sha256-4cfhgytglfz8vldIVwDHMw1T1OV+LFu/nHGBmwLpeL4=",
+   "module": "sha256-M7jCLyQkwpAyQaf+olj8QasMTWiJd2V2xRkEdWLuQ6U=",
+   "pom": "sha256-9LGyrWHKF/KNBjxWEJ0+g5g5oQswG8lzSVQ+zu5X8xY="
+  },
+  "org/junit#junit-bom/5.10.0": {
+   "module": "sha256-6z7mEnYIAQaUqJgFbnQH0RcpYAOrpfXbgB30MLmIf88=",
+   "pom": "sha256-4AbdiJT5/Ht1/DK7Ev5e2L5lZn1bRU+Z4uC4xbuNMLM="
+  },
+  "org/junit#junit-bom/5.10.1": {
+   "module": "sha256-IbCvz//i7LN3D16wCuehn+rulOdx+jkYFzhQ2ueAZ7c=",
+   "pom": "sha256-IcSwKG9LIAaVd/9LIJeKhcEArIpGtvHIZy+6qzN7w/I="
+  },
+  "org/junit#junit-bom/5.10.2": {
+   "module": "sha256-3iOxFLPkEZqP5usXvtWjhSgWaYus5nBxV51tkn67CAo=",
+   "pom": "sha256-Fp3ZBKSw9lIM/+ZYzGIpK/6fPBSpifqSEgckzeQ6mWg="
+  },
+  "org/junit#junit-bom/5.5.1": {
+   "pom": "sha256-eHThBkE5sx4sWkZrPcEClwk2IWK98B8PSqq3OKuTLTM="
+  },
+  "org/junit#junit-bom/5.9.1": {
+   "module": "sha256-kCbBZWaQ+hRa117Og2dCEaoSrYkwqRsQfC9c3s4vGxw=",
+   "pom": "sha256-sWPBz8j8H9WLRXoA1YbATEbphtdZBOnKVMA6l9ZbSWw="
+  },
+  "org/junit#junit-bom/5.9.2": {
+   "module": "sha256-qxN7pajjLJsGa/kSahx23VYUtyS6XAsCVJdyten0zx8=",
+   "pom": "sha256-LtB9ZYRRMfUzaoZHbJpAVrWdC1i5gVqzZ5uw82819wU="
+  },
+  "org/junit#junit-bom/5.9.3": {
+   "module": "sha256-tAH9JZAeWCpSSqU0PEs54ovFbiSWHBBpvytLv87ka5M=",
+   "pom": "sha256-TQMpzZ5y8kIOXKFXJMv+b/puX9KIg2FRYnEZD9w0Ltc="
+  },
+  "org/junit/jupiter#junit-jupiter-api/5.10.2": {
+   "jar": "sha256-r/93wYbNMXJ1gDhy+lEzqoAf1qxAvZHHimz4AJtLF8w=",
+   "module": "sha256-QRtKlsKm2wmY1uWOiZNn8NElQWPzBBydmOeu38o3RBk=",
+   "pom": "sha256-u12jBgImsbPOtUCEldxptZRlv1DX6+Y+75TyWQnPGQA="
+  },
+  "org/junit/jupiter#junit-jupiter-engine/5.10.2": {
+   "jar": "sha256-tt812nUKVGrpMjdvEbPA34QfDJDHyylEzTmttDKIbks=",
+   "module": "sha256-FD7yda5mlRGdeCEqkyRazrv5I1tTdbn0wdSvcy87Uwo=",
+   "pom": "sha256-q+csj7+anI+e55usKbpkedMrDf+quICApQKRHSTTlGM="
+  },
+  "org/junit/jupiter#junit-jupiter-params/5.10.2": {
+   "jar": "sha256-7bHkP/C4BnYm/7VeXp7sodmrJHgUGnx/JT0RWynMfPI=",
+   "module": "sha256-IMLmXVKjnIVJbo4XDgjG7Sk1x/NeZRAT2WTcG7dcgns=",
+   "pom": "sha256-8n19CW20igXW56/YQalUVEJOVcUj167RZoF4szpjy9c="
+  },
+  "org/junit/jupiter#junit-jupiter/5.10.2": {
+   "jar": "sha256-Jj5DRH9LQPEmrWsdy9ffN5RIQTve244NJAxby7p8ek8=",
+   "module": "sha256-cjF2bPGyuJLGehQsljkU5rc/u1BhpschROt/jnJ3DsE=",
+   "pom": "sha256-1bcMXC10Ui2mEM04d28iW6wDSsJZGEO+6Xl6urOIDqs="
+  },
+  "org/junit/platform#junit-platform-commons/1.10.2": {
+   "jar": "sha256-tWpewACked9Jc7GLuiTJj+Dbj6oUyJB9PvRR2Mcf2K4=",
+   "module": "sha256-HoFCGmL4cryk0gIgs56hniexNfNre3gXBPkvrVQxlhg=",
+   "pom": "sha256-8/glx8o72JcU1IlEfHfHbifqOPAoX195ahAAoX/KS+c="
+  },
+  "org/junit/platform#junit-platform-engine/1.10.2": {
+   "jar": "sha256-kFy6m0mYzMKdEjkIWn+x/g4oAk11JhUjVtgQ7ewKSaM=",
+   "module": "sha256-4dG63P7cJyRFQeC+XV6EtyoicNevYWhrJvEc/Edw2kI=",
+   "pom": "sha256-EqqGyhwNZIoiXU58aWBUwfx26IeCxcOft983muI7728="
+  },
+  "org/junit/platform#junit-platform-launcher/1.10.2": {
+   "jar": "sha256-rtT0L7kK2ps0fCMfE2VvwJEhuiDattxkamvZ1Nox5Ko=",
+   "module": "sha256-/1YhIQJQJSv9rbYiu+LqZuzsMahnc2zqSz1K3yGcp/8=",
+   "pom": "sha256-WjEXCOeQa7l0YpwayHC8EWV0ZbmJ2koHfkVBa9mHJeQ="
+  },
+  "org/kohsuke#pom/21": {
+   "pom": "sha256-C8qSPq0O1GSp1AglUITbhghxsjIMrdDduczkbkwFvi4="
+  },
+  "org/kohsuke#wordnet-random-name/1.5": {
+   "jar": "sha256-AgxW1yGfqdgrfi/Puj0kyX8HYYsqaVfZMIetcHK5khA=",
+   "pom": "sha256-RG4Gql8gAlAWNo2W9yX5sXUss+w6sp4WzLydoyMZpwA="
+  },
+  "org/kordamp/ikonli#ikonli-bootstrapicons-pack/12.3.1": {
+   "jar": "sha256-OgLyfRuGyubrnLgLOarbBmxaD9H+ppi5ce3nK9BdMe4=",
+   "pom": "sha256-d0wPeMVNPKNg7wDAltsvKlndf7EV5RqC2c7cfGAgRxM="
+  },
+  "org/kordamp/ikonli#ikonli-core/12.3.1": {
+   "jar": "sha256-GN0LOvW716ZKvvWvdGzkm71mvYDx+4l0PR46D4sP5Ws=",
+   "pom": "sha256-MXGJdHSQH1Jt2wccCwJQtouDW3A73/Src5rEJEObYWo="
+  },
+  "org/kordamp/ikonli#ikonli-javafx/12.3.1": {
+   "jar": "sha256-tx7z81LDaeDn8IwU74nKv4hC9JWh5smUkDfZXvSpDYo=",
+   "pom": "sha256-7dl4yXjxkoOOVUh0EJibs/8oxpX70JBPNsT0E2GXzEQ="
+  },
+  "org/kordamp/ikonli#ikonli-material-pack/12.3.1": {
+   "jar": "sha256-G8TzVs+yhQv6nEGB2qLb8zcI505bZGNRUIJpMs5hxVA=",
+   "pom": "sha256-gAcPK4qbi/U63F7pO7qDGY5TL0PE8UhVEi0yFE66Sj8="
+  },
+  "org/kordamp/ikonli#ikonli-materialdesign-pack/12.3.1": {
+   "jar": "sha256-FeIubWaDNfbf3LTQ5KqJix+/uD3AMxvvRXoe2kJggtE=",
+   "pom": "sha256-j/6Z8wpYyG7I7ihokW5DMLRQ7kGJQcRn0K9t9phGlsA="
+  },
+  "org/kordamp/ikonli#ikonli-materialdesign2-pack/12.3.1": {
+   "jar": "sha256-1Qfh07ZoZNeiol957eMgvssfduFtIAsGdW9KzmWCEMQ=",
+   "pom": "sha256-GkIkc7zZStCyfgXp8HNHJPjcCXtbdAKBE8Bug1+/0OM="
+  },
+  "org/latencyutils#LatencyUtils/2.0.3": {
+   "jar": "sha256-oyqf+gay9OAcU2D4+d97xdlFSl03PNjzYTR/paVxZew=",
+   "pom": "sha256-jwwBU3kLhK9sCTFtVpvRBu4PAIuTk+gLpHj1v2Vziig="
+  },
+  "org/libreoffice#libreoffice/7.6.4": {
+   "jar": "sha256-mTOuf6lh4qeFo1Iat1cVdyuuNUA2zeigI5mnc4OeGDY=",
+   "pom": "sha256-fNpYEKQpmEYPgNrKCZ6YAJtcY0bqKgVJLsE7NPQZQbU="
+  },
+  "org/libreoffice#unoloader/7.6.4": {
+   "jar": "sha256-1j+kVLLB04iy9GZeJhEpHZ8/YxWzy1QPA1sBzzUMbXQ=",
+   "pom": "sha256-0Agwh7BhqHsyN8Q+dMWdNDgv5EoioiCbf/mmdfLX55s="
+  },
+  "org/mariadb/jdbc#mariadb-java-client/2.7.9": {
+   "jar": "sha256-8siZYGTKh2mS9ZDXjqJfbE+siK0pdt/0cp2BbrrNbsU=",
+   "pom": "sha256-Dh+6B9VnA7GEygOL/cvLxOMHeOUC52dF9fRB/SASFBg="
+  },
+  "org/mockito#mockito-bom/4.11.0": {
+   "pom": "sha256-2FMadGyYj39o7V8YjN6pRQBq6pk+xd+eUk4NJ9YUkdo="
+  },
+  "org/mockito#mockito-core/5.11.0": {
+   "jar": "sha256-8HbJax9JuNm8QuRrCWmq9WhMQMi1tnnUAOXYgAc6DgA=",
+   "pom": "sha256-ugsbXXA1CUlPmo5EWCIjh54zSKTElmfwx35odG5IHHg="
+  },
+  "org/objenesis#objenesis-parent/3.3": {
+   "pom": "sha256-MFw4SqLx4cf+U6ltpBw+w1JDuX1CjSSo93mBjMEL5P8="
+  },
+  "org/objenesis#objenesis/3.3": {
+   "jar": "sha256-At/QsEOaVZHjW3CO0vVHTrCUj1Or90Y36Vm45O9pv+s=",
+   "pom": "sha256-ugxA2iZpoEi24k73BmpHHw+8v8xQnmo+hWyk3fphStM="
+  },
+  "org/openjdk/jmh#jmh-core/1.36": {
+   "jar": "sha256-+Ql0430NqIhrXAXm4+fiBVaQDXR8WkHBAjtHwzAepzw=",
+   "pom": "sha256-mBI0JlrAQfFmsXxa3GsdRZ6JTKv/6vawnAB08PQDguQ="
+  },
+  "org/openjdk/jmh#jmh-generator-asm/1.36": {
+   "jar": "sha256-dGCxG4I97nSz4ZYX011ZEbASRTA9bjHDD4NBfPwvVLU=",
+   "pom": "sha256-V7u+h4OU+LP8G4DEEWHdSItCwNez1wpeR09CcbHqOkk="
+  },
+  "org/openjdk/jmh#jmh-generator-bytecode/1.36": {
+   "jar": "sha256-M3ZUL4lQvNcGxRbOBiDR34IjCecJK4+TOJFygxgdWF0=",
+   "pom": "sha256-URABHSX7lGay8Am/99fsCmLop6uvBomb+2tjBbBOKUQ="
+  },
+  "org/openjdk/jmh#jmh-generator-reflection/1.36": {
+   "jar": "sha256-qccnYOEsGZ4qLCjxoSbr8MxbUcC1jUZHJZb8Mvf5JTQ=",
+   "pom": "sha256-msCIMyyp0UcTCJk55zzaHn/0Q8fIx3usiFsIo7eHUUY="
+  },
+  "org/openjdk/jmh#jmh-parent/1.36": {
+   "pom": "sha256-O2PObo/vrLMgN24F6fuzuuhqiJI5AIdZGJoLDVylxdY="
+  },
+  "org/openjfx#javafx-base/19": {
+   "pom": "sha256-Aey9z45qdPR7FVUFTzHW8Vsh7yUi+IC47nVoMCG4e5U="
+  },
+  "org/openjfx#javafx-base/22": {
+   "pom": "sha256-XPr4AKyei29O5+mOaRZvN0PAo+xyLhx8idLaEzmgQIE="
+  },
+  "org/openjfx#javafx-base/22/linux": {
+   "jar": "sha256-guS1JYZGAz4MvYzoYKBZWGDIwNeOrfXKWQ9FNps7PQ8="
+  },
+  "org/openjfx#javafx-base/22/linux-aarch64": {
+   "jar": "sha256-V/RTupEwEyrt1pOsAzUdsTU/869RxG/7lUUnp71Jygk="
+  },
+  "org/openjfx#javafx-controls/22": {
+   "pom": "sha256-8AZSRCn/IPdz+tfjwXq9/qkkzMeqGamSoeQZPl/kCA8="
+  },
+  "org/openjfx#javafx-controls/22/linux": {
+   "jar": "sha256-4E5POGe18PR56yKJsDgwPOn7TR3vImvJHCkYlpvzW2s="
+  },
+  "org/openjfx#javafx-controls/22/linux-aarch64": {
+   "jar": "sha256-lrubCX8JhvuuwvMnReQ2C5s81ACnFGtJYwpoQtrks3E="
+  },
+  "org/openjfx#javafx-fxml/22": {
+   "pom": "sha256-N2R+Lpsq+3hcJKu2GjjD5p02av/TUyv6J+jIrm92tPI="
+  },
+  "org/openjfx#javafx-fxml/22/linux": {
+   "jar": "sha256-K5X/HQ+4GUIrIU2Xs423Bc2alyMK41P0kr3UiJujqdY="
+  },
+  "org/openjfx#javafx-fxml/22/linux-aarch64": {
+   "jar": "sha256-6O1DY40U+OTRIkabO7E4SP8WJpgQ+HzeAgwEQstngZc="
+  },
+  "org/openjfx#javafx-graphics/22": {
+   "pom": "sha256-snXDI9Pbr1/anOegMkG/JEvfeJ5GFON+pMPjww4P858="
+  },
+  "org/openjfx#javafx-graphics/22/linux": {
+   "jar": "sha256-ACrpnQ8ML2Clh72fkRaP7lvZ2AJ4H0eXV1lWz0icJLs="
+  },
+  "org/openjfx#javafx-graphics/22/linux-aarch64": {
+   "jar": "sha256-+9uVZeikBGWUwCjtAHX/UIU2XW8K5a855qOlV+InMWo="
+  },
+  "org/openjfx#javafx-media/22": {
+   "pom": "sha256-vEijYpt55oTHD6hTfzwpQh5HX2+r0TObedWHcpMN5XA="
+  },
+  "org/openjfx#javafx-media/22/linux": {
+   "jar": "sha256-kVG0rkkTRjBQ2WvTTIQOov6iPaJ471BRyvDn8ldkTRo="
+  },
+  "org/openjfx#javafx-media/22/linux-aarch64": {
+   "jar": "sha256-ijZAJ9fOc6n4rfSkkxf86PNqTndJGJPmaYmpZt2PHjY="
+  },
+  "org/openjfx#javafx-swing/22": {
+   "pom": "sha256-wPQryYkBk3076g85BuQT1HvgXNsaWu7FbRw5JD2DM5w="
+  },
+  "org/openjfx#javafx-swing/22/linux": {
+   "jar": "sha256-JTdrxDkPNwbv3wlfQLGAZt9DWkNlufS99GGOWFZexZA="
+  },
+  "org/openjfx#javafx-swing/22/linux-aarch64": {
+   "jar": "sha256-4VmmNrLKX0uia0YqDEg/5OUXHIrp8HYcHk1Nml9ZhbQ="
+  },
+  "org/openjfx#javafx-web/22": {
+   "pom": "sha256-iart37SyLvVtJt/pOmmrx1NXNSxi1Y+1EkMPWM/q0BU="
+  },
+  "org/openjfx#javafx-web/22/linux": {
+   "jar": "sha256-aodN6LOSTA7EKlLTUfIxBgAmwAjLKG8vCqy4PHc/KBk="
+  },
+  "org/openjfx#javafx-web/22/linux-aarch64": {
+   "jar": "sha256-kZ35kB0DE4sbhHFpQl4JkHO/1HKexPGy1GKdecJtSqc="
+  },
+  "org/openjfx#javafx/19": {
+   "pom": "sha256-3uMYnD1+670gSRMKUACQBOKE7GIJ5pDv/UhQAgcDMVs="
+  },
+  "org/openjfx#javafx/22": {
+   "pom": "sha256-ZO+kxQXukz+S0/4hqQ7RVKKs1Dhif6hKHYG7jRZWN58="
+  },
+  "org/openrewrite#rewrite-bom/8.21.0": {
+   "pom": "sha256-Azkt40r0B5flheYgsf23SFMWWIlmazmzaDVw1FLuew8="
+  },
+  "org/openrewrite#rewrite-core/8.21.0": {
+   "jar": "sha256-6GSDE7y3VWH6HJz3LwkdsFniahLoImye+8+nuRsI76k=",
+   "pom": "sha256-A/ew4svumksQ5JEhZ0b7LuijjcUa/JkjlA+d/kcSJBo="
+  },
+  "org/openrewrite#rewrite-gradle/8.21.0": {
+   "jar": "sha256-XTHPQ9DTaKc4TnQiagPCyBFQTaLfCXOH2z5i9qObeXc=",
+   "pom": "sha256-Y1eifRHVGfN6a6H/zd4RkoBc+U4sF10ozzespNEpJvs="
+  },
+  "org/openrewrite#rewrite-groovy/8.21.0": {
+   "jar": "sha256-DdOshMdDc28F8L33l/WcSHOJGD2HMTE7uaK2/L/b5NQ=",
+   "pom": "sha256-i/8dIEtMZ/b13X/xrzg1tWYevCpsEq6MteAQTpQE7VU="
+  },
+  "org/openrewrite#rewrite-java-11/8.21.0": {
+   "jar": "sha256-63noiYXGCPXvh5C63ZFgE+X0DvI0ep2R0N28MNOrrcs=",
+   "pom": "sha256-qux8ai9mgiRqmpAAVg71TGZtbwJyownpOglc9dOfIv0="
+  },
+  "org/openrewrite#rewrite-java-17/8.21.0": {
+   "jar": "sha256-YYmKR/DtaGPZwkVE2FgoBpuQ3t3BXVgrjYBnYL6hWaw=",
+   "pom": "sha256-yDjkf7A+AjW8nEw6Iib2ItX9tNbHhhz6XY8qqDov21g="
+  },
+  "org/openrewrite#rewrite-java-21/8.21.0": {
+   "jar": "sha256-vzeB1BuAq69JMnA14hGapmmRpFSczMH0nlnoCTRy9ow=",
+   "pom": "sha256-r6aBMHJ1c+5ylW0IOBqOMDfsa/32V4ZwpVrAWcuWHKY="
+  },
+  "org/openrewrite#rewrite-java-8/8.21.0": {
+   "jar": "sha256-z6Of1uCO1N/o3P067MMmN4XJ8pg+Z2DA30eSUs3LF7U=",
+   "pom": "sha256-7IQKBZa1bUslZiP/yByco2SfqixQoQVq12orrFHPDqk="
+  },
+  "org/openrewrite#rewrite-java/8.21.0": {
+   "jar": "sha256-4zpbtRptMY7tffzefDhMW8tFv16SnZz0o+EGgMeWoZE=",
+   "pom": "sha256-uylbeYK6uPlJwhN+EOrJbqvT0EorJmX+tg6kFfmHyv8="
+  },
+  "org/openrewrite#rewrite-kotlin/1.13.0": {
+   "jar": "sha256-RaOAjSzUP0bDYILxlv3vM3WMWDO0+LXIHoFwIRvGGJU=",
+   "pom": "sha256-n3bzjLFeL0EgpMIyWKbm15pLtd8yLbrc6VhZszsRJOQ="
+  },
+  "org/openrewrite#rewrite-maven/8.21.0": {
+   "jar": "sha256-8SfV+EbDpE4Fd3OygACuHm4g4YRosHMdtBuoZkbNl3Q=",
+   "pom": "sha256-kBLtw6s/7iHpVsBeu+CNjzQhSZgCz35bGQqJ8nLjbf4="
+  },
+  "org/openrewrite#rewrite-properties/8.21.0": {
+   "jar": "sha256-xKVI0BqeyFYGiZHDg5V2PAk56idauyEPmvcqmfmEqTU=",
+   "pom": "sha256-Q+MMeQxF+rOUx/urik29d7MVO5n3DTifk1WDaxg+4bM="
+  },
+  "org/openrewrite#rewrite-templating/1.6.3": {
+   "jar": "sha256-gUQATASLXMbZTtHoGAAxH5A+zHydEcZSubaIgMgRHE4=",
+   "module": "sha256-srYqszmlwMhSsBOwQgXg2tLxanpkleLg+L5JTItfyQ8=",
+   "pom": "sha256-JlYrXvlmF1b3jE5wQlhMPXqo3UCazWYIF2DfVsPA69Y="
+  },
+  "org/openrewrite#rewrite-xml/8.21.0": {
+   "jar": "sha256-vyVYEE7bPfGbrUZ5Tb6zBRDUqKsyQjsWCvcn/cxW+w4=",
+   "pom": "sha256-Ed1qEe2ACbkIwi76pitZNljilzTTq2JAMLZBRQdBVPs="
+  },
+  "org/openrewrite#rewrite-yaml/8.21.0": {
+   "jar": "sha256-C8j00wnD4IHxPpPz8m+ckOtKS+o4jn+GcQcfCDbSBa4=",
+   "pom": "sha256-l/ku9K9CAgKXwrB/7npvHsSZ3yBQoYK34GP0LIxtUQE="
+  },
+  "org/openrewrite/meta#rewrite-analysis/2.5.0": {
+   "jar": "sha256-/wYl8HtENRIN5D1Qnej6SKJrMHGC6O0qAqO9+PIKEXA=",
+   "pom": "sha256-KJ/UbupGTtq8FE3q3ao/J4pM04i3t3PFlsBMj5s0EUA="
+  },
+  "org/openrewrite/recipe#rewrite-github-actions/2.1.7": {
+   "jar": "sha256-+U58BXTuyk4b3glUSQNpazuJLDVWgVfgpx5imSpByQY=",
+   "pom": "sha256-9tN8nQx7IKgMwlNmh0Qhu6dFQBAqmOXW2HuG9y/+3cQ="
+  },
+  "org/openrewrite/recipe#rewrite-java-dependencies/1.6.0": {
+   "jar": "sha256-xEXEsREh7neaM4sehHO5FP2AmadbLdoVhDpBWe4dJMw=",
+   "pom": "sha256-ju9CTQl7Uu6MX3zAlr8QGXcDPfJpjCteGMNflvPun6s="
+  },
+  "org/openrewrite/recipe#rewrite-logging-frameworks/2.5.0": {
+   "jar": "sha256-XkUkAscaFk1HfLoxBS6KoVDPXW2XnkO84pc401lkPPw=",
+   "pom": "sha256-Fr1EBxgNTmopE+Yv9mBXXkLPgwi+3b48TYTCBlhXljU="
+  },
+  "org/openrewrite/recipe#rewrite-migrate-java/2.11.0": {
+   "jar": "sha256-G7KiDLRYWfiH61uT1KFByn5tSgoX7Lili3G1vtnGmtQ=",
+   "pom": "sha256-1AUeb7KAgDV/Ny3jgzw3F8aGVlg4pS5GJ3JrGtwwzao="
+  },
+  "org/openrewrite/recipe#rewrite-recipe-bom/2.8.1": {
+   "pom": "sha256-UhsIRURzoOk+BXcbmOqz/WgEB8mPtt4x6KVvnvUpnGg="
+  },
+  "org/openrewrite/recipe#rewrite-static-analysis/1.4.2": {
+   "jar": "sha256-jQ+HQhy5s65fr8DJVx9zBwelxwc7NENwgkxYbEnP3WY=",
+   "pom": "sha256-JWhucQZ6NSPReV1ZAjkjBbyTEL6hZhHJpRY/JN4mMBo="
+  },
+  "org/openrewrite/recipe#rewrite-testing-frameworks/2.6.0": {
+   "jar": "sha256-yZeGKnv0lO04nA2wYX2RDbXQHdJ4FKOVtjz1azcPLdA=",
+   "pom": "sha256-PTCTctbxw43Bf4rNg5LD0Etp2oCT/T64CA80/bpZo/I="
+  },
+  "org/openrewrite/tools#java-object-diff/1.0.1": {
+   "jar": "sha256-jc8DgdMGxSI86kwKy4Sv1WkexutB4Lajbdooigx+xNw=",
+   "pom": "sha256-WB1ijMi/jOggPdk0mFEiFkhqZeiG6KM7lLgZgdWrEe4="
+  },
+  "org/opentest4j#opentest4j/1.3.0": {
+   "jar": "sha256-SOLfY2yrZWPO1k3N/4q7I1VifLI27wvzdZhoLd90Lxs=",
+   "module": "sha256-SL8dbItdyU90ZSvReQD2VN63FDUCSM9ej8onuQkMjg0=",
+   "pom": "sha256-m/fP/EEPPoNywlIleN+cpW2dQ72TfjCUhwbCMqlDs1U="
+  },
+  "org/ow2#ow2/1.5": {
+   "pom": "sha256-D4obEW52C4/mOJxRuE5LB6cPwRCC1Pk25FO1g91QtDs="
+  },
+  "org/ow2#ow2/1.5.1": {
+   "pom": "sha256-Mh3bt+5v5PU96mtM1tt0FU1r+kI5HB92OzYbn0hazwU="
+  },
+  "org/ow2/asm#asm-analysis/9.6": {
+   "jar": "sha256-2Sgy18N+3AfGDiVZrGEYsx1kLjN6ZnHty3up+uaO27s=",
+   "pom": "sha256-+j+ZUCHP9PQTkwbmz/7uoHU5EGRA0psZzAanpjahOFA="
+  },
+  "org/ow2/asm#asm-bom/9.5": {
+   "pom": "sha256-cXVrNd2DfbY4gG8A9Ad+i7Nf6NgL1nToFBowfIEWNb8="
+  },
+  "org/ow2/asm#asm-commons/9.5": {
+   "jar": "sha256-cu7p+6+53o2UY/IN1YSkjO635RUq1MmHv74X3UgRya4=",
+   "pom": "sha256-im5GDu34zHuF0zx1YhPmpfeHX0qDg9U10ZnzIR7CNVw="
+  },
+  "org/ow2/asm#asm-tree/9.5": {
+   "jar": "sha256-PDOmSBkQea6urrfBmkmxU5UvnkD+hvusUgVVTd2azZQ=",
+   "pom": "sha256-pyqq+N0FGJn6CJ54PsfUgnrE19GHYgHG3uy6qUoNyVY="
+  },
+  "org/ow2/asm#asm-tree/9.6": {
+   "jar": "sha256-xD7PF7U5x3fhXae1uGVTs3fi05poPeYoVWfVKDiI5+8=",
+   "pom": "sha256-G8tIHX/Ba5VbtgygfIz6JCS87ni9xAW7oxx9b13C0RM="
+  },
+  "org/ow2/asm#asm-util/9.6": {
+   "jar": "sha256-xjWnQC9Kqb9msvQjDOpiAloP4c1j6HKa3vybGZT6xMM=",
+   "pom": "sha256-UsXB01dAR3nRqZtJqFv506CFAluFFstz2+93yK40AF4="
+  },
+  "org/ow2/asm#asm/9.0": {
+   "jar": "sha256-Dfl1dJFK7pL9NJ0MtOAPM0XUWywjngu1DwqQ6tR4iOA=",
+   "module": "sha256-ivgQlu06/6OaRyn8kApVtmOJSRHWfE1L7w6kJDk90/k=",
+   "pom": "sha256-3gNVWQ3Rv8zNyNeQJK6ZKXLoVSaKztua1oLQheA6lK0="
+  },
+  "org/ow2/asm#asm/9.5": {
+   "jar": "sha256-ti6EtZgHKXUbBFjFNM8TZvcnVCu40VhiEzVoKkYPA1M=",
+   "pom": "sha256-LJzOuVHMZYbejZoWxnKtPkwwucMjAo16PDNmVg1WJ7E="
+  },
+  "org/ow2/asm#asm/9.6": {
+   "jar": "sha256-PG+sJCTbPUqFO2afTj0dnDxVIjXhmjGWc/iHCDwjA6E=",
+   "pom": "sha256-ku7iS8PIQ+SIHUbB3WUFRx7jFC+s+0ZrQoz+paVsa2A="
+  },
+  "org/postgresql#postgresql/42.7.3": {
+   "jar": "sha256-omRMv7obqhRf9+jI71gqbu16fsTKeS9/BUEivex1Ymg=",
+   "pom": "sha256-wqy2hFfZlqjkntB3flklW3RlCXZSOVHxAa25QHXhWIU="
+  },
+  "org/reactfx#reactfx/2.0-M5": {
+   "jar": "sha256-ux/CCc2cBXsXpIAz03lPk3unpWazwIstuIh3cnaf3Wc=",
+   "pom": "sha256-FdCXejrnQDKd3KigR9gDgnVo5WO+1MLABshBr3/mftE="
+  },
+  "org/reflections#reflections/0.10.2": {
+   "jar": "sha256-k4otCP5UBQ12ELlE2N3DoJNVcQ2ea+CqyDjbwE6aKCU=",
+   "pom": "sha256-tsqj6301vXVu1usKKoGGi408D29CJE/q5BdgrGYwbYc="
+  },
+  "org/rnorth/duct-tape#duct-tape/1.0.8": {
+   "jar": "sha256-Mc7xLd7JedH4bXz3CMQaF9pSPQXGhf1mQunQsq3bckA=",
+   "pom": "sha256-Jjb2bevm4SQ3Yy8jpnubyWGwNjMAnlJSeju8hx9AabQ="
+  },
+  "org/scala-lang#scala-library/2.13.8": {
+   "jar": "sha256-oIgrglFBkMK6x9GkWYcqdfAF/A8+iLK8A5A2cUbjXbc=",
+   "pom": "sha256-SucLPLDCFdaa6sKMkhLmgR+euXiVZ4I0BgiTNCCIDVI="
+  },
+  "org/slf4j#jul-to-slf4j/2.0.12": {
+   "jar": "sha256-hPAoZMq4Zv+xlu0gIrG42mgupvs9ShYQaUKeg5HuKXk=",
+   "pom": "sha256-cSxGGjt/ZQhXk27ruv6k8afSqsHlVheuJM4+vjkorEg="
+  },
+  "org/slf4j#slf4j-api/1.7.36": {
+   "jar": "sha256-0+9XXj5JeWeNwBvx3M5RAhSTtNEft/G+itmCh3wWocA=",
+   "pom": "sha256-+wRqnCKUN5KLsRwtJ8i113PriiXmDL0lPZhSEN7cJoQ="
+  },
+  "org/slf4j#slf4j-api/2.0.12": {
+   "jar": "sha256-p5UCuKvfvXIoRqJ2kSJqQIhoLW01ZU+bgOKpzKz37Uc=",
+   "pom": "sha256-Udh5pZmPWCJ0Dc9VIsDtaXGtXEpeowtw9bVGCT5rQmM="
+  },
+  "org/slf4j#slf4j-bom/2.0.12": {
+   "pom": "sha256-SH70mE1wFY9Yw3zodmkxukx+VzdYZYhLdWORv9bQDDk="
+  },
+  "org/slf4j#slf4j-parent/1.7.36": {
+   "pom": "sha256-uziNN/vN083mTDzt4hg4aTIY3EUfBAQMXfNgp47X6BI="
+  },
+  "org/slf4j#slf4j-parent/2.0.12": {
+   "pom": "sha256-fGvEdX5NSZJN3w/sX1zkAvg6bGzz4QUtGVsSgqeFVd4="
+  },
+  "org/sonatype/oss#oss-parent/5": {
+   "pom": "sha256-FnjUEgpYXYpjATGu7ExSTZKDmFg7fqthbufVqH9SDT0="
+  },
+  "org/sonatype/oss#oss-parent/7": {
+   "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
+  },
+  "org/sonatype/oss#oss-parent/9": {
+   "pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
+  },
+  "org/springframework#spring-framework-bom/5.3.32": {
+   "module": "sha256-R6cJH2l8pjEYXtQY8Morhu7wyCqhbRdx3exLLDu3s70=",
+   "pom": "sha256-glr3ES49kupDa7DfeMGVFIhfXAFtD8YMiyTUdjoBWhA="
+  },
+  "org/testcontainers#testcontainers/1.19.7": {
+   "jar": "sha256-xjfgJnjOvRKjAZqw/QWu9actBCkfC3OPGASZciMSgGw=",
+   "pom": "sha256-cKoV/o9xafOk76fPgfcIpIHMucsuCUe2Qh9ZKwjTDkU="
+  },
+  "org/testfx#testfx-core/4.0.16-alpha": {
+   "jar": "sha256-d0OENQCPIFYHClNrpQE9YxtPjBJv/1tTpJgh0Ml6dVE=",
+   "pom": "sha256-WgPqJdnH2bzqrnSheRJYPpZEpfUPENk20ovgMHzuyhs="
+  },
+  "org/testfx#testfx-junit5/4.0.16-alpha": {
+   "jar": "sha256-QFZZthIlFxY+GwQdr3WL6q7Y2PQKmtRXEkhiUTrSbZI=",
+   "pom": "sha256-US6tI6KaaXRc4VgL44P/L1XE+2ts0tAoOjJCOo1sQcQ="
+  },
+  "org/tinylog#slf4j-tinylog/2.7.0": {
+   "jar": "sha256-UdOqc6mGv8mFPuqRzXGHe5eJHwHIX2m0Kie1u5YpXeI=",
+   "pom": "sha256-m/aklJduXebZ9Qqm8D2J3IVeBnG9MGvvgJdAMbEkHys="
+  },
+  "org/tinylog#tinylog-api/2.7.0": {
+   "jar": "sha256-61ER4CprUyS1/U5DTL5rkxGb4FrS26PSHPAEWzqXVAw=",
+   "pom": "sha256-tSUMtY3N/tHm3xrll9xpKdNfukezTEmqKOS4iTyhjSQ="
+  },
+  "org/tinylog#tinylog-impl/2.7.0": {
+   "jar": "sha256-N+Uy9wagG7dqmEVMzXHR/6LoPyvv4cMJ5cZ+PEdL7bo=",
+   "pom": "sha256-mfmyIjpFEnD+OiS3DkfSXS46HWyYW0AxzReI/l1jt8Q="
+  },
+  "org/xerial/snappy#snappy-java/1.1.10.5": {
+   "jar": "sha256-Dz8YV+0zEWWD9IC031wCGINsR7+8nGIhwNc/NW3s83s=",
+   "pom": "sha256-ZfW4PkjZ5JRIKtA/GEyeV680jXj0rr4AzWr9xnaB7Y0="
+  },
+  "org/xmlresolver#xmlresolver/5.2.2": {
+   "jar": "sha256-78kr1+0ys+VwleCz6HIFHM+73MmAgx7zPonjgWGoUiI=",
+   "module": "sha256-GwTrOc/sj9X44KtqVSGymabUTza3o8Vx+6lr5Tp26AU=",
+   "pom": "sha256-4VopIlQ7OlXDF3TxDoPbdOk7L6kLPWMV3TocQqkfAHQ="
+  },
+  "org/xmlresolver#xmlresolver/5.2.2/data": {
+   "jar": "sha256-FzkEvb14O6D6ySxbzAXaXQnwzn7tJDRmZuoKI5Rh+bQ="
+  },
+  "org/xmlunit#xmlunit-core/2.9.1": {
+   "jar": "sha256-fnDyPU914F8O558Pa54Tts9R0082xfw6a4OUKd3h7+8=",
+   "pom": "sha256-0n5OKjEqIVR+82BcgS5+YMiuyWTn+WDlDU3Dy2azkBI="
+  },
+  "org/xmlunit#xmlunit-matchers/2.9.1": {
+   "jar": "sha256-uAyzm0wip1yGgQbGJoG/K64aWB9D82s1x74qz52d1GY=",
+   "pom": "sha256-EuxNwYrSDy5ojDCKgHWYl4ZE8T2bsTrqkDKlUEvQIK0="
+  },
+  "org/xmlunit#xmlunit-parent/2.9.1": {
+   "pom": "sha256-1+RY+9XGRFBIeOX7zglLHTB402mn/uF93ezj0Zn9qsA="
+  },
+  "org/yaml#snakeyaml/2.2": {
+   "jar": "sha256-FGeTFEiggXaWrigFt7iyC/sIJlK/nE767VKJMNxJOJs=",
+   "pom": "sha256-6YLq3HiMac8uTeUKn2MrGCwx26UGEoMNNI/EtLqN19Y="
+  },
+  "pt/davidafsilva/apple#jkeychain/1.1.0": {
+   "jar": "sha256-DBAKBPcAbxpuRxOFMF2IORIFaO29gPV7eHtxq415sXM=",
+   "module": "sha256-jMj9dmUna3xQ+fSqQtV4t40JKzy8ts0F/TKffE36A40=",
+   "pom": "sha256-McjawxJZPkNy5BS90l5/ggozTuwD/itb0p4daocwRKg="
+  },
+  "tech/units#indriya/2.1.2": {
+   "jar": "sha256-KGUPPEehW1AM1XkXaZKqWfbcQwqEKQqd7Svhly0r/eA=",
+   "pom": "sha256-ydZchn1fU9Z4XogcMASiwBCmk9EcCT8y03eiwHWxz9c="
+  },
+  "tech/uom#uom-parent/2.1": {
+   "pom": "sha256-iIrWpNud30ZNQcX1Jf0E95C5yTmoEPEWskVBw6ndFpM="
+  },
+  "tech/uom#uom-parent/2.1.1": {
+   "pom": "sha256-rNe3raemg444OLgoG3V4Hoo+mKSZm79kjwsNiBHXSe0="
+  },
+  "tech/uom/lib#uom-lib-common/2.1": {
+   "jar": "sha256-YYJfVNYd2pvalSU7QHZTvhz5/ZuUHaNGLJSjsW8rHIg=",
+   "pom": "sha256-ZyShzOK9EVWuZmGJ5j6Hzyu2tScCqxqLZsgY18dufvg="
+  },
+  "tech/uom/lib#uom-lib/2.1": {
+   "pom": "sha256-x71alqfCcTCj8zlti6X9PO7yPTE9k8wAexFAKlJzjbY="
+  }
+ },
+ "https://sandec.jfrog.io": {
+  "artifactory/repo/one/jpro/jproutils#tree-showing/0.2.2": {
+   "jar": "sha256-UL0OKkyxsS6fmZUT19xz7XRE6xGDirJwOPh/42G7wk0=",
+   "module": "sha256-MIj5KRKf67jwt1J/uusje3MSfHk6PB4wVAPLpTn3xC8=",
+   "pom": "sha256-fP6x7y/1WE9jjIYlE+o+8IyFw0gTyzvHDOPTUyQLTMw="
+  }
+ }
+}
diff --git a/pkgs/applications/office/jameica/default.nix b/pkgs/applications/office/jameica/default.nix
index 66d2a80c55550..f87eaf6d9e4d4 100644
--- a/pkgs/applications/office/jameica/default.nix
+++ b/pkgs/applications/office/jameica/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , makeDesktopItem
 , makeWrapper
-, wrapGAppsHook
+, wrapGAppsHook3
 , stripJavaArchivesHook
 , ant
 , jdk
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
     hash = "sha256-MSVSd5DyVL+dcfTDv1M99hxickPwT2Pt6QGNsu6DGZI=";
   };
 
-  nativeBuildInputs = [ ant jdk wrapGAppsHook makeWrapper stripJavaArchivesHook ];
+  nativeBuildInputs = [ ant jdk wrapGAppsHook3 makeWrapper stripJavaArchivesHook ];
   buildInputs = lib.optionals stdenv.isLinux [ gtk2 glib libXtst ]
     ++ lib.optional stdenv.isDarwin Cocoa;
 
diff --git a/pkgs/applications/office/kexi/default.nix b/pkgs/applications/office/kexi/default.nix
index 37240b8ac5691..132194d0c7824 100644
--- a/pkgs/applications/office/kexi/default.nix
+++ b/pkgs/applications/office/kexi/default.nix
@@ -40,7 +40,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A open source visual database applications creator, a long-awaited competitor for programs like MS Access or Filemaker";
+    description = "Open source visual database applications creator, a long-awaited competitor for programs like MS Access or Filemaker";
     longDescription = ''
       Kexi is a visual database applications creator.
       It can be used for creating database schemas,
diff --git a/pkgs/applications/office/kitsas/default.nix b/pkgs/applications/office/kitsas/default.nix
index e1b3a2b1a7292..f8f32ecec6ed5 100644
--- a/pkgs/applications/office/kitsas/default.nix
+++ b/pkgs/applications/office/kitsas/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, qmake, qtbase, qtsvg, poppler, libzip, pkg-config, wrapQtAppsHook }:
+{ lib, stdenv, fetchFromGitHub, qmake, qtsvg, poppler, libzip, pkg-config, wrapQtAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "kitsas";
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/artoh/kitupiikki";
-    description = "An accounting tool suitable for Finnish associations and small business";
+    description = "Accounting tool suitable for Finnish associations and small business";
     mainProgram = "kitsas";
     maintainers = with maintainers; [ gspia ];
     license = licenses.gpl3Plus;
diff --git a/pkgs/applications/office/ktimetracker/default.nix b/pkgs/applications/office/ktimetracker/default.nix
index 58720625cc8e7..b31eb4588c3f8 100644
--- a/pkgs/applications/office/ktimetracker/default.nix
+++ b/pkgs/applications/office/ktimetracker/default.nix
@@ -28,6 +28,6 @@ kio knotifications kwindowsystem kxmlgui ktextwidgets
     mainProgram = "ktimetracker";
     license = licenses.gpl2;
     homepage = "https://userbase.kde.org/KTimeTracker";
-    maintainers = with maintainers; [ dtzWill ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/applications/office/ledger-autosync/default.nix b/pkgs/applications/office/ledger-autosync/default.nix
deleted file mode 100644
index 55b89f195e693..0000000000000
--- a/pkgs/applications/office/ledger-autosync/default.nix
+++ /dev/null
@@ -1,67 +0,0 @@
-{ lib
-, python3Packages
-, fetchFromGitHub
-, ledger
-, hledger
-, useLedger ? true
-, useHledger ? true
-}:
-
-python3Packages.buildPythonApplication rec {
-  pname = "ledger-autosync";
-  version = "1.0.3";
-  format = "pyproject";
-
-  # no tests included in PyPI tarball
-  src = fetchFromGitHub {
-    owner = "egh";
-    repo = "ledger-autosync";
-    rev = "v${version}";
-    sha256 = "0n3y4qxsv1cyvyap95h3rj4bj1sinyfgsajygm7s8di3j5aabqr2";
-  };
-
-  nativeBuildInputs = with python3Packages; [
-    poetry-core
-  ];
-
-  propagatedBuildInputs = with python3Packages; [
-    asn1crypto
-    beautifulsoup4
-    cffi
-    cryptography
-    entrypoints
-    fuzzywuzzy
-    idna
-    jeepney
-    keyring
-    lxml
-    mock
-    nose
-    ofxclient
-    ofxhome
-    ofxparse
-    pbr
-    pycparser
-    secretstorage
-    six
-  ] ++ lib.optional useLedger ledger
-    ++ lib.optional useHledger hledger;
-
-  # Checks require ledger as a python package,
-  # ledger does not support python3 while ledger-autosync requires it.
-  nativeCheckInputs = with python3Packages; [ ledger hledger nose mock pytestCheckHook ];
-
-  # Disable some non-passing tests:
-  # https://github.com/egh/ledger-autosync/issues/127
-  disabledTests = [
-    "test_payee_match"
-    "test_args_only"
-  ];
-
-  meta = with lib; {
-    homepage = "https://github.com/egh/ledger-autosync";
-    description = "OFX/CSV autosync for ledger and hledger";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ eamsden ];
-  };
-}
diff --git a/pkgs/applications/office/ledger-web/default.nix b/pkgs/applications/office/ledger-web/default.nix
index e19d4492ac918..00e3636fc3971 100644
--- a/pkgs/applications/office/ledger-web/default.nix
+++ b/pkgs/applications/office/ledger-web/default.nix
@@ -14,7 +14,7 @@ bundlerApp {
   passthru.updateScript = bundlerUpdateScript "ledger-web";
 
   meta = with lib; {
-    description = "A web frontend to the Ledger CLI tool";
+    description = "Web frontend to the Ledger CLI tool";
     homepage = "https://github.com/peterkeen/ledger-web";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg manveru nicknovitski ];
diff --git a/pkgs/applications/office/libreoffice/0001-Strip-away-BUILDCONFIG.patch b/pkgs/applications/office/libreoffice/0001-Strip-away-BUILDCONFIG.patch
deleted file mode 100644
index b477f902b2fb2..0000000000000
--- a/pkgs/applications/office/libreoffice/0001-Strip-away-BUILDCONFIG.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 982d38084f08950863b55043f36ce5548bd73635 Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Mon, 24 Jul 2023 19:12:25 +0200
-Subject: [PATCH] Strip away BUILDCONFIG
-
-The `BuildConfig` field in `libsofficeapp.so` includes the entire
-`PKG_CONFIG_PATH` and subsequently references to a lot of `dev` outputs
-of library dependencies blowing up the closure.
-
-Since this is not strictly needed and the inputs are comprehensible via
-`nix derivation show`, this doesn't bring a real benefit in the case of
-nixpkgs anyways.
----
- desktop/source/lib/init.cxx | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
-index 8d830c0cbd00..fbdc86aa7115 100644
---- a/desktop/source/lib/init.cxx
-+++ b/desktop/source/lib/init.cxx
-@@ -7097,7 +7097,7 @@ static char* lo_getVersionInfo(SAL_UNUSED_PARAMETER LibreOfficeKit* /*pThis*/)
-         "\"ProductVersion\": \"%PRODUCTVERSION\", "
-         "\"ProductExtension\": \"%PRODUCTEXTENSION\", "
-         "\"BuildId\": \"%BUILDID\", "
--        "\"BuildConfig\": \""  BUILDCONFIG  "\" "
-+        "\"BuildConfig\": \"removed to avoid runtime dependencies against dev outputs of each dependency. Use 'nix derivation show' against the package to find out details about BuildConfig.\" "
-         "}"));
- }
- 
--- 
-2.40.1
-
diff --git a/pkgs/applications/office/libreoffice/darwin/default.nix b/pkgs/applications/office/libreoffice/darwin/default.nix
index 0cec562106ab1..f415b9164959d 100644
--- a/pkgs/applications/office/libreoffice/darwin/default.nix
+++ b/pkgs/applications/office/libreoffice/darwin/default.nix
@@ -3,27 +3,26 @@
 , fetchurl
 , undmg
 , writeScript
-, callPackage
 }:
 
 let
   appName = "LibreOffice.app";
   scriptName = "soffice";
-  version = "7.6.4";
+  version = "7.6.7";
 
   dist = {
     aarch64-darwin = rec {
       arch = "aarch64";
       archSuffix = arch;
       url = "https://download.documentfoundation.org/libreoffice/stable/${version}/mac/${arch}/LibreOffice_${version}_MacOS_${archSuffix}.dmg";
-      sha256 = "44d141603010771b720fb047a760cb1c184e767528d7c4933b5456c64ebaddb2";
+      sha256 = "17686aff42734ea4feef08e1189bab3011220000f7784061314c1ae9e5942531";
     };
 
     x86_64-darwin = rec {
       arch = "x86_64";
       archSuffix = "x86-64";
       url = "https://download.documentfoundation.org/libreoffice/stable/${version}/mac/${arch}/LibreOffice_${version}_MacOS_${archSuffix}.dmg";
-      sha256 = "58ecd09fd4b57805d03207f0daf2d3549ceeb774e54bd4a2f339dc6c7b15dbc9";
+      sha256 = "42d2eeaeee7bcb0e76e9decdcb8f5a4beebf133ad31f7d42a5e96ea770860110";
     };
   };
 in
@@ -44,7 +43,7 @@ stdenvNoCC.mkDerivation {
     cp -R . $out/Applications/${appName}
     cat > $out/bin/${scriptName} << EOF
     #!${stdenvNoCC.shell}
-    open -na $out/Applications/${appName} --args "$@"
+    open -na $out/Applications/${appName} --args "\$@"
     EOF
     chmod +x $out/bin/${scriptName}
     runHook postInstall
@@ -63,11 +62,8 @@ stdenvNoCC.mkDerivation {
         #!nix-shell -i bash --argstr aarch64Url ${aarch64Url} --argstr x86_64Url ${x86_64Url} --argstr version ${version} ${updateNix}
         set -eou pipefail
 
-        # reset version first so that both platforms are always updated and in sync
-        update-source-version libreoffice-bin 0 ${lib.fakeSha256} --file=${defaultNixFile} --system=aarch64-darwin
-        update-source-version libreoffice-bin $newVersion $newAarch64Sha256 --file=${defaultNixFile} --system=aarch64-darwin
-        update-source-version libreoffice-bin 0 ${lib.fakeSha256} --file=${defaultNixFile} --system=x86_64-darwin
-        update-source-version libreoffice-bin $newVersion $newX86_64Sha256 --file=${defaultNixFile} --system=x86_64-darwin
+        update-source-version libreoffice-bin $newVersion $newAarch64Sha256 --file=${defaultNixFile} --system=aarch64-darwin --ignore-same-version
+        update-source-version libreoffice-bin $newVersion $newX86_64Sha256 --file=${defaultNixFile} --system=x86_64-darwin --ignore-same-version
       '';
 
   meta = with lib; {
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index 46677de9bbc18..f0ffec6d92755 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -1,16 +1,15 @@
 { stdenv
 , fetchurl
-, fetchpatch
+, fetchgit
+, fetchpatch2
 , lib
-, substituteAll
 , pam
-, python3
+, python311
 , libxslt
 , perl
-, ArchiveZip
+, perlPackages
 , box2d
 , gettext
-, IOCompress
 , zlib
 , libjpeg
 , liblangtag
@@ -50,34 +49,34 @@
 , libGLU
 , libGL
 , bsh
-, CoinMP
+, coinmp
 , libwps
 , libabw
+, libargon2
 , libmysqlclient
 , autoconf
 , automake
 , openldap
 , bash
 , hunspell
+, librdf_rasqal
 , librdf_redland
 , nss
 , nspr
 , libwpg
 , dbus-glib
-, clucene_core
+, clucene_core_2
 , libcdr
-, lcms
+, lcms2
 , unixODBC
 , mdds
 , sane-backends
 , mythes
 , libexttextcat
 , libvisio
-, fontsConf
 , pkg-config
 , bluez5
 , libtool
-, carlito
 , libatomic_ops
 , graphite2
 , harfbuzz
@@ -89,19 +88,21 @@
 , glm
 , gst_all_1
 , gdb
-, commonsLogging
-, librdf_rasqal
-, gnome
+, adwaita-icon-theme
 , glib
 , ncurses
 , libepoxy
 , gpgme
 , libwebp
 , abseil-cpp
-, langs ? [ "ar" "ca" "cs" "da" "de" "en-GB" "en-US" "eo" "es" "fi" "fr" "hu" "it" "ja" "nl" "pl" "pt" "pt-BR" "ro" "ru" "sl" "tr" "uk" "zh-CN" ]
+, libepubgen
+, libetonyek
+, liborcus
+, libpng
+, langs ? [ "ar" "ca" "cs" "da" "de" "en-GB" "en-US" "eo" "es" "fi" "fr" "hu" "it" "ja" "ko" "nl" "pl" "pt" "pt-BR" "ro" "ru" "sk" "sl" "tr" "uk" "zh-CN" ]
+, withFonts ? false
 , withHelp ? true
 , kdeIntegration ? false
-, wrapQtAppsHook ? null
 , qtbase ? null
 , qtx11extras ? null
 , qtwayland ? null
@@ -113,6 +114,23 @@
 , variant ? "fresh"
 , symlinkJoin
 , postgresql
+, makeFontsConf
+, amiri
+, caladea
+, carlito
+, culmus
+, dejavu_fonts
+, rubik
+, liberation-sans-narrow
+, liberation_ttf_v2
+, libertine
+, libertine-g
+, noto-fonts
+, noto-fonts-cjk-sans
+, rhino
+, lp_solve
+, xmlsec
+, libcmis
 # The rest are used only in passthru, for the wrapper
 , kauth ? null
 , kcompletion ? null
@@ -125,14 +143,15 @@
 , kxmlgui ? null
 , phonon ? null
 , qtdeclarative ? null
+, qtmultimedia ? null
 , qtquickcontrols ? null
 , qtsvg ? null
 , qttools ? null
 , solid ? null
 , sonnet ? null
-} @ args:
+}:
 
-assert builtins.elem variant [ "fresh" "still" ];
+assert builtins.elem variant [ "fresh" "still" "collabora" ];
 
 let
   inherit (lib)
@@ -141,6 +160,23 @@ let
     getDev getLib
     optionals optionalString;
 
+  fontsConf = makeFontsConf {
+    fontDirectories = [
+      amiri
+      caladea
+      carlito
+      culmus
+      dejavu_fonts
+      rubik
+      liberation-sans-narrow
+      liberation_ttf_v2
+      libertine
+      libertine-g
+      noto-fonts
+      noto-fonts-cjk-sans
+    ];
+  };
+
   jre' = jre17_minimal.override {
     modules = [ "java.base" "java.desktop" "java.logging" "java.sql" ];
   };
@@ -171,15 +207,18 @@ let
       }) // {
         inherit (x) md5name md5;
       }) srcsAttributes.deps;
-    translations = fetchurl srcsAttributes.translations;
-    help = fetchurl srcsAttributes.help;
+    translations = srcsAttributes.translations { inherit fetchurl fetchgit; };
+    help = srcsAttributes.help { inherit fetchurl fetchgit; };
   };
 
+  qtMajor = lib.versions.major qtbase.version;
+
   # See `postPatch` for details
   kdeDeps = symlinkJoin {
     name = "libreoffice-kde-dependencies-${version}";
     paths = flatten (map (e: [ (getDev e) (getLib e) ]) [
       qtbase
+      qtmultimedia
       qtx11extras
       kconfig
       kcoreaddons
@@ -193,61 +232,51 @@ let
 in stdenv.mkDerivation (finalAttrs: {
   pname = "libreoffice";
   inherit version;
-  src = fetchurl srcsAttributes.main;
 
-  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
-  ]);
+  src = srcsAttributes.main { inherit fetchurl fetchgit; };
 
   postUnpack = ''
     mkdir -v $sourceRoot/${tarballPath}
-  '' + (flip concatMapStrings srcs.third_party (f: ''
-    ln -sfv ${f} $sourceRoot/${tarballPath}/${f.md5name}
-    ln -sfv ${f} $sourceRoot/${tarballPath}/${f.name}
-  ''))
-  + ''
+
+    ${flip concatMapStrings srcs.third_party (f: ''
+      ln -sfv ${f} $sourceRoot/${tarballPath}/${f.md5name}
+      ln -sfv ${f} $sourceRoot/${tarballPath}/${f.name}
+    '')}
+
+  '' + (if (variant != "collabora") then ''
     ln -sv ${srcs.help} $sourceRoot/${tarballPath}/${srcs.help.name}
     ln -svf ${srcs.translations} $sourceRoot/${tarballPath}/${srcs.translations.name}
+
     tar -xf ${srcs.help}
     tar -xf ${srcs.translations}
-  '';
+  '' else ''
+    cp -r --no-preserve=mode ${srcs.help}/. $sourceRoot/helpcontent2/
+    cp -r --no-preserve=mode ${srcs.translations}/. $sourceRoot/translations/
+  '');
 
   patches = [
-    # Remove build config to reduce the amount of `-dev` outputs in the
-    # runtime closure. This behavior was introduced by upstream in commit
-    # cbfac11330882c7d0a817b6c37a08b2ace2b66f4
-    ./0001-Strip-away-BUILDCONFIG.patch
-
-    # Backport fix for tests broken by expired test certificates.
-    (fetchpatch {
-      url = "https://cgit.freedesktop.org/libreoffice/core/patch/?id=ececb678b8362e3be8e02768ddd5e4197d87dc2a";
-      hash = "sha256-TUfKlwNxUTOJ95VLqwVD+ez1xhu7bW6xZlgIaCyIiNg=";
-    })
-
-    # Backport libxml 2.12 build fixes
-    # FIXME: remove in next release
-    (fetchpatch {
-      url = "https://cgit.freedesktop.org/libreoffice/core/patch/?id=c8f7408db73d2f2ccacb25a2b4fef8dfebdfc6cb";
-      hash = "sha256-uEgRx1eyS3Wx2ZDWEsUmpIbuKezVrIbO++qSL2QI8Lk=";
-    })
-    (fetchpatch {
-      url = "https://cgit.freedesktop.org/libreoffice/core/patch/?id=cbb17a548b5cc6a99b6ed7735479bb4f2bc40f26";
-      hash = "sha256-ofhif37uvQI+gidaUpyr6XlyBc3gTJUDBRb3ootrzz0=";
+    # Skip some broken tests:
+    # - tdf160386 does not fall back to a CJK font properly for some reason
+    # - the remaining tests have notes in the patches
+    # FIXME: get rid of this ASAP
+    ./skip-broken-tests.patch
+    (./skip-broken-tests- + variant + ".patch")
+
+    # Don't detect Qt paths from qmake, so our patched-in onese are used
+    ./dont-detect-qt-paths-from-qmake.patch
+
+    # Revert part of https://github.com/LibreOffice/core/commit/6f60670877208612b5ea320b3677480ef6508abb that broke zlib linking
+    ./readd-explicit-zlib-link.patch
+  ] ++ lib.optionals (lib.versionOlder version "24.8") [
+    (fetchpatch2 {
+      name = "icu74-compat.patch";
+      url = "https://gitlab.archlinux.org/archlinux/packaging/packages/libreoffice-fresh/-/raw/main/libreoffice-7.5.8.2-icu-74-compatibility.patch?ref_type=heads.patch";
+      hash = "sha256-OGBPIVQj8JTYlkKywt4QpH7ULAzKmet5jTLztGpIS0Y=";
     })
+  ] ++ lib.optionals (variant == "collabora") [
+    ./fix-unpack-collabora.patch
   ];
 
-  # libreoffice tries to reference the BUILDCONFIG (e.g. PKG_CONFIG_PATH)
-  # in the binary causing the closure size to blow up because of many unnecessary
-  # dependencies to dev outputs. This behavior was patched away in nixpkgs
-  # (see above), make sure these don't leak again by accident.
-  disallowedRequisites = lib.optionals (!kdeIntegration)
-    (lib.concatMap
-      (x: lib.optional (x?dev) x.dev)
-      finalAttrs.buildInputs);
-
   postPatch = ''
     # configure checks for header 'gpgme++/gpgmepp_version.h',
     # and if it is found (no matter where) uses a hardcoded path
@@ -255,265 +284,14 @@ in stdenv.mkDerivation (finalAttrs: {
     # '#include <context.h>' instead of '#include <gpgmepp/context.h>'.
     #
     # Fix this path to point to where the headers can actually be found instead.
-    substituteInPlace configure.ac --replace \
+    substituteInPlace configure.ac --replace-fail \
       'GPGMEPP_CFLAGS=-I/usr/include/gpgme++' \
       'GPGMEPP_CFLAGS=-I${gpgme.dev}/include/gpgme++'
-  '' + optionalString kdeIntegration ''
-    substituteInPlace shell/source/unix/exec/shellexec.cxx \
-      --replace xdg-open kde-open5
-    # configure.ac assumes that the first directory that contains headers and
-    # libraries during its checks contains *all* the relevant headers/libs which
-    # obviously doesn't work for us, so we have 2 options:
-    #
-    # 1. patch configure.ac in order to specify the direct paths to various Qt/KDE
-    # dependencies which is ugly and brittle, or
-    #
-    # 2. use symlinkJoin to pull in the relevant dependencies and just patch in
-    # that path which is *also* ugly, but far less likely to break
-    #
-    # The 2nd option is not very Nix'y, but I'll take robust over nice any day.
-    # Additionally, it's much easier to fix if LO breaks on the next upgrade (just
-    # add the missing dependencies to it).
-    substituteInPlace configure.ac \
-      --replace '$QT5INC ' '$QT5INC ${kdeDeps}/include ' \
-      --replace '$QT5LIB ' '$QT5LIB ${kdeDeps}/lib ' \
-      --replace '$KF5INC ' '$KF5INC ${kdeDeps}/include ${kdeDeps}/include/KF5 '\
-      --replace '$KF5LIB ' '$KF5LIB ${kdeDeps}/lib '
-  '';
-
-  dontUseCmakeConfigure = true;
-  dontUseCmakeBuildDir = true;
-
-  preConfigure = ''
-    configureFlagsArray=(
-      "--with-parallelism=$NIX_BUILD_CORES"
-      "--with-lang=${concatStringsSep " " langs}"
-    );
-
-    chmod a+x ./bin/unpack-sources
-    patchShebangs .
-
-    # This is required as some cppunittests require fontconfig configured
-    cp "${fontsConf}" fonts.conf
-    sed -e '/include/i<include>${carlito}/etc/fonts/conf.d</include>' -i fonts.conf
-    export FONTCONFIG_FILE="$PWD/fonts.conf"
-
-    NOCONFIGURE=1 ./autogen.sh
-  '';
-
-  postConfigure = ''
-    # fetch_Download_item tries to interpret the name as a variable name, let it do so...
-    sed -e '1ilibreoffice-translations-${version}.tar.xz=libreoffice-translations-${version}.tar.xz' -i Makefile
-    sed -e '1ilibreoffice-help-${version}.tar.xz=libreoffice-help-${version}.tar.xz' -i Makefile
-  '' /* Test fixups. May need to be revisited/pruned, left alone for now. */ + ''
-    # unit test sd_tiledrendering seems to be fragile
-    # https://nabble.documentfoundation.org/libreoffice-5-0-failure-in-CUT-libreofficekit-tiledrendering-td4150319.html
-    echo > ./sd/CppunitTest_sd_tiledrendering.mk
-    sed -e /CppunitTest_sd_tiledrendering/d -i sd/Module_sd.mk
-    # Pivot chart tests. Fragile.
-    sed -e '/CPPUNIT_TEST(testRoundtrip)/d' -i chart2/qa/extras/PivotChartTest.cxx
-    sed -e '/CPPUNIT_TEST(testPivotTableMedianODS)/d' -i sc/qa/unit/pivottable_filters_test.cxx
-    # one more fragile test?
-    sed -e '/CPPUNIT_TEST(testTdf96536);/d' -i sw/qa/extras/uiwriter/uiwriter.cxx
-    # this I actually hate, this should be a data consistency test!
-    sed -e '/CPPUNIT_TEST(testTdf115013);/d' -i sw/qa/extras/uiwriter/uiwriter.cxx
-    # rendering-dependent test
-    # tilde expansion in path processing checks the existence of $HOME
-    sed -e 's@OString sSysPath("~/tmp");@& return ; @' -i sal/qa/osl/file/osl_File.cxx
-    # fails on systems using ZFS, see https://github.com/NixOS/nixpkgs/issues/19071
-    sed -e '/CPPUNIT_TEST(getSystemPathFromFileURL_005);/d' -i './sal/qa/osl/file/osl_File.cxx'
-    # rendering-dependent: on my computer the test table actually doesn't fit…
-    # interesting fact: test disabled on macOS by upstream
-    sed -re '/DECLARE_WW8EXPORT_TEST[(]testTableKeep, "tdf91083.odt"[)]/,+5d' -i ./sw/qa/extras/ww8export/ww8export.cxx
-    # Segfault on DB access — maybe temporarily acceptable for a new version of Fresh?
-    sed -e 's/CppunitTest_dbaccess_empty_stdlib_save//' -i ./dbaccess/Module_dbaccess.mk
-    # one more fragile test?
-    sed -e '/CPPUNIT_TEST(testTdf77014);/d' -i sw/qa/extras/uiwriter/uiwriter.cxx
-    # rendering-dependent tests
-    sed -e '/CPPUNIT_TEST(testLegacyCellAnchoredRotatedShape)/d' -i sc/qa/unit/filters-test.cxx
-    sed -zre 's/DesktopLOKTest::testGetFontSubset[^{]*[{]/& return; /' -i desktop/qa/desktop_lib/test_desktop_lib.cxx
-    sed -z -r -e 's/DECLARE_OOXMLEXPORT_TEST[(]testFlipAndRotateCustomShape,[^)]*[)].[{]/& return;/' -i sw/qa/extras/ooxmlexport/ooxmlexport7.cxx
-    sed -z -r -e 's/DECLARE_OOXMLEXPORT_TEST[(]tdf105490_negativeMargins,[^)]*[)].[{]/& return;/' -i sw/qa/extras/ooxmlexport/ooxmlexport9.cxx
-    sed -z -r -e 's/DECLARE_OOXMLIMPORT_TEST[(]testTdf112443,[^)]*[)].[{]/& return;/' -i sw/qa/extras/ooxmlimport/ooxmlimport.cxx
-    sed -z -r -e 's/DECLARE_RTFIMPORT_TEST[(]testTdf108947,[^)]*[)].[{]/& return;/' -i sw/qa/extras/rtfimport/rtfimport.cxx
-    # not sure about this fragile test
-    sed -z -r -e 's/DECLARE_OOXMLEXPORT_TEST[(]testTDF87348,[^)]*[)].[{]/& return;/' -i sw/qa/extras/ooxmlexport/ooxmlexport7.cxx
-    # bunch of new Fresh failures. Sigh.
-    sed -e '/CPPUNIT_TEST(testDocumentLayout);/d' -i './sd/qa/unit/import-tests.cxx'
-    sed -e '/CPPUNIT_TEST(testErrorBarDataRangeODS);/d' -i './chart2/qa/extras/chart2export.cxx'
-    sed -e '/CPPUNIT_TEST(testLabelStringODS);/d' -i './chart2/qa/extras/chart2export.cxx'
-    sed -e '/CPPUNIT_TEST(testAxisNumberFormatODS);/d' -i './chart2/qa/extras/chart2export.cxx'
-    sed -e '/CPPUNIT_TEST(testBackgroundImage);/d' -i './sd/qa/unit/export-tests.cxx'
-    sed -e '/CPPUNIT_TEST(testFdo84043);/d' -i './sd/qa/unit/export-tests.cxx'
-    sed -e '/CPPUNIT_TEST(testTdf97630);/d' -i './sd/qa/unit/export-tests.cxx'
-    sed -e '/CPPUNIT_TEST(testTdf80020);/d' -i './sd/qa/unit/export-tests.cxx'
-    sed -e '/CPPUNIT_TEST(testTdf62176);/d' -i './sd/qa/unit/export-tests.cxx'
-    sed -e '/CPPUNIT_TEST(testTransparentBackground);/d' -i './sd/qa/unit/export-tests.cxx'
-    sed -e '/CPPUNIT_TEST(testEmbeddedPdf);/d' -i './sd/qa/unit/export-tests.cxx'
-    sed -e '/CPPUNIT_TEST(testEmbeddedText);/d' -i './sd/qa/unit/export-tests.cxx'
-    sed -e '/CPPUNIT_TEST(testTdf98477);/d' -i './sd/qa/unit/export-tests.cxx'
-    sed -e '/CPPUNIT_TEST(testAuthorField);/d' -i './sd/qa/unit/export-tests-ooxml2.cxx'
-    sed -e '/CPPUNIT_TEST(testTdf50499);/d' -i './sd/qa/unit/export-tests.cxx'
-    sed -e '/CPPUNIT_TEST(testTdf100926);/d' -i './sd/qa/unit/export-tests.cxx'
-    sed -e '/CPPUNIT_TEST(testPageWithTransparentBackground);/d' -i './sd/qa/unit/export-tests.cxx'
-    sed -e '/CPPUNIT_TEST(testTextRotation);/d' -i './sd/qa/unit/export-tests.cxx'
-    sed -e '/CPPUNIT_TEST(testTdf113818);/d' -i './sd/qa/unit/export-tests.cxx'
-    sed -e '/CPPUNIT_TEST(testTdf119629);/d' -i './sd/qa/unit/export-tests.cxx'
-    sed -e '/CPPUNIT_TEST(testTdf113822);/d' -i './sd/qa/unit/export-tests.cxx'
-    sed -e '/CPPUNIT_TEST(testTdf105739);/d' -i './sd/qa/unit/export-tests-ooxml2.cxx'
-    sed -e '/CPPUNIT_TEST(testPageBitmapWithTransparency);/d' -i './sd/qa/unit/export-tests-ooxml2.cxx'
-    sed -e '/CPPUNIT_TEST(testTdf115005);/d' -i './sd/qa/unit/export-tests-ooxml2.cxx'
-    sed -e '/CPPUNIT_TEST(testTdf115005_FallBack_Images_On);/d' -i './sd/qa/unit/export-tests-ooxml2.cxx'
-    sed -e '/CPPUNIT_TEST(testTdf115005_FallBack_Images_Off);/d' -i './sd/qa/unit/export-tests-ooxml2.cxx'
-    sed -e '/CPPUNIT_TEST(testTdf44774);/d' -i './sd/qa/unit/misc-tests.cxx'
-    sed -e '/CPPUNIT_TEST(testTdf38225);/d' -i './sd/qa/unit/misc-tests.cxx'
-    sed -e '/CPPUNIT_TEST(testAuthorField);/d' -i './sd/qa/unit/export-tests-ooxml2.cxx'
-    sed -e '/CPPUNIT_TEST(testAuthorField);/d' -i './sd/qa/unit/export-tests.cxx'
-    sed -e '/CPPUNIT_TEST(testFdo85554);/d' -i './sw/qa/extras/uiwriter/uiwriter.cxx'
-    sed -e '/CPPUNIT_TEST(testEmbeddedDataSource);/d' -i './sw/qa/extras/uiwriter/uiwriter.cxx'
-    sed -e '/CPPUNIT_TEST(testTdf96479);/d' -i './sw/qa/extras/uiwriter/uiwriter.cxx'
-    sed -e '/CPPUNIT_TEST(testInconsistentBookmark);/d' -i './sw/qa/extras/uiwriter/uiwriter.cxx'
-    sed -e '/CPPUNIT_TEST(Import_Export_Import);/d' -i './sw/qa/inc/swmodeltestbase.hxx'
-    sed -e /CppunitTest_sw_layoutwriter/d -i sw/Module_sw.mk
-    sed -e /CppunitTest_sw_htmlimport/d -i sw/Module_sw.mk
-    sed -e /CppunitTest_sw_core_layout/d -i sw/Module_sw.mk
-    sed -e /CppunitTest_sw_uiwriter6/d -i sw/Module_sw.mk
-    sed -e /CppunitTest_sdext_pdfimport/d -i sdext/Module_sdext.mk
-    sed -e /CppunitTest_vcl_pdfexport/d -i vcl/Module_vcl.mk
-    sed -e /CppunitTest_sc_ucalc_formula/d -i sc/Module_sc.mk
-    sed -e "s/DECLARE_SW_ROUNDTRIP_TEST(\([_a-zA-Z0-9.]\+\)[, ].*, *\([_a-zA-Z0-9.]\+\))/class \\1: public \\2 { public: void verify() override; }; void \\1::verify() /" -i "sw/qa/extras/ooxmlexport/ooxmlexport9.cxx"
-    sed -e "s/DECLARE_SW_ROUNDTRIP_TEST(\([_a-zA-Z0-9.]\+\)[, ].*, *\([_a-zA-Z0-9.]\+\))/class \\1: public \\2 { public: void verify() override; }; void \\1::verify() /" -i "sw/qa/extras/ooxmlexport/ooxmlencryption.cxx"
-    sed -e "s/DECLARE_SW_ROUNDTRIP_TEST(\([_a-zA-Z0-9.]\+\)[, ].*, *\([_a-zA-Z0-9.]\+\))/class \\1: public \\2 { public: void verify() override; }; void \\1::verify() /" -i "sw/qa/extras/odfexport/odfexport.cxx"
-    sed -e "s/DECLARE_SW_ROUNDTRIP_TEST(\([_a-zA-Z0-9.]\+\)[, ].*, *\([_a-zA-Z0-9.]\+\))/class \\1: public \\2 { public: void verify() override; }; void \\1::verify() /" -i "sw/qa/extras/unowriter/unowriter.cxx"
-
-    sed -e '/CPPUNIT_ASSERT(!bRTL);/d' -i './vcl/qa/cppunit/text.cxx'
-    sed -e '/CPPUNIT_ASSERT_EQUAL(0, nMinRunPos);/d' -i './vcl/qa/cppunit/text.cxx'
-    sed -e '/CPPUNIT_ASSERT_EQUAL(4, nMinRunPos);/d' -i './vcl/qa/cppunit/text.cxx'
-    sed -e '/CPPUNIT_ASSERT_EQUAL(11, nMinRunPos);/d' -i './vcl/qa/cppunit/text.cxx'
-    sed -e '/CPPUNIT_ASSERT_EQUAL(18, nMinRunPos);/d' -i './vcl/qa/cppunit/text.cxx'
-    sed -e '/CPPUNIT_ASSERT_EQUAL(3, nEndRunPos);/d' -i './vcl/qa/cppunit/text.cxx'
-    sed -e '/CPPUNIT_ASSERT_EQUAL(9, nEndRunPos);/d' -i './vcl/qa/cppunit/text.cxx'
-    sed -e '/CPPUNIT_ASSERT_EQUAL(17, nEndRunPos);/d' -i './vcl/qa/cppunit/text.cxx'
-    sed -e '/CPPUNIT_ASSERT_EQUAL(22, nEndRunPos);/d' -i './vcl/qa/cppunit/text.cxx'
-
-    # testReqIfTable fails since libxml2: 2.10.3 -> 2.10.4
-    sed -e 's@.*"/html/body/div/table/tr/th".*@//&@' -i sw/qa/extras/htmlexport/htmlexport.cxx
-  '' /* This to avoid using /lib:/usr/lib at linking */ + ''
-    sed -i '/gb_LinkTarget_LDFLAGS/{ n; /rpath-link/d;}' solenv/gbuild/platform/unxgcc.mk
-
-    find -name "*.cmd" -exec sed -i s,/lib:/usr/lib,, {} \;
-  '' + optionalString stdenv.isAarch64 ''
-    sed -e '/CPPUNIT_TEST(testStatisticalFormulasFODS);/d' -i './sc/qa/unit/functions_statistical.cxx'
-  '' + optionalString (variant == "fresh") ''
-    sed -e '/CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), pPage3Objs->size());/d' -i './sw/qa/core/text/porrst.cxx'
-    sed -e '/CPPUNIT_ASSERT(pPage4Objs);/d' -i './sw/qa/core/text/porrst.cxx'
-    sed -e '/CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), pPage4Objs->size());/d' -i './sw/qa/core/text/porrst.cxx'
-  '';
-
-  makeFlags = [ "SHELL=${bash}/bin/bash" ];
-
-  enableParallelBuilding = true;
-
-  buildTargets = [ "build-nocheck" ];
-
-  doCheck = true;
-
-  # It installs only things to $out/lib/libreoffice
-  postInstall = ''
-    mkdir -p $out/share
-    ln -s $out/lib/libreoffice/share/xdg $out/share/applications
 
-    cp -r sysui/desktop/icons  "$out/share"
-    sed -re 's@Icon=libreoffice(dev)?[0-9.]*-?@Icon=@' -i "$out/share/applications/"*.desktop
+    # Fix for Python 3.12
+    substituteInPlace configure.ac --replace-fail distutils.sysconfig sysconfig
   '';
 
-  # Wrapping is done in ./wrapper.nix
-  dontWrapQtApps = true;
-
-  configureFlags = [
-    (lib.withFeature withHelp "help")
-    "--with-boost=${getDev boost}"
-    "--with-boost-libdir=${getLib boost}/lib"
-    "--with-beanshell-jar=${bsh}"
-    "--with-vendor=NixOS"
-    "--disable-report-builder"
-    "--disable-online-update"
-    "--enable-python=system"
-    "--enable-dbus"
-    "--enable-release-build"
-    "--enable-epm"
-    "--with-ant-home=${getLib ant}/lib/ant"
-    "--with-system-cairo"
-    "--with-system-libs"
-    "--with-system-headers"
-    "--with-system-openssl"
-    "--with-system-libabw"
-    "--with-system-liblangtag"
-    "--without-system-libcmis"
-    "--with-system-libwps"
-    "--with-system-openldap"
-    "--with-system-coinmp"
-    "--with-system-postgresql"
-
-    # Without these, configure does not finish
-    "--without-junit"
-
-    # Schema files for validation are not included in the source tarball
-    "--without-export-validation"
-
-    # We do tarball prefetching ourselves
-    "--disable-fetch-external"
-    "--enable-build-opensymbol"
-
-    # I imagine this helps. Copied from go-oo.
-    # Modified on every upgrade, though
-    "--disable-odk"
-    "--disable-firebird-sdbc"
-    "--without-fonts"
-    "--without-doxygen"
-
-    # TODO: package these as system libraries
-    "--with-system-beanshell"
-    "--without-system-hsqldb"
-    "--without-system-altlinuxhyph"
-    "--without-system-lpsolve"
-    "--without-system-libetonyek"
-    "--without-system-libfreehand"
-    "--without-system-libmspub"
-    "--without-system-libnumbertext"
-    "--without-system-libpagemaker"
-    "--without-system-libstaroffice"
-    "--without-system-libepubgen"
-    "--without-system-libqxp"
-    "--without-system-dragonbox"
-    "--without-system-libfixmath"
-  # the "still" variant doesn't support Nixpkgs' mdds 2.1, only mdds 2.0
-  ] ++ optionals (variant == "still") [
-    "--without-system-mdds"
-  ] ++ optionals (variant == "fresh") [
-    "--with-system-mdds"
-  ] ++ [
-    # https://github.com/NixOS/nixpkgs/commit/5c5362427a3fa9aefccfca9e531492a8735d4e6f
-    "--without-system-orcus"
-    "--without-system-xmlsec"
-    "--without-system-zxing"
-  ] ++ optionals kdeIntegration [
-    "--enable-kf5"
-    "--enable-qt5"
-    "--enable-gtk3-kde5"
-  ] ++ optionals (variant == "fresh") [
-    "--without-system-dragonbox"
-    "--without-system-libfixmath"
-    # Technically needed only when kdeIntegration is enabled in the "fresh"
-    # variant. Won't hurt to put it here for every "fresh" variant.
-    "--without-system-frozen"
-  ];
-
-  checkTarget = concatStringsSep " " [
-    "unitcheck"
-    "slowcheck"
-  ];
-
   nativeBuildInputs = [
     autoconf
     automake
@@ -523,21 +301,24 @@ in stdenv.mkDerivation (finalAttrs: {
     jdk17
     libtool
     pkg-config
-  ] ++ optionals kdeIntegration [
-    wrapQtAppsHook
   ];
 
-  buildInputs = with xorg; finalAttrs.passthru.gst_packages ++ [
-    ArchiveZip
-    CoinMP
-    IOCompress
+  buildInputs = finalAttrs.passthru.gst_packages ++ [
+    # Make libpng not handle APNG images, so LibreOffice's own handler kicks in
+    # This should be ordered first, so it gets picked up before any other
+    # propagated libpng
+    # See: https://www.mail-archive.com/libreoffice@lists.freedesktop.org/msg334080.html
+    (libpng.override { apngSupport = false; })
+    perlPackages.ArchiveZip
+    coinmp
+    perlPackages.IOCompress
     abseil-cpp
     ant
     bluez5
     boost
     box2d
     cairo
-    clucene_core
+    clucene_core_2
     cppunit
     cups
     curl
@@ -552,30 +333,34 @@ in stdenv.mkDerivation (finalAttrs: {
     gettext
     glib
     glm
-    gnome.adwaita-icon-theme
+    adwaita-icon-theme
     gperf
     gpgme
     graphite2
     gtk3
-    harfbuzz
+    (harfbuzz.override { withIcu = true; })
     hunspell
     icu
     jre'
-    lcms
+    lcms2
     libGL
     libGLU
-    libX11
-    libXaw
-    libXdmcp
-    libXext
-    libXi
-    libXinerama
-    libXtst
+    xorg.libX11
+    xorg.libXaw
+    xorg.libXdmcp
+    xorg.libXext
+    xorg.libXi
+    xorg.libXinerama
+    xorg.libXtst
     libabw
+    libargon2
     libatomic_ops
     libcdr
+    libcmis
     libe-book
     libepoxy
+    libepubgen
+    libetonyek
     libexttextcat
     libjpeg
     liblangtag
@@ -583,8 +368,8 @@ in stdenv.mkDerivation (finalAttrs: {
     libmwaw
     libmysqlclient
     libodfgen
-    libpthreadstubs
-    librdf_rasqal
+    liborcus
+    xorg.libpthreadstubs
     librdf_redland
     librevenge
     librsvg
@@ -594,10 +379,11 @@ in stdenv.mkDerivation (finalAttrs: {
     libwpg
     libwps
     libxml2
-    libxshmfence
+    xorg.libxshmfence
     libxslt
     libzmf
     libwebp
+    lp_solve
     mdds
     mythes
     ncurses
@@ -610,12 +396,13 @@ in stdenv.mkDerivation (finalAttrs: {
     perl
     poppler
     postgresql
-    python3
+    python311
     sane-backends
     unixODBC
     unzip
     util-linux
     which
+    xmlsec
     zip
     zlib
   ] ++ optionals kdeIntegration [
@@ -625,9 +412,184 @@ in stdenv.mkDerivation (finalAttrs: {
     kio
   ];
 
+  preConfigure = ''
+    configureFlagsArray=(
+      "--with-parallelism=$NIX_BUILD_CORES"
+      # here because we need to be very specific about spaces
+      "--with-lang=${concatStringsSep " " langs}"
+    );
+
+    patchShebangs .
+
+    NOCONFIGURE=1 ./autogen.sh
+  '' + optionalString kdeIntegration ''
+    # configure.ac assumes that the first directory that contains headers and
+    # libraries during its checks contains *all* the relevant headers/libs which
+    # obviously doesn't work for us, so we have 2 options:
+    #
+    # 1. patch configure.ac in order to specify the direct paths to various Qt/KDE
+    # dependencies which is ugly and brittle, or
+    #
+    # 2. use symlinkJoin to pull in the relevant dependencies and just patch in
+    # that path which is *also* ugly, but far less likely to break
+    #
+    # The 2nd option is not very Nix'y, but I'll take robust over nice any day.
+    # Additionally, it's much easier to fix if LO breaks on the next upgrade (just
+    # add the missing dependencies to it).
+    export QT${qtMajor}INC=${kdeDeps}/include
+    export QT${qtMajor}LIB=${kdeDeps}/lib
+    export KF${qtMajor}INC="${kdeDeps}/include ${kdeDeps}/include/KF${qtMajor}"
+    export KF${qtMajor}LIB=${kdeDeps}/lib
+  '';
+
+  configureFlags = [
+    # Explicitly passing in --host even on non-cross, because
+    # LibreOffice will attempt to detect WSL and cross-compile
+    # itself to Windows automatically, and we don't want it
+    # doing that.
+    "--host=${stdenv.hostPlatform.config}"
+    "--without-buildconfig-recorded"
+
+    (lib.withFeature withHelp "help")
+    "--with-boost=${getDev boost}"
+    "--with-boost-libdir=${getLib boost}/lib"
+    "--with-beanshell-jar=${bsh}"
+    "--with-vendor=NixOS"
+    "--disable-report-builder"
+    "--disable-online-update"
+    "--enable-python=system"
+    "--enable-dbus"
+    "--enable-release-build"
+    "--enable-epm"
+    "--with-ant-home=${getLib ant}/lib/ant"
+
+    # Without these, configure does not finish
+    "--without-junit"
+
+    # Schema files for validation are not included in the source tarball
+    "--without-export-validation"
+
+    # We do tarball prefetching ourselves
+    "--disable-fetch-external"
+    "--enable-build-opensymbol"
+
+    # I imagine this helps. Copied from go-oo.
+    # Modified on every upgrade, though
+    "--disable-odk"
+    "--disable-firebird-sdbc"
+    (lib.withFeature withFonts "fonts")
+    "--without-doxygen"
+
+    "--with-system-beanshell"
+    "--with-system-cairo"
+    "--with-system-coinmp"
+    "--with-system-headers"
+    "--with-system-libabw"
+    "--with-system-libcmis"
+    "--with-system-libepubgen"
+    "--with-system-libetonyek"
+    "--with-system-liblangtag"
+    "--with-system-libs"
+    "--with-system-libwps"
+    "--with-system-lpsolve"
+    "--with-system-mdds"
+    "--with-system-openldap"
+    "--with-system-openssl"
+    "--with-system-orcus"
+    "--with-system-postgresql"
+    "--with-system-xmlsec"
+
+    # TODO: package these as system libraries
+    "--without-system-altlinuxhyph"
+    "--without-system-frozen"
+    "--without-system-libfreehand"
+    "--without-system-libmspub"
+    "--without-system-libnumbertext"
+    "--without-system-libpagemaker"
+    "--without-system-libstaroffice"
+    "--without-system-libqxp"
+    "--without-system-dragonbox"
+    "--without-system-libfixmath"
+
+    # requires an oddly specific, old version
+    "--without-system-hsqldb"
+
+    # searches hardcoded paths that are wrong
+    "--without-system-zxing"
+
+    # is packaged but headers can't be found because there is no pkg-config file
+    "--without-system-zxcvbn"
+  ] ++ optionals kdeIntegration [
+    "--enable-kf${qtMajor}"
+    "--enable-qt${qtMajor}"
+  ] ++ optionals (kdeIntegration && qtMajor == "5") [
+    "--enable-gtk3-kde5"
+  ] ++ (if variant == "fresh" then [
+    "--with-system-rhino"
+    "--with-rhino-jar=${rhino}/share/java/js.jar"
+  ] else [
+    # our Rhino is too new for older versions
+    "--without-system-rhino"
+  ]);
+
+
+  env = {
+    # FIXME: this is a hack, because the right cflags are not being picked up
+    # from rasqal's .pc file. Needs more investigation.
+    NIX_CFLAGS_COMPILE = "-I${librdf_rasqal}/include/rasqal";
+
+    # Provide all the fonts used in tests.
+    FONTCONFIG_FILE = fontsConf;
+  };
+
+  makeFlags = [ "SHELL=${bash}/bin/bash" ];
+
+  enableParallelBuilding = true;
+
+  buildTargets = [ "build-nocheck" ];
+
+  doCheck = true;
+
+  preCheck = ''
+    export HOME=$(pwd)
+  '';
+
+  checkTarget = concatStringsSep " " [
+    "unitcheck"
+    "slowcheck"
+    "--keep-going"  # easier to debug test failures
+  ];
+
+  postInstall = optionalString (variant != "collabora") ''
+    mkdir -p $out/{include,share/icons}
+
+    cp -r include/LibreOfficeKit $out/include/
+    cp -r sysui/desktop/icons/hicolor $out/share/icons
+
+    # Rename icons for consistency
+    for file in $out/share/icons/hicolor/*/apps/*; do
+      mv $file "$(dirname $file)/libreoffice-$(basename $file)"
+    done
+
+    ln -s $out/lib/libreoffice/share/xdg $out/share/applications
+
+    # Unversionize desktop files
+    . ./bin/get_config_variables PRODUCTVERSION
+    for file in $out/lib/libreoffice/share/xdg/*.desktop; do
+      substituteInPlace $file \
+        --replace-fail "LibreOffice $PRODUCTVERSION" "LibreOffice" \
+        --replace-warn "Icon=libreoffice$PRODUCTVERSION" "Icon=libreoffice" \
+        --replace-fail "Exec=libreoffice$PRODUCTVERSION" "Exec=libreoffice"
+    done
+  '';
+
+  # Wrapping is done in ./wrapper.nix
+  dontWrapQtApps = true;
+
   passthru = {
     inherit srcs;
     jdk = jre';
+    python = python311; # for unoconv
     updateScript = [
       ./update.sh
       # Pass it this file name as argument
@@ -653,6 +615,7 @@ in stdenv.mkDerivation (finalAttrs: {
       ki18n
       knotifications
       qtdeclarative
+      qtmultimedia
       qtquickcontrols
       qtwayland
       solid
@@ -673,6 +636,7 @@ in stdenv.mkDerivation (finalAttrs: {
       phonon
       qtbase
       qtdeclarative
+      qtmultimedia
       qtsvg
       qttools
       qtwayland
@@ -680,9 +644,18 @@ in stdenv.mkDerivation (finalAttrs: {
     ];
   };
 
+  # libreoffice tries to reference the BUILDCONFIG (e.g. PKG_CONFIG_PATH)
+  # in the binary causing the closure size to blow up because of many unnecessary
+  # dependencies to dev outputs. This behavior was patched away in nixpkgs
+  # (see above), make sure these don't leak again by accident.
+  # FIXME: disabled for kdeIntegration builds because the weird symlinkJoin setup
+  # leaks all the -dev dependencies :(
+  disallowedRequisites = lib.optionals (!kdeIntegration) (lib.concatMap (x: lib.optional (x?dev) x.dev) finalAttrs.buildInputs);
+
   requiredSystemFeatures = [ "big-parallel" ];
 
   meta = with lib; {
+    changelog = "https://wiki.documentfoundation.org/ReleaseNotes/${lib.versions.majorMinor version}";
     description = "Comprehensive, professional-quality productivity suite, a variant of openoffice.org";
     homepage = "https://libreoffice.org/";
     # at least one jar in dependencies
@@ -690,5 +663,6 @@ in stdenv.mkDerivation (finalAttrs: {
     license = licenses.lgpl3;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
+    mainProgram = "libreoffice";
   };
 })
diff --git a/pkgs/applications/office/libreoffice/dont-detect-qt-paths-from-qmake.patch b/pkgs/applications/office/libreoffice/dont-detect-qt-paths-from-qmake.patch
new file mode 100644
index 0000000000000..6be6598cfd3f3
--- /dev/null
+++ b/pkgs/applications/office/libreoffice/dont-detect-qt-paths-from-qmake.patch
@@ -0,0 +1,22 @@
+diff --git a/configure.ac b/configure.ac
+index 2c11703cb3ff..302a006bbf75 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -13444,8 +13444,6 @@ then
+         fi
+     fi
+ 
+-    qt5_incdirs="`$QMAKE5 -query QT_INSTALL_HEADERS` $qt5_incdirs"
+-    qt5_libdirs="`$QMAKE5 -query QT_INSTALL_LIBS` $qt5_libdirs"
+     qt5_platformsdir="`$QMAKE5 -query QT_INSTALL_PLUGINS`/platforms"
+     QT5_PLATFORMS_SRCDIR="$qt5_platformsdir"
+ 
+@@ -13585,8 +13583,6 @@ then
+         AC_MSG_NOTICE([Detected Qt6 version: $qmake6_test_ver])
+     fi
+ 
+-    qt6_incdirs="`$QMAKE6 -query QT_INSTALL_HEADERS` $qt6_incdirs"
+-    qt6_libdirs="`$QMAKE6 -query QT_INSTALL_LIBS` $qt6_libdirs"
+     qt6_platformsdir="`$QMAKE6 -query QT_INSTALL_PLUGINS`/platforms"
+     QT6_PLATFORMS_SRCDIR="$qt6_platformsdir"
+ 
diff --git a/pkgs/applications/office/libreoffice/fix-unpack-collabora.patch b/pkgs/applications/office/libreoffice/fix-unpack-collabora.patch
new file mode 100644
index 0000000000000..1d95a536e35c9
--- /dev/null
+++ b/pkgs/applications/office/libreoffice/fix-unpack-collabora.patch
@@ -0,0 +1,10 @@
+--- a/solenv/gbuild/UnpackedTarball.mk
++++ b/solenv/gbuild/UnpackedTarball.mk
+@@ -31,6 +31,7 @@ define gb_UnpackedTarget__command_unzip
+ unzip \
+ 	-qq \
+ 	-d $(UNPACKED_DIR) $(UNPACKED_TARBALL) \
++	&& chmod -R u+r $(UNPACKED_DIR) \
+ $(if $(filter-out 0,$(UNPACKED_STRIP_COMPONENTS)),\
+ 	&& UNZIP_DIR=`ls $(UNPACKED_DIR)` \
+ 	&& mv $(UNPACKED_DIR)/$$UNZIP_DIR/* $(UNPACKED_DIR) \
diff --git a/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.py b/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.py
index 3126d0b48251e..7e2c13b5b17c9 100755
--- a/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.py
+++ b/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.py
@@ -9,6 +9,7 @@ of the input file, and writes the result to stdout.
 todo - Ideally we would move as much as possible into derivation dependencies.
 """
 import collections, itertools, json, re, subprocess, sys, os
+import urllib.request, urllib.error
 
 def main():
 
@@ -53,12 +54,29 @@ def main():
 
 def construct_url(x):
     if x['brief']:
-        return 'https://dev-www.libreoffice.org/src/{}{}'.format(
+        url = 'https://dev-www.libreoffice.org/src/{}{}'.format(
             x.get('subdir', ''), x['tarball'])
     else:
-        return 'https://dev-www.libreoffice.org/src/{}{}-{}'.format(
+        url = 'https://dev-www.libreoffice.org/src/{}{}-{}'.format(
             x.get('subdir', ''), x['md5'], x['tarball'])
 
+    if x['name'].startswith('FONT_NOTO_') and not probe_url(url):
+        return 'https://noto-website-2.storage.googleapis.com/pkgs/{}'.format(x['tarball'])
+
+    if x['name'] == 'FONT_OPENDYSLEXIC':
+        return 'https://github.com/antijingoist/opendyslexic/releases/download/v0.91.12/{}'.format(x['tarball'])
+
+    return url
+
+
+def probe_url(url: str) -> bool:
+    request = urllib.request.Request(url, method='HEAD')
+    try:
+        with urllib.request.urlopen(request) as response:
+            return response.status == 200
+    except urllib.error.HTTPError as e:
+        return False
+
 
 def download(url, name, hash, hashtype):
     cmd = ['nix-prefetch-url', url, hash, '--print-path',
diff --git a/pkgs/applications/office/libreoffice/readd-explicit-zlib-link.patch b/pkgs/applications/office/libreoffice/readd-explicit-zlib-link.patch
new file mode 100644
index 0000000000000..b153f9da04d7b
--- /dev/null
+++ b/pkgs/applications/office/libreoffice/readd-explicit-zlib-link.patch
@@ -0,0 +1,36 @@
+diff --git a/writerperfect/Library_wpftcalc.mk b/writerperfect/Library_wpftcalc.mk
+index 3f7f82329..b7a11088a 100644
+--- a/writerperfect/Library_wpftcalc.mk
++++ b/writerperfect/Library_wpftcalc.mk
+@@ -60,6 +60,7 @@ $(eval $(call gb_Library_use_externals,wpftcalc,\
+ 	icu_headers \
+ 	icui18n \
+ 	icuuc \
++	zlib \
+ ))
+ 
+ ifneq ($(ENABLE_WASM_STRIP_SCEXPORTS),TRUE)
+diff --git a/writerperfect/Library_wpftdraw.mk b/writerperfect/Library_wpftdraw.mk
+index a369a626c..cd2fc2be9 100644
+--- a/writerperfect/Library_wpftdraw.mk
++++ b/writerperfect/Library_wpftdraw.mk
+@@ -65,6 +65,7 @@ $(eval $(call gb_Library_use_externals,wpftdraw,\
+ 	icu_headers \
+ 	icui18n \
+ 	icuuc \
++	zlib \
+ ))
+ 
+ $(eval $(call gb_Library_add_exception_objects,wpftdraw,\
+diff --git a/writerperfect/Library_wpftimpress.mk b/writerperfect/Library_wpftimpress.mk
+index 3fa007ae5..9b0e37b4b 100644
+--- a/writerperfect/Library_wpftimpress.mk
++++ b/writerperfect/Library_wpftimpress.mk
+@@ -50,6 +50,7 @@ $(eval $(call gb_Library_use_externals,wpftimpress,\
+ 	odfgen \
+ 	staroffice \
+ 	revenge \
++	zlib \
+ ))
+ 
+ $(eval $(call gb_Library_add_exception_objects,wpftimpress,\
diff --git a/pkgs/applications/office/libreoffice/skip-broken-tests-collabora.patch b/pkgs/applications/office/libreoffice/skip-broken-tests-collabora.patch
new file mode 100644
index 0000000000000..f162d7c407f49
--- /dev/null
+++ b/pkgs/applications/office/libreoffice/skip-broken-tests-collabora.patch
@@ -0,0 +1,65 @@
+--- a/sc/Module_sc.mk
++++ b/sc/Module_sc.mk
+@@ -69,8 +69,8 @@ endif
+ 
+ ifneq ($(DISABLE_GUI),TRUE)
+ ifeq ($(OS),LINUX)
++# CppunitTest_sc_tiledrendering hangs
+ $(eval $(call gb_Module_add_check_targets,sc,\
+-	CppunitTest_sc_tiledrendering \
+ 	CppunitTest_sc_tiledrendering2 \
+ ))
+ endif
+--- a/sc/qa/extras/vba-macro-test.cxx
++++ b/sc/qa/extras/vba-macro-test.cxx
+@@ -364,7 +364,7 @@ CPPUNIT_TEST_FIXTURE(VBAMacroTest, testVba)
+ // Failed:  : Test change event for Range.FillRight:
+ // Tests passed: 4
+ // Tests failed: 4
+-#if !defined(_WIN32)
++#if 0 // flaky, see above
+         { OUString("Ranges-3.xls"),
+           OUString(
+               "vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document") },
+--- a/sc/qa/unit/ucalc_formula.cxx
++++ b/sc/qa/unit/ucalc_formula.cxx
+@@ -1507,6 +1507,8 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaAnnotateTrimOnDoubleRefs)
+ 
+ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdate)
+ {
++    return; // fails consistently on nixpkgs?
++
+     m_pDoc->InsertTab(0, "Formula");
+ 
+     sc::AutoCalcSwitch aACSwitch(*m_pDoc, true); // turn auto calc on.
+--- a/sw/qa/extras/tiledrendering/tiledrendering.cxx
++++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx
+@@ -2948,6 +2948,8 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testHighlightNumbering_shd)
+ 
+ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testPilcrowRedlining)
+ {
++    return; // flaky
++
+     // Load a document where the top left tile contains
+     // paragraph and line break symbols with redlining.
+     SwXTextDocument* pXTextDocument = createDoc("pilcrow-redlining.fodt");
+@@ -4100,6 +4104,8 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testRedlineTooltip)
+ // toggling Formatting Marks on/off for one view should have no effect on other views
+ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testToggleFormattingMarks)
+ {
++    return; // fails consistently
++
+     SwXTextDocument* pXTextDocument = createDoc();
+     int nView1 = SfxLokHelper::getView();
+ 
+--- a/vcl/qa/cppunit/complextext.cxx
++++ b/vcl/qa/cppunit/complextext.cxx
+@@ -529,6 +529,8 @@ CPPUNIT_TEST_FIXTURE(VclComplexTextTest, testMixedCJKLatinScript_glyph_advanceme
+ 
+ CPPUNIT_TEST_FIXTURE(VclComplexTextTest, testTdf107718)
+ {
++    return; // fails to find the font
++
+ #if HAVE_MORE_FONTS
+ #if !defined _WIN32 // TODO: Fails on jenkins but passes locally
+     vcl::Font aFont(u"Source Han Sans"_ustr, u"Regular"_ustr, Size(0, 72));
diff --git a/pkgs/applications/office/libreoffice/skip-broken-tests-fresh.patch b/pkgs/applications/office/libreoffice/skip-broken-tests-fresh.patch
new file mode 100644
index 0000000000000..7b6d1d90f3e9d
--- /dev/null
+++ b/pkgs/applications/office/libreoffice/skip-broken-tests-fresh.patch
@@ -0,0 +1,93 @@
+--- a/sc/Module_sc.mk
++++ b/sc/Module_sc.mk
+@@ -69,8 +69,8 @@ endif
+ 
+ ifneq ($(DISABLE_GUI),TRUE)
+ ifeq ($(OS),LINUX)
++# CppunitTest_sc_tiledrendering hangs
+ $(eval $(call gb_Module_add_check_targets,sc,\
+-	CppunitTest_sc_tiledrendering \
+ 	CppunitTest_sc_tiledrendering2 \
+ ))
+ endif
+--- a/sc/qa/extras/vba-macro-test.cxx
++++ b/sc/qa/extras/vba-macro-test.cxx
+@@ -364,7 +364,7 @@ CPPUNIT_TEST_FIXTURE(VBAMacroTest, testVba)
+ // Failed:  : Test change event for Range.FillRight:
+ // Tests passed: 4
+ // Tests failed: 4
+-#if !defined(_WIN32)
++#if 0 // flaky, see above
+         { u"Ranges-3.xls"_ustr,
+           u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
+ #endif
+--- a/sc/qa/unit/ucalc_formula.cxx
++++ b/sc/qa/unit/ucalc_formula.cxx
+@@ -1507,6 +1507,8 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaAnnotateTrimOnDoubleRefs)
+ 
+ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdate)
+ {
++    return; // fails consistently on nixpkgs?
++
+     m_pDoc->InsertTab(0, u"Formula"_ustr);
+ 
+     sc::AutoCalcSwitch aACSwitch(*m_pDoc, true); // turn auto calc on.
+--- a/sw/qa/extras/layout/layout3.cxx
++++ b/sw/qa/extras/layout/layout3.cxx
+@@ -3039,6 +3041,9 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, TestTdf104209VertRTL)
+
+ CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, TestTdf56408LTR)
+ {
++    return; // requests Noto Sans Hebrew with charset=28, which the font does not have
++            // FIXME: investigate
++
+     // Verify that line breaking a first bidi portion correctly underflows in LTR text
+     createSwDoc("tdf56408-ltr.fodt");
+     auto pXmlDoc = parseLayoutDump();
+@@ -3053,6 +3058,8 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, TestTdf56408LTR)
+
+ CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, TestTdf56408RTL)
+ {
++    return; // same Noto Sans Hebrew issue
++
+     // Verify that line breaking a first bidi portion correctly underflows in RTL text
+     createSwDoc("tdf56408-rtl.fodt");
+     auto pXmlDoc = parseLayoutDump();
+@@ -3083,6 +3090,8 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, TestTdf56408NoUnderflow)
+
+ CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, TestTdf56408AfterFieldCrash)
+ {
++    return; // same Noto Sans Hebrew issue
++
+     // Verify there is no crash/assertion for underflow after a number field
+     createSwDoc("tdf56408-after-field.fodt");
+ }
+@@ -3121,6 +3130,8 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, TestTdf146081)
+
+ CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, TestTdf157829LTR)
+ {
++    return; // same Noto Sans Hebrew issue
++
+     // Verify that line breaking inside a bidi portion triggers underflow to previous bidi portions
+     createSwDoc("tdf157829-ltr.fodt");
+     auto pXmlDoc = parseLayoutDump();
+@@ -3135,6 +3146,8 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, TestTdf157829LTR)
+
+ CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, TestTdf157829RTL)
+ {
++    return; // same Noto Sans Hebrew issue
++
+     // Verify that line breaking inside a bidi portion triggers underflow to previous bidi portions
+     createSwDoc("tdf157829-rtl.fodt");
+     auto pXmlDoc = parseLayoutDump();
+--- a/sw/qa/extras/tiledrendering/tiledrendering.cxx
++++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx
+@@ -4230,6 +4232,8 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testRedlineTooltip)
+ // toggling Formatting Marks on/off for one view should have no effect on other views
+ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testToggleFormattingMarks)
+ {
++    return; // fails consistently
++
+     SwXTextDocument* pXTextDocument = createDoc();
+     int nView1 = SfxLokHelper::getView();
+
diff --git a/pkgs/applications/office/libreoffice/skip-broken-tests-still.patch b/pkgs/applications/office/libreoffice/skip-broken-tests-still.patch
new file mode 100644
index 0000000000000..e7064d1085520
--- /dev/null
+++ b/pkgs/applications/office/libreoffice/skip-broken-tests-still.patch
@@ -0,0 +1,69 @@
+--- a/sc/qa/extras/vba-macro-test.cxx
++++ b/sc/qa/extras/vba-macro-test.cxx
+@@ -364,7 +364,7 @@ CPPUNIT_TEST_FIXTURE(VBAMacroTest, testVba)
+ // Failed:  : Test change event for Range.FillRight:
+ // Tests passed: 4
+ // Tests failed: 4
+-#if !defined(_WIN32)
++#if 0 // flaky, see above
+         { OUString("Ranges-3.xls"),
+           OUString(
+               "vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document") },
+--- a/sc/qa/unit/ucalc_formula.cxx
++++ b/sc/qa/unit/ucalc_formula.cxx
+@@ -1507,6 +1507,8 @@ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaAnnotateTrimOnDoubleRefs)
+ 
+ CPPUNIT_TEST_FIXTURE(TestFormula, testFormulaRefUpdate)
+ {
++    return; // fails consistently on nixpkgs?
++
+     m_pDoc->InsertTab(0, "Formula");
+ 
+     sc::AutoCalcSwitch aACSwitch(*m_pDoc, true); // turn auto calc on.
+--- a/sw/qa/extras/tiledrendering/tiledrendering.cxx
++++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx
+@@ -685,6 +685,8 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testSearchAll)
+
+ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testSearchAllNotifications)
+ {
++    return; // flaky on GTK
++
+     SwXTextDocument* pXTextDocument = createDoc("search.odt");
+     SwWrtShell* pWrtShell = pXTextDocument->GetDocShell()->GetWrtShell();
+     setupLibreOfficeKitViewCallback(pWrtShell->GetSfxViewShell());
+@@ -949,6 +951,8 @@ namespace {
+
+ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testMissingInvalidation)
+ {
++    return; // flaky on GTK
++
+     // Create two views.
+     SwXTextDocument* pXTextDocument = createDoc("dummy.fodt");
+     ViewCallback aView1;
+@@ -982,6 +986,8 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testMissingInvalidation)
+
+ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testViewCursors)
+ {
++    return; // flaky on GTK
++
+     SwXTextDocument* pXTextDocument = createDoc("dummy.fodt");
+     ViewCallback aView1;
+     SfxLokHelper::createView();
+@@ -3189,6 +3189,8 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testRedlineNotificationDuringSave)
+
+ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testHyperlink)
+ {
++    return; // flaky on GTK
++
+     comphelper::LibreOfficeKit::setViewIdForVisCursorInvalidation(true);
+     SwXTextDocument* pXTextDocument = createDoc("hyperlink.odt");
+     SwWrtShell* pWrtShell = pXTextDocument->GetDocShell()->GetWrtShell();
+@@ -3399,6 +3401,8 @@ static void lcl_extractHandleParameters(std::string_view selection, sal_Int32& i
+
+ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testMoveShapeHandle)
+ {
++    return; // flaky on GTK
++
+     comphelper::LibreOfficeKit::setActive();
+     SwXTextDocument* pXTextDocument = createDoc("shape.fodt");
+
diff --git a/pkgs/applications/office/libreoffice/skip-broken-tests.patch b/pkgs/applications/office/libreoffice/skip-broken-tests.patch
new file mode 100644
index 0000000000000..3f45a7cda9db0
--- /dev/null
+++ b/pkgs/applications/office/libreoffice/skip-broken-tests.patch
@@ -0,0 +1,116 @@
+--- a/desktop/qa/desktop_lib/test_desktop_lib.cxx
++++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx
+@@ -600,6 +600,8 @@ void DesktopLOKTest::testGetFilterTypes()
+
+ void DesktopLOKTest::testSearchCalc()
+ {
++    return; // flaky
++
+     LibLibreOffice_Impl aOffice;
+     LibLODocument_Impl* pDocument = loadDoc("search.ods");
+     pDocument->pClass->initializeForRendering(pDocument, nullptr);
+@@ -630,6 +632,8 @@ void DesktopLOKTest::testSearchCalc()
+
+ void DesktopLOKTest::testSearchAllNotificationsCalc()
+ {
++    return; // flaky
++
+     LibLibreOffice_Impl aOffice;
+     LibLODocument_Impl* pDocument = loadDoc("search.ods");
+     pDocument->pClass->initializeForRendering(pDocument, nullptr);
+--- a/svgio/qa/cppunit/data/tdf160386.svg
++++ b/svgio/qa/cppunit/data/tdf160386.svg
+@@ -8,7 +8,6 @@
+     <text systemLanguage="en">Hello!</text>
+     <text systemLanguage="es">Hola!</text>
+     <text systemLanguage="fr">Bonjour!</text>
+-    <text systemLanguage="ja">こんにちは</text>
+     <text systemLanguage="ru">Привет!</text>
+     <text>☺</text>
+   </switch>
+--- a/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx
++++ b/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx
+@@ -284,6 +284,8 @@ void checkIssuePosition(std::shared_ptr<sfx::AccessibilityIssue> const& pIssue,
+
+ CPPUNIT_TEST_FIXTURE(AccessibilityCheckTest, testOnlineNodeSplitAppend)
+ {
++    return; // flaky?
++
+     // Checks the a11y checker is setting the a11y issues to the nodes
+     // correctly when splitting and appending nodes (through undo), which
+     // happen on editing all the time.
+--- a/sw/qa/core/text/text.cxx
++++ b/sw/qa/core/text/text.cxx
+@@ -1577,6 +1577,8 @@ CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testParaUpperMarginFlyIntersect)
+ 
+ CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testTdf129810)
+ {
++    return; // flaky?
++
+     // Load the document.
+     // The document embeds a subset of "Source Han Serif SC" so that it works
+     // even when the font is not installed.
+--- a/sw/qa/extras/htmlimport/htmlimport.cxx
++++ b/sw/qa/extras/htmlimport/htmlimport.cxx
+@@ -306,6 +306,8 @@ CPPUNIT_TEST_FIXTURE(HtmlImportTest, testTableBorder1px)
+ 
+ CPPUNIT_TEST_FIXTURE(HtmlImportTest, testOutlineLevel)
+ {
++    return; // fails consistently, but only in the sandbox
++
+     createSwWebDoc("outline-level.html");
+     // This was 0, HTML imported into Writer lost the outline numbering for
+     // Heading 1 styles.
+--- a/sw/qa/extras/layout/layout3.cxx
++++ b/sw/qa/extras/layout/layout3.cxx
+@@ -539,6 +539,8 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, testTdf120287c)
+
+ CPPUNIT_TEST_FIXTURE(SwLayoutWriter3, testTdf155177)
+ {
++    return; // flaky
++
+     createSwDoc("tdf155177-1-min.odt");
+
+     uno::Reference<beans::XPropertySet> xStyle(getStyles("ParagraphStyles")->getByName("Body Text"),
+--- a/sw/qa/extras/odfimport/odfimport.cxx
++++ b/sw/qa/extras/odfimport/odfimport.cxx
+@@ -601,6 +601,8 @@ CPPUNIT_TEST_FIXTURE(Test, testFdo56272)
+ 
+ CPPUNIT_TEST_FIXTURE(Test, testIncorrectSum)
+ {
++    return; // flaky
++
+     createSwDoc("incorrectsum.odt");
+     Scheduler::ProcessEventsToIdle();
+     uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
+--- a/sw/qa/extras/tiledrendering/tiledrendering.cxx
++++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx
+@@ -2762,6 +2762,8 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testDeleteNodeRedlineCallback)
+ 
+ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testVisCursorInvalidation)
+ {
++    return; // flaky on some backends?
++
+     SwXTextDocument* pXTextDocument = createDoc("dummy.fodt");
+     ViewCallback aView1;
+     int nView1 = SfxLokHelper::getView();
+@@ -3187,6 +3187,8 @@ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testDoubleUnderlineAndStrikeOut)
+
+ CPPUNIT_TEST_FIXTURE(SwTiledRenderingTest, testTdf43244_SpacesOnMargin)
+ {
++    return; // fails consistently
++
+     // Load a document where the top left tile contains
+     // paragraph and line break symbols with redlining.
+     SwXTextDocument* pXTextDocument = createDoc("tdf43244_SpacesOnMargin.odt");
+--- a/sw/qa/extras/uiwriter/uiwriter5.cxx
++++ b/sw/qa/extras/uiwriter/uiwriter5.cxx
+@@ -1613,6 +1613,8 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest5, testDateFormFieldCurrentDateHandling)
+ #if !defined(_WIN32)
+ CPPUNIT_TEST_FIXTURE(SwUiWriterTest5, testDateFormFieldCurrentDateInvalidation)
+ {
++    return; // flaky on KF6
++
+     createSwDoc();
+     SwDoc* pDoc = getSwDoc();
+     CPPUNIT_ASSERT(pDoc);
diff --git a/pkgs/applications/office/libreoffice/src-collabora/deps.nix b/pkgs/applications/office/libreoffice/src-collabora/deps.nix
new file mode 100644
index 0000000000000..f697e3f6140ff
--- /dev/null
+++ b/pkgs/applications/office/libreoffice/src-collabora/deps.nix
@@ -0,0 +1,1087 @@
+[
+  {
+    name = "libabw-0.1.3.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libabw-0.1.3.tar.xz";
+    sha256 = "e763a9dc21c3d2667402d66e202e3f8ef4db51b34b79ef41f56cacb86dcd6eed";
+    md5 = "";
+    md5name = "e763a9dc21c3d2667402d66e202e3f8ef4db51b34b79ef41f56cacb86dcd6eed-libabw-0.1.3.tar.xz";
+  }
+  {
+    name = "phc-winner-argon2-20190702.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/phc-winner-argon2-20190702.tar.gz";
+    sha256 = "daf972a89577f8772602bf2eb38b6a3dd3d922bf5724d45e7f9589b5e830442c";
+    md5 = "";
+    md5name = "daf972a89577f8772602bf2eb38b6a3dd3d922bf5724d45e7f9589b5e830442c-phc-winner-argon2-20190702.tar.gz";
+  }
+  {
+    name = "boost_1_82_0.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/boost_1_82_0.tar.xz";
+    sha256 = "e48ab6953fbd68ba47234bea5173e62427e9f6a7894e152305142895cfe955de";
+    md5 = "";
+    md5name = "e48ab6953fbd68ba47234bea5173e62427e9f6a7894e152305142895cfe955de-boost_1_82_0.tar.xz";
+  }
+  {
+    name = "box2d-2.4.1.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/box2d-2.4.1.tar.gz";
+    sha256 = "d6b4650ff897ee1ead27cf77a5933ea197cbeef6705638dd181adc2e816b23c2";
+    md5 = "";
+    md5name = "d6b4650ff897ee1ead27cf77a5933ea197cbeef6705638dd181adc2e816b23c2-box2d-2.4.1.tar.gz";
+  }
+  {
+    name = "breakpad-b324760c7f53667af128a6b77b790323da04fcb9.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/breakpad-b324760c7f53667af128a6b77b790323da04fcb9.tar.xz";
+    sha256 = "c44a2e898895cfc13b42d2371ba4b88b0777d7782214d6cdc91c33720f3b0d91";
+    md5 = "";
+    md5name = "c44a2e898895cfc13b42d2371ba4b88b0777d7782214d6cdc91c33720f3b0d91-breakpad-b324760c7f53667af128a6b77b790323da04fcb9.tar.xz";
+  }
+  {
+    name = "bsh-2.0b6-src.zip";
+    url = "https://dev-www.libreoffice.org/src/beeca87be45ec87d241ddd0e1bad80c1-bsh-2.0b6-src.zip";
+    sha256 = "9e93c73e23aff644b17dfff656444474c14150e7f3b38b19635e622235e01c96";
+    md5 = "beeca87be45ec87d241ddd0e1bad80c1";
+    md5name = "beeca87be45ec87d241ddd0e1bad80c1-bsh-2.0b6-src.zip";
+  }
+  {
+    name = "bzip2-1.0.8.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/bzip2-1.0.8.tar.gz";
+    sha256 = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269";
+    md5 = "";
+    md5name = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269-bzip2-1.0.8.tar.gz";
+  }
+  {
+    name = "cairo-1.17.6.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/cairo-1.17.6.tar.xz";
+    sha256 = "4eebc4c2bad0402bc3f501db184417094657d111fb6c06f076a82ea191fe1faf";
+    md5 = "";
+    md5name = "4eebc4c2bad0402bc3f501db184417094657d111fb6c06f076a82ea191fe1faf-cairo-1.17.6.tar.xz";
+  }
+  {
+    name = "libcdr-0.1.7.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libcdr-0.1.7.tar.xz";
+    sha256 = "5666249d613466b9aa1e987ea4109c04365866e9277d80f6cd9663e86b8ecdd4";
+    md5 = "";
+    md5name = "5666249d613466b9aa1e987ea4109c04365866e9277d80f6cd9663e86b8ecdd4-libcdr-0.1.7.tar.xz";
+  }
+  {
+    name = "clucene-core-2.3.3.4.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz";
+    sha256 = "ddfdc433dd8ad31b5c5819cc4404a8d2127472a3b720d3e744e8c51d79732eab";
+    md5 = "48d647fbd8ef8889e5a7f422c1bfda94";
+    md5name = "48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz";
+  }
+  {
+    name = "dragonbox-1.1.3.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/dragonbox-1.1.3.tar.gz";
+    sha256 = "09d63b05e9c594ec423778ab59b7a5aa1d76fdd71d25c7048b0258c4ec9c3384";
+    md5 = "";
+    md5name = "09d63b05e9c594ec423778ab59b7a5aa1d76fdd71d25c7048b0258c4ec9c3384-dragonbox-1.1.3.tar.gz";
+  }
+  {
+    name = "dtoa-20180411.tgz";
+    url = "https://dev-www.libreoffice.org/src/dtoa-20180411.tgz";
+    sha256 = "0082d0684f7db6f62361b76c4b7faba19e0c7ce5cb8e36c4b65fea8281e711b4";
+    md5 = "";
+    md5name = "0082d0684f7db6f62361b76c4b7faba19e0c7ce5cb8e36c4b65fea8281e711b4-dtoa-20180411.tgz";
+  }
+  {
+    name = "libcmis-0.6.1.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libcmis-0.6.1.tar.xz";
+    sha256 = "d54d19d86153dbc88e2d468f7136269a2cfe71b73227e12fded01d29ac268074";
+    md5 = "";
+    md5name = "d54d19d86153dbc88e2d468f7136269a2cfe71b73227e12fded01d29ac268074-libcmis-0.6.1.tar.xz";
+  }
+  {
+    name = "CoinMP-1.8.4.tgz";
+    url = "https://dev-www.libreoffice.org/src/CoinMP-1.8.4.tgz";
+    sha256 = "3459fb0ccbdd39342744684338984ac4cc153fb0434f4cae8cf74bd67490a38d";
+    md5 = "";
+    md5name = "3459fb0ccbdd39342744684338984ac4cc153fb0434f4cae8cf74bd67490a38d-CoinMP-1.8.4.tgz";
+  }
+  {
+    name = "cppunit-1.15.1.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/cppunit-1.15.1.tar.gz";
+    sha256 = "89c5c6665337f56fd2db36bc3805a5619709d51fb136e51937072f63fcc717a7";
+    md5 = "";
+    md5name = "89c5c6665337f56fd2db36bc3805a5619709d51fb136e51937072f63fcc717a7-cppunit-1.15.1.tar.gz";
+  }
+  {
+    name = "curl-8.7.1.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/curl-8.7.1.tar.xz";
+    sha256 = "6fea2aac6a4610fbd0400afb0bcddbe7258a64c63f1f68e5855ebc0c659710cd";
+    md5 = "";
+    md5name = "6fea2aac6a4610fbd0400afb0bcddbe7258a64c63f1f68e5855ebc0c659710cd-curl-8.7.1.tar.xz";
+  }
+  {
+    name = "libe-book-0.1.3.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libe-book-0.1.3.tar.xz";
+    sha256 = "7e8d8ff34f27831aca3bc6f9cc532c2f90d2057c778963b884ff3d1e34dfe1f9";
+    md5 = "";
+    md5name = "7e8d8ff34f27831aca3bc6f9cc532c2f90d2057c778963b884ff3d1e34dfe1f9-libe-book-0.1.3.tar.xz";
+  }
+  {
+    name = "libepoxy-1.5.10.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/libepoxy-1.5.10.tar.gz";
+    sha256 = "a7ced37f4102b745ac86d6a70a9da399cc139ff168ba6b8002b4d8d43c900c15";
+    md5 = "";
+    md5name = "a7ced37f4102b745ac86d6a70a9da399cc139ff168ba6b8002b4d8d43c900c15-libepoxy-1.5.10.tar.gz";
+  }
+  {
+    name = "epm-3.7.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/3ade8cfe7e59ca8e65052644fed9fca4-epm-3.7.tar.gz";
+    sha256 = "b3fc4c5445de6c9a801504a3ea3efb2d4ea9d5a622c9427e716736e7713ddb91";
+    md5 = "3ade8cfe7e59ca8e65052644fed9fca4";
+    md5name = "3ade8cfe7e59ca8e65052644fed9fca4-epm-3.7.tar.gz";
+  }
+  {
+    name = "libepubgen-0.1.1.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libepubgen-0.1.1.tar.xz";
+    sha256 = "03e084b994cbeffc8c3dd13303b2cb805f44d8f2c3b79f7690d7e3fc7f6215ad";
+    md5 = "";
+    md5name = "03e084b994cbeffc8c3dd13303b2cb805f44d8f2c3b79f7690d7e3fc7f6215ad-libepubgen-0.1.1.tar.xz";
+  }
+  {
+    name = "libetonyek-0.1.10.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libetonyek-0.1.10.tar.xz";
+    sha256 = "b430435a6e8487888b761dc848b7981626eb814884963ffe25eb26a139301e9a";
+    md5 = "";
+    md5name = "b430435a6e8487888b761dc848b7981626eb814884963ffe25eb26a139301e9a-libetonyek-0.1.10.tar.xz";
+  }
+  {
+    name = "expat-2.6.2.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/expat-2.6.2.tar.xz";
+    sha256 = "ee14b4c5d8908b1bec37ad937607eab183d4d9806a08adee472c3c3121d27364";
+    md5 = "";
+    md5name = "ee14b4c5d8908b1bec37ad937607eab183d4d9806a08adee472c3c3121d27364-expat-2.6.2.tar.xz";
+  }
+  {
+    name = "Firebird-3.0.7.33374-0.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/Firebird-3.0.7.33374-0.tar.bz2";
+    sha256 = "acb85cedafa10ce106b1823fb236b1b3e5d942a5741e8f8435cc8ccfec0afe76";
+    md5 = "";
+    md5name = "acb85cedafa10ce106b1823fb236b1b3e5d942a5741e8f8435cc8ccfec0afe76-Firebird-3.0.7.33374-0.tar.bz2";
+  }
+  {
+    name = "fontconfig-2.14.2.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/fontconfig-2.14.2.tar.xz";
+    sha256 = "dba695b57bce15023d2ceedef82062c2b925e51f5d4cc4aef736cf13f60a468b";
+    md5 = "";
+    md5name = "dba695b57bce15023d2ceedef82062c2b925e51f5d4cc4aef736cf13f60a468b-fontconfig-2.14.2.tar.xz";
+  }
+  {
+    name = "crosextrafonts-20130214.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/368f114c078f94214a308a74c7e991bc-crosextrafonts-20130214.tar.gz";
+    sha256 = "c48d1c2fd613c9c06c959c34da7b8388059e2408d2bb19845dc3ed35f76e4d09";
+    md5 = "368f114c078f94214a308a74c7e991bc";
+    md5name = "368f114c078f94214a308a74c7e991bc-crosextrafonts-20130214.tar.gz";
+  }
+  {
+    name = "crosextrafonts-carlito-20130920.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/c74b7223abe75949b4af367942d96c7a-crosextrafonts-carlito-20130920.tar.gz";
+    sha256 = "4bd12b6cbc321c1cf16da76e2c585c925ce956a08067ae6f6c64eff6ccfdaf5a";
+    md5 = "c74b7223abe75949b4af367942d96c7a";
+    md5name = "c74b7223abe75949b4af367942d96c7a-crosextrafonts-carlito-20130920.tar.gz";
+  }
+  {
+    name = "dejavu-fonts-ttf-2.37.zip";
+    url = "https://dev-www.libreoffice.org/src/33e1e61fab06a547851ed308b4ffef42-dejavu-fonts-ttf-2.37.zip";
+    sha256 = "7576310b219e04159d35ff61dd4a4ec4cdba4f35c00e002a136f00e96a908b0a";
+    md5 = "33e1e61fab06a547851ed308b4ffef42";
+    md5name = "33e1e61fab06a547851ed308b4ffef42-dejavu-fonts-ttf-2.37.zip";
+  }
+  {
+    name = "GentiumBasic_1102.zip";
+    url = "https://dev-www.libreoffice.org/src/1725634df4bb3dcb1b2c91a6175f8789-GentiumBasic_1102.zip";
+    sha256 = "2f1a2c5491d7305dffd3520c6375d2f3e14931ee35c6d8ae1e8f098bf1a7b3cc";
+    md5 = "1725634df4bb3dcb1b2c91a6175f8789";
+    md5name = "1725634df4bb3dcb1b2c91a6175f8789-GentiumBasic_1102.zip";
+  }
+  {
+    name = "karla.zip";
+    url = "https://dev-www.libreoffice.org/src/506757f768adb2331881d5186f7286bd-karla.zip";
+    sha256 = "0cba83e7d555ae792d98a657b847cff1ccb198ecf740117a610f76d66e48eaba";
+    md5 = "506757f768adb2331881d5186f7286bd";
+    md5name = "506757f768adb2331881d5186f7286bd-karla.zip";
+  }
+  {
+    name = "liberation-narrow-fonts-ttf-1.07.6.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/liberation-narrow-fonts-ttf-1.07.6.tar.gz";
+    sha256 = "8879d89b5ff7b506c9fc28efc31a5c0b954bbe9333e66e5283d27d20a8519ea3";
+    md5 = "";
+    md5name = "8879d89b5ff7b506c9fc28efc31a5c0b954bbe9333e66e5283d27d20a8519ea3-liberation-narrow-fonts-ttf-1.07.6.tar.gz";
+  }
+  {
+    name = "liberation-fonts-ttf-2.1.4.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/liberation-fonts-ttf-2.1.4.tar.gz";
+    sha256 = "26f85412dd0aa9d061504a1cc8aaf0aa12a70710e8d47d8b65a1251757c1a5ef";
+    md5 = "";
+    md5name = "26f85412dd0aa9d061504a1cc8aaf0aa12a70710e8d47d8b65a1251757c1a5ef-liberation-fonts-ttf-2.1.4.tar.gz";
+  }
+  {
+    name = "LinLibertineG-20120116.zip";
+    url = "https://dev-www.libreoffice.org/src/e7a384790b13c29113e22e596ade9687-LinLibertineG-20120116.zip";
+    sha256 = "54adcb2bc8cac0927a647fbd9362f45eff48130ce6e2379dc3867643019e08c5";
+    md5 = "e7a384790b13c29113e22e596ade9687";
+    md5name = "e7a384790b13c29113e22e596ade9687-LinLibertineG-20120116.zip";
+  }
+  {
+    name = "source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/edc4d741888bc0d38e32dbaa17149596-source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
+    sha256 = "e7bc9a1fec787a529e49f5a26b93dcdcf41506449dfc70f92cdef6d17eb6fb61";
+    md5 = "edc4d741888bc0d38e32dbaa17149596";
+    md5name = "edc4d741888bc0d38e32dbaa17149596-source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
+  }
+  {
+    name = "NotoKufiArabic-v2.109.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoKufiArabic-v2.109.zip";
+    sha256 = "1b6880e4b8df09c3b9e246d6084bfd94bf32a0ffff60cf2dcffd3622d0e2d79f";
+    md5 = "";
+    md5name = "1b6880e4b8df09c3b9e246d6084bfd94bf32a0ffff60cf2dcffd3622d0e2d79f-NotoKufiArabic-v2.109.zip";
+  }
+  {
+    name = "NotoSans-v2.012.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSans-v2.012.zip";
+    sha256 = "efef2f66ed2c5e005472cba156bd2afb68063a51bb628c6ee14143edc019d293";
+    md5 = "";
+    md5name = "efef2f66ed2c5e005472cba156bd2afb68063a51bb628c6ee14143edc019d293-NotoSans-v2.012.zip";
+  }
+  {
+    name = "NotoSerif-v2.012.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSerif-v2.012.zip";
+    sha256 = "3d4566a0e51e7fc14528f5a1eecc6f12e5ffbbec6484470d3da48b0d8ead345a";
+    md5 = "";
+    md5name = "3d4566a0e51e7fc14528f5a1eecc6f12e5ffbbec6484470d3da48b0d8ead345a-NotoSerif-v2.012.zip";
+  }
+  {
+    name = "NotoSerifHebrew-v2.004.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSerifHebrew-v2.004.zip";
+    sha256 = "99523f4f21051495f18cbd5169ed0d1e9b395eefe770fece1844a4a7a00c46da";
+    md5 = "";
+    md5name = "99523f4f21051495f18cbd5169ed0d1e9b395eefe770fece1844a4a7a00c46da-NotoSerifHebrew-v2.004.zip";
+  }
+  {
+    name = "NotoSansArabic-v2.010.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSansArabic-v2.010.zip";
+    sha256 = "a5a34ac1ea01d0d71c083f99440ebfb1f64224474a0d88bb7ef0e2f8d9a996d2";
+    md5 = "";
+    md5name = "a5a34ac1ea01d0d71c083f99440ebfb1f64224474a0d88bb7ef0e2f8d9a996d2-NotoSansArabic-v2.010.zip";
+  }
+  {
+    name = "NotoNaskhArabic-v2.019.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoNaskhArabic-v2.019.zip";
+    sha256 = "7a509e10c9c8d21f384a26807ef2f5fbbecec46fdb8626c5441bed6d894edb81";
+    md5 = "";
+    md5name = "7a509e10c9c8d21f384a26807ef2f5fbbecec46fdb8626c5441bed6d894edb81-NotoNaskhArabic-v2.019.zip";
+  }
+  {
+    name = "NotoSansHebrew-v3.001.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSansHebrew-v3.001.zip";
+    sha256 = "df0a71814b4e63644cf40fcc4529111b61266b7a2dafbe95068b29a7520cc3cb";
+    md5 = "";
+    md5name = "df0a71814b4e63644cf40fcc4529111b61266b7a2dafbe95068b29a7520cc3cb-NotoSansHebrew-v3.001.zip";
+  }
+  {
+    name = "NotoSansArmenian-v2.008.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSansArmenian-v2.008.zip";
+    sha256 = "eab89b99e134177ca6a3f9f0412a7cb812aafceb13175d686b4c45cb237f64ac";
+    md5 = "";
+    md5name = "eab89b99e134177ca6a3f9f0412a7cb812aafceb13175d686b4c45cb237f64ac-NotoSansArmenian-v2.008.zip";
+  }
+  {
+    name = "NotoSerifArmenian-v2.008.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSerifArmenian-v2.008.zip";
+    sha256 = "b21c198a4c76ae598a304decefb3b5c2a4c2d4c3ae226728eff359185f291c6f";
+    md5 = "";
+    md5name = "b21c198a4c76ae598a304decefb3b5c2a4c2d4c3ae226728eff359185f291c6f-NotoSerifArmenian-v2.008.zip";
+  }
+  {
+    name = "NotoSansGeorgian-v2.003.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSansGeorgian-v2.003.zip";
+    sha256 = "bd75d1f0b9ef619b5ded0018d6258eeab2f9e976d8f8074bb7890f4e301648bf";
+    md5 = "";
+    md5name = "bd75d1f0b9ef619b5ded0018d6258eeab2f9e976d8f8074bb7890f4e301648bf-NotoSansGeorgian-v2.003.zip";
+  }
+  {
+    name = "NotoSerifGeorgian-v2.003.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSerifGeorgian-v2.003.zip";
+    sha256 = "cfb41a264b97d463bab6807a5be937ba4a6ddcfa93d519a21b98b0ba73ca27d4";
+    md5 = "";
+    md5name = "cfb41a264b97d463bab6807a5be937ba4a6ddcfa93d519a21b98b0ba73ca27d4-NotoSerifGeorgian-v2.003.zip";
+  }
+  {
+    name = "NotoSansLao-v2.003.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSansLao-v2.003.zip";
+    sha256 = "5a87c31b1a40ef8147c1e84437e5f0ceba2d4dbbfc0b56a65821ad29870da8c0";
+    md5 = "";
+    md5name = "5a87c31b1a40ef8147c1e84437e5f0ceba2d4dbbfc0b56a65821ad29870da8c0-NotoSansLao-v2.003.zip";
+  }
+  {
+    name = "NotoSerifLao-v2.003.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSerifLao-v2.003.zip";
+    sha256 = "e96a303d3347790b0ef3db274971a989a736ce766ec9ea1bea0e1458568a80b2";
+    md5 = "";
+    md5name = "e96a303d3347790b0ef3db274971a989a736ce766ec9ea1bea0e1458568a80b2-NotoSerifLao-v2.003.zip";
+  }
+  {
+    name = "NotoSansLisu-v2.102.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSansLisu-v2.102.zip";
+    sha256 = "b12a1ff762680681b7ce4d98dd29a7f54d90f5bcadd10c955afc640a27b3a268";
+    md5 = "";
+    md5name = "b12a1ff762680681b7ce4d98dd29a7f54d90f5bcadd10c955afc640a27b3a268-NotoSansLisu-v2.102.zip";
+  }
+  {
+    name = "Noto-hinted.zip";
+    url = "https://noto-website-2.storage.googleapis.com/pkgs/Noto-hinted.zip";
+    sha256 = "837b4a9352fce32ad7f298fbf155af1da5b6f3f8dbd995eb63fdd8e82117e4ae";
+    md5 = "";
+    md5name = "837b4a9352fce32ad7f298fbf155af1da5b6f3f8dbd995eb63fdd8e82117e4ae-Noto-hinted.zip";
+  }
+  {
+    name = "NotoSansKR.zip";
+    url = "https://noto-website-2.storage.googleapis.com/pkgs/NotoSansKR.zip";
+    sha256 = "5147b755c29f16f82b706b1c7ff7982894fccbebcf99e6c5fb0d48c315604b98";
+    md5 = "";
+    md5name = "5147b755c29f16f82b706b1c7ff7982894fccbebcf99e6c5fb0d48c315604b98-NotoSansKR.zip";
+  }
+  {
+    name = "NotoSansSC.zip";
+    url = "https://noto-website-2.storage.googleapis.com/pkgs/NotoSansSC.zip";
+    sha256 = "bee1af8c0722cfb3eb1b2fa91a7f3dc011dca231c25c8fcd9d9d544699ababf9";
+    md5 = "";
+    md5name = "bee1af8c0722cfb3eb1b2fa91a7f3dc011dca231c25c8fcd9d9d544699ababf9-NotoSansSC.zip";
+  }
+  {
+    name = "NotoSansTC.zip";
+    url = "https://noto-website-2.storage.googleapis.com/pkgs/NotoSansTC.zip";
+    sha256 = "ec9e8a4156593e1b3ff7cff843989f43f114f96eff0b5db9691ef3c2bdefb73e";
+    md5 = "";
+    md5name = "ec9e8a4156593e1b3ff7cff843989f43f114f96eff0b5db9691ef3c2bdefb73e-NotoSansTC.zip";
+  }
+  {
+    name = "NotoSerifJP.zip";
+    url = "https://noto-website-2.storage.googleapis.com/pkgs/NotoSerifJP.zip";
+    sha256 = "362438901cb871bf84b01ff4734c668dab57b4905f39e5ec76d8b68a7a7b5fa8";
+    md5 = "";
+    md5name = "362438901cb871bf84b01ff4734c668dab57b4905f39e5ec76d8b68a7a7b5fa8-NotoSerifJP.zip";
+  }
+  {
+    name = "NotoSerifKR.zip";
+    url = "https://noto-website-2.storage.googleapis.com/pkgs/NotoSerifKR.zip";
+    sha256 = "3c0d276fb05aaefbbca808b4f8c7b1520b4b4e7c0be46296d6e8a5e42f559f5c";
+    md5 = "";
+    md5name = "3c0d276fb05aaefbbca808b4f8c7b1520b4b4e7c0be46296d6e8a5e42f559f5c-NotoSerifKR.zip";
+  }
+  {
+    name = "NotoSerifSC.zip";
+    url = "https://noto-website-2.storage.googleapis.com/pkgs/NotoSerifSC.zip";
+    sha256 = "00ed5970680a82453619ac5952c5631ea138372bbb0f864d156d91a0fd9c8279";
+    md5 = "";
+    md5name = "00ed5970680a82453619ac5952c5631ea138372bbb0f864d156d91a0fd9c8279-NotoSerifSC.zip";
+  }
+  {
+    name = "NotoSerifTC.zip";
+    url = "https://noto-website-2.storage.googleapis.com/pkgs/NotoSerifTC.zip";
+    sha256 = "c33e04199f6d69056a6de0ebc5522dbe36e02f145208c71c9a4c803841151ad2";
+    md5 = "";
+    md5name = "c33e04199f6d69056a6de0ebc5522dbe36e02f145208c71c9a4c803841151ad2-NotoSerifTC.zip";
+  }
+  {
+    name = "culmus-0.133.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/culmus-0.133.tar.gz";
+    sha256 = "c0c6873742d07544f6bacf2ad52eb9cb392974d56427938dc1dfbc8399c64d05";
+    md5 = "";
+    md5name = "c0c6873742d07544f6bacf2ad52eb9cb392974d56427938dc1dfbc8399c64d05-culmus-0.133.tar.gz";
+  }
+  {
+    name = "libre-hebrew-1.0.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/libre-hebrew-1.0.tar.gz";
+    sha256 = "f596257c1db706ce35795b18d7f66a4db99d427725f20e9384914b534142579a";
+    md5 = "";
+    md5name = "f596257c1db706ce35795b18d7f66a4db99d427725f20e9384914b534142579a-libre-hebrew-1.0.tar.gz";
+  }
+  {
+    name = "alef-1.001.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/alef-1.001.tar.gz";
+    sha256 = "b98b67602a2c8880a1770f0b9e37c190f29a7e2ade5616784f0b89fbdb75bf52";
+    md5 = "";
+    md5name = "b98b67602a2c8880a1770f0b9e37c190f29a7e2ade5616784f0b89fbdb75bf52-alef-1.001.tar.gz";
+  }
+  {
+    name = "Amiri-1.000.zip";
+    url = "https://dev-www.libreoffice.org/src/Amiri-1.000.zip";
+    sha256 = "926fe1bd7dfde8e55178281f645258bfced6420c951c6f2fd532fd21691bca30";
+    md5 = "";
+    md5name = "926fe1bd7dfde8e55178281f645258bfced6420c951c6f2fd532fd21691bca30-Amiri-1.000.zip";
+  }
+  {
+    name = "ReemKufi-1.2.zip";
+    url = "https://dev-www.libreoffice.org/src/ReemKufi-1.2.zip";
+    sha256 = "c4fd68a23c0ea471cc084ae7efe888da372b925cb208eeb0322c26792d2ef413";
+    md5 = "";
+    md5name = "c4fd68a23c0ea471cc084ae7efe888da372b925cb208eeb0322c26792d2ef413-ReemKufi-1.2.zip";
+  }
+  {
+    name = "Scheherazade-2.100.zip";
+    url = "https://dev-www.libreoffice.org/src/Scheherazade-2.100.zip";
+    sha256 = "251c8817ceb87d9b661ce1d5b49e732a0116add10abc046be4b8ba5196e149b5";
+    md5 = "";
+    md5name = "251c8817ceb87d9b661ce1d5b49e732a0116add10abc046be4b8ba5196e149b5-Scheherazade-2.100.zip";
+  }
+  {
+    name = "opendyslexic-0.910.12-rc2-2019.10.17.zip";
+    url = "https://github.com/antijingoist/opendyslexic/releases/download/v0.91.12/opendyslexic-0.910.12-rc2-2019.10.17.zip";
+    sha256 = "b92d7fcb9409f2bcfd23b65ac71647256eb49c429f4fbb1cc870381fc93eb486";
+    md5 = "";
+    md5name = "b92d7fcb9409f2bcfd23b65ac71647256eb49c429f4fbb1cc870381fc93eb486-opendyslexic-0.910.12-rc2-2019.10.17.zip";
+  }
+  {
+    name = "Open_Sans.zip";
+    url = "https://dev-www.libreoffice.org/src/Open_Sans.zip";
+    sha256 = "85d79a39d26acb207ba13fb1007189d55355a0faf2cf7ccfe6a2edf2abac06d9";
+    md5 = "";
+    md5name = "85d79a39d26acb207ba13fb1007189d55355a0faf2cf7ccfe6a2edf2abac06d9-Open_Sans.zip";
+  }
+  {
+    name = "Agdasima-2.002.zip";
+    url = "https://dev-www.libreoffice.org/src/Agdasima-2.002.zip";
+    sha256 = "b4c17499f8bc183320ffdcf1f8491c778dd68a237adc056dc08e1fcb2da488f3";
+    md5 = "";
+    md5name = "b4c17499f8bc183320ffdcf1f8491c778dd68a237adc056dc08e1fcb2da488f3-Agdasima-2.002.zip";
+  }
+  {
+    name = "Bacasime_Antique-2.000.zip";
+    url = "https://dev-www.libreoffice.org/src/Bacasime_Antique-2.000.zip";
+    sha256 = "81127cebc97d4ee0b950c2bc2d6be0ed29abfe0d5988435eb9a39e382557250a";
+    md5 = "";
+    md5name = "81127cebc97d4ee0b950c2bc2d6be0ed29abfe0d5988435eb9a39e382557250a-Bacasime_Antique-2.000.zip";
+  }
+  {
+    name = "Belanosima-2.000.zip";
+    url = "https://dev-www.libreoffice.org/src/Belanosima-2.000.zip";
+    sha256 = "9c30e9e7cdb0797b651113a77f6b789659b8d8598a466b2ba92754e9dec30449";
+    md5 = "";
+    md5name = "9c30e9e7cdb0797b651113a77f6b789659b8d8598a466b2ba92754e9dec30449-Belanosima-2.000.zip";
+  }
+  {
+    name = "Caprasimo-1.001.zip";
+    url = "https://dev-www.libreoffice.org/src/Caprasimo-1.001.zip";
+    sha256 = "f066d27cfc99b6601083be102d08b4039da8d2834e2795aabd890f16c6fd1b9b";
+    md5 = "";
+    md5name = "f066d27cfc99b6601083be102d08b4039da8d2834e2795aabd890f16c6fd1b9b-Caprasimo-1.001.zip";
+  }
+  {
+    name = "Lugrasimo-1.001.zip";
+    url = "https://dev-www.libreoffice.org/src/Lugrasimo-1.001.zip";
+    sha256 = "db24dff31e8ddf6a113556c947a219f9534b072852e9ce2079a08c94854a7503";
+    md5 = "";
+    md5name = "db24dff31e8ddf6a113556c947a219f9534b072852e9ce2079a08c94854a7503-Lugrasimo-1.001.zip";
+  }
+  {
+    name = "Lumanosimo-1.010.zip";
+    url = "https://dev-www.libreoffice.org/src/Lumanosimo-1.010.zip";
+    sha256 = "d4545ad6afded9a55d9a7728cfc7453cf5637861db87aafe0a730676a0cb960f";
+    md5 = "";
+    md5name = "d4545ad6afded9a55d9a7728cfc7453cf5637861db87aafe0a730676a0cb960f-Lumanosimo-1.010.zip";
+  }
+  {
+    name = "Lunasima-2.009.zip";
+    url = "https://dev-www.libreoffice.org/src/Lunasima-2.009.zip";
+    sha256 = "4302809cf4b95b481bec53de87484d919b391c90a518d065f6c775fd435a5393";
+    md5 = "";
+    md5name = "4302809cf4b95b481bec53de87484d919b391c90a518d065f6c775fd435a5393-Lunasima-2.009.zip";
+  }
+  {
+    name = "libfreehand-0.1.2.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libfreehand-0.1.2.tar.xz";
+    sha256 = "0e422d1564a6dbf22a9af598535425271e583514c0f7ba7d9091676420de34ac";
+    md5 = "";
+    md5name = "0e422d1564a6dbf22a9af598535425271e583514c0f7ba7d9091676420de34ac-libfreehand-0.1.2.tar.xz";
+  }
+  {
+    name = "freetype-2.13.0.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/freetype-2.13.0.tar.xz";
+    sha256 = "5ee23abd047636c24b2d43c6625dcafc66661d1aca64dec9e0d05df29592624c";
+    md5 = "";
+    md5name = "5ee23abd047636c24b2d43c6625dcafc66661d1aca64dec9e0d05df29592624c-freetype-2.13.0.tar.xz";
+  }
+  {
+    name = "frozen-1.1.1.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/frozen-1.1.1.tar.gz";
+    sha256 = "f7c7075750e8fceeac081e9ef01944f221b36d9725beac8681cbd2838d26be45";
+    md5 = "";
+    md5name = "f7c7075750e8fceeac081e9ef01944f221b36d9725beac8681cbd2838d26be45-frozen-1.1.1.tar.gz";
+  }
+  {
+    name = "glm-0.9.9.8.zip";
+    url = "https://dev-www.libreoffice.org/src/glm-0.9.9.8.zip";
+    sha256 = "6bba5f032bed47c73ad9397f2313b9acbfb56253d0d0576b5873d3dcb25e99ad";
+    md5 = "";
+    md5name = "6bba5f032bed47c73ad9397f2313b9acbfb56253d0d0576b5873d3dcb25e99ad-glm-0.9.9.8.zip";
+  }
+  {
+    name = "gpgme-1.23.2.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/gpgme-1.23.2.tar.bz2";
+    sha256 = "9499e8b1f33cccb6815527a1bc16049d35a6198a6c5fae0185f2bd561bce5224";
+    md5 = "";
+    md5name = "9499e8b1f33cccb6815527a1bc16049d35a6198a6c5fae0185f2bd561bce5224-gpgme-1.23.2.tar.bz2";
+  }
+  {
+    name = "graphite2-minimal-1.3.14.tgz";
+    url = "https://dev-www.libreoffice.org/src/graphite2-minimal-1.3.14.tgz";
+    sha256 = "b8e892d8627c41888ff121e921455b9e2d26836978f2359173d19825da62b8fc";
+    md5 = "";
+    md5name = "b8e892d8627c41888ff121e921455b9e2d26836978f2359173d19825da62b8fc-graphite2-minimal-1.3.14.tgz";
+  }
+  {
+    name = "harfbuzz-8.2.2.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/harfbuzz-8.2.2.tar.xz";
+    sha256 = "e433ad85fbdf57f680be29479b3f964577379aaf319f557eb76569f0ecbc90f3";
+    md5 = "";
+    md5name = "e433ad85fbdf57f680be29479b3f964577379aaf319f557eb76569f0ecbc90f3-harfbuzz-8.2.2.tar.xz";
+  }
+  {
+    name = "hsqldb_1_8_0.zip";
+    url = "https://dev-www.libreoffice.org/src/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip";
+    sha256 = "d30b13f4ba2e3b6a2d4f020c0dee0a9fb9fc6fbcc2d561f36b78da4bf3802370";
+    md5 = "17410483b5b5f267aa18b7e00b65e6e0";
+    md5name = "17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip";
+  }
+  {
+    name = "hunspell-1.7.2.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/hunspell-1.7.2.tar.gz";
+    sha256 = "11ddfa39afe28c28539fe65fc4f1592d410c1e9b6dd7d8a91ca25d85e9ec65b8";
+    md5 = "";
+    md5name = "11ddfa39afe28c28539fe65fc4f1592d410c1e9b6dd7d8a91ca25d85e9ec65b8-hunspell-1.7.2.tar.gz";
+  }
+  {
+    name = "hyphen-2.8.8.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz";
+    sha256 = "304636d4eccd81a14b6914d07b84c79ebb815288c76fe027b9ebff6ff24d5705";
+    md5 = "5ade6ae2a99bc1e9e57031ca88d36dad";
+    md5name = "5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz";
+  }
+  {
+    name = "IAccessible2-1.3+git20231013.3d8c7f0.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/IAccessible2-1.3+git20231013.3d8c7f0.tar.gz";
+    sha256 = "0e279003f5199f80031c6dcd08f79d6f65a0505139160e7df0d09b226bff4023";
+    md5 = "";
+    md5name = "0e279003f5199f80031c6dcd08f79d6f65a0505139160e7df0d09b226bff4023-IAccessible2-1.3+git20231013.3d8c7f0.tar.gz";
+  }
+  {
+    name = "icu4c-73_2-src.tgz";
+    url = "https://dev-www.libreoffice.org/src/icu4c-73_2-src.tgz";
+    sha256 = "818a80712ed3caacd9b652305e01afc7fa167e6f2e94996da44b90c2ab604ce1";
+    md5 = "";
+    md5name = "818a80712ed3caacd9b652305e01afc7fa167e6f2e94996da44b90c2ab604ce1-icu4c-73_2-src.tgz";
+  }
+  {
+    name = "icu4c-73_2-data.zip";
+    url = "https://dev-www.libreoffice.org/src/icu4c-73_2-data.zip";
+    sha256 = "ca1ee076163b438461e484421a7679fc33a64cd0a54f9d4b401893fa1eb42701";
+    md5 = "";
+    md5name = "ca1ee076163b438461e484421a7679fc33a64cd0a54f9d4b401893fa1eb42701-icu4c-73_2-data.zip";
+  }
+  {
+    name = "Java-WebSocket-1.5.4.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/Java-WebSocket-1.5.4.tar.gz";
+    sha256 = "a6828b35d1f938fee2335945f3d3c563cbbfa58ce7eb0bf72778d0fa7a550720";
+    md5 = "";
+    md5name = "a6828b35d1f938fee2335945f3d3c563cbbfa58ce7eb0bf72778d0fa7a550720-Java-WebSocket-1.5.4.tar.gz";
+  }
+  {
+    name = "flow-engine-0.9.4.zip";
+    url = "https://dev-www.libreoffice.org/src/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip";
+    sha256 = "233f66e8d25c5dd971716d4200203a612a407649686ef3b52075d04b4c9df0dd";
+    md5 = "ba2930200c9f019c2d93a8c88c651a0f";
+    md5name = "ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip";
+  }
+  {
+    name = "flute-1.1.6.zip";
+    url = "https://dev-www.libreoffice.org/src/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip";
+    sha256 = "1b5b24f7bc543c0362b667692f78db8bab4ed6dafc6172f104d0bd3757d8a133";
+    md5 = "d8bd5eed178db6e2b18eeed243f85aa8";
+    md5name = "d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip";
+  }
+  {
+    name = "libbase-1.1.6.zip";
+    url = "https://dev-www.libreoffice.org/src/eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip";
+    sha256 = "75c80359c9ce343c20aab8a36a45cb3b9ee7c61cf92c13ae45399d854423a9ba";
+    md5 = "eeb2c7ddf0d302fba4bfc6e97eac9624";
+    md5name = "eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip";
+  }
+  {
+    name = "libfonts-1.1.6.zip";
+    url = "https://dev-www.libreoffice.org/src/3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip";
+    sha256 = "e0531091787c0f16c83965fdcbc49162c059d7f0c64669e7f119699321549743";
+    md5 = "3bdf40c0d199af31923e900d082ca2dd";
+    md5name = "3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip";
+  }
+  {
+    name = "libformula-1.1.7.zip";
+    url = "https://dev-www.libreoffice.org/src/3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip";
+    sha256 = "5826d1551bf599b85742545f6e01a0079b93c1b2c8434bf409eddb3a29e4726b";
+    md5 = "3404ab6b1792ae5f16bbd603bd1e1d03";
+    md5name = "3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip";
+  }
+  {
+    name = "liblayout-0.2.10.zip";
+    url = "https://dev-www.libreoffice.org/src/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip";
+    sha256 = "e1fb87f3f7b980d33414473279615c4644027e013012d156efa538bc2b031772";
+    md5 = "db60e4fde8dd6d6807523deb71ee34dc";
+    md5name = "db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip";
+  }
+  {
+    name = "libloader-1.1.6.zip";
+    url = "https://dev-www.libreoffice.org/src/97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip";
+    sha256 = "3d853b19b1d94a6efa69e7af90f7f2b09ecf302913bee3da796c15ecfebcfac8";
+    md5 = "97b2d4dba862397f446b217e2b623e71";
+    md5name = "97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip";
+  }
+  {
+    name = "librepository-1.1.6.zip";
+    url = "https://dev-www.libreoffice.org/src/8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip";
+    sha256 = "abe2c57ac12ba45d83563b02e240fa95d973376de2f720aab8fe11f2e621c095";
+    md5 = "8ce2fcd72becf06c41f7201d15373ed9";
+    md5name = "8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip";
+  }
+  {
+    name = "libserializer-1.1.6.zip";
+    url = "https://dev-www.libreoffice.org/src/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip";
+    sha256 = "05640a1f6805b2b2d7e2cb9c50db9a5cb084e3c52ab1a71ce015239b4a1d4343";
+    md5 = "f94d9870737518e3b597f9265f4e9803";
+    md5name = "f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip";
+  }
+  {
+    name = "libxml-1.1.7.zip";
+    url = "https://dev-www.libreoffice.org/src/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip";
+    sha256 = "7d2797fe9f79a77009721e3f14fa4a1dec17a6d706bdc93f85f1f01d124fab66";
+    md5 = "ace6ab49184e329db254e454a010f56d";
+    md5name = "ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip";
+  }
+  {
+    name = "sacjava-1.3.zip";
+    url = "https://dev-www.libreoffice.org/src/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip";
+    sha256 = "085f2112c51fa8c1783fac12fbd452650596415121348393bb51f0f7e85a9045";
+    md5 = "39bb3fcea1514f1369fcfc87542390fd";
+    md5name = "39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip";
+  }
+  {
+    name = "libjpeg-turbo-2.1.5.1.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/libjpeg-turbo-2.1.5.1.tar.gz";
+    sha256 = "2fdc3feb6e9deb17adec9bafa3321419aa19f8f4e5dea7bf8486844ca22207bf";
+    md5 = "";
+    md5name = "2fdc3feb6e9deb17adec9bafa3321419aa19f8f4e5dea7bf8486844ca22207bf-libjpeg-turbo-2.1.5.1.tar.gz";
+  }
+  {
+    name = "language-subtag-registry-2024-06-14.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/language-subtag-registry-2024-06-14.tar.bz2";
+    sha256 = "75bc394dd83ddfd62b172a462db1b66bdb5950f40823ed63b8c7db6b71e37e75";
+    md5 = "";
+    md5name = "75bc394dd83ddfd62b172a462db1b66bdb5950f40823ed63b8c7db6b71e37e75-language-subtag-registry-2024-06-14.tar.bz2";
+  }
+  {
+    name = "lcms2-2.16.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/lcms2-2.16.tar.gz";
+    sha256 = "d873d34ad8b9b4cea010631f1a6228d2087475e4dc5e763eb81acc23d9d45a51";
+    md5 = "";
+    md5name = "d873d34ad8b9b4cea010631f1a6228d2087475e4dc5e763eb81acc23d9d45a51-lcms2-2.16.tar.gz";
+  }
+  {
+    name = "libassuan-2.5.7.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/libassuan-2.5.7.tar.bz2";
+    sha256 = "0103081ffc27838a2e50479153ca105e873d3d65d8a9593282e9c94c7e6afb76";
+    md5 = "";
+    md5name = "0103081ffc27838a2e50479153ca105e873d3d65d8a9593282e9c94c7e6afb76-libassuan-2.5.7.tar.bz2";
+  }
+  {
+    name = "libatomic_ops-7.8.0.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/libatomic_ops-7.8.0.tar.gz";
+    sha256 = "15676e7674e11bda5a7e50a73f4d9e7d60452271b8acf6fd39a71fefdf89fa31";
+    md5 = "";
+    md5name = "15676e7674e11bda5a7e50a73f4d9e7d60452271b8acf6fd39a71fefdf89fa31-libatomic_ops-7.8.0.tar.gz";
+  }
+  {
+    name = "libeot-0.01.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/libeot-0.01.tar.bz2";
+    sha256 = "cf5091fa8e7dcdbe667335eb90a2cfdd0a3fe8f8c7c8d1ece44d9d055736a06a";
+    md5 = "";
+    md5name = "cf5091fa8e7dcdbe667335eb90a2cfdd0a3fe8f8c7c8d1ece44d9d055736a06a-libeot-0.01.tar.bz2";
+  }
+  {
+    name = "libexttextcat-3.4.6.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libexttextcat-3.4.6.tar.xz";
+    sha256 = "6d77eace20e9ea106c1330e268ede70c9a4a89744ddc25715682754eca3368df";
+    md5 = "";
+    md5name = "6d77eace20e9ea106c1330e268ede70c9a4a89744ddc25715682754eca3368df-libexttextcat-3.4.6.tar.xz";
+  }
+  {
+    name = "libffi-3.4.4.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/libffi-3.4.4.tar.gz";
+    sha256 = "d66c56ad259a82cf2a9dfc408b32bf5da52371500b84745f7fb8b645712df676";
+    md5 = "";
+    md5name = "d66c56ad259a82cf2a9dfc408b32bf5da52371500b84745f7fb8b645712df676-libffi-3.4.4.tar.gz";
+  }
+  {
+    name = "libgpg-error-1.48.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/libgpg-error-1.48.tar.bz2";
+    sha256 = "89ce1ae893e122924b858de84dc4f67aae29ffa610ebf668d5aa539045663d6f";
+    md5 = "";
+    md5name = "89ce1ae893e122924b858de84dc4f67aae29ffa610ebf668d5aa539045663d6f-libgpg-error-1.48.tar.bz2";
+  }
+  {
+    name = "liblangtag-0.6.7.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/liblangtag-0.6.7.tar.bz2";
+    sha256 = "5ed6bcd4ae3f3c05c912e62f216cd1a44123846147f729a49fb5668da51e030e";
+    md5 = "";
+    md5name = "5ed6bcd4ae3f3c05c912e62f216cd1a44123846147f729a49fb5668da51e030e-liblangtag-0.6.7.tar.bz2";
+  }
+  {
+    name = "libnumbertext-1.0.11.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libnumbertext-1.0.11.tar.xz";
+    sha256 = "5dcb4db3b2340f81f601ce86d8d76b69e34d70f84f804192c901e4b7f84d5fb0";
+    md5 = "";
+    md5name = "5dcb4db3b2340f81f601ce86d8d76b69e34d70f84f804192c901e4b7f84d5fb0-libnumbertext-1.0.11.tar.xz";
+  }
+  {
+    name = "ltm-1.3.0.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/ltm-1.3.0.tar.xz";
+    sha256 = "296272d93435991308eb73607600c034b558807a07e829e751142e65ccfa9d08";
+    md5 = "";
+    md5name = "296272d93435991308eb73607600c034b558807a07e829e751142e65ccfa9d08-ltm-1.3.0.tar.xz";
+  }
+  {
+    name = "libwebp-1.3.2.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/libwebp-1.3.2.tar.gz";
+    sha256 = "2a499607df669e40258e53d0ade8035ba4ec0175244869d1025d460562aa09b4";
+    md5 = "";
+    md5name = "2a499607df669e40258e53d0ade8035ba4ec0175244869d1025d460562aa09b4-libwebp-1.3.2.tar.gz";
+  }
+  {
+    name = "xmlsec1-1.3.2.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/xmlsec1-1.3.2.tar.gz";
+    sha256 = "4003c56b3d356d21b1db7775318540fad6bfedaf5f117e8f7c010811219be3cf";
+    md5 = "";
+    md5name = "4003c56b3d356d21b1db7775318540fad6bfedaf5f117e8f7c010811219be3cf-xmlsec1-1.3.2.tar.gz";
+  }
+  {
+    name = "libxml2-2.12.8.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libxml2-2.12.8.tar.xz";
+    sha256 = "43ad877b018bc63deb2468d71f95219c2fac196876ef36d1bee51d226173ec93";
+    md5 = "";
+    md5name = "43ad877b018bc63deb2468d71f95219c2fac196876ef36d1bee51d226173ec93-libxml2-2.12.8.tar.xz";
+  }
+  {
+    name = "libxslt-1.1.39.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libxslt-1.1.39.tar.xz";
+    sha256 = "2a20ad621148339b0759c4d4e96719362dee64c9a096dbba625ba053846349f0";
+    md5 = "";
+    md5name = "2a20ad621148339b0759c4d4e96719362dee64c9a096dbba625ba053846349f0-libxslt-1.1.39.tar.xz";
+  }
+  {
+    name = "lp_solve_5.5.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz";
+    sha256 = "171816288f14215c69e730f7a4f1c325739873e21f946ff83884b350574e6695";
+    md5 = "26b3e95ddf3d9c077c480ea45874b3b8";
+    md5name = "26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz";
+  }
+  {
+    name = "lxml-4.9.2.tgz";
+    url = "https://dev-www.libreoffice.org/src/lxml-4.9.2.tgz";
+    sha256 = "2455cfaeb7ac70338b3257f41e21f0724f4b5b0c0e7702da67ee6c3640835b67";
+    md5 = "";
+    md5name = "2455cfaeb7ac70338b3257f41e21f0724f4b5b0c0e7702da67ee6c3640835b67-lxml-4.9.2.tgz";
+  }
+  {
+    name = "mariadb-connector-c-3.3.8-src.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/mariadb-connector-c-3.3.8-src.tar.gz";
+    sha256 = "f9f076b4aa9fb22cc94b24f82c80f9ef063805ecd6533a2eb5d5060cf93833e8";
+    md5 = "";
+    md5name = "f9f076b4aa9fb22cc94b24f82c80f9ef063805ecd6533a2eb5d5060cf93833e8-mariadb-connector-c-3.3.8-src.tar.gz";
+  }
+  {
+    name = "mdds-2.1.1.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/mdds-2.1.1.tar.xz";
+    sha256 = "1483d90cefb8aa4563c4d0a85cb7b243aa95217d235d422e9ca6722fd5b97e56";
+    md5 = "";
+    md5name = "1483d90cefb8aa4563c4d0a85cb7b243aa95217d235d422e9ca6722fd5b97e56-mdds-2.1.1.tar.xz";
+  }
+  {
+    name = "mDNSResponder-878.200.35.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/mDNSResponder-878.200.35.tar.gz";
+    sha256 = "e777b4d7dbf5eb1552cb80090ad1ede319067ab6e45e3990d68aabf6e8b3f5a0";
+    md5 = "";
+    md5name = "e777b4d7dbf5eb1552cb80090ad1ede319067ab6e45e3990d68aabf6e8b3f5a0-mDNSResponder-878.200.35.tar.gz";
+  }
+  {
+    name = "libmspub-0.1.4.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libmspub-0.1.4.tar.xz";
+    sha256 = "ef36c1a1aabb2ba3b0bedaaafe717bf4480be2ba8de6f3894be5fd3702b013ba";
+    md5 = "";
+    md5name = "ef36c1a1aabb2ba3b0bedaaafe717bf4480be2ba8de6f3894be5fd3702b013ba-libmspub-0.1.4.tar.xz";
+  }
+  {
+    name = "libmwaw-0.3.21.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libmwaw-0.3.21.tar.xz";
+    sha256 = "e8750123a78d61b943cef78b7736c8a7f20bb0a649aa112402124fba794fc21c";
+    md5 = "";
+    md5name = "e8750123a78d61b943cef78b7736c8a7f20bb0a649aa112402124fba794fc21c-libmwaw-0.3.21.tar.xz";
+  }
+  {
+    name = "mythes-1.2.5.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/mythes-1.2.5.tar.xz";
+    sha256 = "19279f70707bbe5ffa619f2dc319f888cec0c4a8d339dc0a21330517bd6f521d";
+    md5 = "";
+    md5name = "19279f70707bbe5ffa619f2dc319f888cec0c4a8d339dc0a21330517bd6f521d-mythes-1.2.5.tar.xz";
+  }
+  {
+    name = "nss-3.99-with-nspr-4.35.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/nss-3.99-with-nspr-4.35.tar.gz";
+    sha256 = "5f29fea64b3234b33a615b6df40469e239a4168ac0909106bd00e6490b274c31";
+    md5 = "";
+    md5name = "5f29fea64b3234b33a615b6df40469e239a4168ac0909106bd00e6490b274c31-nss-3.99-with-nspr-4.35.tar.gz";
+  }
+  {
+    name = "libodfgen-0.1.8.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libodfgen-0.1.8.tar.xz";
+    sha256 = "55200027fd46623b9bdddd38d275e7452d1b0ff8aeddcad6f9ae6dc25f610625";
+    md5 = "";
+    md5name = "55200027fd46623b9bdddd38d275e7452d1b0ff8aeddcad6f9ae6dc25f610625-libodfgen-0.1.8.tar.xz";
+  }
+  {
+    name = "odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar";
+    url = "https://dev-www.libreoffice.org/src/../extern/odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar";
+    sha256 = "d55495ab3a86544650587de2a72180ddf8bfc6376d14ddfa923992dbc86a06e0";
+    md5 = "";
+    md5name = "d55495ab3a86544650587de2a72180ddf8bfc6376d14ddfa923992dbc86a06e0-odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar";
+  }
+  {
+    name = "officeotron-0.7.4-master.jar";
+    url = "https://dev-www.libreoffice.org/src/../extern/8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar";
+    sha256 = "f2443f27561af52324eee03a1892d9f569adc8db9e7bca55614898bc2a13a770";
+    md5 = "8249374c274932a21846fa7629c2aa9b";
+    md5name = "8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar";
+  }
+  {
+    name = "onlineupdate-c003be8b9727672e7d30972983b375f4c200233f-2.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/onlineupdate-c003be8b9727672e7d30972983b375f4c200233f-2.tar.xz";
+    sha256 = "37206cf981e8409d048b59ac5839621ea107ff49af72beb9d7769a2f41da8d90";
+    md5 = "";
+    md5name = "37206cf981e8409d048b59ac5839621ea107ff49af72beb9d7769a2f41da8d90-onlineupdate-c003be8b9727672e7d30972983b375f4c200233f-2.tar.xz";
+  }
+  {
+    name = "openldap-2.6.7.tgz";
+    url = "https://dev-www.libreoffice.org/src/openldap-2.6.7.tgz";
+    sha256 = "cd775f625c944ed78a3da18a03b03b08eea73c8aabc97b41bb336e9a10954930";
+    md5 = "";
+    md5name = "cd775f625c944ed78a3da18a03b03b08eea73c8aabc97b41bb336e9a10954930-openldap-2.6.7.tgz";
+  }
+  {
+    name = "openssl-3.0.14.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/openssl-3.0.14.tar.gz";
+    sha256 = "eeca035d4dd4e84fc25846d952da6297484afa0650a6f84c682e39df3a4123ca";
+    md5 = "";
+    md5name = "eeca035d4dd4e84fc25846d952da6297484afa0650a6f84c682e39df3a4123ca-openssl-3.0.14.tar.gz";
+  }
+  {
+    name = "liborcus-0.19.2.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/liborcus-0.19.2.tar.xz";
+    sha256 = "69ed26a00d4aaa7688e62a6e003cbc81928521a45e96605e53365aa499719e39";
+    md5 = "";
+    md5name = "69ed26a00d4aaa7688e62a6e003cbc81928521a45e96605e53365aa499719e39-liborcus-0.19.2.tar.xz";
+  }
+  {
+    name = "libpagemaker-0.0.4.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libpagemaker-0.0.4.tar.xz";
+    sha256 = "66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d";
+    md5 = "";
+    md5name = "66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d-libpagemaker-0.0.4.tar.xz";
+  }
+  {
+    name = "pdfium-6536.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/pdfium-6536.tar.bz2";
+    sha256 = "9c2db89e9ea96f632108170bce7d901dbfc773bb09d03b7cd0ac68ebe26b9092";
+    md5 = "";
+    md5name = "9c2db89e9ea96f632108170bce7d901dbfc773bb09d03b7cd0ac68ebe26b9092-pdfium-6536.tar.bz2";
+  }
+  {
+    name = "pixman-0.42.2.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/pixman-0.42.2.tar.gz";
+    sha256 = "ea1480efada2fd948bc75366f7c349e1c96d3297d09a3fe62626e38e234a625e";
+    md5 = "";
+    md5name = "ea1480efada2fd948bc75366f7c349e1c96d3297d09a3fe62626e38e234a625e-pixman-0.42.2.tar.gz";
+  }
+  {
+    name = "libpng-1.6.43.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libpng-1.6.43.tar.xz";
+    sha256 = "6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c";
+    md5 = "";
+    md5name = "6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c-libpng-1.6.43.tar.xz";
+  }
+  {
+    name = "tiff-4.6.0.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/tiff-4.6.0.tar.xz";
+    sha256 = "e178649607d1e22b51cf361dd20a3753f244f022eefab1f2f218fc62ebaf87d2";
+    md5 = "";
+    md5name = "e178649607d1e22b51cf361dd20a3753f244f022eefab1f2f218fc62ebaf87d2-tiff-4.6.0.tar.xz";
+  }
+  {
+    name = "poppler-23.09.0.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/poppler-23.09.0.tar.xz";
+    sha256 = "80d1d44dd8bdf4ac1a47d56c5065075eb9991790974b1ed7d14b972acde88e55";
+    md5 = "";
+    md5name = "80d1d44dd8bdf4ac1a47d56c5065075eb9991790974b1ed7d14b972acde88e55-poppler-23.09.0.tar.xz";
+  }
+  {
+    name = "poppler-data-0.4.12.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/poppler-data-0.4.12.tar.gz";
+    sha256 = "c835b640a40ce357e1b83666aabd95edffa24ddddd49b8daff63adb851cdab74";
+    md5 = "";
+    md5name = "c835b640a40ce357e1b83666aabd95edffa24ddddd49b8daff63adb851cdab74-poppler-data-0.4.12.tar.gz";
+  }
+  {
+    name = "postgresql-13.14.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/postgresql-13.14.tar.bz2";
+    sha256 = "b8df078551898960bd500dc5d38a177e9905376df81fe7f2b660a1407fa6a5ed";
+    md5 = "";
+    md5name = "b8df078551898960bd500dc5d38a177e9905376df81fe7f2b660a1407fa6a5ed-postgresql-13.14.tar.bz2";
+  }
+  {
+    name = "Python-3.8.19.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/Python-3.8.19.tar.xz";
+    sha256 = "d2807ac69f69b84fd46a0b93bbd02a4fa48d3e70f4b2835ff0f72a2885040076";
+    md5 = "";
+    md5name = "d2807ac69f69b84fd46a0b93bbd02a4fa48d3e70f4b2835ff0f72a2885040076-Python-3.8.19.tar.xz";
+  }
+  {
+    name = "libqxp-0.0.2.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libqxp-0.0.2.tar.xz";
+    sha256 = "e137b6b110120a52c98edd02ebdc4095ee08d0d5295a94316a981750095a945c";
+    md5 = "";
+    md5name = "e137b6b110120a52c98edd02ebdc4095ee08d0d5295a94316a981750095a945c-libqxp-0.0.2.tar.xz";
+  }
+  {
+    name = "raptor2-2.0.15.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/a39f6c07ddb20d7dd2ff1f95fa21e2cd-raptor2-2.0.15.tar.gz";
+    sha256 = "ada7f0ba54787b33485d090d3d2680533520cd4426d2f7fb4782dd4a6a1480ed";
+    md5 = "a39f6c07ddb20d7dd2ff1f95fa21e2cd";
+    md5name = "a39f6c07ddb20d7dd2ff1f95fa21e2cd-raptor2-2.0.15.tar.gz";
+  }
+  {
+    name = "rasqal-0.9.33.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/1f5def51ca0026cd192958ef07228b52-rasqal-0.9.33.tar.gz";
+    sha256 = "6924c9ac6570bd241a9669f83b467c728a322470bf34f4b2da4f69492ccfd97c";
+    md5 = "1f5def51ca0026cd192958ef07228b52";
+    md5name = "1f5def51ca0026cd192958ef07228b52-rasqal-0.9.33.tar.gz";
+  }
+  {
+    name = "redland-1.0.17.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/e5be03eda13ef68aabab6e42aa67715e-redland-1.0.17.tar.gz";
+    sha256 = "de1847f7b59021c16bdc72abb4d8e2d9187cd6124d69156f3326dd34ee043681";
+    md5 = "e5be03eda13ef68aabab6e42aa67715e";
+    md5name = "e5be03eda13ef68aabab6e42aa67715e-redland-1.0.17.tar.gz";
+  }
+  {
+    name = "librevenge-0.0.4.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/librevenge-0.0.4.tar.bz2";
+    sha256 = "c51601cd08320b75702812c64aae0653409164da7825fd0f451ac2c5dbe77cbf";
+    md5 = "";
+    md5name = "c51601cd08320b75702812c64aae0653409164da7825fd0f451ac2c5dbe77cbf-librevenge-0.0.4.tar.bz2";
+  }
+  {
+    name = "rhino1_5R5.zip";
+    url = "https://dev-www.libreoffice.org/src/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip";
+    sha256 = "1fb458d6aab06932693cc8a9b6e4e70944ee1ff052fa63606e3131df34e21753";
+    md5 = "798b2ffdc8bcfe7bca2cf92b62caf685";
+    md5name = "798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip";
+  }
+  {
+    name = "skia-m116-2ddcf183eb260f63698aa74d1bb380f247ad7ccd.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/skia-m116-2ddcf183eb260f63698aa74d1bb380f247ad7ccd.tar.xz";
+    sha256 = "2223ebce534458a37826e8fe4f24635b0712cde7ed1bd3208f089f6fdd796e01";
+    md5 = "";
+    md5name = "2223ebce534458a37826e8fe4f24635b0712cde7ed1bd3208f089f6fdd796e01-skia-m116-2ddcf183eb260f63698aa74d1bb380f247ad7ccd.tar.xz";
+  }
+  {
+    name = "libstaroffice-0.0.7.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libstaroffice-0.0.7.tar.xz";
+    sha256 = "f94fb0ad8216f97127bedef163a45886b43c62deac5e5b0f5e628e234220c8db";
+    md5 = "";
+    md5name = "f94fb0ad8216f97127bedef163a45886b43c62deac5e5b0f5e628e234220c8db-libstaroffice-0.0.7.tar.xz";
+  }
+  {
+    name = "swingExSrc.zip";
+    url = "https://dev-www.libreoffice.org/src/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip";
+    sha256 = "64585ac36a81291a58269ec5347e7e3e2e8596dbacb9221015c208191333c6e1";
+    md5 = "35c94d2df8893241173de1d16b6034c0";
+    md5name = "35c94d2df8893241173de1d16b6034c0-swingExSrc.zip";
+  }
+  {
+    name = "twaindsm_2.4.1.orig.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/twaindsm_2.4.1.orig.tar.gz";
+    sha256 = "82c818be771f242388457aa8c807e4b52aa84dc22b21c6c56184a6b4cbb085e6";
+    md5 = "";
+    md5name = "82c818be771f242388457aa8c807e4b52aa84dc22b21c6c56184a6b4cbb085e6-twaindsm_2.4.1.orig.tar.gz";
+  }
+  {
+    name = "libvisio-0.1.7.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libvisio-0.1.7.tar.xz";
+    sha256 = "8faf8df870cb27b09a787a1959d6c646faa44d0d8ab151883df408b7166bea4c";
+    md5 = "";
+    md5name = "8faf8df870cb27b09a787a1959d6c646faa44d0d8ab151883df408b7166bea4c-libvisio-0.1.7.tar.xz";
+  }
+  {
+    name = "libwpd-0.10.3.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libwpd-0.10.3.tar.xz";
+    sha256 = "2465b0b662fdc5d4e3bebcdc9a79027713fb629ca2bff04a3c9251fdec42dd09";
+    md5 = "";
+    md5name = "2465b0b662fdc5d4e3bebcdc9a79027713fb629ca2bff04a3c9251fdec42dd09-libwpd-0.10.3.tar.xz";
+  }
+  {
+    name = "libwpg-0.3.4.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libwpg-0.3.4.tar.xz";
+    sha256 = "b55fda9440d1e070630eb2487d8b8697cf412c214a27caee9df69cec7c004de3";
+    md5 = "";
+    md5name = "b55fda9440d1e070630eb2487d8b8697cf412c214a27caee9df69cec7c004de3-libwpg-0.3.4.tar.xz";
+  }
+  {
+    name = "libwps-0.4.14.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libwps-0.4.14.tar.xz";
+    sha256 = "365b968e270e85a8469c6b160aa6af5619a4e6c995dbb04c1ecc1b4dd13e80de";
+    md5 = "";
+    md5name = "365b968e270e85a8469c6b160aa6af5619a4e6c995dbb04c1ecc1b4dd13e80de-libwps-0.4.14.tar.xz";
+  }
+  {
+    name = "xsltml_2.1.2.zip";
+    url = "https://dev-www.libreoffice.org/src/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip";
+    sha256 = "75823776fb51a9c526af904f1503a7afaaab900fba83eda64f8a41073724c870";
+    md5 = "a7983f859eafb2677d7ff386a023bc40";
+    md5name = "a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip";
+  }
+  {
+    name = "zlib-1.3.1.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/zlib-1.3.1.tar.xz";
+    sha256 = "38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32";
+    md5 = "";
+    md5name = "38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32-zlib-1.3.1.tar.xz";
+  }
+  {
+    name = "libzmf-0.0.2.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libzmf-0.0.2.tar.xz";
+    sha256 = "27051a30cb057fdb5d5de65a1f165c7153dc76e27fe62251cbb86639eb2caf22";
+    md5 = "";
+    md5name = "27051a30cb057fdb5d5de65a1f165c7153dc76e27fe62251cbb86639eb2caf22-libzmf-0.0.2.tar.xz";
+  }
+  {
+    name = "zxcvbn-c-2.5.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/zxcvbn-c-2.5.tar.gz";
+    sha256 = "77d6c6ecb35952a8d8ce7f736b7a2bf466275c48210e309b73782d6b7e84dffd";
+    md5 = "";
+    md5name = "77d6c6ecb35952a8d8ce7f736b7a2bf466275c48210e309b73782d6b7e84dffd-zxcvbn-c-2.5.tar.gz";
+  }
+  {
+    name = "zxing-cpp-2.1.0.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/zxing-cpp-2.1.0.tar.gz";
+    sha256 = "6d54e403592ec7a143791c6526c1baafddf4c0897bb49b1af72b70a0f0c4a3fe";
+    md5 = "";
+    md5name = "6d54e403592ec7a143791c6526c1baafddf4c0897bb49b1af72b70a0f0c4a3fe-zxing-cpp-2.1.0.tar.gz";
+  }
+]
diff --git a/pkgs/applications/office/libreoffice/src-collabora/help.nix b/pkgs/applications/office/libreoffice/src-collabora/help.nix
new file mode 100644
index 0000000000000..fc5d4a3fa2a07
--- /dev/null
+++ b/pkgs/applications/office/libreoffice/src-collabora/help.nix
@@ -0,0 +1,6 @@
+{ fetchgit, ... }:
+fetchgit {
+  url = "https://gerrit.libreoffice.org/help";
+  rev = "27f62cdb52fe23f6090a3249fcd1433777b2598d";
+  hash = "sha256-lyBuj7FI1jwVLLBkB6JJcmQVtm1FKExYWvRUoGqRbJ0=";
+}
diff --git a/pkgs/applications/office/libreoffice/src-collabora/main.nix b/pkgs/applications/office/libreoffice/src-collabora/main.nix
new file mode 100644
index 0000000000000..ef4d5d77bfc16
--- /dev/null
+++ b/pkgs/applications/office/libreoffice/src-collabora/main.nix
@@ -0,0 +1,7 @@
+{ fetchgit, ... }:
+fetchgit {
+  url = "https://gerrit.libreoffice.org/core";
+  rev = "refs/tags/cp-24.04.5-4";
+  hash = "sha256-OJ3R8qs8/R8QnXGCRgn/ZJK7Nn8cWwYbZxjEWg0VpBc=";
+  fetchSubmodules = false;
+}
diff --git a/pkgs/applications/office/libreoffice/src-collabora/translations.nix b/pkgs/applications/office/libreoffice/src-collabora/translations.nix
new file mode 100644
index 0000000000000..06f5fe5a36244
--- /dev/null
+++ b/pkgs/applications/office/libreoffice/src-collabora/translations.nix
@@ -0,0 +1,6 @@
+{ fetchgit, ... }:
+fetchgit {
+  url = "https://gerrit.libreoffice.org/translations";
+  rev = "5fd34a953e6861cb8e392363c0a3500059ed6b01";
+  hash = "sha256-1j0kTvPbytsCWszXz+xFE+n53zPkR8gNgVaawn+rjfI=";
+}
diff --git a/pkgs/applications/office/libreoffice/src-collabora/version.nix b/pkgs/applications/office/libreoffice/src-collabora/version.nix
new file mode 100644
index 0000000000000..f88ef53af8e6f
--- /dev/null
+++ b/pkgs/applications/office/libreoffice/src-collabora/version.nix
@@ -0,0 +1 @@
+"24.04.5-4"
diff --git a/pkgs/applications/office/libreoffice/src-fresh/deps.nix b/pkgs/applications/office/libreoffice/src-fresh/deps.nix
index acb8da608faef..38354245ba1ef 100644
--- a/pkgs/applications/office/libreoffice/src-fresh/deps.nix
+++ b/pkgs/applications/office/libreoffice/src-fresh/deps.nix
@@ -7,11 +7,18 @@
     md5name = "e763a9dc21c3d2667402d66e202e3f8ef4db51b34b79ef41f56cacb86dcd6eed-libabw-0.1.3.tar.xz";
   }
   {
-    name = "boost_1_82_0.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/boost_1_82_0.tar.xz";
-    sha256 = "e48ab6953fbd68ba47234bea5173e62427e9f6a7894e152305142895cfe955de";
+    name = "phc-winner-argon2-20190702.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/phc-winner-argon2-20190702.tar.gz";
+    sha256 = "daf972a89577f8772602bf2eb38b6a3dd3d922bf5724d45e7f9589b5e830442c";
     md5 = "";
-    md5name = "e48ab6953fbd68ba47234bea5173e62427e9f6a7894e152305142895cfe955de-boost_1_82_0.tar.xz";
+    md5name = "daf972a89577f8772602bf2eb38b6a3dd3d922bf5724d45e7f9589b5e830442c-phc-winner-argon2-20190702.tar.gz";
+  }
+  {
+    name = "boost_1_85_0.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/boost_1_85_0.tar.xz";
+    sha256 = "4e23218ff5036d57afd20f7cdab2e94cdbf6ba9c509d656ace643a81c40a985a";
+    md5 = "";
+    md5name = "4e23218ff5036d57afd20f7cdab2e94cdbf6ba9c509d656ace643a81c40a985a-boost_1_85_0.tar.xz";
   }
   {
     name = "box2d-2.4.1.tar.gz";
@@ -28,11 +35,11 @@
     md5name = "c44a2e898895cfc13b42d2371ba4b88b0777d7782214d6cdc91c33720f3b0d91-breakpad-b324760c7f53667af128a6b77b790323da04fcb9.tar.xz";
   }
   {
-    name = "bsh-2.0b6-src.zip";
-    url = "https://dev-www.libreoffice.org/src/beeca87be45ec87d241ddd0e1bad80c1-bsh-2.0b6-src.zip";
-    sha256 = "9e93c73e23aff644b17dfff656444474c14150e7f3b38b19635e622235e01c96";
-    md5 = "beeca87be45ec87d241ddd0e1bad80c1";
-    md5name = "beeca87be45ec87d241ddd0e1bad80c1-bsh-2.0b6-src.zip";
+    name = "bsh-2.1.1-src.zip";
+    url = "https://dev-www.libreoffice.org/src/bsh-2.1.1-src.zip";
+    sha256 = "2248387ceaa319840434a3547a8b2fec12f95a8418ee039ce5ff5726053a139c";
+    md5 = "";
+    md5name = "2248387ceaa319840434a3547a8b2fec12f95a8418ee039ce5ff5726053a139c-bsh-2.1.1-src.zip";
   }
   {
     name = "bzip2-1.0.8.tar.gz";
@@ -77,18 +84,18 @@
     md5name = "0082d0684f7db6f62361b76c4b7faba19e0c7ce5cb8e36c4b65fea8281e711b4-dtoa-20180411.tgz";
   }
   {
-    name = "libcmis-0.6.1.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/libcmis-0.6.1.tar.xz";
-    sha256 = "d54d19d86153dbc88e2d468f7136269a2cfe71b73227e12fded01d29ac268074";
+    name = "libcmis-0.6.2.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libcmis-0.6.2.tar.xz";
+    sha256 = "1b5c2d7258ff93eb5f9958ff0e4dfd7332dc75a071bb717dde2217a26602a644";
     md5 = "";
-    md5name = "d54d19d86153dbc88e2d468f7136269a2cfe71b73227e12fded01d29ac268074-libcmis-0.6.1.tar.xz";
+    md5name = "1b5c2d7258ff93eb5f9958ff0e4dfd7332dc75a071bb717dde2217a26602a644-libcmis-0.6.2.tar.xz";
   }
   {
-    name = "CoinMP-1.7.6.tgz";
-    url = "https://dev-www.libreoffice.org/src/CoinMP-1.7.6.tgz";
-    sha256 = "86c798780b9e1f5921fe4efe651a93cb420623b45aa1fdff57af8c37f116113f";
+    name = "CoinMP-1.8.4.tgz";
+    url = "https://dev-www.libreoffice.org/src/CoinMP-1.8.4.tgz";
+    sha256 = "3459fb0ccbdd39342744684338984ac4cc153fb0434f4cae8cf74bd67490a38d";
     md5 = "";
-    md5name = "86c798780b9e1f5921fe4efe651a93cb420623b45aa1fdff57af8c37f116113f-CoinMP-1.7.6.tgz";
+    md5name = "3459fb0ccbdd39342744684338984ac4cc153fb0434f4cae8cf74bd67490a38d-CoinMP-1.8.4.tgz";
   }
   {
     name = "cppunit-1.15.1.tar.gz";
@@ -98,11 +105,11 @@
     md5name = "89c5c6665337f56fd2db36bc3805a5619709d51fb136e51937072f63fcc717a7-cppunit-1.15.1.tar.gz";
   }
   {
-    name = "curl-8.4.0.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/curl-8.4.0.tar.xz";
-    sha256 = "16c62a9c4af0f703d28bda6d7bbf37ba47055ad3414d70dec63e2e6336f2a82d";
+    name = "curl-8.9.0.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/curl-8.9.0.tar.xz";
+    sha256 = "ff09b2791ca56d25fd5c3f3a4927dce7c8a9dc4182200c487ca889fba1fdd412";
     md5 = "";
-    md5name = "16c62a9c4af0f703d28bda6d7bbf37ba47055ad3414d70dec63e2e6336f2a82d-curl-8.4.0.tar.xz";
+    md5name = "ff09b2791ca56d25fd5c3f3a4927dce7c8a9dc4182200c487ca889fba1fdd412-curl-8.9.0.tar.xz";
   }
   {
     name = "libe-book-0.1.3.tar.xz";
@@ -140,11 +147,11 @@
     md5name = "b430435a6e8487888b761dc848b7981626eb814884963ffe25eb26a139301e9a-libetonyek-0.1.10.tar.xz";
   }
   {
-    name = "expat-2.5.0.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/expat-2.5.0.tar.xz";
-    sha256 = "ef2420f0232c087801abf705e89ae65f6257df6b7931d37846a193ef2e8cdcbe";
+    name = "expat-2.6.2.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/expat-2.6.2.tar.xz";
+    sha256 = "ee14b4c5d8908b1bec37ad937607eab183d4d9806a08adee472c3c3121d27364";
     md5 = "";
-    md5name = "ef2420f0232c087801abf705e89ae65f6257df6b7931d37846a193ef2e8cdcbe-expat-2.5.0.tar.xz";
+    md5name = "ee14b4c5d8908b1bec37ad937607eab183d4d9806a08adee472c3c3121d27364-expat-2.6.2.tar.xz";
   }
   {
     name = "Firebird-3.0.7.33374-0.tar.bz2";
@@ -154,11 +161,11 @@
     md5name = "acb85cedafa10ce106b1823fb236b1b3e5d942a5741e8f8435cc8ccfec0afe76-Firebird-3.0.7.33374-0.tar.bz2";
   }
   {
-    name = "fontconfig-2.14.2.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/fontconfig-2.14.2.tar.xz";
-    sha256 = "dba695b57bce15023d2ceedef82062c2b925e51f5d4cc4aef736cf13f60a468b";
+    name = "fontconfig-2.15.0.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/fontconfig-2.15.0.tar.xz";
+    sha256 = "63a0658d0e06e0fa886106452b58ef04f21f58202ea02a94c39de0d3335d7c0e";
     md5 = "";
-    md5name = "dba695b57bce15023d2ceedef82062c2b925e51f5d4cc4aef736cf13f60a468b-fontconfig-2.14.2.tar.xz";
+    md5name = "63a0658d0e06e0fa886106452b58ef04f21f58202ea02a94c39de0d3335d7c0e-fontconfig-2.15.0.tar.xz";
   }
   {
     name = "crosextrafonts-20130214.tar.gz";
@@ -196,11 +203,11 @@
     md5name = "8879d89b5ff7b506c9fc28efc31a5c0b954bbe9333e66e5283d27d20a8519ea3-liberation-narrow-fonts-ttf-1.07.6.tar.gz";
   }
   {
-    name = "liberation-fonts-ttf-2.1.4.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/liberation-fonts-ttf-2.1.4.tar.gz";
-    sha256 = "26f85412dd0aa9d061504a1cc8aaf0aa12a70710e8d47d8b65a1251757c1a5ef";
+    name = "liberation-fonts-ttf-2.1.5.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/liberation-fonts-ttf-2.1.5.tar.gz";
+    sha256 = "7191c669bf38899f73a2094ed00f7b800553364f90e2637010a69c0e268f25d0";
     md5 = "";
-    md5name = "26f85412dd0aa9d061504a1cc8aaf0aa12a70710e8d47d8b65a1251757c1a5ef-liberation-fonts-ttf-2.1.4.tar.gz";
+    md5name = "7191c669bf38899f73a2094ed00f7b800553364f90e2637010a69c0e268f25d0-liberation-fonts-ttf-2.1.5.tar.gz";
   }
   {
     name = "LinLibertineG-20120116.zip";
@@ -210,11 +217,102 @@
     md5name = "e7a384790b13c29113e22e596ade9687-LinLibertineG-20120116.zip";
   }
   {
-    name = "noto-fonts-20171024.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/noto-fonts-20171024.tar.gz";
-    sha256 = "29acc15a4c4d6b51201ba5d60f303dfbc2e5acbfdb70413c9ae1ed34fa259994";
+    name = "NotoKufiArabic-v2.109.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoKufiArabic-v2.109.zip";
+    sha256 = "1b6880e4b8df09c3b9e246d6084bfd94bf32a0ffff60cf2dcffd3622d0e2d79f";
+    md5 = "";
+    md5name = "1b6880e4b8df09c3b9e246d6084bfd94bf32a0ffff60cf2dcffd3622d0e2d79f-NotoKufiArabic-v2.109.zip";
+  }
+  {
+    name = "NotoSans-v2.013.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSans-v2.013.zip";
+    sha256 = "9fd595dd701d7ea103a9ba8a9cfdcf0c35c5574ef754fecabe718eadad8bccde";
+    md5 = "";
+    md5name = "9fd595dd701d7ea103a9ba8a9cfdcf0c35c5574ef754fecabe718eadad8bccde-NotoSans-v2.013.zip";
+  }
+  {
+    name = "NotoSerif-v2.013.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSerif-v2.013.zip";
+    sha256 = "fb4c6c75f10365f63b5c8ad5a1864ebe46dd0c70c40d0461cb0dc1b1b7c13a35";
+    md5 = "";
+    md5name = "fb4c6c75f10365f63b5c8ad5a1864ebe46dd0c70c40d0461cb0dc1b1b7c13a35-NotoSerif-v2.013.zip";
+  }
+  {
+    name = "NotoSerifHebrew-v2.004.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSerifHebrew-v2.004.zip";
+    sha256 = "99523f4f21051495f18cbd5169ed0d1e9b395eefe770fece1844a4a7a00c46da";
+    md5 = "";
+    md5name = "99523f4f21051495f18cbd5169ed0d1e9b395eefe770fece1844a4a7a00c46da-NotoSerifHebrew-v2.004.zip";
+  }
+  {
+    name = "NotoSansArabic-v2.010.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSansArabic-v2.010.zip";
+    sha256 = "a5a34ac1ea01d0d71c083f99440ebfb1f64224474a0d88bb7ef0e2f8d9a996d2";
+    md5 = "";
+    md5name = "a5a34ac1ea01d0d71c083f99440ebfb1f64224474a0d88bb7ef0e2f8d9a996d2-NotoSansArabic-v2.010.zip";
+  }
+  {
+    name = "NotoNaskhArabic-v2.019.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoNaskhArabic-v2.019.zip";
+    sha256 = "7a509e10c9c8d21f384a26807ef2f5fbbecec46fdb8626c5441bed6d894edb81";
+    md5 = "";
+    md5name = "7a509e10c9c8d21f384a26807ef2f5fbbecec46fdb8626c5441bed6d894edb81-NotoNaskhArabic-v2.019.zip";
+  }
+  {
+    name = "NotoSansHebrew-v3.001.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSansHebrew-v3.001.zip";
+    sha256 = "df0a71814b4e63644cf40fcc4529111b61266b7a2dafbe95068b29a7520cc3cb";
+    md5 = "";
+    md5name = "df0a71814b4e63644cf40fcc4529111b61266b7a2dafbe95068b29a7520cc3cb-NotoSansHebrew-v3.001.zip";
+  }
+  {
+    name = "NotoSansArmenian-v2.008.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSansArmenian-v2.008.zip";
+    sha256 = "eab89b99e134177ca6a3f9f0412a7cb812aafceb13175d686b4c45cb237f64ac";
+    md5 = "";
+    md5name = "eab89b99e134177ca6a3f9f0412a7cb812aafceb13175d686b4c45cb237f64ac-NotoSansArmenian-v2.008.zip";
+  }
+  {
+    name = "NotoSerifArmenian-v2.008.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSerifArmenian-v2.008.zip";
+    sha256 = "b21c198a4c76ae598a304decefb3b5c2a4c2d4c3ae226728eff359185f291c6f";
+    md5 = "";
+    md5name = "b21c198a4c76ae598a304decefb3b5c2a4c2d4c3ae226728eff359185f291c6f-NotoSerifArmenian-v2.008.zip";
+  }
+  {
+    name = "NotoSansGeorgian-v2.005.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSansGeorgian-v2.005.zip";
+    sha256 = "10e85011008108308e6feab0408242acb07804da61ede3d3ff236461ae07ab1b";
+    md5 = "";
+    md5name = "10e85011008108308e6feab0408242acb07804da61ede3d3ff236461ae07ab1b-NotoSansGeorgian-v2.005.zip";
+  }
+  {
+    name = "NotoSerifGeorgian-v2.003.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSerifGeorgian-v2.003.zip";
+    sha256 = "cfb41a264b97d463bab6807a5be937ba4a6ddcfa93d519a21b98b0ba73ca27d4";
+    md5 = "";
+    md5name = "cfb41a264b97d463bab6807a5be937ba4a6ddcfa93d519a21b98b0ba73ca27d4-NotoSerifGeorgian-v2.003.zip";
+  }
+  {
+    name = "NotoSansLao-v2.003.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSansLao-v2.003.zip";
+    sha256 = "5a87c31b1a40ef8147c1e84437e5f0ceba2d4dbbfc0b56a65821ad29870da8c0";
     md5 = "";
-    md5name = "29acc15a4c4d6b51201ba5d60f303dfbc2e5acbfdb70413c9ae1ed34fa259994-noto-fonts-20171024.tar.gz";
+    md5name = "5a87c31b1a40ef8147c1e84437e5f0ceba2d4dbbfc0b56a65821ad29870da8c0-NotoSansLao-v2.003.zip";
+  }
+  {
+    name = "NotoSerifLao-v2.003.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSerifLao-v2.003.zip";
+    sha256 = "e96a303d3347790b0ef3db274971a989a736ce766ec9ea1bea0e1458568a80b2";
+    md5 = "";
+    md5name = "e96a303d3347790b0ef3db274971a989a736ce766ec9ea1bea0e1458568a80b2-NotoSerifLao-v2.003.zip";
+  }
+  {
+    name = "NotoSansLisu-v2.102.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSansLisu-v2.102.zip";
+    sha256 = "b12a1ff762680681b7ce4d98dd29a7f54d90f5bcadd10c955afc640a27b3a268";
+    md5 = "";
+    md5name = "b12a1ff762680681b7ce4d98dd29a7f54d90f5bcadd10c955afc640a27b3a268-NotoSansLisu-v2.102.zip";
   }
   {
     name = "culmus-0.133.tar.gz";
@@ -245,11 +343,11 @@
     md5name = "926fe1bd7dfde8e55178281f645258bfced6420c951c6f2fd532fd21691bca30-Amiri-1.000.zip";
   }
   {
-    name = "ReemKufi-1.2.zip";
-    url = "https://dev-www.libreoffice.org/src/ReemKufi-1.2.zip";
-    sha256 = "c4fd68a23c0ea471cc084ae7efe888da372b925cb208eeb0322c26792d2ef413";
+    name = "ReemKufi-1.7.zip";
+    url = "https://dev-www.libreoffice.org/src/ReemKufi-1.7.zip";
+    sha256 = "2359f036c7bddeb4d5529d7b3c9139c3288c920cc26053d417cdbb563eafe0a4";
     md5 = "";
-    md5name = "c4fd68a23c0ea471cc084ae7efe888da372b925cb208eeb0322c26792d2ef413-ReemKufi-1.2.zip";
+    md5name = "2359f036c7bddeb4d5529d7b3c9139c3288c920cc26053d417cdbb563eafe0a4-ReemKufi-1.7.zip";
   }
   {
     name = "Scheherazade-2.100.zip";
@@ -266,11 +364,11 @@
     md5name = "0e422d1564a6dbf22a9af598535425271e583514c0f7ba7d9091676420de34ac-libfreehand-0.1.2.tar.xz";
   }
   {
-    name = "freetype-2.13.0.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/freetype-2.13.0.tar.xz";
-    sha256 = "5ee23abd047636c24b2d43c6625dcafc66661d1aca64dec9e0d05df29592624c";
+    name = "freetype-2.13.2.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/freetype-2.13.2.tar.xz";
+    sha256 = "12991c4e55c506dd7f9b765933e62fd2be2e06d421505d7950a132e4f1bb484d";
     md5 = "";
-    md5name = "5ee23abd047636c24b2d43c6625dcafc66661d1aca64dec9e0d05df29592624c-freetype-2.13.0.tar.xz";
+    md5name = "12991c4e55c506dd7f9b765933e62fd2be2e06d421505d7950a132e4f1bb484d-freetype-2.13.2.tar.xz";
   }
   {
     name = "frozen-1.1.1.tar.gz";
@@ -280,18 +378,18 @@
     md5name = "f7c7075750e8fceeac081e9ef01944f221b36d9725beac8681cbd2838d26be45-frozen-1.1.1.tar.gz";
   }
   {
-    name = "glm-0.9.9.8.zip";
-    url = "https://dev-www.libreoffice.org/src/glm-0.9.9.8.zip";
-    sha256 = "6bba5f032bed47c73ad9397f2313b9acbfb56253d0d0576b5873d3dcb25e99ad";
+    name = "glm-1.0.1.zip";
+    url = "https://dev-www.libreoffice.org/src/glm-1.0.1.zip";
+    sha256 = "09c5716296787e1f7fcb87b1cbdbf26814ec1288ed6259ccd30d5d9795809fa5";
     md5 = "";
-    md5name = "6bba5f032bed47c73ad9397f2313b9acbfb56253d0d0576b5873d3dcb25e99ad-glm-0.9.9.8.zip";
+    md5name = "09c5716296787e1f7fcb87b1cbdbf26814ec1288ed6259ccd30d5d9795809fa5-glm-1.0.1.zip";
   }
   {
-    name = "gpgme-1.18.0.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/gpgme-1.18.0.tar.bz2";
-    sha256 = "361d4eae47ce925dba0ea569af40e7b52c645c4ae2e65e5621bf1b6cdd8b0e9e";
+    name = "gpgme-1.23.2.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/gpgme-1.23.2.tar.bz2";
+    sha256 = "9499e8b1f33cccb6815527a1bc16049d35a6198a6c5fae0185f2bd561bce5224";
     md5 = "";
-    md5name = "361d4eae47ce925dba0ea569af40e7b52c645c4ae2e65e5621bf1b6cdd8b0e9e-gpgme-1.18.0.tar.bz2";
+    md5name = "9499e8b1f33cccb6815527a1bc16049d35a6198a6c5fae0185f2bd561bce5224-gpgme-1.23.2.tar.bz2";
   }
   {
     name = "graphite2-minimal-1.3.14.tgz";
@@ -301,11 +399,11 @@
     md5name = "b8e892d8627c41888ff121e921455b9e2d26836978f2359173d19825da62b8fc-graphite2-minimal-1.3.14.tgz";
   }
   {
-    name = "harfbuzz-8.2.2.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/harfbuzz-8.2.2.tar.xz";
-    sha256 = "e433ad85fbdf57f680be29479b3f964577379aaf319f557eb76569f0ecbc90f3";
+    name = "harfbuzz-8.5.0.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/harfbuzz-8.5.0.tar.xz";
+    sha256 = "77e4f7f98f3d86bf8788b53e6832fb96279956e1c3961988ea3d4b7ca41ddc27";
     md5 = "";
-    md5name = "e433ad85fbdf57f680be29479b3f964577379aaf319f557eb76569f0ecbc90f3-harfbuzz-8.2.2.tar.xz";
+    md5name = "77e4f7f98f3d86bf8788b53e6832fb96279956e1c3961988ea3d4b7ca41ddc27-harfbuzz-8.5.0.tar.xz";
   }
   {
     name = "hsqldb_1_8_0.zip";
@@ -329,18 +427,32 @@
     md5name = "5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz";
   }
   {
-    name = "icu4c-73_2-src.tgz";
-    url = "https://dev-www.libreoffice.org/src/icu4c-73_2-src.tgz";
-    sha256 = "818a80712ed3caacd9b652305e01afc7fa167e6f2e94996da44b90c2ab604ce1";
+    name = "IAccessible2-1.3+git20231013.3d8c7f0.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/IAccessible2-1.3+git20231013.3d8c7f0.tar.gz";
+    sha256 = "0e279003f5199f80031c6dcd08f79d6f65a0505139160e7df0d09b226bff4023";
     md5 = "";
-    md5name = "818a80712ed3caacd9b652305e01afc7fa167e6f2e94996da44b90c2ab604ce1-icu4c-73_2-src.tgz";
+    md5name = "0e279003f5199f80031c6dcd08f79d6f65a0505139160e7df0d09b226bff4023-IAccessible2-1.3+git20231013.3d8c7f0.tar.gz";
   }
   {
-    name = "icu4c-73_2-data.zip";
-    url = "https://dev-www.libreoffice.org/src/icu4c-73_2-data.zip";
-    sha256 = "ca1ee076163b438461e484421a7679fc33a64cd0a54f9d4b401893fa1eb42701";
+    name = "icu4c-74_2-src.tgz";
+    url = "https://dev-www.libreoffice.org/src/icu4c-74_2-src.tgz";
+    sha256 = "68db082212a96d6f53e35d60f47d38b962e9f9d207a74cfac78029ae8ff5e08c";
     md5 = "";
-    md5name = "ca1ee076163b438461e484421a7679fc33a64cd0a54f9d4b401893fa1eb42701-icu4c-73_2-data.zip";
+    md5name = "68db082212a96d6f53e35d60f47d38b962e9f9d207a74cfac78029ae8ff5e08c-icu4c-74_2-src.tgz";
+  }
+  {
+    name = "icu4c-74_2-data.zip";
+    url = "https://dev-www.libreoffice.org/src/icu4c-74_2-data.zip";
+    sha256 = "c28c3ca5f4ba3384781797138a294ca360988d4322674ad4d51e52f5d9b0a2b6";
+    md5 = "";
+    md5name = "c28c3ca5f4ba3384781797138a294ca360988d4322674ad4d51e52f5d9b0a2b6-icu4c-74_2-data.zip";
+  }
+  {
+    name = "Java-WebSocket-1.5.6.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/Java-WebSocket-1.5.6.tar.gz";
+    sha256 = "167e86561cd7b5ed21b67d7543536134edcb14b373892739b28c417566a3832f";
+    md5 = "";
+    md5name = "167e86561cd7b5ed21b67d7543536134edcb14b373892739b28c417566a3832f-Java-WebSocket-1.5.6.tar.gz";
   }
   {
     name = "flow-engine-0.9.4.zip";
@@ -427,32 +539,32 @@
     md5name = "2fdc3feb6e9deb17adec9bafa3321419aa19f8f4e5dea7bf8486844ca22207bf-libjpeg-turbo-2.1.5.1.tar.gz";
   }
   {
-    name = "language-subtag-registry-2023-08-02.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/language-subtag-registry-2023-08-02.tar.bz2";
-    sha256 = "59fdc026b5088e7947e1e6add482d2a40e1f7e25c50f198b456954216462c2eb";
+    name = "language-subtag-registry-2024-06-14.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/language-subtag-registry-2024-06-14.tar.bz2";
+    sha256 = "75bc394dd83ddfd62b172a462db1b66bdb5950f40823ed63b8c7db6b71e37e75";
     md5 = "";
-    md5name = "59fdc026b5088e7947e1e6add482d2a40e1f7e25c50f198b456954216462c2eb-language-subtag-registry-2023-08-02.tar.bz2";
+    md5name = "75bc394dd83ddfd62b172a462db1b66bdb5950f40823ed63b8c7db6b71e37e75-language-subtag-registry-2024-06-14.tar.bz2";
   }
   {
-    name = "lcms2-2.12.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/lcms2-2.12.tar.gz";
-    sha256 = "18663985e864100455ac3e507625c438c3710354d85e5cbb7cd4043e11fe10f5";
+    name = "lcms2-2.16.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/lcms2-2.16.tar.gz";
+    sha256 = "d873d34ad8b9b4cea010631f1a6228d2087475e4dc5e763eb81acc23d9d45a51";
     md5 = "";
-    md5name = "18663985e864100455ac3e507625c438c3710354d85e5cbb7cd4043e11fe10f5-lcms2-2.12.tar.gz";
+    md5name = "d873d34ad8b9b4cea010631f1a6228d2087475e4dc5e763eb81acc23d9d45a51-lcms2-2.16.tar.gz";
   }
   {
-    name = "libassuan-2.5.6.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/libassuan-2.5.6.tar.bz2";
-    sha256 = "e9fd27218d5394904e4e39788f9b1742711c3e6b41689a31aa3380bd5aa4f426";
+    name = "libassuan-3.0.1.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/libassuan-3.0.1.tar.bz2";
+    sha256 = "c8f0f42e6103dea4b1a6a483cb556654e97302c7465308f58363778f95f194b1";
     md5 = "";
-    md5name = "e9fd27218d5394904e4e39788f9b1742711c3e6b41689a31aa3380bd5aa4f426-libassuan-2.5.6.tar.bz2";
+    md5name = "c8f0f42e6103dea4b1a6a483cb556654e97302c7465308f58363778f95f194b1-libassuan-3.0.1.tar.bz2";
   }
   {
-    name = "libatomic_ops-7.6.8.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/libatomic_ops-7.6.8.tar.gz";
-    sha256 = "1d6a279edf81767e74d2ad2c9fce09459bc65f12c6525a40b0cb3e53c089f665";
+    name = "libatomic_ops-7.8.2.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/libatomic_ops-7.8.2.tar.gz";
+    sha256 = "d305207fe207f2b3fb5cb4c019da12b44ce3fcbc593dfd5080d867b1a2419b51";
     md5 = "";
-    md5name = "1d6a279edf81767e74d2ad2c9fce09459bc65f12c6525a40b0cb3e53c089f665-libatomic_ops-7.6.8.tar.gz";
+    md5name = "d305207fe207f2b3fb5cb4c019da12b44ce3fcbc593dfd5080d867b1a2419b51-libatomic_ops-7.8.2.tar.gz";
   }
   {
     name = "libeot-0.01.tar.bz2";
@@ -462,11 +574,11 @@
     md5name = "cf5091fa8e7dcdbe667335eb90a2cfdd0a3fe8f8c7c8d1ece44d9d055736a06a-libeot-0.01.tar.bz2";
   }
   {
-    name = "libexttextcat-3.4.6.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/libexttextcat-3.4.6.tar.xz";
-    sha256 = "6d77eace20e9ea106c1330e268ede70c9a4a89744ddc25715682754eca3368df";
+    name = "libexttextcat-3.4.7.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libexttextcat-3.4.7.tar.xz";
+    sha256 = "df0a59d413a5b202573d8d4f5159e33a8538da4f8e8e60979facc64d6290cebd";
     md5 = "";
-    md5name = "6d77eace20e9ea106c1330e268ede70c9a4a89744ddc25715682754eca3368df-libexttextcat-3.4.6.tar.xz";
+    md5name = "df0a59d413a5b202573d8d4f5159e33a8538da4f8e8e60979facc64d6290cebd-libexttextcat-3.4.7.tar.xz";
   }
   {
     name = "libffi-3.4.4.tar.gz";
@@ -476,18 +588,18 @@
     md5name = "d66c56ad259a82cf2a9dfc408b32bf5da52371500b84745f7fb8b645712df676-libffi-3.4.4.tar.gz";
   }
   {
-    name = "libgpg-error-1.43.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/libgpg-error-1.43.tar.bz2";
-    sha256 = "a9ab83ca7acc442a5bd846a75b920285ff79bdb4e3d34aa382be88ed2c3aebaf";
+    name = "libgpg-error-1.50.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/libgpg-error-1.50.tar.bz2";
+    sha256 = "69405349e0a633e444a28c5b35ce8f14484684518a508dc48a089992fe93e20a";
     md5 = "";
-    md5name = "a9ab83ca7acc442a5bd846a75b920285ff79bdb4e3d34aa382be88ed2c3aebaf-libgpg-error-1.43.tar.bz2";
+    md5name = "69405349e0a633e444a28c5b35ce8f14484684518a508dc48a089992fe93e20a-libgpg-error-1.50.tar.bz2";
   }
   {
-    name = "liblangtag-0.6.3.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/liblangtag-0.6.3.tar.bz2";
-    sha256 = "1f12a20a02ec3a8d22e54dedb8b683a43c9c160bda1ba337bf1060607ae733bd";
+    name = "liblangtag-0.6.7.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/liblangtag-0.6.7.tar.bz2";
+    sha256 = "5ed6bcd4ae3f3c05c912e62f216cd1a44123846147f729a49fb5668da51e030e";
     md5 = "";
-    md5name = "1f12a20a02ec3a8d22e54dedb8b683a43c9c160bda1ba337bf1060607ae733bd-liblangtag-0.6.3.tar.bz2";
+    md5name = "5ed6bcd4ae3f3c05c912e62f216cd1a44123846147f729a49fb5668da51e030e-liblangtag-0.6.7.tar.bz2";
   }
   {
     name = "libnumbertext-1.0.11.tar.xz";
@@ -497,39 +609,39 @@
     md5name = "5dcb4db3b2340f81f601ce86d8d76b69e34d70f84f804192c901e4b7f84d5fb0-libnumbertext-1.0.11.tar.xz";
   }
   {
-    name = "ltm-1.2.1.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/ltm-1.2.1.tar.xz";
-    sha256 = "986025d7b374276fee2e30e99f3649e4ac0db8a02257a37ee10eae72abed0d1f";
+    name = "ltm-1.3.0.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/ltm-1.3.0.tar.xz";
+    sha256 = "296272d93435991308eb73607600c034b558807a07e829e751142e65ccfa9d08";
     md5 = "";
-    md5name = "986025d7b374276fee2e30e99f3649e4ac0db8a02257a37ee10eae72abed0d1f-ltm-1.2.1.tar.xz";
+    md5name = "296272d93435991308eb73607600c034b558807a07e829e751142e65ccfa9d08-ltm-1.3.0.tar.xz";
   }
   {
-    name = "libwebp-1.3.2.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/libwebp-1.3.2.tar.gz";
-    sha256 = "2a499607df669e40258e53d0ade8035ba4ec0175244869d1025d460562aa09b4";
+    name = "libwebp-1.4.0.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/libwebp-1.4.0.tar.gz";
+    sha256 = "61f873ec69e3be1b99535634340d5bde750b2e4447caa1db9f61be3fd49ab1e5";
     md5 = "";
-    md5name = "2a499607df669e40258e53d0ade8035ba4ec0175244869d1025d460562aa09b4-libwebp-1.3.2.tar.gz";
+    md5name = "61f873ec69e3be1b99535634340d5bde750b2e4447caa1db9f61be3fd49ab1e5-libwebp-1.4.0.tar.gz";
   }
   {
-    name = "xmlsec1-1.2.37.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/xmlsec1-1.2.37.tar.gz";
-    sha256 = "5f8dfbcb6d1e56bddd0b5ec2e00a3d0ca5342a9f57c24dffde5c796b2be2871c";
+    name = "xmlsec1-1.3.5.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/xmlsec1-1.3.5.tar.gz";
+    sha256 = "2ffd4ad1f860ec93e47a680310ab2bc94968bd07566e71976bd96133d9504917";
     md5 = "";
-    md5name = "5f8dfbcb6d1e56bddd0b5ec2e00a3d0ca5342a9f57c24dffde5c796b2be2871c-xmlsec1-1.2.37.tar.gz";
+    md5name = "2ffd4ad1f860ec93e47a680310ab2bc94968bd07566e71976bd96133d9504917-xmlsec1-1.3.5.tar.gz";
   }
   {
-    name = "libxml2-2.11.4.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/libxml2-2.11.4.tar.xz";
-    sha256 = "737e1d7f8ab3f139729ca13a2494fd17bf30ddb4b7a427cf336252cab57f57f7";
+    name = "libxml2-2.12.9.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libxml2-2.12.9.tar.xz";
+    sha256 = "59912db536ab56a3996489ea0299768c7bcffe57169f0235e7f962a91f483590";
     md5 = "";
-    md5name = "737e1d7f8ab3f139729ca13a2494fd17bf30ddb4b7a427cf336252cab57f57f7-libxml2-2.11.4.tar.xz";
+    md5name = "59912db536ab56a3996489ea0299768c7bcffe57169f0235e7f962a91f483590-libxml2-2.12.9.tar.xz";
   }
   {
-    name = "libxslt-1.1.38.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/libxslt-1.1.38.tar.xz";
-    sha256 = "1f32450425819a09acaff2ab7a5a7f8a2ec7956e505d7beeb45e843d0e1ecab1";
+    name = "libxslt-1.1.41.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libxslt-1.1.41.tar.xz";
+    sha256 = "3ad392af91115b7740f7b50d228cc1c5fc13afc1da7f16cb0213917a37f71bda";
     md5 = "";
-    md5name = "1f32450425819a09acaff2ab7a5a7f8a2ec7956e505d7beeb45e843d0e1ecab1-libxslt-1.1.38.tar.xz";
+    md5name = "3ad392af91115b7740f7b50d228cc1c5fc13afc1da7f16cb0213917a37f71bda-libxslt-1.1.41.tar.xz";
   }
   {
     name = "lp_solve_5.5.tar.gz";
@@ -539,18 +651,18 @@
     md5name = "26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz";
   }
   {
-    name = "lxml-4.1.1.tgz";
-    url = "https://dev-www.libreoffice.org/src/lxml-4.1.1.tgz";
-    sha256 = "940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e";
+    name = "lxml-5.2.2.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/lxml-5.2.2.tar.gz";
+    sha256 = "bb2dc4898180bea79863d5487e5f9c7c34297414bad54bcd0f0852aee9cfdb87";
     md5 = "";
-    md5name = "940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e-lxml-4.1.1.tgz";
+    md5name = "bb2dc4898180bea79863d5487e5f9c7c34297414bad54bcd0f0852aee9cfdb87-lxml-5.2.2.tar.gz";
   }
   {
-    name = "mariadb-connector-c-3.3.7-src.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/mariadb-connector-c-3.3.7-src.tar.gz";
-    sha256 = "975a9a862fed80f84e0206373f7ef05537aada5b65d99b71b36ab892b44240bf";
+    name = "mariadb-connector-c-3.3.8-src.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/mariadb-connector-c-3.3.8-src.tar.gz";
+    sha256 = "f9f076b4aa9fb22cc94b24f82c80f9ef063805ecd6533a2eb5d5060cf93833e8";
     md5 = "";
-    md5name = "975a9a862fed80f84e0206373f7ef05537aada5b65d99b71b36ab892b44240bf-mariadb-connector-c-3.3.7-src.tar.gz";
+    md5name = "f9f076b4aa9fb22cc94b24f82c80f9ef063805ecd6533a2eb5d5060cf93833e8-mariadb-connector-c-3.3.8-src.tar.gz";
   }
   {
     name = "mdds-2.1.1.tar.xz";
@@ -574,11 +686,11 @@
     md5name = "ef36c1a1aabb2ba3b0bedaaafe717bf4480be2ba8de6f3894be5fd3702b013ba-libmspub-0.1.4.tar.xz";
   }
   {
-    name = "libmwaw-0.3.21.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/libmwaw-0.3.21.tar.xz";
-    sha256 = "e8750123a78d61b943cef78b7736c8a7f20bb0a649aa112402124fba794fc21c";
+    name = "libmwaw-0.3.22.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libmwaw-0.3.22.tar.xz";
+    sha256 = "a1a39ffcea3ff2a7a7aae0c23877ddf4918b554bf82b0de5d7ce8e7f61ea8e32";
     md5 = "";
-    md5name = "e8750123a78d61b943cef78b7736c8a7f20bb0a649aa112402124fba794fc21c-libmwaw-0.3.21.tar.xz";
+    md5name = "a1a39ffcea3ff2a7a7aae0c23877ddf4918b554bf82b0de5d7ce8e7f61ea8e32-libmwaw-0.3.22.tar.xz";
   }
   {
     name = "mythes-1.2.5.tar.xz";
@@ -588,11 +700,11 @@
     md5name = "19279f70707bbe5ffa619f2dc319f888cec0c4a8d339dc0a21330517bd6f521d-mythes-1.2.5.tar.xz";
   }
   {
-    name = "nss-3.90-with-nspr-4.35.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/nss-3.90-with-nspr-4.35.tar.gz";
-    sha256 = "f78ab1d911cae8bbc94758fb3bd0f731df4087423a4ff5db271ba65381f6b739";
+    name = "nss-3.102.1-with-nspr-4.35.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/nss-3.102.1-with-nspr-4.35.tar.gz";
+    sha256 = "ddfdec73fb4b0eedce5fc4de09de9ba14d2ddbfbf67e42372903e1510f2d3d65";
     md5 = "";
-    md5name = "f78ab1d911cae8bbc94758fb3bd0f731df4087423a4ff5db271ba65381f6b739-nss-3.90-with-nspr-4.35.tar.gz";
+    md5name = "ddfdec73fb4b0eedce5fc4de09de9ba14d2ddbfbf67e42372903e1510f2d3d65-nss-3.102.1-with-nspr-4.35.tar.gz";
   }
   {
     name = "libodfgen-0.1.8.tar.xz";
@@ -616,25 +728,32 @@
     md5name = "8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar";
   }
   {
-    name = "openldap-2.6.6.tgz";
-    url = "https://dev-www.libreoffice.org/src/openldap-2.6.6.tgz";
-    sha256 = "082e998cf542984d43634442dbe11da860759e510907152ea579bdc42fe39ea0";
+    name = "onlineupdate-c003be8b9727672e7d30972983b375f4c200233f-2.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/onlineupdate-c003be8b9727672e7d30972983b375f4c200233f-2.tar.xz";
+    sha256 = "37206cf981e8409d048b59ac5839621ea107ff49af72beb9d7769a2f41da8d90";
+    md5 = "";
+    md5name = "37206cf981e8409d048b59ac5839621ea107ff49af72beb9d7769a2f41da8d90-onlineupdate-c003be8b9727672e7d30972983b375f4c200233f-2.tar.xz";
+  }
+  {
+    name = "openldap-2.6.8.tgz";
+    url = "https://dev-www.libreoffice.org/src/openldap-2.6.8.tgz";
+    sha256 = "48969323e94e3be3b03c6a132942dcba7ef8d545f2ad35401709019f696c3c4e";
     md5 = "";
-    md5name = "082e998cf542984d43634442dbe11da860759e510907152ea579bdc42fe39ea0-openldap-2.6.6.tgz";
+    md5name = "48969323e94e3be3b03c6a132942dcba7ef8d545f2ad35401709019f696c3c4e-openldap-2.6.8.tgz";
   }
   {
-    name = "openssl-3.0.11.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/openssl-3.0.11.tar.gz";
-    sha256 = "b3425d3bb4a2218d0697eb41f7fc0cdede016ed19ca49d168b78e8d947887f55";
+    name = "openssl-3.0.14.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/openssl-3.0.14.tar.gz";
+    sha256 = "eeca035d4dd4e84fc25846d952da6297484afa0650a6f84c682e39df3a4123ca";
     md5 = "";
-    md5name = "b3425d3bb4a2218d0697eb41f7fc0cdede016ed19ca49d168b78e8d947887f55-openssl-3.0.11.tar.gz";
+    md5name = "eeca035d4dd4e84fc25846d952da6297484afa0650a6f84c682e39df3a4123ca-openssl-3.0.14.tar.gz";
   }
   {
-    name = "liborcus-0.18.1.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/liborcus-0.18.1.tar.xz";
-    sha256 = "6006b9f1576315e313df715a7e72a17f3e0b17d7b6bd119cfa8a0b608ce971eb";
+    name = "liborcus-0.19.2.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/liborcus-0.19.2.tar.xz";
+    sha256 = "69ed26a00d4aaa7688e62a6e003cbc81928521a45e96605e53365aa499719e39";
     md5 = "";
-    md5name = "6006b9f1576315e313df715a7e72a17f3e0b17d7b6bd119cfa8a0b608ce971eb-liborcus-0.18.1.tar.xz";
+    md5name = "69ed26a00d4aaa7688e62a6e003cbc81928521a45e96605e53365aa499719e39-liborcus-0.19.2.tar.xz";
   }
   {
     name = "libpagemaker-0.0.4.tar.xz";
@@ -644,11 +763,11 @@
     md5name = "66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d-libpagemaker-0.0.4.tar.xz";
   }
   {
-    name = "pdfium-5778.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/pdfium-5778.tar.bz2";
-    sha256 = "b1052ff24e9ffb11af017c444bb0f6ad508d64c9a0fb88cacb0e8210245dde06";
+    name = "pdfium-6425.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/pdfium-6425.tar.bz2";
+    sha256 = "fe0291b96d7352bac530d13ef2e5fd63ad9980e0128911f88b957b5992508f1c";
     md5 = "";
-    md5name = "b1052ff24e9ffb11af017c444bb0f6ad508d64c9a0fb88cacb0e8210245dde06-pdfium-5778.tar.bz2";
+    md5name = "fe0291b96d7352bac530d13ef2e5fd63ad9980e0128911f88b957b5992508f1c-pdfium-6425.tar.bz2";
   }
   {
     name = "pixman-0.42.2.tar.gz";
@@ -658,25 +777,25 @@
     md5name = "ea1480efada2fd948bc75366f7c349e1c96d3297d09a3fe62626e38e234a625e-pixman-0.42.2.tar.gz";
   }
   {
-    name = "libpng-1.6.40.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/libpng-1.6.40.tar.xz";
-    sha256 = "535b479b2467ff231a3ec6d92a525906fb8ef27978be4f66dbe05d3f3a01b3a1";
+    name = "libpng-1.6.43.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libpng-1.6.43.tar.xz";
+    sha256 = "6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c";
     md5 = "";
-    md5name = "535b479b2467ff231a3ec6d92a525906fb8ef27978be4f66dbe05d3f3a01b3a1-libpng-1.6.40.tar.xz";
+    md5name = "6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c-libpng-1.6.43.tar.xz";
   }
   {
-    name = "tiff-4.6.0.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/tiff-4.6.0.tar.xz";
-    sha256 = "e178649607d1e22b51cf361dd20a3753f244f022eefab1f2f218fc62ebaf87d2";
+    name = "tiff-4.6.0t.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/tiff-4.6.0t.tar.xz";
+    sha256 = "d6da35c9986a4ec845eb96258b3693f8df515f7eb4c1e597ceb03e22788f305b";
     md5 = "";
-    md5name = "e178649607d1e22b51cf361dd20a3753f244f022eefab1f2f218fc62ebaf87d2-tiff-4.6.0.tar.xz";
+    md5name = "d6da35c9986a4ec845eb96258b3693f8df515f7eb4c1e597ceb03e22788f305b-tiff-4.6.0t.tar.xz";
   }
   {
-    name = "poppler-23.09.0.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/poppler-23.09.0.tar.xz";
-    sha256 = "80d1d44dd8bdf4ac1a47d56c5065075eb9991790974b1ed7d14b972acde88e55";
+    name = "poppler-24.06.0.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/poppler-24.06.0.tar.xz";
+    sha256 = "0cdabd495cada11f6ee9e75c793f80daf46367b66c25a63ee8c26d0f9ec40c76";
     md5 = "";
-    md5name = "80d1d44dd8bdf4ac1a47d56c5065075eb9991790974b1ed7d14b972acde88e55-poppler-23.09.0.tar.xz";
+    md5name = "0cdabd495cada11f6ee9e75c793f80daf46367b66c25a63ee8c26d0f9ec40c76-poppler-24.06.0.tar.xz";
   }
   {
     name = "poppler-data-0.4.12.tar.gz";
@@ -686,18 +805,18 @@
     md5name = "c835b640a40ce357e1b83666aabd95edffa24ddddd49b8daff63adb851cdab74-poppler-data-0.4.12.tar.gz";
   }
   {
-    name = "postgresql-13.11.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/postgresql-13.11.tar.bz2";
-    sha256 = "4992ff647203566b670d4e54dc5317499a26856c93576d0ea951bdf6bee50bfb";
+    name = "postgresql-13.15.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/postgresql-13.15.tar.bz2";
+    sha256 = "42edd415446d33b8c242be76d1ad057531b2264b2e86939339b7075c6e4ec925";
     md5 = "";
-    md5name = "4992ff647203566b670d4e54dc5317499a26856c93576d0ea951bdf6bee50bfb-postgresql-13.11.tar.bz2";
+    md5name = "42edd415446d33b8c242be76d1ad057531b2264b2e86939339b7075c6e4ec925-postgresql-13.15.tar.bz2";
   }
   {
-    name = "Python-3.8.18.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/Python-3.8.18.tar.xz";
-    sha256 = "3ffb71cd349a326ba7b2fadc7e7df86ba577dd9c4917e52a8401adbda7405e3f";
+    name = "Python-3.9.19.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/Python-3.9.19.tar.xz";
+    sha256 = "d4892cd1618f6458cb851208c030df1482779609d0f3939991bd38184f8c679e";
     md5 = "";
-    md5name = "3ffb71cd349a326ba7b2fadc7e7df86ba577dd9c4917e52a8401adbda7405e3f-Python-3.8.18.tar.xz";
+    md5name = "d4892cd1618f6458cb851208c030df1482779609d0f3939991bd38184f8c679e-Python-3.9.19.tar.xz";
   }
   {
     name = "libqxp-0.0.2.tar.xz";
@@ -728,25 +847,25 @@
     md5name = "e5be03eda13ef68aabab6e42aa67715e-redland-1.0.17.tar.gz";
   }
   {
-    name = "librevenge-0.0.4.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/librevenge-0.0.4.tar.bz2";
-    sha256 = "c51601cd08320b75702812c64aae0653409164da7825fd0f451ac2c5dbe77cbf";
+    name = "librevenge-0.0.5.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/librevenge-0.0.5.tar.bz2";
+    sha256 = "5892ca6796f7a2a93d580832e907e849b19d980b40d326a283b18877ab6de0c5";
     md5 = "";
-    md5name = "c51601cd08320b75702812c64aae0653409164da7825fd0f451ac2c5dbe77cbf-librevenge-0.0.4.tar.bz2";
+    md5name = "5892ca6796f7a2a93d580832e907e849b19d980b40d326a283b18877ab6de0c5-librevenge-0.0.5.tar.bz2";
   }
   {
-    name = "rhino1_5R5.zip";
-    url = "https://dev-www.libreoffice.org/src/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip";
-    sha256 = "1fb458d6aab06932693cc8a9b6e4e70944ee1ff052fa63606e3131df34e21753";
-    md5 = "798b2ffdc8bcfe7bca2cf92b62caf685";
-    md5name = "798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip";
+    name = "rhino-1.7.14.zip";
+    url = "https://dev-www.libreoffice.org/src/rhino-1.7.14.zip";
+    sha256 = "bf4d2d0c5ff8889fd494486db09291cb7965f0bf2f93ef005d3b08070a5a4f5c";
+    md5 = "";
+    md5name = "bf4d2d0c5ff8889fd494486db09291cb7965f0bf2f93ef005d3b08070a5a4f5c-rhino-1.7.14.zip";
   }
   {
-    name = "skia-m111-a31e897fb3dcbc96b2b40999751611d029bf5404.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/skia-m111-a31e897fb3dcbc96b2b40999751611d029bf5404.tar.xz";
-    sha256 = "0d08a99ed46cde43b5ad2672b5d8770c8eb85d0d26cb8f1f85fd9befe1e9ceb9";
+    name = "skia-m116-2ddcf183eb260f63698aa74d1bb380f247ad7ccd.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/skia-m116-2ddcf183eb260f63698aa74d1bb380f247ad7ccd.tar.xz";
+    sha256 = "2223ebce534458a37826e8fe4f24635b0712cde7ed1bd3208f089f6fdd796e01";
     md5 = "";
-    md5name = "0d08a99ed46cde43b5ad2672b5d8770c8eb85d0d26cb8f1f85fd9befe1e9ceb9-skia-m111-a31e897fb3dcbc96b2b40999751611d029bf5404.tar.xz";
+    md5name = "2223ebce534458a37826e8fe4f24635b0712cde7ed1bd3208f089f6fdd796e01-skia-m116-2ddcf183eb260f63698aa74d1bb380f247ad7ccd.tar.xz";
   }
   {
     name = "libstaroffice-0.0.7.tar.xz";
@@ -756,13 +875,6 @@
     md5name = "f94fb0ad8216f97127bedef163a45886b43c62deac5e5b0f5e628e234220c8db-libstaroffice-0.0.7.tar.xz";
   }
   {
-    name = "swingExSrc.zip";
-    url = "https://dev-www.libreoffice.org/src/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip";
-    sha256 = "64585ac36a81291a58269ec5347e7e3e2e8596dbacb9221015c208191333c6e1";
-    md5 = "35c94d2df8893241173de1d16b6034c0";
-    md5name = "35c94d2df8893241173de1d16b6034c0-swingExSrc.zip";
-  }
-  {
     name = "twaindsm_2.4.1.orig.tar.gz";
     url = "https://dev-www.libreoffice.org/src/twaindsm_2.4.1.orig.tar.gz";
     sha256 = "82c818be771f242388457aa8c807e4b52aa84dc22b21c6c56184a6b4cbb085e6";
@@ -805,11 +917,11 @@
     md5name = "a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip";
   }
   {
-    name = "zlib-1.3.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/zlib-1.3.tar.xz";
-    sha256 = "8a9ba2898e1d0d774eca6ba5b4627a11e5588ba85c8851336eb38de4683050a7";
+    name = "zlib-1.3.1.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/zlib-1.3.1.tar.xz";
+    sha256 = "38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32";
     md5 = "";
-    md5name = "8a9ba2898e1d0d774eca6ba5b4627a11e5588ba85c8851336eb38de4683050a7-zlib-1.3.tar.xz";
+    md5name = "38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32-zlib-1.3.1.tar.xz";
   }
   {
     name = "libzmf-0.0.2.tar.xz";
@@ -819,10 +931,17 @@
     md5name = "27051a30cb057fdb5d5de65a1f165c7153dc76e27fe62251cbb86639eb2caf22-libzmf-0.0.2.tar.xz";
   }
   {
-    name = "zxing-cpp-2.0.0.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/zxing-cpp-2.0.0.tar.gz";
-    sha256 = "12b76b7005c30d34265fc20356d340da179b0b4d43d2c1b35bcca86776069f76";
+    name = "zxcvbn-c-2.5.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/zxcvbn-c-2.5.tar.gz";
+    sha256 = "77d6c6ecb35952a8d8ce7f736b7a2bf466275c48210e309b73782d6b7e84dffd";
+    md5 = "";
+    md5name = "77d6c6ecb35952a8d8ce7f736b7a2bf466275c48210e309b73782d6b7e84dffd-zxcvbn-c-2.5.tar.gz";
+  }
+  {
+    name = "zxing-cpp-2.2.1.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/zxing-cpp-2.2.1.tar.gz";
+    sha256 = "02078ae15f19f9d423a441f205b1d1bee32349ddda7467e2c84e8f08876f8635";
     md5 = "";
-    md5name = "12b76b7005c30d34265fc20356d340da179b0b4d43d2c1b35bcca86776069f76-zxing-cpp-2.0.0.tar.gz";
+    md5name = "02078ae15f19f9d423a441f205b1d1bee32349ddda7467e2c84e8f08876f8635-zxing-cpp-2.2.1.tar.gz";
   }
 ]
diff --git a/pkgs/applications/office/libreoffice/src-fresh/help.nix b/pkgs/applications/office/libreoffice/src-fresh/help.nix
index b9b1b6148200c..2a807c3615951 100644
--- a/pkgs/applications/office/libreoffice/src-fresh/help.nix
+++ b/pkgs/applications/office/libreoffice/src-fresh/help.nix
@@ -1,4 +1,5 @@
-{
-  sha256 = "0y46gpnrmmpc1sah26w8pvjwnbnr9diblki9hvzygq4n800lqy7d";
-  url = "https://download.documentfoundation.org/libreoffice/src/7.6.4/libreoffice-help-7.6.4.1.tar.xz";
+{ fetchurl, ... }:
+fetchurl {
+  sha256 = "1vbi2qbap3ccychc0sfn32z46klyzjh0hhk4in0sd7qkl97y6lvn";
+  url = "https://download.documentfoundation.org/libreoffice/src/24.8.0/libreoffice-help-24.8.0.3.tar.xz";
 }
diff --git a/pkgs/applications/office/libreoffice/src-fresh/main.nix b/pkgs/applications/office/libreoffice/src-fresh/main.nix
index 0aab4189764e4..2bbbb6b3b0c29 100644
--- a/pkgs/applications/office/libreoffice/src-fresh/main.nix
+++ b/pkgs/applications/office/libreoffice/src-fresh/main.nix
@@ -1,4 +1,5 @@
-{
-  sha256 = "07kam9q1nyzff2y77gk4a2jbx403b6m2i1p0p49n6xscyawagzhk";
-  url = "https://download.documentfoundation.org/libreoffice/src/7.6.4/libreoffice-7.6.4.1.tar.xz";
+{ fetchurl, ... }:
+fetchurl {
+  sha256 = "1hbqgpgih3j9ic1dljxz3mz0rsjf0iyws7qm7g1hb35ns664c4av";
+  url = "https://download.documentfoundation.org/libreoffice/src/24.8.0/libreoffice-24.8.0.3.tar.xz";
 }
diff --git a/pkgs/applications/office/libreoffice/src-fresh/translations.nix b/pkgs/applications/office/libreoffice/src-fresh/translations.nix
index 1480e31e0a2e0..d5890a86e2cbb 100644
--- a/pkgs/applications/office/libreoffice/src-fresh/translations.nix
+++ b/pkgs/applications/office/libreoffice/src-fresh/translations.nix
@@ -1,4 +1,5 @@
-{
-  sha256 = "0ybn7c569wrj3xj20sx34rym8zkxazv9aj4rv76mbp5b82z0snis";
-  url = "https://download.documentfoundation.org/libreoffice/src/7.6.4/libreoffice-translations-7.6.4.1.tar.xz";
+{ fetchurl, ... }:
+fetchurl {
+  sha256 = "0p75xijrmp44kcda33xg5dr06xl1fcxwhxgvlcj396rkn2k0c9sy";
+  url = "https://download.documentfoundation.org/libreoffice/src/24.8.0/libreoffice-translations-24.8.0.3.tar.xz";
 }
diff --git a/pkgs/applications/office/libreoffice/src-fresh/version.nix b/pkgs/applications/office/libreoffice/src-fresh/version.nix
index 5a38852a307ea..e6bf645f80826 100644
--- a/pkgs/applications/office/libreoffice/src-fresh/version.nix
+++ b/pkgs/applications/office/libreoffice/src-fresh/version.nix
@@ -1 +1 @@
-"7.6.4.1"
+"24.8.0.3"
diff --git a/pkgs/applications/office/libreoffice/src-still/deps.nix b/pkgs/applications/office/libreoffice/src-still/deps.nix
index 0025aed0d3a3b..d9ef29364fc84 100644
--- a/pkgs/applications/office/libreoffice/src-still/deps.nix
+++ b/pkgs/applications/office/libreoffice/src-still/deps.nix
@@ -7,11 +7,18 @@
     md5name = "e763a9dc21c3d2667402d66e202e3f8ef4db51b34b79ef41f56cacb86dcd6eed-libabw-0.1.3.tar.xz";
   }
   {
-    name = "boost_1_80_0.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/boost_1_80_0.tar.xz";
-    sha256 = "322e567e98c466c0aa0e380ed8c647552fe4af48998648428f1b5f0c8eff4666";
+    name = "phc-winner-argon2-20190702.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/phc-winner-argon2-20190702.tar.gz";
+    sha256 = "daf972a89577f8772602bf2eb38b6a3dd3d922bf5724d45e7f9589b5e830442c";
     md5 = "";
-    md5name = "322e567e98c466c0aa0e380ed8c647552fe4af48998648428f1b5f0c8eff4666-boost_1_80_0.tar.xz";
+    md5name = "daf972a89577f8772602bf2eb38b6a3dd3d922bf5724d45e7f9589b5e830442c-phc-winner-argon2-20190702.tar.gz";
+  }
+  {
+    name = "boost_1_82_0.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/boost_1_82_0.tar.xz";
+    sha256 = "e48ab6953fbd68ba47234bea5173e62427e9f6a7894e152305142895cfe955de";
+    md5 = "";
+    md5name = "e48ab6953fbd68ba47234bea5173e62427e9f6a7894e152305142895cfe955de-boost_1_82_0.tar.xz";
   }
   {
     name = "box2d-2.4.1.tar.gz";
@@ -84,11 +91,11 @@
     md5name = "d54d19d86153dbc88e2d468f7136269a2cfe71b73227e12fded01d29ac268074-libcmis-0.6.1.tar.xz";
   }
   {
-    name = "CoinMP-1.7.6.tgz";
-    url = "https://dev-www.libreoffice.org/src/CoinMP-1.7.6.tgz";
-    sha256 = "86c798780b9e1f5921fe4efe651a93cb420623b45aa1fdff57af8c37f116113f";
+    name = "CoinMP-1.8.4.tgz";
+    url = "https://dev-www.libreoffice.org/src/CoinMP-1.8.4.tgz";
+    sha256 = "3459fb0ccbdd39342744684338984ac4cc153fb0434f4cae8cf74bd67490a38d";
     md5 = "";
-    md5name = "86c798780b9e1f5921fe4efe651a93cb420623b45aa1fdff57af8c37f116113f-CoinMP-1.7.6.tgz";
+    md5name = "3459fb0ccbdd39342744684338984ac4cc153fb0434f4cae8cf74bd67490a38d-CoinMP-1.8.4.tgz";
   }
   {
     name = "cppunit-1.15.1.tar.gz";
@@ -98,11 +105,11 @@
     md5name = "89c5c6665337f56fd2db36bc3805a5619709d51fb136e51937072f63fcc717a7-cppunit-1.15.1.tar.gz";
   }
   {
-    name = "curl-8.4.0.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/curl-8.4.0.tar.xz";
-    sha256 = "16c62a9c4af0f703d28bda6d7bbf37ba47055ad3414d70dec63e2e6336f2a82d";
+    name = "curl-8.7.1.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/curl-8.7.1.tar.xz";
+    sha256 = "6fea2aac6a4610fbd0400afb0bcddbe7258a64c63f1f68e5855ebc0c659710cd";
     md5 = "";
-    md5name = "16c62a9c4af0f703d28bda6d7bbf37ba47055ad3414d70dec63e2e6336f2a82d-curl-8.4.0.tar.xz";
+    md5name = "6fea2aac6a4610fbd0400afb0bcddbe7258a64c63f1f68e5855ebc0c659710cd-curl-8.7.1.tar.xz";
   }
   {
     name = "libe-book-0.1.3.tar.xz";
@@ -140,11 +147,11 @@
     md5name = "b430435a6e8487888b761dc848b7981626eb814884963ffe25eb26a139301e9a-libetonyek-0.1.10.tar.xz";
   }
   {
-    name = "expat-2.5.0.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/expat-2.5.0.tar.xz";
-    sha256 = "ef2420f0232c087801abf705e89ae65f6257df6b7931d37846a193ef2e8cdcbe";
+    name = "expat-2.6.2.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/expat-2.6.2.tar.xz";
+    sha256 = "ee14b4c5d8908b1bec37ad937607eab183d4d9806a08adee472c3c3121d27364";
     md5 = "";
-    md5name = "ef2420f0232c087801abf705e89ae65f6257df6b7931d37846a193ef2e8cdcbe-expat-2.5.0.tar.xz";
+    md5name = "ee14b4c5d8908b1bec37ad937607eab183d4d9806a08adee472c3c3121d27364-expat-2.6.2.tar.xz";
   }
   {
     name = "Firebird-3.0.7.33374-0.tar.bz2";
@@ -154,11 +161,11 @@
     md5name = "acb85cedafa10ce106b1823fb236b1b3e5d942a5741e8f8435cc8ccfec0afe76-Firebird-3.0.7.33374-0.tar.bz2";
   }
   {
-    name = "fontconfig-2.13.94.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/fontconfig-2.13.94.tar.xz";
-    sha256 = "a5f052cb73fd479ffb7b697980510903b563bbb55b8f7a2b001fcfb94026003c";
+    name = "fontconfig-2.14.2.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/fontconfig-2.14.2.tar.xz";
+    sha256 = "dba695b57bce15023d2ceedef82062c2b925e51f5d4cc4aef736cf13f60a468b";
     md5 = "";
-    md5name = "a5f052cb73fd479ffb7b697980510903b563bbb55b8f7a2b001fcfb94026003c-fontconfig-2.13.94.tar.xz";
+    md5name = "dba695b57bce15023d2ceedef82062c2b925e51f5d4cc4aef736cf13f60a468b-fontconfig-2.14.2.tar.xz";
   }
   {
     name = "crosextrafonts-20130214.tar.gz";
@@ -210,18 +217,102 @@
     md5name = "e7a384790b13c29113e22e596ade9687-LinLibertineG-20120116.zip";
   }
   {
-    name = "source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/edc4d741888bc0d38e32dbaa17149596-source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
-    sha256 = "e7bc9a1fec787a529e49f5a26b93dcdcf41506449dfc70f92cdef6d17eb6fb61";
-    md5 = "edc4d741888bc0d38e32dbaa17149596";
-    md5name = "edc4d741888bc0d38e32dbaa17149596-source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
+    name = "NotoKufiArabic-v2.109.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoKufiArabic-v2.109.zip";
+    sha256 = "1b6880e4b8df09c3b9e246d6084bfd94bf32a0ffff60cf2dcffd3622d0e2d79f";
+    md5 = "";
+    md5name = "1b6880e4b8df09c3b9e246d6084bfd94bf32a0ffff60cf2dcffd3622d0e2d79f-NotoKufiArabic-v2.109.zip";
+  }
+  {
+    name = "NotoSans-v2.012.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSans-v2.012.zip";
+    sha256 = "efef2f66ed2c5e005472cba156bd2afb68063a51bb628c6ee14143edc019d293";
+    md5 = "";
+    md5name = "efef2f66ed2c5e005472cba156bd2afb68063a51bb628c6ee14143edc019d293-NotoSans-v2.012.zip";
+  }
+  {
+    name = "NotoSerif-v2.012.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSerif-v2.012.zip";
+    sha256 = "3d4566a0e51e7fc14528f5a1eecc6f12e5ffbbec6484470d3da48b0d8ead345a";
+    md5 = "";
+    md5name = "3d4566a0e51e7fc14528f5a1eecc6f12e5ffbbec6484470d3da48b0d8ead345a-NotoSerif-v2.012.zip";
+  }
+  {
+    name = "NotoSerifHebrew-v2.004.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSerifHebrew-v2.004.zip";
+    sha256 = "99523f4f21051495f18cbd5169ed0d1e9b395eefe770fece1844a4a7a00c46da";
+    md5 = "";
+    md5name = "99523f4f21051495f18cbd5169ed0d1e9b395eefe770fece1844a4a7a00c46da-NotoSerifHebrew-v2.004.zip";
+  }
+  {
+    name = "NotoSansArabic-v2.010.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSansArabic-v2.010.zip";
+    sha256 = "a5a34ac1ea01d0d71c083f99440ebfb1f64224474a0d88bb7ef0e2f8d9a996d2";
+    md5 = "";
+    md5name = "a5a34ac1ea01d0d71c083f99440ebfb1f64224474a0d88bb7ef0e2f8d9a996d2-NotoSansArabic-v2.010.zip";
+  }
+  {
+    name = "NotoNaskhArabic-v2.019.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoNaskhArabic-v2.019.zip";
+    sha256 = "7a509e10c9c8d21f384a26807ef2f5fbbecec46fdb8626c5441bed6d894edb81";
+    md5 = "";
+    md5name = "7a509e10c9c8d21f384a26807ef2f5fbbecec46fdb8626c5441bed6d894edb81-NotoNaskhArabic-v2.019.zip";
+  }
+  {
+    name = "NotoSansHebrew-v3.001.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSansHebrew-v3.001.zip";
+    sha256 = "df0a71814b4e63644cf40fcc4529111b61266b7a2dafbe95068b29a7520cc3cb";
+    md5 = "";
+    md5name = "df0a71814b4e63644cf40fcc4529111b61266b7a2dafbe95068b29a7520cc3cb-NotoSansHebrew-v3.001.zip";
+  }
+  {
+    name = "NotoSansArmenian-v2.008.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSansArmenian-v2.008.zip";
+    sha256 = "eab89b99e134177ca6a3f9f0412a7cb812aafceb13175d686b4c45cb237f64ac";
+    md5 = "";
+    md5name = "eab89b99e134177ca6a3f9f0412a7cb812aafceb13175d686b4c45cb237f64ac-NotoSansArmenian-v2.008.zip";
+  }
+  {
+    name = "NotoSerifArmenian-v2.008.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSerifArmenian-v2.008.zip";
+    sha256 = "b21c198a4c76ae598a304decefb3b5c2a4c2d4c3ae226728eff359185f291c6f";
+    md5 = "";
+    md5name = "b21c198a4c76ae598a304decefb3b5c2a4c2d4c3ae226728eff359185f291c6f-NotoSerifArmenian-v2.008.zip";
   }
   {
-    name = "noto-fonts-20171024.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/noto-fonts-20171024.tar.gz";
-    sha256 = "29acc15a4c4d6b51201ba5d60f303dfbc2e5acbfdb70413c9ae1ed34fa259994";
+    name = "NotoSansGeorgian-v2.003.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSansGeorgian-v2.003.zip";
+    sha256 = "bd75d1f0b9ef619b5ded0018d6258eeab2f9e976d8f8074bb7890f4e301648bf";
     md5 = "";
-    md5name = "29acc15a4c4d6b51201ba5d60f303dfbc2e5acbfdb70413c9ae1ed34fa259994-noto-fonts-20171024.tar.gz";
+    md5name = "bd75d1f0b9ef619b5ded0018d6258eeab2f9e976d8f8074bb7890f4e301648bf-NotoSansGeorgian-v2.003.zip";
+  }
+  {
+    name = "NotoSerifGeorgian-v2.003.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSerifGeorgian-v2.003.zip";
+    sha256 = "cfb41a264b97d463bab6807a5be937ba4a6ddcfa93d519a21b98b0ba73ca27d4";
+    md5 = "";
+    md5name = "cfb41a264b97d463bab6807a5be937ba4a6ddcfa93d519a21b98b0ba73ca27d4-NotoSerifGeorgian-v2.003.zip";
+  }
+  {
+    name = "NotoSansLao-v2.003.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSansLao-v2.003.zip";
+    sha256 = "5a87c31b1a40ef8147c1e84437e5f0ceba2d4dbbfc0b56a65821ad29870da8c0";
+    md5 = "";
+    md5name = "5a87c31b1a40ef8147c1e84437e5f0ceba2d4dbbfc0b56a65821ad29870da8c0-NotoSansLao-v2.003.zip";
+  }
+  {
+    name = "NotoSerifLao-v2.003.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSerifLao-v2.003.zip";
+    sha256 = "e96a303d3347790b0ef3db274971a989a736ce766ec9ea1bea0e1458568a80b2";
+    md5 = "";
+    md5name = "e96a303d3347790b0ef3db274971a989a736ce766ec9ea1bea0e1458568a80b2-NotoSerifLao-v2.003.zip";
+  }
+  {
+    name = "NotoSansLisu-v2.102.zip";
+    url = "https://dev-www.libreoffice.org/src/NotoSansLisu-v2.102.zip";
+    sha256 = "b12a1ff762680681b7ce4d98dd29a7f54d90f5bcadd10c955afc640a27b3a268";
+    md5 = "";
+    md5name = "b12a1ff762680681b7ce4d98dd29a7f54d90f5bcadd10c955afc640a27b3a268-NotoSansLisu-v2.102.zip";
   }
   {
     name = "culmus-0.133.tar.gz";
@@ -280,6 +371,13 @@
     md5name = "5ee23abd047636c24b2d43c6625dcafc66661d1aca64dec9e0d05df29592624c-freetype-2.13.0.tar.xz";
   }
   {
+    name = "frozen-1.1.1.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/frozen-1.1.1.tar.gz";
+    sha256 = "f7c7075750e8fceeac081e9ef01944f221b36d9725beac8681cbd2838d26be45";
+    md5 = "";
+    md5name = "f7c7075750e8fceeac081e9ef01944f221b36d9725beac8681cbd2838d26be45-frozen-1.1.1.tar.gz";
+  }
+  {
     name = "glm-0.9.9.8.zip";
     url = "https://dev-www.libreoffice.org/src/glm-0.9.9.8.zip";
     sha256 = "6bba5f032bed47c73ad9397f2313b9acbfb56253d0d0576b5873d3dcb25e99ad";
@@ -287,11 +385,11 @@
     md5name = "6bba5f032bed47c73ad9397f2313b9acbfb56253d0d0576b5873d3dcb25e99ad-glm-0.9.9.8.zip";
   }
   {
-    name = "gpgme-1.18.0.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/gpgme-1.18.0.tar.bz2";
-    sha256 = "361d4eae47ce925dba0ea569af40e7b52c645c4ae2e65e5621bf1b6cdd8b0e9e";
+    name = "gpgme-1.23.2.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/gpgme-1.23.2.tar.bz2";
+    sha256 = "9499e8b1f33cccb6815527a1bc16049d35a6198a6c5fae0185f2bd561bce5224";
     md5 = "";
-    md5name = "361d4eae47ce925dba0ea569af40e7b52c645c4ae2e65e5621bf1b6cdd8b0e9e-gpgme-1.18.0.tar.bz2";
+    md5name = "9499e8b1f33cccb6815527a1bc16049d35a6198a6c5fae0185f2bd561bce5224-gpgme-1.23.2.tar.bz2";
   }
   {
     name = "graphite2-minimal-1.3.14.tgz";
@@ -301,11 +399,11 @@
     md5name = "b8e892d8627c41888ff121e921455b9e2d26836978f2359173d19825da62b8fc-graphite2-minimal-1.3.14.tgz";
   }
   {
-    name = "harfbuzz-7.1.0.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/harfbuzz-7.1.0.tar.xz";
-    sha256 = "f135a61cd464c9ed6bc9823764c188f276c3850a8dc904628de2a87966b7077b";
+    name = "harfbuzz-8.2.2.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/harfbuzz-8.2.2.tar.xz";
+    sha256 = "e433ad85fbdf57f680be29479b3f964577379aaf319f557eb76569f0ecbc90f3";
     md5 = "";
-    md5name = "f135a61cd464c9ed6bc9823764c188f276c3850a8dc904628de2a87966b7077b-harfbuzz-7.1.0.tar.xz";
+    md5name = "e433ad85fbdf57f680be29479b3f964577379aaf319f557eb76569f0ecbc90f3-harfbuzz-8.2.2.tar.xz";
   }
   {
     name = "hsqldb_1_8_0.zip";
@@ -329,18 +427,32 @@
     md5name = "5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz";
   }
   {
-    name = "icu4c-72_1-src.tgz";
-    url = "https://dev-www.libreoffice.org/src/icu4c-72_1-src.tgz";
-    sha256 = "a2d2d38217092a7ed56635e34467f92f976b370e20182ad325edea6681a71d68";
+    name = "IAccessible2-1.3+git20231013.3d8c7f0.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/IAccessible2-1.3+git20231013.3d8c7f0.tar.gz";
+    sha256 = "0e279003f5199f80031c6dcd08f79d6f65a0505139160e7df0d09b226bff4023";
+    md5 = "";
+    md5name = "0e279003f5199f80031c6dcd08f79d6f65a0505139160e7df0d09b226bff4023-IAccessible2-1.3+git20231013.3d8c7f0.tar.gz";
+  }
+  {
+    name = "icu4c-73_2-src.tgz";
+    url = "https://dev-www.libreoffice.org/src/icu4c-73_2-src.tgz";
+    sha256 = "818a80712ed3caacd9b652305e01afc7fa167e6f2e94996da44b90c2ab604ce1";
+    md5 = "";
+    md5name = "818a80712ed3caacd9b652305e01afc7fa167e6f2e94996da44b90c2ab604ce1-icu4c-73_2-src.tgz";
+  }
+  {
+    name = "icu4c-73_2-data.zip";
+    url = "https://dev-www.libreoffice.org/src/icu4c-73_2-data.zip";
+    sha256 = "ca1ee076163b438461e484421a7679fc33a64cd0a54f9d4b401893fa1eb42701";
     md5 = "";
-    md5name = "a2d2d38217092a7ed56635e34467f92f976b370e20182ad325edea6681a71d68-icu4c-72_1-src.tgz";
+    md5name = "ca1ee076163b438461e484421a7679fc33a64cd0a54f9d4b401893fa1eb42701-icu4c-73_2-data.zip";
   }
   {
-    name = "icu4c-72_1-data.zip";
-    url = "https://dev-www.libreoffice.org/src/icu4c-72_1-data.zip";
-    sha256 = "ee19f876507d6c23d9e0a2b631096f6b0eaa6fa61728c33a89efdb55e3385dea";
+    name = "Java-WebSocket-1.5.4.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/Java-WebSocket-1.5.4.tar.gz";
+    sha256 = "a6828b35d1f938fee2335945f3d3c563cbbfa58ce7eb0bf72778d0fa7a550720";
     md5 = "";
-    md5name = "ee19f876507d6c23d9e0a2b631096f6b0eaa6fa61728c33a89efdb55e3385dea-icu4c-72_1-data.zip";
+    md5name = "a6828b35d1f938fee2335945f3d3c563cbbfa58ce7eb0bf72778d0fa7a550720-Java-WebSocket-1.5.4.tar.gz";
   }
   {
     name = "flow-engine-0.9.4.zip";
@@ -427,32 +539,32 @@
     md5name = "2fdc3feb6e9deb17adec9bafa3321419aa19f8f4e5dea7bf8486844ca22207bf-libjpeg-turbo-2.1.5.1.tar.gz";
   }
   {
-    name = "language-subtag-registry-2023-05-11.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/language-subtag-registry-2023-05-11.tar.bz2";
-    sha256 = "9042b64cd473bf36073513b474046f13778107b57c2ac47fb2633104120d69da";
+    name = "language-subtag-registry-2024-06-14.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/language-subtag-registry-2024-06-14.tar.bz2";
+    sha256 = "75bc394dd83ddfd62b172a462db1b66bdb5950f40823ed63b8c7db6b71e37e75";
     md5 = "";
-    md5name = "9042b64cd473bf36073513b474046f13778107b57c2ac47fb2633104120d69da-language-subtag-registry-2023-05-11.tar.bz2";
+    md5name = "75bc394dd83ddfd62b172a462db1b66bdb5950f40823ed63b8c7db6b71e37e75-language-subtag-registry-2024-06-14.tar.bz2";
   }
   {
-    name = "lcms2-2.12.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/lcms2-2.12.tar.gz";
-    sha256 = "18663985e864100455ac3e507625c438c3710354d85e5cbb7cd4043e11fe10f5";
+    name = "lcms2-2.16.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/lcms2-2.16.tar.gz";
+    sha256 = "d873d34ad8b9b4cea010631f1a6228d2087475e4dc5e763eb81acc23d9d45a51";
     md5 = "";
-    md5name = "18663985e864100455ac3e507625c438c3710354d85e5cbb7cd4043e11fe10f5-lcms2-2.12.tar.gz";
+    md5name = "d873d34ad8b9b4cea010631f1a6228d2087475e4dc5e763eb81acc23d9d45a51-lcms2-2.16.tar.gz";
   }
   {
-    name = "libassuan-2.5.5.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/libassuan-2.5.5.tar.bz2";
-    sha256 = "8e8c2fcc982f9ca67dcbb1d95e2dc746b1739a4668bc20b3a3c5be632edb34e4";
+    name = "libassuan-2.5.7.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/libassuan-2.5.7.tar.bz2";
+    sha256 = "0103081ffc27838a2e50479153ca105e873d3d65d8a9593282e9c94c7e6afb76";
     md5 = "";
-    md5name = "8e8c2fcc982f9ca67dcbb1d95e2dc746b1739a4668bc20b3a3c5be632edb34e4-libassuan-2.5.5.tar.bz2";
+    md5name = "0103081ffc27838a2e50479153ca105e873d3d65d8a9593282e9c94c7e6afb76-libassuan-2.5.7.tar.bz2";
   }
   {
-    name = "libatomic_ops-7.6.8.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/libatomic_ops-7.6.8.tar.gz";
-    sha256 = "1d6a279edf81767e74d2ad2c9fce09459bc65f12c6525a40b0cb3e53c089f665";
+    name = "libatomic_ops-7.8.0.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/libatomic_ops-7.8.0.tar.gz";
+    sha256 = "15676e7674e11bda5a7e50a73f4d9e7d60452271b8acf6fd39a71fefdf89fa31";
     md5 = "";
-    md5name = "1d6a279edf81767e74d2ad2c9fce09459bc65f12c6525a40b0cb3e53c089f665-libatomic_ops-7.6.8.tar.gz";
+    md5name = "15676e7674e11bda5a7e50a73f4d9e7d60452271b8acf6fd39a71fefdf89fa31-libatomic_ops-7.8.0.tar.gz";
   }
   {
     name = "libeot-0.01.tar.bz2";
@@ -469,25 +581,25 @@
     md5name = "6d77eace20e9ea106c1330e268ede70c9a4a89744ddc25715682754eca3368df-libexttextcat-3.4.6.tar.xz";
   }
   {
-    name = "libffi-3.3.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/libffi-3.3.tar.gz";
-    sha256 = "72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802885dc652056";
+    name = "libffi-3.4.4.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/libffi-3.4.4.tar.gz";
+    sha256 = "d66c56ad259a82cf2a9dfc408b32bf5da52371500b84745f7fb8b645712df676";
     md5 = "";
-    md5name = "72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802885dc652056-libffi-3.3.tar.gz";
+    md5name = "d66c56ad259a82cf2a9dfc408b32bf5da52371500b84745f7fb8b645712df676-libffi-3.4.4.tar.gz";
   }
   {
-    name = "libgpg-error-1.43.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/libgpg-error-1.43.tar.bz2";
-    sha256 = "a9ab83ca7acc442a5bd846a75b920285ff79bdb4e3d34aa382be88ed2c3aebaf";
+    name = "libgpg-error-1.48.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/libgpg-error-1.48.tar.bz2";
+    sha256 = "89ce1ae893e122924b858de84dc4f67aae29ffa610ebf668d5aa539045663d6f";
     md5 = "";
-    md5name = "a9ab83ca7acc442a5bd846a75b920285ff79bdb4e3d34aa382be88ed2c3aebaf-libgpg-error-1.43.tar.bz2";
+    md5name = "89ce1ae893e122924b858de84dc4f67aae29ffa610ebf668d5aa539045663d6f-libgpg-error-1.48.tar.bz2";
   }
   {
-    name = "liblangtag-0.6.3.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/liblangtag-0.6.3.tar.bz2";
-    sha256 = "1f12a20a02ec3a8d22e54dedb8b683a43c9c160bda1ba337bf1060607ae733bd";
+    name = "liblangtag-0.6.7.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/liblangtag-0.6.7.tar.bz2";
+    sha256 = "5ed6bcd4ae3f3c05c912e62f216cd1a44123846147f729a49fb5668da51e030e";
     md5 = "";
-    md5name = "1f12a20a02ec3a8d22e54dedb8b683a43c9c160bda1ba337bf1060607ae733bd-liblangtag-0.6.3.tar.bz2";
+    md5name = "5ed6bcd4ae3f3c05c912e62f216cd1a44123846147f729a49fb5668da51e030e-liblangtag-0.6.7.tar.bz2";
   }
   {
     name = "libnumbertext-1.0.11.tar.xz";
@@ -497,11 +609,11 @@
     md5name = "5dcb4db3b2340f81f601ce86d8d76b69e34d70f84f804192c901e4b7f84d5fb0-libnumbertext-1.0.11.tar.xz";
   }
   {
-    name = "ltm-1.2.1.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/ltm-1.2.1.tar.xz";
-    sha256 = "986025d7b374276fee2e30e99f3649e4ac0db8a02257a37ee10eae72abed0d1f";
+    name = "ltm-1.3.0.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/ltm-1.3.0.tar.xz";
+    sha256 = "296272d93435991308eb73607600c034b558807a07e829e751142e65ccfa9d08";
     md5 = "";
-    md5name = "986025d7b374276fee2e30e99f3649e4ac0db8a02257a37ee10eae72abed0d1f-ltm-1.2.1.tar.xz";
+    md5name = "296272d93435991308eb73607600c034b558807a07e829e751142e65ccfa9d08-ltm-1.3.0.tar.xz";
   }
   {
     name = "libwebp-1.3.2.tar.gz";
@@ -511,25 +623,25 @@
     md5name = "2a499607df669e40258e53d0ade8035ba4ec0175244869d1025d460562aa09b4-libwebp-1.3.2.tar.gz";
   }
   {
-    name = "xmlsec1-1.2.37.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/xmlsec1-1.2.37.tar.gz";
-    sha256 = "5f8dfbcb6d1e56bddd0b5ec2e00a3d0ca5342a9f57c24dffde5c796b2be2871c";
+    name = "xmlsec1-1.3.2.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/xmlsec1-1.3.2.tar.gz";
+    sha256 = "4003c56b3d356d21b1db7775318540fad6bfedaf5f117e8f7c010811219be3cf";
     md5 = "";
-    md5name = "5f8dfbcb6d1e56bddd0b5ec2e00a3d0ca5342a9f57c24dffde5c796b2be2871c-xmlsec1-1.2.37.tar.gz";
+    md5name = "4003c56b3d356d21b1db7775318540fad6bfedaf5f117e8f7c010811219be3cf-xmlsec1-1.3.2.tar.gz";
   }
   {
-    name = "libxml2-2.11.4.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/libxml2-2.11.4.tar.xz";
-    sha256 = "737e1d7f8ab3f139729ca13a2494fd17bf30ddb4b7a427cf336252cab57f57f7";
+    name = "libxml2-2.12.8.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libxml2-2.12.8.tar.xz";
+    sha256 = "43ad877b018bc63deb2468d71f95219c2fac196876ef36d1bee51d226173ec93";
     md5 = "";
-    md5name = "737e1d7f8ab3f139729ca13a2494fd17bf30ddb4b7a427cf336252cab57f57f7-libxml2-2.11.4.tar.xz";
+    md5name = "43ad877b018bc63deb2468d71f95219c2fac196876ef36d1bee51d226173ec93-libxml2-2.12.8.tar.xz";
   }
   {
-    name = "libxslt-1.1.35.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/libxslt-1.1.35.tar.xz";
-    sha256 = "8247f33e9a872c6ac859aa45018bc4c4d00b97e2feac9eebc10c93ce1f34dd79";
+    name = "libxslt-1.1.39.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libxslt-1.1.39.tar.xz";
+    sha256 = "2a20ad621148339b0759c4d4e96719362dee64c9a096dbba625ba053846349f0";
     md5 = "";
-    md5name = "8247f33e9a872c6ac859aa45018bc4c4d00b97e2feac9eebc10c93ce1f34dd79-libxslt-1.1.35.tar.xz";
+    md5name = "2a20ad621148339b0759c4d4e96719362dee64c9a096dbba625ba053846349f0-libxslt-1.1.39.tar.xz";
   }
   {
     name = "lp_solve_5.5.tar.gz";
@@ -539,25 +651,25 @@
     md5name = "26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz";
   }
   {
-    name = "lxml-4.1.1.tgz";
-    url = "https://dev-www.libreoffice.org/src/lxml-4.1.1.tgz";
-    sha256 = "940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e";
+    name = "lxml-4.9.2.tgz";
+    url = "https://dev-www.libreoffice.org/src/lxml-4.9.2.tgz";
+    sha256 = "2455cfaeb7ac70338b3257f41e21f0724f4b5b0c0e7702da67ee6c3640835b67";
     md5 = "";
-    md5name = "940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e-lxml-4.1.1.tgz";
+    md5name = "2455cfaeb7ac70338b3257f41e21f0724f4b5b0c0e7702da67ee6c3640835b67-lxml-4.9.2.tgz";
   }
   {
-    name = "mariadb-connector-c-3.1.8-src.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/mariadb-connector-c-3.1.8-src.tar.gz";
-    sha256 = "431434d3926f4bcce2e5c97240609983f60d7ff50df5a72083934759bb863f7b";
+    name = "mariadb-connector-c-3.3.8-src.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/mariadb-connector-c-3.3.8-src.tar.gz";
+    sha256 = "f9f076b4aa9fb22cc94b24f82c80f9ef063805ecd6533a2eb5d5060cf93833e8";
     md5 = "";
-    md5name = "431434d3926f4bcce2e5c97240609983f60d7ff50df5a72083934759bb863f7b-mariadb-connector-c-3.1.8-src.tar.gz";
+    md5name = "f9f076b4aa9fb22cc94b24f82c80f9ef063805ecd6533a2eb5d5060cf93833e8-mariadb-connector-c-3.3.8-src.tar.gz";
   }
   {
-    name = "mdds-2.0.3.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/mdds-2.0.3.tar.bz2";
-    sha256 = "9771fe42e133443c13ca187253763e17c8bc96a1a02aec9e1e8893367ffa9ce5";
+    name = "mdds-2.1.1.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/mdds-2.1.1.tar.xz";
+    sha256 = "1483d90cefb8aa4563c4d0a85cb7b243aa95217d235d422e9ca6722fd5b97e56";
     md5 = "";
-    md5name = "9771fe42e133443c13ca187253763e17c8bc96a1a02aec9e1e8893367ffa9ce5-mdds-2.0.3.tar.bz2";
+    md5name = "1483d90cefb8aa4563c4d0a85cb7b243aa95217d235d422e9ca6722fd5b97e56-mdds-2.1.1.tar.xz";
   }
   {
     name = "mDNSResponder-878.200.35.tar.gz";
@@ -588,11 +700,11 @@
     md5name = "19279f70707bbe5ffa619f2dc319f888cec0c4a8d339dc0a21330517bd6f521d-mythes-1.2.5.tar.xz";
   }
   {
-    name = "nss-3.90-with-nspr-4.35.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/nss-3.90-with-nspr-4.35.tar.gz";
-    sha256 = "f78ab1d911cae8bbc94758fb3bd0f731df4087423a4ff5db271ba65381f6b739";
+    name = "nss-3.99-with-nspr-4.35.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/nss-3.99-with-nspr-4.35.tar.gz";
+    sha256 = "5f29fea64b3234b33a615b6df40469e239a4168ac0909106bd00e6490b274c31";
     md5 = "";
-    md5name = "f78ab1d911cae8bbc94758fb3bd0f731df4087423a4ff5db271ba65381f6b739-nss-3.90-with-nspr-4.35.tar.gz";
+    md5name = "5f29fea64b3234b33a615b6df40469e239a4168ac0909106bd00e6490b274c31-nss-3.99-with-nspr-4.35.tar.gz";
   }
   {
     name = "libodfgen-0.1.8.tar.xz";
@@ -616,25 +728,32 @@
     md5name = "8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar";
   }
   {
-    name = "openldap-2.4.59.tgz";
-    url = "https://dev-www.libreoffice.org/src/openldap-2.4.59.tgz";
-    sha256 = "99f37d6747d88206c470067eda624d5e48c1011e943ec0ab217bae8712e22f34";
+    name = "onlineupdate-c003be8b9727672e7d30972983b375f4c200233f-2.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/onlineupdate-c003be8b9727672e7d30972983b375f4c200233f-2.tar.xz";
+    sha256 = "37206cf981e8409d048b59ac5839621ea107ff49af72beb9d7769a2f41da8d90";
     md5 = "";
-    md5name = "99f37d6747d88206c470067eda624d5e48c1011e943ec0ab217bae8712e22f34-openldap-2.4.59.tgz";
+    md5name = "37206cf981e8409d048b59ac5839621ea107ff49af72beb9d7769a2f41da8d90-onlineupdate-c003be8b9727672e7d30972983b375f4c200233f-2.tar.xz";
   }
   {
-    name = "openssl-3.0.10.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/openssl-3.0.10.tar.gz";
-    sha256 = "1761d4f5b13a1028b9b6f3d4b8e17feb0cedc9370f6afe61d7193d2cdce83323";
+    name = "openldap-2.6.7.tgz";
+    url = "https://dev-www.libreoffice.org/src/openldap-2.6.7.tgz";
+    sha256 = "cd775f625c944ed78a3da18a03b03b08eea73c8aabc97b41bb336e9a10954930";
     md5 = "";
-    md5name = "1761d4f5b13a1028b9b6f3d4b8e17feb0cedc9370f6afe61d7193d2cdce83323-openssl-3.0.10.tar.gz";
+    md5name = "cd775f625c944ed78a3da18a03b03b08eea73c8aabc97b41bb336e9a10954930-openldap-2.6.7.tgz";
   }
   {
-    name = "liborcus-0.17.2.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/liborcus-0.17.2.tar.bz2";
-    sha256 = "2a86c405a5929f749b27637509596421d46805753364ab258b035fd01fbde143";
+    name = "openssl-3.0.14.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/openssl-3.0.14.tar.gz";
+    sha256 = "eeca035d4dd4e84fc25846d952da6297484afa0650a6f84c682e39df3a4123ca";
     md5 = "";
-    md5name = "2a86c405a5929f749b27637509596421d46805753364ab258b035fd01fbde143-liborcus-0.17.2.tar.bz2";
+    md5name = "eeca035d4dd4e84fc25846d952da6297484afa0650a6f84c682e39df3a4123ca-openssl-3.0.14.tar.gz";
+  }
+  {
+    name = "liborcus-0.19.2.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/liborcus-0.19.2.tar.xz";
+    sha256 = "69ed26a00d4aaa7688e62a6e003cbc81928521a45e96605e53365aa499719e39";
+    md5 = "";
+    md5name = "69ed26a00d4aaa7688e62a6e003cbc81928521a45e96605e53365aa499719e39-liborcus-0.19.2.tar.xz";
   }
   {
     name = "libpagemaker-0.0.4.tar.xz";
@@ -644,11 +763,11 @@
     md5name = "66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d-libpagemaker-0.0.4.tar.xz";
   }
   {
-    name = "pdfium-5778.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/pdfium-5778.tar.bz2";
-    sha256 = "b1052ff24e9ffb11af017c444bb0f6ad508d64c9a0fb88cacb0e8210245dde06";
+    name = "pdfium-6179.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/pdfium-6179.tar.bz2";
+    sha256 = "4d3f08fe0e2fda86246832085426616826dcca0912202874428bfbc24d13d95c";
     md5 = "";
-    md5name = "b1052ff24e9ffb11af017c444bb0f6ad508d64c9a0fb88cacb0e8210245dde06-pdfium-5778.tar.bz2";
+    md5name = "4d3f08fe0e2fda86246832085426616826dcca0912202874428bfbc24d13d95c-pdfium-6179.tar.bz2";
   }
   {
     name = "pixman-0.42.2.tar.gz";
@@ -658,18 +777,18 @@
     md5name = "ea1480efada2fd948bc75366f7c349e1c96d3297d09a3fe62626e38e234a625e-pixman-0.42.2.tar.gz";
   }
   {
-    name = "libpng-1.6.39.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/libpng-1.6.39.tar.xz";
-    sha256 = "1f4696ce70b4ee5f85f1e1623dc1229b210029fa4b7aee573df3e2ba7b036937";
+    name = "libpng-1.6.43.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libpng-1.6.43.tar.xz";
+    sha256 = "6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c";
     md5 = "";
-    md5name = "1f4696ce70b4ee5f85f1e1623dc1229b210029fa4b7aee573df3e2ba7b036937-libpng-1.6.39.tar.xz";
+    md5name = "6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c-libpng-1.6.43.tar.xz";
   }
   {
-    name = "tiff-4.5.1.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/tiff-4.5.1.tar.xz";
-    sha256 = "3c080867114c26edab3129644a63b708028a90514b7fe3126e38e11d24f9f88a";
+    name = "tiff-4.6.0.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/tiff-4.6.0.tar.xz";
+    sha256 = "e178649607d1e22b51cf361dd20a3753f244f022eefab1f2f218fc62ebaf87d2";
     md5 = "";
-    md5name = "3c080867114c26edab3129644a63b708028a90514b7fe3126e38e11d24f9f88a-tiff-4.5.1.tar.xz";
+    md5name = "e178649607d1e22b51cf361dd20a3753f244f022eefab1f2f218fc62ebaf87d2-tiff-4.6.0.tar.xz";
   }
   {
     name = "poppler-23.09.0.tar.xz";
@@ -686,18 +805,18 @@
     md5name = "c835b640a40ce357e1b83666aabd95edffa24ddddd49b8daff63adb851cdab74-poppler-data-0.4.12.tar.gz";
   }
   {
-    name = "postgresql-13.10.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/postgresql-13.10.tar.bz2";
-    sha256 = "5bbcf5a56d85c44f3a8b058fb46862ff49cbc91834d07e295d02e6de3c216df2";
+    name = "postgresql-13.14.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/postgresql-13.14.tar.bz2";
+    sha256 = "b8df078551898960bd500dc5d38a177e9905376df81fe7f2b660a1407fa6a5ed";
     md5 = "";
-    md5name = "5bbcf5a56d85c44f3a8b058fb46862ff49cbc91834d07e295d02e6de3c216df2-postgresql-13.10.tar.bz2";
+    md5name = "b8df078551898960bd500dc5d38a177e9905376df81fe7f2b660a1407fa6a5ed-postgresql-13.14.tar.bz2";
   }
   {
-    name = "Python-3.8.18.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/Python-3.8.18.tar.xz";
-    sha256 = "3ffb71cd349a326ba7b2fadc7e7df86ba577dd9c4917e52a8401adbda7405e3f";
+    name = "Python-3.8.19.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/Python-3.8.19.tar.xz";
+    sha256 = "d2807ac69f69b84fd46a0b93bbd02a4fa48d3e70f4b2835ff0f72a2885040076";
     md5 = "";
-    md5name = "3ffb71cd349a326ba7b2fadc7e7df86ba577dd9c4917e52a8401adbda7405e3f-Python-3.8.18.tar.xz";
+    md5name = "d2807ac69f69b84fd46a0b93bbd02a4fa48d3e70f4b2835ff0f72a2885040076-Python-3.8.19.tar.xz";
   }
   {
     name = "libqxp-0.0.2.tar.xz";
@@ -742,11 +861,11 @@
     md5name = "798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip";
   }
   {
-    name = "skia-m103-b301ff025004c9cd82816c86c547588e6c24b466.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/skia-m103-b301ff025004c9cd82816c86c547588e6c24b466.tar.xz";
-    sha256 = "c094a6247e44104beaaa0d00c825beb6baf1a8e532dc22214747495317a65bd9";
+    name = "skia-m116-2ddcf183eb260f63698aa74d1bb380f247ad7ccd.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/skia-m116-2ddcf183eb260f63698aa74d1bb380f247ad7ccd.tar.xz";
+    sha256 = "2223ebce534458a37826e8fe4f24635b0712cde7ed1bd3208f089f6fdd796e01";
     md5 = "";
-    md5name = "c094a6247e44104beaaa0d00c825beb6baf1a8e532dc22214747495317a65bd9-skia-m103-b301ff025004c9cd82816c86c547588e6c24b466.tar.xz";
+    md5name = "2223ebce534458a37826e8fe4f24635b0712cde7ed1bd3208f089f6fdd796e01-skia-m116-2ddcf183eb260f63698aa74d1bb380f247ad7ccd.tar.xz";
   }
   {
     name = "libstaroffice-0.0.7.tar.xz";
@@ -791,11 +910,11 @@
     md5name = "b55fda9440d1e070630eb2487d8b8697cf412c214a27caee9df69cec7c004de3-libwpg-0.3.4.tar.xz";
   }
   {
-    name = "libwps-0.4.12.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/libwps-0.4.12.tar.xz";
-    sha256 = "e21afb52a06d03b774c5a8c72679687ab64891b91ce0c3bdf2d3e97231534edb";
+    name = "libwps-0.4.14.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/libwps-0.4.14.tar.xz";
+    sha256 = "365b968e270e85a8469c6b160aa6af5619a4e6c995dbb04c1ecc1b4dd13e80de";
     md5 = "";
-    md5name = "e21afb52a06d03b774c5a8c72679687ab64891b91ce0c3bdf2d3e97231534edb-libwps-0.4.12.tar.xz";
+    md5name = "365b968e270e85a8469c6b160aa6af5619a4e6c995dbb04c1ecc1b4dd13e80de-libwps-0.4.14.tar.xz";
   }
   {
     name = "xsltml_2.1.2.zip";
@@ -805,11 +924,11 @@
     md5name = "a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip";
   }
   {
-    name = "zlib-1.2.13.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/zlib-1.2.13.tar.xz";
-    sha256 = "d14c38e313afc35a9a8760dadf26042f51ea0f5d154b0630a31da0540107fb98";
+    name = "zlib-1.3.1.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/zlib-1.3.1.tar.xz";
+    sha256 = "38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32";
     md5 = "";
-    md5name = "d14c38e313afc35a9a8760dadf26042f51ea0f5d154b0630a31da0540107fb98-zlib-1.2.13.tar.xz";
+    md5name = "38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32-zlib-1.3.1.tar.xz";
   }
   {
     name = "libzmf-0.0.2.tar.xz";
@@ -819,10 +938,17 @@
     md5name = "27051a30cb057fdb5d5de65a1f165c7153dc76e27fe62251cbb86639eb2caf22-libzmf-0.0.2.tar.xz";
   }
   {
-    name = "zxing-cpp-1.4.0.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/zxing-cpp-1.4.0.tar.gz";
-    sha256 = "126767bb56f8a1f25ae84d233db2e9b9be50d71f5776092d0e170ca0f0ed1862";
+    name = "zxcvbn-c-2.5.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/zxcvbn-c-2.5.tar.gz";
+    sha256 = "77d6c6ecb35952a8d8ce7f736b7a2bf466275c48210e309b73782d6b7e84dffd";
+    md5 = "";
+    md5name = "77d6c6ecb35952a8d8ce7f736b7a2bf466275c48210e309b73782d6b7e84dffd-zxcvbn-c-2.5.tar.gz";
+  }
+  {
+    name = "zxing-cpp-2.1.0.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/zxing-cpp-2.1.0.tar.gz";
+    sha256 = "6d54e403592ec7a143791c6526c1baafddf4c0897bb49b1af72b70a0f0c4a3fe";
     md5 = "";
-    md5name = "126767bb56f8a1f25ae84d233db2e9b9be50d71f5776092d0e170ca0f0ed1862-zxing-cpp-1.4.0.tar.gz";
+    md5name = "6d54e403592ec7a143791c6526c1baafddf4c0897bb49b1af72b70a0f0c4a3fe-zxing-cpp-2.1.0.tar.gz";
   }
 ]
diff --git a/pkgs/applications/office/libreoffice/src-still/help.nix b/pkgs/applications/office/libreoffice/src-still/help.nix
index 79b8c7d4d02f0..0f9f549052708 100644
--- a/pkgs/applications/office/libreoffice/src-still/help.nix
+++ b/pkgs/applications/office/libreoffice/src-still/help.nix
@@ -1,4 +1,5 @@
-{
-  sha256 = "1x9i5vihsza6gkib14nmfywk0qb4qa76m1z9333z9c3faj6wp4d3";
-  url = "https://download.documentfoundation.org/libreoffice/src/7.5.9/libreoffice-help-7.5.9.2.tar.xz";
+{ fetchurl, ... }:
+fetchurl {
+  sha256 = "090pi8dnj5izpvng94hgmjid14n7xvy3rlqqvang3pqdn35xnpsl";
+  url = "https://download.documentfoundation.org/libreoffice/src/24.2.5/libreoffice-help-24.2.5.2.tar.xz";
 }
diff --git a/pkgs/applications/office/libreoffice/src-still/main.nix b/pkgs/applications/office/libreoffice/src-still/main.nix
index a698161e593e9..69376e497a117 100644
--- a/pkgs/applications/office/libreoffice/src-still/main.nix
+++ b/pkgs/applications/office/libreoffice/src-still/main.nix
@@ -1,4 +1,5 @@
-{
-  sha256 = "1ml826nngwnk96v9ghxdlqhab2f3ml1mxszxqj20j3cl3h9plaip";
-  url = "https://download.documentfoundation.org/libreoffice/src/7.5.9/libreoffice-7.5.9.2.tar.xz";
+{ fetchurl, ... }:
+fetchurl {
+  sha256 = "03halzc9w4z8pfs8krpswp2qzrqq9rhnmms8v8ny88am87vy85lw";
+  url = "https://download.documentfoundation.org/libreoffice/src/24.2.5/libreoffice-24.2.5.2.tar.xz";
 }
diff --git a/pkgs/applications/office/libreoffice/src-still/translations.nix b/pkgs/applications/office/libreoffice/src-still/translations.nix
index 9a5f10daad378..b969430601824 100644
--- a/pkgs/applications/office/libreoffice/src-still/translations.nix
+++ b/pkgs/applications/office/libreoffice/src-still/translations.nix
@@ -1,4 +1,5 @@
-{
-  sha256 = "1wmg33cijz32mvg8dhzjibbjjpsgh7s257cn9ckr6k9kg80zrfv7";
-  url = "https://download.documentfoundation.org/libreoffice/src/7.5.9/libreoffice-translations-7.5.9.2.tar.xz";
+{ fetchurl, ... }:
+fetchurl {
+  sha256 = "0fri41y59zhm8lq0kh6hvf5rpdjdqx0lg1sl40mhh1d6lf1izc1w";
+  url = "https://download.documentfoundation.org/libreoffice/src/24.2.5/libreoffice-translations-24.2.5.2.tar.xz";
 }
diff --git a/pkgs/applications/office/libreoffice/src-still/version.nix b/pkgs/applications/office/libreoffice/src-still/version.nix
index 448814fbcee17..ede95eca68ce5 100644
--- a/pkgs/applications/office/libreoffice/src-still/version.nix
+++ b/pkgs/applications/office/libreoffice/src-still/version.nix
@@ -1 +1 @@
-"7.5.9.2"
+"24.2.5.2"
diff --git a/pkgs/applications/office/libreoffice/update.sh b/pkgs/applications/office/libreoffice/update.sh
index a04e668e8188f..9f7a580ad56e8 100755
--- a/pkgs/applications/office/libreoffice/update.sh
+++ b/pkgs/applications/office/libreoffice/update.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -p python3 pup curl jq nix
+#!nix-shell -i bash -p python3 pup curl jq nix nix-prefetch-git
 
 set -euo pipefail
 echoerr() { echo "$@" 1>&2; }
@@ -14,6 +14,8 @@ if [[ $variant == fresh ]]; then
     head_tail=head
 elif [[ $variant == still ]]; then
     head_tail=tail
+elif [[ $variant == collabora ]]; then
+    true
 else
     echoerr got unknown variant $variant
     exit 3
@@ -26,49 +28,93 @@ shift
 mkdir -p "$(dirname $fname)/src-$variant"
 cd "$(dirname $fname)/src-$variant"
 
-# The pup command prints both fresh and still versions one after another, and
-# we use either head -1 or tail -1 to get the right version, per the if elif
-# above.
-version_major="$(curl --silent https://www.libreoffice.org/download/download-libreoffice/ |\
-    pup '.dl_version_number text{}' | $head_tail -1)"
-echoerr got from website ${variant}_version $version_major
-baseurl=https://download.documentfoundation.org/libreoffice/src/$version_major
-tarballs=($(curl --silent $baseurl/ |\
-    pup 'table json{}' |\
-    jq --raw-output '.. | .href? | strings' |\
-    grep "$version_major.*.tar.xz$"))
+case $variant in
+(fresh|still)
+    # The pup command prints both fresh and still versions one after another, and
+    # we use either head -1 or tail -1 to get the right version, per the if elif
+    # above.
+    version_major="$(curl --silent https://www.libreoffice.org/download/download-libreoffice/ |\
+        pup '.dl_version_number text{}' | $head_tail -1)"
+    echoerr got from website ${variant}_version $version_major
+    baseurl=https://download.documentfoundation.org/libreoffice/src/$version_major
+    tarballs=($(curl --silent $baseurl/ |\
+        pup 'table json{}' |\
+        jq --raw-output '.. | .href? | strings' |\
+        grep "$version_major.*.tar.xz$"))
 
-full_version="$(echo ${tarballs[0]} | sed -e 's/^libreoffice-//' -e 's/.tar.xz$//')"
-echoerr full version is $full_version
-echo \"$full_version\" > version.nix
+    full_version="$(echo ${tarballs[0]} | sed -e 's/^libreoffice-//' -e 's/.tar.xz$//')"
+    echoerr full version is $full_version
+    echo \"$full_version\" > version.nix
 
-for t in help translations; do
-    echo "{" > $t.nix
-    echo "  sha256 = "\"$(nix-prefetch-url $baseurl/libreoffice-$t-$full_version.tar.xz)'";' >> $t.nix
-    echo "  url = "\"$baseurl/libreoffice-$t-$full_version.tar.xz'";' >> $t.nix
-    echo "}" >> $t.nix
-done
+    for t in help translations; do
+        echo "{ fetchurl, ... }:" > $t.nix
+        echo "fetchurl {" >> $t.nix
+        echo "  sha256 = "\"$(nix-prefetch-url $baseurl/libreoffice-$t-$full_version.tar.xz)'";' >> $t.nix
+        echo "  url = "\"$baseurl/libreoffice-$t-$full_version.tar.xz'";' >> $t.nix
+        echo "}" >> $t.nix
+    done
 
-# Out of loop nix-prefetch-url, because there is no $t, and we want the output
-# path as well, to get the download.lst file from there afterwards.
-main_path_hash=($(nix-prefetch-url --print-path $baseurl/libreoffice-$full_version.tar.xz))
-echo "{" > main.nix
-echo "  sha256 = "\"${main_path_hash[0]}'";' >> main.nix
-echo "  url = "\"$baseurl/libreoffice-$full_version.tar.xz'";' >> main.nix
-echo "}" >> main.nix
-echoerr got filename ${main_path_hash[1]}
+    # Out of loop nix-prefetch-url, because there is no $t, and we want the output
+    # path as well, to get the download.lst file from there afterwards.
+    main_path_hash=($(nix-prefetch-url --print-path $baseurl/libreoffice-$full_version.tar.xz))
+    echo "{ fetchurl, ... }:" > main.nix
+    echo "fetchurl {" >> main.nix
+    echo "  sha256 = "\"${main_path_hash[0]}'";' >> main.nix
+    echo "  url = "\"$baseurl/libreoffice-$full_version.tar.xz'";' >> main.nix
+    echo "}" >> main.nix
+    echoerr got filename ${main_path_hash[1]}
+
+    # Environment variable required by ../generate-libreoffice-srcs.py
+    export downloadList=/tmp/nixpkgs-libreoffice-update-download-$full_version.lst
+    # Need to extract the file only if it doesn't exist, otherwise spare time be
+    # skipping this.
+    if [[ ! -f "$downloadList" ]]; then
+        tar --extract \
+            --file=${main_path_hash[1]} \
+            libreoffice-$full_version/download.lst \
+            -O > $downloadList
+    else
+        echoerr relying on previously downloaded downloadList file
+    fi
+    ;;
+
+(collabora)
+    all_tags=$(git ls-remote --tags --sort -v:refname https://gerrit.libreoffice.org/core)
+    rev=$(grep --perl-regexp --only-matching --max-count=1 \
+        '\Krefs/tags/cp-\d+\.\d+\.\d+-\d+$' <<< "$all_tags")
+    full_version=${rev#refs/tags/cp-}
+    echoerr full version is $full_version
+    echo \"$full_version\" > version.nix
+
+    # The full checkout including the submodules is too big for Hydra, so we fetch
+    # submodules separately.
+    declare -A dirnames=([help]=helpcontent2 [translations]=translations)
+    for t in help translations; do
+        sub_rev=$(curl --silent "https://git.libreoffice.org/core/+/$rev/${dirnames[$t]}" |\
+            pup '.gitlink-detail text{}' |\
+            sed -n 's/^Submodule link to \([0-9a-f]\{40\}\) of .*/\1/p')
+        echoerr got rev $sub_rev for $t
+        prefetch_output=$(nix-prefetch-git "https://gerrit.libreoffice.org/$t" --rev "$sub_rev")
+        echo "{ fetchgit, ... }:" > $t.nix
+        echo "fetchgit {" >> $t.nix
+        echo "  url = \"$(jq -r '.url' <<< "$prefetch_output")\";" >> $t.nix
+        echo "  rev = \"$rev\";" >> $t.nix
+        echo "  hash = \"$(jq -r '.hash' <<< "$prefetch_output")\";" >> $t.nix
+        echo "}"
+    done
+
+    local prefetch_output=$(nix-prefetch-git "https://gerrit.libreoffice.org/core" --rev "$rev")
+    echo "{ fetchgit, ... }:" > main.nix
+    echo "fetchgit {" >> main.nix
+    echo "  url = \"$(jq -r '.url' <<< "$prefetch_output")\";" >> main.nix
+    echo "  rev = \"$rev\";" >> main.nix
+    echo "  hash = \"$(jq -r '.hash' <<< "$prefetch_output")\";" >> main.nix
+    echo "  fetchSubmodules = false;" >> main.nix
+    echo "}" >> main.nix
+
+    # Environment variable required by ../generate-libreoffice-srcs.py
+    export downloadList=$(jq -r '.path' <<< "$prefetch_output")/download.lst
+esac
 
-# Environment variable required by ../generate-libreoffice-srcs.py
-export downloadList=/tmp/nixpkgs-libreoffice-update-download-$full_version.lst
-# Need to extract the file only if it doesn't exist, otherwise spare time be
-# skipping this.
-if [[ ! -f "$downloadList" ]]; then
-    tar --extract \
-        --file=${main_path_hash[1]} \
-        libreoffice-$full_version/download.lst \
-        -O > $downloadList
-else
-    echoerr relying on previously downloaded downloadList file
-fi
 cd ..
 python3 ./generate-libreoffice-srcs.py > src-$variant/deps.nix
diff --git a/pkgs/applications/office/libreoffice/wrapper.nix b/pkgs/applications/office/libreoffice/wrapper.nix
index 2f3927146f801..d2e62f8e5c74c 100644
--- a/pkgs/applications/office/libreoffice/wrapper.nix
+++ b/pkgs/applications/office/libreoffice/wrapper.nix
@@ -5,8 +5,7 @@
 , makeWrapper
 , xorg # for lndir
 , runCommand
-, substituteAll
-# For Emulating wrapGAppsHook
+# For Emulating wrapGAppsHook3
 , gsettings-desktop-schemas
 , hicolor-icon-theme
 , dconf
@@ -50,9 +49,13 @@ let
     # 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
+          HU_DIR="$PROFILE/share/hunspell"
+          HY_DIR="$PROFILE/share/hyphen"
+          if [ -d "$HU_DIR" ]; then
+              export DICPATH=$DICPATH''${DICPATH:+:}$HU_DIR
+          fi
+          if [ -d "$HY_DIR" ]; then
+              export DICPATH=$DICPATH''${DICPATH:+:}$HY_DIR
           fi
       done
     '')
diff --git a/pkgs/applications/office/mendeley/default.nix b/pkgs/applications/office/mendeley/default.nix
index c8ea46d0978e6..73dff5c7c5b64 100644
--- a/pkgs/applications/office/mendeley/default.nix
+++ b/pkgs/applications/office/mendeley/default.nix
@@ -7,13 +7,13 @@
 
 let
   pname = "mendeley";
-  version = "2.111.0";
+  version = "2.120.0";
 
   executableName = "${pname}-reference-manager";
 
   src = fetchurl {
     url = "https://static.mendeley.com/bin/desktop/mendeley-reference-manager-${version}-x86_64.AppImage";
-    hash = "sha256-tN76RKHETTMkJ239I6+a36RPTuWqYlCSs+tEP+BcB+M=";
+    hash = "sha256-yKHrTcIiNhsLMfwNQNSLE2mAQLsDFxhTYdper3a8oM8=";
   };
 
   appimageContents = appimageTools.extractType2 {
@@ -34,11 +34,11 @@ in appimageTools.wrapType2 {
 
   meta = with lib; {
     homepage = "https://www.mendeley.com";
-    description = "A reference manager and academic social network";
+    description = "Reference manager and academic social network";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
-    maintainers  = with maintainers; [ dtzWill atila ];
+    maintainers  = with maintainers; [ atila ];
     mainProgram = "mendeley-reference-manager";
   };
 
diff --git a/pkgs/applications/office/micropad/default.nix b/pkgs/applications/office/micropad/default.nix
index c50e14015f3be..46c318ffbd11f 100644
--- a/pkgs/applications/office/micropad/default.nix
+++ b/pkgs/applications/office/micropad/default.nix
@@ -2,100 +2,88 @@
 , stdenv
 , fetchFromGitHub
 , fetchYarnDeps
+, yarnBuildHook
 , fetchzip
 , makeWrapper
 , makeDesktopItem
-, mkYarnPackage
 , electron
 , desktopToDarwinBundle
 , copyDesktopItems
 }:
-let
-  executableName = "micropad";
-in
-  mkYarnPackage rec {
-    pname = "micropad";
-    version = "4.5.1";
 
-    src = fetchFromGitHub {
-      owner = "MicroPad";
-      repo = "Micropad-Electron";
-      rev = "v${version}";
-      hash = "sha256-z+g+FwmoX4Qqf+v4BVLCtfrXwGiAUFlPLQQhp2CMhLU=";
-    };
+stdenv.mkDerivation (finalAttrs: {
+  pname = "micropad";
+  version = "4.5.1";
 
-    micropad-core = fetchzip {
-      url = "https://github.com/MicroPad/MicroPad-Core/releases/download/v${version}/micropad.tar.xz";
-      hash = "sha256-y13PVA/AKKsc5q7NDwZFasb7fOo+56IW8qbTbsm2WWc=";
-    };
+  src = fetchFromGitHub {
+    owner = "MicroPad";
+    repo = "Micropad-Electron";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-z+g+FwmoX4Qqf+v4BVLCtfrXwGiAUFlPLQQhp2CMhLU=";
+  };
 
-    packageJSON = ./package.json;
+  # This project can't be built from source currently, because Nixpkgs lacks
+  # ecosystem for https://bun.sh
+  micropad-core = fetchzip {
+    url = "https://github.com/MicroPad/MicroPad-Core/releases/download/v${finalAttrs.version}/micropad.tar.xz";
+    hash = "sha256-y13PVA/AKKsc5q7NDwZFasb7fOo+56IW8qbTbsm2WWc=";
+  };
 
-    offlineCache = fetchYarnDeps {
-      yarnLock = "${src}/yarn.lock";
-      hash = "sha256-ESYSHuHLNsn3EYKIe2p0kg142jyC0USB+Ef//oGeF08=";
-    };
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/yarn.lock";
+    hash = "sha256-ESYSHuHLNsn3EYKIe2p0kg142jyC0USB+Ef//oGeF08=";
+  };
 
-    nativeBuildInputs = [ copyDesktopItems makeWrapper ]
-      ++ lib.optionals stdenv.isDarwin [ desktopToDarwinBundle ];
+  nativeBuildInputs = [ yarnBuildHook copyDesktopItems makeWrapper ]
+    ++ lib.optionals stdenv.isDarwin [ desktopToDarwinBundle ];
 
-    buildPhase = ''
-      runHook preBuild
-      pushd deps/micropad/
-      yarn --offline build
-      popd
-      runHook postBuild
-    '';
+  installPhase = ''
+    runHook preInstall
 
-    installPhase = ''
-      runHook preInstall
+    # resources
+    mkdir -p "$out/share/"
+    cp -r './deps/micropad' "$out/share/micropad"
+    ln -s '${finalAttrs.micropad-core}' "$out/share/micropad/core"
+    rm "$out/share/micropad/node_modules"
+    cp -r './node_modules' "$out/share/micropad"
 
-      # resources
-      mkdir -p "$out/share/"
-      cp -r './deps/micropad' "$out/share/micropad"
-      ln -s '${micropad-core}' "$out/share/micropad/core"
-      rm "$out/share/micropad/node_modules"
-      cp -r './node_modules' "$out/share/micropad"
+    # icons
+    for icon in $out/share/micropad/build/icons/*.png; do
+      mkdir -p "$out/share/icons/hicolor/$(basename $icon .png | sed -e 's/^icon-//')/apps"
+      ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png | sed -e 's/^icon-//')/apps/micropad.png"
+    done
 
-      # icons
-      for icon in $out/share/micropad/build/icons/*.png; do
-        mkdir -p "$out/share/icons/hicolor/$(basename $icon .png | sed -e 's/^icon-//')/apps"
-        ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png | sed -e 's/^icon-//')/apps/micropad.png"
-      done
+    # executable wrapper
+    makeWrapper '${electron}/bin/electron' "$out/bin/micropad" \
+      --add-flags "$out/share/micropad" \
+      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
 
-      # executable wrapper
-      makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \
-        --add-flags "$out/share/micropad" \
-        --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
+    runHook postInstall
+  '';
 
-      runHook postInstall
-    '';
+  # Do not attempt generating a tarball for micropad again.
+  doDist = false;
 
-    # Do not attempt generating a tarball for micropad again.
-    doDist = false;
+  # The desktop item properties should be kept in sync with data from upstream:
+  # https://github.com/MicroPad/MicroPad-Electron/blob/master/package.json
+  desktopItems = [
+    (makeDesktopItem {
+      name = "micropad";
+      exec = "micropad %u";
+      icon = "micropad";
+      desktopName = "µPad";
+      startupWMClass = "µPad";
+      comment = finalAttrs.meta.description;
+      categories = ["Office"];
+    })
+  ];
 
-    # The desktop item properties should be kept in sync with data from upstream:
-    # https://github.com/MicroPad/MicroPad-Electron/blob/master/package.json
-    desktopItems = [
-      (makeDesktopItem {
-        name = "micropad";
-        exec = "${executableName} %u";
-        icon = "micropad";
-        desktopName = "µPad";
-        startupWMClass = "µPad";
-        comment = meta.description;
-        categories = ["Office"];
-      })
-    ];
-
-    passthru.updateScript = ./update.sh;
-
-    meta = with lib; {
-      description = "A powerful note-taking app that helps you organise + take notes without restrictions";
-      homepage = "https://getmicropad.com/";
-      license = licenses.mpl20;
-      maintainers = with maintainers; [rhysmdnz];
-      inherit (electron.meta) platforms;
-      mainProgram = "micropad";
-    };
-  }
+  meta = {
+    description = "A powerful note-taking app that helps you organise + take notes without restrictions";
+    homepage = "https://getmicropad.com/";
+    license = lib.licenses.mpl20;
+    maintainers = with lib.maintainers; [rhysmdnz];
+    inherit (electron.meta) platforms;
+    mainProgram = "micropad";
+  };
+})
diff --git a/pkgs/applications/office/micropad/package.json b/pkgs/applications/office/micropad/package.json
deleted file mode 100644
index 8e1ca96a05195..0000000000000
--- a/pkgs/applications/office/micropad/package.json
+++ /dev/null
@@ -1,117 +0,0 @@
-{
-  "name": "micropad",
-  "version": "4.5.1",
-  "description": "A powerful note-taking app that helps you organise + take notes without restrictions.",
-  "main": "main.js",
-  "scripts": {
-    "start": "yarn build && yarn electron . --is-dev --no-sandbox",
-    "build": "yarn tsc -p tsconfig.json",
-    "update-core": "rm -rf core && rm -rf tmp && mkdir tmp && wget https://github.com/MicroPad/MicroPad-Core/releases/download/v${npm_package_version}/micropad.tar.xz -P ./tmp && cd tmp && tar -xf micropad.tar.xz && rm build/dist/*.map && cp -r build ../core && cd .. && rm -rf tmp",
-    "pack": "yarn build && yarn electron-builder --dir",
-    "dist": "yarn build && yarn electron-builder",
-    "windows:version": "echo %npm_package_version%"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/MicroPad/Electron.git"
-  },
-  "author": {
-    "name": "Nick Webster",
-    "email": "nick@nick.geek.nz"
-  },
-  "license": "MPL-2.0",
-  "bugs": {
-    "url": "https://github.com/MicroPad/Electron/issues"
-  },
-  "homepage": "https://getmicropad.com",
-  "devDependencies": {
-    "@types/mime": "^3.0.1",
-    "@types/node": "^18.7.18",
-    "@types/typo-js": "^1.2.1",
-    "electron": "^28.1.0",
-    "electron-builder": "^24.9.1",
-    "typescript": "~5.2.2"
-  },
-  "dependencies": {
-    "dictionary-en": "^3.0.0",
-    "dictionary-en-au": "^2.1.1",
-    "electron-context-menu": "^3.1.2",
-    "electron-window-state": "^5.0.3",
-    "localforage": "^1.10.0",
-    "mime": "^3.0.0",
-    "typo-js": "^1.2.3"
-  },
-  "build": {
-    "appId": "com.getmicropad.micropad",
-    "productName": "µPad",
-    "publish": {
-      "provider": "github",
-      "releaseType": "release"
-    },
-    "asarUnpack": [
-      "preload.js"
-    ],
-    "linux": {
-      "target": [
-        {
-          "target": "tar.gz",
-          "arch": [
-            "x64",
-            "armv7l",
-            "arm64"
-          ]
-        },
-        {
-          "target": "AppImage",
-          "arch": [
-            "x64",
-            "armv7l",
-            "arm64"
-          ]
-        },
-        "snap",
-        "deb",
-        "rpm",
-        "pacman"
-      ],
-      "executableName": "micropad",
-      "category": "Office",
-      "icon": "build/icons"
-    },
-    "pacman": {
-      "depends": [
-        "gtk3"
-      ]
-    },
-    "snap": {
-      "publish": {
-        "provider": "github",
-        "releaseType": "release"
-      }
-    },
-    "mac": {
-      "target": {
-        "target": "dmg",
-        "arch": "universal"
-      },
-      "category": "public.app-category.productivity",
-      "identity": null
-    },
-    "win": {
-      "target": [
-        {
-          "target": "nsis",
-          "arch": [
-            "x64",
-            "arm64"
-          ]
-        },
-        "portable"
-      ]
-    },
-    "nsis": {
-      "allowToChangeInstallationDirectory": true,
-      "oneClick": false
-    }
-  }
-}
diff --git a/pkgs/applications/office/micropad/update.sh b/pkgs/applications/office/micropad/update.sh
deleted file mode 100755
index e2265af4ee721..0000000000000
--- a/pkgs/applications/office/micropad/update.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -i bash -p curl common-updater-scripts jq nix nodePackages.prettier prefetch-yarn-deps
-
-set -eu -o pipefail
-
-latest_version=$(curl -s https://api.github.com/repos/MicroPad/Micropad-Electron/releases/latest | jq --raw-output '.tag_name[1:]')
-old_core_hash=$(nix-instantiate --eval --strict -A "micropad.micropad-core.drvAttrs.outputHash" | tr -d '"' | sed -re 's|[+]|\\&|g')
-new_core_hash=$(nix hash to-sri --type sha256 $(nix-prefetch-url --unpack "https://github.com/MicroPad/MicroPad-Core/releases/download/v$latest_version/micropad.tar.xz"))
-
-nixFile=$(nix-instantiate --eval --strict -A "micropad.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/')
-nixFolder=$(dirname "$nixFile")
-
-sed -i "$nixFile" -re "s|\"$old_core_hash\"|\"$new_core_hash\"|"
-
-curl -o "$nixFolder/package.json" -s "https://raw.githubusercontent.com/MicroPad/MicroPad-Electron/v$latest_version/package.json"
-curl -o "$nixFolder/yarn.lock" -s "https://raw.githubusercontent.com/MicroPad/MicroPad-Electron/v$latest_version/yarn.lock"
-
-prettier --write "$nixFolder/package.json"
-old_yarn_hash=$(nix-instantiate --eval --strict -A "micropad.offlineCache.outputHash" | tr -d '"' | sed -re 's|[+]|\\&|g')
-new_yarn_hash=$(nix hash to-sri --type sha256 $(prefetch-yarn-deps "$nixFolder/yarn.lock"))
-sed -i "$nixFile" -re "s|\"$old_yarn_hash\"|\"$new_yarn_hash\"|"
-rm "$nixFolder/yarn.lock"
-
-update-source-version micropad "$latest_version"
diff --git a/pkgs/applications/office/mmex/default.nix b/pkgs/applications/office/mmex/default.nix
index e1f39e8964c5e..14f3c4098102a 100644
--- a/pkgs/applications/office/mmex/default.nix
+++ b/pkgs/applications/office/mmex/default.nix
@@ -7,7 +7,7 @@
 , makeWrapper
 , lsb-release
 , pkg-config
-, wrapGAppsHook
+, wrapGAppsHook3
 , curl
 , sqlite
 , wxGTK32
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     git
     makeWrapper
     pkg-config
-    wrapGAppsHook
+    wrapGAppsHook3
   ] ++ lib.optionals stdenv.isLinux [
     lsb-release
   ];
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
     description = "Easy-to-use personal finance software";
     homepage = "https://www.moneymanagerex.org/";
     license = lib.licenses.gpl2Plus;
-    maintainers = with lib.maintainers; [ viric ];
+    maintainers = [ ];
     platforms = with lib.platforms; unix;
     mainProgram = "mmex";
   };
diff --git a/pkgs/applications/office/morgen/default.nix b/pkgs/applications/office/morgen/default.nix
index a77655588464b..797a1ca2ea678 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 = "3.2.2";
+  version = "3.5.6";
 
   src = fetchurl {
     url = "https://dl.todesktop.com/210203cqcj00tw1/versions/${version}/linux/deb";
-    hash = "sha256-+VvQM851uWoMXV3hwuVSlK9IqiNjh57uq8Wlwl/VvPg=";
+    hash = "sha256-knguIcvGCwlI83DIaX/EYt/15azMoxEWNtFIXYqLops=";
   };
 
   nativeBuildInputs = [
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
     mainProgram = "morgen";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
-    maintainers = with maintainers; [ justanotherariel wolfangaukang ];
+    maintainers = with maintainers; [ justanotherariel ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/office/notes-up/default.nix b/pkgs/applications/office/notes-up/default.nix
index ca1f1c15952a4..4bc6060cfa6b2 100644
--- a/pkgs/applications/office/notes-up/default.nix
+++ b/pkgs/applications/office/notes-up/default.nix
@@ -8,7 +8,7 @@
 , pkg-config
 , python3
 , vala
-, wrapGAppsHook
+, wrapGAppsHook3
 , discount
 , glib
 , gtk3
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     pkg-config
     python3
     vala
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   buildInputs = [
diff --git a/pkgs/applications/office/notes/default.nix b/pkgs/applications/office/notes/default.nix
deleted file mode 100644
index dda8ddb5beacf..0000000000000
--- a/pkgs/applications/office/notes/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, wrapQtAppsHook
-, qtbase
-, qtdeclarative
-, Cocoa
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "notes";
-  version = "2.2.1";
-
-  src = fetchFromGitHub {
-    owner = "nuttyartist";
-    repo = "notes";
-    rev = "v${finalAttrs.version}";
-    hash = "sha256-ShChF87ysRoisKshY86kJTa3ZAiQhBOImuL8OsEqgBo=";
-    fetchSubmodules = true;
-  };
-
-  cmakeFlags = [ "-DUPDATE_CHECKER=OFF" ];
-
-  nativeBuildInputs = [
-    cmake
-    wrapQtAppsHook
-  ];
-
-  buildInputs = [
-    qtbase
-    qtdeclarative
-  ] ++ lib.optionals stdenv.isDarwin [
-    Cocoa
-  ];
-
-  postInstall = lib.optionalString stdenv.isDarwin ''
-    mkdir $out/Applications
-    mv $out/bin/Notes.app $out/Applications
-  '';
-
-  meta = {
-    description = "A fast and beautiful note-taking app";
-    mainProgram = "notes";
-    downloadPage = "https://github.com/nuttyartist/notes";
-    homepage = "https://www.get-notes.com";
-    license = lib.licenses.mpl20;
-    maintainers = with lib.maintainers; [ zendo ];
-    platforms = lib.platforms.linux ++ lib.platforms.darwin;
-  };
-})
diff --git a/pkgs/applications/office/notion-app-enhanced/default.nix b/pkgs/applications/office/notion-app-enhanced/default.nix
index 61dd21920ae1d..59c36ab17a876 100644
--- a/pkgs/applications/office/notion-app-enhanced/default.nix
+++ b/pkgs/applications/office/notion-app-enhanced/default.nix
@@ -20,7 +20,7 @@ in appimageTools.wrapType2 {
   '';
 
   meta = with lib; {
-    description = "Notion Desktop builds with Notion Enhancer for Windows, MacOS and Linux.";
+    description = "Notion Desktop builds with Notion Enhancer for Windows, MacOS and Linux";
     homepage = "https://github.com/notion-enhancer/desktop";
     license = licenses.unfree;
     maintainers = with maintainers; [ sei40kr ];
diff --git a/pkgs/applications/office/osmo/default.nix b/pkgs/applications/office/osmo/default.nix
index 8f73d9c6b2e84..c49d9bc2c4259 100644
--- a/pkgs/applications/office/osmo/default.nix
+++ b/pkgs/applications/office/osmo/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, gtk3, libxml2, gettext, libical, libnotify
-, libarchive, gspell, webkitgtk, libgringotts, wrapGAppsHook }:
+, libarchive, gspell, webkitgtk, libgringotts, wrapGAppsHook3 }:
 
 stdenv.mkDerivation rec {
   pname = "osmo";
@@ -10,12 +10,12 @@ stdenv.mkDerivation rec {
     sha256 = "19h3dnjgqbawnvgnycyp4n5b6mjsp5zghn3b69b6f3xa3fyi32qy";
   };
 
-  nativeBuildInputs = [ pkg-config gettext wrapGAppsHook ];
+  nativeBuildInputs = [ pkg-config gettext wrapGAppsHook3 ];
   buildInputs = [ gtk3 libxml2 libical libnotify libarchive
     gspell webkitgtk libgringotts ];
 
   meta = with lib; {
-    description = "A handy personal organizer";
+    description = "Handy personal organizer";
     mainProgram = "osmo";
     homepage = "https://clayo.org/osmo/";
     license = licenses.gpl2;
diff --git a/pkgs/applications/office/p3x-onenote/default.nix b/pkgs/applications/office/p3x-onenote/default.nix
index 730a9d81b2f55..08e86d5013288 100644
--- a/pkgs/applications/office/p3x-onenote/default.nix
+++ b/pkgs/applications/office/p3x-onenote/default.nix
@@ -11,8 +11,8 @@ let
   }.${stdenv.hostPlatform.system};
 
   sha256 = {
-    aarch64-linux = "0plpwymm1bgzbzwk2689lw1fadxdwxzzn5dmayk1ayxz1k3pj9wi";
-    armv7l-linux = "1pvr8f1ccl4nyfmshn3v3jfaa5x519rsy57g4pdapffj10vpbkb8";
+    aarch64-linux = "sha256-HFuxmMo0m4UOxEQVd32LGvbFsOS8jwCCCS6K/YJIIBE=";
+    armv7l-linux = "sha256-JMgYvqkaRw5sfjbKybAkk28KT12+c19dMir2DUN7Ub0=";
     x86_64-linux = "sha256-hr/mPOrliP8Dej3DVE2+wYkb1J789WCkkY3xe9EcM44=";
   }.${stdenv.hostPlatform.system};
 
diff --git a/pkgs/applications/office/paperless-ngx/default.nix b/pkgs/applications/office/paperless-ngx/default.nix
index 554aeb588ef7b..9e8f2e6f6a342 100644
--- a/pkgs/applications/office/paperless-ngx/default.nix
+++ b/pkgs/applications/office/paperless-ngx/default.nix
@@ -7,7 +7,7 @@
 , python3
 , giflib
 , darwin
-, ghostscript
+, ghostscript_headless
 , imagemagickBig
 , jbig2enc
 , optipng
@@ -21,22 +21,24 @@
 , pango
 , pkg-config
 , nltk-data
+, xorg
 }:
 
 let
-  version = "2.7.2";
+  version = "2.11.6";
 
   src = fetchFromGitHub {
     owner = "paperless-ngx";
     repo = "paperless-ngx";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vXW2d45Mth3Y95xPPH8bFjVLWVdUl+WuvSXJyPD3FyU=";
+    hash = "sha256-RNX+KS2h9zrOK8QzeQWH55pkNPTDW4gic2HLG+XXLRg=";
   };
 
   # subpath installation is broken with uvicorn >= 0.26
   # https://github.com/NixOS/nixpkgs/issues/298719
   # https://github.com/paperless-ngx/paperless-ngx/issues/5494
   python = python3.override {
+    self = python;
     packageOverrides = final: prev: {
       # tesseract5 may be overwritten in the paperless module and we need to propagate that to make the closure reduction effective
       ocrmypdf = prev.ocrmypdf.override { tesseract = tesseract5; };
@@ -55,7 +57,7 @@ let
 
 
   path = lib.makeBinPath [
-    ghostscript
+    ghostscript_headless
     imagemagickBig
     jbig2enc
     optipng
@@ -74,7 +76,7 @@ let
       cd src-ui
     '';
 
-    npmDepsHash = "sha256-MJ5pnQChghZBfVN6Lbz6VcMtbe8QadiFLTsMF5TlebQ=";
+    npmDepsHash = "sha256-ML1Yp3JIMbRF6kVu190ReoY7oDUtUfNkHE7dHF6YUAE=";
 
     nativeBuildInputs = [
       pkg-config
@@ -120,6 +122,7 @@ python.pkgs.buildPythonApplication rec {
 
   nativeBuildInputs = [
     gettext
+    xorg.lndir
   ];
 
   propagatedBuildInputs = with python.pkgs; [
@@ -138,6 +141,7 @@ python.pkgs.buildPythonApplication rec {
     django-filter
     django-guardian
     django-multiselectfield
+    django-soft-delete
     djangorestframework
     djangorestframework-guardian2
     drf-writable-nested
@@ -153,7 +157,7 @@ python.pkgs.buildPythonApplication rec {
     ocrmypdf
     pathvalidate
     pdf2image
-    psycopg2
+    psycopg
     python-dateutil
     python-dotenv
     python-gnupg
@@ -190,9 +194,11 @@ python.pkgs.buildPythonApplication rec {
   installPhase = let
     pythonPath = python.pkgs.makePythonPath propagatedBuildInputs;
   in ''
-    mkdir -p $out/lib/paperless-ngx
+    runHook preInstall
+
+    mkdir -p $out/lib/paperless-ngx/static/frontend
     cp -r {src,static,LICENSE,gunicorn.conf.py} $out/lib/paperless-ngx
-    ln -s ${frontend}/lib/paperless-ui/frontend $out/lib/paperless-ngx/static/
+    lndir -silent ${frontend}/lib/paperless-ui/frontend $out/lib/paperless-ngx/static/frontend
     chmod +x $out/lib/paperless-ngx/src/manage.py
     makeWrapper $out/lib/paperless-ngx/src/manage.py $out/bin/paperless-ngx \
       --prefix PYTHONPATH : "${pythonPath}" \
@@ -200,6 +206,8 @@ python.pkgs.buildPythonApplication rec {
     makeWrapper ${python.pkgs.celery}/bin/celery $out/bin/celery \
       --prefix PYTHONPATH : "${pythonPath}:$out/lib/paperless-ngx/src" \
       --prefix PATH : "${path}"
+
+    runHook postInstall
   '';
 
   postFixup = ''
@@ -211,9 +219,11 @@ python.pkgs.buildPythonApplication rec {
     daphne
     factory-boy
     imagehash
+    pytest-cov-stub
     pytest-django
     pytest-env
     pytest-httpx
+    pytest-mock
     pytest-rerunfailures
     pytest-xdist
     pytestCheckHook
@@ -231,25 +241,24 @@ python.pkgs.buildPythonApplication rec {
     export PATH="${path}:$PATH"
     export HOME=$(mktemp -d)
     export XDG_DATA_DIRS="${liberation_ttf}/share:$XDG_DATA_DIRS"
-
-    # Disable unneeded code coverage test
-    substituteInPlace src/setup.cfg \
-      --replace-fail "--cov --cov-report=html --cov-report=xml" ""
   '';
 
   disabledTests = [
     # FileNotFoundError(2, 'No such file or directory'): /build/tmp...
     "test_script_with_output"
+    "test_script_exit_non_zero"
     # AssertionError: 10 != 4 (timezone/time issue)
     # Due to getting local time from modification date in test_consumer.py
     "testNormalOperation"
+    # Something broken with new Tesseract and inline RTL/LTR overrides?
+    "test_rtl_language_detection"
   ];
 
   doCheck = !stdenv.isDarwin;
 
   passthru = {
     inherit python path frontend tesseract5;
-    nltkData = with nltk-data; [ punkt snowball_data stopwords ];
+    nltkData = with nltk-data; [ punkt_tab snowball_data stopwords ];
     tests = { inherit (nixosTests) paperless; };
   };
 
@@ -259,6 +268,6 @@ python.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/paperless-ngx/paperless-ngx/releases/tag/v${version}";
     license = licenses.gpl3Only;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ lukegb gador erikarvstedt leona ];
+    maintainers = with maintainers; [ leona SuperSandro2000 erikarvstedt ];
   };
 }
diff --git a/pkgs/applications/office/paperwork/paperwork-backend.nix b/pkgs/applications/office/paperwork/paperwork-backend.nix
index b5620d3f40df0..4460e50ab6246 100644
--- a/pkgs/applications/office/paperwork/paperwork-backend.nix
+++ b/pkgs/applications/office/paperwork/paperwork-backend.nix
@@ -1,7 +1,6 @@
 { buildPythonPackage
 , lib
 , fetchFromGitLab
-, fetchpatch
 , pyenchant
 , scikit-learn
 , pypillowfight
@@ -34,13 +33,6 @@ buildPythonPackage rec {
   sourceRoot = "${src.name}/paperwork-backend";
 
   patches = [
-    # fixes building with recent scipy
-    # remove on next release
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/World/OpenPaperwork/paperwork/-/commit/abcebfe9714644d4e259e53b10e0e9417b5b864f.patch";
-      hash = "sha256-YjVpphThW5Livs+PZJZDSgJvhLSXhZ1bnlWMwfY4HTg=";
-    })
-
     # disables a flaky test https://gitlab.gnome.org/World/OpenPaperwork/paperwork/-/issues/1035#note_1493700
     ./flaky_test.patch
   ];
diff --git a/pkgs/applications/office/paperwork/paperwork-gtk.nix b/pkgs/applications/office/paperwork/paperwork-gtk.nix
index e783e8f4966fe..c9b9efeba8906 100644
--- a/pkgs/applications/office/paperwork/paperwork-gtk.nix
+++ b/pkgs/applications/office/paperwork/paperwork-gtk.nix
@@ -2,12 +2,12 @@
 , python3Packages
 , gtk3
 , cairo
-, gnome
+, adwaita-icon-theme
 , librsvg
 , xvfb-run
 , dbus
 , libnotify
-, wrapGAppsHook
+, wrapGAppsHook3
 , fetchFromGitLab
 , which
 , gettext
@@ -69,7 +69,7 @@ python3Packages.buildPythonApplication rec {
       ln -s $i $site/icon/out;
     done
 
-    export XDG_DATA_DIRS=$XDG_DATA_DIRS:${gnome.adwaita-icon-theme}/share
+    export XDG_DATA_DIRS=$XDG_DATA_DIRS:${adwaita-icon-theme}/share
     # build the user manual
     PATH=$out/bin:$PATH PAPERWORK_TEST_DOCUMENTS=${sample_docs} make data
     for i in src/paperwork_gtk/model/help/out/*.pdf; do
@@ -80,7 +80,7 @@ python3Packages.buildPythonApplication rec {
   nativeCheckInputs = [ dbus ];
 
   nativeBuildInputs = [
-    wrapGAppsHook
+    wrapGAppsHook3
     gobject-introspection
     python3Packages.setuptools-scm
     (lib.getBin gettext)
@@ -89,7 +89,7 @@ python3Packages.buildPythonApplication rec {
   ] ++ documentation_deps;
 
   buildInputs = [
-    gnome.adwaita-icon-theme
+    adwaita-icon-theme
     libnotify
     librsvg
     gtk3
@@ -143,7 +143,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = {
-    description = "A personal document manager for scanned documents";
+    description = "Personal document manager for scanned documents";
     homepage = "https://openpaper.work/";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ aszlig symphorien ];
diff --git a/pkgs/applications/office/paperwork/src.nix b/pkgs/applications/office/paperwork/src.nix
index 2f61689611d60..8b8735d9ac354 100644
--- a/pkgs/applications/office/paperwork/src.nix
+++ b/pkgs/applications/office/paperwork/src.nix
@@ -1,13 +1,13 @@
 {fetchFromGitLab}:
 rec {
-  version = "2.2.2";
+  version = "2.2.5";
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     repo = "paperwork";
     group = "World";
     owner = "OpenPaperwork";
     rev = version;
-    sha256 = "sha256-fVw+W10yEPLf6IUyaDpnmu7tPOqbvNLE8IK8mjHvurQ=";
+    sha256 = "sha256-PRh0ohmPLwpM76qYfbExFqq4OK6Hm0fbdzrjXungSoY=";
   };
   sample_documents = fetchFromGitLab {
     domain = "gitlab.gnome.org";
diff --git a/pkgs/applications/office/pdfmixtool/default.nix b/pkgs/applications/office/pdfmixtool/default.nix
index 2aeca54c1e966..73a5b54cb4424 100644
--- a/pkgs/applications/office/pdfmixtool/default.nix
+++ b/pkgs/applications/office/pdfmixtool/default.nix
@@ -50,7 +50,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An application to split, merge, rotate and mix PDF files";
+    description = "Application to split, merge, rotate and mix PDF files";
     mainProgram = "pdfmixtool";
     homepage = "https://gitlab.com/scarpetta/pdfmixtool";
     license = licenses.gpl3Only;
diff --git a/pkgs/applications/office/pdfmm/default.nix b/pkgs/applications/office/pdfmm/default.nix
index 5be76fa51685f..9f4f17f893c9b 100644
--- a/pkgs/applications/office/pdfmm/default.nix
+++ b/pkgs/applications/office/pdfmm/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , ghostscript
 , locale
-, gnome
+, zenity
 , gnused
 , lib
 , resholve
@@ -35,7 +35,7 @@ resholve.mkDerivation rec {
       coreutils
       ghostscript
       locale
-      gnome.zenity
+      zenity
       gnused
     ];
     fake = {
@@ -43,7 +43,7 @@ resholve.mkDerivation rec {
       external = [ "xmessage" ];
     };
     execer = [
-      "cannot:${gnome.zenity}/bin/zenity"
+      "cannot:${zenity}/bin/zenity"
     ];
     keep."$toutLu" = true;
   };
diff --git a/pkgs/applications/office/pinpoint/default.nix b/pkgs/applications/office/pinpoint/default.nix
index ca91b33ecae6e..d0b682e9b9663 100644
--- a/pkgs/applications/office/pinpoint/default.nix
+++ b/pkgs/applications/office/pinpoint/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/Archive/pinpoint";
-    description = "A tool for making hackers do excellent presentations";
+    description = "Tool for making hackers do excellent presentations";
     license = licenses.lgpl21;
     platforms = platforms.linux;
     maintainers = with maintainers; [ pSub ];
diff --git a/pkgs/applications/office/planify/default.nix b/pkgs/applications/office/planify/default.nix
index 595b12bf9ab24..ebc72aa2aabd4 100644
--- a/pkgs/applications/office/planify/default.nix
+++ b/pkgs/applications/office/planify/default.nix
@@ -7,9 +7,10 @@
 , pkg-config
 , vala
 , wrapGAppsHook4
-, evolution-data-server
+, evolution-data-server-gtk4
 , glib
 , glib-networking
+, gst_all_1
 , gtk4
 , gtksourceview5
 , gxml
@@ -27,13 +28,13 @@
 
 stdenv.mkDerivation rec {
   pname = "planify";
-  version = "4.7";
+  version = "4.11.2";
 
   src = fetchFromGitHub {
     owner = "alainm23";
     repo = "planify";
     rev = version;
-    hash = "sha256-5hiVTU1w3Rk/BdxYwDB0Y+EZFnSAaEWtx19IB1ak1yY=";
+    hash = "sha256-yEe8zBaczCCY5Cs9lIc2J3GYSeDwmB1vsX9cANXQIC0=";
   };
 
   nativeBuildInputs = [
@@ -46,9 +47,12 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    evolution-data-server
+    evolution-data-server-gtk4
     glib
     glib-networking
+    # Needed for GtkMediaStream creation with success.ogg, see #311295.
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
     gtk4
     gtksourceview5
     gxml
@@ -72,7 +76,7 @@ stdenv.mkDerivation rec {
     description = "Task manager with Todoist support designed for GNU/Linux";
     homepage = "https://github.com/alainm23/planify";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ dtzWill ] ++ teams.pantheon.members;
+    maintainers = with maintainers; [ ] ++ teams.pantheon.members;
     platforms = platforms.linux;
     mainProgram = "io.github.alainm23.planify";
   };
diff --git a/pkgs/applications/office/portfolio/default.nix b/pkgs/applications/office/portfolio/default.nix
deleted file mode 100644
index a7b5835184901..0000000000000
--- a/pkgs/applications/office/portfolio/default.nix
+++ /dev/null
@@ -1,80 +0,0 @@
-{ lib
-, stdenv
-, autoPatchelfHook
-, fetchurl
-, glib-networking
-, glibc
-, gcc-unwrapped
-, gtk3
-, jre
-, libsecret
-, makeDesktopItem
-, webkitgtk
-, wrapGAppsHook
-, writeScript
-}:
-let
-  desktopItem = makeDesktopItem {
-    name = "Portfolio";
-    exec = "portfolio";
-    icon = "portfolio";
-    comment = "Calculate Investment Portfolio Performance";
-    desktopName = "Portfolio Performance";
-    categories = [ "Office" ];
-  };
-
-  runtimeLibs = lib.makeLibraryPath [ gtk3 webkitgtk ];
-in
-stdenv.mkDerivation rec {
-  pname = "PortfolioPerformance";
-  version = "0.68.4";
-
-  src = fetchurl {
-    url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
-    hash = "sha256-E4uVI2MJ2tD2wuAxxzCZSmNRbKTTzhi44c4ip7uEhCk=";
-  };
-
-  nativeBuildInputs = [
-    autoPatchelfHook
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    gcc-unwrapped
-    glib-networking
-    glibc
-    libsecret
-  ];
-
-  installPhase = ''
-    mkdir -p $out/portfolio
-    cp -av ./* $out/portfolio
-
-    makeWrapper $out/portfolio/PortfolioPerformance $out/bin/portfolio \
-      --prefix LD_LIBRARY_PATH : "${runtimeLibs}" \
-      --prefix PATH : ${jre}/bin
-
-    # Create desktop item
-    mkdir -p $out/share/applications
-    cp ${desktopItem}/share/applications/* $out/share/applications
-    mkdir -p $out/share/pixmaps
-    ln -s $out/portfolio/icon.xpm $out/share/pixmaps/portfolio.xpm
-  '';
-
-  passthru.updateScript = writeScript "update.sh" ''
-    #!/usr/bin/env nix-shell
-    #!nix-shell -i bash -p curl jq common-updater-scripts
-    version="$(curl -sL "https://api.github.com/repos/buchen/portfolio/tags" | jq '.[0].name' --raw-output)"
-    update-source-version portfolio "$version"
-  '';
-
-  meta = with lib; {
-    description = "A simple tool to calculate the overall performance of an investment portfolio";
-    homepage = "https://www.portfolio-performance.info/";
-    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    license = licenses.epl10;
-    maintainers = with maintainers; [ elohmeier kilianar oyren shawn8901 ];
-    mainProgram = "portfolio";
-    platforms = [ "x86_64-linux" ];
-  };
-}
diff --git a/pkgs/applications/office/pympress/default.nix b/pkgs/applications/office/pympress/default.nix
index 353e46e067dac..8ada870912eb9 100644
--- a/pkgs/applications/office/pympress/default.nix
+++ b/pkgs/applications/office/pympress/default.nix
@@ -2,12 +2,13 @@
 , stdenv
 , python3Packages
 , fetchPypi
-, wrapGAppsHook
+, wrapGAppsHook3
 , gtk3
 , gobject-introspection
 , libcanberra-gtk3
 , poppler_gi
 , withGstreamer ? stdenv.isLinux
+, gst_all_1
 , withVLC ? stdenv.isLinux
 }:
 
@@ -22,14 +23,23 @@ python3Packages.buildPythonApplication rec {
   };
 
   nativeBuildInputs = [
-    wrapGAppsHook
+    wrapGAppsHook3
     gobject-introspection
   ];
 
   buildInputs = [
     gtk3
     poppler_gi
-  ] ++ lib.optional withGstreamer libcanberra-gtk3;
+  ] ++ lib.optionals withGstreamer [
+    libcanberra-gtk3
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-bad
+    gst_all_1.gst-plugins-ugly
+    (gst_all_1.gst-plugins-good.override {gtkSupport = true;})
+    gst_all_1.gst-libav
+    gst_all_1.gst-vaapi
+  ];
 
   propagatedBuildInputs = with python3Packages; [
     pycairo
diff --git a/pkgs/applications/office/qownnotes/default.nix b/pkgs/applications/office/qownnotes/default.nix
index 0ff43b584bea9..2b8d0d089269e 100644
--- a/pkgs/applications/office/qownnotes/default.nix
+++ b/pkgs/applications/office/qownnotes/default.nix
@@ -1,14 +1,13 @@
 { lib
 , stdenv
 , fetchurl
-, qmake
+, cmake
 , qttools
 , qtbase
 , qtdeclarative
 , qtsvg
 , qtwayland
 , qtwebsockets
-, qt5compat
 , makeWrapper
 , wrapQtAppsHook
 , botan2
@@ -21,18 +20,18 @@
 let
   pname = "qownnotes";
   appname = "QOwnNotes";
-  version = "24.4.4";
+  version = "24.9.6";
 in
 stdenv.mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://github.com/pbek/QOwnNotes/releases/download/v${version}/qownnotes-${version}.tar.xz";
-    hash = "sha256-nTRCW76UogaTOyxQ5HfWUln6Lip/LpoyPG+m+mMCb1I=";
+    hash = "sha256-r5X8/BObkDlhB0LkfMSdrYWaU8mwquQhSiPUDJjV1qM=";
   };
 
   nativeBuildInputs = [
-    qmake
+    cmake
     qttools
     wrapQtAppsHook
     pkg-config
@@ -45,12 +44,12 @@ stdenv.mkDerivation {
     qtdeclarative
     qtsvg
     qtwebsockets
-    qt5compat
     botan2
   ] ++ lib.optionals stdenv.isLinux [ qtwayland ];
 
-  qmakeFlags = [
-    "USE_SYSTEM_BOTAN=1"
+  cmakeFlags = [
+    "-DQON_QT6_BUILD=ON"
+    "-DBUILD_WITH_SYSTEM_BOTAN=ON"
   ];
 
   postInstall = ''
diff --git a/pkgs/applications/office/qpdfview/default.nix b/pkgs/applications/office/qpdfview/default.nix
index 9b0bb09df9044..7d44c684fd99e 100644
--- a/pkgs/applications/office/qpdfview/default.nix
+++ b/pkgs/applications/office/qpdfview/default.nix
@@ -40,6 +40,9 @@ mkDerivation rec {
     ghostscript
   ];
 
+  # needed for qmakeFlags+=( below
+  __structuredAttrs = true;
+
   preConfigure = ''
     lrelease qpdfview.pro
     qmakeFlags+=(*.pro)
@@ -61,7 +64,7 @@ mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A tabbed document viewer";
+    description = "Tabbed document viewer";
     mainProgram = "qpdfview";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ raskin ];
diff --git a/pkgs/applications/office/rime-cli/default.nix b/pkgs/applications/office/rime-cli/default.nix
index a5b989528459d..9c89db2125958 100644
--- a/pkgs/applications/office/rime-cli/default.nix
+++ b/pkgs/applications/office/rime-cli/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/puddinging/rime-cli";
     changelog = "https://github.com/puddinging/rime-cli/releases/tag/v${version}";
-    description = "A command line tool to add customized vocabulary for Rime IME";
+    description = "Command line tool to add customized vocabulary for Rime IME";
     license = licenses.asl20;
     maintainers = with maintainers; [ urandom ];
     mainProgram = "rime-cli";
diff --git a/pkgs/applications/office/roam-research/common.nix b/pkgs/applications/office/roam-research/common.nix
index 8e63b111ad2af..00cbbf009096c 100644
--- a/pkgs/applications/office/roam-research/common.nix
+++ b/pkgs/applications/office/roam-research/common.nix
@@ -1,22 +1,22 @@
 { fetchurl }:
 let
   pname = "roam-research";
-  version = "0.0.18";
+  version = "0.0.22";
 in
 {
   inherit pname version;
   sources = {
     x86_64-darwin = fetchurl {
       url = "https://roam-electron-deploy.s3.us-east-2.amazonaws.com/Roam+Research-${version}.dmg";
-      hash = "sha256-jyFNH3qrgrsftExL/b2t8bY3W3fYVz+Gp11AuaIMxbg=";
+      hash = "sha256-GA9m4z+3Dy87Dz/YPG5MYbREQ1cEAdX/MJvkAJ/fe34=";
     };
     aarch64-darwin = fetchurl {
       url = "https://roam-electron-deploy.s3.us-east-2.amazonaws.com/Roam+Research-${version}-arm64.dmg";
-      hash = "sha256-AnyvFCbyUi6tcgxYQAj+zPLl4/kVh9ZeupetRhzH0PU=";
+      hash = "sha256-+lgV5TpTzN7mJvvVEpBbmq+aBOBKy1CpYkMNhfoxhK0=";
     };
     x86_64-linux = fetchurl {
       url = "https://roam-electron-deploy.s3.us-east-2.amazonaws.com/${pname}_${version}_amd64.deb";
-      hash = "sha256-veDWBFZbODsdaO1UdfuC4w6oGCkeVBe+fqKn5XVHKDQ=";
+      hash = "sha256-HVGytdP5fkQQABeL9y869GZioutvnBHrwPprAjfBbFg=";
     };
   };
 }
diff --git a/pkgs/applications/office/roam-research/darwin.nix b/pkgs/applications/office/roam-research/darwin.nix
index 1369a2352b585..721e9e8fc7e9d 100644
--- a/pkgs/applications/office/roam-research/darwin.nix
+++ b/pkgs/applications/office/roam-research/darwin.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, undmg, fetchurl }:
+{ lib, stdenv, _7zz, fetchurl }:
 let
   common = import ./common.nix { inherit fetchurl; };
   inherit (stdenv.hostPlatform) system;
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   sourceRoot = ".";
 
-  nativeBuildInputs = [ undmg ];
+  nativeBuildInputs = [ _7zz ];
   installPhase = ''
     runHook preInstall
 
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A note-taking tool for networked thought";
+    description = "Note-taking tool for networked thought";
     homepage = "https://roamresearch.com/";
     maintainers = with lib.maintainers; [ dbalan ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/applications/office/roam-research/linux.nix b/pkgs/applications/office/roam-research/linux.nix
index 8733ce33026a8..04a05d95ffc2f 100644
--- a/pkgs/applications/office/roam-research/linux.nix
+++ b/pkgs/applications/office/roam-research/linux.nix
@@ -63,7 +63,7 @@ in stdenv.mkDerivation rec {
   dontPatchELF = true;
 
   meta = with lib; {
-    description = "A note-taking tool for networked thought";
+    description = "Note-taking tool for networked thought";
     homepage = "https://roamresearch.com/";
     maintainers = with lib.maintainers; [ dbalan ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/applications/office/scribus/default.nix b/pkgs/applications/office/scribus/default.nix
index 5f2a117198965..85c0afe9db66a 100644
--- a/pkgs/applications/office/scribus/default.nix
+++ b/pkgs/applications/office/scribus/default.nix
@@ -33,11 +33,11 @@ in
 stdenv.mkDerivation (finalAttrs: {
   pname = "scribus";
 
-  version = "1.6.1";
+  version = "1.6.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/scribus/scribus-devel/scribus-${finalAttrs.version}.tar.xz";
-    hash = "sha256-4J3Xjm22HQG5MhEI/t7bzNbsCrNS3Vuv24sEHw73npk=";
+    hash = "sha256-fv+bH0fjcuVrs2nx2+GP5JEBeJtea8/beJDgNGtkE4M=";
   };
 
   nativeBuildInputs = [
@@ -70,7 +70,6 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     maintainers = with maintainers; [
-      kiwi
       arthsmn
     ];
     description = "Desktop Publishing (DTP) and Layout program";
diff --git a/pkgs/applications/office/semantik/default.nix b/pkgs/applications/office/semantik/default.nix
index f7533adb62c58..b7007719a694d 100644
--- a/pkgs/applications/office/semantik/default.nix
+++ b/pkgs/applications/office/semantik/default.nix
@@ -1,5 +1,4 @@
-{ stdenv
-, lib
+{ lib
 , mkDerivation
 , fetchFromGitLab
 , wafHook
@@ -84,7 +83,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A mind-mapping application for KDE";
+    description = "Mind-mapping application for KDE";
     license = licenses.mit;
     homepage = "https://waf.io/semantik.html";
     maintainers = [ maintainers.shamilton ];
diff --git a/pkgs/applications/office/skrooge/default.nix b/pkgs/applications/office/skrooge/default.nix
index b3c1c39379552..851f53039dd4d 100644
--- a/pkgs/applications/office/skrooge/default.nix
+++ b/pkgs/applications/office/skrooge/default.nix
@@ -35,7 +35,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A personal finances manager, powered by KDE";
+    description = "Personal finances manager, powered by KDE";
     license = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ joko ];
     homepage = "https://skrooge.org/";
diff --git a/pkgs/applications/office/softmaker/generic.nix b/pkgs/applications/office/softmaker/generic.nix
index 6162aa2326062..0cdbe16e11335 100644
--- a/pkgs/applications/office/softmaker/generic.nix
+++ b/pkgs/applications/office/softmaker/generic.nix
@@ -120,11 +120,11 @@ in stdenv.mkDerivation {
   desktopItems = builtins.attrValues desktopItems;
 
   meta = with lib; {
-    description = "An office suite with a word processor, spreadsheet and presentation program";
+    description = "Office suite with a word processor, spreadsheet and presentation program";
     homepage = "https://www.softmaker.com/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
-    maintainers = with maintainers; [ ];
+    maintainers = [ ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/office/spice-up/default.nix b/pkgs/applications/office/spice-up/default.nix
index 93376ed2922b9..f8a7f3a7c268c 100644
--- a/pkgs/applications/office/spice-up/default.nix
+++ b/pkgs/applications/office/spice-up/default.nix
@@ -7,7 +7,7 @@
 , pkg-config
 , python3
 , vala
-, wrapGAppsHook
+, wrapGAppsHook3
 , glib
 , gtk3
 , json-glib
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     pkg-config
     python3
     vala
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   buildInputs = [
diff --git a/pkgs/applications/office/super-productivity/default.nix b/pkgs/applications/office/super-productivity/default.nix
index 9b32967159275..4883af59286a3 100644
--- a/pkgs/applications/office/super-productivity/default.nix
+++ b/pkgs/applications/office/super-productivity/default.nix
@@ -2,17 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "super-productivity";
-  version = "8.0.5";
+  version = "9.0.5";
 
   src = fetchurl {
     url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
-    sha256 = "sha256-nH7dCrXBhkAYbvb9CPc4zhslFiYtA1ChuYPoHMdBBwQ=";
+    sha256 = "sha256-eNAoLcQWnsTDA7sG8i0Ur9BZ+pNt4AK1GOppFCD1ZGg=";
     name = "${pname}-${version}.AppImage";
   };
 
   appimageContents = appimageTools.extractType2 {
-    name = "${pname}-${version}";
-    inherit src;
+    inherit pname version src;
   };
 
   dontUnpack = true;
diff --git a/pkgs/applications/office/tagainijisho/default.nix b/pkgs/applications/office/tagainijisho/default.nix
index 6ec176393e3e6..cc2522ffa7282 100644
--- a/pkgs/applications/office/tagainijisho/default.nix
+++ b/pkgs/applications/office/tagainijisho/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A free, open-source Japanese dictionary and kanji lookup tool";
+    description = "Free, open-source Japanese dictionary and kanji lookup tool";
     mainProgram = "tagainijisho";
     homepage = "https://www.tagaini.net/";
     license = with licenses; [
diff --git a/pkgs/applications/office/teapot/001-fix-warning.patch b/pkgs/applications/office/teapot/001-fix-warning.patch
deleted file mode 100644
index c9ab9da94bf47..0000000000000
--- a/pkgs/applications/office/teapot/001-fix-warning.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -Naur teapot-2.3.0-old/scanner.c teapot-2.3.0-new/scanner.c
---- teapot-2.3.0-old/scanner.c	1969-12-31 21:00:01.000000000 -0300
-+++ teapot-2.3.0-new/scanner.c	2021-11-25 17:46:49.936673391 -0300
-@@ -25,6 +25,7 @@
- #include "main.h"
- #include "misc.h"
- #include "scanner.h"
-+#include "utf8.h"
- /*}}}*/
- 
- /* identcode  -- return number of identifier */ /*{{{*/
diff --git a/pkgs/applications/office/teapot/002-remove-help.patch b/pkgs/applications/office/teapot/002-remove-help.patch
deleted file mode 100644
index 5bf804255be19..0000000000000
--- a/pkgs/applications/office/teapot/002-remove-help.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-diff -Naur teapot-2.3.0-old/CMakeLists.txt teapot-2.3.0-new/CMakeLists.txt
---- teapot-2.3.0-old/CMakeLists.txt	1969-12-31 21:00:01.000000000 -0300
-+++ teapot-2.3.0-new/CMakeLists.txt	2021-11-25 18:16:06.594423660 -0300
-@@ -64,46 +64,6 @@
- 	install(TARGETS fteapot DESTINATION bin)
- endif ()
- 
--if (ENABLE_HELP)
--	add_custom_command(
--		OUTPUT teapot.tex teapot.lyx
--		MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/doc/teapot.lyx
--		VERBATIM
--		COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/teapot.lyx teapot.lyx
--		COMMAND lyx -e pdflatex -f main teapot.lyx
--	)
--	add_custom_command(
--		OUTPUT teapot.pdf teapot.aux.old teapot.log teapot.toc
--		MAIN_DEPENDENCY teapot.tex
--		VERBATIM
--		COMMAND pdflatex teapot.tex; diff -q teapot.aux.old teapot.aux && cp teapot.aux teapot.aux.old
--		COMMAND pdflatex teapot.tex; diff -q teapot.aux.old teapot.aux && cp teapot.aux teapot.aux.old
--	)
--	add_custom_command(OUTPUT teapot.pdf teapot.out MAIN_DEPENDENCY teapot.tex teapot.aux.old VERBATIM COMMAND pdflatex teapot.tex; diff -q teapot.aux.old teapot.aux && cp teapot.aux teapot.aux.old)
--	add_custom_command(
--		OUTPUT html/ html/index.html .latex2html-init
--		MAIN_DEPENDENCY teapot.tex
--		DEPENDS teapot.tex teapot.pdf ${CMAKE_CURRENT_SOURCE_DIR}/doc/.latex2html-init
--		VERBATIM
--		COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/.latex2html-init .latex2html-init
--		COMMAND ${CMAKE_COMMAND} -E make_directory html
--		COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/contents.png html/
--		COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/next.png html/
--		COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/next_g.png html/
--		COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/prev.png html/
--		COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/prev_g.png html/
--		COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/up.png html/
--		COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/up_g.png html/
--		COMMAND latex2html teapot.tex
--	)
--	add_custom_target(pdf DEPENDS teapot.pdf)
--	add_custom_target(html DEPENDS html/index.html)
--	add_custom_target(doc ALL DEPENDS teapot.pdf html/index.html)
--	install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html DESTINATION share/doc/teapot FILES_MATCHING PATTERN *.html PATTERN *.png)
--	install(FILES ${CMAKE_CURRENT_BINARY_DIR}/teapot.pdf DESTINATION share/doc/teapot)
--	set(HELPFILE "${CMAKE_INSTALL_PREFIX}/share/doc/teapot/index.html")
--endif ()
--
- install(FILES COPYING README DESTINATION share/doc/teapot)
- install(FILES teapot.1 DESTINATION share/man/man1)
diff --git a/pkgs/applications/office/teapot/default.nix b/pkgs/applications/office/teapot/default.nix
deleted file mode 100644
index 31ff3c8609874..0000000000000
--- a/pkgs/applications/office/teapot/default.nix
+++ /dev/null
@@ -1,80 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, libtirpc
-, ncurses
-}:
-
-stdenv.mkDerivation rec {
-  pname = "teapot";
-  version = "2.3.0";
-
-  src = fetchFromGitHub {
-    name = "${pname}-${version}";
-    owner = "museoa";
-    repo = pname;
-    rev = version;
-    hash = "sha256-38XFjRzOGasr030f+mRYT+ptlabpnVJfa+1s7ZAjS+k=";
-  };
-
-  prePatch = ''
-    cd src
-  '';
-
-  patches = [
-    # include a local file in order to make cc happy
-    ./001-fix-warning.patch
-    # remove the ENABLE_HELP target entirely - lyx and latex are huge!
-    ./002-remove-help.patch
-  ];
-
-  nativeBuildInputs = [
-    cmake
-  ];
-
-  buildInputs = [
-    libtirpc
-    ncurses
-  ];
-
-  # By no known reason libtirpc is not detected
-  env.NIX_CFLAGS_COMPILE = toString [ "-I${libtirpc.dev}/include/tirpc" ];
-  NIX_LDFLAGS = [ "-ltirpc" ];
-
-  cmakeConfigureFlags = [
-    "-DENABLE_HELP=OFF"
-  ];
-
-  meta = with lib; {
-    inherit (src.meta) homepage;
-    description = "Table Editor And Planner, Or: Teapot";
-    longDescription = ''
-      Teapot is a compact spreadsheet software originally written by Michael
-      Haardt. It features a (n)curses-based text terminal interface, and
-      recently also a FLTK-based GUI.
-
-      These days, it may seem pointless having yet another spreadsheet program
-      (and one that doesn't even know how to load Microsoft Excel files). Its
-      compact size (130k for the ncurses executable, 140k for the GUI
-      executable, 300k for the self-contained Windows EXE) and the fact that it
-      can run across serial lines and SSH sessions make it an interesting choice
-      for embedded applications and as system administration utility, even more
-      so since it has a batch processing mode and comes with example code for
-      creating graphs from data sets.
-
-      Another interesting feature is its modern approach to spread sheet theory:
-      It sports true three-dimensional tables and iterative expressions. And
-      since it breaks compatibility with the usual notions of big spreadsheet
-      packages, it can also throw old syntactic cruft over board which many
-      spreadsheets still inherit from the days of VisiCalc on ancient CP/M
-      systems.
-    '';
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ AndersonTorres ];
-    platforms = platforms.unix;
-    mainProgram = "teapot";
-  };
-}
-# TODO: patch/fix FLTK building
-# TODO: add documentation
diff --git a/pkgs/applications/office/ticktick/default.nix b/pkgs/applications/office/ticktick/default.nix
index 3a768c702acdf..6d1876082917e 100644
--- a/pkgs/applications/office/ticktick/default.nix
+++ b/pkgs/applications/office/ticktick/default.nix
@@ -1,7 +1,7 @@
 { lib
 , fetchurl
 , stdenv
-, wrapGAppsHook
+, wrapGAppsHook3
 , dpkg
 , autoPatchelfHook
 , glibc
@@ -15,15 +15,15 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "ticktick";
-  version = "2.0.10";
+  version = "6.0.0";
 
   src = fetchurl {
-    url = "https://d2atcrkye2ik4e.cloudfront.net/download/linux/linux_deb_x64/${finalAttrs.pname}-${finalAttrs.version}-amd64.deb";
-    hash = "sha256-wign7U1p4HX6/RwnMm2iVSNaYRhn8Ia6QQd5X6m3B0E=";
+    url = "https://d2atcrkye2ik4e.cloudfront.net/download/linux/linux_deb_x64/ticktick-${finalAttrs.version}-amd64.deb";
+    hash = "sha256-yoskJ7v0RgRZ16gs9UY1xf/PunLoFkNGKmVMkPJDPmM=";
   };
 
   nativeBuildInputs = [
-    wrapGAppsHook
+    wrapGAppsHook3
     autoPatchelfHook
     dpkg
   ];
@@ -67,7 +67,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A powerful to-do & task management app with seamless cloud synchronization across all your devices";
+    description = "Powerful to-do & task management app with seamless cloud synchronization across all your devices";
     homepage = "https://ticktick.com/home/";
     license = licenses.unfree;
     maintainers = with maintainers; [ hbjydev ];
diff --git a/pkgs/applications/office/timeline/default.nix b/pkgs/applications/office/timeline/default.nix
index 9f8bb5b563d57..8aedc4854006b 100644
--- a/pkgs/applications/office/timeline/default.nix
+++ b/pkgs/applications/office/timeline/default.nix
@@ -4,7 +4,7 @@
 , gettext
 , makeDesktopItem
 , copyDesktopItems
-, wrapGAppsHook
+, wrapGAppsHook3
 }:
 
 python3.pkgs.buildPythonApplication rec {
@@ -17,7 +17,7 @@ python3.pkgs.buildPythonApplication rec {
     sha256 = "sha256-qwH2mt3Va62QJKJGOpt5WV3QksqQaRGEif4CcPC5F2E=";
   };
 
-  nativeBuildInputs = [ python3.pkgs.wrapPython copyDesktopItems wrapGAppsHook ];
+  nativeBuildInputs = [ python3.pkgs.wrapPython copyDesktopItems wrapGAppsHook3 ];
 
   pythonPath = with python3.pkgs; [
     wxpython
diff --git a/pkgs/applications/office/timetrap/default.nix b/pkgs/applications/office/timetrap/default.nix
index 7ece5e9b4b030..1bdc846638354 100644
--- a/pkgs/applications/office/timetrap/default.nix
+++ b/pkgs/applications/office/timetrap/default.nix
@@ -1,6 +1,5 @@
 { stdenv
 , lib
-, pkgs
 , bundlerEnv
 , bundlerApp
 , bundlerUpdateScript
@@ -46,7 +45,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A simple command line time tracker written in ruby";
+    description = "Simple command line time tracker written in ruby";
     homepage    = "https://github.com/samg/timetrap";
     license     = licenses.mit;
     maintainers = with maintainers; [ jerith666 manveru nicknovitski ];
diff --git a/pkgs/applications/office/timeular/default.nix b/pkgs/applications/office/timeular/default.nix
index bf08311bad980..d3aa67a47a045 100644
--- a/pkgs/applications/office/timeular/default.nix
+++ b/pkgs/applications/office/timeular/default.nix
@@ -1,16 +1,15 @@
 { lib
 , fetchurl
 , appimageTools
-, libsecret
 }:
 
 let
-  version = "6.7.6";
+  version = "6.8.1";
   pname = "timeular";
 
   src = fetchurl {
     url = "https://s3.amazonaws.com/timeular-desktop-packages/linux/production/Timeular-${version}.AppImage";
-    hash = "sha256-wQUR2jLJi1peXqXJJj/72X9xNaD2DzNiB0mGFiaEWBE=";
+    hash = "sha256-9t21aIEhLNIY7kSJkcvUVZ8R9/CuW0ZEu8kWkvMMQrM=";
   };
 
   appimageContents = appimageTools.extractType2 {
@@ -19,9 +18,7 @@ let
 in appimageTools.wrapType2 rec {
   inherit pname version src;
 
-  extraPkgs = pkgs: with pkgs; [
-    libsecret
-  ];
+  extraPkgs = pkgs: [ pkgs.libsecret ];
 
   extraInstallCommands = ''
     install -m 444 -D ${appimageContents}/timeular.desktop $out/share/applications/timeular.desktop
diff --git a/pkgs/applications/office/todoman/default.nix b/pkgs/applications/office/todoman/default.nix
index d53306e77904e..eae9e424857f0 100644
--- a/pkgs/applications/office/todoman/default.nix
+++ b/pkgs/applications/office/todoman/default.nix
@@ -1,5 +1,4 @@
 { lib
-, stdenv
 , fetchFromGitHub
 , glibcLocales
 , installShellFiles
@@ -46,7 +45,7 @@ python3.pkgs.buildPythonApplication rec {
     hypothesis
     pytestCheckHook
     glibcLocales
-    pytest-cov
+    pytest-cov-stub
   ];
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/applications/office/treesheets/default.nix b/pkgs/applications/office/treesheets/default.nix
index c67f53949ce72..b52dc1dc835fd 100644
--- a/pkgs/applications/office/treesheets/default.nix
+++ b/pkgs/applications/office/treesheets/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , cmake
 , ninja
-, wrapGAppsHook
+, wrapGAppsHook3
 , makeWrapper
 , wxGTK
 , Cocoa
@@ -12,19 +12,19 @@
 
 stdenv.mkDerivation rec {
   pname = "treesheets";
-  version = "unstable-2024-04-11";
+  version = "0-unstable-2024-09-08";
 
   src = fetchFromGitHub {
     owner = "aardappel";
     repo = "treesheets";
-    rev = "5e9e95a34221d4bda584d2130586177e29ee8fe7";
-    sha256 = "X0aB0rJZd9G8S+QWviSAdB/YQMT4lVV3yiELzZs+P3g=";
+    rev = "8db448f67710194d64211ac467ffd2d456854432";
+    hash = "sha256-SM62ymN5HXRiyXayoWQaGXLCGEDbHcKMJdPLXDv5dv8=";
   };
 
   nativeBuildInputs = [
     cmake
     ninja
-    wrapGAppsHook
+    wrapGAppsHook3
     makeWrapper
   ];
 
@@ -45,7 +45,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = unstableGitUpdater { };
+    updateScript = unstableGitUpdater {
+      hardcodeZeroVersion = true;
+    };
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/office/trilium/desktop.nix b/pkgs/applications/office/trilium/desktop.nix
index 55b99bf71b794..9681c5fc9b8a4 100644
--- a/pkgs/applications/office/trilium/desktop.nix
+++ b/pkgs/applications/office/trilium/desktop.nix
@@ -1,19 +1,19 @@
 { stdenv, lib, unzip, autoPatchelfHook
 , fetchurl, makeWrapper
 , alsa-lib, mesa, nss, nspr, systemd
-, makeDesktopItem, copyDesktopItems, wrapGAppsHook
+, makeDesktopItem, copyDesktopItems, wrapGAppsHook3
 , metaCommon
 }:
 
 let
   pname = "trilium-desktop";
-  version = "0.63.5";
+  version = "0.63.6";
 
   linuxSource.url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
-  linuxSource.sha256 = "1a2h96gd04mqn6cskjhj657dx9wqvlqsvgydjbaqpwc8593swpb3";
+  linuxSource.sha256 = "12kgq5x4f93hxz057zqhz0x1y0rxfxh90fv9fjjs3jrnk0by7f33";
 
   darwinSource.url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-mac-x64-${version}.zip";
-  darwinSource.sha256 = "155y85vsawrqd0wcdpl87sv9s2nkamc73aiklsw8nbw1x96hqvap";
+  darwinSource.sha256 = "0ry512cn622av3nm8rnma2yvqc71rpzax639872ivvc5vm4rsc30";
 
   meta = metaCommon // {
     mainProgram = "trilium";
@@ -29,7 +29,7 @@ let
     nativeBuildInputs = [
       autoPatchelfHook
       makeWrapper
-      wrapGAppsHook
+      wrapGAppsHook3
       copyDesktopItems
     ];
 
diff --git a/pkgs/applications/office/trilium/server.nix b/pkgs/applications/office/trilium/server.nix
index 09983d4d0091e..4d6dbaa0f7cf6 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 = "02kd7gm93nmxsxy1bx5kac7jizslik9nlfcnq8kn6mprfcv8anfn";
-  version = "0.63.5";
+  serverSource.sha256 = "0gwp6h6nvfzq7k1g3233h838nans45jkd5c3pzl6qdhhm19vcs27";
+  version = "0.63.6";
 in stdenv.mkDerivation {
   pname = "trilium-server";
   inherit version;
diff --git a/pkgs/applications/office/tryton/default.nix b/pkgs/applications/office/tryton/default.nix
index e1a236e5db8bc..bc66a8b458a63 100644
--- a/pkgs/applications/office/tryton/default.nix
+++ b/pkgs/applications/office/tryton/default.nix
@@ -7,36 +7,35 @@
 , atk
 , gtk3
 , gtkspell3
-, gnome
+, adwaita-icon-theme
 , glib
 , goocanvas2
 , gdk-pixbuf
 , pango
 , fontconfig
 , freetype
-, wrapGAppsHook
+, wrapGAppsHook3
 }:
 
-with lib;
-
 python3Packages.buildPythonApplication rec {
   pname = "tryton";
-  version = "7.0.8";
-
-  disabled = !python3Packages.isPy3k;
+  version = "7.2.5";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-e3WNDB6P7kapAfzlvbJ1/6LcyH7Fl6GKCK/hri460pQ=";
+    hash = "sha256-U6hA6TuIMDTFAZUic60A5IKr/LKxKZEgiTIhkLlTJSw=";
   };
 
+  build-system = [ python3Packages.setuptools ];
+
   nativeBuildInputs = [
     pkg-config
     gobject-introspection
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
-  propagatedBuildInputs = with python3Packages; [
+  dependencies = with python3Packages; [
     python-dateutil
     pygobject3
     goocalendar
@@ -47,7 +46,7 @@ python3Packages.buildPythonApplication rec {
     atk
     gdk-pixbuf
     glib
-    gnome.adwaita-icon-theme
+    adwaita-icon-theme
     goocanvas2
     fontconfig
     freetype
@@ -57,12 +56,20 @@ python3Packages.buildPythonApplication rec {
     pango
   ];
 
+  dontWrapGApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
   strictDeps = false;
 
+  pythonImportsCheck = [ "tryton" ];
+
   doCheck = false;
 
-  meta = {
-    description = "The client of the Tryton application platform";
+  meta = with lib; {
+    description = "Client of the Tryton application platform";
     mainProgram = "tryton";
     longDescription = ''
       The client for Tryton, a three-tier high-level general purpose
diff --git a/pkgs/applications/office/tusk/default.nix b/pkgs/applications/office/tusk/default.nix
index 73b896ff0cc52..89a27a770e6fe 100644
--- a/pkgs/applications/office/tusk/default.nix
+++ b/pkgs/applications/office/tusk/default.nix
@@ -31,8 +31,6 @@ in appimageTools.wrapType2 rec {
     export LC_ALL=C.UTF-8
   '';
 
-  multiArch = false; # no 32bit needed
-  extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
   extraInstallCommands = ''
     mkdir "$out/share"
     ln -s "${desktopItem}/share/applications" "$out/share/"
diff --git a/pkgs/applications/office/vnote/default.nix b/pkgs/applications/office/vnote/default.nix
deleted file mode 100644
index 4394a58bdb3e9..0000000000000
--- a/pkgs/applications/office/vnote/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, qmake
-, qtbase
-, qtwebengine
-, qtx11extras
-, wrapQtAppsHook
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "vnote";
-  version = "3.17.0";
-
-  src = fetchFromGitHub {
-    owner = "vnotex";
-    repo = "vnote";
-    rev = "v${finalAttrs.version}";
-    fetchSubmodules = true;
-    hash = "sha256-NUVu6tKXrrwAoT4BgxX05mmGSC9yx20lwvXzd4y19Zs=";
-  };
-
-  nativeBuildInputs = [
-    qmake
-    wrapQtAppsHook
-  ];
-
-  buildInputs = [
-    qtbase
-    qtwebengine
-    qtx11extras
-  ];
-
-  meta = {
-    homepage = "https://vnotex.github.io/vnote";
-    description = "A pleasant note-taking platform";
-    mainProgram = "vnote";
-    changelog = "https://github.com/vnotex/vnote/releases/tag/${finalAttrs.src.rev}";
-    license = lib.licenses.lgpl3Plus;
-    maintainers = with lib.maintainers; [ AndersonTorres ];
-    platforms = lib.platforms.linux;
-  };
-})
diff --git a/pkgs/applications/office/watson/default.nix b/pkgs/applications/office/watson/default.nix
index 0c04b0ddd52ec..8cf348020c437 100644
--- a/pkgs/applications/office/watson/default.nix
+++ b/pkgs/applications/office/watson/default.nix
@@ -34,7 +34,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://tailordev.github.io/Watson/";
-    description = "A wonderful CLI to track your time!";
+    description = "Wonderful CLI to track your time!";
     mainProgram = "watson";
     license = licenses.mit;
     maintainers = with maintainers; [ mguentner nathyong oxzi ];
diff --git a/pkgs/applications/office/wpsoffice/default.nix b/pkgs/applications/office/wpsoffice/default.nix
index 78b559b8ff3fe..81d6e299bb6bf 100644
--- a/pkgs/applications/office/wpsoffice/default.nix
+++ b/pkgs/applications/office/wpsoffice/default.nix
@@ -1,6 +1,5 @@
 { lib
 , stdenv
-, fetchurl
 , dpkg
 , autoPatchelfHook
 , alsa-lib
@@ -20,10 +19,11 @@
 , curl
 , coreutils
 , cacert
+, libjpeg
 , useChineseVersion ? false
 }:
 let
-  pkgVersion = "11.1.0.11719";
+  pkgVersion = "11.1.0.11723";
   url =
     if useChineseVersion then
       "https://wps-linux-personal.wpscdn.cn/wps/download/ep/Linux2019/${lib.last (lib.splitVersion pkgVersion)}/wps-office_${pkgVersion}_amd64.deb"
@@ -31,9 +31,9 @@ let
       "https://wdl1.pcfg.cache.wpscdn.com/wpsdl/wpsoffice/download/linux/${lib.last (lib.splitVersion pkgVersion)}/wps-office_${pkgVersion}.XA_amd64.deb";
   hash =
     if useChineseVersion then
-      "sha256-LgE5du2ZnMsAqgoQkY63HWyWYA5TLS5I8ArRYrpxffs="
+      "sha256-vpXK8YyjqhFdmtajO6ZotYACpe5thMct9hwUT3advUM="
     else
-      "sha256-6fXzHSMzZDGuBubOXsHA0YEUGKcy5QIPg3noyxUbdjA=";
+      "sha256-o8njvwE/UsQpPuLyChxGAZ4euvwfuaHxs5pfUvcM7kI=";
   uri = builtins.replaceStrings [ "https://wps-linux-personal.wpscdn.cn" ] [ "" ] url;
   securityKey = "7f8faaaa468174dc1c9cd62e5f218a5b";
 in
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
       nativeBuildInputs = [ curl coreutils ];
 
+      impureEnvVars = lib.fetchers.proxyImpureEnvVars;
       SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
     } ''
     timestamp10=$(date '+%s')
@@ -72,6 +73,7 @@ stdenv.mkDerivation rec {
     alsa-lib
     at-spi2-core
     libtool
+    libjpeg
     libxkbcommon
     nspr
     mesa
@@ -120,6 +122,9 @@ stdenv.mkDerivation rec {
   preFixup = ''
     # The following libraries need libtiff.so.5, but nixpkgs provides libtiff.so.6
     patchelf --replace-needed libtiff.so.5 libtiff.so $out/opt/kingsoft/wps-office/office6/{libpdfmain.so,libqpdfpaint.so,qt/plugins/imageformats/libqtiff.so,addons/pdfbatchcompression/libpdfbatchcompressionapp.so}
+    patchelf --add-needed libtiff.so $out/opt/kingsoft/wps-office/office6/libwpsmain.so
+    # Fix: Wrong JPEG library version: library is 62, caller expects 80
+    patchelf --add-needed libjpeg.so $out/opt/kingsoft/wps-office/office6/libwpsmain.so
     # dlopen dependency
     patchelf --add-needed libudev.so.1 $out/opt/kingsoft/wps-office/office6/addons/cef/libcef.so
   '';
diff --git a/pkgs/applications/office/zim/default.nix b/pkgs/applications/office/zim/default.nix
index b21f3edaa5322..0f4017dbbc07c 100644
--- a/pkgs/applications/office/zim/default.nix
+++ b/pkgs/applications/office/zim/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, python3Packages, gtk3, gobject-introspection, wrapGAppsHook, gnome }:
+{ lib, stdenv, fetchurl, python3Packages, gtk3, gobject-introspection, wrapGAppsHook3, adwaita-icon-theme }:
 
 # TODO: Declare configuration options for the following optional dependencies:
 #  -  File stores: hg, git, bzr
@@ -14,15 +14,15 @@ python3Packages.buildPythonApplication rec {
     hash = "sha256-QIkNsFsWeNHEcXhGHHZyJDMMW2lNvdwMJLGxeCZaLdI=";
   };
 
-  buildInputs = [ gtk3 gnome.adwaita-icon-theme ];
+  buildInputs = [ gtk3 adwaita-icon-theme ];
   propagatedBuildInputs = with python3Packages; [ pyxdg pygobject3 ];
-  nativeBuildInputs = [ gobject-introspection wrapGAppsHook ];
+  nativeBuildInputs = [ gobject-introspection wrapGAppsHook3 ];
 
   dontWrapGApps = true;
 
   preFixup = ''
     makeWrapperArgs+=(--prefix XDG_DATA_DIRS : $out/share)
-    makeWrapperArgs+=(--prefix XDG_DATA_DIRS : ${gnome.adwaita-icon-theme}/share)
+    makeWrapperArgs+=(--prefix XDG_DATA_DIRS : ${adwaita-icon-theme}/share)
     makeWrapperArgs+=(--argv0 $out/bin/.zim-wrapped)
     makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
   '';
@@ -49,7 +49,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = with lib; {
-    description = "A desktop wiki";
+    description = "Desktop wiki";
     homepage = "https://zim-wiki.org/";
     changelog = "https://github.com/zim-desktop-wiki/zim-desktop-wiki/blob/${version}/CHANGELOG.md";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/office/zk/default.nix b/pkgs/applications/office/zk/default.nix
index 6cdbb0d63af25..e491e9b95fcb9 100644
--- a/pkgs/applications/office/zk/default.nix
+++ b/pkgs/applications/office/zk/default.nix
@@ -1,30 +1,30 @@
-{ lib, fetchFromGitHub, buildGoModule, icu }:
+{ lib, fetchFromGitHub, buildGoModule }:
 
 buildGoModule rec {
   pname = "zk";
-  version = "0.14.0";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
-    owner = "mickael-menu";
+    owner = "zk-org";
     repo = "zk";
     rev = "v${version}";
-    sha256 = "sha256-c0Grk5Bs9MOzuvWYbp+Y6cHouljUWoM3i7vFmQRFR18=";
+    sha256 = "sha256-PbF2k7b03Oo3fIWIN4BHUZJ625HUeX+htT9FTINowIs=";
   };
 
-  vendorHash = "sha256-23m0fHYJl3X2uHCFnMYID9umTjZvGFoOKTtRrerlWKg=";
+  vendorHash = "sha256-UZsJa5hmMQwe9lhrp4ey8GGTkWUF8xJW+LPWMR0qfoo=";
 
   doCheck = false;
 
   CGO_ENABLED = 1;
 
-  ldflags = [ "-s" "-w" "-X=main.Build=${version}" ];
+  ldflags = [ "-s" "-w" "-X=main.Build=${version}" "-X=main.Version=${version}"];
 
   tags = [ "fts5" ];
 
   meta = with lib; {
     maintainers = with maintainers; [ pinpox ];
     license = licenses.gpl3;
-    description = "A zettelkasten plain text note-taking assistant";
+    description = "Zettelkasten plain text note-taking assistant";
     homepage = "https://github.com/mickael-menu/zk";
     mainProgram = "zk";
   };
diff --git a/pkgs/applications/office/zotero/default.nix b/pkgs/applications/office/zotero/default.nix
index e343790da2c7d..7b9a22ff07215 100644
--- a/pkgs/applications/office/zotero/default.nix
+++ b/pkgs/applications/office/zotero/default.nix
@@ -1,101 +1,60 @@
 { lib
 , stdenv
 , fetchurl
-, wrapGAppsHook
+, wrapGAppsHook3
 , makeDesktopItem
+, alsa-lib
 , atk
 , cairo
-, coreutils
-, curl
-, cups
 , dbus-glib
-, dbus
-, dconf
-, fontconfig
-, freetype
 , gdk-pixbuf
 , glib
-, glibc
 , gtk3
-, libX11
-, libXScrnSaver
-, libxcb
-, libXcomposite
-, libXcursor
-, libXdamage
-, libXext
-, libXfixes
-, libXi
-, libXinerama
-, libXrender
-, libXt
-, libnotify
-, gnome
-, libGLU
 , libGL
-, nspr
-, nss
+, libva
+, xorg
+, mesa
 , pango
-, gsettings-desktop-schemas
+, pciutils
 }:
 
 stdenv.mkDerivation rec {
   pname = "zotero";
-  version = "6.0.35";
+  version = "7.0.3";
 
   src = fetchurl {
-    url =
-      "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2";
-    hash = "sha256-HAVLmamEPuFf0548/iEXes+f4XnQ7kU1u9hyOYhVyZ0=";
+    url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2";
+    hash = "sha256-W5/j5ohrx/X0qlOiWWtB/FEF9aZCnbbAA3pcL8R6yy0=";
   };
 
-  nativeBuildInputs = [ wrapGAppsHook ];
-  buildInputs =
-    [ gsettings-desktop-schemas glib gtk3 gnome.adwaita-icon-theme dconf ];
-
-  dontConfigure = true;
-  dontBuild = true;
-  dontStrip = true;
   dontPatchELF = true;
+  nativeBuildInputs = [ wrapGAppsHook3 ];
 
   libPath = lib.makeLibraryPath [
-    stdenv.cc.cc
+    alsa-lib
     atk
     cairo
-    curl
-    cups
     dbus-glib
-    dbus
-    fontconfig
-    freetype
     gdk-pixbuf
     glib
-    glibc
     gtk3
-    libX11
-    libXScrnSaver
-    libXcomposite
-    libXcursor
-    libxcb
-    libXdamage
-    libXext
-    libXfixes
-    libXi
-    libXinerama
-    libXrender
-    libXt
-    libnotify
-    libGLU
     libGL
-    nspr
-    nss
+    libva
+    xorg.libX11
+    xorg.libXcomposite
+    xorg.libXcursor
+    xorg.libXdamage
+    xorg.libXext
+    xorg.libXfixes
+    xorg.libXi
+    xorg.libXrandr
+    xorg.libXtst
+    xorg.libxcb
+    mesa
     pango
+    pciutils
   ] + ":" + lib.makeSearchPathOutput "lib" "lib64" [ stdenv.cc.cc ];
 
-  postPatch = ''
-    sed -i '/pref("app.update.enabled", true);/c\pref("app.update.enabled", false);' defaults/preferences/prefs.js
-  '';
-
   desktopItem = makeDesktopItem {
     name = "zotero";
     exec = "zotero -url %U";
@@ -111,22 +70,29 @@ stdenv.mkDerivation rec {
   installPhase = ''
     runHook preInstall
 
+    # Copy package contents to the output directory
     mkdir -p "$prefix/usr/lib/zotero-bin-${version}"
     cp -r * "$prefix/usr/lib/zotero-bin-${version}"
     mkdir -p "$out/bin"
     ln -s "$prefix/usr/lib/zotero-bin-${version}/zotero" "$out/bin/"
 
-    # install desktop file and icons.
+    # Install desktop file and icons
     mkdir -p $out/share/applications
     cp ${desktopItem}/share/applications/* $out/share/applications/
-    for size in 16 32 48 256; do
-      install -Dm444 chrome/icons/default/default$size.png \
+    for size in 32 64 128; do
+      install -Dm444 icons/icon''${size}.png \
         $out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png
     done
+    install -Dm444 icons/symbolic.svg \
+      $out/share/icons/hicolor/symbolic/apps/zotero-symbolic.svg
+
+    runHook postInstall
+  '';
 
+  postFixup = ''
     for executable in \
-      zotero-bin plugin-container \
-      updater minidump-analyzer
+      zotero-bin plugin-container updater vaapitest \
+      minidump-analyzer glxtest
     do
       if [ -e "$out/usr/lib/zotero-bin-${version}/$executable" ]; then
         patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
@@ -136,23 +102,15 @@ stdenv.mkDerivation rec {
     find . -executable -type f -exec \
       patchelf --set-rpath "$libPath" \
         "$out/usr/lib/zotero-bin-${version}/{}" \;
-
-    runHook postInstall
-  '';
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      --prefix PATH : ${lib.makeBinPath [ coreutils ]}
-    )
   '';
 
   meta = with lib; {
     homepage = "https://www.zotero.org";
     description = "Collect, organize, cite, and share your research sources";
+    mainProgram = "zotero";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.agpl3Only;
     platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ i077 ];
-    mainProgram = "zotero";
+    maintainers = with maintainers; [ atila justanotherariel ];
   };
 }
diff --git a/pkgs/applications/office/zotero/zotero.sh b/pkgs/applications/office/zotero/zotero.sh
deleted file mode 100644
index 8941097fc422f..0000000000000
--- a/pkgs/applications/office/zotero/zotero.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!@bash@/bin/bash
-
-exec "@firefox@/bin/firefox" -app "@out@/libexec/zotero/application.ini" "${@}"
diff --git a/pkgs/applications/office/zotero/zotero_7.nix b/pkgs/applications/office/zotero/zotero_7.nix
deleted file mode 100644
index 4d4ea36c5acf8..0000000000000
--- a/pkgs/applications/office/zotero/zotero_7.nix
+++ /dev/null
@@ -1,153 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, wrapGAppsHook
-, autoPatchelfHook
-, makeDesktopItem
-, atk
-, cairo
-, coreutils
-, curl
-, cups
-, dbus-glib
-, dbus
-, dconf
-, fontconfig
-, freetype
-, gdk-pixbuf
-, glib
-, glibc
-, gtk3
-, libX11
-, libXScrnSaver
-, libxcb
-, libXcomposite
-, libXcursor
-, libXdamage
-, libXext
-, libXfixes
-, libXi
-, libXinerama
-, libXrender
-, libXt
-, libnotify
-, gnome
-, libGLU
-, libGL
-, nspr
-, nss
-, pango
-, gsettings-desktop-schemas
-, alsa-lib
-, libXtst
-}:
-
-stdenv.mkDerivation rec {
-  pname = "zotero";
-  version = "7.0.0-beta";
-
-  src = fetchurl {
-    url = "https://download.zotero.org/client/beta/${version}.65%2Bb047f3d90/Zotero-${version}.65%2Bb047f3d90_linux-x86_64.tar.bz2";
-    hash = "sha256-e7T/hvb8bFb4hkouihBkgqUu4ugYoUMHNVKxh0r/WUM=";
-  };
-
-  nativeBuildInputs = [
-    wrapGAppsHook
-    autoPatchelfHook
-  ];
-  buildInputs = [
-    gsettings-desktop-schemas
-    glib
-    gtk3
-    gnome.adwaita-icon-theme
-    dconf
-    libXtst
-    alsa-lib
-    stdenv.cc.cc
-    atk
-    cairo
-    curl
-    cups
-    dbus-glib
-    dbus
-    fontconfig
-    freetype
-    gdk-pixbuf
-    glib
-    glibc
-    gtk3
-    libX11
-    libXScrnSaver
-    libXcomposite
-    libXcursor
-    libxcb
-    libXdamage
-    libXext
-    libXfixes
-    libXi
-    libXinerama
-    libXrender
-    libXt
-    libnotify
-    libGLU
-    libGL
-    nspr
-    nss
-    pango
-  ];
-
-  dontConfigure = true;
-  dontBuild = true;
-  dontStrip = true;
-
-
-  desktopItem = makeDesktopItem {
-    name = "zotero";
-    exec = "zotero -url %U";
-    icon = "zotero";
-    comment = meta.description;
-    desktopName = "Zotero";
-    genericName = "Reference Management";
-    categories = [ "Office" "Database" ];
-    startupNotify = true;
-    mimeTypes = [ "x-scheme-handler/zotero" "text/plain" ];
-  };
-
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p "$prefix/usr/lib/zotero-bin-${version}"
-    cp -r * "$prefix/usr/lib/zotero-bin-${version}"
-    mkdir -p "$out/bin"
-    ln -s "$prefix/usr/lib/zotero-bin-${version}/zotero" "$out/bin/"
-
-    # install desktop file and icons.
-    mkdir -p $out/share/applications
-    cp ${desktopItem}/share/applications/* $out/share/applications/
-    for size in 32 64 128; do
-      install -Dm444 icons/icon$size.png \
-        $out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png
-    done
-    install -Dm444 icons/symbolic.svg \
-        $out/share/icons/hicolor/symbolic/apps/zotero-symbolic.svg
-
-    runHook postInstall
-  '';
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      --prefix PATH : ${lib.makeBinPath [ coreutils ]}
-    )
-  '';
-
-  meta = with lib; {
-    homepage = "https://www.zotero.org";
-    description = "Collect, organize, cite, and share your research sources";
-    mainProgram = "zotero";
-    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    license = licenses.agpl3Only;
-    platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ atila ];
-  };
-}