about summary refs log tree commit diff
path: root/nixpkgs/pkgs/data
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2020-04-01 15:50:50 +0000
committerAlyssa Ross <hi@alyssa.is>2020-04-01 15:50:50 +0000
commit75eafe97f7df0d653bec67f3962214d7c357831f (patch)
tree09f2cc901e0e637876cbb78d192dfe2fcfef8156 /nixpkgs/pkgs/data
parenta53b121bf4331497da63df3b1b7f1a7897dad146 (diff)
parenta2e06fc3423c4be53181b15c28dfbe0bcf67dd73 (diff)
downloadnixlib-75eafe97f7df0d653bec67f3962214d7c357831f.tar
nixlib-75eafe97f7df0d653bec67f3962214d7c357831f.tar.gz
nixlib-75eafe97f7df0d653bec67f3962214d7c357831f.tar.bz2
nixlib-75eafe97f7df0d653bec67f3962214d7c357831f.tar.lz
nixlib-75eafe97f7df0d653bec67f3962214d7c357831f.tar.xz
nixlib-75eafe97f7df0d653bec67f3962214d7c357831f.tar.zst
nixlib-75eafe97f7df0d653bec67f3962214d7c357831f.zip
Merge commit 'a2e06fc3423c4be53181b15c28dfbe0bcf67dd73'
Diffstat (limited to 'nixpkgs/pkgs/data')
-rw-r--r--nixpkgs/pkgs/data/documentation/man-pages/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/amiri/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/babelstone-han/default.nix10
-rw-r--r--nixpkgs/pkgs/data/fonts/clearlyU/default.nix42
-rw-r--r--nixpkgs/pkgs/data/fonts/cozette/default.nix55
-rw-r--r--nixpkgs/pkgs/data/fonts/creep/default.nix17
-rw-r--r--nixpkgs/pkgs/data/fonts/dina-pcf/default.nix64
-rw-r--r--nixpkgs/pkgs/data/fonts/dina/default.nix57
-rw-r--r--nixpkgs/pkgs/data/fonts/envypn-font/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/gdouros/default.nix9
-rw-r--r--nixpkgs/pkgs/data/fonts/gohufont/default.nix55
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/default.nix2
-rw-r--r--nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix5
-rw-r--r--nixpkgs/pkgs/data/fonts/jost/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/merriweather-sans/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/merriweather/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/navilu/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/nerdfonts/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/noto-fonts/default.nix102
-rw-r--r--nixpkgs/pkgs/data/fonts/profont/default.nix45
-rw-r--r--nixpkgs/pkgs/data/fonts/proggyfonts/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/recursive/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/rictydiminished-with-firacode/default.nix17
-rw-r--r--nixpkgs/pkgs/data/fonts/siji/default.nix48
-rw-r--r--nixpkgs/pkgs/data/fonts/source-han-sans/default.nix52
-rw-r--r--nixpkgs/pkgs/data/fonts/source-han-serif/default.nix52
-rw-r--r--nixpkgs/pkgs/data/fonts/source-han/default.nix54
-rw-r--r--nixpkgs/pkgs/data/fonts/spleen/default.nix13
-rw-r--r--nixpkgs/pkgs/data/fonts/sudo/default.nix10
-rw-r--r--nixpkgs/pkgs/data/fonts/tamsyn/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/terminus-font/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/tewi/default.nix55
-rw-r--r--nixpkgs/pkgs/data/fonts/tt2020/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/ttf-envy-code-r/default.nix2
-rw-r--r--nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix40
-rw-r--r--nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/uni-vga/default.nix54
-rw-r--r--nixpkgs/pkgs/data/fonts/unifont/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/unscii/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix32
-rwxr-xr-xnixpkgs/pkgs/data/fonts/vazir-fonts/default.nix8
-rw-r--r--nixpkgs/pkgs/data/icons/bibata-cursors/default.nix9
-rw-r--r--nixpkgs/pkgs/data/icons/bibata-cursors/extra.nix26
-rw-r--r--nixpkgs/pkgs/data/icons/capitaine-cursors/default.nix17
-rw-r--r--nixpkgs/pkgs/data/icons/flat-remix-icon-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix12
-rw-r--r--nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix12
-rw-r--r--nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix6
-rw-r--r--nixpkgs/pkgs/data/icons/qogir-icon-theme/default.nix12
-rw-r--r--nixpkgs/pkgs/data/misc/hackage/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/osinfo-db/default.nix6
-rw-r--r--nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix26
-rw-r--r--nixpkgs/pkgs/data/soundfonts/fluid/default.nix2
-rw-r--r--nixpkgs/pkgs/data/themes/ant-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/canta/default.nix33
-rw-r--r--nixpkgs/pkgs/data/themes/jade1/default.nix8
-rw-r--r--nixpkgs/pkgs/data/themes/matcha/default.nix10
-rw-r--r--nixpkgs/pkgs/data/themes/mojave/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/nordic-polar/default.nix12
-rw-r--r--nixpkgs/pkgs/data/themes/nordic/default.nix28
-rw-r--r--nixpkgs/pkgs/data/themes/plata/default.nix6
-rw-r--r--nixpkgs/pkgs/data/themes/pop-gtk/default.nix6
-rw-r--r--nixpkgs/pkgs/data/themes/qogir/default.nix9
-rw-r--r--nixpkgs/pkgs/data/themes/qtcurve/default.nix12
-rw-r--r--nixpkgs/pkgs/data/themes/snowblind/default.nix30
-rw-r--r--nixpkgs/pkgs/data/themes/vimix/default.nix32
-rw-r--r--nixpkgs/pkgs/data/themes/yaru/default.nix4
67 files changed, 1040 insertions, 580 deletions
diff --git a/nixpkgs/pkgs/data/documentation/man-pages/default.nix b/nixpkgs/pkgs/data/documentation/man-pages/default.nix
index b4435fb911fa..c57526d307a7 100644
--- a/nixpkgs/pkgs/data/documentation/man-pages/default.nix
+++ b/nixpkgs/pkgs/data/documentation/man-pages/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "man-pages";
-  version = "5.04";
+  version = "5.05";
 
   src = fetchurl {
     url = "mirror://kernel/linux/docs/man-pages/${pname}-${version}.tar.xz";
-    sha256 = "1bx4ws24bjq6iyfyilg7aih5f0qrhy9l97ksrwcd4yxvjh8gn13x";
+    sha256 = "0izb6shcczvg37cyd3kzxsfsrffqj1qw9nqhhq9mi4kd36qkbcfm";
   };
 
   makeFlags = [ "MANDIR=$(out)/share/man" ];
diff --git a/nixpkgs/pkgs/data/fonts/amiri/default.nix b/nixpkgs/pkgs/data/fonts/amiri/default.nix
index 36d8ed3c6747..9ecde1939e8c 100644
--- a/nixpkgs/pkgs/data/fonts/amiri/default.nix
+++ b/nixpkgs/pkgs/data/fonts/amiri/default.nix
@@ -1,14 +1,14 @@
 { lib, fetchzip }:
 
 let
-  version = "0.111";
+  version = "0.112";
 
 in fetchzip rec {
   name = "Amiri-${version}";
 
   url = "https://github.com/alif-type/amiri/releases/download/${version}/${name}.zip";
 
-  sha256 = "1w3a5na4mazspwy8j2hvpjha10sgd287kamm51p49jcr90cvwbdr";
+  sha256 = "13j8kglgca296czxjz1xvrbz6yx05s2xassiliyszndbkrhn6bkl";
 
   postFetch = ''
     unzip $downloadedFile
diff --git a/nixpkgs/pkgs/data/fonts/babelstone-han/default.nix b/nixpkgs/pkgs/data/fonts/babelstone-han/default.nix
index 0d46fc92d5f2..da2d67c084ff 100644
--- a/nixpkgs/pkgs/data/fonts/babelstone-han/default.nix
+++ b/nixpkgs/pkgs/data/fonts/babelstone-han/default.nix
@@ -1,16 +1,17 @@
 { lib, fetchzip }:
 
 let
-  version = "12.1.7";
+  version = "13.0.3";
 in fetchzip {
   name = "babelstone-han-${version}";
 
-  url = https://www.babelstone.co.uk/Fonts/Download/BabelStoneHan.zip;
+  # upstream download links are unversioned, so hash changes
+  url = https://web.archive.org/web/20200210125314/https://www.babelstone.co.uk/Fonts/Download/BabelStoneHan.zip;
   postFetch = ''
     mkdir -p $out/share/fonts/truetype
     unzip $downloadedFile '*.ttf' -d $out/share/fonts/truetype
   '';
-  sha256 = "07liv0lmk28ybxccf91gp2wmc17pk3fcshixpj0jx069b64zwf1v";
+  sha256 = "018isk3hbzsihzrxavgjbn485ngzvlm96npqx9y7zpkxsssslc4w";
 
   meta = with lib; {
     description = "Unicode CJK font with over 36000 Han characters";
@@ -18,7 +19,6 @@ in fetchzip {
 
     license = licenses.free;
     platforms = platforms.all;
-    hydraPlatforms = [];
-    maintainers = [ maintainers.volth ];
+    maintainers = with maintainers; [ volth emily ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/clearlyU/default.nix b/nixpkgs/pkgs/data/fonts/clearlyU/default.nix
index 0df3ba4f659c..62002b14dd58 100644
--- a/nixpkgs/pkgs/data/fonts/clearlyU/default.nix
+++ b/nixpkgs/pkgs/data/fonts/clearlyU/default.nix
@@ -1,29 +1,41 @@
-{ stdenv, fetchurl, mkfontdir, mkfontscale }:
+{ stdenv, fetchurl, fonttosfnt, mkfontscale, libfaketime }:
 
-stdenv.mkDerivation {
-  name = "clearlyU-12-1.9";
+stdenv.mkDerivation rec {
+  pname = "clearlyU";
+  version = "12-1.9";
 
   src = fetchurl {
-    url = https://www.math.nmsu.edu/~mleisher/Software/cu/cu12-1.9.tgz;
+    url = "https://www.math.nmsu.edu/~mleisher/Software/cu/cu${version}.tgz";
     sha256 = "1xn14jbv3m1khy7ydvad9ydkn7yygdbhjy9wm1v000jzjwr3lv21";
   };
 
-  nativeBuildInputs = [ mkfontdir mkfontscale ];
+  nativeBuildInputs = [ fonttosfnt mkfontscale libfaketime ];
+
+  buildPhase = ''
+    # convert bdf fonts to otb
+    for i in *.bdf; do
+      name=$(basename "$i" .bdf)
+      faketime -f "1970-01-01 00:00:01" fonttosfnt -g 2 -m 2 -v -o "$name.otb" "$i"
+    done
+  '';
 
   installPhase = ''
-    mkdir -p $out/share/fonts
-    cp *.bdf $out/share/fonts
-    cd $out/share/fonts
-    mkfontdir
-    mkfontscale
+    # install bdf fonts
+    fontDir="$out/share/fonts"
+    install -m 644 -D *.bdf -t "$fontDir"
+    mkfontdir "$fontDir"
+
+    # install otb fonts
+    fontDir="$otb/share/fonts"
+    install -m 644 -D *.otb -t "$fontDir"
+    mkfontdir "$fontDir"
   '';
 
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "127zrg65s90ksj99kr9hxny40rbxvpai62mf5nqk853hcd1bzpr6";
+  outputs = [ "out"  "otb" ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A Unicode font";
-    maintainers = [stdenv.lib.maintainers.raskin];
+    license = licenses.mit;
+    maintainers = [ maintainers.raskin ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/cozette/default.nix b/nixpkgs/pkgs/data/fonts/cozette/default.nix
new file mode 100644
index 000000000000..a5d9f9055624
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cozette/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, mkfontscale }:
+
+let
+  version = "1.5.1";
+  releaseUrl =
+    "https://github.com/slavfox/Cozette/releases/download/v.${version}";
+in stdenv.mkDerivation rec {
+  pname = "Cozette";
+  inherit version;
+
+  srcs = map fetchurl [
+    {
+      url = "${releaseUrl}/cozette.otb";
+      sha256 = "05k45n7jar11gnng2awpmc7zk9jdlzd6wz87xx49cp75jm4z9xm8";
+    }
+    {
+      url = "${releaseUrl}/CozetteVector.otf";
+      sha256 = "1sqhnjpizn1wi26lc7z2zml7yr7zkcpa72mh1drvd74rlcs1ip30";
+    }
+    {
+      url = "${releaseUrl}/CozetteVector.ttf";
+      sha256 = "1q4ml8shv9lmyc6bwhffwvbvl92s73j7xkb0rkqvci4f0zbz7mcy";
+    }
+  ];
+
+  nativeBuildInputs = [ mkfontscale ];
+
+  sourceRoot = "./";
+
+  unpackCmd = ''
+    otName=$(stripHash "$curSrc")
+    cp $curSrc ./$otName
+  '';
+
+  installPhase = ''
+
+    install -D -m 644 *.otf -t "$out/share/fonts/opentype"
+    install -D -m 644 *.ttf -t "$out/share/fonts/truetype"
+    install -D -m 644 *.otb -t "$out/share/fonts/misc"
+
+    mkfontdir "$out/share/fonts/misc"
+    mkfontscale "$out/share/fonts/truetype"
+    mkfontscale "$out/share/fonts/opentype"
+  '';
+
+  outputs = [ "out" ];
+
+  meta = with stdenv.lib; {
+    description = "A bitmap programming font optimized for coziness.";
+    homepage = "https://github.com/slavfox/cozette";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ brettlyons ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/creep/default.nix b/nixpkgs/pkgs/data/fonts/creep/default.nix
index bad78e3433e1..90b0d19ae99b 100644
--- a/nixpkgs/pkgs/data/fonts/creep/default.nix
+++ b/nixpkgs/pkgs/data/fonts/creep/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchFromGitHub, fontforge }:
+{ stdenv, fetchFromGitHub, libfaketime
+, fonttosfnt, mkfontscale
+}:
 
 stdenv.mkDerivation rec {
   pname = "creep";
@@ -11,14 +13,21 @@ stdenv.mkDerivation rec {
     sha256 = "0zs21kznh1q883jfdgz74bb63i4lxlv98hj3ipp0wvsi6zw0vs8n";
   };
 
-  nativeBuildInputs = [ fontforge ];
+  nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];
 
-  dontBuild = true;
+  buildPhase = ''
+    faketime -f "1970-01-01 00:00:01" fonttosfnt -g 2 -m 2 -o creep.otb creep.bdf
+  '';
 
   installPhase = ''
-    install -D -m644 creep.bdf "$out/usr/share/fonts/misc/creep.bdf"
+    install -D -m644 creep.bdf "$out/share/fonts/misc/creep.bdf"
+    mkfontdir "$out/share/fonts/misc"
+    install -D -m644 creep.otb "$otb/share/fonts/misc/creep.otb"
+    mkfontdir "$otb/share/fonts/misc"
   '';
 
+  outputs = [ "out" "otb" ];
+
   meta = with stdenv.lib; {
     description = "A pretty sweet 4px wide pixel font";
     homepage = https://github.com/romeovs/creep;
diff --git a/nixpkgs/pkgs/data/fonts/dina-pcf/default.nix b/nixpkgs/pkgs/data/fonts/dina-pcf/default.nix
deleted file mode 100644
index eff0c579a707..000000000000
--- a/nixpkgs/pkgs/data/fonts/dina-pcf/default.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{stdenv, fetchurl, unzip, bdftopcf, mkfontdir, mkfontscale}:
-
-stdenv.mkDerivation {
-  version = "2.92";
-  pname = "dina-font-pcf";
-
-  src = fetchurl {
-    url = "http://www.donationcoder.com/Software/Jibz/Dina/downloads/Dina.zip";
-    sha256 = "1kq86lbxxgik82aywwhawmj80vsbz3hfhdyhicnlv9km7yjvnl8z";
-  };
-
-  nativeBuildInputs = [ unzip bdftopcf mkfontdir mkfontscale ];
-
-  dontBuild = true;
-  patchPhase = "sed -i 's/microsoft-cp1252/ISO8859-1/' *.bdf";
-  installPhase = ''
-    _get_font_size() {
-      _pt=$\{1%.bdf}
-      _pt=$\{_pt#*-}
-      echo $_pt
-    }
-
-    for i in Dina_i400-*.bdf; do
-        bdftopcf -t -o DinaItalic$(_get_font_size $i).pcf $i
-    done
-    for i in Dina_i700-*.bdf; do
-        bdftopcf -t -o DinaBoldItalic$(_get_font_size $i).pcf $i
-    done
-    for i in Dina_r400-*.bdf; do
-        bdftopcf -t -o DinaMedium$(_get_font_size $i).pcf $i
-    done
-    for i in Dina_r700-*.bdf; do
-        bdftopcf -t -o DinaBold$(_get_font_size $i).pcf $i
-    done
-    gzip -n *.pcf
-
-    fontDir="$out/share/fonts/misc"
-    mkdir -p "$fontDir"
-    mv *.pcf.gz "$fontDir"
-
-    cd "$fontDir"
-    mkfontdir
-    mkfontscale
-  '';
-
-  preferLocalBuild = true;
-
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "0v0qn5zwq4j1yx53ypg6w6mqx6dk8l1xix0188b0k4z3ivgnflyb";
-
-  meta = with stdenv.lib; {
-    description = "A monospace bitmap font aimed at programmers";
-    longDescription = ''
-      Dina is a monospace bitmap font, primarily aimed at programmers. It is
-      relatively compact to allow a lot of code on screen, while (hopefully)
-      clear enough to remain readable even at high resolutions.
-    '';
-    homepage = https://www.donationcoder.com/Software/Jibz/Dina/;
-    downloadPage = https://www.donationcoder.com/Software/Jibz/Dina/;
-    license = licenses.free;
-    maintainers = [ maintainers.prikhi ];
-  };
-}
diff --git a/nixpkgs/pkgs/data/fonts/dina/default.nix b/nixpkgs/pkgs/data/fonts/dina/default.nix
index 0d4cd286219e..8bc1af60ab4d 100644
--- a/nixpkgs/pkgs/data/fonts/dina/default.nix
+++ b/nixpkgs/pkgs/data/fonts/dina/default.nix
@@ -1,20 +1,55 @@
-{ stdenv, fetchzip }:
+{ stdenv, fetchurl, unzip
+, bdftopcf, mkfontscale, fontforge
+}:
 
-let
+stdenv.mkDerivation {
+  pname = "dina-font";
   version = "2.92";
-in fetchzip {
-  name = "dina-font-${version}";
 
-  # `meta.homepage` has no direct download link
-  url = "https://github.com/ProgrammingFonts/ProgrammingFonts/archive/b15ef365146be7eef4a46979cfe157c5aeefb7c0.zip";
+  src = fetchurl {
+    url = "http://www.donationcoder.com/Software/Jibz/Dina/downloads/Dina.zip";
+    sha256 = "1kq86lbxxgik82aywwhawmj80vsbz3hfhdyhicnlv9km7yjvnl8z";
+  };
+
+  nativeBuildInputs =
+    [ unzip bdftopcf mkfontscale fontforge ];
+
+  patchPhase = "sed -i 's/microsoft-cp1252/ISO8859-1/' *.bdf";
+
+  buildPhase = ''
+    newName() {
+      test "''${1:5:1}" = i && _it=Italic || _it=
+      case ''${1:6:3} in
+        400) test -z $it && _weight=Medium ;;
+        700) _weight=Bold ;;
+      esac
+      _pt=''${1%.bdf}
+      _pt=''${_pt#*-}
+      echo "Dina$_weight$_it$_pt"
+    }
+
+    # convert bdf fonts to pcf
+    for i in *.bdf; do
+      bdftopcf -t -o $(newName "$i").pcf "$i"
+    done
+    gzip -n -9 *.pcf
+
+    # convert bdf fonts to otb
+    for i in *.bdf; do
+      fontforge -lang=ff -c "Open(\"$i\"); Generate(\"$(newName $i).otb\")"
+    done
+  '';
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile '*/Dina/*.bdf' -d $out/share/fonts
-    chmod u-x $out/share/fonts/*
+  installPhase = ''
+    install -D -m 644 -t "$out/share/fonts/misc" *.pcf.gz
+    install -D -m 644 -t "$bdf/share/fonts/misc" *.bdf
+    install -D -m 644 -t "$otb/share/fonts/misc" *.otb
+    mkfontdir "$out/share/fonts/misc"
+    mkfontdir "$bdf/share/fonts/misc"
+    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  sha256 = "02a6hqbq18sw69npylfskriqhvj1nsk65hjjyd05nl913ycc6jl7";
+  outputs = [ "out" "bdf" "otb" ];
 
   meta = with stdenv.lib; {
     description = "A monospace bitmap font aimed at programmers";
diff --git a/nixpkgs/pkgs/data/fonts/envypn-font/default.nix b/nixpkgs/pkgs/data/fonts/envypn-font/default.nix
index 351a0617ddc8..c26569166a30 100644
--- a/nixpkgs/pkgs/data/fonts/envypn-font/default.nix
+++ b/nixpkgs/pkgs/data/fonts/envypn-font/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl, mkfontdir, mkfontscale }:
+{ stdenv, fetchurl, libfaketime
+, fonttosfnt, mkfontscale
+}:
 
 stdenv.mkDerivation {
   name = "envypn-font-1.7.1";
@@ -8,26 +10,28 @@ stdenv.mkDerivation {
     sha256 = "bda67b6bc6d5d871a4d46565d4126729dfb8a0de9611dae6c68132a7b7db1270";
   };
 
-  nativeBuildInputs = [ mkfontdir mkfontscale ];
+  nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];
 
   unpackPhase = ''
     tar -xzf $src --strip-components=1
   '';
 
+  buildPhase = ''
+    # convert pcf fonts to otb
+    for i in *e.pcf.gz; do
+      faketime -f "1970-01-01 00:00:01" \
+      fonttosfnt -v -o "$(basename "$i" .pcf.gz)".otb "$i"
+    done
+  '';
+
   installPhase = ''
-    # install the pcf fonts (for xorg applications)
-    fontDir="$out/share/fonts/envypn"
-    mkdir -p "$fontDir"
-    mv *.pcf.gz "$fontDir"
-
-    cd "$fontDir"
-    mkfontdir
-    mkfontscale
+    install -D -m 644 -t "$out/share/fonts/misc" *.pcf.gz
+    install -D -m 644 -t "$otb/share/fonts/misc" *.otb
+    mkfontdir "$out/share/fonts/misc"
+    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "04sjxfrlvjc2f0679cy4w366mpzbn3fp6gnrjb8vy12vjd1ffnc1";
+  outputs = [ "out" "otb" ];
 
   meta = with stdenv.lib; {
     description = ''
@@ -35,6 +39,6 @@ stdenv.mkDerivation {
     '';
     homepage = "http://ywstd.fr/p/pj/#envypn";
     license = licenses.miros;
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/gdouros/default.nix b/nixpkgs/pkgs/data/fonts/gdouros/default.nix
index 71c92a72e593..afe73aa1caf1 100644
--- a/nixpkgs/pkgs/data/fonts/gdouros/default.nix
+++ b/nixpkgs/pkgs/data/fonts/gdouros/default.nix
@@ -26,10 +26,11 @@ let
 
     meta = {
       inherit description;
-      # In lieu of a license:
-      # Fonts in this site are offered free for any use;
-      # they may be installed, embedded, opened, edited, modified, regenerated, posted, packaged and redistributed.
-      license = lib.licenses.free;
+      # see http://users.teilar.gr/~g1951d/License.pdf
+      # quite draconian: non-commercial, no modifications,
+      # no redistribution, "a single instantiation and no
+      # network installation"
+      license = lib.licenses.unfree;
       homepage = http://users.teilar.gr/~g1951d/;
     };
   };
diff --git a/nixpkgs/pkgs/data/fonts/gohufont/default.nix b/nixpkgs/pkgs/data/fonts/gohufont/default.nix
index e4e9954d1187..b331edf7aa1e 100644
--- a/nixpkgs/pkgs/data/fonts/gohufont/default.nix
+++ b/nixpkgs/pkgs/data/fonts/gohufont/default.nix
@@ -1,64 +1,69 @@
 { stdenv, fetchurl, fetchFromGitHub
-, mkfontdir, mkfontscale, bdf2psf, bdftopcf
+, mkfontscale, bdf2psf, bdftopcf
+, fonttosfnt, libfaketime
 }:
 
 stdenv.mkDerivation rec {
   pname = "gohufont";
   version = "2.1";
 
-  src = fetchurl {
-    url = "https://font.gohu.org/${pname}-${version}.tar.gz";
-    sha256 = "10dsl7insnw95hinkcgmp9rx39lyzb7bpx5g70vswl8d6p4n53bm";
-  };
-
-  bdf = fetchFromGitHub {
+  src = fetchFromGitHub {
     owner  = "hchargois";
     repo   = "gohufont";
     rev    = "cc36b8c9fed7141763e55dcee0a97abffcf08224";
     sha256 = "1hmp11mrr01b29phw0xyj4h9b92qz19cf56ssf6c47c5j2c4xmbv";
   };
 
-  nativeBuildInputs = [ mkfontdir mkfontscale bdf2psf bdftopcf ];
+  nativeBuildInputs =
+    [ mkfontscale bdf2psf bdftopcf
+      fonttosfnt libfaketime
+    ];
 
   buildPhase = ''
-    # convert bdf to psf fonts
+    # convert bdf fonts to psf
     build=$(pwd)
     mkdir psf
     cd ${bdf2psf}/share/bdf2psf
-    for i in $bdf/*.bdf; do
+    for i in $src/*.bdf; do
+      name=$(basename $i .bdf)
       bdf2psf \
         --fb "$i" standard.equivalents \
         ascii.set+useful.set+linux.set 512 \
-        "$build/psf/$(basename $i .bdf).psf"
+        "$build/psf/$name.psf"
     done
     cd $build
 
-    # convert hidpi variant to pcf
-    for i in $bdf/hidpi/*.bdf; do
-        name=$(basename $i .bdf).pcf
-        bdftopcf -o "$name" "$i"
+    # convert bdf fonts to pcf
+    for i in *.bdf $src/hidpi/*.bdf; do
+        name=$(basename $i .bdf)
+        bdftopcf -o "$name.pcf" "$i"
+    done
+
+    # convert unicode bdf fonts to otb
+    for i in *-uni*.bdf $src/hidpi/*-uni*.bdf; do
+        name=$(basename $i .bdf)
+        faketime -f "1970-01-01 00:00:01" \
+        fonttosfnt -v -o "$name.otb" "$i"
     done
   '';
 
   installPhase = ''
     # install the psf fonts (for the virtual console)
     fontDir="$out/share/consolefonts"
-    mkdir -p "$fontDir"
-    mv -t "$fontDir" psf/*.psf
+    install -D -m 644 -t "$fontDir" psf/*.psf
 
     # install the pcf fonts (for xorg applications)
     fontDir="$out/share/fonts/misc"
-    mkdir -p "$fontDir"
-    mv -t "$fontDir" *.pcf.gz *.pcf
+    install -D -m 644 -t "$fontDir" *.pcf
+    mkfontdir "$fontDir"
 
-    cd "$fontDir"
-    mkfontdir
-    mkfontscale
+    # install the otb fonts (for gtk applications)
+    fontDir="$otb/share/fonts/misc"
+    install -D -m 644 -t "$fontDir" *.otb
+    mkfontdir "$fontDir"
   '';
 
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash     = "0kl7k8idl0fnsap2c4j02i33z017p2s4gi2cgspy6ica46fczcc1";
+  outputs = [ "out" "otb" ];
 
   meta = with stdenv.lib; {
     description = ''
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/default.nix b/nixpkgs/pkgs/data/fonts/iosevka/default.nix
index e21110658261..4ff0ed5fe49b 100644
--- a/nixpkgs/pkgs/data/fonts/iosevka/default.nix
+++ b/nixpkgs/pkgs/data/fonts/iosevka/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
 
   buildPhase = ''
     runHook preBuild
-    npm run build -- ttf::$pname
+    npm run build --no-update-notifier -- ttf::$pname >/dev/null
     runHook postBuild
   '';
 
diff --git a/nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix b/nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix
index 21c598b6cddf..8a7e841df672 100644
--- a/nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix
+++ b/nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix
@@ -1,18 +1,19 @@
 { lib, fetchzip }:
 
 let
-  version = "1.0.2";
+  version = "1.0.4";
 in
 fetchzip rec {
   name = "JetBrainsMono-${version}";
 
   url = "https://github.com/JetBrains/JetBrainsMono/releases/download/v${version}/JetBrainsMono-${version}.zip";
 
-  sha256 = "0fyn7yb1m9gkzbbzv25f8v6qzv7w4amqv3z4fpfb262l1f6yq41i";
+  sha256 = "1m6wppz6mrh7475d92yvwrjgbwkkcfq444v0im90f5c7fsf3dzbd";
 
   postFetch = ''
     mkdir -p $out/share/fonts
     unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.eot -d $out/share/fonts/eot
     unzip -j $downloadedFile \*.woff -d $out/share/fonts/woff
     unzip -j $downloadedFile \*.woff2 -d $out/share/fonts/woff2
   '';
diff --git a/nixpkgs/pkgs/data/fonts/jost/default.nix b/nixpkgs/pkgs/data/fonts/jost/default.nix
index ecada2eda7b7..3c1403da2639 100644
--- a/nixpkgs/pkgs/data/fonts/jost/default.nix
+++ b/nixpkgs/pkgs/data/fonts/jost/default.nix
@@ -1,7 +1,7 @@
 {stdenv, fetchzip}:
 
 let
-  version = "3.3";
+  version = "3.5";
 in fetchzip {
   name = "jost-${version}";
   url = "https://github.com/indestructible-type/Jost/releases/download/${version}/Jost.zip";
@@ -11,7 +11,7 @@ in fetchzip {
     unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
   '';
 
-  sha256="00nrhs3aif2hc4yhjhbn9ywmydl2w0g0hv5m5is8gv7wx8yi2j9z";
+  sha256="0l78vhmbsyfmrva5wc76pskhxqryyg8q5xddpj9g5wqsddy525dq";
 
   meta = with stdenv.lib; {
     homepage = https://github.com/indestructible-type/Jost;
diff --git a/nixpkgs/pkgs/data/fonts/merriweather-sans/default.nix b/nixpkgs/pkgs/data/fonts/merriweather-sans/default.nix
new file mode 100644
index 000000000000..397f42236b52
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/merriweather-sans/default.nix
@@ -0,0 +1,34 @@
+{ stdenvNoCC
+, lib
+, fetchFromGitHub
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "merriweather-sans";
+  version = "1.008";
+
+  src = fetchFromGitHub {
+    owner = "SorkinType";
+    repo = "Merriweather-Sans";
+    rev = "8a1b078e3aeec6aecc856c3422898816af9b9dc7";
+    sha256 = "1f6a64bv4b4b1v3g2pgrzxcys8rk12wq6wfxamgzligcq5fxaffd";
+  };
+
+  # TODO: it would be nice to build this from scratch, but lots of
+  # Python dependencies to package (fontmake, gftools)
+
+  installPhase = ''
+    install -m444 -Dt $out/share/fonts/truetype/${pname} fonts/ttfs/*.ttf
+    install -m444 -Dt $out/share/fonts/woff/${pname} fonts/woff/*.woff
+    install -m444 -Dt $out/share/fonts/woff2/${pname} fonts/woff2/*.woff2
+    # TODO: install variable version?
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/SorkinType/Merriweather-Sans";
+    description = "Merriweather Sans is a low-contrast semi-condensed sans-serif text typeface family designed to be pleasant to read at very small sizes";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ emily ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/merriweather/default.nix b/nixpkgs/pkgs/data/fonts/merriweather/default.nix
new file mode 100644
index 000000000000..1768c44bc03c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/merriweather/default.nix
@@ -0,0 +1,35 @@
+{ stdenvNoCC
+, lib
+, fetchFromGitHub
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "merriweather";
+  version = "2.005";
+
+  src = fetchFromGitHub {
+    owner = "SorkinType";
+    repo = "Merriweather";
+    rev = "4fd88c9299009d1c1d201e7da3ff75cf1de5153a";
+    sha256 = "1ndycja2jzhcfbqbm0p6ka2zl1i1pdbkf0crw2lp3pi4k89wlm29";
+  };
+
+  # TODO: it would be nice to build this from scratch, but lots of
+  # Python dependencies to package (fontmake, gftools)
+
+  installPhase = ''
+    install -m444 -Dt $out/share/fonts/opentype/${pname} fonts/otf/*.otf
+    install -m444 -Dt $out/share/fonts/truetype/${pname} fonts/ttfs/*.ttf
+    install -m444 -Dt $out/share/fonts/woff/${pname} fonts/woff/*.woff
+    install -m444 -Dt $out/share/fonts/woff2/${pname} fonts/woff2/*.woff2
+    # TODO: install variable version?
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/SorkinType/Merriweather";
+    description = "Merriweather was designed to be a text face that is pleasant to read on screens";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ emily ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/navilu/default.nix b/nixpkgs/pkgs/data/fonts/navilu/default.nix
new file mode 100644
index 000000000000..0433ad22de53
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/navilu/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, fontforge }:
+
+stdenv.mkDerivation rec {
+  pname = "navilu-font";
+  version = "1.2";
+
+  src = fetchFromGitHub {
+    owner = "aravindavk";
+    repo = "Navilu";
+    rev = "v${version}";
+    sha256 = "1vm6n04siaa0zf6jzp5s2gzgr2qxs3vdnmcmg4dcy07py2kd2fla";
+  };
+
+  nativeBuildInputs = [ fontforge ];
+
+  dontConfigure = true;
+
+  preBuild = "patchShebangs generate.pe";
+
+  installPhase = "install -Dm444 -t $out/share/fonts/truetype/ Navilu.ttf";
+
+  meta = with stdenv.lib; src.meta // {
+    description = "A Kannada handwriting font";
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ehmry ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix b/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix
index 454cbc092810..8ffd0e3e43fd 100644
--- a/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchFromGitHub, which, withFont ? "" }:
 
 stdenv.mkDerivation rec {
-  version = "2.0.0";
+  version = "2.1.0";
   pname = "nerdfonts";
   src = fetchFromGitHub {
     owner = "ryanoasis";
     repo = "nerd-fonts";
     rev = version;
-    sha256 = "09i467hyskvzj2wn5sj6shvc9pb0a0rx5iknjkkkbg1ng3bla7nm";
+    sha256 = "1la79y16k9rwcl2zsxk73c0kgdms2ma43kpjfqnq5jlbfdj0niwg";
   };
   dontPatchShebangs = true;
   buildInputs = [ which ];
diff --git a/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix b/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
index 1f4e9cbeef70..d90c796a48a4 100644
--- a/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
@@ -1,28 +1,44 @@
-{ stdenv, fetchzip, fetchFromGitHub, optipng, cairo, python3Packages, pkgconfig, pngquant, which, imagemagick }:
+{ stdenv
+, stdenvNoCC
+, lib
+, fetchFromGitHub
+, fetchzip
+, optipng
+, cairo
+, python3Packages
+, pkgconfig
+, pngquant
+, which
+, imagemagick
+}:
 
 let
-  mkNoto = { name, weights, sha256, }:
-    let
-      version = "2018-11-30";
-      ref = "85e78f831469323c85847e23f95026c894159135";
-    in
-    fetchzip {
-      name = "${name}-${version}";
-      inherit sha256;
-      url = "https://github.com/googlei18n/noto-fonts/archive/${ref}.zip";
-      postFetch = ''
-        unzip $downloadedFile
-        mkdir -p $out/share/fonts/noto
-        # Also copy unhinted & alpha fonts for better glyph coverage,
-        # if they don't have a hinted version
-        # (see https://groups.google.com/d/msg/noto-font/ZJSkZta4n5Y/tZBnLcPdbS0J)
-        for ttf in noto-fonts-*/{hinted,unhinted,alpha}/*-${weights}.ttf
-        do
-            cp -n "$ttf" -t "$out/share/fonts/noto"
-        done
+  mkNoto = { pname, weights }:
+    stdenvNoCC.mkDerivation {
+      inherit pname;
+      version = "2020-01-23";
+
+      src = fetchFromGitHub {
+        owner = "googlefonts";
+        repo = "noto-fonts";
+        rev = "f4726a2ec36169abd02a6d8abe67c8ff0236f6d8";
+        sha256 = "0zc1r7zph62qmvzxqfflsprazjf6x1qnwc2ma27kyzh6v36gaykw";
+      };
+
+      installPhase = ''
+        # We copy in reverse preference order -- unhinted first, then
+        # hinted -- to get the "best" version of each font while
+        # maintaining maximum coverage.
+        #
+        # TODO: install OpenType, variable versions?
+        local out_ttf=$out/share/fonts/truetype/noto
+        install -m444 -Dt $out_ttf phaseIII_only/unhinted/ttf/*/*-${weights}.ttf
+        install -m444 -Dt $out_ttf phaseIII_only/hinted/ttf/*/*-${weights}.ttf
+        install -m444 -Dt $out_ttf unhinted/*/*-${weights}.ttf
+        install -m444 -Dt $out_ttf hinted/*/*-${weights}.ttf
       '';
-      meta = with stdenv.lib; {
-        inherit version;
+
+      meta = with lib; {
         description = "Beautiful and free fonts for many languages";
         homepage = https://www.google.com/get/noto/;
         longDescription =
@@ -39,41 +55,40 @@ let
 
           This package also includes the Arimo, Cousine, and Tinos fonts.
         '';
-        license = licenses.asl20;
+        license = licenses.ofl;
         platforms = platforms.all;
-        maintainers = with maintainers; [ mathnerd314 ];
+        maintainers = with maintainers; [ mathnerd314 emily ];
       };
     };
 in
 
 {
   noto-fonts = mkNoto {
-    name = "noto-fonts";
+    pname = "noto-fonts";
     weights = "{Regular,Bold,Light,Italic,BoldItalic,LightItalic}";
-    sha256 = "0kvq5ldip2ra2njlxg9fxj46nfqzq5l3n359d3kwfbsld7hixm2d";
   };
+
   noto-fonts-extra = mkNoto {
-    name = "noto-fonts-extra";
+    pname = "noto-fonts-extra";
     weights = "{Black,Condensed,Extra,Medium,Semi,Thin}*";
-    sha256 = "0l94aiy1b3qirg2mmbagbr0014vqk32za79pzck1acy2hgy716kq";
   };
-  noto-fonts-cjk = let version = "2.001"; in fetchFromGitHub rec {
-    name = "noto-fonts-cjk-${version}";
 
-    # Same as https://noto-website.storage.googleapis.com/pkgs/NotoSansCJK.ttc.zip but versioned & with no extra SIL license file
-    owner = "googlei18n";
-    repo = "noto-cjk";
-    rev = "NotoSansV${version}";
+  noto-fonts-cjk = stdenvNoCC.mkDerivation rec {
+    pname = "noto-fonts-cjk";
+    version = "2.001";
 
-    postFetch = ''
-      mkdir -p $out/share/fonts/noto
-      tar xOf $downloadedFile noto-cjk-${rev}/NotoSansCJK.ttc.zip |
-          funzip > $out/share/fonts/noto/NotoSansCJK.ttc
+    src = fetchzip {
+      url = "https://raw.githubusercontent.com/googlefonts/noto-cjk/NotoSansV${version}/NotoSansCJK.ttc.zip";
+      # __MACOSX...
+      stripRoot = false;
+      sha256 = "0ik4z2b15i0pghskgfm3adzb0h35fr4gyzvz3bq49hhkhn9h85vi";
+    };
+
+    buildCommand = ''
+      install -m444 -Dt $out/share/fonts/opentype/noto-cjk $src/*.ttc
     '';
-    sha256 = "1r2wlw4vmrf2vlwhgjfvndlq1bj4ys5jzspmv6cz5cg3hpqqf528";
 
-    meta = with stdenv.lib; {
-      inherit version;
+    meta = with lib; {
       description = "Beautiful and free fonts for CJK languages";
       homepage = https://www.google.com/get/noto/help/cjk/;
       longDescription =
@@ -90,9 +105,10 @@ in
       '';
       license = licenses.ofl;
       platforms = platforms.all;
-      maintainers = with maintainers; [ mathnerd314 ];
+      maintainers = with maintainers; [ mathnerd314 emily ];
     };
   };
+
   noto-fonts-emoji = let
     version = "unstable-2019-10-22";
   in stdenv.mkDerivation {
@@ -122,7 +138,7 @@ in
       cp NotoColorEmoji.ttf fonts/NotoEmoji-Regular.ttf $out/share/fonts/noto
     '';
 
-    meta = with stdenv.lib; {
+    meta = with lib; {
       inherit version;
       description = "Color and Black-and-White emoji fonts";
       homepage = https://github.com/googlei18n/noto-emoji;
diff --git a/nixpkgs/pkgs/data/fonts/profont/default.nix b/nixpkgs/pkgs/data/fonts/profont/default.nix
index 89565910f7a5..d1f2cd9c5af1 100644
--- a/nixpkgs/pkgs/data/fonts/profont/default.nix
+++ b/nixpkgs/pkgs/data/fonts/profont/default.nix
@@ -1,29 +1,48 @@
-{ lib, fetchzip }:
+{ stdenv, fetchzip, mkfontscale }:
 
-fetchzip {
-  name = "profont";
+stdenv.mkDerivation {
+  pname = "profont";
+  version = "2019-11";
 
-  url = "http://web.archive.org/web/20160707013914/http://tobiasjung.name/downloadfile.php?file=profont-x11.zip";
+  # Note: stripRoot doesn't work because the archive
+  # constains the metadata directory `__MACOSX`.
+  src = fetchzip {
+    url = "https://tobiasjung.name/downloadfile.php?file=profont-x11.zip";
+    sha256 = "12dbm87wvcpmn7nzgzwlk45cybp091diara8blqm6129ps27z6kb";
+    stripRoot = false;
+  } + /profont-x11;
 
-  postFetch = ''
-    unzip -j $downloadedFile
+  srcOtb = fetchzip {
+    url = "https://tobiasjung.name/downloadfile.php?file=profont-otb.zip";
+    sha256 = "18rfhfqrsj3510by0w1a7ak5as6r2cxh8xv02xc1y30mfa6g24x6";
+    stripRoot = false;
+  } + /profont-otb;
 
-    mkdir -p $out/share/doc/$name $out/share/fonts/misc
+  dontBuild = true;
 
-    cp LICENSE $out/share/doc/$name/LICENSE
+  nativeBuildInputs = [ mkfontscale ];
 
+  installPhase = ''
+    mkdir -p "$out/share/fonts/misc"
     for f in *.pcf; do
-      gzip -c "$f" > $out/share/fonts/misc/"$f".gz
+      gzip -n -9 -c "$f" > "$out/share/fonts/misc/$f.gz"
     done
+    install -D -m 644 LICENSE -t "$out/share/doc/$pname"
+    mkfontdir "$out/share/fonts/misc"
+
+    cd $srcOtb
+    install -D -m 644 profontn.otb -t $otb/share/fonts/misc
+    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  sha256 = "1calqmvrfv068w61f614la8mg8szas6m5i9s0lsmwjhb4qwjyxbw";
+  outputs = [ "out" "otb" ];
 
-  meta = with lib; {
-    homepage = http://tobiasjung.name;
+  meta = with stdenv.lib; {
+    homepage = https://tobiasjung.name/profont/;
     description = "A monospaced font created to be a most readable font for programming";
-    maintainers = with lib.maintainers; [ myrl ];
+    maintainers = with maintainers; [ myrl ];
     license = licenses.mit;
     platforms = platforms.all;
   };
+
 }
diff --git a/nixpkgs/pkgs/data/fonts/proggyfonts/default.nix b/nixpkgs/pkgs/data/fonts/proggyfonts/default.nix
index 580ea61a2df5..51165ceac13e 100644
--- a/nixpkgs/pkgs/data/fonts/proggyfonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/proggyfonts/default.nix
@@ -1,6 +1,4 @@
-{ stdenv, fetchurl, mkfontdir, mkfontscale }:
-
-# adapted from https://aur.archlinux.org/packages/proggyfonts/
+{ stdenv, fetchurl, mkfontscale }:
 
 stdenv.mkDerivation {
   name = "proggyfonts-0.1";
@@ -10,31 +8,28 @@ stdenv.mkDerivation {
     sha256 = "1plcm1sjpa3hdqhhin48fq6zmz3ndm4md72916hd8ff0w6596q0n";
   };
 
-  nativeBuildInputs = [ mkfontdir mkfontscale ];
+  nativeBuildInputs = [ mkfontscale ];
 
   installPhase =
     ''
-      mkdir -p $out/share/doc/$name $out/share/fonts/misc $out/share/fonts/truetype
-
-      cp Licence.txt $out/share/doc/$name/LICENSE
-
+      # compress pcf fonts
+      mkdir -p $out/share/fonts/misc
       rm Speedy.pcf # duplicated as Speedy11.pcf
       for f in *.pcf; do
-        gzip -c "$f" > $out/share/fonts/misc/"$f".gz
+        gzip -n -9 -c "$f" > $out/share/fonts/misc/"$f".gz
       done
-      cp *.bdf $out/share/fonts/misc
-      cp *.ttf $out/share/fonts/truetype
 
-      for f in misc truetype; do
-        cd $out/share/fonts/$f
-        mkfontscale
-        mkfontdir
-      done
+      install -D -m 644 *.bdf -t "$out/share/fonts/misc"
+      install -D -m 644 *.ttf -t "$out/share/fonts/truetype"
+      install -D -m 644 Licence.txt -t "$out/share/doc/$name"
+
+      mkfontscale "$out/share/fonts/truetype"
+      mkfontdir   "$out/share/fonts/misc"
     '';
 
   outputHashAlgo = "sha256";
   outputHashMode = "recursive";
-  outputHash = "1l1sxmzp3gcd2d32nxar6xwd1v1w18a9gfh57zmsrfpspnfbz7y1";
+  outputHash = "1x196rp3wqjd7m57bgp5kfy5jmj97qncxi1vwibs925ji7dqzfgf";
 
   meta = with stdenv.lib; {
     homepage = http://upperbounds.net;
diff --git a/nixpkgs/pkgs/data/fonts/recursive/default.nix b/nixpkgs/pkgs/data/fonts/recursive/default.nix
index d3d65f8e515c..8aab8c0cd721 100644
--- a/nixpkgs/pkgs/data/fonts/recursive/default.nix
+++ b/nixpkgs/pkgs/data/fonts/recursive/default.nix
@@ -1,36 +1,23 @@
-{ stdenv, fetchzip }:
+{ lib, fetchzip }:
 
-stdenv.mkDerivation rec {
-  pname = "recursive";
-  version = "1.022";
+let
+  version = "1.043";
+in
+fetchzip {
+  name = "recursive-${version}";
 
-  srcs = [
-    (fetchzip {
-      name = "${pname}";
-      url = "https://github.com/arrowtype/recursive/releases/download/v${version}/recursive-beta_1_022.zip";
-      sha256 = "09nr1fli7ksv8z4yb25c4xidwsqq50av18qrybsy4kqy5c22957v";
-      stripRoot = false;
-    })
+  url = "https://github.com/arrowtype/recursive/releases/download/${version}/Recursive-Beta_${version}.zip";
 
-    (fetchzip {
-      name = "${pname}-static";
-      url = "https://github.com/arrowtype/recursive/releases/download/v${version}/recursive-static_fonts-b020.zip";
-      sha256 = "1wlj113gjm26ra9y2r2b3syis2wx0mjq2m8i8xpwscp1kflma1r6";
-      stripRoot = false;
-    })
-  ];
-
-  sourceRoot = ".";
-
-  installPhase = ''
-    mkdir -p $out/share/fonts/{opentype,truetype,woff2}
-    find -name "*.otf" -exec cp "{}" $out/share/fonts/opentype \;
-    find -name "*.ttf" -exec cp "{}" $out/share/fonts/truetype \;
-    find -name "*.woff2" -exec cp "{}" $out/share/fonts/woff2 \;
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.ttf   -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.woff2 -d $out/share/fonts/woff2
   '';
 
-  meta = with stdenv.lib; {
-    homepage = https://github.com/arrowtype/recursive;
+  sha256 = "0y7wg3ssr4j0r8dyxd0i0ji8bjvipzsqf0l6wznl5sfxk41mvjvd";
+
+  meta = with lib; {
+    homepage = "https://recursive.design/";
     description = "A variable font family for code & UI";
     license = licenses.ofl;
     maintainers = [ maintainers.eadwu ];
diff --git a/nixpkgs/pkgs/data/fonts/rictydiminished-with-firacode/default.nix b/nixpkgs/pkgs/data/fonts/rictydiminished-with-firacode/default.nix
index bf19fb8238ff..ccfc72dc1809 100644
--- a/nixpkgs/pkgs/data/fonts/rictydiminished-with-firacode/default.nix
+++ b/nixpkgs/pkgs/data/fonts/rictydiminished-with-firacode/default.nix
@@ -1,13 +1,13 @@
-{ stdenv, fetchgit, fontforge, python2, python3 }:
+{ stdenv, fetchgit, fontforge, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "rictydiminished-with-firacode";
-  version = "1.2.0";
+  version = "1.2.2";
 
   src = fetchgit {
     url = "https://github.com/hakatashi/RictyDiminished-with-FiraCode.git";
     rev = version;
-    sha256 = "1vlzx5dsx6j9d9q84pdnwcxjy7mr1sv8sacx0zgfxhxnj66n1gnn";
+    sha256 = "sha256-twh3yLAM4MUjWzSDNmo8gNIRf01hieXeOS334sNdFk4=";
     fetchSubmodules = true;
   };
 
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     substituteInPlace apply-feature.py --replace \
       'ricty = ttLib.TTFont(options.in_font)' \
       'ricty = ttLib.TTFont(options.in_font, recalcTimestamp=False)'
-    substituteInPlace build-py3.py --replace \
+    substituteInPlace build.py --replace \
       'datetime.date.today()' \
       'datetime.date.fromtimestamp(float(os.environ["SOURCE_DATE_EPOCH"]))'
   '';
@@ -30,21 +30,16 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [
-    # Python 3 not supported by parts of the build system
-    # https://github.com/hakatashi/RictyDiminished-with-FiraCode/pull/3
-    (fontforge.override {
-      python = python2;
-    })
     (python3.withPackages (ps: [
       ps.jinja2
-      ps.py3to2
       ps.fonttools
+      ps.fontforge
     ]))
   ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/hakatashi/RictyDiminished-with-FiraCode";
-    description = "The best Japanese programming font meets the awesone ligatures of Firacode";
+    description = "The best Japanese programming font meets the awesome ligatures of Firacode";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = with maintainers; [ mt-caret ];
diff --git a/nixpkgs/pkgs/data/fonts/siji/default.nix b/nixpkgs/pkgs/data/fonts/siji/default.nix
index a0acf78d855d..336fe48f54da 100644
--- a/nixpkgs/pkgs/data/fonts/siji/default.nix
+++ b/nixpkgs/pkgs/data/fonts/siji/default.nix
@@ -1,26 +1,44 @@
-{ lib, fetchzip }:
+{ stdenv, fetchzip, libfaketime, fonttosfnt, mkfontscale }:
 
-let
-  date = "2016-05-13";
-in fetchzip {
-  name = "siji-${date}";
+stdenv.mkDerivation rec {
+  name = "siji-${version}";
+  version = "2016-05-13";
 
-  url = https://github.com/stark/siji/archive/95369afac3e661cb6d3329ade5219992c88688c1.zip;
+  src = fetchzip {
+    url = https://github.com/stark/siji/archive/95369afac3e661cb6d3329ade5219992c88688c1.zip;
+    sha256 = "1408g4nxwdd682vjqpmgv0cp0bfnzzzwls62cjs9zrds16xa9dpf";
+  };
+
+  nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];
 
-  postFetch = ''
-    unzip -j $downloadedFile
+  buildPhase = ''
+    # compress pcf fonts
+    gzip -n -9 pcf/*
+
+    # convert bdf fonts to otb
+    for i in bdf/*; do
+        name=$(basename $i .bdf)
+        faketime -f "1970-01-01 00:00:01" \
+        fonttosfnt -v -o "$name.otb" "$i"
+    done
+  '';
 
-    install -D *.pcf -t $out/share/fonts/pcf
-    install -D *.bdf -t $out/share/fonts/bdf
+  postInstall = ''
+    install -m 644 -D pcf/* -t "$out/share/fonts/misc"
+    install -m 644 -D bdf/* -t "$bdf/share/fonts/misc"
+    install -m 644 -D *.otb -t "$otb/share/fonts/misc"
+    mkfontdir "$out/share/fonts/misc"
+    mkfontdir "$bdf/share/fonts/misc"
+    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  sha256 = "1ymcbirdbkqaf0xs2y00l0wachb4yxh1fgqm5avqwvccs0lsfj1d";
+  outputs = [ "out" "bdf" "otb" ];
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = https://github.com/stark/siji;
     description = "An iconic bitmap font based on Stlarch with additional glyphs";
-    license = lib.licenses.gpl2;
-    platforms = lib.platforms.all;
-    maintainers = [ lib.maintainers.asymmetric ];
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = [ maintainers.asymmetric ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/source-han-sans/default.nix b/nixpkgs/pkgs/data/fonts/source-han-sans/default.nix
deleted file mode 100644
index 87e24c0e23c3..000000000000
--- a/nixpkgs/pkgs/data/fonts/source-han-sans/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ lib, fetchzip }:
-
-let
-  makePackage = {variant, language, region, sha256}: let
-    version = "1.004R";
-    revision = "5f5311e71cb628321cc0cffb51fb38d862b726aa";
-  in fetchzip {
-    name = "source-han-sans-${variant}-${version}";
-
-    url = "https://github.com/adobe-fonts/source-han-sans/raw/${revision}/SubsetOTF/SourceHanSans${region}.zip";
-
-    postFetch = ''
-      mkdir -p $out/share/fonts
-      unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
-    '';
-
-    inherit sha256;
-
-    meta = {
-      description = "${language} subset of an open source Pan-CJK sans-serif typeface";
-      homepage = https://github.com/adobe-fonts/source-han-sans;
-      license = lib.licenses.ofl;
-      maintainers = with lib.maintainers; [ taku0 ];
-    };
-  };
-in
-{
-  japanese = makePackage {
-    variant = "japanese";
-    language = "Japanese";
-    region = "JP";
-    sha256 = "194zapswaqly8ycx3k66vznlapvpyhdigp3sabsl4hn87j9xsc5v";
-  };
-  korean = makePackage {
-    variant = "korean";
-    language = "Korean";
-    region = "KR";
-    sha256 = "0xij6mciiqgpwv1agqily2jji377x084k7fj4rpv6z0r5vvhqr08";
-  };
-  simplified-chinese = makePackage {
-    variant = "simplified-chinese";
-    language = "Simplified Chinese";
-    region = "CN";
-    sha256 = "038av18d45qr85bgx95j2fm8j64d72nsm9xzg0lpwr9xwni2sbx0";
-  };
-  traditional-chinese = makePackage {
-    variant = "traditional-chinese";
-    language = "Traditional Chinese";
-    region = "TW";
-    sha256 = "1mzcv5hksyxplyv5q3w5nr1xz73hdnvip5gicz35j0by4gc739lr";
-  };
-}
diff --git a/nixpkgs/pkgs/data/fonts/source-han-serif/default.nix b/nixpkgs/pkgs/data/fonts/source-han-serif/default.nix
deleted file mode 100644
index bb5a67c83068..000000000000
--- a/nixpkgs/pkgs/data/fonts/source-han-serif/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ lib, fetchzip }:
-
-let
-  makePackage = {variant, language, region, sha256}: let
-    version = "1.000R";
-    revision = "f6cf97d92b22e7bd77e355a61fe549ae44b6de76";
-  in fetchzip {
-    name = "source-han-serif-${variant}-${version}";
-
-    url = "https://github.com/adobe-fonts/source-han-serif/raw/${revision}/SubsetOTF/SourceHanSerif${region}.zip";
-
-    postFetch = ''
-      mkdir -p $out/share/fonts/opentype
-      unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
-    '';
-
-    inherit sha256;
-
-    meta = {
-      description = "${language} subset of an open source Pan-CJK serif typeface";
-      homepage = https://github.com/adobe-fonts/source-han-sans;
-      license = lib.licenses.ofl;
-      maintainers = with lib.maintainers; [ taku0 ];
-    };
-  };
-in
-{
-  japanese = makePackage {
-    variant = "japanese";
-    language = "Japanese";
-    region = "JP";
-    sha256 = "0cklcy6y3r7pg8z43fzd8zl5g46bkqa1iy0li49rm0fgdaw7kin2";
-  };
-  korean = makePackage {
-    variant = "korean";
-    language = "Korean";
-    region = "KR";
-    sha256 = "0lxrr978djsych8fmbl57n1c9c7ihl61w0b9q4plw27vd6p41fza";
-  };
-  simplified-chinese = makePackage {
-    variant = "simplified-chinese";
-    language = "Simplified Chinese";
-    region = "CN";
-    sha256 = "0k3x4kncjnbipf4i3lkk6b33zpf1ckp5648z51v48q47l3zqpm6p";
-  };
-  traditional-chinese = makePackage {
-    variant = "traditional-chinese";
-    language = "Traditional Chinese";
-    region = "TW";
-    sha256 = "00bi66nlkrargmmf4av24qfd716py7a9smcvr4xnll7fffldxv06";
-  };
-}
diff --git a/nixpkgs/pkgs/data/fonts/source-han/default.nix b/nixpkgs/pkgs/data/fonts/source-han/default.nix
new file mode 100644
index 000000000000..7b6bef0198da
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-han/default.nix
@@ -0,0 +1,54 @@
+{ stdenvNoCC
+, lib
+, fetchzip
+, fetchurl
+}:
+
+let
+  makePackage = { family, description, rev, sha256 }: let
+    Family =
+      lib.toUpper (lib.substring 0 1 family) +
+      lib.substring 1 (lib.stringLength family) family;
+
+    ttc = fetchurl {
+      url = "https://github.com/adobe-fonts/source-han-${family}/releases/download/${rev}/SourceHan${Family}.ttc";
+      inherit sha256;
+    };
+  in stdenvNoCC.mkDerivation {
+    pname = "source-han-${family}";
+    version = lib.removeSuffix "R" rev;
+
+    buildCommand = ''
+      install -m444 -Dt $out/share/fonts/opentype/source-han-${family} ${ttc}
+    '';
+
+    meta = {
+      description = "An open source Pan-CJK ${description} typeface";
+      homepage = "https://github.com/adobe-fonts/source-han-${family}";
+      license = lib.licenses.ofl;
+      maintainers = with lib.maintainers; [ taku0 emily ];
+    };
+  };
+in
+{
+  sans = makePackage {
+    family = "sans";
+    description = "sans-serif";
+    rev = "2.001R";
+    sha256 = "101p8q0sagf1sd1yzwdrmmxvkqq7j0b8hi0ywsfck9w56r4zx54y";
+  };
+
+  serif = makePackage {
+    family = "serif";
+    description = "serif";
+    rev = "1.001R";
+    sha256 = "1d968h30qvvwy3s77m9y3f1glq8zlr6bnfw00yinqa18l97n7k45";
+  };
+
+  mono = makePackage {
+    family = "mono";
+    description = "monospaced";
+    rev = "1.002";
+    sha256 = "1haqffkcgz0cc24y8rc9bg36v8x9hdl8fdl3xc8qz14hvr42868c";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/spleen/default.nix b/nixpkgs/pkgs/data/fonts/spleen/default.nix
index 3e843e30f5ee..c3cfec244e3a 100644
--- a/nixpkgs/pkgs/data/fonts/spleen/default.nix
+++ b/nixpkgs/pkgs/data/fonts/spleen/default.nix
@@ -1,8 +1,8 @@
-{ lib, fetchurl, mkfontdir }:
+{ lib, fetchurl, mkfontscale }:
 
 let
   pname = "spleen";
-  version = "1.6.0";
+  version = "1.7.0";
 in fetchurl {
   name = "${pname}-${version}";
   url = "https://github.com/fcambus/spleen/releases/download/${version}/spleen-${version}.tar.gz";
@@ -11,14 +11,15 @@ in fetchurl {
   recursiveHash = true;
   postFetch = ''
     tar xvf $downloadedFile --strip=1
-    d="$out/share/fonts/X11/misc/spleen"
-    install -Dm644 *.{pcf.gz,psfu,bdf} -t $d
+    d="$out/share/fonts/misc"
+    install -D -m 644 *.{pcf,bdf,otf} -t "$d"
+    install -D -m 644 *.psfu -t "$out/share/consolefonts"
     install -m644 fonts.alias-spleen $d/fonts.alias
 
     # create fonts.dir so NixOS xorg module adds to fp
-    ${mkfontdir}/bin/mkfontdir $d
+    ${mkfontscale}/bin/mkfontdir "$d"
   '';
-  sha256 = "0h9gj7syn87hl5rhwckih92r228zac6b1dvh3034caml8ad3fyla";
+  sha256 = "17dn6spfr8wv63sy009djb4q12q635m13wsyirzn074qabhr9ggg";
 
   meta = with lib; {
     description = "Monospaced bitmap fonts";
diff --git a/nixpkgs/pkgs/data/fonts/sudo/default.nix b/nixpkgs/pkgs/data/fonts/sudo/default.nix
index 3906353d82b8..8becdf83f5dc 100644
--- a/nixpkgs/pkgs/data/fonts/sudo/default.nix
+++ b/nixpkgs/pkgs/data/fonts/sudo/default.nix
@@ -1,19 +1,21 @@
 { lib, fetchzip }:
 
 let
-  version = "0.41";
+  version = "0.42";
 in fetchzip {
   name = "sudo-font-${version}";
   url = "https://github.com/jenskutilek/sudo-font/releases/download/v${version}/sudo.zip";
-  sha256 = "055sz9jg3fg7ypk9nia4dl9haaaq3w8zx5c2cdi3iq9kj8k5gg53";
+  sha256 = "1rqpwihf2sakrhkaw041r3xc9fhafaqn22n79haqkmwv4vmnspch";
 
   postFetch = ''
-    mkdir -p $out/share/fonts/truetype/
+    mkdir -p $out/share/fonts/
     unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype/
+    unzip -j $downloadedFile \*.woff -d $out/share/fonts/woff/
+    unzip -j $downloadedFile \*.woff2 -d $out/share/fonts/woff2/
   '';
   meta = with lib; {
     description = "Font for programmers and command line users";
-    homepage = https://www.kutilek.de/sudo-font/;
+    homepage = "https://www.kutilek.de/sudo-font/";
     license = licenses.ofl;
     maintainers = with maintainers; [ dtzWill ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/data/fonts/tamsyn/default.nix b/nixpkgs/pkgs/data/fonts/tamsyn/default.nix
index 380024e7e1a3..10f96b2b17a8 100644
--- a/nixpkgs/pkgs/data/fonts/tamsyn/default.nix
+++ b/nixpkgs/pkgs/data/fonts/tamsyn/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, mkfontdir, mkfontscale }:
+{ stdenv, fetchurl, fontforge, mkfontscale }:
 
 let
   version = "1.11";
@@ -11,27 +11,32 @@ in stdenv.mkDerivation {
     sha256 = "0kpjzdj8sv5871b8827mjgj9dswk75h94jj5iia2bds18ih1pglp";
    };
 
-  nativeBuildInputs = [ mkfontdir mkfontscale ];
+  nativeBuildInputs = [ fontforge mkfontscale ];
 
   unpackPhase = ''
     tar -xzf $src --strip-components=1
   '';
 
+  postBuild = ''
+    # convert pcf fonts to otb
+    for i in *.pcf; do
+      name=$(basename "$i" .pcf)
+      fontforge -lang=ff -c "Open(\"$i\"); Generate(\"$name.otb\")"
+    done
+
+    # compress pcf fonts
+    gzip -n -9 *.pcf
+  '';
+
   installPhase = ''
-    # install the pcf fonts (for xorg applications)
-    fontDir="$out/share/fonts/tamsyn"
-    mkdir -p "$fontDir"
-    mv *.pcf "$fontDir"
-    mv *.psf.gz "$fontDir"
-
-    cd "$fontDir"
-    mkfontdir
-    mkfontscale
+    install -m 644 -D *.pcf.gz -t "$out/share/fonts/misc"
+    install -m 644 -D *.psf.gz -t "$out/share/consolefonts"
+    install -m 644 -D *.otb    -t "$otb/share/fonts/misc"
+    mkfontdir "$out/share/fonts/misc"
+    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "13l7ighfmn3kmqmchlksfg8ss22ndjk71rs0f9fn5p5zk7s4dn5x";
+  outputs = [ "out" "otb" ];
 
   meta = with stdenv.lib; {
     description = "A monospace bitmap font aimed at programmers";
diff --git a/nixpkgs/pkgs/data/fonts/terminus-font/default.nix b/nixpkgs/pkgs/data/fonts/terminus-font/default.nix
index 358ab959cd0e..88ae9ac72c2e 100644
--- a/nixpkgs/pkgs/data/fonts/terminus-font/default.nix
+++ b/nixpkgs/pkgs/data/fonts/terminus-font/default.nix
@@ -1,4 +1,7 @@
-{ stdenv, fetchurl, python3, bdftopcf, mkfontdir, mkfontscale }:
+{ stdenv, fetchurl, python3
+, libfaketime, fonttosfnt
+, bdftopcf, mkfontscale
+}:
 
 stdenv.mkDerivation rec {
   pname = "terminus-font";
@@ -9,16 +12,36 @@ stdenv.mkDerivation rec {
     sha256 = "1bwlkj39rqbyq57v5yssayav6hzv1n11b9ml2s0dpiyfsn6rqy9l";
   };
 
-  nativeBuildInputs = [ python3 bdftopcf mkfontdir mkfontscale ];
+  nativeBuildInputs =
+    [ python3 bdftopcf libfaketime
+      fonttosfnt mkfontscale
+    ];
 
-  patchPhase = ''
+  enableParallelBuilding = true;
+
+  postPatch = ''
     substituteInPlace Makefile --replace 'fc-cache' '#fc-cache'
   '';
 
-  enableParallelBuilding = true;
+  postBuild = ''
+    # convert unicode bdf fonts to otb
+    for i in *.bdf; do
+      name=$(basename $i .bdf)
+      faketime -f "1970-01-01 00:00:01" \
+      fonttosfnt -v -o "$name.otb" "$i"
+    done
+  '';
+
+  postInstall = ''
+    # install otb fonts (for GTK applications)
+    install -m 644 -D *.otb -t "$otb/share/fonts/misc";
+    mkfontdir "$otb/share/fonts/misc"
+  '';
 
   installTargets = [ "install" "fontdir" ];
 
+  outputs = [ "out" "otb" ];
+
   meta = with stdenv.lib; {
     description = "A clean fixed width font";
     longDescription = ''
diff --git a/nixpkgs/pkgs/data/fonts/tewi/default.nix b/nixpkgs/pkgs/data/fonts/tewi/default.nix
index fbc29cdf5fb1..6245032246c9 100644
--- a/nixpkgs/pkgs/data/fonts/tewi/default.nix
+++ b/nixpkgs/pkgs/data/fonts/tewi/default.nix
@@ -1,37 +1,52 @@
-{stdenv, fetchgit, bdftopcf, mkfontdir, mkfontscale}:
+{ stdenv, fetchFromGitHub, python3
+, bdftopcf, mkfontscale
+, libfaketime, fonttosfnt
+}:
 
 stdenv.mkDerivation rec {
-  date = "2015-06-07";
-  name = "tewi-font-${date}";
+  pname = "tewi-font";
+  version = "2.0.2";
 
-  src = fetchgit {
-    url = "https://github.com/lucy/tewi-font";
-    rev = "ff930e66ae471da4fdc226ffe65fd1ccd13d4a69";
-    sha256 = "0c7k847cp68w20frzsdknpss2cwv3lp970asyybv65jxyl2jz3iq";
+  src = fetchFromGitHub {
+    owner  = "lucy";
+    repo   = pname;
+    rev    = version;
+    sha256 = "1axv9bv10xlcmgfyjh3z5kn5fkg3m6n1kskcs5hvlmyb6m1zk91j";
   };
 
-  nativeBuildInputs = [ bdftopcf mkfontdir mkfontscale ];
-  buildPhase = ''
+  nativeBuildInputs =
+    [ python3 bdftopcf mkfontscale
+      libfaketime fonttosfnt
+    ];
+
+  postPatch = ''
+    # make gzip deterministic
+    sed 's/gzip -9/gzip -9 -n/g' -i Makefile
+
+    # fix python not found
+    patchShebangs scripts/merge
+  '';
+
+  postBuild = ''
+    # convert bdf fonts to otb
     for i in *.bdf; do
-        bdftopcf -o ''${i/bdf/pcf} $i
+      name=$(basename "$i" .bdf)
+      faketime -f "1970-01-01 00:00:01" \
+      fonttosfnt -v -o "$name.otb" "$i"
     done
-
-    gzip -n *.pcf
   '';
 
   installPhase = ''
     fontDir="$out/share/fonts/misc"
-    mkdir -p "$fontDir"
-    mv *.pcf.gz "$fontDir"
+    install -m 644 -D out/* -t "$fontDir"
+    mkfontdir "$fontDir"
 
-    cd "$fontDir"
-    mkfontdir
-    mkfontscale
+    fontDir="$otb/share/fonts/misc"
+    install -m 644 -D *.otb -t "$fontDir"
+    mkfontdir "$fontDir"
   '';
 
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "14dv3m1svahjyb9c1x1570qrmlnynzg0g36b10bqqs8xvhix34yq";
+  outputs = [ "out" "otb" ];
 
   meta = with stdenv.lib; {
     description = "A nice bitmap font, readable even at small sizes";
diff --git a/nixpkgs/pkgs/data/fonts/tt2020/default.nix b/nixpkgs/pkgs/data/fonts/tt2020/default.nix
new file mode 100644
index 000000000000..c92e86032733
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tt2020/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "TT2020";
+  version = "2020-01-05";
+in
+fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "ctrlcctrlv";
+  repo = pname;
+  rev = "2b418fab5f99f72a18b3b2e7e2745ac4e03aa612";
+  sha256 = "1z0nizvs0gp0xl7pn6xcjvsysxhnfm7aqfamplkyvya3fxvhncds";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -Dm644 -t $out/share/fonts/truetype dist/*.ttf
+    install -Dm644 -t $out/share/fonts/woff2 dist/*.woff2
+  '';
+
+  meta = with lib; {
+    description = "An advanced, open source, hyperrealistic, multilingual typewriter font for a new decade";
+    homepage = "https://ctrlcctrlv.github.io/TT2020";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ sikmir ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ttf-envy-code-r/default.nix b/nixpkgs/pkgs/data/fonts/ttf-envy-code-r/default.nix
index 024e1acd4345..0f670f106fd0 100644
--- a/nixpkgs/pkgs/data/fonts/ttf-envy-code-r/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ttf-envy-code-r/default.nix
@@ -17,7 +17,7 @@ in fetchzip {
   sha256 = "0x0r07nax68cmz7490x2crzzgdg4j8fg63wppcmjqm0230bggq2z";
 
   meta = with lib; {
-    homepage = http://damieng.com/blog/tag/envy-code-r;
+    homepage = https://damieng.com/blog/tag/envy-code-r;
     description = "Free scalable coding font by DamienG";
     license = licenses.unfree;
     maintainers = [ maintainers.lyt ];
diff --git a/nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix b/nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix
index 0ea0363763dc..d363f01309be 100644
--- a/nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl, mkfontdir, mkfontscale }:
+{ stdenv, fetchurl, bdftopcf
+, libfaketime, fonttosfnt, mkfontscale
+}:
 
 stdenv.mkDerivation {
   pname = "ucs-fonts";
@@ -21,24 +23,40 @@ stdenv.mkDerivation {
 
   sourceRoot = ".";
 
-  nativeBuildInputs = [ mkfontdir mkfontscale ];
+  nativeBuildInputs =
+    [ bdftopcf libfaketime fonttosfnt
+      mkfontscale
+    ];
 
-  phases = [ "unpackPhase" "installPhase" ];
+  buildPhase = ''
+    for i in *.bdf; do
+      name=$(basename "$i" .bdf)
+
+      # generate pcf fonts (for X11 applications)
+      bdftopcf -t "$i" | gzip -n -9 -c > "$name.pcf.gz"
+
+      # generate otb fonts (for GTK applications)
+      faketime -f "1970-01-01 00:00:01" \
+      fonttosfnt -v -o "$name.otb" "$i"
+    done
+  '';
 
   installPhase = ''
-    mkdir -p $out/share/fonts
-    cp *.bdf $out/share/fonts
-    cd $out/share/fonts
-    mkfontdir
-    mkfontscale
+    install -m 644 -D *.pcf.gz -t "$out/share/fonts/misc"
+    install -m 644 -D *.bdf    -t "$bdf/share/fonts/misc"
+    install -m 644 -D *.otb    -t "$otb/share/fonts/misc"
+
+    mkfontdir "$out/share/fonts/misc"
+    mkfontdir "$bdf/share/fonts/misc"
+    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "12fh3kbsib0baqwk6148fnzqrj9gs4vnl7yd5n9km72sic1z1xwk";
+  outputs = [ "out" "bdf" "otb" ];
 
   meta = with stdenv.lib; {
+    homepage = "https://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html";
     description = "Unicode bitmap fonts";
+    license = licenses.publicDomain;
     maintainers = [ maintainers.raskin ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix b/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
index f9045794fe15..5b07adf822e6 100644
--- a/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
@@ -5,7 +5,7 @@ let
 in
 fetchzip {
   name = "ultimate-oldschool-pc-font-pack-${version}";
-  url = "http://int10h.org/oldschool-pc-fonts/download/ultimate_oldschool_pc_font_pack_v${version}.zip";
+  url = "https://int10h.org/oldschool-pc-fonts/download/ultimate_oldschool_pc_font_pack_v${version}.zip";
   sha256 = "0hid4dgqfy2w26734vcw2rxmpacd9vd1r2qpdr9ww1n3kgc92k9y";
 
   postFetch= ''
@@ -15,7 +15,7 @@ fetchzip {
 
   meta = with lib; {
     description = "The Ultimate Oldschool PC Font Pack (TTF Fonts)";
-    homepage = "http://int10h.org/oldschool-pc-fonts/";
+    homepage = "https://int10h.org/oldschool-pc-fonts/";
     license = licenses.cc-by-sa-40;
     maintainers = [ maintainers.endgame ];
   };
diff --git a/nixpkgs/pkgs/data/fonts/uni-vga/default.nix b/nixpkgs/pkgs/data/fonts/uni-vga/default.nix
index cd719a62d99f..9cc0fb9adcc5 100644
--- a/nixpkgs/pkgs/data/fonts/uni-vga/default.nix
+++ b/nixpkgs/pkgs/data/fonts/uni-vga/default.nix
@@ -1,4 +1,8 @@
-{ stdenv, fetchurl, mkfontdir, mkfontscale }:
+{ stdenv, fetchurl, perl, kbd, bdftopcf
+, libfaketime, fonttosfnt, mkfontscale
+}:
+
+with stdenv.lib;
 
 stdenv.mkDerivation {
   name = "uni-vga";
@@ -8,24 +12,50 @@ stdenv.mkDerivation {
     sha256 = "05sns8h5yspa7xkl81ri7y1yxf5icgsnl497f3xnaryhx11s2rv6";
   };
 
-  nativeBuildInputs = [ mkfontdir mkfontscale ];
+  nativeBuildInputs =
+    [ bdftopcf libfaketime
+      fonttosfnt mkfontscale
+    ] ++ optionals stdenv.isLinux [ perl kbd ];
+
+  postPatch = "patchShebangs .";
+
+  buildPhase = ''
+    # convert font to compressed pcf
+    bdftopcf u_vga16.bdf | gzip -c -9 -n  > u_vga16.pcf.gz
+
+    # convert bdf font to otb
+    faketime -f "1970-01-01 00:00:01" \
+    fonttosfnt -v -o u_vga16.otb u_vga16.bdf
+  '' + optionalString stdenv.isLinux ''
+    # convert font to compressed psf
+    ./bdf2psf.pl -s UniCyrX.sfm u_vga16.bdf \
+      | psfaddtable - UniCyrX.sfm - \
+      | gzip -c -9 -n > u_vga16.psf.gz
+  '';
 
   installPhase = ''
-    mkdir -p $out/share/fonts
-    cp *.bdf $out/share/fonts
-    cd $out/share/fonts
-    mkfontdir
-    mkfontscale
+    # install pcf (for X11 applications)
+    install -m 644 -D *.pcf.gz -t "$out/share/fonts"
+    mkfontdir "$out/share/fonts"
+
+    # install bdf font
+    install -m 644 -D *.bdf -t "$bdf/share/fonts"
+    mkfontdir "$bdf/share/fonts"
+
+    # install otb font (for GTK applications)
+    install -m 644 -D *.otb -t "$otb/share/fonts"
+    mkfontdir "$otb/share/fonts"
+  '' + optionalString stdenv.isLinux ''
+    # install psf (for linux virtual terminal)
+    install -m 644 -D *.psf.gz -t "$out/share/consolefonts"
   '';
 
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "0rfly7r6blr2ykxlv0f6my2w41vvxcw85chspljd2p1fxlr28jd7";
+  outputs = [ "out" "bdf" "otb" ];
 
   meta = {
     description = "Unicode VGA font";
-    maintainers = [stdenv.lib.maintainers.ftrvxmtrx];
+    maintainers = [ maintainers.ftrvxmtrx ];
     homepage = http://www.inp.nsk.su/~bolkhov/files/fonts/univga/;
-    license = stdenv.lib.licenses.mit;
+    license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/unifont/default.nix b/nixpkgs/pkgs/data/fonts/unifont/default.nix
index a80beee342b3..fc41263fee7e 100644
--- a/nixpkgs/pkgs/data/fonts/unifont/default.nix
+++ b/nixpkgs/pkgs/data/fonts/unifont/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl, mkfontscale, mkfontdir }:
+{ stdenv, fetchurl, mkfontscale
+, libfaketime, fonttosfnt
+}:
 
 stdenv.mkDerivation rec {
   pname = "unifont";
@@ -14,23 +16,32 @@ stdenv.mkDerivation rec {
     sha256 = "1cd1fnk3m7giqp099kynnjj4m7q00lqm4ybqb1vzd2wi3j4a1awf";
   };
 
-  nativeBuildInputs = [ mkfontscale mkfontdir ];
+  nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];
 
-  phases = "installPhase";
+  phases = [ "buildPhase" "installPhase" ];
+
+  buildPhase =
+    ''
+      # convert pcf font to otb
+      faketime -f "1970-01-01 00:00:01" \
+      fonttosfnt -g 2 -m 2 -v -o "unifont.otb" "${pcf}"
+    '';
 
   installPhase =
     ''
-      mkdir -p $out/share/fonts $out/share/fonts/truetype
-      cp -v ${pcf} $out/share/fonts/unifont.pcf.gz
-      cp -v ${ttf} $out/share/fonts/truetype/unifont.ttf
-      cd $out/share/fonts
+      # install otb fonts
+      install -m 644 -D unifont.otb "$otb/share/fonts/unifont.otb"
+      mkfontdir "$otb/share/fonts"
+
+      # install pcf and ttf fonts
+      install -m 644 -D ${pcf} $out/share/fonts/unifont.pcf.gz
+      install -m 644 -D ${ttf} $out/share/fonts/truetype/unifont.ttf
+      cd "$out/share/fonts"
       mkfontdir
       mkfontscale
     '';
 
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "0n3ms2k2mk7j6144l05c45smggwf3j5cwkaxhw93wf9hd1lhpwq1";
+  outputs = [ "out" "otb" ];
 
   meta = with stdenv.lib; {
     description = "Unicode font for Base Multilingual Plane";
diff --git a/nixpkgs/pkgs/data/fonts/unscii/default.nix b/nixpkgs/pkgs/data/fonts/unscii/default.nix
index cd4d0dc42cdd..93fe8cdfb74b 100644
--- a/nixpkgs/pkgs/data/fonts/unscii/default.nix
+++ b/nixpkgs/pkgs/data/fonts/unscii/default.nix
@@ -1,32 +1,55 @@
-{stdenv, fetchurl, perl, bdftopcf, perlPackages, fontforge, SDL, SDL_image}:
+{ stdenv, fetchurl, perl, bdftopcf
+, fontforge, SDL, SDL_image, mkfontscale
+}:
+
 stdenv.mkDerivation rec {
   pname = "unscii";
   version = "1.1";
-  # or fetchFromGitHub(owner,repo,rev) or fetchgit(rev)
+
   src = fetchurl {
     url = "http://pelulamu.net/${pname}/${pname}-${version}-src.tar.gz";
     sha256 = "0qcxcnqz2nlwfzlrn115kkp3n8dd7593h762vxs6vfqm13i39lq1";
   };
-  nativeBuildInputs = [perl bdftopcf perlPackages.TextCharWidth fontforge
-    SDL SDL_image];
+
+  nativeBuildInputs =
+    [ (perl.withPackages (p: [ p.TextCharWidth ]))
+      bdftopcf fontforge SDL SDL_image
+      mkfontscale
+    ];
+
   preConfigure = ''
     patchShebangs .
   '';
+
+  postBuild = ''
+    # compress pcf fonts
+    gzip -9 -n *.pcf
+  '';
+
   installPhase = ''
-    install -m444 -Dt $out/share/fonts          *.hex *.pcf
-    install -m444 -Dt $out/share/fonts/truetype *.ttf
-    install -m444 -Dt $out/share/fonts/opentype *.otf
-    install -m444 -Dt $out/share/fonts/svg      *.svg
-    install -m444 -Dt $out/share/fonts/web      *.woff
+    # install fonts for use in X11 and GTK applications
+    install -m444 -Dt "$out/share/fonts/misc"     *.pcf.gz
+    install -m444 -Dt "$out/share/fonts/opentype" *.otf
+    mkfontdir   "$out/share/fonts/misc"
+    mkfontscale "$out/share/fonts/opentype"
+
+    # install other formats in $extra
+    install -m444 -Dt "$extra/share/fonts/truetype" *.ttf
+    install -m444 -Dt "$extra/share/fonts/svg"      *.svg
+    install -m444 -Dt "$extra/share/fonts/web"      *.woff
+    install -m444 -Dt "$extra/share/fonts/misc"     *.hex
+    mkfontscale "$extra"/share/fonts/*
   '';
 
+  outputs = [ "out" "extra" ];
+
   meta = {
     inherit version;
     description = ''Bitmapped character-art-friendly Unicode fonts'';
     # Basically GPL2+ with font exception — because of the Unifont-augmented
     # version. The reduced version is public domain.
     license = http://unifoundry.com/LICENSE.txt;
-    maintainers = [stdenv.lib.maintainers.raskin];
+    maintainers = [ stdenv.lib.maintainers.raskin ];
     homepage = http://pelulamu.net/unscii/;
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix b/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix
index eae820fb0d11..1d63b3fa54c8 100644
--- a/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix
+++ b/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix
@@ -19,10 +19,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ perl bdftopcf bdf2psf fonttosfnt mkfontdir ];
 
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash     = "0hzhaakbbcnz5ksi5p8mavw9578rsqlqadkrirrkhfnyqqlrii4j";
-
   # configure sizes, encodings and variants
   preConfigure =
     (if targetsDat == null
@@ -45,7 +41,7 @@ stdenv.mkDerivation rec {
       else ''cp "${variantsDat}" VARIANTS.dat'');
 
   postBuild = ''
-    # convert bdf to psf and otb fonts
+    # convert bdf fonts to psf
     build=$(pwd)
     mkdir {psf,otb}
     cd ${bdf2psf}/share/bdf2psf
@@ -55,19 +51,37 @@ stdenv.mkDerivation rec {
         --fb "$i" standard.equivalents \
         ascii.set+useful.set+linux.set 512 \
         "$build/psf/$name.psf"
+    done
+    cd -
+
+    # convert unicode bdf fonts to otb
+    for i in $build/genbdf/*-uni.bdf; do
+      name="$(basename $i .bdf)"
       fonttosfnt -v -o "$build/otb/$name.otb" "$i"
     done
-    cd $build
   '';
 
   postInstall = ''
     # install psf fonts
     fontDir="$out/share/consolefonts"
-    mkdir -p "$fontDir"
-    mv -t "$fontDir" psf/*.psf
-    mv -t "$out/share/fonts/X11/misc" otb/*.otb
+    install -m 644 -D psf/*.psf -t "$fontDir"
+
+    # install otb fonts
+    fontDir="$otb/share/fonts/X11/misc"
+    install -m 644 -D otb/*.otb -t "$fontDir"
+    mkfontdir "$fontDir"
+  '';
+
+  # Nix with multiple outputs adds several flags
+  # that the ./configure script doesn't understand.
+  configurePhase = ''
+    runHook preConfigure
+    ./configure --prefix="$out"
+    runHook postConfigure
   '';
 
+  outputs = [ "out" "otb" ];
+
   meta = with stdenv.lib; {
     description = "Monospace bitmap screen fonts for X11";
     homepage = https://people.mpi-inf.mpg.de/~uwe/misc/uw-ttyp0/;
diff --git a/nixpkgs/pkgs/data/fonts/vazir-fonts/default.nix b/nixpkgs/pkgs/data/fonts/vazir-fonts/default.nix
index f39867538099..a41013fd490c 100755
--- a/nixpkgs/pkgs/data/fonts/vazir-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/vazir-fonts/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "vazir-fonts";
-  version = "19.2.0";
+  version = "22.1.0";
 in fetchFromGitHub {
   name = "${pname}-${version}";
 
@@ -12,12 +12,12 @@ in fetchFromGitHub {
 
   postFetch = ''
     tar xf $downloadedFile --strip=1
-    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/vazir-fonts {} \;
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/truetype {} \;
   '';
-  sha256 = "008h095rjrcjhz9h02v6cf3gv64khj21lii4zffgpdlmvfs29f8l";
+  sha256 = "1nh3pyyw3082aizdwgyihh4z122z7kzp45ry7lzdhq9lshkpzglc";
 
   meta = with lib; {
-    homepage = https://github.com/rastikerdar/vazir-font;
+    homepage = "https://github.com/rastikerdar/vazir-font";
     description = "A Persian (Farsi) Font - قلم (فونت) فارسی وزیر";
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/data/icons/bibata-cursors/default.nix b/nixpkgs/pkgs/data/icons/bibata-cursors/default.nix
index cfe65d80bd84..d2e35136a8be 100644
--- a/nixpkgs/pkgs/data/icons/bibata-cursors/default.nix
+++ b/nixpkgs/pkgs/data/icons/bibata-cursors/default.nix
@@ -16,6 +16,11 @@ in stdenvNoCC.mkDerivation rec {
   postPatch = ''
     patchShebangs .
     substituteInPlace build.sh --replace "sudo" ""
+
+    # Don't generate windows cursors,
+    # they aren't used and aren't installed
+    # by the project's install script anyway.
+    echo "exit 0" > w32-make.sh
   '';
 
   nativeBuildInputs  = [
@@ -31,7 +36,9 @@ in stdenvNoCC.mkDerivation rec {
 
   installPhase = ''
     install -dm 0755 $out/share/icons
-    cp -pr Bibata_* $out/share/icons/
+    for x in Bibata_*; do
+      cp -pr $x/out/X11/$x $out/share/icons/
+    done
   '';
 
   meta = with stdenvNoCC.lib; {
diff --git a/nixpkgs/pkgs/data/icons/bibata-cursors/extra.nix b/nixpkgs/pkgs/data/icons/bibata-cursors/extra.nix
index dc0ead649744..b9d4c22f878f 100644
--- a/nixpkgs/pkgs/data/icons/bibata-cursors/extra.nix
+++ b/nixpkgs/pkgs/data/icons/bibata-cursors/extra.nix
@@ -1,25 +1,33 @@
-{ stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape, xcursorgen }:
+{ stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape, xcursorgen, python3 }:
 
-stdenvNoCC.mkDerivation rec {
+let
+  py = python3.withPackages(ps: [ ps.pillow ]);
+in stdenvNoCC.mkDerivation rec {
   pname = "bibata-extra-cursors";
-  version = "unstable-2018-10-28";
-  
+  version = "0.3";
+
   src = fetchFromGitHub {
     owner = "KaizIqbal";
     repo = "Bibata_Extra_Cursor";
-    rev = "66fb64b8dbe830e3f7ba2c2bdc4dacae7c438789";
-    sha256 = "1xb7v06sbxbwzd7cnghv9c55lpbbkcaf1nswdrqy87gd0bnpdd2n";
+    rev = "v${version}";
+    sha256 = "1bh945hvakbh985jkr6g6x0myw3k49pvn24m1clvqdv35v65nfxk";
   };
 
   postPatch = ''
     patchShebangs .
-    substituteInPlace build.sh --replace "gksu " ""
+    substituteInPlace build.sh --replace "sudo" ""
+
+    # Don't generate windows cursors,
+    # they aren't used and aren't installed
+    # by the project's install script anyway.
+    echo "exit 0" > w32-make.sh
   '';
 
   nativeBuildInputs  = [
     gnome-themes-extra
     inkscape
     xcursorgen
+    py
   ];
 
   buildPhase = ''
@@ -28,7 +36,9 @@ stdenvNoCC.mkDerivation rec {
 
   installPhase = ''
     install -dm 0755 $out/share/icons
-    cp -pr Bibata_* $out/share/icons/
+    for x in Bibata_*; do
+      cp -pr $x/out/X11/$x $out/share/icons/
+    done
   '';
 
   meta = with stdenvNoCC.lib; {
diff --git a/nixpkgs/pkgs/data/icons/capitaine-cursors/default.nix b/nixpkgs/pkgs/data/icons/capitaine-cursors/default.nix
index 46d6c1a731ec..09491b904ef1 100644
--- a/nixpkgs/pkgs/data/icons/capitaine-cursors/default.nix
+++ b/nixpkgs/pkgs/data/icons/capitaine-cursors/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchFromGitHub
-, inkscape, xcursorgen }:
+, inkscape, xcursorgen, bc }:
 
 stdenv.mkDerivation rec {
   pname = "capitaine-cursors";
-  version = "3";
+  version = "4";
 
   src = fetchFromGitHub {
     owner = "keeferrourke";
     repo = pname;
     rev = "r${version}";
-    sha256 = "0pnfbmrn9nv8pryv6cbjcq5hl9366hzvz1kd8vsdkgb2nlfv5gdv";
+    sha256 = "0652ydy73x29z7wc6ccyqihmfg4bk0ksl7yryycln6c7i0iqfmc9";
   };
 
   postPatch = ''
@@ -19,24 +19,27 @@ stdenv.mkDerivation rec {
   buildInputs  =[
     inkscape
     xcursorgen
+    bc
   ];
 
   buildPhase = ''
+    for variant in dark light ; do
     # https://github.com/NixOS/nixpkgs/blob/master/pkgs/data/fonts/emojione/default.nix#L16
-    HOME="$NIX_BUILD_ROOT" ./build.sh
+      HOME="$NIX_BUILD_ROOT" ./build.sh --max-dpi xhd --type $variant
+    done
   '';
 
   installPhase = ''
     install -dm 0755 $out/share/icons
-    cp -pr dist $out/share/icons/capitaine-cursors
-    cp -pr dist-white $out/share/icons/capitaine-cursors-white
+    cp -pr dist/dark $out/share/icons/capitaine-cursors
+    cp -pr dist/light $out/share/icons/capitaine-cursors-white
   '';
 
   meta = with stdenv.lib; {
     description = ''
       An x-cursor theme inspired by macOS and based on KDE Breeze
     '';
-    homepage = https://github.com/keeferrourke/capitaine-cursors;
+    homepage = "https://github.com/keeferrourke/capitaine-cursors";
     license = licenses.lgpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [
diff --git a/nixpkgs/pkgs/data/icons/flat-remix-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/flat-remix-icon-theme/default.nix
index f0e13b21dfd4..53732c611060 100644
--- a/nixpkgs/pkgs/data/icons/flat-remix-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/flat-remix-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec  {
   pname = "flat-remix-icon-theme";
-  version = "20191018";
+  version = "20191122";
 
   src = fetchFromGitHub  {
     owner = "daniruiz";
     repo = "flat-remix";
     rev = version;
-    sha256 = "13ibxvrvri04lb5phm49b6d553jh0aigm57z5i0nsins405gixn9";
+    sha256 = "1rv35r52l7xxjpajwli0md07k3xl7xplbw919vjmsb1hhrzavzzg";
   };
 
   nativeBuildInputs = [ gtk3 ];
diff --git a/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix b/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix
index ed4b2581e850..96ad0e2c2b81 100644
--- a/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix
+++ b/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix
@@ -2,20 +2,20 @@
 
 stdenv.mkDerivation rec {
   pname = "numix-icon-theme-circle";
-  version = "19.09.20";
+  version = "19.12.27";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "1pmz2dy1580ln5m57xw3vhqrjhviayisgbs2km3i77hyx66hiivi";
+    sha256 = "0za44h7f4vk37yl30xlaa6w76maiipb6p63gl9hl1rshdn9nxq0y";
   };
 
-  nativeBuildInputs = [ gtk3 numix-icon-theme ];
+  nativeBuildInputs = [ gtk3 ];
 
-  propagatedBuildInputs = [
-    hicolor-icon-theme
-  ];
+  buildInputs = [ numix-icon-theme ];
+
+  propagatedBuildInputs = [ hicolor-icon-theme ];
 
   dontDropIconThemeCache = true;
 
diff --git a/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix b/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix
index 620ef02fde72..644d20cccfdb 100644
--- a/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix
+++ b/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix
@@ -2,20 +2,20 @@
 
 stdenv.mkDerivation rec {
   pname = "numix-icon-theme-square";
-  version = "19.09.20";
+  version = "19.12.27";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "0q3d4d4wndknz3043bh8ardjvdpds2hkzk73kyyh1848wg4ff0ly";
+    sha256 = "0pjbi2g7wk8gyr4lvp8fvcb8z29kc3l6v19a45axgadnc609hqw7";
   };
 
-  nativeBuildInputs = [ gtk3 numix-icon-theme ];
+  nativeBuildInputs = [ gtk3 ];
 
-  propagatedBuildInputs = [
-    hicolor-icon-theme
-  ];
+  buildInputs = [ numix-icon-theme ];
+
+  propagatedBuildInputs = [ hicolor-icon-theme ];
 
   dontDropIconThemeCache = true;
 
diff --git a/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix
index 218af2d9b3c3..8055b19ad637 100644
--- a/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "papirus-icon-theme";
-  version = "20200102";
+  version = "20200301";
 
   src = fetchFromGitHub {
     owner = "PapirusDevelopmentTeam";
     repo = pname;
     rev = version;
-    sha256 = "0jnx6prgrwz9i979a20sd58dwhsz8cakvl8ickakadca1j7gs7kb";
+    sha256 = "1hknprylmd5zciaz4nkysmbb03am41r9dgnzm3r9l8qg2548js9v";
   };
 
   nativeBuildInputs = [ gtk3 ];
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Papirus icon theme";
-    homepage = https://github.com/PapirusDevelopmentTeam/papirus-icon-theme;
+    homepage = "https://github.com/PapirusDevelopmentTeam/papirus-icon-theme";
     license = licenses.lgpl3;
     # darwin gives hash mismatch in source, probably because of file names differing only in case
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/data/icons/qogir-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/qogir-icon-theme/default.nix
index b7ae27aac689..641b3da883e8 100644
--- a/nixpkgs/pkgs/data/icons/qogir-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/qogir-icon-theme/default.nix
@@ -2,17 +2,19 @@
 
 stdenv.mkDerivation rec {
   pname = "qogir-icon-theme";
-  version = "2019-09-15";
+  version = "2020-02-21";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
-    rev = "4e1b6c693615bc2c7c7a11df6f4b90f2e6fb67db";
-    sha256 = "1vp1wp4fgmy5af8z8nb3m6wgmb6wbwlvx5smf9dxfcn254hdg8g0";
+    rev = version;
+    sha256 = "0m7f26dzzz5gkxi9dbbc96pl0xcvayr1ibxbjkrlsjcdvfg7p3rr";
   };
 
   nativeBuildInputs = [ gtk3 ];
 
+  dontDropIconThemeCache = true;
+
   installPhase = ''
     patchShebangs install.sh
     mkdir -p $out/share/icons
@@ -20,8 +22,8 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "A colorful design icon theme for linux desktops";
-    homepage = https://github.com/vinceliuice/Qogir-icon-theme;
+    description = "Flat colorful design icon theme";
+    homepage = "https://github.com/vinceliuice/Qogir-icon-theme";
     license = with licenses; [ gpl3 ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ romildo ];
diff --git a/nixpkgs/pkgs/data/misc/hackage/default.nix b/nixpkgs/pkgs/data/misc/hackage/default.nix
index 2415e94b92dc..96617bb0f278 100644
--- a/nixpkgs/pkgs/data/misc/hackage/default.nix
+++ b/nixpkgs/pkgs/data/misc/hackage/default.nix
@@ -1,6 +1,6 @@
 { fetchurl }:
 
 fetchurl {
-  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/10e6ea0c54a4aa41de51d1d7e2314115bb2e172a.tar.gz";
-  sha256 = "0kjy1dxa2kra4j02ni8lpg74jy7fl361yiha330c52spvd2v8i8h";
+  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/fcb0ed924c8504d54870d6dc2092b9dab8305732.tar.gz";
+  sha256 = "0b7dxgj40y9svddrx14scnxls20ww4f717zhz3lwigb16dm4crpi";
 }
diff --git a/nixpkgs/pkgs/data/misc/osinfo-db/default.nix b/nixpkgs/pkgs/data/misc/osinfo-db/default.nix
index 31f7eb7efdb8..9afe4a9e4001 100644
--- a/nixpkgs/pkgs/data/misc/osinfo-db/default.nix
+++ b/nixpkgs/pkgs/data/misc/osinfo-db/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "osinfo-db";
-  version = "20191125";
+  version = "20200214";
 
   src = fetchurl {
     url = "https://releases.pagure.org/libosinfo/${pname}-${version}.tar.xz";
-    sha256 = "102mdykp5pjv7lw7saig640vb5a8ivy4ji8sa68q2wzfwg1yix78";
+    sha256 = "1fpdb8r8kzwp1k5dc9xyy9jr2jr3haq7n9b6spamm599zvzf8nb6";
   };
 
   nativeBuildInputs = [ osinfo-db-tools intltool libxml2 ];
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Osinfo database of information about operating systems for virtualization provisioning tools";
-    homepage = https://libosinfo.org/;
+    homepage = "https://libosinfo.org/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
diff --git a/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix b/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix
new file mode 100644
index 000000000000..1c68569a29aa
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "spdx-license-list-data";
+  version = "3.8";
+
+  src = fetchFromGitHub {
+    owner = "spdx";
+    repo = "license-list-data";
+    rev = "v${version}";
+    sha256 = "1pfy0vbs7sk7m670mclmlkpcanizdmgsm1qgwzrw28w3hxfq7gdb";
+  };
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  installPhase = ''
+    install -vDt $out/json json/licenses.json
+  '';
+
+  meta = {
+    description = "Various data formats for the SPDX License List";
+    homepage = "https://github.com/spdx/license-list-data";
+    license = lib.licenses.cc0;
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/soundfonts/fluid/default.nix b/nixpkgs/pkgs/data/soundfonts/fluid/default.nix
index 7debe119aa1c..18c4160014f6 100644
--- a/nixpkgs/pkgs/data/soundfonts/fluid/default.nix
+++ b/nixpkgs/pkgs/data/soundfonts/fluid/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation {
   name = "Fluid-3";
 
   src = fetchurl {
-    url = "http://www.musescore.org/download/fluid-soundfont.tar.gz";
+    url = "https://ftp.osuosl.org/pub/musescore/soundfont/fluid-soundfont.tar.gz";
     sha256 = "1f96bi0y6rms255yr8dfk436azvwk66c99j6p43iavyq8jg7c5f8";
   };
 
diff --git a/nixpkgs/pkgs/data/themes/ant-theme/default.nix b/nixpkgs/pkgs/data/themes/ant-theme/default.nix
index 8ff869bc7aaa..c60fb4d33558 100644
--- a/nixpkgs/pkgs/data/themes/ant-theme/default.nix
+++ b/nixpkgs/pkgs/data/themes/ant-theme/default.nix
@@ -32,8 +32,6 @@ stdenv.mkDerivation rec {
     homepage = https://github.com/EliverLara/Ant;
     license = licenses.gpl3;
     platforms = platforms.all;
-    maintainers = [
-      maintainers.pbogdan
-    ];
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/data/themes/canta/default.nix b/nixpkgs/pkgs/data/themes/canta/default.nix
new file mode 100644
index 000000000000..f1c8ad15559a
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/canta/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, gdk-pixbuf, librsvg, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "canta-theme";
+  version = "2020-01-31";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "070lhbhh3n7nd6rkwm52v1x4v8spyb932w6qmgs2r19g0whyn55w";
+  };
+
+  buildInputs = [ gdk-pixbuf librsvg ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    patchShebangs .
+    mkdir -p $out/share/themes
+    name= ./install.sh -d $out/share/themes
+    install -D -t $out/share/backgrounds wallpaper/canta-wallpaper.svg
+    rm $out/share/themes/*/{AUTHORS,COPYING}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Flat Design theme for GTK based desktop environments";
+    homepage = "https://github.com/vinceliuice/Canta-theme";
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/jade1/default.nix b/nixpkgs/pkgs/data/themes/jade1/default.nix
index 01221d450142..cba38cb297a8 100644
--- a/nixpkgs/pkgs/data/themes/jade1/default.nix
+++ b/nixpkgs/pkgs/data/themes/jade1/default.nix
@@ -2,25 +2,25 @@
 
 stdenv.mkDerivation rec {
   pname = "theme-jade1";
-  version = "1.5";
+  version = "1.6";
 
   src = fetchFromGitHub {
     owner = "madmaxms";
     repo = "theme-jade-1";
     rev = "v${version}";
-    sha256 = "1m3150iyk8421mkwj4x2pv29wjzqdcnvvnp3bsg11k5kszsm27a8";
+    sha256 = "1lnajrsikw6dljf6dvgmj8aqwywmgdp34h3xsc0xiyq07arhp606";
   };
 
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
   installPhase = ''
     mkdir -p $out/share/themes
-    cp -a Jade-1 $out/share/themes
+    cp -a Jade* $out/share/themes
   '';
 
   meta = with stdenv.lib; {
     description = "Fork of the original Linux Mint theme with dark menus, more intensive green and some other modifications";
-    homepage = https://github.com/madmaxms/theme-jade-1;
+    homepage = "https://github.com/madmaxms/theme-jade-1";
     license = with licenses; [ gpl3 ];
     platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
diff --git a/nixpkgs/pkgs/data/themes/matcha/default.nix b/nixpkgs/pkgs/data/themes/matcha/default.nix
index 8ab868891b55..05292e97772f 100644
--- a/nixpkgs/pkgs/data/themes/matcha/default.nix
+++ b/nixpkgs/pkgs/data/themes/matcha/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "matcha";
-  version = "2019-11-02";
+  version = "2020-03-11";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "0wci9ahap8kynq8cbyxr7aba9ndb1d4kiq42xvzr34vw1rhcahrr";
+    sha256 = "1np2964g5f0vwdvfmi8gidsk9jj7v43nkshiqnfdbvmwa85ldpfl";
   };
 
   buildInputs = [ gdk-pixbuf librsvg ];
@@ -18,13 +18,15 @@ stdenv.mkDerivation rec {
   installPhase = ''
     patchShebangs .
     mkdir -p $out/share/themes
-    name= ./Install -d $out/share/themes
+    name= ./install.sh -d $out/share/themes
     install -D -t $out/share/gtksourceview-3.0/styles src/extra/gedit/matcha.xml
+    mkdir -p $out/share/doc/${pname}
+    cp -a src/extra/firefox $out/share/doc/${pname}
   '';
 
   meta = with stdenv.lib; {
     description = "A stylish Design theme for GTK based desktop environments";
-    homepage = https://vinceliuice.github.io/theme-matcha;
+    homepage = "https://vinceliuice.github.io/theme-matcha";
     license = licenses.gpl3;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
diff --git a/nixpkgs/pkgs/data/themes/mojave/default.nix b/nixpkgs/pkgs/data/themes/mojave/default.nix
index 6c38e3aaba41..d560e3fe5838 100644
--- a/nixpkgs/pkgs/data/themes/mojave/default.nix
+++ b/nixpkgs/pkgs/data/themes/mojave/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "mojave-gtk-theme";
-  version = "2019-12-12";
+  version = "2020-02-20";
 
   srcs = [
     (fetchFromGitHub {
       owner = "vinceliuice";
       repo = pname;
       rev = version;
-      sha256 = "0d5m9gh97db01ygqlp2sv9v1m183d9fgid9n9wms9r5rrrw6bs8m";
+      sha256 = "0fbpjfdx53g4qicr97jl1dssykjwwca9xzrfyh53dmd81vr6znpy";
     })
     (fetchurl {
       url = "https://github.com/vinceliuice/Mojave-gtk-theme/raw/11741a99d96953daf9c27e44c94ae50a7247c0ed/macOS_Mojave_Wallpapers.tar.xz";
diff --git a/nixpkgs/pkgs/data/themes/nordic-polar/default.nix b/nixpkgs/pkgs/data/themes/nordic-polar/default.nix
index d1cfb800001b..1ec260f5033e 100644
--- a/nixpkgs/pkgs/data/themes/nordic-polar/default.nix
+++ b/nixpkgs/pkgs/data/themes/nordic-polar/default.nix
@@ -2,16 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "nordic-polar";
-  version = "1.5.0";
+  version = "1.6.0";
 
   srcs = [
     (fetchurl {
-      url = "https://github.com/EliverLara/Nordic-Polar/releases/download/v.${version}/Nordic-Polar.tar.xz";
-      sha256 = "0ddccxvyf929045x6fm8xyx6rvb0d6wh6pylycwgqqm4vxbdwnly";
+      url = "https://github.com/EliverLara/Nordic-Polar/releases/download/v${version}/Nordic-Polar.tar.xz";
+      sha256 = "0cym8rcg8jpfraqlfrmymkm0jrsk1s9p7z6vcil4vxbyim9q9w16";
     })
     (fetchurl {
-      url = "https://github.com/EliverLara/Nordic-Polar/releases/download/v.${version}/Nordic-Polar-standard-buttons.tar.xz";
-      sha256 = "0q0qfy0aw80rds6isx3pjrqx4zrq2crxrm29nrmyzh4gr7n17li6";
+      url = "https://github.com/EliverLara/Nordic-Polar/releases/download/v${version}/Nordic-Polar-standard-buttons.tar.xz";
+      sha256 = "0s4wf9nqpa75km905jh03gl2d2hjcdvfacmkdz3njviqm6pwqxsv";
     })
   ];
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Gtk theme created using the awesome Nord color pallete";
-    homepage = https://github.com/EliverLara/Nordic-Polar;
+    homepage = "https://github.com/EliverLara/Nordic-Polar";
     license = licenses.gpl3;
     platforms = platforms.all;
     maintainers = [ maintainers.romildo ];
diff --git a/nixpkgs/pkgs/data/themes/nordic/default.nix b/nixpkgs/pkgs/data/themes/nordic/default.nix
index 5172b2992ccc..4979738231d7 100644
--- a/nixpkgs/pkgs/data/themes/nordic/default.nix
+++ b/nixpkgs/pkgs/data/themes/nordic/default.nix
@@ -2,24 +2,32 @@
 
 stdenv.mkDerivation rec {
   pname = "nordic";
-  version = "1.6.5";
+  version = "1.8.1";
 
   srcs = [
     (fetchurl {
-      url = "https://github.com/EliverLara/Nordic/releases/download/v${version}/Nordic.tar.xz";
-      sha256 = "163g1kh92fhgbwi91053xs39bpdd032w2v67c3jf8lf4cgvkwggp";
+      url = "https://github.com/EliverLara/Nordic/releases/download/V${version}/Nordic.tar.xz";
+      sha256 = "0jvc6l093gj9azkrjswdc1kqlyc6drnhsxgpzylzcgjxvxyi9vmd";
     })
     (fetchurl {
-      url = "https://github.com/EliverLara/Nordic/releases/download/v${version}/Nordic-blue.tar.xz";
-      sha256 = "05qq1v8sil8s51aa78q2najcqdnkpgdzc8dckrx47wy36cfxbxwz";
+      url = "https://github.com/EliverLara/Nordic/releases/download/V${version}/Nordic-standard-buttons.tar.xz";
+      sha256 = "049hcvccjds465v78sk3cjg7zck36l1zpyrf4p8xinj2h3b74zr8";
     })
     (fetchurl {
-      url = "https://github.com/EliverLara/Nordic/releases/download/v${version}/Nordic-standard-buttons.tar.xz";
-      sha256 = "17r450xxd8v8125a4bwd0yj3f3vnwcad2f19a0vgmk63s9grvkg0";
+      url = "https://github.com/EliverLara/Nordic/releases/download/V${version}/Nordic-darker.tar.xz";
+      sha256 = "1qaj4x451ic8mx4aak1axw29jm6ymwgh5w3n3mw5kjm1fwg4b5dz";
     })
     (fetchurl {
-      url = "https://github.com/EliverLara/Nordic/releases/download/v${version}/Nordic-blue-standard-buttons.tar.xz";
-      sha256 = "0894naw0wkl2h9l27qz9h1k02dfgfqyb02icmgadg0cb44j3zlpb";
+      url = "https://github.com/EliverLara/Nordic/releases/download/V${version}/Nordic-darker-standard-buttons.tar.xz";
+      sha256 = "19wczzppimp7sql9v0sq1sc5j0ix51270c58j22mg01kd2h2iivy";
+    })
+    (fetchurl {
+      url = "https://github.com/EliverLara/Nordic/releases/download/V${version}/Nordic-bluish-accent.tar.xz";
+      sha256 = "1jvjjxiz8q9583f3gidky65s2g5pd5bkvbx0jvwn0p0kz8vlzmzk";
+    })
+    (fetchurl {
+      url = "https://github.com/EliverLara/Nordic/releases/download/V${version}/Nordic-bluish-accent-standard-buttons.tar.xz";
+      sha256 = "0wqn0aszddq8nbh6c667rwhy7c1zky23a9q3d8gci421n20l6lyd";
     })
   ];
 
@@ -35,7 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Dark Gtk theme created using the awesome Nord color pallete";
-    homepage = https://github.com/EliverLara/Nordic;
+    homepage = "https://github.com/EliverLara/Nordic";
     license = licenses.gpl3;
     platforms = platforms.all;
     maintainers = [ maintainers.romildo ];
diff --git a/nixpkgs/pkgs/data/themes/plata/default.nix b/nixpkgs/pkgs/data/themes/plata/default.nix
index 37eb9b7e5bcd..08f178b30e83 100644
--- a/nixpkgs/pkgs/data/themes/plata/default.nix
+++ b/nixpkgs/pkgs/data/themes/plata/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "plata-theme";
-  version = "0.9.1";
+  version = "0.9.3";
 
   src = fetchFromGitLab {
     owner = "tista500";
     repo = "plata-theme";
     rev = version;
-    sha256 = "0rva56xdvsj6vwwvrn55137mw83c9p4xy00i3mq0ryh43imyj4mg";
+    sha256 = "183kas7b5vxm6l2m5c4yh8cnq05sfa82afcp9h6cfj2rh2iv6kqy";
   };
 
   preferLocalBuild = true;
@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "A GTK theme based on Material Design Refresh";
-    homepage = https://gitlab.com/tista500/plata-theme;
+    homepage = "https://gitlab.com/tista500/plata-theme";
     license = with licenses; [ gpl2 cc-by-sa-40 ];
     platforms = platforms.linux;
     maintainers = [ maintainers.tadfisher ];
diff --git a/nixpkgs/pkgs/data/themes/pop-gtk/default.nix b/nixpkgs/pkgs/data/themes/pop-gtk/default.nix
index 151fadddc16c..9bb2beae4d31 100644
--- a/nixpkgs/pkgs/data/themes/pop-gtk/default.nix
+++ b/nixpkgs/pkgs/data/themes/pop-gtk/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pop-gtk-theme";
-  version = "2019-12-17";
+  version = "2020-02-10";
 
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = "gtk-theme";
-    rev = "77601545f049251bce9c63a07f0d9819aa27cb60";
-    sha256 = "0bmkcdr1z9m3inrw33zprq2a4jawql4724a84nr89r19xllj2z1s";
+    rev = "ed888e9dd5de142cb899e362beedaf694594cc7e";
+    sha256 = "0ryr1jx9pzij6pkv7sam07f90w5lbrzx0fj5vdxl94612mh76aad";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/data/themes/qogir/default.nix b/nixpkgs/pkgs/data/themes/qogir/default.nix
index 44993c7e2eca..23afcf5ece22 100644
--- a/nixpkgs/pkgs/data/themes/qogir/default.nix
+++ b/nixpkgs/pkgs/data/themes/qogir/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qogir-theme";
-  version = "2019-10-25";
+  version = "2020-02-26";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "027c9pbfv5flqrjcvmbyjrfi37nzq33z19bai4zjjxjvryfqpmlm";
+    sha256 = "1s14knj0ral5a62ymwbg5k5g94v8cq0acq0kyam8ay0rfi7wycdm";
   };
 
   buildInputs = [ gdk-pixbuf librsvg ];
@@ -19,11 +19,14 @@ stdenv.mkDerivation rec {
     patchShebangs .
     mkdir -p $out/share/themes
     name= ./install.sh -d $out/share/themes
+    mkdir -p $out/share/doc/${pname}
+    cp -a src/firefox $out/share/doc/${pname}
+    rm $out/share/themes/*/{AUTHORS,COPYING}
   '';
 
   meta = with stdenv.lib; {
     description = "Flat Design theme for GTK based desktop environments";
-    homepage = https://vinceliuice.github.io/Qogir-theme;
+    homepage = "https://vinceliuice.github.io/Qogir-theme";
     license = licenses.gpl3;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
diff --git a/nixpkgs/pkgs/data/themes/qtcurve/default.nix b/nixpkgs/pkgs/data/themes/qtcurve/default.nix
index df8e86bf4c15..c949965cb879 100644
--- a/nixpkgs/pkgs/data/themes/qtcurve/default.nix
+++ b/nixpkgs/pkgs/data/themes/qtcurve/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, extra-cmake-modules, pkgconfig, mkDerivation
+{ stdenv, fetchFromGitHub, cmake, extra-cmake-modules, pkgconfig, mkDerivation
 , gtk2, qtbase, qtsvg, qtx11extras # Toolkit dependencies
 , karchive, kconfig, kconfigwidgets, kio, frameworkintegration
 , kguiaddons, ki18n, kwindowsystem, kdelibs4support, kiconthemes
@@ -7,13 +7,15 @@
 }:
 
 let
-  version = "1.9";
+  version = "1.9.1";
 in mkDerivation {
   pname = "qtcurve";
   inherit version;
-  src = fetchurl {
-    url = "https://download.kde.org/stable/qtcurve/qtcurve-${version}.tar.xz";
-    sha256 = "169gdny1cdld0qnx3nqvx568zjzdba4pwp3gxapc1hdh2cymw7r8";
+  src = fetchFromGitHub {
+    owner = "KDE";
+    repo = "qtcurve";
+    rev = version;
+    sha256 = "0sm1fza68mwl9cvid4h2lsyxq5svia86l5v9wqk268lmx16mbzsw";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/data/themes/snowblind/default.nix b/nixpkgs/pkgs/data/themes/snowblind/default.nix
new file mode 100644
index 000000000000..db7b34d78e76
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/snowblind/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitLab, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "snowblind";
+  version = "2020-02-26";
+
+  src = fetchFromGitLab {
+    domain = "www.opencode.net";
+    owner = "ju1464";
+    repo = pname;
+    rev = "94c35410be5cccc142c9cd6be9dff973ce0761c4";
+    sha256 = "1aqmpg1vyqwp6s6iikp5c5yfrvdkzq75jdr9mmv2ijcam1g0jhnv";
+  };
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    mkdir -p $out/share/themes
+    cp -a Snowblind* $out/share/themes
+    rm $out/share/themes/*/{COPYING,CREDITS}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Smooth blue theme based on Materia Design";
+    homepage = "https://www.opencode.net/ju1464/Snowblind";
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/vimix/default.nix b/nixpkgs/pkgs/data/themes/vimix/default.nix
new file mode 100644
index 000000000000..1b3d2005f08a
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/vimix/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, gtk_engines, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "vimix-gtk-themes";
+  version = "2020-02-24";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "18v7yhwzachjgy276rdhj5cg353f0qysa2kxk9gyc6s71q2gjzcv";
+  };
+
+  buildInputs = [ gtk_engines ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    patchShebangs .
+    mkdir -p $out/share/themes
+    name= ./install.sh -d $out/share/themes
+    rm $out/share/themes/*/{AUTHORS,LICENSE}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Flat Material Design theme for GTK based desktop environments";
+    homepage = "https://github.com/vinceliuice/vimix-gtk-themes";
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/yaru/default.nix b/nixpkgs/pkgs/data/themes/yaru/default.nix
index f83dbc3ebcc9..27a879af1842 100644
--- a/nixpkgs/pkgs/data/themes/yaru/default.nix
+++ b/nixpkgs/pkgs/data/themes/yaru/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yaru";
-  version = "19.10.4";
+  version = "20.04.1";
 
   src = fetchFromGitHub {
     owner = "ubuntu";
     repo = "yaru";
     rev = version;
-    sha256 = "1dj6awlz13787783ds9mdid75rd4vvgpg52h6x19pxdga3k17s9b";
+    sha256 = "0c9az0bmnrnkgxfifp6nkan5bvjrkqrpg38zsp2vg493bm3bpbg1";
   };
 
   nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];