about summary refs log tree commit diff
path: root/pkgs/tools/graphics
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/graphics')
-rw-r--r--pkgs/tools/graphics/adriconf/default.nix9
-rw-r--r--pkgs/tools/graphics/agi/default.nix4
-rw-r--r--pkgs/tools/graphics/argyllcms/default.nix4
-rw-r--r--pkgs/tools/graphics/barcode/default.nix11
-rw-r--r--pkgs/tools/graphics/cuneiform/default.upstream8
-rw-r--r--pkgs/tools/graphics/dpic/default.nix4
-rw-r--r--pkgs/tools/graphics/findimagedupes/default.nix70
-rw-r--r--pkgs/tools/graphics/gifski/default.nix6
-rw-r--r--pkgs/tools/graphics/glmark2/default.nix4
-rw-r--r--pkgs/tools/graphics/gmic-qt/default.nix88
-rw-r--r--pkgs/tools/graphics/gmic-qt/fix-gimp-plugin-path.patch21
-rw-r--r--pkgs/tools/graphics/grim/default.nix9
-rw-r--r--pkgs/tools/graphics/gromit-mpx/default.nix4
-rw-r--r--pkgs/tools/graphics/netpbm/default.nix6
-rw-r--r--pkgs/tools/graphics/pdfredacttools/default.nix38
-rw-r--r--pkgs/tools/graphics/pikchr/default.nix6
-rw-r--r--pkgs/tools/graphics/realesrgan-ncnn-vulkan/cmakelists.patch13
-rw-r--r--pkgs/tools/graphics/realesrgan-ncnn-vulkan/default.nix65
-rw-r--r--pkgs/tools/graphics/realesrgan-ncnn-vulkan/models_path.patch22
-rw-r--r--pkgs/tools/graphics/resvg/default.nix6
-rw-r--r--pkgs/tools/graphics/scrot/default.nix35
-rw-r--r--pkgs/tools/graphics/svgbob/default.nix6
-rw-r--r--pkgs/tools/graphics/timg/default.nix10
-rw-r--r--pkgs/tools/graphics/transfig/default.nix63
-rw-r--r--pkgs/tools/graphics/transfig/patch-fig2dev-Imakefile.patch75
-rw-r--r--pkgs/tools/graphics/transfig/patch-fig2dev-dev-Imakefile.patch15
-rw-r--r--pkgs/tools/graphics/transfig/patch-fig2dev-dev-gensvg.c.patch21
-rw-r--r--pkgs/tools/graphics/transfig/patch-fig2dev-fig2dev.h.patch19
-rw-r--r--pkgs/tools/graphics/transfig/patch-transfig-Imakefile.patch22
-rw-r--r--pkgs/tools/graphics/unpaper/default.nix4
-rw-r--r--pkgs/tools/graphics/vips/default.nix4
-rw-r--r--pkgs/tools/graphics/vulkan-extension-layer/default.nix4
-rw-r--r--pkgs/tools/graphics/vulkan-tools/default.nix4
-rw-r--r--pkgs/tools/graphics/zbar/default.nix2
34 files changed, 312 insertions, 370 deletions
diff --git a/pkgs/tools/graphics/adriconf/default.nix b/pkgs/tools/graphics/adriconf/default.nix
index 74ff4f1ed666a..738c531688263 100644
--- a/pkgs/tools/graphics/adriconf/default.nix
+++ b/pkgs/tools/graphics/adriconf/default.nix
@@ -8,26 +8,25 @@
 , atkmm
 , pcre
 , gtkmm3
-, boost
-, libxmlxx3
+, pugixml
 , mesa
 , pciutils
 }:
 
 stdenv.mkDerivation rec {
   pname = "adriconf";
-  version = "2.4.1";
+  version = "2.5.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "mesa";
     repo = pname;
     rev = "v${version}";
-    sha256 = "hZy+FpKKBKuho/fALu2O+44zzK6s/M8CTbhrO00ANgo=";
+    sha256 = "sha256-nxqrs8c1sRruZLwFwK/JfXQPfpEq08Pe2n7ojQkH3SM=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ libdrm libGL atkmm pcre gtkmm3 boost libxmlxx3 mesa pciutils ];
+  buildInputs = [ libdrm libGL atkmm pcre gtkmm3 pugixml mesa pciutils ];
 
   cmakeFlags = [ "-DENABLE_UNIT_TESTS=off" ];
 
diff --git a/pkgs/tools/graphics/agi/default.nix b/pkgs/tools/graphics/agi/default.nix
index f1fcf458e63df..0365a8073277c 100644
--- a/pkgs/tools/graphics/agi/default.nix
+++ b/pkgs/tools/graphics/agi/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "agi";
-  version = "2.1.0-dev-20210924";
+  version = "2.2.0-dev-20220120";
 
   src = fetchzip {
     url = "https://github.com/google/agi-dev-releases/releases/download/v${version}/agi-${version}-linux.zip";
-    sha256 = "sha256-OX26qoyJMG54BA/62GbGRjqdYA7n56SUVVOcdyVAGmM=";
+    sha256 = "sha256-0f17CAANxomtx1fvhj+mI6k4IqwIimmcTSTXZGbbWDY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/graphics/argyllcms/default.nix b/pkgs/tools/graphics/argyllcms/default.nix
index 294a403d7ea5b..9c17990ee67a0 100644
--- a/pkgs/tools/graphics/argyllcms/default.nix
+++ b/pkgs/tools/graphics/argyllcms/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "argyllcms";
-  version = "2.2.1";
+  version = "2.3.0";
 
   src = fetchzip {
     # Kind of flacky URL, it was reaturning 406 and inconsistent binaries for a
     # while on me. It might be good to find a mirror
     url = "https://www.argyllcms.com/Argyll_V${version}_src.zip";
-    sha256 = "sha256-umY3wQfG26Okqnw+MCUnlwWTAyJ6MR/FHe5oe61KBh0=";
+    sha256 = "sha256-UNjCcqJgbRSox55OP3pLdKFHY0NPLHEq3nwqvxWre7U=";
   };
 
   nativeBuildInputs = [ jam unzip ];
diff --git a/pkgs/tools/graphics/barcode/default.nix b/pkgs/tools/graphics/barcode/default.nix
index 2906304a6d2aa..eed06602a5ddf 100644
--- a/pkgs/tools/graphics/barcode/default.nix
+++ b/pkgs/tools/graphics/barcode/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchurl, fetchpatch }:
 
 stdenv.mkDerivation rec {
   version = "0.99";
@@ -7,6 +7,14 @@ stdenv.mkDerivation rec {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
     sha256 = "1indapql5fjz0bysyc88cmc54y8phqrbi7c76p71fgjp45jcyzp8";
   };
+  patches = [
+    # Pull upstream patch for -fno-common toolchains.
+    (fetchpatch {
+      name = "fno-common.patch";
+      url = "http://git.savannah.gnu.org/cgit/barcode.git/patch/?id=4654f68706a459c9602d9932b56a56e8930f7d53";
+      sha256 = "15kclzcwlh0ymr7m48vc0m8z98q0wf4xbfcky4g1y8yvvpvvrfgc";
+    })
+  ];
 
   hardeningDisable = [ "format" ];
 
@@ -15,7 +23,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux; # Maybe other non-darwin Unix
     downloadPage = "https://ftp.gnu.org/gnu/barcode/";
-    updateWalker = true;
     homepage = "https://www.gnu.org/software/barcode/";
     license = licenses.gpl3;
   };
diff --git a/pkgs/tools/graphics/cuneiform/default.upstream b/pkgs/tools/graphics/cuneiform/default.upstream
deleted file mode 100644
index 4fb85a2a1e891..0000000000000
--- a/pkgs/tools/graphics/cuneiform/default.upstream
+++ /dev/null
@@ -1,8 +0,0 @@
-url https://launchpad.net/cuneiform-linux/+download
-
-do_overwrite () {
-  ensure_hash
-  set_var_value version "$CURRENT_VERSION"
-  set_var_value sha256 "$CURRENT_HASH"
-  set_var_value ' url' "$CURRENT_URL"
-}
diff --git a/pkgs/tools/graphics/dpic/default.nix b/pkgs/tools/graphics/dpic/default.nix
index fa6880f6f910d..59518942963f5 100644
--- a/pkgs/tools/graphics/dpic/default.nix
+++ b/pkgs/tools/graphics/dpic/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dpic";
-  version = "2021.01.01";
+  version = "2021.11.01";
 
   src = fetchurl {
     url = "https://ece.uwaterloo.ca/~aplevich/dpic/${pname}-${version}.tar.gz";
-    sha256 = "sha256-vrBiTQqdaIslDd/WWMbdgornRkZmC2m+RF2J78F5Pm8=";
+    sha256 = "sha256-TkMc5tG+sPHfjiCxli5bIteJfq5ZG36+HaqZOk/v6oI=";
   };
 
   # The prefix passed to configure is not used.
diff --git a/pkgs/tools/graphics/findimagedupes/default.nix b/pkgs/tools/graphics/findimagedupes/default.nix
new file mode 100644
index 0000000000000..19a80434be1e9
--- /dev/null
+++ b/pkgs/tools/graphics/findimagedupes/default.nix
@@ -0,0 +1,70 @@
+{ lib, stdenv, fetchurl, makeWrapper, perl, perlPackages, installShellFiles }:
+
+stdenv.mkDerivation rec {
+  pname = "findimagedupes";
+  version = "2.19.1";
+
+  # fetching this from GitHub does not contain the correct version number
+  src = fetchurl {
+    url = "http://www.jhnc.org/findimagedupes/findimagedupes-${version}.tar.gz";
+    sha256 = "sha256-5NBPoXNZays5wzpQYar4uZZb0P/zB7fdecE+SjkJjcI=";
+  };
+
+  # Work around the "unpacker appears to have produced no directories"
+  setSourceRoot = "sourceRoot=$(pwd)";
+
+  nativeBuildInputs = [ makeWrapper installShellFiles ];
+
+  buildInputs = [ perl ] ++ (with perlPackages; [
+    DBFile
+    FileMimeInfo
+    FileBaseDir
+    #GraphicsMagick
+    ImageMagick
+    Inline
+    InlineC
+    ParseRecDescent
+  ]);
+
+  # use /tmp as a storage
+  # replace GraphicsMagick with ImageMagick, because perl bindings are not yet available
+  postPatch = ''
+    substituteInPlace findimagedupes \
+      --replace "DIRECTORY => '/usr/local/lib/findimagedupes';" "DIRECTORY => '/tmp';" \
+      --replace "Graphics::Magick" "Image::Magick"
+  '';
+
+  buildPhase = "
+    runHook preBuild
+    ${perl}/bin/pod2man findimagedupes > findimagedupes.1
+    runHook postBuild
+  ";
+
+  installPhase = ''
+    runHook preInstall
+    install -D -m 755 findimagedupes $out/bin/findimagedupes
+    installManPage findimagedupes.1
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    wrapProgram "$out/bin/findimagedupes" \
+      --prefix PERL5LIB : "${with perlPackages; makePerlPath [
+        DBFile
+        FileMimeInfo
+        FileBaseDir
+        #GraphicsMagick
+        ImageMagick
+        Inline
+        InlineC
+        ParseRecDescent
+      ]}"
+  '';
+
+  meta = with lib; {
+    homepage = "http://www.jhnc.org/findimagedupes/";
+    description = "Finds visually similar or duplicate images";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ stunkymonkey ];
+  };
+}
diff --git a/pkgs/tools/graphics/gifski/default.nix b/pkgs/tools/graphics/gifski/default.nix
index fcbed6d4fa136..7571db85400fe 100644
--- a/pkgs/tools/graphics/gifski/default.nix
+++ b/pkgs/tools/graphics/gifski/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gifski";
-  version = "1.5.1";
+  version = "1.6.4";
 
   src = fetchFromGitHub {
     owner = "ImageOptim";
     repo = "gifski";
     rev = version;
-    sha256 = "sha256-x2p+6m1pwXhmI9JvGUgLhxrGwpJa/e2wb5wOFdKQ2xg=";
+    sha256 = "sha256-TD6MSZfvJ8fLJxvDh4fc4Dij5t4WSH2/i9Jz7eBmlME=";
   };
 
-  cargoSha256 = "sha256-8t7VhPby56UX2LlD2xcJKkWamuJxN9LiVEQPEa78EQQ=";
+  cargoSha256 = "sha256-kG0svhytDzm2dc//8WTFm1sI3WS0Ny9yhYTSMoXnt8I=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/tools/graphics/glmark2/default.nix b/pkgs/tools/graphics/glmark2/default.nix
index 6429448125775..9615b57e0c1a7 100644
--- a/pkgs/tools/graphics/glmark2/default.nix
+++ b/pkgs/tools/graphics/glmark2/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "glmark2";
-  version = "2021.02";
+  version = "2021.12";
 
   src = fetchFromGitHub {
     owner = "glmark2";
     repo = "glmark2";
     rev = version;
-    sha256 = "1a75gg1dn03d3jq7n74wsw7kc14ildbb8azzbj4k28xik1m6khr9";
+    sha256 = "sha256-S6KkazkG+kdx02MPwrYvCFWSOtM6t5xT0OTE9PLCzas=";
   };
 
   nativeBuildInputs = [ pkg-config wafHook makeWrapper ];
diff --git a/pkgs/tools/graphics/gmic-qt/default.nix b/pkgs/tools/graphics/gmic-qt/default.nix
index 1d26379c396ac..8cc39c1f44af9 100644
--- a/pkgs/tools/graphics/gmic-qt/default.nix
+++ b/pkgs/tools/graphics/gmic-qt/default.nix
@@ -1,10 +1,8 @@
 { lib
 , mkDerivation
 , fetchurl
-, fetchpatch
 , variant ? "standalone"
 , fetchFromGitHub
-, fetchFromGitLab
 , cmake
 , pkg-config
 , opencv3
@@ -20,6 +18,12 @@
 , gimp ? null
 , qtbase
 , qttools
+, writeShellScript
+, common-updater-scripts
+, gnugrep
+, gnused
+, coreutils
+, jq
 }:
 
 let
@@ -52,61 +56,42 @@ assert lib.assertMsg (builtins.all (d: d != null) variants.${variant}.extraDeps
 
 mkDerivation rec {
   pname = "gmic-qt${lib.optionalString (variant != "standalone") "-${variant}"}";
-  version = "2.7.1";
+  version = "3.0.0";
 
   gmic-community = fetchFromGitHub {
     owner = "dtschump";
     repo = "gmic-community";
-    rev = "3fd528f20a2a7d651e96078c205ff21efb9cdd1a";
-    sha256 = "08d37b49qgh5d4rds7hvr5wjj4p1y8cnbidz1cyqsibq0555pwq2";
+    rev = "df23b08bc52767762f0e38d040cd8ffeea4b865e";
+    sha256 = "euk5RsFPBgx2czAukPRdi/O4ahgXO8J8VJdiGHNge5M=";
   };
 
-  CImg = fetchFromGitLab {
-    domain = "framagit.org";
+  CImg = fetchFromGitHub {
     owner = "dtschump";
     repo = "CImg";
     rev = "v.${version}";
-    sha256 = "1mfkjvf5r3ppc1dd6yvqn7xlhgzfg9k1k5v2sq2k9m70g8p7rgpd";
+    sha256 = "dC4VuWTz0uyFxLjBQ+2ggndHaCErcoI7tJMfkqbWmeg=";
   };
 
   gmic_stdlib = fetchurl {
     name = "gmic_stdlib.h";
     url = "http://gmic.eu/gmic_stdlib${lib.replaceStrings ["."] [""] version}.h";
-    sha256 = "0v12smknr1s44s6wq2gbnw0hb98xrwp6i3zg9wf49cl7s9qf76j3";
+    sha256 = "CAYSxw5NCmE29hie1/J1csBcdQvIrmZ/+mNMl0sLLGI=";
   };
 
   gmic = fetchFromGitHub {
     owner = "dtschump";
     repo = "gmic";
     rev = "v.${version}";
-    sha256 = "0pa6kflr1gqgzh8rk7bylvkxs989r5jy0q7b62mnzx8895slwfb5";
+    sha256 = "PyeJmjOqjbHlZ1Xl3IpoOD6oZEcUrHNHqF7Ft1RZDL4=";
   };
 
   gmic_qt = fetchFromGitHub {
     owner = "c-koi";
     repo = "gmic-qt";
     rev = "v.${version}";
-    sha256 = "08a0660083wv5fb1w9qqhm4f8cfwbqq723qzqq647mid1n7sy959";
+    sha256 = "nENXumOArRAHENqnBUjM7m+I5hf/WAFTVfm6cJgnv+0=";
   };
 
-  patches = [
-    # Install GIMP plug-in to a correct destination
-    # https://github.com/c-koi/gmic-qt/pull/78
-    ./fix-gimp-plugin-path.patch
-  ];
-
-  unpackPhase = ''
-    cp -r ${gmic} gmic
-    ln -s ${gmic-community} gmic-community
-    cp -r ${gmic_qt} gmic_qt
-    chmod -R +w gmic gmic_qt
-    ln -s ${CImg} CImg
-
-    cp ${gmic_stdlib} gmic/src/gmic_stdlib.h
-
-    cd gmic_qt
-  '';
-
   nativeBuildInputs = [
     cmake
     pkg-config
@@ -130,15 +115,54 @@ mkDerivation rec {
     "-DGMIC_QT_HOST=${if variant == "standalone" then "none" else variant}"
   ];
 
+  unpackPhase = ''
+    cp -r ${gmic} gmic
+    ln -s ${gmic-community} gmic-community
+    cp -r ${gmic_qt} gmic_qt
+    chmod -R +w gmic gmic_qt
+    ln -s ${CImg} CImg
+
+    cp ${gmic_stdlib} gmic/src/gmic_stdlib.h
+
+    cd gmic_qt
+  '';
+
   postFixup = lib.optionalString (variant == "gimp") ''
-    echo "wrapping $out/${gimp.targetPluginDir}/gmic_gimp_qt"
-    wrapQtApp "$out/${gimp.targetPluginDir}/gmic_gimp_qt"
+    echo "wrapping $out/${gimp.targetPluginDir}/gmic_gimp_qt/gmic_gimp_qt"
+    wrapQtApp "$out/${gimp.targetPluginDir}/gmic_gimp_qt/gmic_gimp_qt"
   '';
 
+  passthru = {
+    updateScript = writeShellScript "${pname}-update-script" ''
+      set -o errexit
+      PATH=${lib.makeBinPath [ common-updater-scripts curl gnugrep gnused coreutils jq ]}
+
+      latestVersion=$(curl 'https://gmic.eu/files/source/' | grep -E 'gmic_[^"]+\.tar\.gz' | sed -E 's/.+<a href="gmic_([^"]+)\.tar\.gz".+/\1/g' | sort --numeric-sort --reverse | head -n1)
+
+      if [[ "${version}" = "$latestVersion" ]]; then
+          echo "The new version same as the old version."
+          exit 0
+      fi
+
+      # gmic-community is not versioned so let’s just update to master.
+      communityLatestCommit=$(curl "https://api.github.com/repos/dtschump/gmic-community/commits/master")
+      communityLatestSha=$(echo "$communityLatestCommit" | jq .sha --raw-output)
+      communityLatestDate=$(echo "$communityLatestCommit" | jq .commit.committer.date --raw-output | sed 's/T.\+//')
+      update-source-version --source-key=gmic-community "gmic-qt" "unstable-$communityLatestDate" --rev="$communityLatestSha"
+
+      for component in CImg gmic_stdlib gmic gmic_qt; do
+          # The script will not perform an update when the version attribute is up to date from previous platform run
+          # We need to clear it before each run
+          update-source-version "--source-key=$component" "gmic-qt" 0 "$(printf '0%.0s' {1..64})"
+          update-source-version "--source-key=$component" "gmic-qt" $latestVersion
+      done
+    '';
+  };
+
   meta = with lib; {
     description = variants.${variant}.description;
     homepage = "http://gmic.eu/";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/graphics/gmic-qt/fix-gimp-plugin-path.patch b/pkgs/tools/graphics/gmic-qt/fix-gimp-plugin-path.patch
deleted file mode 100644
index ac0600fb76c34..0000000000000
--- a/pkgs/tools/graphics/gmic-qt/fix-gimp-plugin-path.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 1483056..26d2b9a 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -473,6 +473,7 @@
- 
-     execute_process(COMMAND gimptool-2.0 --libs-noui OUTPUT_VARIABLE GIMP2_LIBRARIES OUTPUT_STRIP_TRAILING_WHITESPACE)
-     execute_process(COMMAND gimptool-2.0 --cflags-noui OUTPUT_VARIABLE GIMP2_INCLUDE_DIRS OUTPUT_STRIP_TRAILING_WHITESPACE)
-+    execute_process(COMMAND pkg-config gimp-2.0 --define-variable=prefix=${CMAKE_INSTALL_PREFIX} --variable gimplibdir OUTPUT_VARIABLE GIMP2_PKGLIBDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
-     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GIMP2_INCLUDE_DIRS}")
- 
-     set (gmic_qt_SRCS ${gmic_qt_SRCS} src/Host/Gimp/host_gimp.cpp)
-@@ -484,7 +485,7 @@
-       ${GIMP2_LIBRARIES}
-       ${gmic_qt_LIBRARIES}
-       )
--    install(TARGETS gmic_gimp_qt RUNTIME DESTINATION bin)
-+    install(TARGETS gmic_gimp_qt RUNTIME DESTINATION "${GIMP2_PKGLIBDIR}/plug-ins")
- 
- elseif (${GMIC_QT_HOST} STREQUAL "krita")
- 
diff --git a/pkgs/tools/graphics/grim/default.nix b/pkgs/tools/graphics/grim/default.nix
index f678b2bcae988..43824e1690477 100644
--- a/pkgs/tools/graphics/grim/default.nix
+++ b/pkgs/tools/graphics/grim/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, cairo, libjpeg, meson, ninja, wayland, pkg-config, scdoc, wayland-protocols }:
+{ lib, stdenv, fetchFromGitHub, pixman, libpng, libjpeg, meson, ninja, wayland, pkg-config, scdoc, wayland-protocols }:
 
 stdenv.mkDerivation rec {
   pname = "grim";
-  version = "1.3.2";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-71dmYENfPX8YHcTlR2F67EheoewicePMKm9/wPbmj9A=";
+    sha256 = "sha256-lwJn1Lysv1qLauqmrduUlzdoKUrUM5uBjv+dWSsrM6w=";
   };
 
   nativeBuildInputs = [
@@ -19,7 +19,8 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    cairo
+    pixman
+    libpng
     libjpeg
     wayland
     wayland-protocols
diff --git a/pkgs/tools/graphics/gromit-mpx/default.nix b/pkgs/tools/graphics/gromit-mpx/default.nix
index 9af99a58098b2..74a0943afe332 100644
--- a/pkgs/tools/graphics/gromit-mpx/default.nix
+++ b/pkgs/tools/graphics/gromit-mpx/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gromit-mpx";
-  version = "1.4";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "bk138";
     repo = "gromit-mpx";
     rev = version;
-    sha256 = "1xn14r7lhay720y78j1fs4amp5lia39kpq7vzv02x4nnwhgbsd9r";
+    sha256 = "sha256-K+NJagRdxnFw410pHDP+OY6yyFu/7mhLvZ8DIz08dsA=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapGAppsHook ];
diff --git a/pkgs/tools/graphics/netpbm/default.nix b/pkgs/tools/graphics/netpbm/default.nix
index fc7d909ca0dda..ce3205f7b2e26 100644
--- a/pkgs/tools/graphics/netpbm/default.nix
+++ b/pkgs/tools/graphics/netpbm/default.nix
@@ -20,14 +20,14 @@ stdenv.mkDerivation {
   # Determine version and revision from:
   # https://sourceforge.net/p/netpbm/code/HEAD/log/?path=/advanced
   pname = "netpbm";
-  version = "10.96.2";
+  version = "10.97.2";
 
   outputs = [ "bin" "out" "dev" ];
 
   src = fetchsvn {
     url = "https://svn.code.sf.net/p/netpbm/code/advanced";
-    rev = "4158";
-    sha256 = "NK8GXCvCEnbQJWvVngB5UMOVmfsiyU4Fq0JIY9UNSjo=";
+    rev = "4242";
+    sha256 = "ljfowjaa3whNXavrLTFVUq87nG47sykYtrtGSrZb/rE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/graphics/pdfredacttools/default.nix b/pkgs/tools/graphics/pdfredacttools/default.nix
deleted file mode 100644
index 0a1cc111b5414..0000000000000
--- a/pkgs/tools/graphics/pdfredacttools/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, fetchFromGitHub, python2Packages, imagemagick, exiftool, file, ghostscript }:
-
-python2Packages.buildPythonApplication rec {
-  pname = "pdf-redact-tools";
-  version = "0.1.2";
-
-  src = fetchFromGitHub {
-    owner = "firstlookmedia";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "01vs1bc0pfgk6x2m36vwra605fg59yc31d0hl9jmj86n8q6wwvss";
-  };
-
-  patchPhase = ''substituteInPlace pdf-redact-tools      \
-    --replace \'convert\' \'${imagemagick}/bin/convert\' \
-    --replace \'exiftool\' \'${exiftool}/bin/exiftool\'  \
-    --replace \'file\' \'${file}/bin/file\'
-   '';
-
-  propagatedBuildInputs = [ imagemagick exiftool ghostscript ];
-
-  meta = with lib; {
-    description = "Redact and strip metadata from documents before publishing";
-    longDescription = ''
-        PDF Redact Tools helps with securely redacting and stripping metadata
-        from documents before publishing. Note that this is not a security tool.
-        It uses ImageMagick to parse PDFs.  While ImageMagick is a versatile tool, it has
-        a history of several security bugs. A malicious PDF could exploit a bug in
-        ImageMagick to take over your computer. If you're working with potentially
-        malicious PDFs, it's safest to run them through PDF Redact Tools in an isolated
-        environment, such as a virtual machine, or by using a tool such as the Qubes
-        PDF Converter instead.
-    '';
-    platforms = platforms.all;
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ leenaars ];
-  };
-}
diff --git a/pkgs/tools/graphics/pikchr/default.nix b/pkgs/tools/graphics/pikchr/default.nix
index ca4f647dfa2d0..6e2517beccec9 100644
--- a/pkgs/tools/graphics/pikchr/default.nix
+++ b/pkgs/tools/graphics/pikchr/default.nix
@@ -6,11 +6,11 @@
 stdenv.mkDerivation {
   pname = "pikchr";
   # To update, use the last check-in in https://pikchr.org/home/timeline?r=trunk
-  version = "unstable-2021-07-22";
+  version = "unstable-2022-01-30";
 
   src = fetchurl {
-    url = "https://pikchr.org/home/tarball/d9e1502ed74c6aab/pikchr.tar.gz";
-    sha256 = "sha256-YSy95GiSodOS1YJgl9arBniqEJzYPrZ9CHNSCee9Yfg=";
+    url = "https://pikchr.org/home/tarball/5db3aa1d294dcd16/pikchr.tar.gz";
+    sha256 = "sha256-xnT2oOx4LK9CElXeAuQIKlu6WvMB8Nv5+2kBzWQ5Gpc=";
   };
 
   # can't open generated html files
diff --git a/pkgs/tools/graphics/realesrgan-ncnn-vulkan/cmakelists.patch b/pkgs/tools/graphics/realesrgan-ncnn-vulkan/cmakelists.patch
new file mode 100644
index 0000000000000..5ee94a917262b
--- /dev/null
+++ b/pkgs/tools/graphics/realesrgan-ncnn-vulkan/cmakelists.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a234caa..cd9d2c5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -114,6 +114,8 @@ if(USE_SYSTEM_NCNN)
+             include("${GLSLANG_TARGET_DIR}/HLSLTargets.cmake")
+         endif()
+         include("${GLSLANG_TARGET_DIR}/glslangTargets.cmake")
++        include("${GLSLANG_TARGET_DIR}/SPIRV-Tools/SPIRV-ToolsTarget.cmake")
++        include("${GLSLANG_TARGET_DIR}/SPIRV-Tools-opt/SPIRV-Tools-optTargets.cmake")
+         include("${GLSLANG_TARGET_DIR}/SPIRVTargets.cmake")
+ 
+         if (NOT TARGET glslang OR NOT TARGET SPIRV)
diff --git a/pkgs/tools/graphics/realesrgan-ncnn-vulkan/default.nix b/pkgs/tools/graphics/realesrgan-ncnn-vulkan/default.nix
new file mode 100644
index 0000000000000..d66a06b7eed2a
--- /dev/null
+++ b/pkgs/tools/graphics/realesrgan-ncnn-vulkan/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, stdenv
+, fetchzip
+, fetchFromGitHub
+, cmake
+, spirv-headers
+, vulkan-headers
+, vulkan-loader
+, glslang
+, libgcc
+, libwebp
+, ncnn
+}:
+
+stdenv.mkDerivation rec {
+  pname = "Real-ESRGAN-ncnn-vulkan";
+  version = "0.1.3.2";
+
+  src = fetchFromGitHub {
+    owner = "xinntao";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-eLAIlOl1sUxijeVPFG+NscZGxDdtrQqVkMuxhegESHk=";
+  };
+  sourceRoot = "source/src";
+
+  models = fetchzip {
+    # Choose the newst release from https://github.com/xinntao/Real-ESRGAN/releases to update
+    url = "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.3.0/realesrgan-ncnn-vulkan-20211212-ubuntu.zip";
+    stripRoot = false;
+    sha256 = "sha256-17k6fewVEXxx7hi+vPXjHAOq4IIUHLh7WC80CwTeFKI=";
+  };
+
+  patches = [
+    ./cmakelists.patch
+    ./models_path.patch
+  ];
+
+  cmakeFlags = [
+    "-DUSE_SYSTEM_NCNN=1"
+    "-DUSE_SYSTEM_WEBP=1"
+
+    "-DGLSLANG_TARGET_DIR=${glslang}/lib/cmake"
+  ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ vulkan-headers vulkan-loader glslang libgcc libwebp ncnn ];
+
+  postPatch = ''
+    substituteInPlace main.cpp --replace REPLACE_MODELS $out/share/models
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share
+    cp realesrgan-ncnn-vulkan $out/bin/
+    cp -r ${models}/models $out/share
+  '';
+
+  meta = with lib; {
+    description = "NCNN implementation of Real-ESRGAN. Real-ESRGAN aims at developing Practical Algorithms for General Image Restoration.";
+    homepage = "https://github.com/xinntao/Real-ESRGAN-ncnn-vulkan";
+    license = licenses.mit;
+    maintainers = with maintainers; [ tilcreator ];
+  };
+}
diff --git a/pkgs/tools/graphics/realesrgan-ncnn-vulkan/models_path.patch b/pkgs/tools/graphics/realesrgan-ncnn-vulkan/models_path.patch
new file mode 100644
index 0000000000000..43b8e4503be2c
--- /dev/null
+++ b/pkgs/tools/graphics/realesrgan-ncnn-vulkan/models_path.patch
@@ -0,0 +1,22 @@
+diff --git a/main.cpp b/main.cpp
+index eb6f6c8..b230bed 100644
+--- a/main.cpp
++++ b/main.cpp
+@@ -110,7 +110,7 @@ static void print_usage()
+     fprintf(stderr, "  -o output-path       output image path (jpg/png/webp) or directory\n");
+     fprintf(stderr, "  -s scale             upscale ratio (can be 2, 4. default=4)\n");
+     fprintf(stderr, "  -t tile-size         tile size (>=32/0=auto, default=0) can be 0,0,0 for multi-gpu\n");
+-    fprintf(stderr, "  -m model-path        folder path to pre-trained models(default=models)\n");
++    fprintf(stderr, "  -m model-path        folder path to pre-trained models(default=REPLACE_MODELS)\n");
+     fprintf(stderr, "  -n model-name        model name (default=realesrgan-x4plus, can be realesrgan-x4plus | realesrgan-x4plus-anime | realesrnet-x4plus | RealESRGANv2-animevideo-xsx2 | RealESRGANv2-animevideo-xsx4 | RealESRGANv2-anime-xsx2 | RealESRGANv2-anime-xsx4)\n");
+     fprintf(stderr, "  -g gpu-id            gpu device to use (default=auto) can be 0,1,2 for multi-gpu\n");
+     fprintf(stderr, "  -j load:proc:save    thread count for load/proc/save (default=1:2:2) can be 1:2,2,2:2 for multi-gpu\n");
+@@ -438,7 +438,7 @@ int main(int argc, char** argv)
+     path_t outputpath;
+     int scale = 4;
+     std::vector<int> tilesize;
+-    path_t model = PATHSTR("models");
++    path_t model = PATHSTR("REPLACE_MODELS");
+     path_t modelname = PATHSTR("realesrgan-x4plus");
+     std::vector<int> gpuid;
+     int jobs_load = 1;
diff --git a/pkgs/tools/graphics/resvg/default.nix b/pkgs/tools/graphics/resvg/default.nix
index 8a3bc7a477f9a..67fe03728463d 100644
--- a/pkgs/tools/graphics/resvg/default.nix
+++ b/pkgs/tools/graphics/resvg/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "resvg";
-  version = "0.19.0";
+  version = "0.21.0";
 
   src = fetchFromGitHub {
     owner = "RazrFalcon";
     repo = pname;
     rev = "v${version}";
-    sha256 = "15q88ix5800wmqq6nbmnw0gxk0sx1k9iqv1fvy5kcbgcj65acvwx";
+    sha256 = "sha256-I0I6gb2jG0ZeEp6WwDipe43wuek43CWm0zGBX2hAros=";
   };
 
-  cargoSha256 = "0dlap5db8wvghaqzqbm7q3k38xvncdikq0y9gc55w5hzic63khbx";
+  cargoSha256 = "sha256-EdbyaVrHjjVUNmQM96VKCeU3ss1G/N4OZxFMLvFgRqY=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
diff --git a/pkgs/tools/graphics/scrot/default.nix b/pkgs/tools/graphics/scrot/default.nix
index aa525abacb07c..11d2a3c0b89bd 100644
--- a/pkgs/tools/graphics/scrot/default.nix
+++ b/pkgs/tools/graphics/scrot/default.nix
@@ -1,25 +1,46 @@
-{ lib, stdenv, fetchFromGitHub, giblib, xlibsWrapper, autoreconfHook
-, autoconf-archive, libXfixes, libXcursor, libXcomposite }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, imlib2
+, xlibsWrapper
+, autoreconfHook
+, autoconf-archive
+, libXfixes
+, libXcomposite
+, pkg-config
+, libbsd
+}:
 
 stdenv.mkDerivation rec {
   pname = "scrot";
-  version = "1.5";
+  version = "1.7";
 
   src = fetchFromGitHub {
     owner = "resurrecting-open-source-projects";
     repo = pname;
     rev = version;
-    sha256 = "sha256-4vguodLnCj0sOBLM4oJXTfX1p8hIo3WTwIuViPtZxHQ=";
+    sha256 = "sha256-oVmEPkEK1xDcIRUQjCp6CKf+aKnnVe3L7aRTdSsCmmY=";
   };
 
-  nativeBuildInputs = [ autoreconfHook autoconf-archive ];
-  buildInputs = [ giblib xlibsWrapper libXfixes libXcursor libXcomposite ];
+  nativeBuildInputs = [
+    autoreconfHook
+    autoconf-archive
+    pkg-config
+  ];
+
+  buildInputs = [
+    imlib2
+    xlibsWrapper
+    libXfixes
+    libXcomposite
+    libbsd
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/resurrecting-open-source-projects/scrot";
     description = "A command-line screen capture utility";
     platforms = platforms.linux;
     maintainers = with maintainers; [ globin ];
-    license = licenses.mit;
+    license = licenses.mitAdvertising;
   };
 }
diff --git a/pkgs/tools/graphics/svgbob/default.nix b/pkgs/tools/graphics/svgbob/default.nix
index 2e3740dabb7c3..9afb6682ba557 100644
--- a/pkgs/tools/graphics/svgbob/default.nix
+++ b/pkgs/tools/graphics/svgbob/default.nix
@@ -2,15 +2,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "svgbob";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchCrate {
     inherit version;
     crateName = "svgbob_cli";
-    sha256 = "sha256-9JASoUN/VzZS8ihepTQL2SXZitxKBMSJEv+13vzQd3w=";
+    sha256 = "sha256-yYRBV0s19J0M02wenGayy7Ebx6wDhiLiGmb+os29u9I=";
   };
 
-  cargoSha256 = "sha256-pkdiow+9gsQ9rrSHwukd17r5CfsaJgYj6KA4wYKbtA0=";
+  cargoSha256 = "sha256-R4W+Oe7Ks2D9qE1IpV6/AMMMwZnCfJ5DzxFAMpV2rFE=";
 
   meta = with lib; {
     description = "Convert your ascii diagram scribbles into happy little SVG";
diff --git a/pkgs/tools/graphics/timg/default.nix b/pkgs/tools/graphics/timg/default.nix
index 7c2d004144dc4..035bb33eebf16 100644
--- a/pkgs/tools/graphics/timg/default.nix
+++ b/pkgs/tools/graphics/timg/default.nix
@@ -1,18 +1,18 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config, graphicsmagick, libjpeg
-, ffmpeg, zlib, libexif }:
+, ffmpeg, zlib, libexif, openslide }:
 
 stdenv.mkDerivation rec {
   pname = "timg";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "hzeller";
     repo = "timg";
     rev = "v${version}";
-    sha256 = "1zjcaxnik8imkn22g5kz6zly3yxpknrzd093sfxpgqnfw4sq8149";
+    sha256 = "1lanr2y9rchl0xmycsyl0bhnh9mrmr5dj46pglw4lykz4rxslzcx";
   };
 
-  buildInputs = [ graphicsmagick ffmpeg libexif libjpeg zlib ];
+  buildInputs = [ graphicsmagick ffmpeg libexif libjpeg openslide zlib ];
 
   nativeBuildInputs = [ cmake pkg-config ];
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     "-DTIMG_VERSION_FROM_GIT=Off"
     "-DWITH_VIDEO_DECODING=On"
     "-DWITH_VIDEO_DEVICE=On"
-    "-DWITH_OPENSLIDE_SUPPORT=Off" # https://openslide.org/ lib not yet in nix
+    "-DWITH_OPENSLIDE_SUPPORT=On"
   ];
 
   meta = with lib; {
diff --git a/pkgs/tools/graphics/transfig/default.nix b/pkgs/tools/graphics/transfig/default.nix
deleted file mode 100644
index 617ecbf90ee98..0000000000000
--- a/pkgs/tools/graphics/transfig/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ lib, stdenv, fetchurl, zlib, libjpeg, libpng, imake, gccmakedep }:
-
-stdenv.mkDerivation rec {
-  pname = "transfig";
-  version = "3.2.4";
-
-  src = fetchurl {
-    url = "ftp://ftp.tex.ac.uk/pub/archive/graphics/transfig/transfig.${version}.tar.gz";
-    sha256 = "0429snhp5acbz61pvblwlrwv8nxr6gf12p37f9xxwrkqv4ir7dd4";
-  };
-
-  nativeBuildInputs = [ imake gccmakedep ];
-  buildInputs = [ zlib libjpeg libpng ];
-
-  patches = [
-    ./patch-fig2dev-dev-Imakefile.patch
-    ./patch-fig2dev-Imakefile.patch
-    ./patch-transfig-Imakefile.patch
-    ./patch-fig2dev-fig2dev.h.patch
-    ./patch-fig2dev-dev-gensvg.c.patch
-  ];
-
-  patchPhase = ''
-    runHook prePatch
-
-    configureImakefiles() {
-        local sedcmd=$1
-
-        sed "$sedcmd" fig2dev/Imakefile > tmpsed
-        cp tmpsed fig2dev/Imakefile
-
-        sed "$sedcmd" fig2dev/dev/Imakefile > tmpsed
-        cp tmpsed fig2dev/dev/Imakefile
-
-        sed "$sedcmd" transfig/Imakefile > tmpsed
-        cp tmpsed transfig/Imakefile
-    }
-
-    for i in $patches; do
-        header "applying patch $i" 3
-        patch -p0 < $i
-        stopNest
-    done
-
-    configureImakefiles "s:__PREFIX_PNG:${libpng}:"
-    configureImakefiles "s:__PREFIX:$out:"
-
-    runHook postPatch
-  '';
-
-  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
-
-  preInstall = ''
-    mkdir -p $out
-    mkdir -p $out/lib
-  '';
-
-  hardeningDisable = [ "format" ];
-
-  meta = {
-    platforms = lib.platforms.unix;
-  };
-}
diff --git a/pkgs/tools/graphics/transfig/patch-fig2dev-Imakefile.patch b/pkgs/tools/graphics/transfig/patch-fig2dev-Imakefile.patch
deleted file mode 100644
index 9c1895b15196e..0000000000000
--- a/pkgs/tools/graphics/transfig/patch-fig2dev-Imakefile.patch
+++ /dev/null
@@ -1,75 +0,0 @@
---- fig2dev/Imakefile.orig	Thu Mar 25 22:39:10 2004
-+++ fig2dev/Imakefile	Thu Mar 25 22:41:01 2004
-@@ -16,17 +16,23 @@
- XCOMM party to do so, with the only requirement being that this copyright 
- XCOMM notice remain intact.
- 
-+BINDIR = __PREFIX/bin
-+DESTDIR = __DESTROOT
-+MKDIRHIER = mkdirhier
-+MANDIR = __PREFIX/share/man/$(MANSUFFIX)
-+INSTALLFLAGS = -c
-+
- XCOMM ******
- XCOMM You should point XFIGLIBDIR to the same directory you did when you compiled
- XCOMM and installed xfig.
- 
--XFIGLIBDIR =	/usr/local/lib/X11/xfig
-+XFIGLIBDIR =	__PREFIX/lib/xfig
- 
- XCOMM ******
- XCOMM If your system has the strerror() function (doesn't have sys_errlist) then
- XCOMM comment out NEED_STRERROR with an XCOMM comment.
- 
--NEED_STRERROR = -DNEED_STRERROR
-+XCOMM NEED_STRERROR = -DNEED_STRERROR
- 
- XCOMM The following probably only applies to Windows 9x/NT:
- XCOMM If your system can open files in text and binary modes and has the
-@@ -39,7 +45,7 @@
- XCOMM inline functions. With the "INLINE" keyword, you should notice that
- XCOMM the display will be a bit faster in complex figures
- 
--XCOMM USEINLINE = -DUSE_INLINE
-+USEINLINE = -DUSE_INLINE
- 
- XCOMM ****************
- XCOMM Change RGB if necessary, to point to your rgb.txt color database
-@@ -60,8 +66,8 @@
- XCOMM are in different places
- 
- #ifdef USEPNG
--PNGLIBDIR = $(USRLIBDIR)
--PNGINC = -I/usr/include/X11
-+PNGLIBDIR = __PREFIX_PNG/lib
-+PNGINC = -I__PREFIX_PNG/include
- #endif
- 
- XCOMM ****************
-@@ -73,7 +79,7 @@
- XCOMM Change XPMINC if necessary to point to the include file for xpm (xpm.h)
- XCOMM
- 
--XCOMM #define USEXPM
-+XCOMM #define USEXPM
- 
- #ifdef USEXPM
- XPMLIBDIR = $(USRLIBDIR)
-@@ -126,7 +132,7 @@
- 
- #ifdef I18N
- I18N_DEFS = -DI18N 
--FIG2DEV_LIBDIR = /usr/local/lib/fig2dev
-+FIG2DEV_LIBDIR = __PREFIX/lib/fig2dev
- I18N_DEV_DEFS = $(I18N_DEFS) -DFIG2DEV_LIBDIR=\\\"$(FIG2DEV_LIBDIR)\\\"
- 
- install::
-@@ -177,7 +183,7 @@
- 
- IMAKE_DEFINES = $(DUSEPNG) $(DUSEXPM)
- 
--DEVDEFINES = $(DUSEPNG) $(DUSEXPM) $(XPMINC) $(DDNFSS) $(DDA4) \
-+DEVDEFINES = $(DUSEPNG) $(DUSEXPM) $(PNGINC) $(XPMINC) $(DDNFSS) $(DDA4) \
- 		$(DDLATEX2E_GRAPHICS) $(DDEPSFIG) $(DDIBMGEC) $(DDDVIPS) $(I18N_DEV_DEFS)
- 
- #define IHaveSubdirs
diff --git a/pkgs/tools/graphics/transfig/patch-fig2dev-dev-Imakefile.patch b/pkgs/tools/graphics/transfig/patch-fig2dev-dev-Imakefile.patch
deleted file mode 100644
index 87f01f70d302b..0000000000000
--- a/pkgs/tools/graphics/transfig/patch-fig2dev-dev-Imakefile.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- fig2dev/dev/Imakefile.orig	Thu Mar 25 22:47:18 2004
-+++ fig2dev/dev/Imakefile	Thu Mar 25 22:47:51 2004
-@@ -18,6 +18,12 @@
- XCOMM party to do so, with the only requirement being that this copyright 
- XCOMM notice remain intact.
- 
-+BINDIR = __PREFIX/bin
-+USRLIBDIR = __PREFIX/lib
-+DESTDIR = __DESTROOT
-+MKDIRHIER = mkdirhier
-+MANDIR = __PREFIX/share/man/$(MANSUFFIX)
-+
- INCLUDES = -I.. -I../..
- 
- #ifdef USE_PNG
diff --git a/pkgs/tools/graphics/transfig/patch-fig2dev-dev-gensvg.c.patch b/pkgs/tools/graphics/transfig/patch-fig2dev-dev-gensvg.c.patch
deleted file mode 100644
index 5bd05c97be8e2..0000000000000
--- a/pkgs/tools/graphics/transfig/patch-fig2dev-dev-gensvg.c.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- fig2dev/dev/gensvg.c.orig	Wed Jul 23 16:39:14 2003
-+++ fig2dev/dev/gensvg.c	Wed Jul 23 16:39:52 2003
-@@ -692,16 +692,14 @@
-     if (t->angle != 0) {
- 	fprintf (tfp, "<g transform=\"translate(%d,%d) rotate(%d)\" >\n",
- 		 (int) (t->base_x * mag), (int) (t->base_y * mag), degrees (t->angle));
--	fprintf (tfp, "<text x=\"0\" y=\"0\" fill=\"#%6.6x\"  font-family=\"%s\" 
--		 font-style=\"%s\" font-weight=\"%s\" font-size=\"%d\" text-anchor=\"%s\" >\n",
-+	fprintf (tfp, "<text x=\"0\" y=\"0\" fill=\"#%6.6x\"  font-family=\"%s\" font-style=\"%s\" font-weight=\"%s\" font-size=\"%d\" text-anchor=\"%s\" >\n",
- 		 rgbColorVal (t->color), family[(int) ceil ((t->font + 1) / 4)],
- 		 (t->font % 2 == 0 ? "normal" : "italic"),
- 		 (t->font % 4 < 2 ? "normal" : "bold"), (int) (ceil (t->size * 12 * mag)),
- 		 anchor[t->type]);
-     }
-     else
--	fprintf (tfp, "<text x=\"%d\" y=\"%d\" fill=\"#%6.6x\"  font-family=\"%s\" 
--		 font-style=\"%s\" font-weight=\"%s\" font-size=\"%d\" text-anchor=\"%s\" >\n",
-+	fprintf (tfp, "<text x=\"%d\" y=\"%d\" fill=\"#%6.6x\"  font-family=\"%s\" font-style=\"%s\" font-weight=\"%s\" font-size=\"%d\" text-anchor=\"%s\" >\n",
- 		 (int) (t->base_x * mag), (int) (t->base_y * mag), rgbColorVal (t->color),
- 		 family[(int) ceil ((t->font + 1) / 4)],
- 		 (t->font % 2 == 0 ? "normal" : "italic"),
diff --git a/pkgs/tools/graphics/transfig/patch-fig2dev-fig2dev.h.patch b/pkgs/tools/graphics/transfig/patch-fig2dev-fig2dev.h.patch
deleted file mode 100644
index 3f330c164e7e7..0000000000000
--- a/pkgs/tools/graphics/transfig/patch-fig2dev-fig2dev.h.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- fig2dev/fig2dev.h.orig	Thu Dec 19 07:45:28 2002
-+++ fig2dev/fig2dev.h	Tue Jan  7 20:08:45 2003
-@@ -22,7 +22,6 @@
- #include <sys/file.h>
- #include <signal.h>
- #include <string.h>
--#include <varargs.h>
- #include <pwd.h>
- #include <errno.h>
- #include <time.h>
-@@ -210,7 +209,7 @@
- #endif /* MAXPATHLEN */
- #endif /* PATH_MAX */
- 
--#if ( !defined(__NetBSD__) && !defined(__DARWIN__))
-+#if ( !defined(__NetBSD__) && !defined(__FreeBSD__) && !defined(__DARWIN__))
- extern int		sys_nerr, errno;
- #endif
- 
diff --git a/pkgs/tools/graphics/transfig/patch-transfig-Imakefile.patch b/pkgs/tools/graphics/transfig/patch-transfig-Imakefile.patch
deleted file mode 100644
index 4639658dccd83..0000000000000
--- a/pkgs/tools/graphics/transfig/patch-transfig-Imakefile.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- transfig/Imakefile.orig	Thu Mar 25 22:10:42 2004
-+++ transfig/Imakefile	Thu Mar 25 22:14:04 2004
-@@ -14,11 +14,18 @@
- XCOMM party to do so, with the only requirement being that this copyright 
- XCOMM notice remain intact.
- 
-+BINDIR = __PREFIX/bin
-+USRLIBDIR = __PREFIX/lib
-+DESTDIR = __DESTROOT
-+MKDIRHIER = mkdirhier
-+MANDIR = __PREFIX/share/man/$(MANSUFFIX)
-+INSTALLFLAGS = -c
-+
- XCOMM Uncomment the USELATEX2E flag in the transfig/Imakefile file to use the
- XCOMM \\usepackage{} command for LaTeX2e. 
- XCOMM The default is to use \\documentstyle{} for LaTeX209.
- 
--XCOMM USELATEX2E = -DLATEX2E
-+USELATEX2E = -DLATEX2E
- 
- XCOMM ******* DON'T CHANGE ANYTHIN BELOW THIS POINT *******
- 
diff --git a/pkgs/tools/graphics/unpaper/default.nix b/pkgs/tools/graphics/unpaper/default.nix
index 20dfe15dc6c66..fdd8cb80e567b 100644
--- a/pkgs/tools/graphics/unpaper/default.nix
+++ b/pkgs/tools/graphics/unpaper/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, ffmpeg, libxslt }:
+{ lib, stdenv, fetchurl, pkg-config, ffmpeg_4, libxslt }:
 
 stdenv.mkDerivation rec {
   pname = "unpaper";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ ffmpeg libxslt ];
+  buildInputs = [ ffmpeg_4 libxslt ];
 
   meta = with lib; {
     homepage = "https://www.flameeyes.eu/projects/unpaper";
diff --git a/pkgs/tools/graphics/vips/default.nix b/pkgs/tools/graphics/vips/default.nix
index 26d63791be8ea..270f508a88b57 100644
--- a/pkgs/tools/graphics/vips/default.nix
+++ b/pkgs/tools/graphics/vips/default.nix
@@ -38,7 +38,7 @@
 
 stdenv.mkDerivation rec {
   pname = "vips";
-  version = "8.12.1";
+  version = "8.12.2";
 
   outputs = [ "bin" "out" "man" "dev" ];
 
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     owner = "libvips";
     repo = "libvips";
     rev = "v${version}";
-    sha256 = "sha256-Zo1Y4pYa+o55+ASrAiDUO7SAC4zpcAniEKkTFvIoU6o=";
+    sha256 = "sha256-ffDJJWe/SzG+lppXEiyfXXL5KLdZgnMjv1SYnuYnh4c=";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     extraPostFetch = ''
diff --git a/pkgs/tools/graphics/vulkan-extension-layer/default.nix b/pkgs/tools/graphics/vulkan-extension-layer/default.nix
index ed76557632621..df41ecd485db6 100644
--- a/pkgs/tools/graphics/vulkan-extension-layer/default.nix
+++ b/pkgs/tools/graphics/vulkan-extension-layer/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "vulkan-extension-layer";
-  version = "1.2.189.1";
+  version = "1.2.198.0";
 
   src = (assert version == vulkan-headers.version;
     fetchFromGitHub {
       owner = "KhronosGroup";
       repo = "Vulkan-ExtensionLayer";
       rev = "sdk-${version}";
-      sha256 = "0qi9ps215pmrh8vgi81wvlzjyxs44bama2x3d43a1bbvcyp9s6kp";
+      sha256 = "sha256-g674rw8lXyP1WUoJmbRRL7s+1Yxs00sR04+hTQ3l3dE=";
     });
 
   nativeBuildInputs = [ cmake jq ];
diff --git a/pkgs/tools/graphics/vulkan-tools/default.nix b/pkgs/tools/graphics/vulkan-tools/default.nix
index 9f9593b2cf700..987511b1cc967 100644
--- a/pkgs/tools/graphics/vulkan-tools/default.nix
+++ b/pkgs/tools/graphics/vulkan-tools/default.nix
@@ -3,7 +3,7 @@
 
 stdenv.mkDerivation rec {
   pname = "vulkan-tools";
-  version = "1.2.189.1";
+  version = "1.2.198.0";
 
   # It's not strictly necessary to have matching versions here, however
   # since we're using the SDK version we may as well be consistent with
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
       owner = "KhronosGroup";
       repo = "Vulkan-Tools";
       rev = "sdk-${version}";
-      sha256 = "0izmzyj6gb51d71vbdjcgd9qw34aidvbmz0mg4bkc13n48w8s9vj";
+      sha256 = "sha256-oNJm9Gi41aA5krkpkQI0EYdIlMcQpdodv9yqXhnNURA=";
     });
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/graphics/zbar/default.nix b/pkgs/tools/graphics/zbar/default.nix
index e17580d9c000e..b75df56e43277 100644
--- a/pkgs/tools/graphics/zbar/default.nix
+++ b/pkgs/tools/graphics/zbar/default.nix
@@ -83,6 +83,8 @@ stdenv.mkDerivation rec {
     wrapQtApp "$out/bin/zbarcam-qt"
   '';
 
+  enableParallelBuilding = true;
+
   meta = with lib; {
     description = "Bar code reader";
     longDescription = ''