about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/office
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2022-02-22 10:43:06 +0000
committerAlyssa Ross <hi@alyssa.is>2022-03-11 16:17:56 +0000
commitca1aada113c0ebda1ab8667199f6453f8e01c4fc (patch)
tree55e402280096f62eb0bc8bcad5ce6050c5a0aec7 /nixpkgs/pkgs/applications/office
parente4df5a52a6a6531f32626f57205356a773ac2975 (diff)
parent93883402a445ad467320925a0a5dbe43a949f25b (diff)
downloadnixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.tar
nixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.tar.gz
nixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.tar.bz2
nixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.tar.lz
nixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.tar.xz
nixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.tar.zst
nixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.zip
Merge commit '93883402a445ad467320925a0a5dbe43a949f25b'
Conflicts:
	nixpkgs/nixos/modules/programs/ssh.nix
	nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
	nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
	nixpkgs/pkgs/development/go-modules/generic/default.nix
	nixpkgs/pkgs/development/interpreters/ruby/default.nix
	nixpkgs/pkgs/development/libraries/mesa/default.nix
Diffstat (limited to 'nixpkgs/pkgs/applications/office')
-rw-r--r--nixpkgs/pkgs/applications/office/PageEdit/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/office/abiword/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/office/appflowy/default.nix76
-rw-r--r--nixpkgs/pkgs/applications/office/banking/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/elementary-planner/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/foliate/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/gnucash/0001-disable-date-and-time-tests.patch (renamed from nixpkgs/pkgs/applications/office/gnucash/0001-changes.patch)0
-rw-r--r--nixpkgs/pkgs/applications/office/gnucash/0002-disable-gnc-fq-update.patch18
-rw-r--r--nixpkgs/pkgs/applications/office/gnucash/0003-remove-valgrind.patch35
-rw-r--r--nixpkgs/pkgs/applications/office/gnucash/default.nix263
-rw-r--r--nixpkgs/pkgs/applications/office/gnumeric/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/gtg/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/office/homebank/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/impressive/default.nix70
-rw-r--r--nixpkgs/pkgs/applications/office/jabref/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/jameica/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/office/kalendar/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/darwin.nix51
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix8
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix10
-rw-r--r--nixpkgs/pkgs/applications/office/morgen/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/office/notion-app-enhanced/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/paperless-ng/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/pyspread/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/office/qownnotes/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/scribus/unstable.nix5
-rw-r--r--nixpkgs/pkgs/applications/office/skrooge/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/spice-up/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/office/super-productivity/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/timedoctor/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/timekeeper/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/office/timeline/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/treesheets/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch53
-rw-r--r--nixpkgs/pkgs/applications/office/trilium/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/office/vnote/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/watson/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/office/zanshin/default.nix4
39 files changed, 561 insertions, 351 deletions
diff --git a/nixpkgs/pkgs/applications/office/PageEdit/default.nix b/nixpkgs/pkgs/applications/office/PageEdit/default.nix
new file mode 100644
index 000000000000..f313bdcded62
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/PageEdit/default.nix
@@ -0,0 +1,25 @@
+{ lib, mkDerivation, fetchFromGitHub, cmake, qtsvg, qtwebengine, qttranslations }:
+
+mkDerivation rec {
+  pname = "PageEdit";
+  version = "1.7.0";
+
+  src = fetchFromGitHub {
+    owner = "Sigil-Ebook";
+    repo = pname;
+    rev = version;
+    hash = "sha256-/t08ZS2iYWIDkco0nhACBQs1X+X77SJ/g+ow7KemfRY=";
+  };
+
+  nativeBuildInputs = [ cmake qttranslations ];
+  propagatedBuildInputs = [ qtsvg qtwebengine ];
+  cmakeFlags = "-DINSTALL_BUNDLED_DICTS=0";
+
+  meta = with lib; {
+    description = "ePub XHTML Visual Editor";
+    homepage = "https://sigil-ebook.com/pageedit/";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.pasqui23 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/abiword/default.nix b/nixpkgs/pkgs/applications/office/abiword/default.nix
index 0554713feb89..c064ea94d04e 100644
--- a/nixpkgs/pkgs/applications/office/abiword/default.nix
+++ b/nixpkgs/pkgs/applications/office/abiword/default.nix
@@ -5,29 +5,15 @@
 
 stdenv.mkDerivation rec {
   pname = "abiword";
-  version = "3.0.4";
+  version = "3.0.5";
 
   src = fetchurl {
     url = "https://www.abisource.com/downloads/abiword/${version}/source/${pname}-${version}.tar.gz";
-    sha256 = "1mx5l716n0z5788i19qmad30cck4v9ggr071cafw2nrf375rcc79";
+    hash = "sha256-ElckfplwUI1tFFbT4zDNGQnEtCsl4PChvDJSbW86IbQ=";
   };
 
   enableParallelBuilding = true;
 
-  patches = [
-    # Switch to using enchant2; note by the next update enchant2 should be
-    # default and this patch can be removed.
-    # https://github.com/NixOS/nixpkgs/issues/38506
-    (fetchurl {
-      url = "https://raw.githubusercontent.com/archlinux/svntogit-packages/d3ff951d3c7249927e7113b3de1653031db24596/abiword/trunk/enchant-2.1.patch";
-      sha256 = "444dc2aadea3c80310a509b690097541573f6d2652c573d04da66a0f385fcfb2";
-    })
-  ];
-
-  postPatch = ''
-    substituteInPlace configure --replace 'enchant >=' 'enchant-2 >='
-  '';
-
   nativeBuildInputs = [ pkg-config wrapGAppsHook ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/office/appflowy/default.nix b/nixpkgs/pkgs/applications/office/appflowy/default.nix
new file mode 100644
index 000000000000..05bb88bdfe74
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/appflowy/default.nix
@@ -0,0 +1,76 @@
+{ stdenv,
+  lib,
+  fetchzip,
+  autoPatchelfHook,
+  makeWrapper,
+  copyDesktopItems,
+  makeDesktopItem,
+  gtk3,
+  openssl,
+  xdg-user-dirs
+}:
+
+stdenv.mkDerivation rec {
+  pname = "appflowy";
+  version = "0.0.2";
+
+  src = fetchzip {
+    url = "https://github.com/AppFlowy-IO/appflowy/releases/download/${version}/AppFlowy-linux-x86.tar.gz";
+    sha256 = "1fvv4mlgf0vqcq5zh0zl2xr44saz0sm47r8whcywwrmcm0l66iv6";
+  };
+
+  nativeBuildInputs = [
+      autoPatchelfHook
+      makeWrapper
+      copyDesktopItems
+  ];
+
+  buildInputs = [
+      gtk3
+      openssl
+  ];
+
+  dontBuild = true;
+  dontConfigure = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/opt/
+    mkdir -p $out/bin/
+
+    # Copy archive contents to the outpout directory
+    cp -r ./* $out/opt/
+
+    runHook postInstall
+  '';
+
+  preFixup = let
+    libPath = lib.makeLibraryPath [
+      xdg-user-dirs
+    ];
+  in ''
+    # Add missing libraries to appflowy using the ones it comes with
+    makeWrapper $out/opt/app_flowy $out/bin/appflowy \
+          --set LD_LIBRARY_PATH "$out/opt/lib/:${libPath}"
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = pname;
+      desktopName = "AppFlowy";
+      comment = meta.description;
+      exec = "appflowy";
+      categories = "Office;";
+    })
+  ];
+
+  meta = with lib; {
+    description = "An open-source alternative to Notion";
+    homepage = "https://www.appflowy.io/";
+    license = licenses.agpl3Only;
+    changelog = "https://github.com/AppFlowy-IO/appflowy/releases/tag/${version}";
+    maintainers = with maintainers; [ darkonion0 ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/banking/default.nix b/nixpkgs/pkgs/applications/office/banking/default.nix
index c71c1eafa66c..e6c5192b0f94 100644
--- a/nixpkgs/pkgs/applications/office/banking/default.nix
+++ b/nixpkgs/pkgs/applications/office/banking/default.nix
@@ -60,7 +60,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Banking application for small screens";
-    homepage = "https://tabos.gitlab.io/project/banking/";
+    homepage = "https://tabos.gitlab.io/projects/banking/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda ];
   };
diff --git a/nixpkgs/pkgs/applications/office/elementary-planner/default.nix b/nixpkgs/pkgs/applications/office/elementary-planner/default.nix
index c0cdfd75d9be..d07133e9065e 100644
--- a/nixpkgs/pkgs/applications/office/elementary-planner/default.nix
+++ b/nixpkgs/pkgs/applications/office/elementary-planner/default.nix
@@ -59,7 +59,6 @@ stdenv.mkDerivation rec {
     pantheon.granite
     sqlite
     webkitgtk
-    libgdata # required by some dependency transitively
     libhandy
     curl
   ];
diff --git a/nixpkgs/pkgs/applications/office/foliate/default.nix b/nixpkgs/pkgs/applications/office/foliate/default.nix
index bcd42b361b93..7eff0ac90976 100644
--- a/nixpkgs/pkgs/applications/office/foliate/default.nix
+++ b/nixpkgs/pkgs/applications/office/foliate/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "foliate";
-  version = "2.6.3";
+  version = "2.6.4";
 
   src = fetchFromGitHub {
     owner = "johnfactotum";
     repo = pname;
     rev = version;
-    sha256 = "0ribqaxl8g1i83fxbn288afwbzzls48ni57xqi07d19p9ka892mr";
+    sha256 = "sha256-Pr2YA2MHXD4W7lyCxGAVLKyoZarZ8t92RSkWle3LNuc=";
   };
 
   nativeBuildInputs = [ meson ninja python3 wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/office/gnucash/0001-changes.patch b/nixpkgs/pkgs/applications/office/gnucash/0001-disable-date-and-time-tests.patch
index c20342564430..c20342564430 100644
--- a/nixpkgs/pkgs/applications/office/gnucash/0001-changes.patch
+++ b/nixpkgs/pkgs/applications/office/gnucash/0001-disable-date-and-time-tests.patch
diff --git a/nixpkgs/pkgs/applications/office/gnucash/0002-disable-gnc-fq-update.patch b/nixpkgs/pkgs/applications/office/gnucash/0002-disable-gnc-fq-update.patch
new file mode 100644
index 000000000000..f379cd5e259d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/gnucash/0002-disable-gnc-fq-update.patch
@@ -0,0 +1,18 @@
+diff --git a/libgnucash/quotes/CMakeLists.txt b/libgnucash/quotes/CMakeLists.txt
+index b33569d39..fdbfa10a9 100644
+--- a/libgnucash/quotes/CMakeLists.txt
++++ b/libgnucash/quotes/CMakeLists.txt
+@@ -1,6 +1,6 @@
+ 
+ set(_BIN_FILES "")
+-foreach(file gnc-fq-check.in gnc-fq-helper.in gnc-fq-update.in gnc-fq-dump.in)
++foreach(file gnc-fq-check.in gnc-fq-helper.in gnc-fq-dump.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-check.in gnc-fq-dump.in gnc-fq-helper.in gnc-fq-update.in Quote_example.pl README)
++set_dist_list(quotes_DIST CMakeLists.txt gnc-fq-check.in gnc-fq-dump.in gnc-fq-helper.in Quote_example.pl README)
diff --git a/nixpkgs/pkgs/applications/office/gnucash/0003-remove-valgrind.patch b/nixpkgs/pkgs/applications/office/gnucash/0003-remove-valgrind.patch
new file mode 100644
index 000000000000..8bbb17e353fa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/gnucash/0003-remove-valgrind.patch
@@ -0,0 +1,35 @@
+diff --git a/gnucash/CMakeLists.txt b/gnucash/CMakeLists.txt
+index 8e6e339d1..3936a8cb6 100644
+--- a/gnucash/CMakeLists.txt
++++ b/gnucash/CMakeLists.txt
+@@ -163,13 +163,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)
+@@ -253,7 +246,6 @@ 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)
+ 
+@@ -274,7 +266,7 @@ gnc_add_scheme_targets(price-quotes
+ 
+ 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.xml ${gresource_files} price-quotes.scm
+     ${gnucash_noinst_HEADERS} ${gnucash_EXTRA_DIST})
+ 
diff --git a/nixpkgs/pkgs/applications/office/gnucash/default.nix b/nixpkgs/pkgs/applications/office/gnucash/default.nix
index c3e205500e13..a9d532a27c24 100644
--- a/nixpkgs/pkgs/applications/office/gnucash/default.nix
+++ b/nixpkgs/pkgs/applications/office/gnucash/default.nix
@@ -1,106 +1,213 @@
-{ fetchurl, lib, stdenv, pkg-config, makeWrapper, cmake, gtest
-, boost, icu, libxml2, libxslt, gettext, swig, isocodes, gtk3, glibcLocales
-, webkitgtk, dconf, hicolor-icon-theme, libofx, aqbanking, gwenhywfar, libdbi
-, libdbiDrivers, guile, perl, perlPackages
+{ lib
+, stdenv
+, fetchurl
+, aqbanking
+, boost
+, cmake
+, gettext
+, glib
+, glibcLocales
+, gtest
+, guile
+, gwenhywfar
+, icu
+, libdbi
+, libdbiDrivers
+, libofx
+, libxml2
+, libxslt
+, makeWrapper
+, perlPackages
+, pkg-config
+, swig
+, webkitgtk
+, wrapGAppsHook
 }:
 
-let
-
-  # Enable gnc-fq-* to run in command line.
-  perlWrapper = stdenv.mkDerivation {
-    name = perl.name + "-wrapper-for-gnucash";
-    nativeBuildInputs = [ makeWrapper ];
-    buildInputs = [ perl ] ++ (with perlPackages; [ FinanceQuote DateManip ]);
-    dontUnpack = true;
-
-    installPhase = ''
-      mkdir -p $out/bin
-      for script in ${perl}/bin/*; do
-        makeWrapper $script $out''${script#${perl}} \
-          --prefix "PERL5LIB" ":" "$PERL5LIB"
-      done
-    '';
-  };
-
-in
-
 stdenv.mkDerivation rec {
   pname = "gnucash";
   version = "4.9";
 
+  # raw source code doesn't work out of box; fetchFromGitHub not usable
   src = fetchurl {
-    url = "mirror://sourceforge/gnucash/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-mlUcMMG3EhmfwiJ6EJr7mE177xjhOBcLvHIlxsH6ty0=";
+    url = "https://github.com/Gnucash/gnucash/releases/download/${version}/${pname}-${version}.tar.bz2";
+    hash = "sha256-mlUcMMG3EhmfwiJ6EJr7mE177xjhOBcLvHIlxsH6ty0=";
   };
 
-  nativeBuildInputs = [ pkg-config makeWrapper cmake gtest swig ];
+  nativeBuildInputs = [
+    cmake
+    gettext
+    makeWrapper
+    wrapGAppsHook
+  ];
 
   buildInputs = [
-    boost icu libxml2 libxslt gettext isocodes gtk3 glibcLocales
-    webkitgtk dconf libofx aqbanking gwenhywfar libdbi
-    libdbiDrivers guile
-    perlWrapper perl
-  ] ++ (with perlPackages; [ FinanceQuote DateManip ]);
-
-  propagatedUserEnvPkgs = [ dconf ];
-
-  # glib-2.62 deprecations
-  NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS";
-
-  # this patch disables test-gnc-timezone and test-gnc-datetime which fail due to nix datetime challenges
-  patches = [ ./0001-changes.patch ];
-
-  postPatch = ''
-    patchShebangs .
+    aqbanking
+    boost
+    glib
+    glibcLocales
+    gtest
+    guile
+    gwenhywfar
+    icu
+    libdbi
+    libdbiDrivers
+    libofx
+    libxml2
+    libxslt
+    pkg-config
+    swig
+    webkitgtk
+  ]
+  ++ (with perlPackages; [
+    DateManip
+    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 needs to be an environment variable and not a cmake flag to suppress
+  # guile warning
+  GUILE_AUTO_COMPILE="0";
+
+  # `make check` target does not define its prerequisites but expects them to
+  # have already been built.  The list of targets below was built through trial
+  # and error based on failing tests.
+  doCheck = true;
+  preCheck = ''
+    make \
+      test-account-object \
+      test-address \
+      test-agedver \
+      test-app-utils \
+      test-aqb \
+      test-autoclear \
+      test-backend-dbi \
+      test-business \
+      test-column-types \
+      test-commodities \
+      test-customer \
+      test-dom-converters1 \
+      test-dynload \
+      test-employee \
+      test-engine \
+      test-exp-parser \
+      test-gnc-glib-utils \
+      test-gnc-guid \
+      test-gnc-int128 \
+      test-gnc-numeric \
+      test-gnc-path-util \
+      test-gnc-rational \
+      test-group-vs-book \
+      test-guid \
+      test-import-account-matcher \
+      test-import-backend \
+      test-import-map \
+      test-import-parse \
+      test-import-pending-matches \
+      test-incompatdep \
+      test-job \
+      test-kvp-frames \
+      test-kvp-value \
+      test-link-module-tax-us \
+      test-link-ofx \
+      test-load-backend \
+      test-load-c \
+      test-load-engine \
+      test-load-example-account \
+      test-load-xml2 \
+      test-lots \
+      test-modsysver \
+      test-numeric \
+      test-object \
+      test-print-parse-amount \
+      test-qof \
+      test-qofquerycore \
+      test-qofsession \
+      test-query \
+      test-querynew \
+      test-recurrence \
+      test-resolve-file-path \
+      test-scm-query \
+      test-scm-query-string \
+      test-split-register-copy-ops \
+      test-split-vs-account \
+      test-sqlbe \
+      test-string-converters \
+      test-sx \
+      test-tokenizer \
+      test-transaction-reversal \
+      test-transaction-voiding \
+      test-userdata-dir \
+      test-userdata-dir-invalid-home \
+      test-vendor \
+      test-xml-account \
+      test-xml-commodity \
+      test-xml-pricedb \
+      test-xml-transaction \
+      test-xml2-is-file
+
+      export LD_LIBRARY_PATH="$PWD/lib:$PWD/lib/gnucash:$PWD/lib/gnucash/test:$PWD/lib/gnucash/test/future"
   '';
 
-  makeFlags = [ "GUILE_AUTO_COMPILE=0" ];
+  preFixup = ''
+    gappsWrapperArgs+=(
+      # db drivers location
+      --set GNC_DBD_DIR ${libdbiDrivers}/lib/dbd
+      # gnome settings schemas location on Nix
+      --set GSETTINGS_SCHEMA_DIR ${glib.makeSchemaPath "$out" "${pname}-${version}"}
+    )
+  '';
 
-  postInstall = ''
-    # Auto-updaters don't make sense in Nix.
-    rm $out/bin/gnc-fq-update
+  # wrapGAppsHook would wrap all binaries including the cli utils which need
+  # Perl wrapping
+  dontWrapGApps = true;
 
-    # Unnecessary in the release build.
-    rm $out/bin/gnucash-valgrind
+  # 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" \
-      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share/gsettings-schemas/${pname}-${version}" \
-      --prefix XDG_DATA_DIRS : "${hicolor-icon-theme}/share" \
-      --prefix PERL5LIB ":" "$PERL5LIB" \
-      --set GNC_DBD_DIR ${libdbiDrivers}/lib/dbd \
-      --prefix GIO_EXTRA_MODULES : "${lib.getLib dconf}/lib/gio/modules"
+    for file in $out/bin/gnc-fq-check $out/bin/gnc-fq-dump $out/bin/gnc-fq-helper; do
+      wrapProgram $file \
+      --prefix PERL5LIB : "${with perlPackages; makeFullPerlPath [ DateManip FinanceQuote ]}"
+    done
   '';
 
-  /*
-  GNUcash's `make check` target does not define its prerequisites but expects them to have already been built.
-  The list of targets below was built through trial and error based on failing tests.
-  */
-  preCheck = ''
-    export LD_LIBRARY_PATH=$PWD/lib:$PWD/lib/gnucash:$PWD/lib/gnucash/test:$PWD/lib/gnucash/test/future''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
-    export NIX_CFLAGS_LINK="-lgtest -lgtest_main"
-    make test-scm-query test-split-register-copy-ops test-link-ofx test-import-backend test-import-account-matcher test-import-pending-matches test-qofquerycore test-import-map test-gnc-numeric test-gnc-rational test-gnc-int128 test-qofsession test-kvp-value test-gnc-guid test-numeric test-vendor test-job test-employee test-customer test-address test-business test-recurrence test-transaction-voiding test-transaction-reversal test-split-vs-account test-tokenizer test-aqb test-import-parse test-link-module-tax-us test-dynload test-agedver test-incompatdep test-modsysver test-load-c test-gnc-path-util test-xml2-is-file test-load-example-account test-query test-querynew test-lots test-group-vs-book test-account-object test-engine test-qof test-commodities test-object test-guid test-load-engine test-userdata-dir-invalid-home test-userdata-dir test-resolve-file-path test-gnc-glib-utils test-sqlbe test-column-types test-backend-dbi test-xml-transaction test-xml-pricedb test-xml-commodity test-xml-account test-string-converters test-load-backend test-kvp-frames test-dom-converters1 test-autoclear test-sx test-print-parse-amount gncmod-futuremodsys
-  '';
-  doCheck = true;
-
-  meta = {
-    description = "Personal and small-business financial-accounting application";
-
+  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, macOS and Microsoft Windows.
+      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
+      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.
-    '';
 
-    license = lib.licenses.gpl2Plus;
+      Some interesting features:
 
-    homepage = "http://www.gnucash.org/";
-
-    maintainers = [ lib.maintainers.domenkozar ];
-    platforms = lib.platforms.gnu ++ lib.platforms.linux;
+      - 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 ];
+    platforms = platforms.unix;
   };
 }
+# TODO: investigate Darwin support
diff --git a/nixpkgs/pkgs/applications/office/gnumeric/default.nix b/nixpkgs/pkgs/applications/office/gnumeric/default.nix
index 5ab9be9fa75a..13b0c84cfaa5 100644
--- a/nixpkgs/pkgs/applications/office/gnumeric/default.nix
+++ b/nixpkgs/pkgs/applications/office/gnumeric/default.nix
@@ -7,11 +7,11 @@ let
   inherit (python3Packages) python pygobject3;
 in stdenv.mkDerivation rec {
   pname = "gnumeric";
-  version = "1.12.50";
+  version = "1.12.51";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "dYgZuhvWmDgp+efG1xp/ogzXWjZSonHluwA9XYvMFLg=";
+    sha256 = "oA5sbk7N2tq9mwrhgBPXsFk3/cuPmq1ac7lZI8eusd0=";
   };
 
   configureFlags = [ "--disable-component" ];
diff --git a/nixpkgs/pkgs/applications/office/gtg/default.nix b/nixpkgs/pkgs/applications/office/gtg/default.nix
index 4b9237d23ce7..6d536ea60a3d 100644
--- a/nixpkgs/pkgs/applications/office/gtg/default.nix
+++ b/nixpkgs/pkgs/applications/office/gtg/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 , meson
 , python3Packages
 , ninja
@@ -25,6 +26,13 @@ python3Packages.buildPythonApplication rec {
     sha256 = "0b2slm7kjq6q8c7v4m7aqc8m1ynjxn3bl7445srpv1xc0dilq403";
   };
 
+  patches = [
+    # fix build with meson 0.60 (https://github.com/getting-things-gnome/gtg/pull/729)
+    (fetchpatch {
+      url = "https://github.com/getting-things-gnome/gtg/commit/1809d10663ae3d8f69c04138b66f9b4e66ee14f6.patch";
+      sha256 = "sha256-bYr5PAsuvcSqTf0vaJj2APtuBrwHdhXJxtXoAb7CfGk=";
+    })
+  ];
 
   nativeBuildInputs = [
     meson
diff --git a/nixpkgs/pkgs/applications/office/homebank/default.nix b/nixpkgs/pkgs/applications/office/homebank/default.nix
index 54e09783dbef..7e6910a3ab4b 100644
--- a/nixpkgs/pkgs/applications/office/homebank/default.nix
+++ b/nixpkgs/pkgs/applications/office/homebank/default.nix
@@ -3,10 +3,10 @@
 
 stdenv.mkDerivation rec {
   pname = "homebank";
-  version = "5.5.3";
+  version = "5.5.4";
   src = fetchurl {
     url = "http://homebank.free.fr/public/homebank-${version}.tar.gz";
-    sha256 = "sha256-BzYHkYqWEAh3kfNvWecNEmH+6OThFGpc/VhxodLZEJM=";
+    sha256 = "sha256-DQZpvKCZNArlwhPqE8srkyg7/IoOTPelkCwYKTZuV2U=";
   };
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/office/impressive/default.nix b/nixpkgs/pkgs/applications/office/impressive/default.nix
deleted file mode 100644
index f46d893d8948..000000000000
--- a/nixpkgs/pkgs/applications/office/impressive/default.nix
+++ /dev/null
@@ -1,70 +0,0 @@
-{ fetchurl, stdenv, python2, makeWrapper, lib
-, SDL, ghostscript, pdftk, dejavu_fonts }:
-
-let
-  version = "0.12.1";
-  pythonEnv = python2.withPackages (ps: with ps; [pyopengl pygame pillow]);
-in stdenv.mkDerivation {
-    # This project was formerly known as KeyJNote.
-    # See http://keyj.emphy.de/apple-lawsuit/ for details.
-
-    pname = "impressive";
-    inherit version;
-
-    src = fetchurl {
-      url = "mirror://sourceforge/impressive/Impressive-${version}.tar.gz";
-      sha256 = "1r7ihv41awnlnlry1kymb8fka053wdhzibfwcarn78rr3vs338vl";
-    };
-
-    nativeBuildInputs = [ makeWrapper ];
-    buildInputs = [ pythonEnv ];
-
-    configurePhase = ''
-      # Let's fail at build time if the library we're substituting in doesn't
-      # exist/isn't marked as executable
-      test -x ${SDL}/lib/libSDL.so
-      sed -i "impressive.py" \
-          -e '/^__website__/a SDL_LIBRARY = "${SDL}/lib/libSDL.so"' \
-          -e 's/sdl = CDLL.*/sdl = CDLL(SDL_LIBRARY)/' \
-          -e 's^FontPath =.*/usr/.*$^FontPath = ["${dejavu_fonts}/share/fonts", ""]^'
-    '';
-
-    installPhase = ''
-      mkdir -p "$out/bin" "$out/share/doc/impressive" "$out/share/man/man1"
-      mv impressive.py "$out/bin/impressive"
-      mv impressive.1 "$out/share/man/man1"
-      mv changelog.txt impressive.html license.txt "$out/share/doc/impressive"
-
-      wrapProgram "$out/bin/impressive" \
-         --prefix PATH ":" "${ghostscript}/bin:${pdftk}/bin"
-    '';
-
-    meta = {
-      description = "Impressive, an effect-rich presentation tool for PDFs";
-
-      longDescription = ''
-        Impressive is a program that displays presentation slides.
-        But unlike OpenOffice.org Impress or other similar
-        applications, it does so with style.  Smooth alpha-blended
-        slide transitions are provided for the sake of eye candy, but
-        in addition to this, Impressive offers some unique tools that
-        are really useful for presentations.  Read below if you want
-        to know more about these features.
-
-        Creating presentations for Impressive is very simple: You just
-        need to export a PDF file from your presentation software.
-        This means that you can create slides in the application of
-        your choice and use Impressive for displaying them.  If your
-        application does not support PDF output, you can alternatively
-        use a set of pre-rendered image files – or you use Impressive
-        to make a slideshow with your favorite photos.
-      '';
-
-      homepage = "http://impressive.sourceforge.net/";
-
-      license = lib.licenses.gpl2;
-
-      maintainers = with lib.maintainers; [ lheckemann ];
-      platforms = lib.platforms.mesaPlatforms;
-    };
-  }
diff --git a/nixpkgs/pkgs/applications/office/jabref/default.nix b/nixpkgs/pkgs/applications/office/jabref/default.nix
index 0b4ce74cdfa7..964d17587a4a 100644
--- a/nixpkgs/pkgs/applications/office/jabref/default.nix
+++ b/nixpkgs/pkgs/applications/office/jabref/default.nix
@@ -2,12 +2,12 @@
 , zlib , libX11, libXext, libXi, libXrender, libXtst, libGL, alsa-lib, cairo, freetype, pango, gdk-pixbuf, glib }:
 
 stdenv.mkDerivation rec {
-  version = "5.1";
+  version = "5.5";
   pname = "jabref";
 
   src = fetchurl {
     url = "https://github.com/JabRef/jabref/releases/download/v${version}/JabRef-${version}-portable_linux.tar.gz";
-    sha256 = "04f612byrq3agzy26byg1sgrjyhcpa8xfj0ssh8dl8d8vnhx9742";
+    sha256 = "sha256-9MHNehyAmu7CiBp1rgb4zTkSqmjXm2tcmiGKFBFapKI=";
   };
 
   preferLocalBuild = true;
diff --git a/nixpkgs/pkgs/applications/office/jameica/default.nix b/nixpkgs/pkgs/applications/office/jameica/default.nix
index c983787d23e5..678c3bb357c5 100644
--- a/nixpkgs/pkgs/applications/office/jameica/default.nix
+++ b/nixpkgs/pkgs/applications/office/jameica/default.nix
@@ -1,8 +1,8 @@
 { lib, stdenv, fetchFromGitHub, makeDesktopItem, makeWrapper, ant, jdk, jre, gtk2, glib, xorg, Cocoa }:
 
 let
-  _version = "2.10.0";
-  _build = "480";
+  _version = "2.10.1";
+  _build = "482";
   version = "${_version}-${_build}";
   name = "jameica-${version}";
 
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     owner = "willuhn";
     repo = "jameica";
     rev = "V_${builtins.replaceStrings ["."] ["_"] _version}_BUILD_${_build}";
-    sha256 = "0rzhbskzzvr9aan6fwxd2kmzg79ranx7aym5yn1i37z3ra67d1nz";
+    sha256 = "0pzcfqsf7flzipwivpinpkfb2xisand1sfjm00wif4pyj3f4qfh1";
   };
 
   # there is also a build.gradle, but it only seems to be used to vendor 3rd party libraries
@@ -70,6 +70,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl2Plus;
     platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
-    maintainers = with maintainers; [ flokli ];
+    maintainers = with maintainers; [ flokli r3dl3g ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/office/kalendar/default.nix b/nixpkgs/pkgs/applications/office/kalendar/default.nix
index fa8f686c5eea..32cc2f5de57c 100644
--- a/nixpkgs/pkgs/applications/office/kalendar/default.nix
+++ b/nixpkgs/pkgs/applications/office/kalendar/default.nix
@@ -10,6 +10,7 @@
 , qtsvg
 , qtlocation
 , qtdeclarative
+, qqc2-desktop-style
 
 , kirigami2
 , kdbusaddons
@@ -38,14 +39,14 @@
 
 mkDerivation rec {
   pname = "kalendar";
-  version = "0.3.1";
+  version = "1.0.0";
 
   src = fetchFromGitLab {
     domain = "invent.kde.org";
     owner = "pim";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-foG8j/MRbDZyzM9KmxEARfWUQXMz8ylQgersE1/gtnQ=";
+    sha256 = "sha256-kjtLVU+8wbIa7R6J1XOjuvS3AnJNngxNBCx24Dy1QzM=";
   };
 
   nativeBuildInputs = [
@@ -60,6 +61,7 @@ mkDerivation rec {
     qtsvg
     qtlocation
     qtdeclarative
+    qqc2-desktop-style
 
     kirigami2
     kdbusaddons
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/darwin.nix b/nixpkgs/pkgs/applications/office/libreoffice/darwin.nix
new file mode 100644
index 000000000000..765cbcd43024
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/libreoffice/darwin.nix
@@ -0,0 +1,51 @@
+{ stdenv
+, lib
+, fetchurl
+, undmg
+}:
+
+let
+  appName = "LibreOffice.app";
+  version = "7.2.5";
+  dist = {
+    aarch64-darwin = {
+      arch = "aarch64";
+      sha256 = "bdbcb9a98211f866ca089d440aebcd1d313aa99e8ab4104aae4e65ea3cee74ca";
+    };
+
+    x86_64-darwin = {
+      arch = "x86_64";
+      sha256 = "0b7ef18ed08341ac6c15339fe9a161ad17f6b469009d987cfc7d50c628d12a4e";
+    };
+  }."${stdenv.hostPlatform.system}";
+in
+stdenv.mkDerivation {
+  inherit version;
+  pname = "libreoffice";
+  src = fetchurl {
+    url = "https://download.documentfoundation.org/libreoffice/stable/${version}/mac/${dist.arch}/LibreOffice_${version}_MacOS_${dist.arch}.dmg";
+    inherit (dist) sha256;
+  };
+
+  nativeBuildInputs = [ undmg ];
+  sourceRoot = "${appName}";
+  dontPatch = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstallPhase
+    mkdir -p $out/{Applications/${appName},bin}
+    cp -R . $out/Applications/${appName}
+    ln -s $out/Applications/${appName}/Contents/MacOS/soffice $out/bin
+    runHook postInstallPhase
+  '';
+
+  meta = with lib; {
+    description = "Comprehensive, professional-quality productivity suite, a variant of openoffice.org";
+    homepage = "https://libreoffice.org/";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ tricktron ];
+    platforms = [ "aarch64-darwin" "x86_64-darwin" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/default.nix b/nixpkgs/pkgs/applications/office/libreoffice/default.nix
index 8572ff15c1db..c5b5fc56f785 100644
--- a/nixpkgs/pkgs/applications/office/libreoffice/default.nix
+++ b/nixpkgs/pkgs/applications/office/libreoffice/default.nix
@@ -25,7 +25,7 @@ assert builtins.elem variant [ "fresh" "still" ];
 
 let
   jre' = jre_minimal.override {
-    modules = [ "java.base" "java.desktop" ];
+    modules = [ "java.base" "java.desktop" "java.logging" ];
   };
 
   importVariant = f: import (./. + "/src-${variant}/${f}");
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix b/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix
index ecce7cf18145..9bfccf4c3069 100644
--- a/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix
+++ b/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix
@@ -714,11 +714,11 @@
     md5name = "505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca-libpng-1.6.37.tar.xz";
   }
   {
-    name = "poppler-21.01.0.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/poppler-21.01.0.tar.xz";
-    sha256 = "016dde34e5f868ea98a32ca99b643325a9682281500942b7113f4ec88d20e2f3";
+    name = "poppler-21.11.0.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/poppler-21.11.0.tar.xz";
+    sha256 = "31b76b5cac0a48612fdd154c02d9eca01fd38fb8eaa77c1196840ecdeb53a584";
     md5 = "";
-    md5name = "016dde34e5f868ea98a32ca99b643325a9682281500942b7113f4ec88d20e2f3-poppler-21.01.0.tar.xz";
+    md5name = "31b76b5cac0a48612fdd154c02d9eca01fd38fb8eaa77c1196840ecdeb53a584-poppler-21.11.0.tar.xz";
   }
   {
     name = "poppler-data-0.4.10.tar.gz";
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix b/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix
index f1a1478a3cf9..7d13558b9357 100644
--- a/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix
+++ b/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix
@@ -8,8 +8,8 @@ rec {
 
   major = "7";
   minor = "2";
-  patch = "4";
-  tweak = "1";
+  patch = "5";
+  tweak = "2";
 
   subdir = "${major}.${minor}.${patch}";
 
@@ -17,13 +17,13 @@ rec {
 
   src = fetchurl {
     url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
-    sha256 = "sha256-Ymi5BmpgWGzwpfXtmWDN+Gpf9Yb+Zpm/TSltWA3gjyE=";
+    sha256 = "sha256-Z8G/sFnUMyhrAlKpFWJ7M69ju19LbslQnRO53UdVEqc=";
   };
 
   # FIXME rename
   translations = fetchSrc {
     name = "translations";
-    sha256 = "sha256-8nzCt7/J7gqJPtHOrVu7UTonJw1pxu4fnLWJyWOUHa8=";
+    sha256 = "sha256-9rnuRifsEX7RAUdsX6VVw/xQS6dZeS3RbKnoC39uMd8=";
   };
 
   # the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from
@@ -31,6 +31,6 @@ rec {
 
   help = fetchSrc {
     name = "help";
-    sha256 = "sha256-rZb1ej3GbgXOHOZWVKKJVuir2urLmvGmrdpB1vpcaCk=";
+    sha256 = "sha256-6vERLWh0fkQcSRkC37fw2HBqxVtbr9kPEhOyWXjMrfM=";
   };
 }
diff --git a/nixpkgs/pkgs/applications/office/morgen/default.nix b/nixpkgs/pkgs/applications/office/morgen/default.nix
new file mode 100644
index 000000000000..bfe72a7115a4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/morgen/default.nix
@@ -0,0 +1,59 @@
+{ lib, stdenv, fetchurl, dpkg, autoPatchelfHook, makeWrapper, electron
+, nodePackages, alsa-lib, gtk3, libxshmfence, mesa, nss }:
+
+stdenv.mkDerivation rec {
+  pname = "morgen";
+  version = "2.4.3";
+
+  src = fetchurl {
+    url = "https://download.todesktop.com/210203cqcj00tw1/morgen-${version}.deb";
+    sha256 = "sha256-IWGeb0+IiFNYJ+jQAzGYfQ5FnrbR6HIpynS9jgd5/mY=";
+  };
+
+  nativeBuildInputs = [
+    dpkg
+    autoPatchelfHook
+    makeWrapper
+    nodePackages.asar
+  ];
+
+  buildInputs = [ alsa-lib gtk3 libxshmfence mesa nss ];
+
+  dontBuild = true;
+  dontConfigure = true;
+
+  unpackCmd = ''
+    dpkg-deb -x ${src} ./morgen-${pname}
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mv usr $out
+    mv opt $out
+
+    asar extract $out/opt/Morgen/resources/app.asar "$TMP/work"
+    # 1. Fixes path for todesktop-runtime-config.json
+    # 2. Fixes startup script
+    substituteInPlace $TMP/work/dist/main.js \
+      --replace "process.resourcesPath,\"todesktop-runtime-config.json" "\"$out/opt/Morgen/resources/todesktop-runtime-config.json" \
+      --replace "Exec=\"+process.execPath+\"" "Exec=$out/bin/morgen"
+    asar pack --unpack='{*.node,*.ftz,rect-overlay}' "$TMP/work" $out/opt/Morgen/resources/app.asar
+
+    substituteInPlace $out/share/applications/morgen.desktop \
+      --replace '/opt/Morgen' $out/bin
+
+    makeWrapper ${electron}/bin/electron $out/bin/morgen \
+      --add-flags $out/opt/Morgen/resources/app.asar
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "All-in-one Calendars, Tasks and Scheduler";
+    homepage = "https://morgen.so/download";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ wolfangaukang ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/notion-app-enhanced/default.nix b/nixpkgs/pkgs/applications/office/notion-app-enhanced/default.nix
index d588580a8db9..84635f42ee45 100644
--- a/nixpkgs/pkgs/applications/office/notion-app-enhanced/default.nix
+++ b/nixpkgs/pkgs/applications/office/notion-app-enhanced/default.nix
@@ -1,12 +1,12 @@
 { appimageTools, lib, fetchurl }:
 let
   pname = "notion-app-enhanced";
-  version = "2.0.16-5";
+  version = "2.0.18-1";
   name = "${pname}-v${version}";
 
   src = fetchurl {
     url = "https://github.com/notion-enhancer/notion-repackaged/releases/download/v${version}/Notion-Enhanced-${version}.AppImage";
-    sha256 = "1v733b4clc9sjgb72fasmbqiyz26d09f3kmvd1nqshwp5d14dajz";
+    sha256 = "sha256-SqeMnoMzxxaViJ3NPccj3kyMc1xvXWULM6hQIDZySWY=";
   };
 
   appimageContents = appimageTools.extract { inherit name src; };
diff --git a/nixpkgs/pkgs/applications/office/paperless-ng/default.nix b/nixpkgs/pkgs/applications/office/paperless-ng/default.nix
index 64ef525cfc84..2fcb2388b8c8 100644
--- a/nixpkgs/pkgs/applications/office/paperless-ng/default.nix
+++ b/nixpkgs/pkgs/applications/office/paperless-ng/default.nix
@@ -83,7 +83,7 @@ py.pkgs.pythonPackages.buildPythonApplication rec {
     daphne
     dateparser
     django-cors-headers
-    django_extensions
+    django-extensions
     django-filter
     django-picklefield
     django-q
diff --git a/nixpkgs/pkgs/applications/office/pyspread/default.nix b/nixpkgs/pkgs/applications/office/pyspread/default.nix
index 3c68c19aa97c..b7261dca5a4d 100644
--- a/nixpkgs/pkgs/applications/office/pyspread/default.nix
+++ b/nixpkgs/pkgs/applications/office/pyspread/default.nix
@@ -1,31 +1,22 @@
 { lib
-, python3
-, fetchpatch
+, copyDesktopItems
 , makeDesktopItem
+, python3
 , qtsvg
 , wrapQtAppsHook
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "pyspread";
-  version = "1.99.6";
+  version = "2.0.2";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "sha256-B1oyWUAXn63mmVFN9brJwbHxi7I5nYrK2JJU1DjAlb8=";
+    hash = "sha256-rg2T9Y9FU2a+aWg0XM8jyQB9t8zDVlpad3TjUcx4//8=";
   };
 
-  patches = [
-    # https://gitlab.com/pyspread/pyspread/-/merge_requests/34
-    (fetchpatch {
-      name = "entry-points.patch";
-      url = "https://gitlab.com/pyspread/pyspread/-/commit/3d8da6a7a7d76f7027d77ca95fac103961d729a2.patch";
-      excludes = [ "bin/pyspread" "bin/pyspread.bat" ];
-      sha256 = "1l614k7agv339hrin23jj7s1mq576vkdfkdim6wp224k7y37bnil";
-    })
-  ];
-
   nativeBuildInputs = [
+    copyDesktopItems
     wrapQtAppsHook
   ];
 
@@ -47,19 +38,17 @@ python3.pkgs.buildPythonApplication rec {
 
   pythonImportsCheck = [ "pyspread" ];
 
-  desktopItem = makeDesktopItem rec {
-    name = pname;
-    exec = name;
-    icon = name;
-    desktopName = "Pyspread";
-    genericName = "Spreadsheet";
-    comment = meta.description;
-    categories = "Office;Development;Spreadsheet;";
-  };
-
-  postInstall = ''
-    install -m 444 -Dt $out/share/applications ${desktopItem}/share/applications/*
-  '';
+  desktopItems = [
+    (makeDesktopItem rec {
+      name = pname;
+      exec = name;
+      icon = name;
+      desktopName = "Pyspread";
+      genericName = "Spreadsheet";
+      comment = meta.description;
+      categories = "Office;Development;Spreadsheet;";
+    })
+  ];
 
   preFixup = ''
     makeWrapperArgs+=("''${qtWrapperArgs[@]}")
diff --git a/nixpkgs/pkgs/applications/office/qownnotes/default.nix b/nixpkgs/pkgs/applications/office/qownnotes/default.nix
index f5bc6d0d14ff..20449b1911ff 100644
--- a/nixpkgs/pkgs/applications/office/qownnotes/default.nix
+++ b/nixpkgs/pkgs/applications/office/qownnotes/default.nix
@@ -5,13 +5,13 @@
 
 mkDerivation rec {
   pname = "qownnotes";
-  version = "21.12.8";
+  version = "22.2.7";
 
   src = fetchurl {
     url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
     # Fetch the checksum of current version with curl:
     # curl https://download.tuxfamily.org/qownnotes/src/qownnotes-<version>.tar.xz.sha256
-    sha256 = "sha256-iVcGJz4lxyn303ACYBUVm9cOYjVrETpyUapjAieMpqE=";
+    sha256 = "f7c97f3dc3435ecdc740131548aacd390332c8b97c4e6fee98a3e80985786533";
   };
 
   nativeBuildInputs = [ qmake qttools ];
diff --git a/nixpkgs/pkgs/applications/office/scribus/unstable.nix b/nixpkgs/pkgs/applications/office/scribus/unstable.nix
index 6aed41d7f9af..21adb90cab9e 100644
--- a/nixpkgs/pkgs/applications/office/scribus/unstable.nix
+++ b/nixpkgs/pkgs/applications/office/scribus/unstable.nix
@@ -83,6 +83,11 @@ mkDerivation rec {
     qttools
   ];
 
+  cmakeFlags = [
+    # poppler uses std::optional
+    "-DWANT_CPP17=ON"
+  ];
+
   meta = with lib; {
     maintainers = with maintainers; [
       erictapen
diff --git a/nixpkgs/pkgs/applications/office/skrooge/default.nix b/nixpkgs/pkgs/applications/office/skrooge/default.nix
index 506a2f99f607..3958d2870942 100644
--- a/nixpkgs/pkgs/applications/office/skrooge/default.nix
+++ b/nixpkgs/pkgs/applications/office/skrooge/default.nix
@@ -7,11 +7,11 @@
 
 mkDerivation rec {
   pname = "skrooge";
-  version = "2.26.1";
+  version = "2.27.0";
 
   src = fetchurl {
     url = "https://download.kde.org/stable/skrooge/${pname}-${version}.tar.xz";
-    sha256 = "sha256-66hoA+FDTeMbNAInr9TlTSnwUywJQjTRz87MkdNYn5Q=";
+    sha256 = "sha256-xkl0UyJEDOeYOqqXf3woCDMb8ZyC2c5ChQdDFFERZxE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/office/spice-up/default.nix b/nixpkgs/pkgs/applications/office/spice-up/default.nix
index 7b72ddcf0d98..1de5a8b817b4 100644
--- a/nixpkgs/pkgs/applications/office/spice-up/default.nix
+++ b/nixpkgs/pkgs/applications/office/spice-up/default.nix
@@ -1,65 +1,59 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, fetchpatch
-, cmake
-, gdk-pixbuf
-, gtk3
-, vala
-, gettext
+, meson
 , ninja
-, pantheon
 , pkg-config
+, python3
+, vala
+, wrapGAppsHook
+, glib
+, gtk3
 , json-glib
-, libgudev
 , libevdev
 , libgee
+, libgudev
 , libsoup
-, wrapGAppsHook
+, pantheon
 }:
 
 stdenv.mkDerivation rec {
   pname = "spice-up";
-  version = "1.8.2";
+  version = "1.9.1";
 
   src = fetchFromGitHub {
     owner = "Philip-Scott";
     repo = "Spice-up";
     rev = version;
-    sha256 = "1pix911l4ddn50026a5sbpqfzba6fmw40m1yzbknmkgd2ny28f0m";
+    sha256 = "sha256-FI6YMbqZfaU19k8pS2eoNCnX8O8F99SHHOxMwHC5fTc=";
   };
 
-  USER = "pbuilder";
-
   nativeBuildInputs = [
-    cmake
-    gettext
+    meson
     ninja
     pkg-config
+    python3
     vala
     wrapGAppsHook
   ];
 
   buildInputs = [
-    pantheon.elementary-icon-theme
-    pantheon.granite
-    gdk-pixbuf
+    glib
     gtk3
     json-glib
     libevdev
     libgee
     libgudev
     libsoup
+    pantheon.elementary-icon-theme
+    pantheon.granite
   ];
 
-  patches = [
-    # Fix build with Vala 0.46
-    # https://github.com/Philip-Scott/Spice-up/pull/288
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/Philip-Scott/Spice-up/pull/288.patch";
-      sha256 = "0kyfd8v2sk4cvcq1j8ysp64snfjhnpr3iz7l04lx7if7h372xj39";
-    })
-  ];
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
 
   passthru = {
     updateScript = nix-update-script {
@@ -74,6 +68,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     # The COPYING file has GPLv3; some files have GPLv2+ and some have GPLv3+
     license = licenses.gpl3Plus;
-    mainProgram = "com.github.philip-scott.spice-up";
+    mainProgram = "com.github.philip_scott.spice-up";
   };
 }
diff --git a/nixpkgs/pkgs/applications/office/super-productivity/default.nix b/nixpkgs/pkgs/applications/office/super-productivity/default.nix
index 73a6b7b457ec..ccb4cea95ecb 100644
--- a/nixpkgs/pkgs/applications/office/super-productivity/default.nix
+++ b/nixpkgs/pkgs/applications/office/super-productivity/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "super-productivity";
-  version = "7.9.1";
+  version = "7.10.1";
 
   src = fetchurl {
     url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
-    sha256 = "sha256:0lxnl5ai23dwfsyrkpi9l1a0gl0qn6vp7hzmca77nyx974d6j8m4";
+    sha256 = "sha256-jhCsC5G8epyclp2+DYpot1UMjo5mkMa0UO0bQZ1T0Ug=";
     name = "${pname}-${version}.AppImage";
   };
 
diff --git a/nixpkgs/pkgs/applications/office/timedoctor/default.nix b/nixpkgs/pkgs/applications/office/timedoctor/default.nix
index 41273b7780e3..ab2f8df70479 100644
--- a/nixpkgs/pkgs/applications/office/timedoctor/default.nix
+++ b/nixpkgs/pkgs/applications/office/timedoctor/default.nix
@@ -117,7 +117,7 @@ appimageTools.wrapType2 {
     description = "Employee time tracking software";
     homepage = "https://www.timedoctor.com";
     license = licenses.unfree;
-    maintainers = with maintainers; [ kamadorueda ];
+    maintainers = with maintainers; [ dsalaza4 ];
     platforms = [ "x86_64-linux" ];
     # gpgme for i686-linux failed to build.
     broken = true;
diff --git a/nixpkgs/pkgs/applications/office/timekeeper/default.nix b/nixpkgs/pkgs/applications/office/timekeeper/default.nix
deleted file mode 100644
index ba9390251fc5..000000000000
--- a/nixpkgs/pkgs/applications/office/timekeeper/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, poco
-, pkg-config
-, gnome2
-, gtkmm2
-, lib
-}:
-
-stdenv.mkDerivation rec {
-  pname = "timekeeper";
-  version = "1.0";
-
-  src = fetchFromGitHub {
-    owner = "bburdette";
-    repo = "TimeKeeper";
-    rev = "v${version}";
-    fetchSubmodules = true;
-    sha256 = "03rvzkygnn7igcindbb5bcmfy0l83n0awkzprsnhlb6ndxax3k9w";
-  };
-
-  nativeBuildInputs = [
-    poco
-    pkg-config
-  ];
-
-  buildInputs = [
-    gtkmm2
-    gnome2.libglademm
-    gnome2.libglade
-  ];
-
-  installPhase = ''
-    install -Dm755 TimeKeeper/TimeKeeper $out/bin/timekeeper
-    '';
-
-  meta = with lib; {
-    description = "Log hours worked and make reports";
-    homepage = "https://github.com/bburdette/TimeKeeper";
-    maintainers = with maintainers; [ bburdette ];
-    platforms = [ "x86_64-linux" ];
-    license = licenses.bsd3;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/office/timeline/default.nix b/nixpkgs/pkgs/applications/office/timeline/default.nix
index f4f83ce8e7a7..526777162473 100644
--- a/nixpkgs/pkgs/applications/office/timeline/default.nix
+++ b/nixpkgs/pkgs/applications/office/timeline/default.nix
@@ -18,7 +18,7 @@ python3.pkgs.buildPythonApplication rec {
   nativeBuildInputs = [ python3.pkgs.wrapPython copyDesktopItems ];
 
   pythonPath = with python3.pkgs; [
-    wxPython_4_0 # not compatible with wxPython_4_1. reported upstream https://github.com/wxWidgets/Phoenix/issues/1956
+    wxPython_4_1
     humblewx
     icalendar
     markdown
diff --git a/nixpkgs/pkgs/applications/office/treesheets/default.nix b/nixpkgs/pkgs/applications/office/treesheets/default.nix
index 1f084e182afc..d8fe8649381d 100644
--- a/nixpkgs/pkgs/applications/office/treesheets/default.nix
+++ b/nixpkgs/pkgs/applications/office/treesheets/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
       planning, requirements gathering, presentation of information, etc.
     '';
 
-    homepage    = "http://strlen.com/treesheets/";
+    homepage    = "https://strlen.com/treesheets/";
     maintainers = with maintainers; [ obadz avery ];
     platforms   = platforms.linux;
     license     = licenses.zlib;
diff --git a/nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch b/nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch
index 0cb26afe8296..7b2635cfe121 100644
--- a/nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch
+++ b/nixpkgs/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch
@@ -1,13 +1,14 @@
 diff --git a/src/services/log.js b/src/services/log.js
-index 4f29994..1e89e0a 100644
+index 0fcd9812..dcbff070 100644
 --- a/src/services/log.js
 +++ b/src/services/log.js
-@@ -1,14 +1,5 @@
+@@ -1,15 +1,7 @@
  "use strict";
  
 -const fs = require('fs');
 -const dataDir = require('./data_dir');
--
+ const cls = require('./cls');
+ 
 -if (!fs.existsSync(dataDir.LOG_DIR)) {
 -    fs.mkdirSync(dataDir.LOG_DIR, 0o700);
 -}
@@ -17,7 +18,7 @@ index 4f29994..1e89e0a 100644
  const SECOND = 1000;
  const MINUTE = 60 * SECOND;
  const HOUR = 60 * MINUTE;
-@@ -16,45 +7,7 @@ const DAY = 24 * HOUR;
+@@ -17,38 +9,6 @@ const DAY = 24 * HOUR;
  
  const NEW_LINE = process.platform === "win32" ? '\r\n' : '\n';
  
@@ -54,6 +55,12 @@ index 4f29994..1e89e0a 100644
 -}
 -
  function log(str) {
+     const bundleNoteId = cls.get("bundleNoteId");
+ 
+@@ -56,12 +16,6 @@ function log(str) {
+         str = `[Script ${bundleNoteId}] ${str}`;
+     }
+ 
 -    let millisSinceMidnight = Date.now() - todaysMidnight.getTime();
 -
 -    millisSinceMidnight = checkDate(millisSinceMidnight);
@@ -63,41 +70,3 @@ index 4f29994..1e89e0a 100644
      console.log(str);
  }
  
-@@ -83,37 +36,6 @@ function request(req, res, timeMs, responseLength = "?") {
-         `${res.statusCode} ${req.method} ${req.url} with ${responseLength} bytes took ${timeMs}ms`);
- }
- 
--function pad(num) {
--    num = Math.floor(num);
--
--    return num < 10 ? ("0" + num) : num.toString();
--}
--
--function padMilli(num) {
--    if (num < 10) {
--        return "00" + num;
--    }
--    else if (num < 100) {
--        return "0" + num;
--    }
--    else {
--        return num.toString();
--    }
--}
--
--function formatTime(millisSinceMidnight) {
--    return pad(millisSinceMidnight / HOUR)
--        + ":" + pad((millisSinceMidnight % HOUR) / MINUTE)
--        + ":" + pad((millisSinceMidnight % MINUTE) / SECOND)
--        + "." + padMilli(millisSinceMidnight % SECOND);
--}
--
--function formatDate() {
--    return pad(todaysMidnight.getFullYear())
--        + "-" + pad(todaysMidnight.getMonth() + 1)
--        + "-" + pad(todaysMidnight.getDate());
--}
--
- module.exports = {
-     info,
-     error,
diff --git a/nixpkgs/pkgs/applications/office/trilium/default.nix b/nixpkgs/pkgs/applications/office/trilium/default.nix
index 8782b2288e68..0c72bc964182 100644
--- a/nixpkgs/pkgs/applications/office/trilium/default.nix
+++ b/nixpkgs/pkgs/applications/office/trilium/default.nix
@@ -19,16 +19,16 @@ let
     maintainers = with maintainers; [ fliegendewurst ];
   };
 
-  version = "0.48.8";
+  version = "0.50.2";
 
   desktopSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
-    sha256 = "1dz4wdx3d1pmm3yrvipqa929f6gqilhfc3sp6xcgbn9faypp6qra";
+    sha256 = "0fljza5afpjxgrzgskjhs7w86aa51d88xzv2h43666638j3c5mvk";
   };
 
   serverSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
-    sha256 = "0jp1hj51x5wz27f7739nwwli119pzpskg269cxk4i04xxbhr145j";
+    sha256 = "0jqpi1gc48jxvc68yzx80jp553haihybj3g3c5ymvqmgivwn7n4c";
   };
 
 in {
diff --git a/nixpkgs/pkgs/applications/office/vnote/default.nix b/nixpkgs/pkgs/applications/office/vnote/default.nix
index 4b173030d393..f548cf01fcd5 100644
--- a/nixpkgs/pkgs/applications/office/vnote/default.nix
+++ b/nixpkgs/pkgs/applications/office/vnote/default.nix
@@ -8,14 +8,14 @@
 
 mkDerivation rec {
   pname = "vnote";
-  version = "3.11.0";
+  version = "3.12.888";
 
   src = fetchFromGitHub {
     owner = "vnotex";
     repo = pname;
     fetchSubmodules = true;
     rev = "v${version}";
-    sha256 = "sha256-JZqV+ZDYRWiuKLSctB2L2SGPmboLeL3HeecMoaNXY+4=";
+    sha256 = "sha256-l9oFixyEM0aAfvrC5rrQMzv7n8rUHECRzhuIQJ/szjc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/office/watson/default.nix b/nixpkgs/pkgs/applications/office/watson/default.nix
index 7584debc20f2..cf4fa359749f 100644
--- a/nixpkgs/pkgs/applications/office/watson/default.nix
+++ b/nixpkgs/pkgs/applications/office/watson/default.nix
@@ -10,7 +10,8 @@ let
   # Workaround the issue by providing click 7 explicitly.
   python = python3.override {
     packageOverrides = self: super: {
-      click = self.callPackage ../../../development/python-modules/click/7.nix { };
+      # Use click 7
+      click = self.callPackage ../../../development/python2-modules/click/default.nix { };
     };
   };
 in with python.pkgs; buildPythonApplication rec {
diff --git a/nixpkgs/pkgs/applications/office/zanshin/default.nix b/nixpkgs/pkgs/applications/office/zanshin/default.nix
index 57947e23baa0..d0d8374e64c3 100644
--- a/nixpkgs/pkgs/applications/office/zanshin/default.nix
+++ b/nixpkgs/pkgs/applications/office/zanshin/default.nix
@@ -10,11 +10,11 @@
 
 mkDerivation rec {
   pname = "zanshin";
-  version = "21.12.0";
+  version = "21.12.2";
 
   src = fetchurl {
     url = "mirror://kde/stable/release-service/${version}/src/zanshin-${version}.tar.xz";
-    sha256 = "sha256-l8W47tS7q747fkSAH3HJdwPsqjMfCyxzl3xJEeAXeh0=";
+    sha256 = "sha256-zMCV4KIrqeKHEsMbqEbnm/DgQiGxZbZXDVMuSSrXj8Y=";
   };
 
   nativeBuildInputs = [