about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/graphics
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-01-15 10:30:44 +0000
committerAlyssa Ross <hi@alyssa.is>2021-01-15 10:30:44 +0000
commite0794be8a0d11e90461e5a9c85012a36b93ec976 (patch)
treeefd9cbc55ea3322867bf601c4d536758a3dd5fcc /nixpkgs/pkgs/applications/graphics
parent3538874082ded7647b1ccec0343c7c1e882cfef3 (diff)
parent1a57d96edd156958b12782e8c8b6a374142a7248 (diff)
downloadnixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.gz
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.bz2
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.lz
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.xz
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.zst
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.zip
Merge commit '1a57d96edd156958b12782e8c8b6a374142a7248'
Diffstat (limited to 'nixpkgs/pkgs/applications/graphics')
-rw-r--r--nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix5
-rw-r--r--nixpkgs/pkgs/applications/graphics/ImageMagick/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/graphics/akira/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/avocode/default.nix4
-rwxr-xr-xnixpkgs/pkgs/applications/graphics/batik/builder.sh7
-rw-r--r--nixpkgs/pkgs/applications/graphics/batik/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/graphics/c3d/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/graphics/cloudcompare/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/graphics/comical/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/cq-editor/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/graphics/darktable/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/deskew/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/graphics/digikam/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/graphics/drawio/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/drawpile/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/emulsion/default.nix85
-rw-r--r--nixpkgs/pkgs/applications/graphics/evilpixie/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/f3d/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/graphics/feh/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/graphics/fondo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/freecad/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/graphics/freecad/stable.nix85
-rw-r--r--nixpkgs/pkgs/applications/graphics/geeqie/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/graphics/gimp/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix125
-rw-r--r--nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/graphics/gnuclad/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/goxel/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/graphicsmagick/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/graphics/gthumb/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/hydrus/default.nix112
-rw-r--r--nixpkgs/pkgs/applications/graphics/img-cat/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/graphics/imgbrd-grabber/default.nix94
-rw-r--r--nixpkgs/pkgs/applications/graphics/imgp/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/imv/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/graphics/inkscape/extensions.nix6
-rw-r--r--nixpkgs/pkgs/applications/graphics/krita/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/ktikz/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/graphics/lazpaint/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/graphics/lightburn/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/graphics/mandelbulber/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/mcomix3/default.nix103
-rw-r--r--nixpkgs/pkgs/applications/graphics/meme/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/graphics/meshlab/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/ocrfeeder/default.nix73
-rw-r--r--nixpkgs/pkgs/applications/graphics/odafileconverter/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/graphics/paraview/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/graphics/pdfcpu/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/graphics/photoflare/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/graphics/photoflow/CMakeLists.patch13
-rw-r--r--nixpkgs/pkgs/applications/graphics/photoflow/default.nix70
-rw-r--r--nixpkgs/pkgs/applications/graphics/pinta/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/pqiv/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/qvge/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/graphics/qvge/set-graphviz-path.patch13
-rw-r--r--nixpkgs/pkgs/applications/graphics/qview/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/renderdoc/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/rx/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/unigine-valley/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/write_stylus/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/xlife/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/graphics/xournalpp/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/graphics/yacreader/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/yed/default.nix15
66 files changed, 965 insertions, 358 deletions
diff --git a/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix b/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix
index e7abc94a4264..558112763a23 100644
--- a/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix
+++ b/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix
@@ -10,11 +10,12 @@ let
     else if stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin" then "x86-64"
     else if stdenv.hostPlatform.system == "armv7l-linux" then "armv7l"
     else if stdenv.hostPlatform.system == "aarch64-linux" then "aarch64"
+    else if stdenv.hostPlatform.system == "powerpc64le-linux" then "ppc64le"
     else throw "ImageMagick is not supported on this platform.";
 
   cfg = {
-    version = "7.0.10-27";
-    sha256 = "1fqwbg2ws6ix3bymx7ncb4k4f6bg8q44n9xnlvngjapflnrmhcph";
+    version = "7.0.10-46";
+    sha256 = "019l1qv8ds8hvyjwi1g21293a7v28bxf8ycnvr9828kpdhf4jxaa";
     patches = [];
   };
 in
diff --git a/nixpkgs/pkgs/applications/graphics/ImageMagick/default.nix b/nixpkgs/pkgs/applications/graphics/ImageMagick/default.nix
index 7a2ae8e4d66f..0222efff6429 100644
--- a/nixpkgs/pkgs/applications/graphics/ImageMagick/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/ImageMagick/default.nix
@@ -10,11 +10,12 @@ let
     else if stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin" then "x86-64"
     else if stdenv.hostPlatform.system == "armv7l-linux" then "armv7l"
     else if stdenv.hostPlatform.system == "aarch64-linux" then "aarch64"
+    else if stdenv.hostPlatform.system == "powerpc64le-linux" then "ppc64le"
     else throw "ImageMagick is not supported on this platform.";
 
   cfg = {
-    version = "6.9.11-14";
-    sha256 = "0x51vf48g75cfp0mbwf3ckmlwa6v00592xx3gvrqzjzx7vlayjyg";
+    version = "6.9.11-29";
+    sha256 = "0adjdpi91ya0g3v7y503n95833m25aibkim5swg5lnwjrba407hg";
     patches = [];
   }
     # Freeze version on mingw so we don't need to port the patch too often.
diff --git a/nixpkgs/pkgs/applications/graphics/akira/default.nix b/nixpkgs/pkgs/applications/graphics/akira/default.nix
index 4038d653a3da..4d0cc46bb596 100644
--- a/nixpkgs/pkgs/applications/graphics/akira/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/akira/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
     description = "Native Linux Design application built in Vala and GTK";
     homepage = "https://github.com/akiraux/Akira";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ filalex77 neonfuz ] ++ pantheon.maintainers;
+    maintainers = with maintainers; [ Br1ght0ne neonfuz ] ++ pantheon.maintainers;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/avocode/default.nix b/nixpkgs/pkgs/applications/graphics/avocode/default.nix
index 53779041fc90..6d4fa501710d 100644
--- a/nixpkgs/pkgs/applications/graphics/avocode/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/avocode/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "avocode";
-  version = "4.7.0";
+  version = "4.10.4";
 
   src = fetchurl {
     url = "https://media.avocode.com/download/avocode-app/${version}/avocode-${version}-linux.zip";
-    sha256 = "0kn0422k4vi2qifasnkd0cjf5l6z0rmkqv6l46ygxk3qyykjnqcm";
+    sha256 = "06xf5y2mljk3pd74ap9n90bhhidbzpg5c6wws361ygd4f3x86c46";
   };
 
   libPath = stdenv.lib.makeLibraryPath (with xorg; [
diff --git a/nixpkgs/pkgs/applications/graphics/batik/builder.sh b/nixpkgs/pkgs/applications/graphics/batik/builder.sh
deleted file mode 100755
index c6cf64bf3700..000000000000
--- a/nixpkgs/pkgs/applications/graphics/batik/builder.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-set -e
-
-source $stdenv/setup
-
-unzip $src
-mkdir $out
-mv batik-* $out/batik
diff --git a/nixpkgs/pkgs/applications/graphics/batik/default.nix b/nixpkgs/pkgs/applications/graphics/batik/default.nix
index 3c78c8b6dbd2..52a2589b409c 100644
--- a/nixpkgs/pkgs/applications/graphics/batik/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/batik/default.nix
@@ -1,25 +1,23 @@
-{stdenv, fetchurl, unzip}:
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  pname = "batik";
+  version = "1.13";
 
-stdenv.mkDerivation {
-  name = "batik-1.6";
-  builder = ./builder.sh;
   src = fetchurl {
-    url = "http://tarballs.nixos.org/batik-1.6.zip";
-    sha256 = "0cf15dspmzcnfda8w5lbsdx28m4v2rpq1dv5zx0r0n99ihqd1sh6";
+    url = "mirror://apache/xmlgraphics/batik/binaries/batik-bin-${version}.tar.gz";
+    sha256 = "16sq90nbs6psgm3xz30sbs6r5dnpd3qzsvr1xvnp4yipwjcmhmkw";
   };
 
-  buildInputs = [unzip];
-
   meta = with stdenv.lib; {
     description = "Java based toolkit for handling SVG";
     homepage = "https://xmlgraphics.apache.org/batik";
     license = licenses.asl20;
     platforms = platforms.unix;
-    knownVulnerabilities = [
-      # vulnerabilities as of 16th October 2018 from https://xmlgraphics.apache.org/security.html:
-      "CVE-2018-8013"
-      "CVE-2017-5662"
-      "CVE-2015-0250"
-    ];
   };
+
+  installPhase = ''
+    mkdir $out
+    cp -r * $out/
+  '';
 }
diff --git a/nixpkgs/pkgs/applications/graphics/c3d/default.nix b/nixpkgs/pkgs/applications/graphics/c3d/default.nix
index 61efec8dc9d4..425ede037593 100644
--- a/nixpkgs/pkgs/applications/graphics/c3d/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/c3d/default.nix
@@ -1,13 +1,14 @@
-{ stdenv, fetchgit, cmake, itk4, Cocoa }:
+{ stdenv, fetchFromGitHub, cmake, itk4, Cocoa }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname   = "c3d";
-  version = "unstable-2019-10-22";
+  version = "unstable-2020-10-05";
 
-  src = fetchgit {
-    url    = "https://github.com/pyushkevich/c3d";
-    rev    = "c04e2b84568654665c64d8843378c8bbd58ba9b0";
-    sha256 = "0lzldxvshl9q362mg76byc7s5zc9qx7mxf2wgyij5vysx8mihx3q";
+  src = fetchFromGitHub {
+    owner = "pyushkevich";
+    repo = pname;
+    rev = "0a87e3972ea403babbe2d05ec6d50855e7c06465";
+    sha256 = "0wsmkifqrcfy13fnwvinmnq1m0lkqmpyg7bgbwnb37mbrlbq06wf";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -15,11 +16,11 @@ stdenv.mkDerivation {
     ++ stdenv.lib.optional stdenv.isDarwin Cocoa;
 
   meta = with stdenv.lib; {
-    homepage = "http://www.itksnap.org/c3d";
+    homepage = "https://github.com/pyushkevich/c3d";
     description = "Medical imaging processing tool";
     maintainers = with maintainers; [ bcdarwin ];
     platforms = platforms.unix;
-    license = licenses.gpl2;
+    license = licenses.gpl3;
     broken = stdenv.isAarch64;
     # /build/git-3453f61/itkextras/OneDimensionalInPlaceAccumulateFilter.txx:311:10: fatal error: xmmintrin.h: No such file or directory
   };
diff --git a/nixpkgs/pkgs/applications/graphics/cloudcompare/default.nix b/nixpkgs/pkgs/applications/graphics/cloudcompare/default.nix
index 209a6a4753b1..26fabc364ba3 100644
--- a/nixpkgs/pkgs/applications/graphics/cloudcompare/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/cloudcompare/default.nix
@@ -18,17 +18,17 @@
 
 mkDerivation rec {
   pname = "cloudcompare";
-  version = "2.11.0";
+  version = "2.11.2";
 
   src = fetchFromGitHub {
     owner = "CloudCompare";
     repo = "CloudCompare";
     rev = "v${version}";
-    sha256 = "02ahhhivgb9k1aygw1m35wdvhaizag1r98mb0r6zzrs5p4y64wlb";
+    sha256 = "0sb2h08iaf6zrf54sg6ql6wm63q5vq0kpd3gffdm26z8w6j6wv3s";
     # As of writing includes (https://github.com/CloudCompare/CloudCompare/blob/a1c589c006fc325e8b560c77340809b9c7e7247a/.gitmodules):
     # * libE57Format
     # * PoissonRecon
-    # In > 2.11 it will also contain
+    # In a future version it will also contain
     # * CCCoreLib
     fetchSubmodules = true;
   };
@@ -53,7 +53,7 @@ mkDerivation rec {
   ];
 
   cmakeFlags = [
-    # TODO: This will become -DCCCORELIB_USE_TBB=ON in > 2.11.0, see
+    # TODO: This will become -DCCCORELIB_USE_TBB=ON in a future version, see
     #       https://github.com/CloudCompare/CloudCompare/commit/f5a0c9fd788da26450f3fa488b2cf0e4a08d255f
     "-DCOMPILE_CC_CORE_LIB_WITH_TBB=ON"
     "-DOPTION_USE_DXF_LIB=ON"
diff --git a/nixpkgs/pkgs/applications/graphics/comical/default.nix b/nixpkgs/pkgs/applications/graphics/comical/default.nix
index 8e6e151aff6a..800709de054a 100644
--- a/nixpkgs/pkgs/applications/graphics/comical/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/comical/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, wxGTK, utillinux, zlib }:
+{stdenv, fetchurl, wxGTK, util-linux, zlib }:
 
 stdenv.mkDerivation rec {
   name = "comical-0.8";
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
     url = "mirror://sourceforge/comical/${name}.tar.gz";
     sha256 = "0b6527cc06b25a937041f1eb248d0fd881cf055362097036b939817f785ab85e";
   };
-  buildInputs = [ wxGTK utillinux zlib ];
+  buildInputs = [ wxGTK util-linux zlib ];
   preBuild="makeFlags=\"prefix=$out\"";
 
   patches = [ ./wxgtk-2.8.patch ];
diff --git a/nixpkgs/pkgs/applications/graphics/cq-editor/default.nix b/nixpkgs/pkgs/applications/graphics/cq-editor/default.nix
index 036edf80ab90..cf94f4fa32d1 100644
--- a/nixpkgs/pkgs/applications/graphics/cq-editor/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/cq-editor/default.nix
@@ -2,6 +2,7 @@
 , mkDerivationWith
 , python3Packages
 , fetchFromGitHub
+, wrapQtAppsHook
 }:
 
 mkDerivationWith python3Packages.buildPythonApplication rec {
@@ -27,8 +28,9 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
     requests
   ];
 
-  postFixup = ''
-    wrapQtApp "$out/bin/cq-editor"
+  nativeBuildInputs = [ wrapQtAppsHook ];
+  preFixup = ''
+    makeWrapperArgs+=("''${qtWrapperArgs[@]}")
   '';
 
   checkInputs = with python3Packages; [
diff --git a/nixpkgs/pkgs/applications/graphics/darktable/default.nix b/nixpkgs/pkgs/applications/graphics/darktable/default.nix
index 71c2de08a569..27d4a4ab0e2e 100644
--- a/nixpkgs/pkgs/applications/graphics/darktable/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/darktable/default.nix
@@ -7,12 +7,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.2.1";
+  version = "3.4.0";
   pname = "darktable";
 
   src = fetchurl {
     url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
-    sha256 = "035rvqmw386hm0jpi14lf4dnpr5rjkalzjkyprqh42nwi3m86dkf";
+    sha256 = "6dd3de1f5ea9f94af92838c0be5ff30fdaa599aa1d737dcb562f9e0b2b2dbdda";
   };
 
   nativeBuildInputs = [ cmake ninja llvm pkgconfig intltool perl desktop-file-utils wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/graphics/deskew/default.nix b/nixpkgs/pkgs/applications/graphics/deskew/default.nix
index 422c7a0e15e8..6af6d93477a5 100644
--- a/nixpkgs/pkgs/applications/graphics/deskew/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/deskew/default.nix
@@ -1,13 +1,13 @@
-{ stdenv, fetchFromBitbucket, libtiff, fpc }:
+{ stdenv, fetchFromGitHub, libtiff, fpc }:
 
 stdenv.mkDerivation rec {
 
   pname = "deskew";
   version = "1.25";
 
-  src = fetchFromBitbucket {
+  src = fetchFromGitHub {
     owner = "galfar";
-    repo = "app-deskew";
+    repo = pname;
     rev = "v${version}";
     sha256 = "0zjjj66qhgqkmfxl3q7p78dv4xl4ci918pgl4d5259pqdj1bfgc8";
   };
diff --git a/nixpkgs/pkgs/applications/graphics/digikam/default.nix b/nixpkgs/pkgs/applications/graphics/digikam/default.nix
index 52de023e1681..1e4b397db231 100644
--- a/nixpkgs/pkgs/applications/graphics/digikam/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/digikam/default.nix
@@ -39,7 +39,7 @@
 , marble
 , libGL
 , libGLU
-, opencv3
+, opencv
 , pcre
 , threadweaver
 , x265
@@ -83,7 +83,7 @@ mkDerivation rec {
     libusb1
     libGL
     libGLU
-    opencv3
+    opencv
     pcre
     x265
 
@@ -118,9 +118,12 @@ mkDerivation rec {
     "-DENABLE_QWEBENGINE=on"
   ];
 
+  dontWrapGApps = true;
+
   preFixup = ''
-    gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ gnumake hugin enblend-enfuse ]})
-    gappsWrapperArgs+=(--suffix DK_PLUGIN_PATH : ${placeholder "out"}/${qtbase.qtPluginPrefix}/${pname})
+    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
+    qtWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ gnumake hugin enblend-enfuse ]})
+    qtWrapperArgs+=(--suffix DK_PLUGIN_PATH : ${placeholder "out"}/${qtbase.qtPluginPrefix}/${pname})
     substituteInPlace $out/bin/digitaglinktree \
       --replace "/usr/bin/perl" "${perl}/bin/perl" \
       --replace "/usr/bin/sqlite3" "${sqlite}/bin/sqlite3"
diff --git a/nixpkgs/pkgs/applications/graphics/drawio/default.nix b/nixpkgs/pkgs/applications/graphics/drawio/default.nix
index 5a5ce5d8b210..0bb4364d6fa9 100644
--- a/nixpkgs/pkgs/applications/graphics/drawio/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/drawio/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "drawio";
-  version = "13.7.3";
+  version = "14.1.5";
 
   src = fetchurl {
     url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm";
-    sha256 = "14wcj9jbpv1rg0g7djihzzq088aj96mwys4rc9540ajbkbbm9d36";
+    hash = "sha256-dM/DGtUDnJBD4Cfhm/zbxfgBhUcIlEzlF4z3cmQuW14=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/graphics/drawpile/default.nix b/nixpkgs/pkgs/applications/graphics/drawpile/default.nix
index e210d03406b7..cf37512ad9f5 100644
--- a/nixpkgs/pkgs/applications/graphics/drawpile/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/drawpile/default.nix
@@ -74,7 +74,7 @@ in mkDerivation rec {
   src = fetchFromGitHub {
     owner = "drawpile";
     repo = "drawpile";
-    rev = "${version}";
+    rev = version;
     sha256 = "sha256-AFFY+FcY9ExAur13OoWR9285RZtBe6jnRIrwi5raiCM=";
   };
 
diff --git a/nixpkgs/pkgs/applications/graphics/emulsion/default.nix b/nixpkgs/pkgs/applications/graphics/emulsion/default.nix
new file mode 100644
index 000000000000..ba7ebfcfdff6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/emulsion/default.nix
@@ -0,0 +1,85 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, rustPlatform
+, installShellFiles
+, makeWrapper
+, pkg-config
+, python3
+, libGL
+, libX11
+, libXcursor
+, libXi
+, libXrandr
+, libXxf86vm
+, libxcb
+, libxkbcommon
+, wayland
+, xdg_utils
+, AppKit
+, CoreGraphics
+, CoreServices
+, Foundation
+, OpenGL
+}:
+let
+  rpathLibs = [
+    libGL
+    libX11
+    libXcursor
+    libXi
+    libXrandr
+    libXxf86vm
+    libxcb
+  ] ++ lib.optionals stdenv.isLinux [
+    libxkbcommon
+    wayland
+  ];
+in
+rustPlatform.buildRustPackage rec {
+  pname = "emulsion";
+  version = "7.2";
+
+  src = fetchFromGitHub {
+    owner = "ArturKovacs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1king04p5j4gsvprrfppwaxa5jn4ga4nc0v63wl6fvq2ngwnkg4g";
+  };
+
+  cargoSha256 = "19vb2q5w3063l7349p1b8q40n97a4hxdvc7h7qsx1iiwp75knbd0";
+
+  nativeBuildInputs = [
+    installShellFiles
+    makeWrapper
+    pkg-config
+    python3
+  ];
+
+  buildInputs = rpathLibs ++ lib.optionals stdenv.isDarwin [
+    AppKit
+    CoreGraphics
+    CoreServices
+    Foundation
+    OpenGL
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -D $releaseDir/emulsion $out/bin/emulsion
+  '' + lib.optionalString stdenv.isLinux ''
+      patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}" $out/bin/emulsion
+  '' + ''
+    runHook postInstall
+  '';
+
+  dontPatchELF = true;
+
+  meta = with lib; {
+    description = "A fast and minimalistic image viewer";
+    homepage = "https://arturkovacs.github.io/emulsion-website/";
+    maintainers = [ maintainers.magnetophon ];
+    platforms = platforms.unix;
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/evilpixie/default.nix b/nixpkgs/pkgs/applications/graphics/evilpixie/default.nix
index 1f6a52aa0b0c..4c47283c42ac 100644
--- a/nixpkgs/pkgs/applications/graphics/evilpixie/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/evilpixie/default.nix
@@ -22,13 +22,13 @@ let
 
 in mkDerivation rec {
   pname = "evilpixie";
-  version = "0.2";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "bcampbell";
     repo = "evilpixie";
     rev = "v${version}";
-    sha256 = "1yg4ic3kcxqmr7k5bbvrv5iavlnhpdx6510z5wha9k9k5q9c4dvh";
+    sha256 = "0dwgfr8kmkfppgf5wx9i5f7fjz3gxk0ji1l06x1z4r3vj52hdbph";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/graphics/f3d/default.nix b/nixpkgs/pkgs/applications/graphics/f3d/default.nix
new file mode 100644
index 000000000000..c81ba1240173
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/f3d/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitLab, cmake, vtk_9, libX11, libGL, Cocoa, OpenGL }:
+
+stdenv.mkDerivation rec {
+  pname = "f3d";
+  version = "1.0.1";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.kitware.com";
+    owner = "f3d";
+    repo = "f3d";
+    rev = "v${version}";
+    sha256 = "0a6r0jspkhl735f6zmnhby1g4dlmjqd5izgsp5yfdcdhqj4j63mg";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ vtk_9 ]
+    ++ stdenv.lib.optionals stdenv.isLinux [ libGL libX11 ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa OpenGL ];
+
+  meta = with stdenv.lib; {
+    description = "Fast and minimalist 3D viewer using VTK";
+    homepage = "https://kitware.github.io/F3D";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ bcdarwin ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/feh/default.nix b/nixpkgs/pkgs/applications/graphics/feh/default.nix
index 82128f81353f..a7d26f5300a6 100644
--- a/nixpkgs/pkgs/applications/graphics/feh/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/feh/default.nix
@@ -1,17 +1,17 @@
 { stdenv, fetchurl, makeWrapper
 , xorg, imlib2, libjpeg, libpng
 , curl, libexif, jpegexiforient, perlPackages
-, enableAutoreload ? true }:
+, enableAutoreload ? !stdenv.hostPlatform.isDarwin }:
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "feh";
-  version = "3.5";
+  version = "3.6.1";
 
   src = fetchurl {
     url = "https://feh.finalrewind.org/${pname}-${version}.tar.bz2";
-    sha256 = "07jklibpi4ig9pbdrwhllsfffxn2h8xf4ma36qii00w4hb69v3rq";
+    sha256 = "1a0ygdpyvpcsr0hdi9ai7ycbkgvacq8dpd8cacbppsds5k2xw7lv";
   };
 
   outputs = [ "out" "man" "doc" ];
diff --git a/nixpkgs/pkgs/applications/graphics/fondo/default.nix b/nixpkgs/pkgs/applications/graphics/fondo/default.nix
index e80fbee1b71e..73cfdccea816 100644
--- a/nixpkgs/pkgs/applications/graphics/fondo/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/fondo/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fondo";
-  version = "1.3.9";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "calo001";
     repo = pname;
     rev = version;
-    sha256 = "1gyi80j2c38j62miv8a8nsx1pad169sa4fx0b85m2yv0x7fz492w";
+    sha256 = "1zmrpk0b5z6m956j923njn6dpqdm2p8653a325hgjjjq0sgwbhj2";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/graphics/freecad/default.nix b/nixpkgs/pkgs/applications/graphics/freecad/default.nix
index f9322add5c09..f1e366b65699 100644
--- a/nixpkgs/pkgs/applications/graphics/freecad/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/freecad/default.nix
@@ -9,13 +9,13 @@ let
   pythonPackages = python3Packages;
 in mkDerivation rec {
   pname = "freecad-unstable";
-  version = "2020-09-25";
+  version = "2020-12-08";
 
   src = fetchFromGitHub {
     owner = "FreeCAD";
     repo = "FreeCAD";
-    rev = "7616153b3c31ace006169cdc2fdafab484498858";
-    sha256 = "1vffvzv3gkndfj2k8ik0afyk9rgngnr4aai5py66qd63qd7kmxch";
+    rev = "daea30341ea2d5eaf2bfb65614128a5fa2abc8b7";
+    sha256 = "1fza64lygqq35v7kzgqmiq5dvl5rpgkhlzv06f9dszdz44hznina";
   };
 
   nativeBuildInputs = [
@@ -32,6 +32,7 @@ in mkDerivation rec {
     libGLU libXmu qtbase qttools qtwebengine qtxmlpatterns
   ] ++ (with pythonPackages; [
     matplotlib pycollada shiboken2 pyside2 pyside2-tools pivy python boost
+    GitPython # for addon manager
   ]);
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/applications/graphics/freecad/stable.nix b/nixpkgs/pkgs/applications/graphics/freecad/stable.nix
deleted file mode 100644
index 657caeca8b3d..000000000000
--- a/nixpkgs/pkgs/applications/graphics/freecad/stable.nix
+++ /dev/null
@@ -1,85 +0,0 @@
-{ stdenv, mkDerivation, fetchFromGitHub, fetchpatch, cmake, ninja, coin3d,
-xercesc, ode, eigen, qtbase, qttools, qtwebkit, wrapQtAppsHook,
-opencascade-occt, gts, hdf5, vtk, medfile, zlib, python3Packages, swig,
-gfortran, libXmu, soqt, libf2c, libGLU, makeWrapper, pkgconfig, mpi ? null }:
-
-assert mpi != null;
-
-let
-  pythonPackages = python3Packages;
-in mkDerivation rec {
-  pname = "freecad";
-  version = "0.18.4";
-
-  src = fetchFromGitHub {
-    owner = "FreeCAD";
-    repo = "FreeCAD";
-    rev = version;
-    sha256 = "1phs9a0px5fnzpyx930cz39p5dis0f0yajxzii3c3sazgkzrd55s";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    ninja
-    pkgconfig
-    pythonPackages.pyside2-tools
-    wrapQtAppsHook
-  ];
-
-  buildInputs = [
-    cmake coin3d xercesc ode eigen opencascade-occt gts
-    zlib swig gfortran soqt libf2c makeWrapper mpi vtk hdf5 medfile
-    libGLU libXmu qtbase qttools qtwebkit
-  ] ++ (with pythonPackages; [
-    matplotlib pycollada shiboken2 pyside2 pyside2-tools pivy python boost
-  ]);
-
-  # Fix missing app icon on Wayland. Has been upstreamed and should be safe to
-  # remove in versions >= 0.19
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/FreeCAD/FreeCAD/commit/c4d2a358ca125d51d059dfd72dcbfba326196dfc.patch";
-      sha256 = "0yqc9zrxgi2c2xcidm8wh7a9yznkphqvjqm9742qm5fl20p8gl4h";
-    })
-  ];
-
-  cmakeFlags = [
-    "-DBUILD_QT5=ON"
-    "-DSHIBOKEN_INCLUDE_DIR=${pythonPackages.shiboken2}/include"
-    "-DSHIBOKEN_LIBRARY=Shiboken2::libshiboken"
-    ("-DPYSIDE_INCLUDE_DIR=${pythonPackages.pyside2}/include"
-      + ";${pythonPackages.pyside2}/include/PySide2/QtCore"
-      + ";${pythonPackages.pyside2}/include/PySide2/QtWidgets"
-      + ";${pythonPackages.pyside2}/include/PySide2/QtGui"
-      )
-    "-DPYSIDE_LIBRARY=PySide2::pyside2"
-  ];
-
-  # This should work on both x86_64, and i686 linux
-  preBuild = ''
-    export NIX_LDFLAGS="-L${gfortran.cc}/lib64 -L${gfortran.cc}/lib $NIX_LDFLAGS";
-  '';
-
-  # Their main() removes PYTHONPATH=, and we rely on it.
-  preConfigure = ''
-    sed '/putenv("PYTHONPATH/d' -i src/Main/MainGui.cpp
-
-    qtWrapperArgs+=(--prefix PYTHONPATH : "$PYTHONPATH")
-  '';
-
-  qtWrapperArgs = [
-    "--set COIN_GL_NO_CURRENT_CONTEXT_CHECK 1"
-  ];
-
-  postFixup = ''
-    mv $out/share/doc $out
-  '';
-
-  meta = with stdenv.lib; {
-    description = "General purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler";
-    homepage = "https://www.freecadweb.org/";
-    license = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ viric gebner ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/graphics/geeqie/default.nix b/nixpkgs/pkgs/applications/graphics/geeqie/default.nix
index 51c066196efd..629abb3321d5 100644
--- a/nixpkgs/pkgs/applications/graphics/geeqie/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/geeqie/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "geeqie";
-  version = "1.4";
+  version = "1.5.1";
 
   src = fetchurl {
     url = "http://geeqie.org/${pname}-${version}.tar.xz";
-    sha256 = "0ciygvcxb78pqg59r6p061mkbpvkgv2rv3r79j3kgv3kalb3ln2w";
+    sha256 = "02m1vqaasin249xx792cdj11xyag8lnanwzxd108y7y34g9xam28";
   };
 
   patches = [
@@ -19,12 +19,6 @@ stdenv.mkDerivation rec {
       url = "https://src.fedoraproject.org/rpms/geeqie/raw/132fb04a1a5e74ddb333d2474f7edb9a39dc8d27/f/geeqie-1.4-goodbye-changelog.patch";
       sha256 = "00a35dds44kjjdqsbbfk0x9y82jspvsbpm2makcm1ivzlhjjgszn";
     })
-    # Fixes build with exiv2 0.27.1
-    (fetchpatch {
-      name = "geeqie-exiv2-0.27.patch";
-      url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/geeqie-exiv2-0.27.patch?h=packages/geeqie&id=dee28a8b3e9039b9cd6927b5a93ef2a07cd8271d";
-      sha256 = "05skpbyp8pcq92psgijyccc8liwfy2cpwprw6m186pf454yb5y9p";
-    })
   ];
 
   preConfigure = "./autogen.sh";
@@ -32,6 +26,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig autoconf automake gettext intltool
     wrapGAppsHook
   ];
+
   buildInputs = [
     gtk3 lcms2 exiv2 libchamplain clutter-gtk ffmpegthumbnailer fbida
   ];
@@ -63,7 +58,7 @@ stdenv.mkDerivation rec {
 
     homepage = "http://geeqie.sourceforge.net";
 
-    maintainers = with maintainers; [ jfrankenau pSub ];
+    maintainers = with maintainers; [ jfrankenau pSub markus1189 ];
     platforms = platforms.gnu ++ platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/gimp/default.nix b/nixpkgs/pkgs/applications/graphics/gimp/default.nix
index 6ec15bf02ab2..4ba7cb8eb036 100644
--- a/nixpkgs/pkgs/applications/graphics/gimp/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gimp/default.nix
@@ -52,13 +52,13 @@ let
   python = python2.withPackages (pp: [ pp.pygtk ]);
 in stdenv.mkDerivation rec {
   pname = "gimp";
-  version = "2.10.20";
+  version = "2.10.22";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "http://download.gimp.org/pub/gimp/v${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
-    sha256 = "4S+fh0saAHxCd7YKqB4LZzML5+YVPldJ6tg5uQL8ezw=";
+    sha256 = "1fqqyshakvdarf1jipk2n33ibqr23ni22z3d8srq13bpydblpf1d";
   };
 
   patches = [
@@ -163,8 +163,10 @@ in stdenv.mkDerivation rec {
     # The declarations for `gimp-with-plugins` wrapper,
     # used for determining plug-in installation paths
     majorVersion = "${lib.versions.major version}.0";
-    targetPluginDir = "lib/gimp/${majorVersion}/plug-ins";
-    targetScriptDir = "share/gimp/${majorVersion}/scripts";
+    targetLibDir = "lib/gimp/${majorVersion}";
+    targetDataDir = "share/gimp/${majorVersion}";
+    targetPluginDir = "${targetLibDir}/plug-ins";
+    targetScriptDir = "${targetDataDir}/scripts";
 
     # probably its a good idea to use the same gtk in plugins ?
     gtk = gtk2;
diff --git a/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix b/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
index 0b5e6a7f379f..84f5abfce063 100644
--- a/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
@@ -1,33 +1,51 @@
-# install these packages into your profile. Then add
-# ~/.nix-profile/gimp-version-plugins to your plugin list you can find at
-# preferences -> Folders -> Plug-ins
-# same applies for the scripts
+# Use `gimp-with-plugins` package for GIMP with all plug-ins.
+# If you just want a subset of plug-ins, you can specify them explicitly:
+# `gimp-with-plugins.override { plugins = with gimpPlugins; [ gap ]; }`.
+
+{ config, lib, pkgs }:
+
+let
+  inherit (pkgs) stdenv fetchurl pkg-config intltool glib fetchFromGitHub;
+in
+
+lib.makeScope pkgs.newScope (self:
 
-{ config, pkgs, gimp }:
 let
-  inherit (pkgs) stdenv fetchurl pkgconfig intltool glib fetchFromGitHub;
-  inherit (gimp) targetPluginDir targetScriptDir;
+  # Use GIMP from the scope.
+  inherit (self) gimp;
 
-  pluginDerivation = a: let
-    name = a.name or "${a.pname}-${a.version}";
+  pluginDerivation = attrs: let
+    name = attrs.name or "${attrs.pname}-${attrs.version}";
   in stdenv.mkDerivation ({
     prePhases = "extraLib";
     extraLib = ''
       installScripts(){
-        mkdir -p $out/${targetScriptDir}/${name};
-        for p in "$@"; do cp "$p" -r $out/${targetScriptDir}/${name}; done
+        mkdir -p $out/${gimp.targetScriptDir}/${name};
+        for p in "$@"; do cp "$p" -r $out/${gimp.targetScriptDir}/${name}; done
       }
       installPlugins(){
-        mkdir -p $out/${targetPluginDir}/${name};
-        for p in "$@"; do cp "$p" -r $out/${targetPluginDir}/${name}; done
+        mkdir -p $out/${gimp.targetPluginDir}/${name};
+        for p in "$@"; do cp "$p" -r $out/${gimp.targetPluginDir}/${name}; done
       }
     '';
+
+    # Override installation paths.
+    PKG_CONFIG_GIMP_2_0_GIMPLIBDIR = "${placeholder "out"}/${gimp.targetLibDir}";
+    PKG_CONFIG_GIMP_2_0_GIMPDATADIR = "${placeholder "out"}/${gimp.targetDataDir}";
   }
-  // a
+  // attrs
   // {
       name = "gimp-plugin-${name}";
-      buildInputs = [ gimp gimp.gtk glib ] ++ (a.buildInputs or []);
-      nativeBuildInputs = [ pkgconfig intltool ] ++ (a.nativeBuildInputs or []);
+      buildInputs = [
+        gimp
+        gimp.gtk
+        glib
+      ] ++ (attrs.buildInputs or []);
+
+      nativeBuildInputs = [
+        pkg-config
+        intltool
+      ] ++ (attrs.nativeBuildInputs or []);
     }
   );
 
@@ -35,10 +53,11 @@ let
     phases = [ "extraLib" "installPhase" ];
     installPhase = "installScripts ${src}";
   } // attrs);
-
 in
+{
+  # Allow overriding GIMP package in the scope.
+  inherit (pkgs) gimp;
 
-stdenv.lib.makeScope pkgs.newScope (self: with self; {
   gap = pluginDerivation {
     /* menu:
        Video
@@ -49,10 +68,6 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; {
       sha256 = "1jic7ixcmsn4kx2cn32nc5087rk6g8xsrz022xy11yfmgvhzb0ql";
     };
     NIX_LDFLAGS = "-lm";
-    patchPhase = ''
-      sed -e 's,^\(GIMP_PLUGIN_DIR=\).*,\1'"$out/${gimp.name}-plugins", \
-       -e 's,^\(GIMP_DATA_DIR=\).*,\1'"$out/share/${gimp.name}", -i configure
-    '';
     hardeningDisable = [ "format" ];
     meta = with stdenv.lib; {
       description = "The GIMP Animation Package";
@@ -85,22 +100,6 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; {
     };
   };
 
-  focusblur = pluginDerivation rec {
-    /* menu:
-       Blur/Focus Blur
-    */
-    name = "focusblur-3.2.6";
-    buildInputs = with pkgs; [ fftwSinglePrec ];
-    patches = [ ./patches/focusblur-glib.patch ];
-    postInstall = "fail";
-    installPhase = "installPlugins src/focusblur";
-    src = fetchurl {
-      url = "http://registry.gimp.org/files/${name}.tar.bz2";
-      sha256 = "1gqf3hchz7n7v5kpqkhqh8kwnxbsvlb5cr2w2n7ngrvl56f5xs1h";
-    };
-    meta.broken = true;
-  };
-
   resynthesizer = pluginDerivation rec {
     /* menu:
       Edit/Fill with pattern seamless...
@@ -115,7 +114,7 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; {
     version = "2.0.3";
     buildInputs = with pkgs; [ fftw ];
     nativeBuildInputs = with pkgs; [ autoreconfHook ];
-    makeFlags = [ "GIMP_LIBDIR=${placeholder "out"}/lib/gimp/2.0" ];
+    makeFlags = [ "GIMP_LIBDIR=${placeholder "out"}/${gimp.targetLibDir}" ];
     src = fetchFromGitHub {
       owner = "bootchk";
       repo = "resynthesizer";
@@ -143,24 +142,25 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; {
     name = "wavelet-sharpen-0.1.2";
     NIX_LDFLAGS = "-lm";
     src = fetchurl {
-      url = "http://registry.gimp.org/files/wavelet-sharpen-0.1.2.tar.gz";
+      url = "https://github.com/pixlsus/registry.gimp.org_static/raw/master/registry.gimp.org/files/wavelet-sharpen-0.1.2.tar.gz";
       sha256 = "0vql1k67i21g5ivaa1jh56rg427m0icrkpryrhg75nscpirfxxqw";
     };
     installPhase = "installPlugins src/wavelet-sharpen"; # TODO translations are not copied .. How to do this on nix?
   };
 
-  lqrPlugin = pluginDerivation {
+  lqrPlugin = pluginDerivation rec {
     /* menu:
        Layer/Liquid Rescale
     */
-    name = "lqr-plugin-0.6.1";
+    pname = "lqr-plugin";
+    version = "0.7.2";
     buildInputs = with pkgs; [ liblqr1 ];
-    src = fetchurl {
-      url = "http://registry.gimp.org/files/gimp-lqr-plugin-0.6.1.tar.bz2";
-      sha256 = "00hklkpcimcbpjly4rjhfipaw096cpy768g9wixglwrsyqhil7l9";
+    src = fetchFromGitHub {
+      owner = "carlobaldassi";
+      repo = "gimp-lqr-plugin";
+      rev = "v${version}";
+      sha256 = "81ajdZ2zQi/THxnBlSeT36tVTEzrS1YqLGpHMhFTKAo=";
     };
-    #postInstall = ''mkdir -p $out/nix-support; echo "${liblqr1}" > "$out/nix-support/propagated-user-env-packages"'';
-    installPhase = "installPlugins src/gimp-lqr-plugin";
   };
 
   gmic = pkgs.gmic-qt.override {
@@ -212,37 +212,8 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; {
   lightning = scriptDerivation {
     name = "Lightning";
     src = fetchurl {
-      url = "http://registry.gimp.org/files/Lightning.scm";
+      url = "https://github.com/pixlsus/registry.gimp.org_static/raw/master/registry.gimp.org/files/Lightning.scm";
       sha256 = "c14a8f4f709695ede3f77348728a25b3f3ded420da60f3f8de3944b7eae98a49";
     };
   };
-
-  /* space in name trouble ?
-
-  rainbowPlasma = scriptDerivation {
-    # http://registry.gimp.org/node/164
-    name = "rainbow-plasma";
-    src = fetchurl {
-      url = "http://registry.gimp.org/files/Rainbow Plasma.scm";
-      sha256 = "34308d4c9441f9e7bafa118af7ec9540f10ea0df75e812e2f3aa3fd7b5344c23";
-      name = "Rainbow-Plasma.scm"; # nix doesn't like spaces, does it?
-    };
-  };
-  */
-
-  /* doesn't seem to be working :-(
-  lightningGate = scriptDerivation {
-    # http://registry.gimp.org/node/153
-    name = "lightning-gate";
-    src = fetchurl {
-      url = "http://registry.gimp.org/files/LightningGate.scm";
-      sha256 = "181w1zi9a99kn2mfxjp43wkwcgw5vbb6iqjas7a9mhm8p04csys2";
-    };
-  };
-  */
-
-} // stdenv.lib.optionalAttrs (config.allowAliases or true) {
-
-  resynthesizer2 = resynthesizer;
-
 })
diff --git a/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix b/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix
index 841728d3a294..7e8ce913f022 100644
--- a/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix
+++ b/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix
@@ -2,7 +2,7 @@
 
 let
 allPlugins = lib.filter (pkg: lib.isDerivation pkg && !pkg.meta.broken or false) (lib.attrValues gimpPlugins);
-selectedPlugins = if plugins == null then allPlugins else plugins;
+selectedPlugins = lib.filter (pkg: pkg != gimpPlugins.gimp) (if plugins == null then allPlugins else plugins);
 extraArgs = map (x: x.wrapArgs or "") selectedPlugins;
 versionBranch = stdenv.lib.versions.majorMinor gimp.version;
 
diff --git a/nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix b/nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix
index 337b8f4cba6c..0d4b06c8c6d5 100644
--- a/nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchurl
+, fetchpatch
 , at-spi2-core
 , babl
 , dbus
@@ -35,17 +36,32 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-photos";
-  version = "3.34.2";
+  version = "3.38.0";
 
   outputs = [ "out" "installedTests" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w";
+    sha256 = "1i64w69kk3sdf9vn7npnwrhy8qjwn0vizq200x3pgmbrfm3kjzv6";
   };
 
   patches = [
     ./installed-tests-path.patch
+
+    # Port to Tracker 3
+    # https://gitlab.gnome.org/GNOME/gnome-photos/-/merge_requests/135
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-photos/commit/f39a85bb1a82093f4ba615494ff7e95609674fc2.patch";
+      sha256 = "M5r5WuB1JpUBVN3KxNvpMiPWj0pIpT+ImQMOiGtUgT4=";
+    })
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-photos/commit/3d847ff80d429cadf0bc59aa50caa37bf27c0201.patch";
+      sha256 = "zGjSL1qpWVJ/5Ifgh2CbhFSBR/WDAra8F+YUOemyxyU=";
+    })
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-photos/commit/2eb923726147b05c936dee64b205d833525db1df.patch";
+      sha256 = "vCA6NXHzmNf2GoLqzWwIyziC6puJgJ0QTLeKWsAEFAE=";
+    })
   ];
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/graphics/gnuclad/default.nix b/nixpkgs/pkgs/applications/graphics/gnuclad/default.nix
index fcb4bdb53743..c36d576cc8e2 100644
--- a/nixpkgs/pkgs/applications/graphics/gnuclad/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gnuclad/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     homepage = "https://launchpad.net/gnuclad";
-    description = "gnuclad tries to help the environment by creating trees.  It's primary use will be generating cladogram trees for the GNU/Linux distro timeline project.";
+    description = "gnuclad tries to help the environment by creating trees.  Its primary use will be generating cladogram trees for the GNU/Linux distro timeline project";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ mog ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/graphics/goxel/default.nix b/nixpkgs/pkgs/applications/graphics/goxel/default.nix
index 40d0f4a3db8a..771109fb55d2 100644
--- a/nixpkgs/pkgs/applications/graphics/goxel/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/goxel/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "goxel";
-  version = "0.10.6";
+  version = "0.10.7";
 
   src = fetchFromGitHub {
     owner = "guillaumechereau";
     repo = "goxel";
     rev = "v${version}";
-    sha256 = "1wmxy5wfk1xrqgz0y0zcr4vkddylqc70cv4vzk117x6whjnldsm3";
+    sha256 = "1v6m6nhl1if8ik5bmblhq46bip6y2qz18a04s8a9awb4yh9ls039";
   };
 
   patches = [ ./disable-imgui_ini.patch ];
diff --git a/nixpkgs/pkgs/applications/graphics/graphicsmagick/default.nix b/nixpkgs/pkgs/applications/graphics/graphicsmagick/default.nix
index b7a1a8c4a6f9..b8b21e71c930 100644
--- a/nixpkgs/pkgs/applications/graphics/graphicsmagick/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/graphicsmagick/default.nix
@@ -24,10 +24,10 @@ stdenv.mkDerivation rec {
   buildInputs =
     [ bzip2 freetype ghostscript graphviz libjpeg libpng libtiff libX11 libxml2
       zlib libtool libwebp
-    ]
-    ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
+    ];
 
-  nativeBuildInputs = [ xz ];
+  nativeBuildInputs = [ xz ]
+    ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
 
   postInstall = ''
     sed -i 's/-ltiff.*'\'/\'/ $out/bin/*
diff --git a/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix b/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix
index 2906026c48f3..5125df7b7dae 100644
--- a/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix
@@ -10,11 +10,11 @@ with stdenv.lib;
 
 perlPackages.buildPerlPackage rec {
   pname = "gscan2pdf";
-  version = "2.8.1";
+  version = "2.9.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/gscan2pdf/${version}/${pname}-${version}.tar.xz";
-    sha256 = "00g2vw7lz3yb4nq358x8d3r4mf3hkrq2vw1g9lli27zdp5p6jja1";
+    sha256 = "1ls6n1a8vjgwkb40drpc3rapjligaf9fp218539fnwvhv26div69";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
@@ -29,6 +29,7 @@ perlPackages.buildPerlPackage rec {
       Glib
       GlibObjectIntrospection
       GooCanvas2
+      LocaleCodes
       LocaleGettext
       PDFAPI2
       ImageSane
diff --git a/nixpkgs/pkgs/applications/graphics/gthumb/default.nix b/nixpkgs/pkgs/applications/graphics/gthumb/default.nix
index 27e8e00bdb3a..7dbe03d9f281 100644
--- a/nixpkgs/pkgs/applications/graphics/gthumb/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gthumb/default.nix
@@ -33,11 +33,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gthumb";
-  version = "3.10.0";
+  version = "3.10.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0j7cxp4hhkvkckyvll6pmqkv5rwrknlzq9j1my0grb01b8wzhw9y";
+    sha256 = "0gm7q6n9lnjsdqpx5b0cqjayhzwnplqb6p5pshzhbfp2zqd2g9ss";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/graphics/hydrus/default.nix b/nixpkgs/pkgs/applications/graphics/hydrus/default.nix
new file mode 100644
index 000000000000..8e9998dde393
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/hydrus/default.nix
@@ -0,0 +1,112 @@
+{ stdenv
+, fetchFromGitHub
+, lzma
+, qt5
+, wrapQtAppsHook
+, miniupnpc_2
+, swftools
+, pythonPackages
+}:
+
+pythonPackages.buildPythonPackage {
+  pname = "hydrus";
+  version = "420";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "hydrusnetwork";
+    repo = "hydrus";
+    rev = "067c4862a0ed8dd9264b464c69975b520139809f";
+    sha256 = "12x0rv2yxsczdaxvpb5ggf4jwzjd1vd7ml0r61s4342zwvjrhji9";
+  };
+
+  nativeBuildInputs = [
+    wrapQtAppsHook
+  ];
+
+  propagatedBuildInputs = with pythonPackages; [
+    beautifulsoup4
+    html5lib
+    lxml
+    numpy
+    opencv4
+    pillow
+    psutil
+    pyopenssl
+    pyyaml
+    requests
+    send2trash
+    service-identity
+    twisted
+    lz4
+    lzma
+    pysocks
+    matplotlib
+    qtpy
+    pyside2
+  ];
+
+  checkInputs = with pythonPackages; [ nose httmock ];
+
+  # most tests are failing, presumably because we are not using test.py
+  checkPhase = ''
+    nosetests $src/hydrus/test  \
+    -e TestClientAPI \
+    -e TestClientConstants \
+    -e TestClientDaemons \
+    -e TestClientData \
+    -e TestClientDB \
+    -e TestClientDBDuplicates \
+    -e TestClientDBTags \
+    -e TestClientImageHandling \
+    -e TestClientImportOptions \
+    -e TestClientListBoxes \
+    -e TestClientMigration \
+    -e TestClientNetworking \
+    -e TestClientTags \
+    -e TestClientThreading \
+    -e TestDialogs \
+    -e TestFunctions \
+    -e TestHydrusNATPunch \
+    -e TestHydrusSerialisable \
+    -e TestHydrusServer \
+    -e TestHydrusSessions \
+    -e TestServer \
+  '';
+
+  extraOutputsToLink = [ "doc" ];
+
+  postPatch = ''
+    sed 's;os\.path\.join(\sHC\.BIN_DIR,.*;"${miniupnpc_2}/bin/upnpc";' \
+      -i ./hydrus/core/HydrusNATPunch.py
+
+    sed 's;os\.path\.join(\sHC\.BIN_DIR,.*;"${swftools}/bin/swfrender";' \
+      -i ./hydrus/core/HydrusFlashHandling.py
+  '';
+
+  #doCheck = true;
+
+  installPhase = ''
+    # Move the hydrus module and related directories
+    mkdir -p $out/${pythonPackages.python.sitePackages}
+    mv {hydrus,static} $out/${pythonPackages.python.sitePackages}
+    mv help $out/doc/
+
+    # install the hydrus binaries
+    mkdir -p $out/bin
+    install -m0755 server.py $out/bin/hydrus-server
+    install -m0755 client.py $out/bin/hydrus-client
+  '';
+
+  dontWrapQtApps = true;
+  preFixup = ''
+    makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Danbooru-like image tagging and searching system for the desktop";
+    license = licenses.wtfpl;
+    homepage = "https://hydrusnetwork.github.io/hydrus/";
+    maintainers = [ maintainers.evanjs ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/img-cat/default.nix b/nixpkgs/pkgs/applications/graphics/img-cat/default.nix
new file mode 100644
index 000000000000..a4985c4e2c70
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/img-cat/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "imgcat";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "trashhalo";
+    repo = "imgcat";
+    rev = "v${version}";
+    sha256 = "0x7a1izsbrbfph7wa9ny9r4a8lp6z15qpb6jf8wsxshiwnkjyrig";
+  };
+
+  vendorSha256 = "191gi4c5jk8p9xvbm1cdhk5yi8q2cp2jvjq1sgxqw1ad0lppwhg2";
+
+  meta = with lib; {
+    description = "A tool to output images as RGB ANSI graphics on the terminal";
+    homepage = "https://github.com/trashhalo/imgcat";
+    license = licenses.mit;
+    maintainers = with maintainers; [ penguwin ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/imgbrd-grabber/default.nix b/nixpkgs/pkgs/applications/graphics/imgbrd-grabber/default.nix
new file mode 100644
index 000000000000..22a35b3a4cc3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/imgbrd-grabber/default.nix
@@ -0,0 +1,94 @@
+{ stdenv
+, cmake
+, fetchFromGitHub
+, wrapQtAppsHook
+, qtmultimedia
+, qttools
+, qtscript
+, qtdeclarative
+, qtbase
+, autogen
+, automake
+, makeWrapper
+, catch2
+, nodejs
+, libpulseaudio
+, openssl
+, rsync
+, typescript
+}:
+stdenv.mkDerivation rec {
+  pname = "imgbrd-grabber";
+
+  version = "7.3.2";
+  src = fetchFromGitHub {
+    owner = "Bionus";
+    repo = "imgbrd-grabber";
+    rev = "v${version}";
+    sha256 = "053rwvcr88fcba0447a6r115cgnqsm9rl066z8d5jacqnhdij58k";
+    fetchSubmodules = true;
+  };
+
+  buildInputs = [
+    openssl
+    makeWrapper
+    libpulseaudio
+    typescript
+  ];
+
+  nativeBuildInputs = [
+    qtmultimedia
+    qtbase
+    qtdeclarative
+    qttools
+    nodejs
+    cmake
+    wrapQtAppsHook
+  ];
+
+  extraOutputsToLink = [ "doc" ];
+
+  postPatch = ''
+    # the package.sh script provides some install helpers
+    # using this might make it easier to maintain/less likely for the
+    # install phase to fail across version bumps
+    patchShebangs ./scripts/package.sh
+
+    # ensure the script uses the rsync package from nixpkgs
+    substituteInPlace ../scripts/package.sh --replace "rsync" "${rsync}/bin/rsync"
+
+
+    # the npm build step only runs typescript
+    # run this step directly so it doesn't try and fail to download the unnecessary node_modules, etc.
+    substituteInPlace ./sites/CMakeLists.txt --replace "npm install" "npm run build"
+
+    # remove the vendored catch2
+    rm -rf tests/src/vendor/catch
+
+    # link the catch2 sources from nixpkgs
+    ln -sf ${catch2.src} tests/src/vendor/catch
+  '';
+
+  postInstall = ''
+    # move the binaries to the share/Grabber folder so
+    # some relative links can be resolved (e.g. settings.ini)
+    mv $out/bin/* $out/share/Grabber/
+
+    cd ../..
+    # run the package.sh with $out/share/Grabber as the $APP_DIR
+    sh ./scripts/package.sh $out/share/Grabber
+
+    # add symlinks for the binaries to $out/bin
+    ln -s $out/share/Grabber/Grabber $out/bin/Grabber
+    ln -s $out/share/Grabber/Grabber-cli $out/bin/Grabber-cli
+  '';
+
+  sourceRoot = "source/src";
+
+  meta = with stdenv.lib; {
+    description = "Very customizable imageboard/booru downloader with powerful filenaming features";
+    license = licenses.asl20;
+    homepage = "https://bionus.github.io/imgbrd-grabber/";
+    maintainers = [ maintainers.evanjs ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/imgp/default.nix b/nixpkgs/pkgs/applications/graphics/imgp/default.nix
index 80420202c053..1f6e20f465a2 100644
--- a/nixpkgs/pkgs/applications/graphics/imgp/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/imgp/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonApplication rec {
   pname = "imgp";
-  version = "2.7";
+  version = "2.8";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "13r4fn3dd0nyidfhrr7zzpls5ifbyqdwxhyvpkqr8ahchws7wfc6";
+    sha256 = "1miabaxd5pwxn0va4drzj1d4ppxvyqsrrd4xw1j6qr52yci0lms8";
   };
 
   propagatedBuildInputs = [ pillow ];
diff --git a/nixpkgs/pkgs/applications/graphics/imv/default.nix b/nixpkgs/pkgs/applications/graphics/imv/default.nix
index 276c2cd3d7ea..faf748730583 100644
--- a/nixpkgs/pkgs/applications/graphics/imv/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/imv/default.nix
@@ -1,8 +1,23 @@
-{ stdenv, fetchFromGitHub
-, freeimage, fontconfig, pkgconfig
-, asciidoc, docbook_xsl, libxslt, cmocka
-, librsvg, pango, libxkbcommon, wayland
-, libGLU, icu
+{ asciidoc
+, cmocka
+, docbook_xsl
+, fetchFromGitHub
+, fontconfig
+, freeimage
+, icu
+, libGLU
+, libheif
+, libjpeg_turbo
+, libpng
+, librsvg
+, libtiff
+, libxkbcommon
+, libxslt
+, netsurf
+, pango
+, pkgconfig
+, stdenv
+, wayland
 }:
 
 stdenv.mkDerivation rec {
@@ -10,37 +25,31 @@ stdenv.mkDerivation rec {
   version = "4.1.0";
 
   src = fetchFromGitHub {
-    owner  = "eXeC64";
-    repo   = "imv";
-    rev    = "v${version}";
+    owner = "eXeC64";
+    repo = "imv";
+    rev = "v${version}";
     sha256 = "0gk8g178i961nn3bls75a8qpv6wvfvav6hd9lxca1skaikd33zdx";
   };
 
-  preBuild = ''
-    # Version is 4.0.1, but Makefile was not updated
-    sed -i 's/echo v4\.0\.0/echo v4.0.1/' Makefile
-  '';
-
-  nativeBuildInputs = [
-    asciidoc
-    cmocka
-    docbook_xsl
-    libxslt
-  ];
+  nativeBuildInputs = [ asciidoc cmocka docbook_xsl libxslt ];
 
   buildInputs = [
     freeimage
+    icu
     libGLU
+    libjpeg_turbo
     librsvg
     libxkbcommon
+    netsurf.libnsgif
     pango
     pkgconfig
     wayland
-    icu
   ];
 
   installFlags = [ "PREFIX=$(out)" "CONFIGPREFIX=$(out)/etc" ];
 
+  makeFlags = [ "BACKEND_LIBJPEG=yes" "BACKEND_LIBNSGIF=yes" ];
+
   postFixup = ''
     # The `bin/imv` script assumes imv-wayland or imv-x11 in PATH,
     # so we have to fix those to the binaries we installed into the /nix/store
@@ -53,9 +62,9 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "A command line image viewer for tiling window managers";
-    homepage    = "https://github.com/eXeC64/imv";
-    license     = licenses.gpl2;
+    homepage = "https://github.com/eXeC64/imv";
+    license = licenses.gpl2;
     maintainers = with maintainers; [ rnhmjoj markus1189 ];
-    platforms   = platforms.all;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/inkscape/extensions.nix b/nixpkgs/pkgs/applications/graphics/inkscape/extensions.nix
index 66a758f9fe51..013d3bec3527 100644
--- a/nixpkgs/pkgs/applications/graphics/inkscape/extensions.nix
+++ b/nixpkgs/pkgs/applications/graphics/inkscape/extensions.nix
@@ -1,5 +1,7 @@
 { stdenv
 , fetchFromGitHub
+, runCommand
+, inkcut
 }:
 
 {
@@ -34,4 +36,8 @@
       platforms = platforms.all;
     };
   };
+  inkcut = (runCommand "inkcut-inkscape-plugin" {} ''
+    mkdir -p $out/share/inkscape/extensions
+    cp ${inkcut}/share/inkscape/extensions/* $out/share/inkscape/extensions
+  '');
 }
diff --git a/nixpkgs/pkgs/applications/graphics/krita/default.nix b/nixpkgs/pkgs/applications/graphics/krita/default.nix
index 95a3e1e09280..9bb78d199968 100644
--- a/nixpkgs/pkgs/applications/graphics/krita/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/krita/default.nix
@@ -10,11 +10,11 @@
 
 mkDerivation rec {
   pname = "krita";
-  version = "4.3.0";
+  version = "4.4.1";
 
   src = fetchurl {
     url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "19qlpp9ds60bab73pwi64dq1zn4zn2hcdkrxhjr1j438mc4pflsd";
+    sha256 = "1bmmfvmawnlihbqkksdrwxfkaip4nfsi97w83fmvkyxl4jk715vr";
   };
 
   # *somtimes* fails with can't find ui_manager.h, also see https://github.com/NixOS/nixpkgs/issues/35359
diff --git a/nixpkgs/pkgs/applications/graphics/ktikz/default.nix b/nixpkgs/pkgs/applications/graphics/ktikz/default.nix
index f817a3321606..d0d9f100878f 100644
--- a/nixpkgs/pkgs/applications/graphics/ktikz/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/ktikz/default.nix
@@ -31,10 +31,16 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
+    # Fix version in qtikz.pro
     (fetchpatch {
       url = "https://github.com/fhackenberger/ktikz/commit/972685a406517bb85eb561f2c8e26f029eacd7db.patch";
       sha256 = "13z40rcd4m4n088v7z2ns17lnpn0z3rzp31lsamic3qdcwjwa5k8";
     })
+    # Fix missing qt5.15 QPainterPath include
+    (fetchpatch {
+      url = "https://github.com/fhackenberger/ktikz/commit/ebe4dfb72ac8a137b475ef688b9f7ac3e5c7f242.patch";
+      sha256 = "GIgPh+iUBPftHKIpZR3a0FxmLhMLuPUapF/t+bCuqMs=";
+    })
   ];
 
   nativeBuildInputs = [ pkgconfig qttools qmake wrapQtAppsHook ];
diff --git a/nixpkgs/pkgs/applications/graphics/lazpaint/default.nix b/nixpkgs/pkgs/applications/graphics/lazpaint/default.nix
index d8ea4924318e..e53c36b59cd9 100644
--- a/nixpkgs/pkgs/applications/graphics/lazpaint/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/lazpaint/default.nix
@@ -7,24 +7,24 @@ let
   bgrabitmap = fetchFromGitHub {
     owner = "bgrabitmap";
     repo = "bgrabitmap";
-    rev = "v11.1";
-    sha256 = "0bcmiiwly4a7w8p3m5iskzvk8rz87qhc0gcijrdvwg87cafd88gz";
+    rev = "v11.2.5";
+    sha256 = "0w5pdihsxn039kalkf4cx23j69hz5r09qmhd358h2n74irv1r3x1";
   };
   bgracontrols = fetchFromGitHub {
     owner = "bgrabitmap";
     repo = "bgracontrols";
-    rev = "v6.7.2";
-    sha256 = "0cwxzv0rl6crkf6f67mvga5cn5pyhr6ksm8cqhpxjiqi937dnyxx";
+    rev = "v7.0";
+    sha256 = "0qz3cscrc9jvhrix1hbmzhdxv6mxk0mz9azr46canflsydda8fjy";
   };
 in stdenv.mkDerivation rec {
   pname = "lazpaint";
-  version = "7.1.3";
+  version = "7.1.5";
 
   src = fetchFromGitHub {
     owner = "bgrabitmap";
     repo = "lazpaint";
     rev = "v${version}";
-    sha256 = "1sfb5hmhzscz3nv4cmc192jimkg70l4z3q3yxkivhw1hwwsv9cbg";
+    sha256 = "0bpk3rlqzbxvgrxmrzs0hcrgwhsqnpjqv1kdd9cp09knimmksvy5";
   };
 
   nativeBuildInputs = [ lazarus fpc makeWrapper ];
@@ -56,10 +56,6 @@ in stdenv.mkDerivation rec {
     # Python is needed for scripts
     makeWrapper $out/share/lazpaint/lazpaint $out/bin/lazpaint \
       --prefix PATH : ${stdenv.lib.makeBinPath [ python3 ]}
-
-    substituteInPlace $out/share/applications/lazpaint.desktop \
-      --replace /usr/share/pixmaps/lazpaint.png $out/share/pixmaps/lazpaint.png \
-      --replace /usr/share/lazpaint/lazpaint $out/bin/lazpaint
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/graphics/lightburn/default.nix b/nixpkgs/pkgs/applications/graphics/lightburn/default.nix
index 7fcec93446d0..9d2c6c4dd59f 100644
--- a/nixpkgs/pkgs/applications/graphics/lightburn/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/lightburn/default.nix
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation rec {
   pname = "lightburn";
-  version = "0.9.16";
+  version = "0.9.19";
 
   nativeBuildInputs = [
     p7zip
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/LightBurnSoftware/deployment/releases/download/${version}/LightBurn-Linux64-v${version}.7z";
-    sha256 = "0xmpglfzff3jpxbr304czsa24fbp497b69yd8kjkjdp2cd0l70qc";
+    sha256 = "0j3ydivd666fphmgi3ar48xabgi2dcky7p2fyfl7ghxjplflqs9q";
   };
 
   buildInputs = [
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "LightBurn is layout, editing, and control software for your laser cutter.";
+    description = "Layout, editing, and control software for your laser cutter";
     homepage = "https://lightburnsoftware.com/";
     license = stdenv.lib.licenses.unfree;
     maintainers = with stdenv.lib.maintainers; [ q3k ];
diff --git a/nixpkgs/pkgs/applications/graphics/mandelbulber/default.nix b/nixpkgs/pkgs/applications/graphics/mandelbulber/default.nix
index a3ab52ba8715..384ddac5b4c5 100644
--- a/nixpkgs/pkgs/applications/graphics/mandelbulber/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/mandelbulber/default.nix
@@ -19,13 +19,13 @@ assert withOpenCL -> ocl-icd != null;
 
 mkDerivation rec {
   pname = "mandelbulber";
-  version = "2.22";
+  version = "2.23";
 
   src = fetchFromGitHub {
     owner = "buddhi1980";
     repo = "mandelbulber2";
     rev = version;
-    sha256 = "011y2nl0jakf29cxprjmj1ifqc9iva61q5f4kk47b03gq7jw8sl4";
+    sha256 = "08izphj7jyk3wsq3qbzaf2fplys80vr39wliqc1i4c5cr90nrq1l";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/graphics/mcomix3/default.nix b/nixpkgs/pkgs/applications/graphics/mcomix3/default.nix
new file mode 100644
index 000000000000..24c80a6bd877
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/mcomix3/default.nix
@@ -0,0 +1,103 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, wrapGAppsHook
+, installShellFiles
+, python3
+, gobject-introspection
+, gtk3
+, gdk-pixbuf
+
+# Recommended Dependencies:
+, unrarSupport ? false  # unfree software
+, unrar
+, p7zip
+, lhasa
+, mupdf
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "mcomix3";
+  version = "unstable-2020-11-23";
+
+  # no official release on pypi/github and no build system
+  src = fetchFromGitHub {
+    repo   = "${pname}";
+    owner  = "multiSnow";
+    rev = "cdcb27533dc7ee2ebf7b0a8ab5ba10e61c0b8ff8";
+    sha256 = "0q9xgl60ryf7qmy5vgzgfry4rvw5j9rb4d1ilxmpjmvm7dd3fm2k";
+  };
+
+  buildInputs = [ gobject-introspection gtk3 gdk-pixbuf ];
+  nativeBuildInputs = [ wrapGAppsHook installShellFiles ];
+  propagatedBuildInputs = (with python3.pkgs; [ pillow pygobject3 pycairo ]);
+
+  format = "other";
+
+  # Correct wrapper behavior, see https://github.com/NixOS/nixpkgs/issues/56943
+  # until https://github.com/NixOS/nixpkgs/pull/102613
+  strictDeps = false;
+
+  preInstall = ''
+    libdir=$out/lib/${python3.libPrefix}/site-packages
+    mkdir -p $out/share/{icons/hicolor,man/man1,applications,metainfo,thumbnailers}
+    mkdir -p $out/bin $libdir
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    ${python3.executable} installer.py --srcdir=mcomix --target=$libdir
+    mv $libdir/mcomix/mcomixstarter.py $out/bin/${pname}
+    mv $libdir/mcomix/comicthumb.py $out/bin/comicthumb
+    mv $libdir/mcomix/mcomix/* $libdir/mcomix
+
+    runHook postInstall
+  '';
+
+  postInstall = ''
+    rmdir $libdir/mcomix/mcomix
+    mv man/mcomix.1 man/${pname}.1
+    installManPage man/*
+    cp -r mime/icons/* $out/share/icons/hicolor/
+    cp mime/*.desktop $out/share/applications/
+    cp mime/*.appdata.xml $out/share/metainfo/
+    cp mime/*.thumbnailer $out/share/thumbnailers/
+    for folder in $out/share/icons/hicolor/*; do
+        mkdir $folder/{apps,mimetypes}
+        mv $folder/*.png $folder/mimetypes
+        cp $libdir/mcomix/images/$(basename $folder)/mcomix.png $folder/apps/${pname}.png
+        cp $folder/mimetypes/application-x-cbt.png $folder/mimetypes/application-x-cbr.png
+        cp $folder/mimetypes/application-x-cbt.png $folder/mimetypes/application-x-cbz.png
+    done
+  '';
+
+  # prevent double wrapping
+  dontWrapGApps = true;
+  preFixup = ''
+    makeWrapperArgs+=(
+      "''${gappsWrapperArgs[@]}"
+      "--prefix" "PATH" ":" "${lib.makeBinPath ([ p7zip lhasa mupdf ] ++ lib.optional (unrarSupport) unrar)}"
+    )
+  '';
+
+  # real pytests broken upstream
+  checkPhase = ''
+    $out/bin/comicthumb --help > /dev/null
+    $out/bin/${pname} --help > /dev/null
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Comic book reader and image viewer; python3 fork of mcomix";
+    longDescription = ''
+      User-friendly, customizable image viewer, specifically designed to handle
+      comic books and manga supporting a variety of container formats
+      (including CBR, CBZ, CB7, CBT, LHA and PDF)
+    '';
+    homepage = "https://github.com/multiSnow/mcomix3";
+    changelog = "https://github.com/multiSnow/mcomix3/blob/gtk3/ChangeLog";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ confus ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/meme/default.nix b/nixpkgs/pkgs/applications/graphics/meme/default.nix
index 5f8a0bb6eed3..5425b8bef23c 100644
--- a/nixpkgs/pkgs/applications/graphics/meme/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/meme/default.nix
@@ -1,19 +1,24 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv
+, unstableGitUpdater
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
-  pname = "meme-unstable";
-  version = "2017-09-10";
-
-  owner = "nomad-software";
-  repo = "meme";
-  goPackagePath = "github.com/${owner}/${repo}";
+buildGoModule {
+  pname = "meme";
+  version = "unstable-2020-05-28";
 
   src = fetchFromGitHub {
-    inherit owner repo;
-    rev = "a6521f2eecb0aac22937b0013747ed9cb40b81ea";
-    sha256 = "1gbsv1d58ck6mj89q31s5b0ppw51ab76yqgz39jgwqnkidvzdfly";
+    owner = "nomad-software";
+    repo = "meme";
+    rev = "33a8b7d0de6996294a0464a605dacc17b26a6b02";
+    sha256 = "05h8d6pjszhr49xqg02nw94hm95kb7w1i7nw8jxi582fxxm2qbnm";
   };
 
+  vendorSha256 = null;
+
+  passthru.updateScript = unstableGitUpdater { };
+
   meta = with stdenv.lib; {
     description = "A command line utility for creating image macro style memes";
     homepage = "https://github.com/nomad-software/meme";
diff --git a/nixpkgs/pkgs/applications/graphics/meshlab/default.nix b/nixpkgs/pkgs/applications/graphics/meshlab/default.nix
index bde8999eb41c..50962d54eb23 100644
--- a/nixpkgs/pkgs/applications/graphics/meshlab/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/meshlab/default.nix
@@ -87,8 +87,8 @@ mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    description = "A system for processing and editing 3D triangular meshes.";
-    homepage = "http://www.meshlab.net/";
+    description = "A system for processing and editing 3D triangular meshes";
+    homepage = "https://www.meshlab.net/";
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ viric ];
     platforms = with lib.platforms; linux;
diff --git a/nixpkgs/pkgs/applications/graphics/ocrfeeder/default.nix b/nixpkgs/pkgs/applications/graphics/ocrfeeder/default.nix
new file mode 100644
index 000000000000..28fe58183fae
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/ocrfeeder/default.nix
@@ -0,0 +1,73 @@
+{ stdenv
+, fetchurl
+, pkg-config
+, gtk3
+, gtkspell3
+, isocodes
+, goocanvas2
+, intltool
+, itstool
+, libxml2
+, gnome3
+, python3
+, gobject-introspection
+, wrapGAppsHook
+, tesseract4
+, extraOcrEngines ? [] # other supported engines are: ocrad gocr cuneiform
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ocrfeeder";
+  version = "0.8.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "12f5gnq92ffnd5zaj04df7jrnsdz1zn4zcgpbf5p9qnd21i2y529";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    wrapGAppsHook
+    intltool
+    itstool
+    libxml2
+  ];
+
+  buildInputs = [
+    gtk3
+    gobject-introspection
+    goocanvas2
+    gtkspell3
+    isocodes
+    (python3.withPackages(ps: with ps; [
+      pyenchant
+      sane
+      pillow
+      reportlab
+      odfpy
+      pygobject3
+    ]))
+  ];
+
+  # https://gitlab.gnome.org/GNOME/ocrfeeder/-/issues/22
+  postConfigure = ''
+    substituteInPlace src/ocrfeeder/util/constants.py \
+      --replace /usr/share/xml/iso-codes ${isocodes}/share/xml/iso-codes
+  '';
+
+  enginesPath = stdenv.lib.makeBinPath ([
+    tesseract4
+  ] ++ extraOcrEngines);
+
+  preFixup = ''
+    gappsWrapperArgs+=(--prefix PATH : "${enginesPath}")
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://wiki.gnome.org/Apps/OCRFeeder";
+    description = "Complete Optical Character Recognition and Document Analysis and Recognition program";
+    maintainers = with maintainers; [ doronbehar ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/odafileconverter/default.nix b/nixpkgs/pkgs/applications/graphics/odafileconverter/default.nix
index 0378c4db13b6..0d1d64f3dd05 100644
--- a/nixpkgs/pkgs/applications/graphics/odafileconverter/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/odafileconverter/default.nix
@@ -4,7 +4,7 @@ let
   # To obtain the version you will need to run the following command:
   #
   # dpkg-deb -I ${odafileconverter.src} | grep Version
-  version = "21.7.0.0";
+  version = "21.11.0.0";
   rpath = "$ORIGIN:${lib.makeLibraryPath [ stdenv.cc.cc qtbase ]}";
 
 in mkDerivation {
@@ -14,8 +14,8 @@ in mkDerivation {
 
   src = fetchurl {
     # NB: this URL is not stable (i.e. the underlying file and the corresponding version will change over time)
-    url = "https://download.opendesign.com/guestfiles/ODAFileConverter/ODAFileConverter_QT5_lnxX64_7.2dll.deb";
-    sha256 = "0sa21nnwzqb6g7gl0z43smqgcd9h3xipj3cq2cl7ybfh3cvcxfi9";
+    url = "http://web.archive.org/web/20201206221727if_/https://download.opendesign.com/guestfiles/Demo/ODAFileConverter_QT5_lnxX64_7.2dll_21.11.deb";
+    sha256 = "10027a3ab18efd04ca75aa699ff550eca3bdfe6f7084460d3c00001bffb50070";
   };
 
   unpackPhase = ''
diff --git a/nixpkgs/pkgs/applications/graphics/paraview/default.nix b/nixpkgs/pkgs/applications/graphics/paraview/default.nix
index b201f9dbf0da..d0c8d1c9ee94 100644
--- a/nixpkgs/pkgs/applications/graphics/paraview/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/paraview/default.nix
@@ -66,7 +66,6 @@ mkDerivation rec {
     libGLU libGL
     libXt
     openmpi
-    (python3.withPackages (ps: with ps; [ numpy matplotlib mpi4py ]))
     tbb
     boost
     ffmpeg
@@ -78,6 +77,10 @@ mkDerivation rec {
     qtsvg
   ];
 
+  propagatedBuildInputs = [
+    (python3.withPackages (ps: with ps; [ numpy matplotlib mpi4py ]))
+  ];
+
   meta = with stdenv.lib; {
     homepage = "https://www.paraview.org/";
     description = "3D Data analysis and visualization application";
diff --git a/nixpkgs/pkgs/applications/graphics/pdfcpu/default.nix b/nixpkgs/pkgs/applications/graphics/pdfcpu/default.nix
index 08dc87f6684a..3f91fae0beb7 100644
--- a/nixpkgs/pkgs/applications/graphics/pdfcpu/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/pdfcpu/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pdfcpu";
-  version = "0.3.5";
+  version = "0.3.7";
 
   src = fetchFromGitHub {
     owner = "pdfcpu";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0fb7l1h4dhn100y2ydq50cgj63fbr4p11x8h803rv6x3xwmviwcg";
+    sha256 = "13b1ncpx189ca0h70j5cdp0jwlj95kasysryz1l6g13cwn9n6mii";
   };
 
-  vendorSha256 = "06xlwygqw3kzbjqlx09rs9hl4pfsmay5pj4c5hvkrj5z123ldvyw";
+  vendorSha256 = "11w9i1829hk1qb9w24dyxv1bi49358a274g60x11fp5x5cw7bqa7";
 
   # No tests
   doCheck = false;
diff --git a/nixpkgs/pkgs/applications/graphics/photoflare/default.nix b/nixpkgs/pkgs/applications/graphics/photoflare/default.nix
new file mode 100644
index 000000000000..f619d79c0f55
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/photoflare/default.nix
@@ -0,0 +1,31 @@
+{ mkDerivation, stdenv, graphicsmagick, fetchFromGitHub, qmake, qtbase, qttools
+}:
+
+mkDerivation rec {
+  pname = "photoflare";
+  version = "1.6.6";
+
+  src = fetchFromGitHub {
+    owner = "PhotoFlare";
+    repo = "photoflare";
+    rev = "v${version}";
+    sha256 = "07lrlxagv1bljj607s8m0zsbzx9jrvi18bnxahnm7r4i5car5x2d";
+  };
+
+  nativeBuildInputs = [ qmake qttools ];
+  buildInputs = [ qtbase graphicsmagick ];
+
+  qmakeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+  NIX_CFLAGS_COMPILE = "-I${graphicsmagick}/include/GraphicsMagick";
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "A cross-platform image editor with a powerful features and a very friendly graphical user interface";
+    homepage = "https://photoflare.io";
+    maintainers = [ maintainers.omgbebebe ];
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/photoflow/CMakeLists.patch b/nixpkgs/pkgs/applications/graphics/photoflow/CMakeLists.patch
new file mode 100644
index 000000000000..7d3d62b41b42
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/photoflow/CMakeLists.patch
@@ -0,0 +1,13 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 9b48beea..078ba20d 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -603,7 +603,7 @@ ENDIF(APPLE)
+ #
+ # photoflow executable
+ #
+-add_executable(photoflow main.cc ${RESOURCE_OBJECT})
++add_executable(photoflow main.cc version.cc ${RESOURCE_OBJECT})
+ IF(APPLE)
+   set_target_properties(photoflow PROPERTIES LINK_FLAGS " -framework ApplicationServices ")
+ ENDIF(APPLE)
diff --git a/nixpkgs/pkgs/applications/graphics/photoflow/default.nix b/nixpkgs/pkgs/applications/graphics/photoflow/default.nix
index 9fec8b99c1bd..cb8ef65b2e9e 100644
--- a/nixpkgs/pkgs/applications/graphics/photoflow/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/photoflow/default.nix
@@ -1,42 +1,75 @@
-{ stdenv, fetchFromGitHub, gettext, glib, libxml2, pkgconfig, swig, automake, gobject-introspection, cmake, ninja, libtiff, libjpeg, fftw, exiv2, lensfun, gtkmm2, libraw, lcms2, libexif, vips, expat, pcre, pugixml }:
+{ automake
+, cmake
+, exiv2
+, expat
+, fetchFromGitHub
+, fftw
+, fftwFloat
+, gettext
+, glib
+, gobject-introspection
+, gtkmm2
+, lcms2
+, lensfun
+, libexif
+, libiptcdata
+, libjpeg
+, libraw
+, libtiff
+, libxml2
+, ninja
+, openexr
+, pcre
+, pkgconfig
+, pugixml
+, stdenv
+, swig
+, vips
+}:
 
-stdenv.mkDerivation {
-  name = "photoflow-unstable-2018-08-28";
+stdenv.mkDerivation rec {
+  pname = "photoflow";
+  version = "2020-08-28";
 
   src = fetchFromGitHub {
     owner = "aferrero2707";
-    repo = "PhotoFlow";
-    rev = "df03f2538ddd232e693c307db4ab63eb5bdfea38";
-    sha256 = "08ybhv08h24y4li8wb4m89xgrz1szlwpksf6vjharp8cznn4y4x9";
+    repo = pname;
+    rev = "8472024fb91175791e0eb23c434c5b58ecd250eb";
+    sha256 = "1bq4733hbh15nwpixpyhqfn3bwkg38amdj2xc0my0pii8l9ln793";
   };
 
+  patches = [ ./CMakeLists.patch ];
+
   nativeBuildInputs = [
+    automake
+    cmake
     gettext
     glib
+    gobject-introspection
     libxml2
+    ninja
     pkgconfig
     swig
-    automake
-    gobject-introspection
-    cmake
-    ninja
   ];
 
   buildInputs = [
-    libtiff
-    libjpeg
-    fftw
     exiv2
-    lensfun
+    expat
+    fftw
+    fftwFloat
     gtkmm2  # Could be build with gtk3 but proper UI theme is missing and therefore not very usable with gtk3
             # See: https://discuss.pixls.us/t/help-needed-for-gtk3-theme/5803
-    libraw
     lcms2
+    lensfun
     libexif
-    vips
-    expat
+    libiptcdata
+    libjpeg
+    libraw
+    libtiff
+    openexr
     pcre
     pugixml
+    vips
   ];
 
   cmakeFlags = [
@@ -51,6 +84,7 @@ stdenv.mkDerivation {
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.MtP ];
     platforms = platforms.linux;
-    broken = true;
+    # sse3 is not supported on aarch64
+    badPlatforms = [ "aarch64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/pinta/default.nix b/nixpkgs/pkgs/applications/graphics/pinta/default.nix
index af51c78a1698..b534763b2456 100644
--- a/nixpkgs/pkgs/applications/graphics/pinta/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/pinta/default.nix
@@ -74,7 +74,7 @@ buildDotnetPackage rec {
   '';
 
   meta = {
-    homepage = "http://www.pinta-project.com/";
+    homepage = "https://www.pinta-project.com/";
     description = "Drawing/editing program modeled after Paint.NET";
     license = stdenv.lib.licenses.mit;
     maintainers = with stdenv.lib.maintainers; [ ];
diff --git a/nixpkgs/pkgs/applications/graphics/pqiv/default.nix b/nixpkgs/pkgs/applications/graphics/pqiv/default.nix
index bb29101b4c7f..96efc091ef2b 100644
--- a/nixpkgs/pkgs/applications/graphics/pqiv/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/pqiv/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation (rec {
   pname = "pqiv";
-  version = "2.11";
+  version = "2.12";
 
   src = fetchFromGitHub {
     owner = "phillipberndt";
     repo = "pqiv";
     rev = version;
-    sha256 = "06cwm28b7j1skwp21s5snmj1pqh3xh6y2i5v4w3pz0b8k3053h9i";
+    sha256 = "18nvrqmlifh4m8nfs0d19sb9d1l3a95xc89qxqdr881jcxdsgflw";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/graphics/qvge/default.nix b/nixpkgs/pkgs/applications/graphics/qvge/default.nix
new file mode 100644
index 000000000000..ba7e94521426
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/qvge/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, substituteAll
+, qmake
+, qtx11extras
+, graphviz
+}:
+
+mkDerivation rec {
+  pname = "qvge";
+  version = "0.6.2";
+
+  src = fetchFromGitHub {
+    owner = "ArsMasiuk";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0qy73dngl1xm6mr2306ddzbbrzk6yszp3y15phs861bfxynzkqjz";
+  };
+
+  prePatch = "cd src";
+
+  patches = (substituteAll {
+    src = ./set-graphviz-path.patch;
+    inherit graphviz;
+  });
+
+  nativeBuildInputs = [ qmake ];
+
+  buildInputs = [ qtx11extras ];
+
+  meta = with lib; {
+    description = "Qt Visual Graph Editor";
+    homepage = "https://github.com/ArsMasiuk/qvge";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sikmir ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/qvge/set-graphviz-path.patch b/nixpkgs/pkgs/applications/graphics/qvge/set-graphviz-path.patch
new file mode 100644
index 000000000000..d18eb81c5d04
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/qvge/set-graphviz-path.patch
@@ -0,0 +1,13 @@
+diff --git i/commonui/CNodeEditorUIController.cpp w/commonui/CNodeEditorUIController.cpp
+index 7dacd48..64983e4 100644
+--- i/commonui/CNodeEditorUIController.cpp
++++ w/commonui/CNodeEditorUIController.cpp
+@@ -123,7 +123,7 @@ CNodeEditorUIController::CNodeEditorUIController(CMainWindow *parent) :
+ 	QString pathToGraphviz = QCoreApplication::applicationDirPath() + "/../tools/graphviz";
+ 	m_optionsData.graphvizPath = QFileInfo(pathToGraphviz).absoluteFilePath();
+ #else
+-	m_optionsData.graphvizPath = "";
++	m_optionsData.graphvizPath = "@graphviz@/bin";
+ #endif
+ 	m_gvController->setPathToGraphviz(m_optionsData.graphvizPath);
+ 
diff --git a/nixpkgs/pkgs/applications/graphics/qview/default.nix b/nixpkgs/pkgs/applications/graphics/qview/default.nix
index b6f25795665a..001616ab41dd 100644
--- a/nixpkgs/pkgs/applications/graphics/qview/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/qview/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "qview";
-  version = "3.0";
+  version = "4.0";
 
   src = fetchFromGitHub {
     owner = "jurplel";
     repo = "qView";
     rev = version;
-    sha256 = "15a91bs3wcqhgf76wzigbn10hayg628j84pq4j2vaxar94ak0vk7";
+    sha256 = "15n9cq7w3ckinnx38hvncxrbkv4qm4k51sal41q4y0pkvhmafhnr";
   };
 
   nativeBuildInputs = [ qmake ];
diff --git a/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix b/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix
index 5f39116e85fb..c1255c016f4f 100644
--- a/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix
@@ -13,14 +13,14 @@ let
   pythonPackages = python3Packages;
 in
 mkDerivation rec {
-  version = "1.9";
+  version = "1.11";
   pname = "renderdoc";
 
   src = fetchFromGitHub {
     owner = "baldurk";
     repo = "renderdoc";
     rev = "v${version}";
-    sha256 = "18nparkd435hdbm924jfdvmym7f3xd2fcy96jr4lrkl5rhj2sf85";
+    sha256 = "01r4fq03fpyhwvn47wx3dw29vcadcd0qml00h36q38cq3pi9x42j";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/graphics/rx/default.nix b/nixpkgs/pkgs/applications/graphics/rx/default.nix
index 53e8109fef51..9350d7c5cd78 100644
--- a/nixpkgs/pkgs/applications/graphics/rx/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/rx/default.nix
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage rec {
     description = "Modern and extensible pixel editor implemented in Rust";
     homepage = "https://rx.cloudhead.io/";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ minijackson filalex77 ];
+    maintainers = with maintainers; [ minijackson Br1ght0ne ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/unigine-valley/default.nix b/nixpkgs/pkgs/applications/graphics/unigine-valley/default.nix
index 14ff5f9a519f..8043f153083f 100644
--- a/nixpkgs/pkgs/applications/graphics/unigine-valley/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/unigine-valley/default.nix
@@ -107,7 +107,7 @@ in
 
     meta = {
       description = "The Unigine Valley GPU benchmarking tool";
-      homepage = "http://unigine.com/products/benchmarks/valley/";
+      homepage = "https://unigine.com/products/benchmarks/valley/";
       license = stdenv.lib.licenses.unfree; # see also: $out/$instPath/documentation/License.pdf
       maintainers = [ stdenv.lib.maintainers.kierdavis ];
       platforms = ["x86_64-linux" "i686-linux"];
diff --git a/nixpkgs/pkgs/applications/graphics/write_stylus/default.nix b/nixpkgs/pkgs/applications/graphics/write_stylus/default.nix
index 8396ce72e506..3c2ad8f4fab0 100644
--- a/nixpkgs/pkgs/applications/graphics/write_stylus/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/write_stylus/default.nix
@@ -53,7 +53,7 @@ mkDerivation rec {
 
   meta = with stdenv.lib; {
     homepage = "http://www.styluslabs.com/";
-    description = "Write is a word processor for handwriting.";
+    description = "Write is a word processor for handwriting";
     platforms = platforms.linux;
     license = stdenv.lib.licenses.unfree;
     maintainers = with maintainers; [ oyren ];
diff --git a/nixpkgs/pkgs/applications/graphics/xlife/default.nix b/nixpkgs/pkgs/applications/graphics/xlife/default.nix
new file mode 100644
index 000000000000..cc7013739985
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/xlife/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchsvn, xorg }:
+
+stdenv.mkDerivation {
+  pname = "xlife";
+  version = "6.7.5";
+
+  src = fetchsvn {
+    url = "https://svn.code.sf.net/p/xlife-cal/xlife/trunk";
+    rev = "365";
+    sha256 = "1gadlcp32s179kd7ypxr8cymd6s060p6z4c2vnx94i8bmiw3nn8h";
+  };
+
+  nativeBuildInputs = with xorg; [ imake gccmakedep ];
+  buildInputs = [ xorg.libX11 ];
+
+  hardeningDisable = [ "format" ];
+  installPhase = ''
+    install -Dm755 xlife -t $out/bin
+    install -Dm755 lifeconv -t $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://litwr2.atspace.eu/xlife.php";
+    description = "Conway's Game of Life and other cellular automata, for X";
+    license = licenses.hpndSellVariant;
+    maintainers = with maintainers; [ djanatyn ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/xournalpp/default.nix b/nixpkgs/pkgs/applications/graphics/xournalpp/default.nix
index ba396bfd92c5..c21d0ed20545 100644
--- a/nixpkgs/pkgs/applications/graphics/xournalpp/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/xournalpp/default.nix
@@ -4,7 +4,7 @@
 , cmake
 , gettext
 , wrapGAppsHook
-, pkgconfig
+, pkg-config
 
 , glib
 , gsettings-desktop-schemas
@@ -22,16 +22,16 @@
 
 stdenv.mkDerivation rec {
   pname = "xournalpp";
-  version = "1.0.18";
+  version = "1.0.20";
 
   src = fetchFromGitHub {
     owner = "xournalpp";
     repo = pname;
     rev = version;
-    sha256 = "0a9ygbmd4dwgck3k8wsrm2grynqa0adb12wwspzmzvpisbadffjy";
+    sha256 = "1c7n03xm3m4lwcwxgplkn25i8c6s3i7rijbkcx86br1j4jadcs3k";
   };
 
-  nativeBuildInputs = [ cmake gettext pkgconfig wrapGAppsHook ];
+  nativeBuildInputs = [ cmake gettext pkg-config wrapGAppsHook ];
   buildInputs =
     [ glib
       gsettings-desktop-schemas
@@ -50,12 +50,10 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
 
-  enableParallelBuilding = true;
-
   meta = with stdenv.lib; {
     description = "Xournal++ is a handwriting Notetaking software with PDF annotation support";
-    homepage    = "https://github.com/xournalpp/xournalpp";
-    license     = licenses.gpl2;
+    homepage    = "https://xournalpp.github.io/";
+    license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ andrew-d sikmir ];
     platforms   = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/applications/graphics/yacreader/default.nix b/nixpkgs/pkgs/applications/graphics/yacreader/default.nix
index 9162e0bdef13..2d253d4462af 100644
--- a/nixpkgs/pkgs/applications/graphics/yacreader/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/yacreader/default.nix
@@ -5,13 +5,13 @@
 
 mkDerivation rec {
   pname = "yacreader";
-  version = "9.6.2";
+  version = "9.7.1";
 
   src = fetchFromGitHub {
     owner = "YACReader";
     repo = pname;
     rev = version;
-    sha256 = "1s7kb72skhr364kq8wr2i012jjmaz2vzcz526h0b2bch8921wrnf";
+    sha256 = "17kzh69sxpyk4n7c2gkbsvr9y4j14azdy1qxzghsbwp7ij4iw9kv";
   };
 
   nativeBuildInputs = [ qmake pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/graphics/yed/default.nix b/nixpkgs/pkgs/applications/graphics/yed/default.nix
index f92e910eacce..d7c83704dca4 100644
--- a/nixpkgs/pkgs/applications/graphics/yed/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/yed/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip, makeWrapper, unzip, jre }:
+{ stdenv, fetchzip, makeWrapper, unzip, jre, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "yEd";
@@ -9,16 +9,25 @@ stdenv.mkDerivation rec {
     sha256 = "0sd73s700f3gqq5zq1psrqjg6ff2gv49f8vd37v6bv65vdxqxryq";
   };
 
-  nativeBuildInputs = [ makeWrapper unzip ];
+  nativeBuildInputs = [ makeWrapper unzip wrapGAppsHook ];
+  # For wrapGAppsHook setup hook
+  buildInputs = [ (jre.gtk3 or null) ];
 
-  installPhase = ''
+  dontConfigure = true;
+  dontBuild = true;
+  dontInstall = true;
+
+  preFixup = ''
     mkdir -p $out/yed
     cp -r * $out/yed
     mkdir -p $out/bin
 
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
     makeWrapper ${jre}/bin/java $out/bin/yed \
+      ''${makeWrapperArgs[@]} \
       --add-flags "-jar $out/yed/yed.jar --"
   '';
+  dontWrapGApps = true;
 
   meta = with stdenv.lib; {
     license = licenses.unfree;