about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/text
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2022-12-06 19:57:55 +0000
committerAlyssa Ross <hi@alyssa.is>2023-02-08 13:48:30 +0000
commitbf3aadfdd39aa197e18bade671fab6726349ffa4 (patch)
tree698567af766ed441d757b57a7b21e68d4a342a2b /nixpkgs/pkgs/tools/text
parentf4afc5a01d9539ce09e47494e679c51f80723d07 (diff)
parent99665eb45f58d959d2cb9e49ddb960c79d596f33 (diff)
downloadnixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.gz
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.bz2
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.lz
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.xz
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.zst
nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.zip
Merge commit '99665eb45f58d959d2cb9e49ddb960c79d596f33'
Diffstat (limited to 'nixpkgs/pkgs/tools/text')
-rw-r--r--nixpkgs/pkgs/tools/text/angle-grinder/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/asciigraph/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/text/bashblog/0001-Setting-markdown_bin.patch25
-rw-r--r--nixpkgs/pkgs/tools/text/bashblog/default.nix63
-rw-r--r--nixpkgs/pkgs/tools/text/choose/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/chroma/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/chroma/src.json8
-rw-r--r--nixpkgs/pkgs/tools/text/cidrgrep/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/text/cmigemo/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/text/codesearch/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/text/colordiff/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/crowdin-cli/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/text/csview/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/difftastic/default.nix39
-rw-r--r--nixpkgs/pkgs/tools/text/discount/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/text/discount/parallel-make.patch15
-rw-r--r--nixpkgs/pkgs/tools/text/dos2unix/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/each/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/epubcheck/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/fastmod/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/goawk/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/text/gpt2tc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/groff/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/text/gtranslator/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/text/gucci/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/text/gucci/deps.nix30
-rw-r--r--nixpkgs/pkgs/tools/text/hck/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/highlight/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/html-tidy/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/text/igrep/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/text/invoice2data/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/ispell/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/jsawk/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/jumanpp/0001-Exclude-all-tests-from-the-build.patch177
-rw-r--r--nixpkgs/pkgs/tools/text/jumanpp/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/text/kdiff3/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/languagetool/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/text/link-grammar/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/text/ltex-ls/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/text/m2r/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/text/mark/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-admonish/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-linkcheck/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-mermaid/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/text/mdcat/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/text/miller/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/text/mmdoc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/nkf/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/text/opencc/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/text/paperoni/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/text/poedit/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/text/qshowdiff/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/text/replace/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/text/robodoc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/rs/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/text/runiq/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/sad/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/seehecht/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/text/shfmt/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/sift/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/text/silver-searcher/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/source-highlight/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/tab/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/text/tidy-viewer/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/tuc/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/text/ugrep/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/vale/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/text/xidel/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/text/xml/basex/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/text/xml/html-xml-utils/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/xml/jing-trang/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/text/xml/xmldiff/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/xml/xpf/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/text/xurls/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/text/zim-tools/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/text/zimwriterfs/default.nix43
-rw-r--r--nixpkgs/pkgs/tools/text/zoekt/default.nix4
78 files changed, 807 insertions, 395 deletions
diff --git a/nixpkgs/pkgs/tools/text/angle-grinder/default.nix b/nixpkgs/pkgs/tools/text/angle-grinder/default.nix
index a2303c10a639..987b61da9f0a 100644
--- a/nixpkgs/pkgs/tools/text/angle-grinder/default.nix
+++ b/nixpkgs/pkgs/tools/text/angle-grinder/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rcoh/angle-grinder";
     license = licenses.mit;
     maintainers = with maintainers; [ bbigras ];
+    mainProgram = "agrind";
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/asciigraph/default.nix b/nixpkgs/pkgs/tools/text/asciigraph/default.nix
index 5cfa00d5326f..d1bf36a744bc 100644
--- a/nixpkgs/pkgs/tools/text/asciigraph/default.nix
+++ b/nixpkgs/pkgs/tools/text/asciigraph/default.nix
@@ -1,22 +1,24 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "asciigraph";
-  version = "0.5.3";
-
-  goPackagePath = "github.com/guptarohit/asciigraph";
+  version = "0.5.5";
 
   src = fetchFromGitHub {
     owner = "guptarohit";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-GzFJT4LI1QZzghs9g2A+pqkTg68XC+m9F14rYpMxEXM=";
+    sha256 = "sha256-7sobelRCDY8mC5FYyGZmNsvUsEMxRulqPnUucNRN5J8=";
   };
 
+  vendorSha256 = null;
+
+  ldflags = [ "-s" "-w" ];
+
   meta = with lib; {
     homepage = "https://github.com/guptarohit/asciigraph";
     description = "Lightweight ASCII line graph ╭┈╯ command line app";
     license = licenses.bsd3;
-    maintainers = [ maintainers.mmahut ];
+    maintainers = with maintainers; [ mmahut ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/bashblog/0001-Setting-markdown_bin.patch b/nixpkgs/pkgs/tools/text/bashblog/0001-Setting-markdown_bin.patch
new file mode 100644
index 000000000000..7e6c78dd9dcb
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/bashblog/0001-Setting-markdown_bin.patch
@@ -0,0 +1,25 @@
+From 1990ac93c9dbf3ada0eb2f045ef1aa95bbef7018 Mon Sep 17 00:00:00 2001
+From: "P. R. d. O" <d.ol.rod@tutanota.com>
+Date: Thu, 21 Apr 2022 07:40:30 -0600
+Subject: [PATCH] Setting markdown_bin
+
+---
+ bb.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bb.sh b/bb.sh
+index 9d8e645..40fb54d 100755
+--- a/bb.sh
++++ b/bb.sh
+@@ -160,7 +160,7 @@ global_variables() {
+ 
+     # Markdown location. Trying to autodetect by default.
+     # The invocation must support the signature 'markdown_bin in.md > out.html'
+-    [[ -f Markdown.pl ]] && markdown_bin=./Markdown.pl || markdown_bin=$(which Markdown.pl 2>/dev/null || which markdown 2>/dev/null)
++    markdown_bin=@markdown_path@
+ }
+ 
+ # Check for the validity of some variables
+-- 
+2.35.1
+
diff --git a/nixpkgs/pkgs/tools/text/bashblog/default.nix b/nixpkgs/pkgs/tools/text/bashblog/default.nix
new file mode 100644
index 000000000000..3c8d90caf843
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/bashblog/default.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, lib
+, fetchzip
+, fetchFromGitHub
+, makeWrapper
+, substituteAll
+, perlPackages
+# Flags to enable processors
+# Currently, Markdown.pl does not work
+, usePandoc ? true
+, pandoc }:
+
+let
+  inherit (perlPackages) TextMarkdown;
+  # As bashblog supports various markdown processors
+  # we can set flags to enable a certain processor
+  markdownpl_path = "${perlPackages.TextMarkdown}/bin/Markdown.pl";
+  pandoc_path = "${pandoc}/bin/pandoc";
+
+in stdenv.mkDerivation rec {
+  pname = "bashblog";
+  version = "unstable-2022-03-26";
+
+  src = fetchFromGitHub {
+    owner = "cfenollosa";
+    repo = "bashblog";
+    rev = "c3d4cc1d905560ecfefce911c319469f7a7ff8a8";
+    sha256 = "sha256-THlP/JuaZzDq9QctidwLRiUVFxRhGNhRKleWbQiqsgg=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildInputs = [ TextMarkdown ]
+    ++ lib.optionals usePandoc [ pandoc ];
+
+  patches = [
+    (substituteAll {
+      src = ./0001-Setting-markdown_bin.patch;
+      markdown_path = if usePandoc then pandoc_path else markdownpl_path;
+    })
+  ];
+
+  postPatch = ''
+    patchShebangs bb.sh
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    install -Dm755 bb.sh $out/bin/bashblog
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A single Bash script to create blogs";
+    homepage = "https://github.com/cfenollosa/bashblog";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ wolfangaukang ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/choose/default.nix b/nixpkgs/pkgs/tools/text/choose/default.nix
index b214c65b534c..f40fcd1e3b6d 100644
--- a/nixpkgs/pkgs/tools/text/choose/default.nix
+++ b/nixpkgs/pkgs/tools/text/choose/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "choose";
-  version = "1.3.3";
+  version = "1.3.4";
 
   src = fetchFromGitHub {
     owner = "theryangeary";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-HYwlAgFKbi6or2eblERdMMjJOJdtt2FCQECUg3MzO8E=";
+    sha256 = "sha256-yW1quDyQn2xhrlhhPj9DKq7g8LlYKvEKDFj3xSagRTU=";
   };
 
-  cargoSha256 = "sha256-55/B+LxdbekfaKKyng0lUCU3QnqL34M+QnLUxaPqkqI=";
+  cargoSha256 = "sha256-0INC0LFzlnFnt5pCiU4xePxU8a6GiU1L8bg7zcuFl2k=";
 
   meta = with lib; {
     description = "A human-friendly and fast alternative to cut and (sometimes) awk";
diff --git a/nixpkgs/pkgs/tools/text/chroma/default.nix b/nixpkgs/pkgs/tools/text/chroma/default.nix
index 8b8a8a7b7753..ef990a5b99d6 100644
--- a/nixpkgs/pkgs/tools/text/chroma/default.nix
+++ b/nixpkgs/pkgs/tools/text/chroma/default.nix
@@ -6,7 +6,7 @@ in
 
 buildGoModule rec {
   pname = "chroma";
-  version = "0.10.0";
+  version = "2.2.0";
 
   # To update:
   # nix-prefetch-git --rev v${version} https://github.com/alecthomas/chroma.git > src.json
@@ -17,7 +17,7 @@ buildGoModule rec {
     inherit (srcInfo) sha256;
   };
 
-  vendorSha256 = "09b718vjd6npg850fr7z6srs2sc5vsr7byzlz5yb5qx0vm3ajxpf";
+  vendorSha256 = "1f5pv32vg0ci71kj5bbg24ymmm12yi6r07n8blj47qz8203l5yab";
 
   modRoot = "./cmd/chroma";
 
diff --git a/nixpkgs/pkgs/tools/text/chroma/src.json b/nixpkgs/pkgs/tools/text/chroma/src.json
index 224bb4328d71..ed8d0b6c0e4f 100644
--- a/nixpkgs/pkgs/tools/text/chroma/src.json
+++ b/nixpkgs/pkgs/tools/text/chroma/src.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/alecthomas/chroma.git",
-  "rev": "36bdd4b98823bd1d7be96767cde3dd575e60b406",
-  "date": "2022-01-12T21:49:38+11:00",
-  "path": "/nix/store/951ya4wlxp217a2j3qdni29zwqfq0z7v-chroma",
-  "sha256": "0hjzb61m5lzx95xss82wil9s8f9hbw1zb3jj73ljfwkq5lqk76zq",
+  "rev": "d18e8a46f25ce0eb40f276410ab6cb3f2def9b7e",
+  "date": "2022-06-14T21:17:50+10:00",
+  "path": "/nix/store/mzph49sgiv5xfmpn6d6znlq483k4hyca-chroma",
+  "sha256": "0rxsi4kdf363p6ysvxvgndbvcb0a5zgm0iaxkkqllj3m8nfwmzlk",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/nixpkgs/pkgs/tools/text/cidrgrep/default.nix b/nixpkgs/pkgs/tools/text/cidrgrep/default.nix
new file mode 100644
index 000000000000..c636eef3c46e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/cidrgrep/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule {
+  pname = "cidrgrep";
+  version = "unstable-2020-11-17";
+
+  src = fetchFromGitHub {
+    owner = "tomdoherty";
+    repo = "cidrgrep";
+    rev = "8ad5af533e8dc33ea18ff19b7c6a41550748fe0e";
+    hash = "sha256-Bp1cST6/8ppvpgNxjUpwL498C9vTJmoWOKLJgmWqfEs=";
+  };
+
+  vendorSha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
+
+  postInstall = ''
+    mv $out/bin/cmd $out/bin/cidrgrep
+  '';
+
+  meta = {
+    description = "Like grep but for IPv4 CIDRs";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ das_j ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/cmigemo/default.nix b/nixpkgs/pkgs/tools/text/cmigemo/default.nix
index 92be45bbd9d7..1f9ef7701ba1 100644
--- a/nixpkgs/pkgs/tools/text/cmigemo/default.nix
+++ b/nixpkgs/pkgs/tools/text/cmigemo/default.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, fetchFromGitHub, fetchurl, buildPackages
-, gzip, libiconv, nkf, perl, which
+{ lib, stdenv, fetchFromGitHub, buildPackages
+, libiconv, nkf, perl, which
 , skk-dicts
 }:
 
@@ -13,11 +13,11 @@ stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "koron";
     repo = "cmigemo";
-    rev = "5c014a885972c77e67d0d17d367d05017c5873f7";
-    sha256 = "0xrblwhaf70m0knkd5584iahaq84rlk0926bhdsrzmakpw77hils";
+    rev = "e0f6145f61e0b7058c3006f344e58571d9fdd83a";
+    sha256 = "00a6kdmxp16b8x0p04ws050y39qspd1bqlfq74bkirc55b77a2m1";
   };
 
-  nativeBuildInputs = [ gzip libiconv nkf perl which ];
+  nativeBuildInputs = [ libiconv nkf perl which ];
 
   postUnpack = ''
     cp ${skk-dicts}/share/SKK-JISYO.L source/dict/
diff --git a/nixpkgs/pkgs/tools/text/codesearch/default.nix b/nixpkgs/pkgs/tools/text/codesearch/default.nix
index 40ee8c58fbcc..b02d4fcd5fc9 100644
--- a/nixpkgs/pkgs/tools/text/codesearch/default.nix
+++ b/nixpkgs/pkgs/tools/text/codesearch/default.nix
@@ -1,18 +1,20 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "codesearch";
-  version = "1.0.0";
-
-  goPackagePath = "github.com/google/codesearch";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "codesearch";
     rev = "v${version}";
-    sha256 = "sha256-3kJ/JT89krbIvprWayBL4chUmT77Oa1W13UNCr4fe4k=";
+    sha256 = "sha256-i03w8PZ31j5EutUZaamZsHz+z4qgX4prePbj5DLA78s=";
   };
 
+  vendorSha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
+
+  ldflags = [ "-s" "-w" ];
+
   meta = with lib; {
     description = "Fast, indexed regexp search over large file trees";
     homepage = "https://github.com/google/codesearch";
diff --git a/nixpkgs/pkgs/tools/text/colordiff/default.nix b/nixpkgs/pkgs/tools/text/colordiff/default.nix
index a7e8293851b9..df5b35dd9be0 100644
--- a/nixpkgs/pkgs/tools/text/colordiff/default.nix
+++ b/nixpkgs/pkgs/tools/text/colordiff/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, docbook_xml_dtd_412, docbook_xsl, perl, w3m, xmlto, diffutils }:
+{ lib, stdenv, fetchFromGitHub, docbook_xml_dtd_412, docbook_xsl, perl, w3m-batch, xmlto, diffutils }:
 
 stdenv.mkDerivation rec {
   pname = "colordiff";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-+TtVnUX88LMd8zmhLsKTyR9JlgR7IkUB18PF3LRgPB0=";
   };
 
-  nativeBuildInputs = [ docbook_xml_dtd_412 docbook_xsl perl w3m xmlto ];
+  nativeBuildInputs = [ docbook_xml_dtd_412 docbook_xsl perl w3m-batch xmlto ];
 
   buildInputs = [ perl ];
 
diff --git a/nixpkgs/pkgs/tools/text/crowdin-cli/default.nix b/nixpkgs/pkgs/tools/text/crowdin-cli/default.nix
index e73b58d4e6ba..d0dada770ee7 100644
--- a/nixpkgs/pkgs/tools/text/crowdin-cli/default.nix
+++ b/nixpkgs/pkgs/tools/text/crowdin-cli/default.nix
@@ -8,17 +8,17 @@
 , jre
 , makeWrapper
 , crowdin-cli
-, testVersion
+, testers
 , unzip
 }:
 
 stdenv.mkDerivation rec {
   pname = "crowdin-cli";
-  version = "3.7.8";
+  version = "3.7.10";
 
   src = fetchurl {
     url = "https://github.com/crowdin/${pname}/releases/download/${version}/${pname}.zip";
-    sha256 = "sha256-z9c12KKrh4hV7A92qinNCQGTxZI6IsmJ3Z+3ZcZZljk=";
+    sha256 = "sha256-beU4hLW5Dp4xbY0kaxuxLD2XmMXdxWEBbAH/G+B5dHU=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper unzip ];
@@ -38,12 +38,13 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  passthru.tests.version = testVersion { package = crowdin-cli; };
+  passthru.tests.version = testers.testVersion { package = crowdin-cli; };
 
   meta = with lib; {
     mainProgram = "crowdin";
     homepage = "https://github.com/crowdin/crowdin-cli/";
     description = "A command-line client for the Crowdin API";
+    sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.mit;
     maintainers = with maintainers; [ DamienCassou ];
   };
diff --git a/nixpkgs/pkgs/tools/text/csview/default.nix b/nixpkgs/pkgs/tools/text/csview/default.nix
index 41ddcfac50a4..c5c51b4de06a 100644
--- a/nixpkgs/pkgs/tools/text/csview/default.nix
+++ b/nixpkgs/pkgs/tools/text/csview/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "csview";
-  version = "1.0.1";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "wfxr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-tllwFUC+Si3PsYPmiO86D3PNdInuIxxhZW5dAuU4K14=";
+    sha256 = "sha256-yx/gGJ8QGmMaiVw+yWWhswbGpf9YZk2kWoxFXXSETyA=";
   };
 
-  cargoSha256 = "sha256-j9CwldmxjWYVuiWfAHIV0kr5k/p1BFWHzZiVrv8m7uI=";
+  cargoSha256 = "sha256-4YJfD8TuQN9aQlbhzpv69YE20tMMIUxq6UdDpJSP7lI=";
 
   meta = with lib; {
     description = "A high performance csv viewer with cjk/emoji support";
diff --git a/nixpkgs/pkgs/tools/text/difftastic/default.nix b/nixpkgs/pkgs/tools/text/difftastic/default.nix
index 981c5f0e9312..4493066a6241 100644
--- a/nixpkgs/pkgs/tools/text/difftastic/default.nix
+++ b/nixpkgs/pkgs/tools/text/difftastic/default.nix
@@ -1,17 +1,48 @@
-{ lib, fetchFromGitHub, rustPlatform, tree-sitter }:
+{ lib
+, fetchFromGitHub
+, fetchpatch
+, rustPlatform
+, tree-sitter
+, difftastic
+, testers
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "difftastic";
-  version = "0.23.0";
+  version = "0.32.0";
 
   src = fetchFromGitHub {
     owner = "wilfred";
     repo = pname;
     rev = version;
-    sha256 = "sha256-y1rwuZlkrxO1iOSN2o8pIewbNENs0xsntzLEZgfUgZ4=";
+    sha256 = "sha256-7Y51S4PM+HpiPCG3ju7Aagw1XoPM3DpckGtVhH7Od8Q=";
   };
 
-  cargoSha256 = "sha256-mH6pkfWc8xXLXV/07LQ1jgk9hgt8WcIGdaNPpk7deLQ=";
+  depsExtraArgs = {
+    postBuild = let
+      mimallocPatch = (fetchpatch {
+        name = "mimalloc-older-macos-fixes.patch";
+        url = "https://github.com/microsoft/mimalloc/commit/40e0507a5959ee218f308d33aec212c3ebeef3bb.patch";
+        stripLen = 1;
+        extraPrefix = "libmimalloc-sys/c_src/mimalloc/";
+        sha256 = "1cqgay6ayzxsj8v1dy8405kwd8av34m4bjc84iyg9r52amlijbg4";
+      });
+    in ''
+      pushd $name
+      patch -p1 < ${mimallocPatch}
+      substituteInPlace libmimalloc-sys/.cargo-checksum.json \
+        --replace \
+          '6a2e9f0db0d3de160f9f15ddc8a870dbc42bba724f19f1e69b8c4952cb36821a' \
+          '201ab8874d9ba863406e084888e492b785a7edae00a222f395c079028d21a89a' \
+        --replace \
+          'a87a27e8432a63e5de25703ff5025588afd458e3a573e51b3c3dee2281bff0d4' \
+          'ab98a2da81d2145003a9cba7b7025efbd2c7b37c7a23c058c150705a3ec39298'
+      popd
+    '';
+  };
+  cargoSha256 = "sha256-36HZ/5rx5K3mVNyBtDzJnSrKRGShFd1aEt3qqPsNqfs=";
+
+  passthru.tests.version = testers.testVersion { package = difftastic; };
 
   meta = with lib; {
     description = "A syntax-aware diff";
diff --git a/nixpkgs/pkgs/tools/text/discount/default.nix b/nixpkgs/pkgs/tools/text/discount/default.nix
index dd03bcfa6a35..7422b445d818 100644
--- a/nixpkgs/pkgs/tools/text/discount/default.nix
+++ b/nixpkgs/pkgs/tools/text/discount/default.nix
@@ -1,36 +1,28 @@
 { lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  version = "2.2.7";
+  version = "2.2.7b";
   pname = "discount";
 
   src = fetchFromGitHub {
     owner = "Orc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0p2gznrsvv82zxbajqir8y2ap1ribbgagqg1bzhv3i81p2byhjh7";
+    sha256 = "sha256-S6OVKYulhvEPRqNXBsvZ7m2W4cbdnrpZKPAo3SfD+9s=";
   };
 
-  patches = [
-    ./fix-configure-path.patch
-
-    # Fix parallel make depends:
-    # - https://github.com/Orc/discount/commit/e42188e6c4c30d9de668cf98d98dd0c13ecce7cf.patch
-    # - https://github.com/Orc/discount/pull/245
-    ./parallel-make.patch
-  ];
+  patches = [ ./fix-configure-path.patch ];
   configureScript = "./configure.sh";
-
   configureFlags = [
-    "--enable-all-features"
-    "--pkg-config"
     "--shared"
-    "--with-fenced-code"
-    # Use deterministic mangling
-    "--debian-glitch"
+    "--debian-glitch" # use deterministic mangling
+    "--pkg-config"
+    "--h1-title"
   ];
 
   enableParallelBuilding = true;
+  installTargets = [ "install.everything" ];
+
   doCheck = true;
 
   postFixup = lib.optionalString stdenv.isDarwin ''
@@ -42,6 +34,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.pell.portland.or.us/~orc/Code/discount/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ shell ];
+    mainProgram = "markdown";
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/discount/parallel-make.patch b/nixpkgs/pkgs/tools/text/discount/parallel-make.patch
deleted file mode 100644
index 583622a9152f..000000000000
--- a/nixpkgs/pkgs/tools/text/discount/parallel-make.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-https://github.com/Orc/discount/pull/245
-https://github.com/Orc/discount/commit/e42188e6c4c30d9de668cf98d98dd0c13ecce7cf.patch
-
-Fix parallel make failure: add missing pandoc_headers dependency.
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -139,7 +139,7 @@ test:	$(PGMS) $(TESTFRAMEWORK) verify
- 
- pandoc_headers.o: tools/pandoc_headers.c config.h
- 	$(BUILD) -c -o pandoc_headers.o tools/pandoc_headers.c
--pandoc_headers: pandoc_headers.o
-+pandoc_headers: pandoc_headers.o $(COMMON) $(MKDLIB)
- 	$(LINK) -o pandoc_headers pandoc_headers.o $(COMMON) -lmarkdown 
- 
- branch.o: tools/branch.c config.h
diff --git a/nixpkgs/pkgs/tools/text/dos2unix/default.nix b/nixpkgs/pkgs/tools/text/dos2unix/default.nix
index f694b91762c5..6a0c5fc57ee9 100644
--- a/nixpkgs/pkgs/tools/text/dos2unix/default.nix
+++ b/nixpkgs/pkgs/tools/text/dos2unix/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dos2unix";
-  version = "7.4.2";
+  version = "7.4.3";
 
   src = fetchurl {
     url = "https://waterlan.home.xs4all.nl/dos2unix/${pname}-${version}.tar.gz";
-    sha256 = "00dfsf4rfyjb5j12gan8xjiirm0asshdz6dmd3l34a7ays6wadb0";
+    sha256 = "sha256-to20GVba+TOChCOqMFEOAMEtKe9ZFucV6NTmlP5mynI=";
   };
 
   nativeBuildInputs = [ perl gettext ];
diff --git a/nixpkgs/pkgs/tools/text/each/default.nix b/nixpkgs/pkgs/tools/text/each/default.nix
index 0218cf5dde27..02974030b269 100644
--- a/nixpkgs/pkgs/tools/text/each/default.nix
+++ b/nixpkgs/pkgs/tools/text/each/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "each";
-  version = "0.1.3";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "arraypad";
     repo = pname;
     rev = "v${version}";
-    sha256 = "04rx8jf871l4darfx6029dhpnbpmzwjgzazayp1qcaadsk8207z5";
+    sha256 = "sha256-5Aa/uHWrU4bpWd28Uddnuhmi6guHy09W9AU8sAfea6I=";
   };
 
-  cargoSha256 = "1r7nzfh7v2mlp0wdrcpqfj68h3zmip2m3d4z2nwxyikmw7c80car";
+  cargoSha256 = "sha256-sH9rraPNAIlW2KQVaZfYa10c1HHQpDgedY1+9e94RLE=";
 
   meta = with lib; {
     description = " A better way of working with structured data on the command line";
diff --git a/nixpkgs/pkgs/tools/text/epubcheck/default.nix b/nixpkgs/pkgs/tools/text/epubcheck/default.nix
index 45196422ff54..796aa0da8f91 100644
--- a/nixpkgs/pkgs/tools/text/epubcheck/default.nix
+++ b/nixpkgs/pkgs/tools/text/epubcheck/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/w3c/epubcheck";
     description = "Validation tool for EPUB";
+    sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = with licenses; [ asl20 bsd3 mpl10 w3c ];
     platforms = platforms.all;
     maintainers = with maintainers; [ eadwu ];
diff --git a/nixpkgs/pkgs/tools/text/fastmod/default.nix b/nixpkgs/pkgs/tools/text/fastmod/default.nix
index d6e2dc4dd1fc..a9f1b79c474a 100644
--- a/nixpkgs/pkgs/tools/text/fastmod/default.nix
+++ b/nixpkgs/pkgs/tools/text/fastmod/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fastmod";
-  version = "0.4.2";
+  version = "0.4.3";
 
   src = fetchFromGitHub {
     owner = "facebookincubator";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Lv8hARD/aVWiWpJQmPWPeACpX15+3NogoUl5yh63E7A=";
+    sha256 = "sha256-j5+6ijJ04/Non7AUSN35OhfZ04MiPUDU4V1HLwZaM9k=";
   };
 
-  cargoSha256 = "sha256-L1MKoVacVKcpEG2IfS+eENxFZNiSaTDTxfFbFlvzYl8=";
+  cargoSha256 = "sha256-RNTnP3RKRZXo3+L54y/8nBunGbsxVY72sbl+ZrqfeMI=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
diff --git a/nixpkgs/pkgs/tools/text/goawk/default.nix b/nixpkgs/pkgs/tools/text/goawk/default.nix
index b665c1823329..435ca0805ab1 100644
--- a/nixpkgs/pkgs/tools/text/goawk/default.nix
+++ b/nixpkgs/pkgs/tools/text/goawk/default.nix
@@ -1,19 +1,37 @@
-{ buildGoModule, fetchFromGitHub, lib }:
+{ buildGoModule, fetchFromGitHub, lib, stdenv, gawk }:
+
 buildGoModule rec {
   pname = "goawk";
-  version = "1.16.0";
+  version = "1.20.0";
 
   src = fetchFromGitHub {
     owner = "benhoyt";
     repo = "goawk";
     rev = "v${version}";
-    sha256 = "sha256-ALzCcSZHnzidj4tQzZWXT8WDPIE147KWbn7n1JHCTRE=";
+    sha256 = "sha256-omUtMNB8VBTbihy+VksCduvOENhtPApPBwUIxjVL9fI=";
   };
 
   vendorSha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
 
-  # checks do not pass at the moment
-  doCheck = false;
+  checkInputs = [ gawk ];
+
+  postPatch = ''
+    substituteInPlace goawk_test.go \
+      --replace "TestCommandLine" "SkipCommandLine" \
+      --replace "TestDevStdout" "SkipDevStdout" \
+      --replace "TestFILENAME" "SkipFILENAME" \
+      --replace "TestWildcards" "SkipWildcards"
+
+    substituteInPlace interp/interp_test.go \
+      --replace "TestShellCommand" "SkipShellCommand"
+  '';
+
+  checkFlags = [
+    "-awk"
+    "${gawk}/bin/gawk"
+  ];
+
+  doCheck = (stdenv.system != "aarch64-darwin");
 
   meta = with lib; {
     description = "A POSIX-compliant AWK interpreter written in Go";
diff --git a/nixpkgs/pkgs/tools/text/gpt2tc/default.nix b/nixpkgs/pkgs/tools/text/gpt2tc/default.nix
index 4d6ac33d61d9..93cf684c1990 100644
--- a/nixpkgs/pkgs/tools/text/gpt2tc/default.nix
+++ b/nixpkgs/pkgs/tools/text/gpt2tc/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Text completion and compression using GPT-2";
     homepage = "https://bellard.org/libnc/gpt2tc.html";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ anna328p ];
diff --git a/nixpkgs/pkgs/tools/text/groff/default.nix b/nixpkgs/pkgs/tools/text/groff/default.nix
index cb57fb2bb07f..a38251557c09 100644
--- a/nixpkgs/pkgs/tools/text/groff/default.nix
+++ b/nixpkgs/pkgs/tools/text/groff/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, fetchpatch, perl
-, ghostscript #for postscript and html output
-, psutils, netpbm #for html output
+, enableGhostscript ? false, ghostscript # for postscript and html output
+, enableHtml ? false, psutils, netpbm # for html output
 , buildPackages
 , autoreconfHook
 , pkg-config
 , texinfo
+, bash
 }:
 
 stdenv.mkDerivation rec {
@@ -18,6 +19,8 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "man" "doc" "info" "perl" ];
 
+  # Parallel build is failing for missing depends. Known upstream as:
+  #   https://savannah.gnu.org/bugs/?62084
   enableParallelBuilding = false;
 
   patches = [
@@ -31,11 +34,13 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  postPatch = lib.optionalString (psutils != null) ''
-    substituteInPlace src/preproc/html/pre-html.cpp \
-      --replace "psselect" "${psutils}/bin/psselect"
-  '' + lib.optionalString (netpbm != null) ''
+  postPatch = ''
+    # BASH_PROG gets replaced with a path to the build bash which doesn't get automatically patched by patchShebangs
+    substituteInPlace contrib/gdiffmk/gdiffmk.sh \
+      --replace "@BASH_PROG@" "/bin/sh"
+  '' + lib.optionalString enableHtml ''
     substituteInPlace src/preproc/html/pre-html.cpp \
+      --replace "psselect" "${psutils}/bin/psselect" \
       --replace "pnmcut" "${lib.getBin netpbm}/bin/pnmcut" \
       --replace "pnmcrop" "${lib.getBin netpbm}/bin/pnmcrop" \
       --replace "pnmtopng" "${lib.getBin netpbm}/bin/pnmtopng"
@@ -45,8 +50,11 @@ stdenv.mkDerivation rec {
       --replace "@PNMTOPS_NOSETPAGE@" "${lib.getBin netpbm}/bin/pnmtops -nosetpage"
   '';
 
-  buildInputs = [ ghostscript psutils netpbm perl ];
+  strictDeps = true;
   nativeBuildInputs = [ autoreconfHook pkg-config texinfo ];
+  buildInputs = [ perl bash ]
+    ++ lib.optionals enableGhostscript [ ghostscript ]
+    ++ lib.optionals enableHtml [ psutils netpbm ];
 
   # Builds running without a chroot environment may detect the presence
   # of /usr/X11 in the host system, leading to an impure build of the
@@ -56,7 +64,7 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--without-x"
     "ac_cv_path_PERL=${buildPackages.perl}/bin/perl"
-  ] ++ lib.optionals (ghostscript != null) [
+  ] ++ lib.optionals enableGhostscript [
     "--with-gs=${ghostscript}/bin/gs"
   ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
     "gl_cv_func_signbit=yes"
diff --git a/nixpkgs/pkgs/tools/text/gtranslator/default.nix b/nixpkgs/pkgs/tools/text/gtranslator/default.nix
index d5e7922831ea..e15941b5fc8c 100644
--- a/nixpkgs/pkgs/tools/text/gtranslator/default.nix
+++ b/nixpkgs/pkgs/tools/text/gtranslator/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchurl
-, fetchpatch
 , meson
 , ninja
 , pkg-config
@@ -12,11 +11,10 @@
 , libxml2
 , libgda6
 , libhandy
-, libsoup
+, libsoup_3
 , json-glib
 , gspell
 , glib
-, libdazzle
 , gtk3
 , gtksourceview4
 , gnome
@@ -25,22 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gtranslator";
-  version = "41.0";
+  version = "42.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "E28R/gOhlJkMQ6/jOL0eoK0U5+H26Gjlv3xbUsTF5eE=";
+    sha256 = "Kme8v+ZDBhsGltiaEIR9UL81kF/zNhuYcTV9PjQi8Ts=";
   };
 
-  patches = [
-    # Fix build with meson 0.61
-    # data/meson.build:15:5: ERROR: Function does not take positional arguments.
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gtranslator/-/commit/7ac572cc8c8c37ca3826ecf0d395edd3c38e8e22.patch";
-      sha256 = "aRg6dYweftV8F7FXykO7m0G+p4SLTFnhTcZx72UCMDE=";
-    })
-  ];
-
   nativeBuildInputs = [
     meson
     ninja
@@ -55,11 +44,10 @@ stdenv.mkDerivation rec {
     libxml2
     glib
     gtk3
-    libdazzle
     gtksourceview4
     libgda6
     libhandy
-    libsoup
+    libsoup_3
     json-glib
     gettext
     gspell
diff --git a/nixpkgs/pkgs/tools/text/gucci/default.nix b/nixpkgs/pkgs/tools/text/gucci/default.nix
index c937e6c7ab16..8d9bd5279af0 100644
--- a/nixpkgs/pkgs/tools/text/gucci/default.nix
+++ b/nixpkgs/pkgs/tools/text/gucci/default.nix
@@ -1,29 +1,39 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, testers, gucci }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "gucci";
-  version = "0.1.0";
-
-  goPackagePath = "github.com/noqcks/gucci";
+  version = "1.5.4";
 
   src = fetchFromGitHub {
     owner = "noqcks";
     repo = "gucci";
-    rev = version;
-    sha256 = "0ksrmzb3iggc7gm51fl0jbb15d0gmpclslpkq2sl2xjzk29pkllq";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-HJPNpLRJPnziSMvxLCiNDeCWO439ELSZs/4Cq1a7Amo=";
+  };
+
+  vendorSha256 = "sha256-rAZCj5xtwTgd9/KDYnQTU1jbabtWJF5MCFgcmixDN/Q=";
+
+  ldflags = [ "-s" "-w" "-X main.AppVersion=${version}" ];
+
+  passthru.tests.version = testers.testVersion {
+    package = gucci;
   };
 
-  goDeps = ./deps.nix;
+  checkFlags = [ "-short" ];
 
-  ldflags = [
-    "-X main.AppVersion=${version}"
-  ];
+  # Integration tests rely on Ginkgo but fail.
+  # Related: https://github.com/onsi/ginkgo/issues/602
+  #
+  # Disable integration tests.
+  preCheck = ''
+    buildFlagsArray+=("-run" "[^(TestIntegration)]")
+  '';
 
   meta = with lib; {
     description = "A simple CLI templating tool written in golang";
     homepage = "https://github.com/noqcks/gucci";
     license = licenses.mit;
-    maintainers = [ maintainers.braydenjw ];
+    maintainers = with maintainers; [ braydenjw ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/gucci/deps.nix b/nixpkgs/pkgs/tools/text/gucci/deps.nix
deleted file mode 100644
index 8e2cc5af3bf1..000000000000
--- a/nixpkgs/pkgs/tools/text/gucci/deps.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-[
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "5420a8b6744d3b0345ab293f6fcba19c978f1183";
-      sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
-    };
-  }
-  {
-    goPackagePath = "github.com/imdario/mergo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/imdario/mergo";
-      rev = "v0.3.6";
-      sha256 = "1lbzy8p8wv439sqgf0n21q52flf2wbamp6qa1jkyv6an0nc952q7";
-    };
-  }
-  {
-    goPackagePath = "github.com/urfave/cli";
-    fetch = {
-      type = "git";
-      url = "https://github.com/urfave/cli";
-      rev = "v1.20.0";
-      sha256 = "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj";
-    };
-  }
-]
-
diff --git a/nixpkgs/pkgs/tools/text/hck/default.nix b/nixpkgs/pkgs/tools/text/hck/default.nix
index ebb66a07a8bf..a888e7655241 100644
--- a/nixpkgs/pkgs/tools/text/hck/default.nix
+++ b/nixpkgs/pkgs/tools/text/hck/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hck";
-  version = "0.7.1";
+  version = "0.7.5";
 
   src = fetchFromGitHub {
     owner = "sstadick";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-6PXhFOXWplj7yEyn7hOQSPS2YDGc1nxTs6wRseRvEVk=";
+    sha256 = "sha256-29uxcbqAnWCdxKqVdrMVtorXvSLUC+jlt4YwE19Gh+A=";
   };
 
-  cargoSha256 = "sha256-VAtvc8K4282twB1MRY72+dCky3JmrTRjOPx1Ft7Oqt8=";
+  cargoSha256 = "sha256-VHuzv6Zq83byXDEEyYDtlaPC4DZ3GNJaJfO0ACrrqO8=";
 
   nativeBuildInputs = [ cmake ];
 
diff --git a/nixpkgs/pkgs/tools/text/highlight/default.nix b/nixpkgs/pkgs/tools/text/highlight/default.nix
index 57c607e69c6b..edca9c1b7892 100644
--- a/nixpkgs/pkgs/tools/text/highlight/default.nix
+++ b/nixpkgs/pkgs/tools/text/highlight/default.nix
@@ -3,13 +3,13 @@
 let
   self = stdenv.mkDerivation rec {
     pname = "highlight";
-    version = "4.1";
+    version = "4.2";
 
     src = fetchFromGitLab {
       owner = "saalen";
       repo = "highlight";
       rev = "v${version}";
-      sha256 = "sha256-KktwbnL13Tcc2iWAjgqQSMSenUN6nYBEGbFrpB1kkr0=";
+      sha256 = "sha256-KkLN8b2sJhDbYVfNANEg1prPfIySoL9N48PSQyXqE8I=";
     };
 
     enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/tools/text/html-tidy/default.nix b/nixpkgs/pkgs/tools/text/html-tidy/default.nix
index d4bb26a0a777..1f9c04b7c9db 100644
--- a/nixpkgs/pkgs/tools/text/html-tidy/default.nix
+++ b/nixpkgs/pkgs/tools/text/html-tidy/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, libxslt }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, libxslt, html-tidy }:
 
 stdenv.mkDerivation rec {
   pname = "html-tidy";
@@ -8,12 +8,21 @@ stdenv.mkDerivation rec {
     owner = "htacg";
     repo = "tidy-html5";
     rev = version;
-    sha256 = "sha256-ZMz0NySxzX2XHiqB8f5asvwjIG6kdIcq8Gb3EbAxBaU=";
+    hash = "sha256-vzVWQodwzi3GvC9IcSQniYBsbkJV20iZanF33A0Gpe0=";
   };
 
-  nativeBuildInputs = [ cmake libxslt/*manpage*/ ];
+  # https://github.com/htacg/tidy-html5/pull/1036
+  patches = (fetchpatch {
+    url = "https://github.com/htacg/tidy-html5/commit/e9aa038bd06bd8197a0dc049380bc2945ff55b29.diff";
+    sha256 = "sha256-Q2GjinNBWLL+HXUtslzDJ7CJSTflckbjweiSMCnIVwg=";
+  });
 
-  cmakeFlags = [];
+  nativeBuildInputs = [ cmake libxslt/*manpage*/ ]
+    ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) html-tidy;
+
+  cmakeFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "-DHOST_TIDY=tidy"
+  ];
 
   # ATM bin/tidy is statically linked, as upstream provides no other option yet.
   # https://github.com/htacg/tidy-html5/issues/326#issuecomment-160322107
@@ -28,5 +37,6 @@ stdenv.mkDerivation rec {
     homepage = "http://html-tidy.org";
     platforms = platforms.all;
     maintainers = with maintainers; [ edwtjo ];
+    mainProgram = "tidy";
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/igrep/default.nix b/nixpkgs/pkgs/tools/text/igrep/default.nix
index b7fc915c44d7..7869e1f478e2 100644
--- a/nixpkgs/pkgs/tools/text/igrep/default.nix
+++ b/nixpkgs/pkgs/tools/text/igrep/default.nix
@@ -3,27 +3,27 @@
 , fetchFromGitHub
 , stdenv
 , Security
-, testVersion
+, testers
 , igrep
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "igrep";
-  version = "0.2.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "konradsz";
     repo = "igrep";
     rev = "v${version}";
-    sha256 = "sha256-CH0wf9EhNnfi93W/4IJf6bPqU4pgw6Q9965Wjln9pso=";
+    sha256 = "sha256-Blfkis0Ix0qhSt83YxRqJQJ2oQQK9DGmI60OkyQN5CE=";
   };
 
-  cargoSha256 = "sha256-VnZuRLBt/Q+D89+jKm0rak+ID5oNbvN1k8or3pYzfIM=";
+  cargoSha256 = "sha256-wEprTtD9/kKtGsbpj7gR+PjsDSAdl39ZoeU5BAGERRQ=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
   passthru.tests = {
-    version = testVersion { package = igrep; command = "ig --version"; };
+    version = testers.testVersion { package = igrep; command = "ig --version"; };
   };
 
   meta = with lib; {
@@ -32,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/konradsz/igrep/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ _0x4A6F ];
+    mainProgram = "ig";
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/invoice2data/default.nix b/nixpkgs/pkgs/tools/text/invoice2data/default.nix
index 941f2d6f4938..d23486159013 100644
--- a/nixpkgs/pkgs/tools/text/invoice2data/default.nix
+++ b/nixpkgs/pkgs/tools/text/invoice2data/default.nix
@@ -25,7 +25,7 @@ python3.pkgs.buildPythonApplication rec {
   propagatedBuildInputs = with python3.pkgs; [
     chardet
     dateparser
-    pdfminer
+    pdfminer-six
     pillow
     pyyaml
     unidecode
diff --git a/nixpkgs/pkgs/tools/text/ispell/default.nix b/nixpkgs/pkgs/tools/text/ispell/default.nix
index 9a3f37cc64a5..6a004253a4f0 100644
--- a/nixpkgs/pkgs/tools/text/ispell/default.nix
+++ b/nixpkgs/pkgs/tools/text/ispell/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ispell";
-  version = "3.4.04";
+  version = "3.4.05";
 
   src = fetchurl {
     url = "https://www.cs.hmc.edu/~geoff/tars/${pname}-${version}.tar.gz";
-    sha256 = "sha256-h7zW8FIdhaCjp4NCFZVtdOvEkxRMx8eR+HvmhyzP4T4=";
+    sha256 = "sha256-zwxt7eP9JfraQ3XYasr+WDy5bY/lRt50apLrtt+JVgI=";
   };
 
   buildInputs = [ bison ncurses ];
diff --git a/nixpkgs/pkgs/tools/text/jsawk/default.nix b/nixpkgs/pkgs/tools/text/jsawk/default.nix
index 4efaf56ccf69..2f21900b8d01 100644
--- a/nixpkgs/pkgs/tools/text/jsawk/default.nix
+++ b/nixpkgs/pkgs/tools/text/jsawk/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper, spidermonkey_78 }:
+{ lib, stdenv, fetchFromGitHub, makeWrapper, spidermonkey_102 }:
 
 stdenv.mkDerivation {
   pname = "jsawk";
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
     mkdir -p $out/bin
     cp $src/jsawk $out/bin/
     wrapProgram $out/bin/jsawk \
-      --prefix PATH : "${spidermonkey_78}/bin"
+      --prefix PATH : "${spidermonkey_102}/bin"
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/tools/text/jumanpp/0001-Exclude-all-tests-from-the-build.patch b/nixpkgs/pkgs/tools/text/jumanpp/0001-Exclude-all-tests-from-the-build.patch
new file mode 100644
index 000000000000..d41bada82def
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/jumanpp/0001-Exclude-all-tests-from-the-build.patch
@@ -0,0 +1,177 @@
+From c52a5046e19718a43d48c9b3cfdc121d964e8c3b Mon Sep 17 00:00:00 2001
+From: Maximilian Bosch <maximilian@mbosch.me>
+Date: Fri, 28 Jan 2022 17:43:35 +0100
+Subject: [PATCH] Exclude all tests from the build
+
+For some reason it isn't sufficient to set `-DJPP_ENABLE_TESTS=OFF`.
+Doing that because the tests on 2.0.0-rc3 don't seem to be working and
+the vendored catch2 doesn't build with glibc 2.34.
+---
+ src/CMakeLists.txt               |  3 +--
+ src/core/CMakeLists.txt          | 11 +----------
+ src/core/analysis/CMakeLists.txt |  2 --
+ src/core/codegen/CMakeLists.txt  |  3 ---
+ src/core/spec/CMakeLists.txt     |  2 --
+ src/core/training/CMakeLists.txt |  2 --
+ src/jumandic/CMakeLists.txt      |  8 +-------
+ src/rnn/CMakeLists.txt           |  5 +----
+ src/util/CMakeLists.txt          |  2 --
+ 9 files changed, 4 insertions(+), 34 deletions(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 169dff5..64b6a07 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -67,7 +67,6 @@ function(jpp_feature_codegen)
+ endfunction(jpp_feature_codegen)
+ 
+ add_subdirectory(util)
+-add_subdirectory(testing)
+ add_subdirectory(core)
+ add_subdirectory(jumandic)
+-add_subdirectory(rnn)
+\ No newline at end of file
++add_subdirectory(rnn)
+diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
+index c63d134..01c825e 100644
+--- a/src/core/CMakeLists.txt
++++ b/src/core/CMakeLists.txt
+@@ -55,20 +55,11 @@ set(core_hdrs
+   ${core_hdrs}
+   )
+ 
+-set(core_test_srcs
+-  ${core_test_srcs}
+-  ${core_tsrcs}
+-  test/test_analyzer_env.h
+-  ../testing/test_analyzer.h
+-  )
+-
+ add_library(jpp_core ${core_srcs} ${core_hdrs} ${libs3p_pegtl_headers})
+-jpp_test_executable(jpp_core_tests ${core_test_srcs})
+ 
+ target_include_directories(jpp_core PUBLIC ${jpp_core_cfg_dir})
+ 
+ target_link_libraries(jpp_core PUBLIC jpp_util jpp_rnn PRIVATE pathie)
+-target_link_libraries(jpp_core_tests jpp_core jpp_core_train)
+ 
+ if (${JPP_USE_PROTOBUF})
+   target_include_directories(jpp_core PUBLIC ${Protobuf_INCLUDE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+@@ -78,4 +69,4 @@ endif()
+ add_subdirectory(benchmarks)
+ if (${JPP_ENABLE_DEV_TOOLS})
+   add_subdirectory(devtools)
+-endif ()
+\ No newline at end of file
++endif ()
+diff --git a/src/core/analysis/CMakeLists.txt b/src/core/analysis/CMakeLists.txt
+index 526263e..1b32f8d 100644
+--- a/src/core/analysis/CMakeLists.txt
++++ b/src/core/analysis/CMakeLists.txt
+@@ -79,5 +79,3 @@ jpp_core_files(core_hdrs
+   )
+ 
+ 
+-jpp_test_executable(jpp_core_analysis_tests ${core_analysis_tsrc})
+-target_link_libraries(jpp_core_analysis_tests jpp_core)
+diff --git a/src/core/codegen/CMakeLists.txt b/src/core/codegen/CMakeLists.txt
+index a905cee..fa759c7 100644
+--- a/src/core/codegen/CMakeLists.txt
++++ b/src/core/codegen/CMakeLists.txt
+@@ -30,7 +30,4 @@ set(jpp_codegen_tsrcs
+ 
+ add_library(jpp_core_codegen ${jpp_codegen_srcs} ${jpp_codegen_hdrs})
+ 
+-jpp_test_executable(jpp_codegen_tests ${jpp_codegen_tsrcs})
+-target_include_directories(jpp_codegen_tests PRIVATE ${cgtest02_INCLUDE})
+ target_link_libraries(jpp_core_codegen jpp_core)
+-target_link_libraries(jpp_codegen_tests jpp_core_codegen)
+\ No newline at end of file
+diff --git a/src/core/spec/CMakeLists.txt b/src/core/spec/CMakeLists.txt
+index f495d67..da827b9 100644
+--- a/src/core/spec/CMakeLists.txt
++++ b/src/core/spec/CMakeLists.txt
+@@ -33,5 +33,3 @@ jpp_core_files(core_hdrs
+ 
+   )
+ 
+-jpp_test_executable(jpp_core_spec_tests ${core_spec_tsrc} ${libs3p_pegtl_headers})
+-target_link_libraries(jpp_core_spec_tests jpp_core)
+\ No newline at end of file
+diff --git a/src/core/training/CMakeLists.txt b/src/core/training/CMakeLists.txt
+index 960437e..4ede9e1 100644
+--- a/src/core/training/CMakeLists.txt
++++ b/src/core/training/CMakeLists.txt
+@@ -39,7 +39,5 @@ set(core_train_hdrs
+ 
+ 
+ add_library(jpp_core_train ${core_train_src} ${core_train_hdrs})
+-jpp_test_executable(jpp_core_train_tests ${core_train_tsrc})
+ 
+ target_link_libraries(jpp_core_train jpp_core)
+-target_link_libraries(jpp_core_train_tests jpp_core_train)
+\ No newline at end of file
+diff --git a/src/jumandic/CMakeLists.txt b/src/jumandic/CMakeLists.txt
+index bef3149..85a8b5d 100644
+--- a/src/jumandic/CMakeLists.txt
++++ b/src/jumandic/CMakeLists.txt
+@@ -53,10 +53,6 @@ if (${JPP_USE_PROTOBUF})
+ endif ()
+ 
+ 
+-jpp_test_executable(jpp_jumandic_tests ${jumandic_tests})
+-jpp_test_executable(jpp_bug_tests ${bug_test_sources})
+-target_include_directories(jpp_jumandic_tests PRIVATE ${jpp_jumandic_cg_INCLUDE})
+-
+ add_executable(jpp_jumandic_bootstrap main/bootstrap.cc)
+ add_executable(jumanpp_v2 main/jumanpp.cc)
+ add_executable(jumanpp_v2_train main/jumanpp_train.cc main/jumanpp_train.h)
+@@ -64,11 +60,9 @@ add_executable(jpp_jumandic_pathdiff main/path_diff.cc)
+ target_include_directories(jpp_jumandic_pathdiff PRIVATE ${jpp_jumandic_cg_INCLUDE})
+ 
+ target_link_libraries(jpp_jumandic jpp_jumandic_spec)
+-target_link_libraries(jpp_jumandic_tests jpp_jumandic jpp_core_train)
+-target_link_libraries(jpp_bug_tests jpp_jumandic jpp_core_train)
+ target_link_libraries(jpp_jumandic_bootstrap jpp_jumandic)
+ target_link_libraries(jumanpp_v2 jpp_jumandic)
+ target_link_libraries(jumanpp_v2_train jpp_jumandic jpp_core_train)
+ target_link_libraries(jpp_jumandic_pathdiff jpp_jumandic)
+ 
+-install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/jumanpp_v2 RENAME jumanpp DESTINATION bin)
+\ No newline at end of file
++install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/jumanpp_v2 RENAME jumanpp DESTINATION bin)
+diff --git a/src/rnn/CMakeLists.txt b/src/rnn/CMakeLists.txt
+index 448ba51..ca09a00 100644
+--- a/src/rnn/CMakeLists.txt
++++ b/src/rnn/CMakeLists.txt
+@@ -1,12 +1,9 @@
+ set(jpp_rnn_sources mikolov_rnn.cc)
+ set(jpp_rnn_includes mikolov_rnn.h simple_rnn_impl.h mikolov_rnn_impl.h rnn_arg_parse.h)
+-set(jpp_rnn_tests mikolov_rnn_test.cc)
+ 
+ add_library(jpp_rnn ${jpp_rnn_sources} ${jpp_rnn_includes} )
+ add_library(jumanpp_rnn_legacy legacy/rnnlmlib.h legacy/rnnlmlib_static.h legacy/rnnlmlib_static.cpp)
+ 
+-jpp_test_executable(jpp_rnn_tests ${jpp_rnn_tests})
+ target_link_libraries(jpp_rnn jpp_util)
+-target_link_libraries(jpp_rnn_tests jpp_rnn jumanpp_rnn_legacy)
+ 
+-target_link_libraries(jumanpp_rnn_legacy jpp_util)
+\ No newline at end of file
++target_link_libraries(jumanpp_rnn_legacy jpp_util)
+diff --git a/src/util/CMakeLists.txt b/src/util/CMakeLists.txt
+index 53b6c57..c4599d5 100644
+--- a/src/util/CMakeLists.txt
++++ b/src/util/CMakeLists.txt
+@@ -25,8 +25,6 @@ endif()
+ 
+ 
+ add_library(jpp_util ${jpp_util_sources} ${jpp_util_headers} ${BACKWARD_headers})
+-jpp_test_executable(jpp_util_test ${jpp_util_test_srcs} ${jpp_util_headers})
+-target_link_libraries(jpp_util_test jpp_util)
+ target_link_libraries(jpp_util ${CMAKE_THREAD_LIBS_INIT})
+ target_include_directories(jpp_util PUBLIC ${JPP_LIBS_DIR} ${JPP_SRC_DIR})
+ target_compile_features(jpp_util PUBLIC
+-- 
+2.33.1
+
diff --git a/nixpkgs/pkgs/tools/text/jumanpp/default.nix b/nixpkgs/pkgs/tools/text/jumanpp/default.nix
index 5fb5ec88d679..5bea259bccaf 100644
--- a/nixpkgs/pkgs/tools/text/jumanpp/default.nix
+++ b/nixpkgs/pkgs/tools/text/jumanpp/default.nix
@@ -9,6 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-ASdr6qbkSe71M7QmuuwidCa4xQhDVoXBJ2XqvSY53pQ=";
   };
 
+  patches = [ ./0001-Exclude-all-tests-from-the-build.patch ];
+  cmakeFlags = [ "-DJPP_ENABLE_TESTS=OFF" ];
+
   nativeBuildInputs = [ cmake ];
   buildInputs = [ protobuf ]
     ++ lib.optional stdenv.isDarwin libiconv;
diff --git a/nixpkgs/pkgs/tools/text/kdiff3/default.nix b/nixpkgs/pkgs/tools/text/kdiff3/default.nix
index 07f82c08591a..d0ac783ca4f5 100644
--- a/nixpkgs/pkgs/tools/text/kdiff3/default.nix
+++ b/nixpkgs/pkgs/tools/text/kdiff3/default.nix
@@ -14,11 +14,11 @@
 
 mkDerivation rec {
   pname = "kdiff3";
-  version = "1.9.5";
+  version = "1.9.6";
 
   src = fetchurl {
     url = "https://download.kde.org/stable/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-CDchWW2dQ3O8LxKYOUqN21tVp61NckKTOnzYrmRoPBo=";
+    sha256 = "sha256-rJIkdvhQYTpzkoTj+vR3yYrDSa0Vpzeity3thFH2srw=";
   };
 
   buildInputs = [ boost ];
diff --git a/nixpkgs/pkgs/tools/text/languagetool/default.nix b/nixpkgs/pkgs/tools/text/languagetool/default.nix
index 96dc84e94dbe..bce8fec2da48 100644
--- a/nixpkgs/pkgs/tools/text/languagetool/default.nix
+++ b/nixpkgs/pkgs/tools/text/languagetool/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "LanguageTool";
-  version = "5.6";
+  version = "5.7";
 
   src = fetchzip {
     url = "https://www.languagetool.org/download/${pname}-${version}.zip";
-    sha256 = "sha256-HsRAu8exGXCGF0P7wZaDtuAKRDmNjMF9P2hFliZ1RXo=";
+    sha256 = "sha256-UR8OodT2H+YKmal+9kYsiwqM0dZhUHaUGEWZMzT+3dA=";
   };
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ jre ];
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://languagetool.org";
+    sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ edwtjo ];
     platforms = jre.meta.platforms;
diff --git a/nixpkgs/pkgs/tools/text/link-grammar/default.nix b/nixpkgs/pkgs/tools/text/link-grammar/default.nix
index c685ef603319..28cd894393ee 100644
--- a/nixpkgs/pkgs/tools/text/link-grammar/default.nix
+++ b/nixpkgs/pkgs/tools/text/link-grammar/default.nix
@@ -3,6 +3,7 @@
 , fetchurl
 , pkg-config
 , python3
+, flex
 , sqlite
 , libedit
 , runCommand
@@ -13,18 +14,19 @@ let
 
 link-grammar = stdenv.mkDerivation rec {
   pname = "link-grammar";
-  version = "5.10.2";
+  version = "5.10.5";
 
   outputs = [ "bin" "out" "dev" "man" ];
 
   src = fetchurl {
     url = "http://www.abisource.com/downloads/${pname}/${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-KM7HUuqg44l66WEzO2knRZ+Laf7+aMKqUnKYPX24abY=";
+    sha256 = "sha256-MkcQzYEyl1/5zLU1CXMvdVhHOxwZ8XiSAAo97bhhiu0=";
   };
 
   nativeBuildInputs = [
     pkg-config
     python3
+    flex
   ];
 
   buildInputs = [
@@ -52,6 +54,7 @@ link-grammar = stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
+    broken = stdenv.isDarwin;
     description = "A Grammar Checking library";
     homepage = "https://www.abisource.com/projects/link-grammar/";
     changelog = "https://github.com/opencog/link-grammar/blob/link-grammar-${version}/ChangeLog";
diff --git a/nixpkgs/pkgs/tools/text/ltex-ls/default.nix b/nixpkgs/pkgs/tools/text/ltex-ls/default.nix
new file mode 100644
index 000000000000..c21ab2e038ab
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/ltex-ls/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchurl, makeBinaryWrapper, jre_headless }:
+
+stdenv.mkDerivation rec {
+  pname = "ltex-ls";
+  version = "15.2.0";
+
+  src = fetchurl {
+    url = "https://github.com/valentjn/ltex-ls/releases/download/${version}/ltex-ls-${version}.tar.gz";
+    sha256 = "sha256-ygjCFjYaP9Lc5BLuOHe5+lyaKpfDhicR783skkBgo7I=";
+  };
+
+  nativeBuildInputs = [ makeBinaryWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    cp -rfv bin/ lib/ $out
+    rm -fv $out/bin/*.bat
+    for file in $out/bin/{ltex-ls,ltex-cli}; do
+      wrapProgram $file --set JAVA_HOME "${jre_headless}"
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://valentjn.github.io/ltex/";
+    description = "LSP language server for LanguageTool";
+    license = licenses.mpl20;
+    maintainers = [ maintainers.marsam ];
+    platforms = jre_headless.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/m2r/default.nix b/nixpkgs/pkgs/tools/text/m2r/default.nix
deleted file mode 100644
index f6dda712d0b9..000000000000
--- a/nixpkgs/pkgs/tools/text/m2r/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib
-, buildPythonApplication
-, fetchFromGitHub
-, docutils
-, mistune
-, pygments
-}:
-
-buildPythonApplication rec {
-  pname = "m2r";
-  version = "0.2.1";
-
-  src = fetchFromGitHub {
-    owner = "miyakogi";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-JNLPEXMoiISh4RnKP+Afj9/PJp9Lrx9UYHsfuGAL7uI=";
-  };
-
-  buildInputs = [
-    docutils
-    mistune
-    pygments
-  ];
-
-  meta = with lib; {
-    homepage = "https://github.com/miyakogi/m2r";
-    description = "Markdown-to-RestructuredText converter";
-    license = licenses.mit;
-    maintainers = with maintainers; [ AndersonTorres ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/text/mark/default.nix b/nixpkgs/pkgs/tools/text/mark/default.nix
index 9c7f4e2b385d..7f77f5767c66 100644
--- a/nixpkgs/pkgs/tools/text/mark/default.nix
+++ b/nixpkgs/pkgs/tools/text/mark/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "mark";
-  version = "8.0";
+  version = "8.3";
 
   src = fetchFromGitHub {
     owner  = "kovetskiy";
     repo   = "mark";
     rev    = version;
-    sha256 = "sha256-1cJt/+OClc7YxSy9kGLQrREckjDvMIBdzet9SJGPb84=";
+    sha256 = "sha256-HU7kPzcRhptMGuqsrHOTT3yZ9ALQGBK/cYZ8KbIO0RU=";
   };
 
-  vendorSha256 = "sha256-a+pWSt24+aNABcLhiiFy+g/imBQtiqliAAWWkjPolxU=";
+  vendorSha256 = "sha256-Q628lMGV/Ys8BC5zMq3xXgmj74NYHQmP0IrMU5gyyMw=";
 
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
diff --git a/nixpkgs/pkgs/tools/text/mdbook-admonish/default.nix b/nixpkgs/pkgs/tools/text/mdbook-admonish/default.nix
new file mode 100644
index 000000000000..c72f7454b2bf
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/mdbook-admonish/default.nix
@@ -0,0 +1,22 @@
+{ lib, stdenv, fetchCrate, rustPlatform, CoreServices }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "mdbook-admonish";
+  version = "1.6.0";
+
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "sha256-GH4T7arBabm+DXIJa3seP6L13DBleoNqYwzxhoCZJgI=";
+  };
+
+  cargoSha256 = "sha256-v0usxkGWs/qzUPU6ZwtTpUD7hXdSBZGYQifMZnr7sfI=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
+
+  meta = with lib; {
+    description = "A preprocessor for mdbook to add Material Design admonishments";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jmgilman ];
+    homepage = "https://github.com/tommilligan/mdbook-admonish";
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/mdbook-linkcheck/default.nix b/nixpkgs/pkgs/tools/text/mdbook-linkcheck/default.nix
index b37b16876b0f..eaccd05eb9c4 100644
--- a/nixpkgs/pkgs/tools/text/mdbook-linkcheck/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook-linkcheck/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, Security
-, testVersion, mdbook-linkcheck }:
+, testers, mdbook-linkcheck }:
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-linkcheck";
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage rec {
 
   doCheck = false; # tries to access network to test broken web link functionality
 
-  passthru.tests.version = testVersion { package = mdbook-linkcheck; };
+  passthru.tests.version = testers.testVersion { package = mdbook-linkcheck; };
 
   meta = with lib; {
     description = "A backend for `mdbook` which will check your links for you.";
diff --git a/nixpkgs/pkgs/tools/text/mdbook-mermaid/default.nix b/nixpkgs/pkgs/tools/text/mdbook-mermaid/default.nix
index 05bf89e30189..859c75776e32 100644
--- a/nixpkgs/pkgs/tools/text/mdbook-mermaid/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook-mermaid/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-mermaid";
-  version = "0.10.0";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
     owner = "badboy";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-dXeu/e92lafurA/bqKoszIjK/3qw/ZvVKnDxYALRpTk=";
+    sha256 = "sha256-Fd6TCmi1PnDJP2osMJNtEGzrI1Ay8s/XkhpzI+DLrGA=";
   };
 
-  cargoSha256 = "sha256-LVfeQPRpwv1l3Brm8HJYoYvv26fJhsfR4I9Ds4NuWQM=";
+  cargoSha256 = "sha256-W/HSPT7X5B4Gyg806H3nm0wWlF89gutW530dgZ/qJLo=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
diff --git a/nixpkgs/pkgs/tools/text/mdbook/default.nix b/nixpkgs/pkgs/tools/text/mdbook/default.nix
index d3a136d6bf75..56d60eb7fb55 100644
--- a/nixpkgs/pkgs/tools/text/mdbook/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook/default.nix
@@ -1,20 +1,32 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, CoreServices }:
+{ lib, stdenv, fetchFromGitHub, nix, rustPlatform, CoreServices }:
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook";
-  version = "0.4.12";
+  version = "0.4.21";
 
   src = fetchFromGitHub {
     owner = "rust-lang";
     repo = "mdBook";
     rev = "v${version}";
-    sha256 = "sha256-2lxotwL3Dc9jRA12iKO5zotO80pa+RfUZucyDRgFOsI=";
+    sha256 = "sha256-ggcyOsA4cyo5l87cZmOMI0w1gCzmWy9NRJiWxjBdB1E=";
   };
 
-  cargoSha256 = "sha256-TNd4pj4qSKgmmVtSCSKFCxNtv96xD7+24BPsLXPgiEI=";
+  cargoSha256 = "sha256-KVoMC8ypikABVkIj5dCSHzYZ9CV8UMuAFxSEYLaQTSk=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
+  # Tests rely on unset 'RUST_LOG' value to emit INFO messages.
+  # 'RUST_LOG=' nixpkgs default enables warnings only and breaks tests.
+  # Can be removed when https://github.com/rust-lang/mdBook/pull/1777
+  # is released.
+  logLevel = "info";
+
+  passthru = {
+    tests = {
+      inherit nix;
+    };
+  };
+
   meta = with lib; {
     description = "Create books from MarkDown";
     homepage = "https://github.com/rust-lang/mdBook";
diff --git a/nixpkgs/pkgs/tools/text/mdcat/default.nix b/nixpkgs/pkgs/tools/text/mdcat/default.nix
index f6dcd72d7bf2..87ac39fb56f8 100644
--- a/nixpkgs/pkgs/tools/text/mdcat/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdcat/default.nix
@@ -12,21 +12,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdcat";
-  version = "0.26.1";
+  version = "0.28.0";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "flausch";
     repo = "mdcat";
     rev = "mdcat-${version}";
-    sha256 = "sha256-vB49EwQltonR9Uw8RRMZTPR4WkcylnIqiE0/8+t2R1Q=";
+    sha256 = "sha256-l64gRoWYYLbPA0n6vNQf14CCUtnkfMnQdqbetIbWvBU=";
   };
 
   nativeBuildInputs = [ pkg-config asciidoctor installShellFiles ];
   buildInputs = [ openssl ]
     ++ lib.optional stdenv.isDarwin Security;
 
-  cargoSha256 = "sha256-v52ob5l5HiiZZmo88D9/ldFi0170/BuPzgKIt9ctSgU=";
+  cargoSha256 = "sha256-MCldDRleFfl4UrITuMEmLo0JyR+eoi6S6zGvFOMnIBE=";
 
   checkInputs = [ ansi2html ];
   # Skip tests that use the network and that include files.
@@ -43,15 +43,16 @@ rustPlatform.buildRustPackage rec {
 
   postInstall = ''
     installManPage $releaseDir/build/mdcat-*/out/mdcat.1
-    installShellCompletion --bash $releaseDir/build/mdcat-*/out/completions/mdcat.bash
-    installShellCompletion --fish $releaseDir/build/mdcat-*/out/completions/mdcat.fish
-    installShellCompletion --zsh $releaseDir/build/mdcat-*/out/completions/_mdcat
+    installShellCompletion \
+      --bash $releaseDir/build/mdcat-*/out/completions/mdcat.bash \
+      --fish $releaseDir/build/mdcat-*/out/completions/mdcat.fish \
+      --zsh $releaseDir/build/mdcat-*/out/completions/_mdcat
   '';
 
   meta = with lib; {
     description = "cat for markdown";
-    homepage = "https://github.com/lunaryorn/mdcat";
+    homepage = "https://codeberg.org/flausch/mdcat";
     license = with licenses; [ mpl20 ];
-    maintainers = with maintainers; [ davidtwco SuperSandro2000 ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/miller/default.nix b/nixpkgs/pkgs/tools/text/miller/default.nix
index 932b670c7494..aea58ddb9364 100644
--- a/nixpkgs/pkgs/tools/text/miller/default.nix
+++ b/nixpkgs/pkgs/tools/text/miller/default.nix
@@ -2,22 +2,16 @@
 
 buildGoModule rec {
   pname = "miller";
-  version = "6.2.0";
+  version = "6.3.0";
 
   src = fetchFromGitHub {
     owner = "johnkerl";
     repo = "miller";
-    # NOTE: The tag v6.2.0 has still old version number, as reported by
-    #       `mlr --version`. This is the current head of the 6.2.0 branch, with
-    #       the correct version number.
-    #
-    #       For future releases please check if we can use
-    #       `rev = "v${version}"` again.
-    rev = "a6dc231eefc209eb66b50b0773542c2e63501bba";
-    sha256 = "sha256-hMWcf43o1wiVjHsgH+ZDBny5vlZQkKyoJN5np4gUy4w=";
+    rev = "v${version}";
+    sha256 = "sha256-5lDoJo5v6L4nkaCSyeViOeCN6cn4lBIwHYc0Jx70FFk=";
   };
 
-  vendorSha256 = "sha256-2tl/twzkvWB1lnvi3fIptM77zi0lmAn7Pzoe0/lW6o4=";
+  vendorSha256 = "sha256-MUffv6dRvtc4pC1vErGgUMh6B8bbVaP0avAKNamRErI=";
 
   subPackages = [ "cmd/mlr" ];
 
@@ -26,6 +20,7 @@ buildGoModule rec {
     homepage    = "https://github.com/johnkerl/miller";
     license     = licenses.bsd2;
     maintainers = with maintainers; [ mstarzyk ];
+    mainProgram = "mlr";
     platforms   = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/mmdoc/default.nix b/nixpkgs/pkgs/tools/text/mmdoc/default.nix
index e30020d15d9b..becb90b0f1de 100644
--- a/nixpkgs/pkgs/tools/text/mmdoc/default.nix
+++ b/nixpkgs/pkgs/tools/text/mmdoc/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
   doCheck = stdenv.isx86_64;
 
   meta = with lib; {
+    broken = stdenv.isDarwin;
     description = "Minimal Markdown Documentation";
     homepage = "https://github.com/ryantm/mmdoc";
     license = licenses.cc0;
diff --git a/nixpkgs/pkgs/tools/text/nkf/default.nix b/nixpkgs/pkgs/tools/text/nkf/default.nix
index a2b5f66a6e91..9a70ea9461af 100644
--- a/nixpkgs/pkgs/tools/text/nkf/default.nix
+++ b/nixpkgs/pkgs/tools/text/nkf/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchurl, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "nkf";
@@ -9,6 +9,15 @@ stdenv.mkDerivation rec {
     sha256 = "0i5dbcb9aipwr8ym4mhvgf1in3frl6y8h8x96cprz9s7b11xz9yi";
   };
 
+  patches = [
+    # Pull upstream fix for parllel build failures
+    (fetchpatch {
+      name = "parallel-install.patch";
+      url = "http://git.osdn.net/view?p=nkf/nkf.git;a=patch;h=9ccff5975bec7963e591e042e1ab1139252a4dc9";
+      sha256 = "00f0x414gfch650b20w0yj5x2bd67hchmadl7v54lk3vdgkc6jwj";
+    })
+  ];
+
   makeFlags = [ "prefix=$(out)" ];
 
   meta = {
diff --git a/nixpkgs/pkgs/tools/text/opencc/default.nix b/nixpkgs/pkgs/tools/text/opencc/default.nix
index 5ad14295e872..631835905a1f 100644
--- a/nixpkgs/pkgs/tools/text/opencc/default.nix
+++ b/nixpkgs/pkgs/tools/text/opencc/default.nix
@@ -1,24 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, cmake, python2 }:
+{ lib, stdenv, fetchFromGitHub, cmake, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "opencc";
-  version = "1.1.3";
+  version = "1.1.4";
 
   src = fetchFromGitHub {
     owner = "BYVoid";
     repo = "OpenCC";
     rev = "ver.${version}";
-    sha256 = "sha256-q/y4tRov/BYCAiE4i7fT6ysTerxxOHMZUWT2Jlo/0rI=";
+    sha256 = "sha256-h/QKXPWHNgWf5Q9UIaNmP85YTUMN7RlRdlNI4NuBrO8=";
   };
 
-  nativeBuildInputs = [ cmake python2 ];
-
-  # let intermediate tools find intermediate library
-  preBuild = lib.optionalString stdenv.isLinux ''
-    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$(pwd)/src
-  '' + lib.optionalString stdenv.isDarwin ''
-    export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}$(pwd)/src
-  '';
+  nativeBuildInputs = [ cmake python3 ];
 
   meta = with lib; {
     homepage = "https://github.com/BYVoid/OpenCC";
diff --git a/nixpkgs/pkgs/tools/text/paperoni/default.nix b/nixpkgs/pkgs/tools/text/paperoni/default.nix
new file mode 100644
index 000000000000..8c9bbf9e6227
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/paperoni/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, openssl
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "paperoni";
+  version = "0.6.1-alpha1";
+
+  src = fetchFromGitHub {
+    owner = "hipstermojo";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-vTylnDtoPpiRtk/vew1hLq3g8pepWRVqBEBnvSif4Zw=";
+  };
+
+  cargoSha256 = "sha256-iLEIGuVB9ykNcwbXk/donDdBuMvitM54Ax6bszVGaO0=";
+
+  nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
+
+  buildInputs = lib.optionals stdenv.isLinux [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [ Security ];
+
+  meta = with lib; {
+    description = "An article extractor in Rust";
+    homepage = "https://github.com/hipstermojo/paperoni";
+    license = licenses.mit;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/poedit/default.nix b/nixpkgs/pkgs/tools/text/poedit/default.nix
index fcb2a7019aca..1a9f33438c8b 100644
--- a/nixpkgs/pkgs/tools/text/poedit/default.nix
+++ b/nixpkgs/pkgs/tools/text/poedit/default.nix
@@ -1,22 +1,22 @@
-{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, gettext, pkg-config, wxGTK31-gtk3,
+{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, gettext, pkg-config, wxGTK30-gtk3,
   boost, icu, lucenepp, asciidoc, libxslt, xmlto, gtk3, gtkspell3, pugixml,
   nlohmann_json, hicolor-icon-theme, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "poedit";
-  version = "3.0.1";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "vslavik";
     repo = "poedit";
     rev = "v${version}-oss";
-    sha256 = "sha256-PBAOCAO3OrBE7lOho7nJNEpqwds7XiblN/f+GonrXHA=";
+    sha256 = "sha256-kun1x1ql8KLS1+nh5+iItxYZnfvFcrx62cvX4OEczG4=";
   };
 
   nativeBuildInputs = [ autoconf automake asciidoc wrapGAppsHook
     libxslt xmlto boost libtool pkg-config ];
 
-  buildInputs = [ lucenepp nlohmann_json wxGTK31-gtk3 icu pugixml gtk3 gtkspell3 hicolor-icon-theme ];
+  buildInputs = [ lucenepp nlohmann_json wxGTK30-gtk3 icu pugixml gtk3 gtkspell3 hicolor-icon-theme ];
 
   propagatedBuildInputs = [ gettext ];
 
diff --git a/nixpkgs/pkgs/tools/text/qshowdiff/default.nix b/nixpkgs/pkgs/tools/text/qshowdiff/default.nix
deleted file mode 100644
index 8396e39e6d1c..000000000000
--- a/nixpkgs/pkgs/tools/text/qshowdiff/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, qt4, perl, pkg-config }:
-
-stdenv.mkDerivation rec {
-  pname = "qshowdiff";
-  version = "1.2";
-
-  src = fetchFromGitHub {
-    owner = "danfis";
-    repo = "qshowdiff";
-    rev = "v${version}";
-    sha256 = "g3AWQ6/LSF59ztzdgNuLi+8d6fFTPiC9z0yXMdPdB5U=";
-  };
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ qt4 perl ];
-
-  configurePhase = ''
-    mkdir -p $out/{bin,man/man1}
-    makeFlags="PREFIX=$out CC=$CXX"
-  '';
-
-  meta = {
-    homepage = "http://qshowdiff.danfis.cz/";
-    description = "Colourful diff viewer";
-    license = lib.licenses.gpl3Plus;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/text/replace/default.nix b/nixpkgs/pkgs/tools/text/replace/default.nix
index 058c2ba3daa5..62b83636b37c 100644
--- a/nixpkgs/pkgs/tools/text/replace/default.nix
+++ b/nixpkgs/pkgs/tools/text/replace/default.nix
@@ -27,8 +27,9 @@ stdenv.mkDerivation rec {
   patches = [./malloc.patch];
 
   meta = {
-    homepage = "https://replace.richardlloyd.org.uk/";
     description = "A tool to replace verbatim strings";
+    homepage = "https://replace.richardlloyd.org.uk/";
+    mainProgram = "replace-literal";
     platforms = lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/robodoc/default.nix b/nixpkgs/pkgs/tools/text/robodoc/default.nix
index e30e8739797a..015b76253a83 100644
--- a/nixpkgs/pkgs/tools/text/robodoc/default.nix
+++ b/nixpkgs/pkgs/tools/text/robodoc/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   meta = with lib; {
+    broken = stdenv.isDarwin;
     homepage = "https://github.com/gumpu/ROBODoc";
     description = "Documentation Extraction Tool";
     longDescription = ''
diff --git a/nixpkgs/pkgs/tools/text/rs/default.nix b/nixpkgs/pkgs/tools/text/rs/default.nix
index 9aca92922a52..141d72dfe077 100644
--- a/nixpkgs/pkgs/tools/text/rs/default.nix
+++ b/nixpkgs/pkgs/tools/text/rs/default.nix
@@ -1,4 +1,9 @@
-{ lib, stdenv, fetchurl, libbsd }:
+{ lib
+, stdenv
+, fetchurl
+, installShellFiles
+, libbsd
+}:
 
 stdenv.mkDerivation rec {
   pname = "rs";
@@ -9,18 +14,29 @@ stdenv.mkDerivation rec {
     sha256 = "0gxwlfk7bzivpp2260w2r6gkyl7vdi05cggn1fijfnp8kzf1b4li";
   };
 
+  nativeBuildInputs = [ installShellFiles ];
+
   buildInputs = [ libbsd ];
 
   buildPhase = ''
+    runHook preBuild
+
     ${stdenv.cc}/bin/cc utf8.c rs.c -o rs -lbsd
+
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
+
     install -Dm 755 rs -t $out/bin
-    install -Dm 644 rs.1 -t $out/share/man/man1
+    installManPage rs.1
+
+    runHook postInstall
   '';
 
   meta = with lib; {
+    homepage = "http://www.mirbsd.org/htman/i386/man1/rs.htm";
     description = "Reshape a data array from standard input";
     longDescription = ''
       rs reads the standard input, interpreting each line as a row of blank-
@@ -43,8 +59,6 @@ stdenv.mkDerivation rec {
       to control presentation of the output columns, including transposition of
       the rows and columns.
     '';
-
-    homepage = "https://www.mirbsd.org/htman/i386/man1/rs.htm";
     license = licenses.bsd3;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/text/runiq/default.nix b/nixpkgs/pkgs/tools/text/runiq/default.nix
index 6d7bb5e7eb0b..7b1e99978a45 100644
--- a/nixpkgs/pkgs/tools/text/runiq/default.nix
+++ b/nixpkgs/pkgs/tools/text/runiq/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "runiq";
-  version = "1.2.1";
+  version = "1.2.2";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "0xhd1z8mykxg9kiq8nw5agy1jxfk414czq62xm1s13ssig3h7jqj";
+    sha256 = "sha256-WPQgTQICZ0DFr+7D99UGMx+I78376IC6iIJ3tCsj0Js=";
   };
 
-  cargoSha256 = "1g4yfz5xq9lqwh0ggyn8kn8bnzrqfmh7kx455md5ranrqqh0x5db";
+  cargoSha256 = "sha256-QKtrd690eoPXyd5CQg5/yAiTDk297y60XaUdoeFAe0c=";
 
   meta = with lib; {
     description = "An efficient way to filter duplicate lines from input, à la uniq";
diff --git a/nixpkgs/pkgs/tools/text/sad/default.nix b/nixpkgs/pkgs/tools/text/sad/default.nix
index 0de0f745a233..08665e22d9ec 100644
--- a/nixpkgs/pkgs/tools/text/sad/default.nix
+++ b/nixpkgs/pkgs/tools/text/sad/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sad";
-  version = "0.4.20";
+  version = "0.4.22";
 
   src = fetchFromGitHub {
     owner = "ms-jpq";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-BhkSqXiQPOSYnCXqjAqenKx3DextxPluqsTAMI4Xs7g=";
+    sha256 = "sha256-v1fXEC+bV561cewH17x+1anhfXstGBOHG5rHvhYIvLo=";
   };
 
-  cargoSha256 = "sha256-aKTF0DH8Lf/H6OfQPuQ6yGOmUEUguYcHMCuYKIjNR9k=";
+  cargoSha256 = "sha256-krQTa9R3hmMVKLoBgnbCw+aSQu9HUXfA3XflB8AZv6w=";
 
   meta = with lib; {
     description = "CLI tool to search and replace";
diff --git a/nixpkgs/pkgs/tools/text/seehecht/default.nix b/nixpkgs/pkgs/tools/text/seehecht/default.nix
new file mode 100644
index 000000000000..55c02a8c90c6
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/seehecht/default.nix
@@ -0,0 +1,27 @@
+{ lib, rustPlatform, fetchFromGitea }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "seehecht";
+  version = "3.0.3";
+
+  src = fetchFromGitea {
+    domain = "codeberg.org";
+    owner = "annaaurora";
+    repo = "seehecht";
+    rev = "v${version}";
+    sha256 = "sha256-KIxK0JYfq/1Bn4LOn+LzWPBUvGYMvOEuqS7GMpDRvW0=";
+  };
+
+  cargoSha256 = "sha256-AeVUVF4SBS9FG0iezLBKUm4Uk1PPRXPTON93evgL9IA=";
+
+  postInstall = ''
+    ln -s $out/bin/seh $out/bin/seehecht
+  '';
+
+  meta = with lib; {
+    description = "A tool to quickly open a markdown document with already filled out frontmatter";
+    license = licenses.lgpl3Only;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ annaaurora ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/shfmt/default.nix b/nixpkgs/pkgs/tools/text/shfmt/default.nix
index 061e1f709ebb..054e345be8db 100644
--- a/nixpkgs/pkgs/tools/text/shfmt/default.nix
+++ b/nixpkgs/pkgs/tools/text/shfmt/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "shfmt";
-  version = "3.4.3";
+  version = "3.5.1";
 
   src = fetchFromGitHub {
     owner = "mvdan";
     repo = "sh";
     rev = "v${version}";
-    sha256 = "sha256-tE7U/hE1Z/9VZTYt2jU0IE11cS01l6wTPVFuXH36sM4=";
+    sha256 = "sha256-/fNKgUh0AnyW1MOuTwk/deT5MnQMy8zMUA1KEdaM8SY=";
   };
 
-  vendorSha256 = "sha256-ZYsQ+wE+G7xNrBN29npSxxPCz9+Wb/RsBzM5uwJkhO8=";
+  vendorSha256 = "sha256-3eao9bORPTsyCFpafp89mcL2Y7HNBlDfUsTull7qnYs=";
 
   subPackages = [ "cmd/shfmt" ];
 
diff --git a/nixpkgs/pkgs/tools/text/sift/default.nix b/nixpkgs/pkgs/tools/text/sift/default.nix
index dc025f17a78b..f282c28f8fe1 100644
--- a/nixpkgs/pkgs/tools/text/sift/default.nix
+++ b/nixpkgs/pkgs/tools/text/sift/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }:
 
 buildGoPackage rec {
   pname = "sift";
@@ -7,6 +7,8 @@ buildGoPackage rec {
 
   goPackagePath = "github.com/svent/sift";
 
+  nativeBuildInputs = [ installShellFiles ];
+
   src = fetchFromGitHub {
     inherit rev;
     owner = "svent";
@@ -14,12 +16,16 @@ buildGoPackage rec {
     sha256 = "0bgy0jf84z1c3msvb60ffj4axayfchdkf0xjnsbx9kad1v10g7i1";
   };
 
+  postInstall = ''
+    installShellCompletion --cmd sift --bash go/src/github.com/svent/sift/sift-completion.bash
+  '';
+
   goDeps = ./deps.nix;
 
   meta = with lib; {
     description = "A fast and powerful alternative to grep";
     homepage = "https://sift-tool.org";
-    maintainers = [ maintainers.carlsverre ];
+    maintainers = with maintainers; [ carlsverre viraptor ];
     license = licenses.gpl3;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/silver-searcher/default.nix b/nixpkgs/pkgs/tools/text/silver-searcher/default.nix
index 757c65eed848..53146ddd0610 100644
--- a/nixpkgs/pkgs/tools/text/silver-searcher/default.nix
+++ b/nixpkgs/pkgs/tools/text/silver-searcher/default.nix
@@ -13,6 +13,12 @@ stdenv.mkDerivation rec {
 
   patches = [ ./bash-completion.patch ];
 
+  # Workaround build failure on -fno-common toolchains like upstream
+  # gcc-10. Otherwise build fails as:
+  #   ld: src/zfile.o:/build/source/src/log.h:12: multiple definition of
+  #     `print_mtx'; src/ignore.o:/build/source/src/log.h:12: first defined here
+  # TODO: remove once next release has https://github.com/ggreer/the_silver_searcher/pull/1377
+  NIX_CFLAGS_COMPILE = "-fcommon";
   NIX_LDFLAGS = lib.optionalString stdenv.isLinux "-lgcc_s";
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/tools/text/source-highlight/default.nix b/nixpkgs/pkgs/tools/text/source-highlight/default.nix
index 289740854f2e..c8a775e64459 100644
--- a/nixpkgs/pkgs/tools/text/source-highlight/default.nix
+++ b/nixpkgs/pkgs/tools/text/source-highlight/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--with-boost=${boost.out}"
-    "--with-bash-completion=${placeholder "out"}/share/bash_completion.d"
+    "--with-bash-completion=${placeholder "out"}/share/bash-completion/completions"
   ];
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/tools/text/tab/default.nix b/nixpkgs/pkgs/tools/text/tab/default.nix
index 18d3e3d004ad..b70171e2908c 100644
--- a/nixpkgs/pkgs/tools/text/tab/default.nix
+++ b/nixpkgs/pkgs/tools/text/tab/default.nix
@@ -1,24 +1,20 @@
 { lib, stdenv, fetchFromGitHub, python3 }:
 
 stdenv.mkDerivation rec {
-  version = "9.0";
+  version = "9.1";
   pname = "tab";
 
   src = fetchFromGitHub {
     owner = "ivan-tkatchev";
     repo = pname;
     rev = version;
-    sha256 = "sha256-2keVGPRYV2KCeJ+LgAcl74cjW5wvp6Rmy7VNMtdliBE=";
+    sha256 = "sha256-AhgWeV/ojB8jM16A5ggrOD1YjWfRVcoQbkd3S2bgdyE=";
   };
 
   checkInputs = [ python3 ];
 
   doCheck = !stdenv.isDarwin;
 
-  preCheck = ''
-    substituteInPlace Makefile --replace "python2 go2.py" "python go.py"
-  '';
-
   checkTarget = "test";
 
   installPhase = ''
@@ -32,7 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Programming language/shell calculator";
-    homepage    = "https://tkatchev.bitbucket.io/tab/";
+    homepage    = "http://tab-lang.xyz";
     license     = licenses.boost;
     maintainers = with maintainers; [ mstarzyk ];
     platforms   = with platforms; unix;
diff --git a/nixpkgs/pkgs/tools/text/tidy-viewer/default.nix b/nixpkgs/pkgs/tools/text/tidy-viewer/default.nix
index 43b38d06b928..47fabde6068c 100644
--- a/nixpkgs/pkgs/tools/text/tidy-viewer/default.nix
+++ b/nixpkgs/pkgs/tools/text/tidy-viewer/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tidy-viewer";
-  version = "1.4.3";
+  version = "1.4.30";
 
   src = fetchFromGitHub {
     owner = "alexhallam";
     repo = "tv";
     rev = version;
-    sha256 = "sha256-onLu4XNe3sLfZ273Hq9IvgZEV9ir8oEXX7tQG75K2Hw=";
+    sha256 = "sha256-z1H27D0DYQieU91FBZreN6XQCFvwxBJBIWBZRO50cnw=";
   };
 
-  cargoSha256 = "sha256-CYiRi6ny0wzTddpjdnnMHGqcWRM9wVjF34RmETgLH5A=";
+  cargoSha256 = "sha256-rLRyzQkwbjIMhLLHSuDKQznBIDV9iAqCUVg6q5gRhsA=";
 
   # this test parses command line arguments
   # error: Found argument '--test-threads' which wasn't expected, or isn't valid in this context
diff --git a/nixpkgs/pkgs/tools/text/tuc/default.nix b/nixpkgs/pkgs/tools/text/tuc/default.nix
new file mode 100644
index 000000000000..5401515d0fbc
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/tuc/default.nix
@@ -0,0 +1,21 @@
+{ lib, fetchFromGitHub, rustPlatform }:
+rustPlatform.buildRustPackage rec {
+  pname = "tuc";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "riquito";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-M2SK6KF8R0WcyFf8eTyYNK5oXj/DfCrAkUZJ3J2LF6U=";
+  };
+
+  cargoSha256 = "sha256-MhEIDRC40zQ8mBXxONavtPr87SrueV57HhmIRLIagGA=";
+
+  meta = with lib; {
+    description = "When cut doesn't cut it";
+    homepage = "https://github.com/riquito/tuc";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ dit7ya ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/ugrep/default.nix b/nixpkgs/pkgs/tools/text/ugrep/default.nix
index 7a921bdd11f5..42711a2c5913 100644
--- a/nixpkgs/pkgs/tools/text/ugrep/default.nix
+++ b/nixpkgs/pkgs/tools/text/ugrep/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ugrep";
-  version = "3.7.6";
+  version = "3.9.1";
 
   src = fetchFromGitHub {
     owner = "Genivia";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fOp+nf/xZKOw8CDI1RSl/DQH52ay/M/aeSMf6MdfKmQ=";
+    sha256 = "sha256-KDAuGFoUJxaa0noW739+gxeHKZeouu14EDla0lWwaIQ=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/tools/text/vale/default.nix b/nixpkgs/pkgs/tools/text/vale/default.nix
index 9ecd7f44cfa8..f517d9001d17 100644
--- a/nixpkgs/pkgs/tools/text/vale/default.nix
+++ b/nixpkgs/pkgs/tools/text/vale/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "vale";
-  version = "2.15.3";
+  version = "2.20.1";
 
   subPackages = [ "cmd/vale" ];
   outputs = [ "out" "data" ];
@@ -11,20 +11,20 @@ buildGoModule rec {
     owner = "errata-ai";
     repo = "vale";
     rev = "v${version}";
-    sha256 = "sha256-vhsn72xCe1wC4YRdo2m49iUj/3nVl0cyfeSmWRfESaY=";
+    sha256 = "sha256-7n2gAZgt2ri/n0O9Sc2QEbZrzEgnyDh38JVdc+YuT5s=";
   };
 
-  vendorSha256 = "sha256-/0H35PGFFPch4jDnQ/ggctyHZJ5W/C1PNlkT5zzvI3M=";
+  vendorSha256 = "sha256-ODzQkNOXEvSOhG6MoJbyxIwduFAW5FQb5hlOn3+io3A=";
 
   postInstall = ''
     mkdir -p $data/share/vale
-    cp -r styles $data/share/vale
+    cp -r testdata/styles $data/share/vale
   '';
 
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
   meta = with lib; {
-    homepage = "https://docs.errata.ai/vale/about";
+    homepage = "https://vale.sh/";
     description = "A syntax-aware linter for prose built with speed and extensibility in mind";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
diff --git a/nixpkgs/pkgs/tools/text/xidel/default.nix b/nixpkgs/pkgs/tools/text/xidel/default.nix
index 97c74e370089..9865c302f985 100644
--- a/nixpkgs/pkgs/tools/text/xidel/default.nix
+++ b/nixpkgs/pkgs/tools/text/xidel/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchsvn, fetchFromGitHub, fpc }:
+{ lib, stdenv, fetchsvn, fetchFromGitHub, fpc, openssl }:
 
 let
   flreSrc = fetchFromGitHub {
@@ -36,6 +36,9 @@ in stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ fpc ];
+  buildInputs = [ openssl ];
+
+  NIX_LDFLAGS = [ "-lcrypto" ];
 
   patchPhase = ''
     patchShebangs \
diff --git a/nixpkgs/pkgs/tools/text/xml/basex/default.nix b/nixpkgs/pkgs/tools/text/xml/basex/default.nix
index 4d6d23054da1..714918c24d15 100644
--- a/nixpkgs/pkgs/tools/text/xml/basex/default.nix
+++ b/nixpkgs/pkgs/tools/text/xml/basex/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "basex";
-  version = "9.6.3";
+  version = "10.0";
 
   src = fetchurl {
     url = "http://files.basex.org/releases/${version}/BaseX${builtins.replaceStrings ["."] [""] version}.zip";
-    hash = "sha256-OlIAyGUQKrl+Zu79p6cahHpx59zLozGkUDAEvykGN6Y=";
+    hash = "sha256-3NWmgvMEWdj3h7b/kg4u3EdQupgldYc/SiPO2vzF140=";
   };
 
   nativeBuildInputs = [ unzip copyDesktopItems ];
@@ -60,6 +60,7 @@ stdenv.mkDerivation rec {
       modes, BaseX offers a client/server architecture.
     '';
     homepage = "https://basex.org/";
+    sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = [ maintainers.bjornfor ];
diff --git a/nixpkgs/pkgs/tools/text/xml/html-xml-utils/default.nix b/nixpkgs/pkgs/tools/text/xml/html-xml-utils/default.nix
index f1ab390e481b..741dcaad344e 100644
--- a/nixpkgs/pkgs/tools/text/xml/html-xml-utils/default.nix
+++ b/nixpkgs/pkgs/tools/text/xml/html-xml-utils/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "html-xml-utils";
-  version = "8.3";
+  version = "8.4";
 
   src = fetchurl {
     url = "https://www.w3.org/Tools/HTML-XML-utils/${pname}-${version}.tar.gz";
-    sha256 = "sha256-pQxNFtrWYK1nku9TvHfvqdVyl5diN3Gj/OUtjiPT0Iw=";
+    sha256 = "sha256-QbubFOH0zWEC4/jft55xRqJMCWk4aYcxZcQhdppX0Tc=";
   };
 
   buildInputs = [curl libiconv];
diff --git a/nixpkgs/pkgs/tools/text/xml/jing-trang/default.nix b/nixpkgs/pkgs/tools/text/xml/jing-trang/default.nix
index 02f745575adb..c7866f8cba8a 100644
--- a/nixpkgs/pkgs/tools/text/xml/jing-trang/default.nix
+++ b/nixpkgs/pkgs/tools/text/xml/jing-trang/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, jre_headless, jdk, ant, saxon }:
+{ lib, stdenv, fetchFromGitHub, jre_headless, jdk_headless, ant, saxon }:
 
 stdenv.mkDerivation rec {
   pname = "jing-trang";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
-  buildInputs = [ jdk ant saxon ];
+  buildInputs = [ jdk_headless ant saxon ];
 
   CLASSPATH = "lib/saxon.jar";
 
@@ -46,6 +46,10 @@ stdenv.mkDerivation rec {
     # for downloads and call it the "project site".
     homepage = "https://www.thaiopensource.com/relaxng/trang.html";
     platforms = platforms.unix;
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryBytecode  # source bundles dependencies as jars
+    ];
     maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/xml/xmldiff/default.nix b/nixpkgs/pkgs/tools/text/xml/xmldiff/default.nix
index 5814435e111b..d9dbd70b6483 100644
--- a/nixpkgs/pkgs/tools/text/xml/xmldiff/default.nix
+++ b/nixpkgs/pkgs/tools/text/xml/xmldiff/default.nix
@@ -2,6 +2,7 @@
 , buildPythonApplication
 , fetchFromGitHub
 , lxml
+, setuptools
 , six
 }:
 
@@ -16,8 +17,9 @@ buildPythonApplication rec {
     hash = "sha256-xqudHYfwOce2C0pcFzId0JDIIC6R5bllmVKsH+CvTdE=";
   };
 
-  buildInputs = [
+  propagatedBuildInputs = [
     lxml
+    setuptools
     six
   ];
 
@@ -36,6 +38,6 @@ buildPythonApplication rec {
       readable diffs in those situations.
     '';
     license = licenses.mit;
-    maintainers = with maintainers; [ AndersonTorres ];
+    maintainers = with maintainers; [ AndersonTorres anpryl ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/xml/xpf/default.nix b/nixpkgs/pkgs/tools/text/xml/xpf/default.nix
deleted file mode 100644
index ce0813c2ef4a..000000000000
--- a/nixpkgs/pkgs/tools/text/xml/xpf/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{lib, stdenv, fetchurl, python2, libxml2}:
-
-assert libxml2.pythonSupport == true;
-
-stdenv.mkDerivation rec {
-  pname = "xpf";
-  version = "0.2";
-
-  src = fetchurl {
-    url = "http://tarballs.nixos.org/xpf-${version}.tar.gz";
-    sha256 = "0ljx91w68rnh4871c0xlq2whlmhqz8dr39wcdczfjjpniqz1fmpz";
-  };
-
-  buildInputs = [ python2 libxml2 ];
-
-  meta = {
-    description = "XML Pipes and Filters - command line tools for manipulating and querying XML data";
-    homepage = "http://www.cs.uu.nl/wiki/bin/view/Martin/XmlPipesAndFilters";
-    platforms = lib.platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/text/xurls/default.nix b/nixpkgs/pkgs/tools/text/xurls/default.nix
index 774626561c94..4da65d9af027 100644
--- a/nixpkgs/pkgs/tools/text/xurls/default.nix
+++ b/nixpkgs/pkgs/tools/text/xurls/default.nix
@@ -1,24 +1,24 @@
-{ buildGoPackage, lib, fetchFromGitHub }:
+{ buildGoModule, lib, fetchFromGitHub }:
 
-buildGoPackage rec {
-  version = "2.3.0";
+buildGoModule rec {
   pname = "xurls";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "mvdan";
     repo = "xurls";
     rev = "v${version}";
-    sha256 = "sha256-+oWYW7ZigkNS6VADNmVwarIsYyd730RAdDwnNIAYvlA=";
+    sha256 = "sha256-lyDcwbdVKyFRfsYCcPAgIgvrEEdwK0lxmJTvMJcFBCw=";
   };
 
-  goPackagePath = "mvdan.cc/xurls/v2";
-  subPackages = [ "cmd/xurls" ];
+  vendorSha256 = "sha256-lJzgJxW/GW3J09uKQGoEX+UsHnB1pGG71U/zy4b9rXo=";
+
+  ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
     description = "Extract urls from text";
     homepage = "https://github.com/mvdan/xurls";
     maintainers = with maintainers; [ koral ];
-    platforms = platforms.unix;
     license = licenses.bsd3;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/zim-tools/default.nix b/nixpkgs/pkgs/tools/text/zim-tools/default.nix
new file mode 100644
index 000000000000..319eb47be271
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/zim-tools/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub
+, meson, ninja, pkg-config
+, docopt_cpp, file, gumbo, mustache-hpp, zimlib, zlib
+, gtest
+}:
+
+stdenv.mkDerivation rec {
+  pname = "zim-tools";
+  version = "3.1.1";
+
+  src = fetchFromGitHub {
+    owner = "openzim";
+    repo = "zim-tools";
+    rev = version;
+    sha256 = "sha256-xZae1o4L9AdGDqBnFDZniWNM/dLsYRcS0OLWw9+Wecs=";
+  };
+
+  nativeBuildInputs = [ meson ninja pkg-config ];
+  buildInputs = [ docopt_cpp file gumbo mustache-hpp zimlib zlib ];
+
+  checkInputs = [ gtest ];
+  doCheck = true;
+
+  meta = {
+    description = "Various ZIM command line tools";
+    homepage = "https://github.com/openzim/zim-tools";
+    maintainers = with lib.maintainers; [ robbinch ];
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/zimwriterfs/default.nix b/nixpkgs/pkgs/tools/text/zimwriterfs/default.nix
deleted file mode 100644
index 9a7e495df2b8..000000000000
--- a/nixpkgs/pkgs/tools/text/zimwriterfs/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ lib, stdenv
-, fetchFromGitHub
-
-, autoconf
-, automake
-, libtool
-, pkg-config
-
-, file
-, icu
-, gumbo
-, xz
-, xapian
-, zimlib
-, zlib
-}:
-
-stdenv.mkDerivation rec {
-  pname = "zimwriterfs";
-  version = "1.0";
-
-  src = fetchFromGitHub {
-    owner = "wikimedia";
-    repo = "openzim";
-    rev = "${pname}-${version}";
-    sha256 = "1vkrrq929a8s3m5rri1lg0l2vd0mc9n2fsb2z1g88k4n4j2l6f19";
-  };
-
-  nativeBuildInputs = [ automake autoconf libtool pkg-config ];
-  buildInputs = [ file icu gumbo xz zimlib zlib xapian ];
-  setSourceRoot = ''
-    sourceRoot=$(echo */zimwriterfs)
-  '';
-  preConfigure = "./autogen.sh";
-
-  meta = {
-    description = "A console tool to create ZIM files";
-    homepage = "http://git.wikimedia.org/log/openzim";
-    maintainers = with lib.maintainers; [ robbinch ];
-    license = lib.licenses.gpl3;
-    platforms = with lib.platforms; [ linux ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/text/zoekt/default.nix b/nixpkgs/pkgs/tools/text/zoekt/default.nix
index cb270f69ad1b..38e4f9510eb0 100644
--- a/nixpkgs/pkgs/tools/text/zoekt/default.nix
+++ b/nixpkgs/pkgs/tools/text/zoekt/default.nix
@@ -1,4 +1,5 @@
-{ lib
+{ stdenv
+, lib
 , buildGoModule
 , fetchFromGitHub
 , git
@@ -21,6 +22,7 @@ buildGoModule {
   ];
 
   meta = with lib; {
+    broken = stdenv.isDarwin;
     description = "Fast trigram based code search";
     homepage = "https://github.com/google/zoekt";
     license = licenses.asl20;