about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/typesetting
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-04-09 18:28:16 +0000
committerAlyssa Ross <hi@alyssa.is>2021-04-12 18:46:15 +0000
commitfd2e737e0678ee7d8081baef05b305146a2c0034 (patch)
treeac3e9b27576a0382335532d126f9a66d486bc638 /nixpkgs/pkgs/tools/typesetting
parentcc207d720b6aa836e256c1ee9842bc739e630a8a (diff)
parent9e377a6ce42dccd9b624ae4ce8f978dc892ba0e2 (diff)
downloadnixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar.gz
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar.bz2
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar.lz
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar.xz
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar.zst
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.zip
Merge remote-tracking branch 'nixpkgs/nixos-unstable'
Diffstat (limited to 'nixpkgs/pkgs/tools/typesetting')
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoc/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock98
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix173
-rw-r--r--nixpkgs/pkgs/tools/typesetting/biblatex-check/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/typesetting/docbook2odf/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/typesetting/docbook2x/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/typesetting/fop/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/typesetting/kindlegen/default.nix52
-rw-r--r--nixpkgs/pkgs/tools/typesetting/kramdown-asciidoc/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/typesetting/lowdown/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/typesetting/multimarkdown/default.nix64
-rw-r--r--nixpkgs/pkgs/tools/typesetting/pdfsandwich/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/typesetting/scdoc/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/typesetting/sile/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/typesetting/sshlatex/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tectonic/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/typesetting/ted/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/dblatex/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/lkproof/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/pgf/3.x.nix2
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/pgfplots/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/tex-match/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix11
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/combine.nix3
25 files changed, 284 insertions, 247 deletions
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoc/default.nix b/nixpkgs/pkgs/tools/typesetting/asciidoc/default.nix
index 61af8102f51e..6716d764d5d3 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoc/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoc/default.nix
@@ -136,6 +136,7 @@ let
     url = "https://github.com/downloads/dagwieers/asciidoc-odf/odt-backend-0.1.zip";
     sha256 = "1zaa97h9sx6ncxcdkl1x3ggydi7f8kjgvrnpjnkjiizi45k350kw";
   };
+
   odpBackendSrc = fetchurl {
     url = "https://github.com/downloads/dagwieers/asciidoc-odf/odp-backend-0.1.zip";
     sha256 = "08ya4bskygzqkfqwjllpg31qc5k08xp2k78z9b2480g8y57bfy10";
@@ -147,6 +148,8 @@ stdenv.mkDerivation rec {
   pname = "asciidoc";
   version = "9.0.4";
 
+  # Note: a substitution to improve reproducibility should be updated once 10.0.0 is
+  # released. See the comment in `patchPhase` for more information.
   src = fetchFromGitHub {
     owner = "asciidoc";
     repo = "asciidoc-py3";
@@ -157,7 +160,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ python3 unzip autoreconfHook ];
 
   # install filters early, so their shebangs are patched too
-  patchPhase = with lib; ''
+  postPatch = with lib; ''
     mkdir -p "$out/etc/asciidoc/filters"
     mkdir -p "$out/etc/asciidoc/backends"
   '' + optionalString _enableDitaaFilter ''
@@ -261,7 +264,15 @@ stdenv.mkDerivation rec {
   '') + ''
     patchShebangs .
 
-    sed -i -e "s,/etc/vim,,g" Makefile.in
+    # Note: this substitution will not work in the planned 10.0.0 release:
+    #
+    # https://github.com/asciidoc/asciidoc-py3/commit/dfffda23381014481cd13e8e9d8f131e1f93f08a
+    #
+    # Update this substitution to:
+    #
+    # --replace "python3 -m asciidoc.a2x" "python3 -m asciidoc.a2x -a revdate=01/01/1980"
+    substituteInPlace Makefile.in \
+      --replace "python3 a2x.py" "python3 a2x.py -a revdate=01/01/1980"
   '';
 
   preInstall = "mkdir -p $out/etc/vim";
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock b/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
index 06a1716251a7..4e321311f28c 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
@@ -1,60 +1,65 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    Ascii85 (1.0.3)
-    addressable (2.6.0)
-      public_suffix (>= 2.0.2, < 4.0)
+    Ascii85 (1.1.0)
+    addressable (2.7.0)
+      public_suffix (>= 2.0.2, < 5.0)
     afm (0.2.2)
-    asciidoctor (2.0.10)
-    asciidoctor-diagram (1.5.18)
-      asciidoctor (>= 1.5.0, < 3.x)
-    asciidoctor-epub3 (1.5.0.alpha.9)
-      asciidoctor (>= 1.5.0, < 3.0.0)
-      concurrent-ruby (~> 1.1.5)
-      gepub (~> 1.0.2)
-      thread_safe (~> 0.3.6)
-    asciidoctor-mathematical (0.3.0)
-      asciidoctor (~> 2.0, >= 2.0.0)
-      mathematical (~> 1.5, >= 1.5.8)
-      ruby-enum (~> 0.4)
-    asciidoctor-pdf (1.5.0.alpha.18)
+    asciidoctor (2.0.12)
+    asciidoctor-diagram (2.1.0)
+      asciidoctor (>= 1.5.7, < 3.x)
+      asciidoctor-diagram-ditaamini (~> 0.13)
+      asciidoctor-diagram-plantuml (~> 1.2021)
+      rexml
+    asciidoctor-diagram-ditaamini (0.13.1)
+    asciidoctor-diagram-plantuml (1.2021.0)
+    asciidoctor-epub3 (1.5.0.alpha.19)
+      asciidoctor (>= 1.5.6, < 3.0.0)
+      gepub (~> 1.0.0)
+      mime-types (~> 3.0)
+    asciidoctor-mathematical (0.3.5)
+      asciidoctor (~> 2.0)
+      asciimath (~> 2.0)
+      mathematical (~> 1.6.0)
+    asciidoctor-pdf (1.5.4)
       asciidoctor (>= 1.5.3, < 3.0.0)
       concurrent-ruby (~> 1.1.0)
       prawn (~> 2.2.0)
-      prawn-icon (~> 2.3.0)
-      prawn-svg (~> 0.29.0)
+      prawn-icon (~> 2.5.0)
+      prawn-svg (~> 0.31.0)
       prawn-table (~> 0.2.0)
       prawn-templates (~> 0.1.0)
       safe_yaml (~> 1.0.0)
       thread_safe (~> 0.3.0)
-      treetop (~> 1.5.0)
-    asciidoctor-revealjs (4.0.1)
+      treetop (~> 1.6.0)
+      ttfunk (~> 1.5.0, >= 1.5.1)
+    asciidoctor-revealjs (4.1.0)
       asciidoctor (>= 2.0.0, < 3.0.0)
       concurrent-ruby (~> 1.0)
       thread_safe (~> 0.3.5)
-    asciimath (2.0.1)
-    coderay (1.1.2)
-    concurrent-ruby (1.1.5)
-    css_parser (1.7.0)
+    asciimath (2.0.2)
+    coderay (1.1.3)
+    concurrent-ruby (1.1.8)
+    css_parser (1.9.0)
       addressable
-    gepub (1.0.4)
-      nokogiri (>= 1.8.2, < 1.11)
-      rubyzip (>= 1.1.1)
+    gepub (1.0.13)
+      nokogiri (>= 1.8.2, < 1.12)
+      rubyzip (> 1.1.1, < 2.4)
     hashery (2.1.2)
-    i18n (1.6.0)
+    i18n (1.8.9)
       concurrent-ruby (~> 1.0)
-    mathematical (1.6.12)
+    mathematical (1.6.14)
       ruby-enum (~> 0.4)
     mime-types (3.3.1)
       mime-types-data (~> 3.2015)
-    mime-types-data (3.2020.1104)
-    mini_portile2 (2.4.0)
-    multi_json (1.13.1)
-    nokogiri (1.10.3)
-      mini_portile2 (~> 2.4.0)
+    mime-types-data (3.2021.0225)
+    mini_portile2 (2.5.0)
+    nokogiri (1.11.1)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
     pdf-core (0.7.0)
-    pdf-reader (2.2.0)
-      Ascii85 (~> 1.0.0)
+    pdf-reader (2.4.2)
+      Ascii85 (~> 1.0)
       afm (~> 0.2.1)
       hashery (~> 2.0)
       ruby-rc4
@@ -63,27 +68,28 @@ GEM
     prawn (2.2.2)
       pdf-core (~> 0.7.0)
       ttfunk (~> 1.5)
-    prawn-icon (2.3.0)
+    prawn-icon (2.5.0)
       prawn (>= 1.1.0, < 3.0.0)
-    prawn-svg (0.29.1)
+    prawn-svg (0.31.0)
       css_parser (~> 1.6)
       prawn (>= 0.11.1, < 3)
     prawn-table (0.2.2)
       prawn (>= 1.3.0, < 3.0.0)
-    prawn-templates (0.1.1)
+    prawn-templates (0.1.2)
       pdf-reader (~> 2.0)
       prawn (~> 2.2)
-    public_suffix (3.1.1)
-    pygments.rb (1.2.1)
-      multi_json (>= 1.0.0)
-    rouge (3.5.1)
-    ruby-enum (0.7.2)
+    public_suffix (4.0.6)
+    pygments.rb (2.1.0)
+    racc (1.5.2)
+    rexml (3.2.4)
+    rouge (3.26.0)
+    ruby-enum (0.9.0)
       i18n
     ruby-rc4 (0.1.5)
-    rubyzip (1.2.3)
+    rubyzip (2.3.0)
     safe_yaml (1.0.5)
     thread_safe (0.3.6)
-    treetop (1.5.3)
+    treetop (1.6.11)
       polyglot (~> 0.3)
     ttfunk (1.5.1)
 
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix b/nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix
index 29b2b567be23..73fb46d2e606 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix
@@ -1,6 +1,6 @@
 { lib, bundlerApp, makeWrapper,
   # Optional dependencies, can be null
-  epubcheck, kindlegen,
+  epubcheck,
   bundlerUpdateScript
 }:
 
@@ -20,8 +20,7 @@ let
 
     postBuild = ''
         wrapProgram "$out/bin/asciidoctor-epub3" \
-          ${lib.optionalString (epubcheck != null) "--set EPUBCHECK ${epubcheck}/bin/epubcheck"} \
-          ${lib.optionalString (kindlegen != null) "--set KINDLEGEN ${kindlegen}/bin/kindlegen"}
+          ${lib.optionalString (epubcheck != null) "--set EPUBCHECK ${epubcheck}/bin/epubcheck"}
       '';
 
     passthru = {
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix b/nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix
index db0f67d3a58f..19106214c263 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l";
+      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
       type = "gem";
     };
-    version = "2.6.0";
+    version = "2.7.0";
   };
   afm = {
     groups = ["default"];
@@ -25,64 +25,84 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0658m37jjjn6drzqg1gk4p6c205mgp7g1jh2d00n4ngghgmz5qvs";
+      sha256 = "1ds4v9xgsyvijnlflak4dzf1qwmda9yd5bv8jwsb56nngd399rlw";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "1.1.0";
   };
   asciidoctor = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b2ajs3sabl0s27r7lhwkacw0yn0zfk4jpmidg9l8lzp2qlgjgbz";
+      sha256 = "1gjk9v83vw0pz4x0xqqnw231z9sgscm6vnacjw7hy5njkw8fskj9";
       type = "gem";
     };
-    version = "2.0.10";
+    version = "2.0.12";
   };
   asciidoctor-diagram = {
-    dependencies = ["asciidoctor"];
+    dependencies = ["asciidoctor" "asciidoctor-diagram-ditaamini" "asciidoctor-diagram-plantuml" "rexml"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "095ar1hj96mi9vxnjjdkj7yzc3lp4wjxh4qsijx9inqflbcw7x71";
+      sha256 = "1fh73k306q1x4rzsly2fy1rdq1kpkdvs3r1084hgk0sh516ksc0s";
       type = "gem";
     };
-    version = "1.5.18";
+    version = "2.1.0";
+  };
+  asciidoctor-diagram-ditaamini = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08jwpyklcplmfcxs4z9z0b0la6xdwrnf9bk6c02y54502228bg6b";
+      type = "gem";
+    };
+    version = "0.13.1";
+  };
+  asciidoctor-diagram-plantuml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bxlkq3k775lhhnbs85cx8cbixhw7p70hnxrqnnig470h6jhmj0b";
+      type = "gem";
+    };
+    version = "1.2021.0";
   };
   asciidoctor-epub3 = {
-    dependencies = ["asciidoctor" "concurrent-ruby" "gepub" "thread_safe"];
+    dependencies = ["asciidoctor" "gepub" "mime-types"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "056yp0z64b1fhhkzz2kaiqsd11gpbgx2d1yjgq7cqma9c70bbxa5";
+      sha256 = "1fgi0rb8026k0a43wnanan6nzc8386azygmfl4zv7c9vram4nr6h";
       type = "gem";
     };
-    version = "1.5.0.alpha.9";
+    version = "1.5.0.alpha.19";
   };
   asciidoctor-mathematical = {
-    dependencies = ["asciidoctor" "mathematical" "ruby-enum"];
+    dependencies = ["asciidoctor" "asciimath" "mathematical"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1n6qhfp6xc5jlqkscr9g7zzp9f2cv28jzcqzawhl8vjgcny7i6j3";
+      sha256 = "1lxfq7qn3ql642pva6jh3h1abm9j9daxg5icfn1h73k6cjsmcisp";
       type = "gem";
     };
-    version = "0.3.0";
+    version = "0.3.5";
   };
   asciidoctor-pdf = {
-    dependencies = ["asciidoctor" "concurrent-ruby" "prawn" "prawn-icon" "prawn-svg" "prawn-table" "prawn-templates" "safe_yaml" "thread_safe" "treetop"];
+    dependencies = ["asciidoctor" "concurrent-ruby" "prawn" "prawn-icon" "prawn-svg" "prawn-table" "prawn-templates" "safe_yaml" "thread_safe" "treetop" "ttfunk"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19rgi43abhkyv85r2gnwqq6kxwsn29hhv4clnnmln58d7s589n0j";
+      sha256 = "0k8hn9lrvr08grqx17x2vrllw5qmfh0j08wp56464w2pj279ka67";
       type = "gem";
     };
-    version = "1.5.0.alpha.18";
+    version = "1.5.4";
   };
   asciidoctor-revealjs = {
     dependencies = ["asciidoctor" "concurrent-ruby" "thread_safe"];
@@ -90,40 +110,40 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "084aq9frv4irzgd9ab3xad9i0ml9lb58w0wvg76gnwwr51plbpp4";
+      sha256 = "03vmbcc3x059h17ry4qwk1p0yar9wgh87l2qssi307gy45cjw2mq";
       type = "gem";
     };
-    version = "4.0.1";
+    version = "4.1.0";
   };
   asciimath = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1aapydwwkydbwgz07n7ma3a5jy9n3v0shy6q6j8mi4wr3crhx45a";
+      sha256 = "1yq9av7rh493xqmx4cq3fjl0c6d8njxp53qw4hg2d3xkyn2lyfc5";
       type = "gem";
     };
-    version = "2.0.1";
+    version = "2.0.2";
   };
   coderay = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+      sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
       type = "gem";
     };
-    version = "1.1.2";
+    version = "1.1.3";
   };
   concurrent-ruby = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.5";
+    version = "1.1.8";
   };
   css_parser = {
     dependencies = ["addressable"];
@@ -131,10 +151,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1y4vc018b5mzp7winw4pbb22jk0dpxp22pzzxq7w0rgvfxzi89pd";
+      sha256 = "0xs4ind9xd099rb52b73pch8ha143dl8bhivqsbba4wrvxpbx751";
       type = "gem";
     };
-    version = "1.7.0";
+    version = "1.9.0";
   };
   gepub = {
     dependencies = ["nokogiri" "rubyzip"];
@@ -142,10 +162,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kg2h0mscb2hq6l3wjzq5fp5vw4552nglq8n9pawm7bzacf1gzyf";
+      sha256 = "01q33rkvqrhxqm8zgkhgcqhrqdfzgxswxfgiagdjxw67qdn1pids";
       type = "gem";
     };
-    version = "1.0.4";
+    version = "1.0.13";
   };
   hashery = {
     groups = ["default"];
@@ -163,10 +183,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hfxnlyr618s25xpafw9mypa82qppjccbh292c4l3bj36az7f6wl";
+      sha256 = "08p6b13p99j1rrcrw1l3v0kb9mxbsvy6nk31r8h4rnszdgzpga32";
       type = "gem";
     };
-    version = "1.6.0";
+    version = "1.8.9";
   };
   mathematical = {
     dependencies = ["ruby-enum"];
@@ -174,10 +194,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19f9icaixg60wl8dvcxp6glbm5vpx2rsyx53sfk2rvwnzgsr42qh";
+      sha256 = "05mn68gxhfa37qsnzsmdqaa005hf511j5lga76qsrad2gcnhan1b";
       type = "gem";
     };
-    version = "1.6.12";
+    version = "1.6.14";
   };
   mime-types = {
     dependencies = ["mime-types-data"];
@@ -195,41 +215,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ipjyfwn9nlvpcl8knq3jk4g5f12cflwdbaiqxcq1s7vwfwfxcag";
+      sha256 = "1phcq7z0zpipwd7y4fbqmlaqghv07fjjgrx99mwq3z3n0yvy7fmi";
       type = "gem";
     };
-    version = "3.2020.1104";
+    version = "3.2021.0225";
   };
   mini_portile2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
-      type = "gem";
-    };
-    version = "2.4.0";
-  };
-  multi_json = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "1.13.1";
+    version = "2.5.0";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02bjydih0j515szfv9mls195cvpyidh6ixm7dwbl3s2sbaxxk5s4";
+      sha256 = "1ajwkqr28hwqbyl1l3czx4a34c88acxywyqp8cjyy0zgsd6sbhj2";
       type = "gem";
     };
-    version = "1.10.3";
+    version = "1.11.1";
   };
   pdf-core = {
     groups = ["default"];
@@ -247,10 +257,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0aas2f5clgwpgryywrh4gihdi10afx3kbyfs1n31cinri02psd43";
+      sha256 = "1cxladxy18dhk4a3b263crq8hyxb3q0c7ifxrb5nr1bs6y0pk8i6";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.4.2";
   };
   polyglot = {
     groups = ["default"];
@@ -279,10 +289,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nc810wdpa93z162yzjgvf7mdanfxm4bjwinjjxx5smq6wdvhdqi";
+      sha256 = "1ivkdf8rdf92hhy97vbmc2a4w97vcvqd58jcj4z9hz3hfsb1526w";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.5.0";
   };
   prawn-svg = {
     dependencies = ["css_parser" "prawn"];
@@ -290,10 +300,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wwfv6lw2diywgjp15pd3awpr8g7xkjfi10jzhmvziikakzsz6gj";
+      sha256 = "1rb5hmjqc4hvy6liw9y51y6glbw66f09r09w0nvdfxhfi2kka16l";
       type = "gem";
     };
-    version = "0.29.1";
+    version = "0.31.0";
   };
   prawn-table = {
     dependencies = ["prawn"];
@@ -312,41 +322,60 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gs894sj9zdlwx59h3rk4p0l3y8r18p22zhnfiyx9lngsa56gcrj";
+      sha256 = "1w9irn3rllm992c6j7fsx81gg539i7yy8zfddyw7q53hnlys0yhi";
       type = "gem";
     };
-    version = "0.1.1";
+    version = "0.1.2";
   };
   public_suffix = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g9ds2ffzljl6jjmkjffwxc1z6lh5nkqqmhhkxjk71q5ggv0rkpm";
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
       type = "gem";
     };
-    version = "3.1.1";
+    version = "4.0.6";
   };
   "pygments.rb" = {
-    dependencies = ["multi_json"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lbvnwvz770ambm4d6lxgc2097rydn5rcc5d6986bnkzyxfqqjnv";
+      sha256 = "1736rbjgin97p3vjknz60p6dl66c936djwsk7wnwvwmav8r1nx0y";
       type = "gem";
     };
-    version = "1.2.1";
+    version = "2.1.0";
+  };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
+  rexml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+      type = "gem";
+    };
+    version = "3.2.4";
   };
   rouge = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0yfhazlhjc4abgzhkgq8zqmdphvkh52211widkl4zhsbhqh8wg2q";
+      sha256 = "0b4b300i3m4m4kw7w1n9wgxwy16zccnb7271miksyzd0wq5b9pm3";
       type = "gem";
     };
-    version = "3.5.1";
+    version = "3.26.0";
   };
   ruby-enum = {
     dependencies = ["i18n"];
@@ -354,10 +383,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0h62avini866kxpjzqxlqnajma3yvj0y25l6hn9h2mv5pp6fcrhx";
+      sha256 = "1pys90hxylhyg969iw9lz3qai5lblf8xwbdg1g5aj52731a9k83p";
       type = "gem";
     };
-    version = "0.7.2";
+    version = "0.9.0";
   };
   ruby-rc4 = {
     groups = ["default"];
@@ -374,10 +403,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w9gw28ly3zyqydnm8phxchf4ymyjl2r7zf7c12z8kla10cpmhlc";
+      sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji";
       type = "gem";
     };
-    version = "1.2.3";
+    version = "2.3.0";
   };
   safe_yaml = {
     groups = ["default"];
@@ -405,10 +434,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wpl5z33796nz2ah44waflrd1girbra281d9i3m9nz4ylg1ljg5b";
+      sha256 = "0697qz1akblf8r3wi0s2dsjh468hfsd57fb0mrp93z35y2ni6bhh";
       type = "gem";
     };
-    version = "1.5.3";
+    version = "1.6.11";
   };
   ttfunk = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/tools/typesetting/biblatex-check/default.nix b/nixpkgs/pkgs/tools/typesetting/biblatex-check/default.nix
index 606e07730e4f..63bf7cf1d71a 100644
--- a/nixpkgs/pkgs/tools/typesetting/biblatex-check/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/biblatex-check/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, python }:
+{ lib, stdenv, fetchFromGitHub, python3 }:
 
 stdenv.mkDerivation {
   pname = "biblatex-check";
@@ -11,7 +11,9 @@ stdenv.mkDerivation {
     sha256 = "1bq0yqckhssazwkivipdjmn1jpsf301i4ppyl88qhc5igx39wg25";
   };
 
-  buildInputs = [ python ];
+  buildInputs = [ python3 ];
+
+  strictDeps = true;
 
   installPhase = ''
     install -Dm755 biblatex_check.py $out/bin/biblatex-check
diff --git a/nixpkgs/pkgs/tools/typesetting/docbook2odf/default.nix b/nixpkgs/pkgs/tools/typesetting/docbook2odf/default.nix
index 91d8f6f8d32f..affa12c40190 100644
--- a/nixpkgs/pkgs/tools/typesetting/docbook2odf/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/docbook2odf/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "10k44g0qqa37k30pfj8vz95j6zdzz0nmnqjq1lyahfs2h4glzgwb";
   };
 
-  buildInputs = [ perlPackages.perl makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perlPackages.perl ];
 
   installPhase = ''
     mkdir -p "$out/bin/"
diff --git a/nixpkgs/pkgs/tools/typesetting/docbook2x/default.nix b/nixpkgs/pkgs/tools/typesetting/docbook2x/default.nix
index fdfa05f20c1f..4b9e571c0ad3 100644
--- a/nixpkgs/pkgs/tools/typesetting/docbook2x/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/docbook2x/default.nix
@@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
   # writes its output to stdout instead of creating a file.
   patches = [ ./db2x_texixml-to-stdout.patch ];
 
-  buildInputs = [ texinfo groff libxml2 libxslt makeWrapper opensp libiconv ]
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ texinfo groff libxml2 libxslt opensp libiconv ]
     ++ (with perlPackages; [ perl XMLSAX XMLParser XMLNamespaceSupport ]);
 
   postConfigure = ''
diff --git a/nixpkgs/pkgs/tools/typesetting/fop/default.nix b/nixpkgs/pkgs/tools/typesetting/fop/default.nix
index a572ce216ee6..1c5e7b0079df 100644
--- a/nixpkgs/pkgs/tools/typesetting/fop/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/fop/default.nix
@@ -2,22 +2,25 @@
 
 stdenv.mkDerivation rec {
   pname = "fop";
-  version = "2.1";
+  version = "2.6";
 
   src = fetchurl {
     url = "mirror://apache/xmlgraphics/fop/source/${pname}-${version}-src.tar.gz";
-    sha256 = "165rx13q47l6qc29ppr7sg1z26vw830s3rkklj5ap7wgvy0ivbz5";
+    sha256 = "145qph3c0m4bmb342qxq1hwsg594lndmfs9ga1v7pk53s34sckq8";
   };
 
   buildInputs = [ ant jdk ];
 
-  buildPhase = "ant";
+  # build only the "package" target, which generates the fop command.
+  buildPhase = ''
+     export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8"
+     ant -f fop/build.xml package
+  '';
 
   installPhase = ''
     mkdir -p $out/bin $out/lib $out/share/doc/fop
-
-    cp build/*.jar lib/*.jar $out/lib/
-    cp -r README examples/ $out/share/doc/fop/
+    cp fop/build/*.jar fop/lib/*.jar $out/lib/
+    cp -r README fop/examples/ $out/share/doc/fop/
 
     # There is a fop script in the source archive, but it has many impurities.
     # Instead of patching out 90 % of the script, we write our own.
diff --git a/nixpkgs/pkgs/tools/typesetting/kindlegen/default.nix b/nixpkgs/pkgs/tools/typesetting/kindlegen/default.nix
deleted file mode 100644
index 6afa246f8184..000000000000
--- a/nixpkgs/pkgs/tools/typesetting/kindlegen/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ fetchurl, lib, stdenv, unzip }:
-
-let
-  version = "2.9";
-  fileVersion = builtins.replaceStrings [ "." ] [ "_" ] version;
-
-  sha256 = {
-    x86_64-linux  = "15i20kzhdcmi94w7wfhqbl6j20v47cdakjm2mn3x8w495iddna4q";
-    i686-linux    = "15i20kzhdcmi94w7wfhqbl6j20v47cdakjm2mn3x8w495iddna4q";
-    x86_64-darwin = "0zniyn0s41fxqrajbgwxbcsj5vzf9m7a6yvdz2b11mphr00kpbbs";
-    i686-darwin   = "0zniyn0s41fxqrajbgwxbcsj5vzf9m7a6yvdz2b11mphr00kpbbs";
-    x86_64-cygwin = "02slfh1bbpijay4skj85cjiv7z43ha8vm5aa1lwiqjk86qbl1f3h";
-    i686-cygwin   = "02slfh1bbpijay4skj85cjiv7z43ha8vm5aa1lwiqjk86qbl1f3h";
-  }.${stdenv.hostPlatform.system} or (throw "system #{stdenv.hostPlatform.system.} is not supported");
-
-  url = {
-    x86_64-linux  = "http://kindlegen.s3.amazonaws.com/kindlegen_linux_2.6_i386_v${fileVersion}.tar.gz";
-    i686-linux    = "http://kindlegen.s3.amazonaws.com/kindlegen_linux_2.6_i386_v${fileVersion}.tar.gz";
-    x86_64-darwin = "http://kindlegen.s3.amazonaws.com/KindleGen_Mac_i386_v${fileVersion}.zip";
-    i686-darwin   = "http://kindlegen.s3.amazonaws.com/KindleGen_Mac_i386_v${fileVersion}.zip";
-    x86_64-cygwin = "http://kindlegen.s3.amazonaws.com/kindlegen_win32_v${fileVersion}.zip";
-    i686-cygwin   = "http://kindlegen.s3.amazonaws.com/kindlegen_win32_v${fileVersion}.zip";
-  }.${stdenv.hostPlatform.system} or (throw "system #{stdenv.hostPlatform.system.} is not supported");
-
-in stdenv.mkDerivation {
-  pname = "kindlegen";
-  inherit version;
-
-  src = fetchurl {
-    inherit url;
-    inherit sha256;
-  };
-
-  sourceRoot = ".";
-
-  nativeBuildInputs = lib.optional (lib.hasSuffix ".zip" url) unzip;
-
-  installPhase = ''
-    mkdir -p $out/bin $out/share/kindlegen/doc
-    install -m755 kindlegen $out/bin/kindlegen
-    cp -r *.txt *.html docs/* $out/share/kindlegen/doc
-  '';
-
-  meta = with lib; {
-    broken = true; # download links got removed
-    description = "Convert documents to .mobi for use with Amazon Kindle";
-    homepage = "https://www.amazon.com/gp/feature.html?docId=1000765211";
-    license = licenses.unfree;
-    maintainers = with maintainers; [ peterhoeg ];
-    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "i686-darwin" "x86_64-cygwin" "i686-cygwin" ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/typesetting/kramdown-asciidoc/default.nix b/nixpkgs/pkgs/tools/typesetting/kramdown-asciidoc/default.nix
index 655cd5a61e13..aa1d68e708af 100644
--- a/nixpkgs/pkgs/tools/typesetting/kramdown-asciidoc/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/kramdown-asciidoc/default.nix
@@ -1,6 +1,6 @@
 { lib, bundlerApp, makeWrapper,
   # Optional dependencies, can be null
-  epubcheck, kindlegen,
+  epubcheck,
   bundlerUpdateScript
 }:
 
@@ -17,8 +17,7 @@ let
 
     # postBuild = ''
     #     wrapProgram "$out/bin/asciidoctor-epub3" \
-    #       ${lib.optionalString (epubcheck != null) "--set EPUBCHECK ${epubcheck}/bin/epubcheck"} \
-    #       ${lib.optionalString (kindlegen != null) "--set KINDLEGEN ${kindlegen}/bin/kindlegen"}
+    #       ${lib.optionalString (epubcheck != null) "--set EPUBCHECK ${epubcheck}/bin/epubcheck"}
     #   '';
 
     # passthru = {
diff --git a/nixpkgs/pkgs/tools/typesetting/lowdown/default.nix b/nixpkgs/pkgs/tools/typesetting/lowdown/default.nix
index 805373e8ee6c..13606521b882 100644
--- a/nixpkgs/pkgs/tools/typesetting/lowdown/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/lowdown/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lowdown";
-  version = "0.8.1";
+  version = "0.8.3";
 
   outputs = [ "out" "lib" "dev" "man" ];
 
   src = fetchurl {
     url = "https://kristaps.bsd.lv/lowdown/snapshots/lowdown-${version}.tar.gz";
-    sha512 = "28kwj053lm3510cq7pg4rqx6linv5zphhm2h6r9icigclfq7j9ybnd7vqbn2v4ay0r8ghac5cjbqab5zy8cjlgllwhwsxg0dnk75x2i";
+    sha512 = "17q1jd2vih26yjjc4f9kg0qihrym8h0ydnli6z8p3h4rdwm4kfnvckrpkwminz5wl0k5z6d65dk7q4pynyfynp31d6s7q4yzkkqy6kc";
   };
 
   nativeBuildInputs = [ which ]
diff --git a/nixpkgs/pkgs/tools/typesetting/multimarkdown/default.nix b/nixpkgs/pkgs/tools/typesetting/multimarkdown/default.nix
index 45be07093223..6dfbc82af31d 100644
--- a/nixpkgs/pkgs/tools/typesetting/multimarkdown/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/multimarkdown/default.nix
@@ -1,25 +1,34 @@
-{ lib, stdenv, fetchgit, perl }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, perl
+, pkg-config
+}:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "multimarkdown";
-  version = "4.7.1";
+  version = "6.6.0";
 
-  src = fetchgit {
-    url = "https://github.com/fletcher/MultiMarkdown-4.git";
-    fetchSubmodules = true;
-    rev = "dd060247518715ef2b52be22b8f49d0e6d2c3a8b";
-    sha256 = "11f246r30q2fx4xw7valhqjj4mc4ydj5fv5f2kbl5h93y69q0bw7";
+  src = fetchFromGitHub {
+    owner = "fletcher";
+    repo = "MultiMarkdown-6";
+    rev = version;
+    hash = "sha256-emJbY0wucoc/GdjlILoeqjwuwuPpTjXTqZN0gUKOyLg=";
   };
 
-  preBuild = ''
-    substituteInPlace enumsToPerl.pl --replace "/usr/bin/perl" "${perl}/bin/perl"
+  postPatch = ''
+    patchShebangs tools/enumsToPerl.pl
   '';
 
-  buildInputs = [ stdenv ];
-  checkPhase = "make test-all";
-  installPhase = "make pkg-install prefix='' DESTDIR=$out; make pkg-install-scripts prefix='' DESTDIR=$out";
+  nativeBuildInputs = [
+    cmake
+    perl
+    pkg-config
+  ];
 
   meta = with lib; {
+    homepage = "https://fletcher.github.io/MultiMarkdown-6/introduction.html";
     description = "A derivative of Markdown that adds new syntax features";
     longDescription = ''
       MultiMarkdown is a lightweight markup language created by
@@ -30,23 +39,20 @@ stdenv.mkDerivation {
 
       It adds the following features to Markdown:
 
-      footnotes
-      tables
-      citations and bibliography (works best in LaTeX using BibTeX)
-      math support
-      automatic cross-referencing ability
-      smart typography, with support for multiple languages
-      image attributes
-      table and image captions
-      definition lists
-      glossary entries (LaTeX only)
-      document metadata (e.g. title, author, date, etc.)
+      - footnotes
+      - tables
+      - citations and bibliography (works best in LaTeX using BibTeX)
+      - math support
+      - automatic cross-referencing ability
+      - smart typography, with support for multiple languages
+      - image attributes
+      - table and image captions
+      - definition lists
+      - glossary entries (LaTeX only)
+      - document metadata (e.g. title, author, date, etc.)
     '';
-    homepage = "https://fletcherpenney.net/multimarkdown/";
-    # licensed under GPLv2+ or MIT:
-    # https://raw.githubusercontent.com/fletcher/MultiMarkdown-4/master/LICENSE
-    license = with lib.licenses; [ gpl2Plus mit ];
+    license = with licenses; [ mit ];
     platforms = platforms.all;
-    maintainers = with lib.maintainers; [ lowfatcomputing ];
+    maintainers = with maintainers; [ AndersonTorres ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/typesetting/pdfsandwich/default.nix b/nixpkgs/pkgs/tools/typesetting/pdfsandwich/default.nix
index 10f8525da084..755ac6bb32a3 100644
--- a/nixpkgs/pkgs/tools/typesetting/pdfsandwich/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/pdfsandwich/default.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation {
     sha256 = "1420c33divch087xrr61lvyf975bapqkgjqaighl581i69nlzsm6";
   };
 
-  buildInputs = [ ocaml perl makeWrapper];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ ocaml perl ];
   installPhase = ''
     mkdir -p $out/bin
     cp -p pdfsandwich $out/bin
diff --git a/nixpkgs/pkgs/tools/typesetting/scdoc/default.nix b/nixpkgs/pkgs/tools/typesetting/scdoc/default.nix
index 1b22b781d549..1e6c86c19923 100644
--- a/nixpkgs/pkgs/tools/typesetting/scdoc/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/scdoc/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchFromSourcehut }:
 
 stdenv.mkDerivation rec {
   pname = "scdoc";
   version = "1.11.1";
 
-  src = fetchurl {
-    url = "https://git.sr.ht/~sircmpwn/scdoc/archive/${version}.tar.gz";
-    sha256 = "007pm3gspvya58cwb12wpnrm9dq5p28max2s0b2y9rq80nqgqag5";
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = pname;
+    rev = version;
+    sha256 = "1g37j847j3h4a4qbbfbr6vvsxpifj9v25jgv25nd71d1n0dxlhvk";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/typesetting/sile/default.nix b/nixpkgs/pkgs/tools/typesetting/sile/default.nix
index eef7768be8fd..92062b8eac8a 100644
--- a/nixpkgs/pkgs/tools/typesetting/sile/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/sile/default.nix
@@ -39,11 +39,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "sile";
-  version = "0.10.14";
+  version = "0.10.15";
 
   src = fetchurl {
     url = "https://github.com/sile-typesetter/sile/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "100f6iangpiwlv8k55d134w856r0xwsgw90s1rkkmqa5syziwni5";
+    sha256 = "0p1w3s6j34qi93aycqmqggfm277n90z90nlmm1j3qizxxwq5gda9";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/tools/typesetting/sshlatex/default.nix b/nixpkgs/pkgs/tools/typesetting/sshlatex/default.nix
index 07c972420ab5..8a5b4811d770 100644
--- a/nixpkgs/pkgs/tools/typesetting/sshlatex/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/sshlatex/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0kaah8is74zba9373xccmsxmnnn6kh0isr4qpg21x3qhdzhlxl7q";
   };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = let
     binPath = lib.makeBinPath [ openssh perl gnutar bash inotify-tools ];
diff --git a/nixpkgs/pkgs/tools/typesetting/tectonic/default.nix b/nixpkgs/pkgs/tools/typesetting/tectonic/default.nix
index 75874d21e87b..1145fabf4860 100644
--- a/nixpkgs/pkgs/tools/typesetting/tectonic/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tectonic/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tectonic";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "tectonic-typesetting";
     repo = "tectonic";
     rev = "tectonic@${version}";
-    sha256 = "1p93428ln3sfsflc7spjpfcgy81c4z5y0xhwv5mkgzf55g8nrin1";
+    sha256 = "sha256-XQ3KRM12X80JPFMnQs//8ZJEv+AV1sr3BH0Nw/PH0HQ=";
   };
 
-  cargoSha256 = "0jzngl1iwrq20cx3l0mwdrrddvyw977rwb75nz1k4hkxjnicc1ga";
+  cargoSha256 = "sha256-YOg4W933qUBcvo2y3nmvEWqxTfqWKDi3GCoTJWLnXxk=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/typesetting/ted/default.nix b/nixpkgs/pkgs/tools/typesetting/ted/default.nix
index 937e3ffd7d71..07e89f9f8edd 100644
--- a/nixpkgs/pkgs/tools/typesetting/ted/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/ted/default.nix
@@ -58,7 +58,8 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  buildInputs = [ pkg-config zlib pcre xorg.xlibsWrapper xorg.libXpm libjpeg libtiff libpng gtk2 libpaper makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ pkg-config zlib pcre xorg.xlibsWrapper xorg.libXpm libjpeg libtiff libpng gtk2 libpaper ];
 
   meta = with lib; {
     description = "An easy rich text processor";
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/dblatex/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/dblatex/default.nix
index 989f49b6d9a8..dbd4fed1474d 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/dblatex/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/dblatex/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, python2, libxslt, texlive
+{ lib, stdenv, fetchurl, python3, libxslt, texlive
 , enableAllFeatures ? false, imagemagick ? null, transfig ? null, inkscape ? null, fontconfig ? null, ghostscript ? null
 
 , tex ? texlive.combine { # satisfy all packages that ./configure mentions
@@ -21,14 +21,15 @@ assert enableAllFeatures ->
   ghostscript != null;
 
 stdenv.mkDerivation rec {
-  name = "dblatex-0.3.11";
+  pname = "dblatex";
+  version = "0.3.12";
 
   src = fetchurl {
-    url = "mirror://sourceforge/dblatex/${name}.tar.bz2";
-    sha256 = "0rp1bc2lgisigscq1i7zxfd2qdaxxxld6khbcxss4pq7fpi9fzkv";
+    url = "mirror://sourceforge/dblatex/${pname}3-${version}.tar.bz2";
+    sha256 = "0yd09nypswy3q4scri1dg7dr99d7gd6r2dwx0xm81l9f4y32gs0n";
   };
 
-  buildInputs = [ python2 libxslt tex ]
+  buildInputs = [ python3 libxslt tex ]
     ++ lib.optionals enableAllFeatures [ imagemagick transfig ];
 
   # TODO: dblatex tries to execute texindy command, but nixpkgs doesn't have
@@ -58,7 +59,7 @@ stdenv.mkDerivation rec {
   dontBuild = true;
 
   installPhase = ''
-    ${python2.interpreter} ./setup.py install --prefix="$out" --use-python-path --verbose
+    ${python3.interpreter} ./setup.py install --prefix="$out" --use-python-path --verbose
   '';
 
   passthru = { inherit tex; };
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/lkproof/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/lkproof/default.nix
index d5b6a7f9f973..4f896ef32baf 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/lkproof/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/lkproof/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "1qjkjhpc4rm62qxn18r83zdlwnj1wvnkcpdiqlv7w4bakh0gvjly";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   installPhase = "
     mkdir -p $out/share/texmf-nix/tex/generic/lkproof
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/pgf/3.x.nix b/nixpkgs/pkgs/tools/typesetting/tex/pgf/3.x.nix
index 42320b49b3d8..b33f05d34a78 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/pgf/3.x.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/pgf/3.x.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "0kj769hyp4z2zmdv3f8xv443wcfqn5nkkbzxzqgfxjizlz81aav7";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   # Multiple files problem
   unpackPhase = ''
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/pgfplots/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/pgfplots/default.nix
index aecf32c58747..fe928615eb42 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/pgfplots/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/pgfplots/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "1xajrmq35i0qlsfwydy5zzg6f1jg88hqqh5b3xsmglzrarnllbdi";
   };
 
-  buildInputs = [ unzip ];
+  nativeBuildInputs = [ unzip ];
 
   unpackPhase = "unzip $src";
 
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/tex-match/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/tex-match/default.nix
new file mode 100644
index 000000000000..4d02e2e1acfe
--- /dev/null
+++ b/nixpkgs/pkgs/tools/typesetting/tex/tex-match/default.nix
@@ -0,0 +1,27 @@
+{ rustPlatform, fetchFromGitHub, gtk3, pkg-config, glib, lib }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "tex-match";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "zoeyfyi";
+    repo = "TeX-Match";
+    rev = "v${version}";
+    sha256 = "1yb81j7mbqqb8jcn78dx4ydp7ncbzvaczkli6cqay5jf5j6dbk1z";
+  };
+
+  nativeBuildInputs = [ pkg-config glib ];
+
+  buildInputs = [ gtk3 ];
+
+  cargoSha256 = "1sm2fd3dhs59rvmfjzrfz0qwqzyc9dllb8ph0wc2x0r3px16c71x";
+
+  meta = with lib; {
+    description = "Search through over 1000 different LaTeX symbols by sketching. A desktop version of detexify";
+    homepage = "https://tex-match.zoey.fyi/";
+    license = licenses.mit;
+    maintainers = [ maintainers.bootstrap-prime ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix
index fd1815efa945..fb9b748b5d0a 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix
@@ -270,8 +270,8 @@ dvipng = stdenv.mkDerivation {
 
   inherit (common) src;
 
-  nativeBuildInputs = [ perl pkg-config ];
-  buildInputs = [ core/*kpathsea*/ zlib libpng freetype gd ghostscript makeWrapper ];
+  nativeBuildInputs = [ perl pkg-config makeWrapper ];
+  buildInputs = [ core/*kpathsea*/ zlib libpng freetype gd ghostscript ];
 
   preConfigure = ''
     cd texk/dvipng
@@ -281,12 +281,9 @@ dvipng = stdenv.mkDerivation {
   configureFlags = common.configureFlags
     ++ [ "--with-system-kpathsea" "--with-gs=yes" "--disable-debug" ];
 
-  enableParallelBuilding = true;
+  GS="${ghostscript}/bin/gs";
 
-  # I didn't manage to hardcode gs location by configureFlags
-  postInstall = ''
-    wrapProgram "$out/bin/dvipng" --prefix PATH : '${ghostscript}/bin'
-  '';
+  enableParallelBuilding = true;
 };
 
 
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/combine.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/combine.nix
index 9993263c1f6f..f553908d9ccb 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/combine.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/combine.nix
@@ -52,6 +52,9 @@ in (buildEnv {
 
   buildInputs = [ makeWrapper ] ++ pkgList.extraInputs;
 
+  # This is set primarily to help find-tarballs.nix to do its job
+  passthru.packages = pkgList.all;
+
   postBuild = ''
     cd "$out"
     mkdir -p ./bin