summary refs log tree commit diff
diff options
context:
space:
mode:
authorVolth <volth@webmaster.ms>2017-08-10 19:43:49 +0000
committerVolth <volth@webmaster.ms>2017-08-11 14:26:03 +0000
commit31c344982f0c47af4d33cb5a37125deb1d767ef0 (patch)
tree66227ecc2adcf14cc1a552364eb8940358199f5a
parent691da0cbb99c7b72480bc836b11cc296739edaee (diff)
downloadnixpkgs-31c344982f0c47af4d33cb5a37125deb1d767ef0.tar
nixpkgs-31c344982f0c47af4d33cb5a37125deb1d767ef0.tar.gz
nixpkgs-31c344982f0c47af4d33cb5a37125deb1d767ef0.tar.bz2
nixpkgs-31c344982f0c47af4d33cb5a37125deb1d767ef0.tar.lz
nixpkgs-31c344982f0c47af4d33cb5a37125deb1d767ef0.tar.xz
nixpkgs-31c344982f0c47af4d33cb5a37125deb1d767ef0.tar.zst
nixpkgs-31c344982f0c47af4d33cb5a37125deb1d767ef0.zip
data/fonts: simpler cleanups
-rw-r--r--pkgs/data/fonts/andagii/default.nix20
-rw-r--r--pkgs/data/fonts/anonymous-pro/default.nix26
-rw-r--r--pkgs/data/fonts/arkpandora/default.nix28
-rw-r--r--pkgs/data/fonts/aurulent-sans/default.nix21
-rw-r--r--pkgs/data/fonts/baekmuk-ttf/default.nix26
-rw-r--r--pkgs/data/fonts/caladea/default.nix19
-rw-r--r--pkgs/data/fonts/camingo-code/default.nix23
-rw-r--r--pkgs/data/fonts/cantarell-fonts/default.nix4
-rw-r--r--pkgs/data/fonts/carlito/default.nix19
-rw-r--r--pkgs/data/fonts/cm-unicode/default.nix19
-rw-r--r--pkgs/data/fonts/comfortaa/default.nix29
-rw-r--r--pkgs/data/fonts/comic-neue/default.nix35
-rw-r--r--pkgs/data/fonts/comic-relief/default.nix31
-rw-r--r--pkgs/data/fonts/corefonts/default.nix4
-rw-r--r--pkgs/data/fonts/crimson/default.nix18
-rw-r--r--pkgs/data/fonts/culmus/default.nix21
-rw-r--r--pkgs/data/fonts/dina/default.nix20
-rw-r--r--pkgs/data/fonts/dosis/default.nix22
-rw-r--r--pkgs/data/fonts/droid/default.nix4
-rw-r--r--pkgs/data/fonts/eb-garamond/default.nix23
-rw-r--r--pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix22
-rw-r--r--pkgs/data/fonts/encode-sans/default.nix22
-rw-r--r--pkgs/data/fonts/fantasque-sans-mono/default.nix29
-rw-r--r--pkgs/data/fonts/fira-mono/default.nix21
-rw-r--r--pkgs/data/fonts/fira/default.nix21
-rw-r--r--pkgs/data/fonts/fontconfig-penultimate/default.nix17
-rw-r--r--pkgs/data/fonts/freefont-ttf/default.nix19
-rw-r--r--pkgs/data/fonts/gdouros/default.nix83
-rw-r--r--pkgs/data/fonts/go-font/default.nix4
-rw-r--r--pkgs/data/fonts/gyre/default.nix22
-rw-r--r--pkgs/data/fonts/hack/default.nix29
-rw-r--r--pkgs/data/fonts/hanazono/default.nix27
-rw-r--r--pkgs/data/fonts/hasklig/default.nix23
-rw-r--r--pkgs/data/fonts/helvetica-neue-lt-std/default.nix26
-rw-r--r--pkgs/data/fonts/inconsolata/default.nix19
-rw-r--r--pkgs/data/fonts/input-fonts/default.nix8
-rw-r--r--pkgs/data/fonts/junicode/default.nix20
-rw-r--r--pkgs/data/fonts/kawkab-mono/default.nix20
-rw-r--r--pkgs/data/fonts/kochi-substitute-naga10/default.nix16
-rw-r--r--pkgs/data/fonts/kochi-substitute/default.nix4
-rw-r--r--pkgs/data/fonts/lato/default.nix21
-rw-r--r--pkgs/data/fonts/league-of-moveable-type/default.nix4
-rw-r--r--pkgs/data/fonts/libre-baskerville/default.nix22
-rw-r--r--pkgs/data/fonts/libre-bodoni/default.nix22
-rw-r--r--pkgs/data/fonts/libre-caslon/default.nix4
-rw-r--r--pkgs/data/fonts/libre-franklin/default.nix22
-rw-r--r--pkgs/data/fonts/lmodern/default.nix23
-rw-r--r--pkgs/data/fonts/lmodern/lmmath.nix20
-rw-r--r--pkgs/data/fonts/lobster-two/default.nix4
-rw-r--r--pkgs/data/fonts/lohit-fonts/default.nix97
-rw-r--r--pkgs/data/fonts/meslo-lg/default.nix4
-rw-r--r--pkgs/data/fonts/mononoki/default.nix21
-rw-r--r--pkgs/data/fonts/montserrat/default.nix17
-rw-r--r--pkgs/data/fonts/mph-2b-damase/default.nix21
-rw-r--r--pkgs/data/fonts/mplus-outline-fonts/default.nix19
-rw-r--r--pkgs/data/fonts/nafees/default.nix4
-rw-r--r--pkgs/data/fonts/nerdfonts/default.nix4
-rw-r--r--pkgs/data/fonts/norwester/default.nix22
-rw-r--r--pkgs/data/fonts/oldsindhi/default.nix24
-rw-r--r--pkgs/data/fonts/oldstandard/default.nix4
-rw-r--r--pkgs/data/fonts/open-dyslexic/default.nix27
-rw-r--r--pkgs/data/fonts/orbitron/default.nix24
-rw-r--r--pkgs/data/fonts/overpass/default.nix28
-rw-r--r--pkgs/data/fonts/oxygenfonts/default.nix22
-rw-r--r--pkgs/data/fonts/paratype-pt/mono.nix27
-rw-r--r--pkgs/data/fonts/paratype-pt/sans.nix27
-rw-r--r--pkgs/data/fonts/paratype-pt/serif.nix27
-rw-r--r--pkgs/data/fonts/pecita/default.nix19
-rw-r--r--pkgs/data/fonts/poly/default.nix4
-rw-r--r--pkgs/data/fonts/powerline-fonts/default.nix27
-rw-r--r--pkgs/data/fonts/profont/default.nix29
-rw-r--r--pkgs/data/fonts/quattrocento-sans/default.nix28
-rw-r--r--pkgs/data/fonts/quattrocento/default.nix26
-rw-r--r--pkgs/data/fonts/raleway/default.nix27
-rw-r--r--pkgs/data/fonts/roboto-mono/default.nix4
-rw-r--r--pkgs/data/fonts/roboto-slab/default.nix4
-rw-r--r--pkgs/data/fonts/sampradaya/default.nix19
-rw-r--r--pkgs/data/fonts/shrikhand/default.nix18
-rw-r--r--pkgs/data/fonts/signwriting/default.nix4
-rw-r--r--pkgs/data/fonts/siji/default.nix22
-rw-r--r--pkgs/data/fonts/source-code-pro/default.nix25
-rw-r--r--pkgs/data/fonts/source-han-sans/default.nix32
-rw-r--r--pkgs/data/fonts/source-han-serif/default.nix32
-rw-r--r--pkgs/data/fonts/source-sans-pro/default.nix16
-rw-r--r--pkgs/data/fonts/source-serif-pro/default.nix20
-rw-r--r--pkgs/data/fonts/stix-otf/default.nix26
-rw-r--r--pkgs/data/fonts/stix-two/default.nix24
-rw-r--r--pkgs/data/fonts/tai-languages/default.nix21
-rw-r--r--pkgs/data/fonts/tempora-lgc/default.nix4
-rw-r--r--pkgs/data/fonts/terminus-font-ttf/default.nix18
-rw-r--r--pkgs/data/fonts/theano/default.nix21
-rw-r--r--pkgs/data/fonts/tipa/default.nix8
-rw-r--r--pkgs/data/fonts/ttf-bitstream-vera/default.nix16
-rw-r--r--pkgs/data/fonts/ttf-envy-code-r/default.nix24
-rw-r--r--pkgs/data/fonts/unifont_upper/default.nix20
95 files changed, 870 insertions, 1093 deletions
diff --git a/pkgs/data/fonts/andagii/default.nix b/pkgs/data/fonts/andagii/default.nix
index 562aa8be4ef..5c708457f8d 100644
--- a/pkgs/data/fonts/andagii/default.nix
+++ b/pkgs/data/fonts/andagii/default.nix
@@ -1,22 +1,18 @@
 { stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "andagii-${version}";
+let
   version = "1.0.2";
+in fetchzip {
+  name = "andagii-${version}";
 
-  src = fetchzip {
-    url = http://www.i18nguy.com/unicode/andagii.zip;
-    sha256 = "0a0c43y1fd5ksj50axhng7p00kgga0i15p136g68p35wj7kh5g2k";
-    stripRoot = false;
-    curlOpts = "--user-agent 'Mozilla/5.0'";
-  };
-
-  phases = [ "unpackPhase" "installPhase" ];
-
-  installPhase = ''
+  url = http://www.i18nguy.com/unicode/andagii.zip;
+  curlOpts = "--user-agent 'Mozilla/5.0'";
+  postFetch = ''
+    unzip $downloadedFile
     mkdir -p $out/share/fonts/truetype
     cp -v ANDAGII_.TTF $out/share/fonts/truetype/andagii.ttf
   '';
+  sha256 = "0j5kf2fmyqgnf5ji6h0h79lq9n9d85hkfrr4ya8hqj4gwvc0smb2";
 
   # There are multiple claims that the font is GPL, so I include the
   # package; but I cannot find the original source, so use it on your
diff --git a/pkgs/data/fonts/anonymous-pro/default.nix b/pkgs/data/fonts/anonymous-pro/default.nix
index da34a2f43aa..ff8813f7813 100644
--- a/pkgs/data/fonts/anonymous-pro/default.nix
+++ b/pkgs/data/fonts/anonymous-pro/default.nix
@@ -1,23 +1,17 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "anonymousPro-${version}";
+let
   version = "1.002";
+in fetchzip rec {
+  name = "anonymousPro-${version}";
 
-  src = fetchurl {
-    url = "http://www.marksimonson.com/assets/content/fonts/AnonymousPro-${version}.zip";
-    sha256 = "1asj6lykvxh46czbal7ymy2k861zlcdqpz8x3s5bbpqwlm3mhrl6";
-  };
-
-  nativeBuildInputs = [ unzip ];
-  phases = [ "unpackPhase" "installPhase" ];
-
-  installPhase = ''
-    mkdir -p $out/share/fonts/truetype
-    mkdir -p $out/share/doc/${name}
-    find . -name "*.ttf" -exec cp -v {} $out/share/fonts/truetype \;
-    find . -name "*.txt" -exec cp -v {} $out/share/doc/${name} \;
+  url = "http://www.marksimonson.com/assets/content/fonts/AnonymousPro-${version}.zip";
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.ttf                           -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.txt                           -d "$out/share/doc/${name}"
   '';
+  sha256 = "05rgzag38qc77b31sm5i2vwwrxbrvwzfsqh3slv11skx36pz337f";
 
   meta = with stdenv.lib; {
     homepage = http://www.marksimonson.com/fonts/view/anonymous-pro;
diff --git a/pkgs/data/fonts/arkpandora/default.nix b/pkgs/data/fonts/arkpandora/default.nix
index 59be4fd14c8..c2e64cb63dd 100644
--- a/pkgs/data/fonts/arkpandora/default.nix
+++ b/pkgs/data/fonts/arkpandora/default.nix
@@ -1,21 +1,23 @@
-{ stdenv, fetchurl }:
-stdenv.mkDerivation rec {
-  name = "arkpandora-${version}";
-  version = "2.04";
+{ stdenv, fetchurl, unzip }:
 
-  src = fetchurl {
-    urls = [
-      "ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ttf-arkpandora-${version}.tgz"
-      "http://distcache.FreeBSD.org/ports-distfiles/ttf-arkpandora-${version}.tgz"
-      "http://www.users.bigpond.net.au/gavindi/ttf-arkpandora-${version}.tgz"
-      ];
-    sha256 = "16mfxwlgn6vs3xn00hha5dnmz6bhjiflq138y4zcq3yhk0y9bz51";
-  };
+let
+  version = "2.04";
+in fetchurl {
+  name = "arkpandora-${version}";
 
-  installPhase = ''
+  urls = [
+    "http://distcache.FreeBSD.org/ports-distfiles/ttf-arkpandora-${version}.tgz"
+    "ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ttf-arkpandora-${version}.tgz"
+    "http://www.users.bigpond.net.au/gavindi/ttf-arkpandora-${version}.tgz"
+  ];
+  downloadToTemp = true;
+  recursiveHash = true;
+  postFetch = ''
+    tar -xzvf $downloadedFile --strip-components=1
     mkdir -p $out/share/fonts/truetype
     cp *.ttf $out/share/fonts/truetype
   '';
+  sha256 = "177k0fbs0787al0snkl8w68d2qkg7snnnq6qp28j9s98vaabs04k";
 
   meta = {
     description = "Font, metrically identical to Arial and Times New Roman";
diff --git a/pkgs/data/fonts/aurulent-sans/default.nix b/pkgs/data/fonts/aurulent-sans/default.nix
index 9941b4791b5..1a83ce17646 100644
--- a/pkgs/data/fonts/aurulent-sans/default.nix
+++ b/pkgs/data/fonts/aurulent-sans/default.nix
@@ -1,21 +1,14 @@
-{stdenv, fetchgit}:
+{stdenv, fetchzip}:
 
-stdenv.mkDerivation rec {
+fetchzip rec {
   name = "aurulent-sans-0.1";
 
-  src = fetchgit {
-    url = "https://github.com/deepfire/hartke-aurulent-sans.git";
-    rev = "refs/tags/${name}";
-    sha256 = "01hvpvbrks40g9k1xr2f1gxnd5wd0sxidgfbwrm94pdi1a36xxrk";
-  };
-
-  dontBuild = true;
-
-  installPhase = ''
-    fontDir=$out/share/fonts/opentype
-    mkdir -p $fontDir
-    cp *.otf $fontDir
+  url = "https://github.com/deepfire/hartke-aurulent-sans/archive/${name}.zip";
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
   '';
+  sha256 = "1l60psfv9x0x9qx9vp1qnhmck7a7kks385m5ycrd3d91irz1j5li";
 
   meta = {
     description = "Aurulent Sans";
diff --git a/pkgs/data/fonts/baekmuk-ttf/default.nix b/pkgs/data/fonts/baekmuk-ttf/default.nix
index ba1f21c186e..555bba63354 100644
--- a/pkgs/data/fonts/baekmuk-ttf/default.nix
+++ b/pkgs/data/fonts/baekmuk-ttf/default.nix
@@ -1,24 +1,16 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
+fetchzip rec {
   name = "baekmuk-ttf-2.2";
 
-  src = fetchurl {
-    url = "http://kldp.net/baekmuk/release/865-${name}.tar.gz";
-    sha256 = "10hqspl70h141ywz1smlzdanlx9vwgsp1qrcjk68fn2xnpzpvaq8";
-  };
-
-  dontBuild = true;
-
-  installPhase = let
-    fonts_dir = "$out/share/fonts";
-    doc_dir = "$out/share/doc/${name}";
-  in ''
-    mkdir -pv ${fonts_dir}
-    mkdir -pv ${doc_dir}
-    cp ttf/*.ttf ${fonts_dir}
-    cp COPYRIGHT* ${doc_dir}
+  url = "http://kldp.net/baekmuk/release/865-${name}.tar.gz";
+  postFetch = ''
+    tar -xzvf $downloadedFile --strip-components=1
+    mkdir -p $out/share/fonts $out/share/doc/${name}
+    cp ttf/*.ttf  $out/share/fonts
+    cp COPYRIGHT* $out/share/doc/${name}
   '';
+  sha256 = "1jgsvack1l14q8lbcv4qhgbswi30mf045k37rl772hzcmx0r206g";
 
   meta = {
     description = "Korean font";
diff --git a/pkgs/data/fonts/caladea/default.nix b/pkgs/data/fonts/caladea/default.nix
index 110405839a1..56d8273f78a 100644
--- a/pkgs/data/fonts/caladea/default.nix
+++ b/pkgs/data/fonts/caladea/default.nix
@@ -1,22 +1,19 @@
-{stdenv, fetchurl}:
+{stdenv, fetchzip}:
 
-stdenv.mkDerivation rec {
-  name = "caladea-${version}";
+let
   version = "20130214";
+in fetchzip rec {
+  name = "caladea-${version}";
 
-  src = fetchurl {
-    url = "https://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/crosextrafonts-${version}.tar.gz";
-    sha256 = "02addvvkbvf3bn21kfyj10j9w1c8hdxxld4wjmnc1j8ksqpir3f4";
-  };
-
-  phases = ["unpackPhase" "installPhase"];
-
-  installPhase = ''
+  url = "https://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/crosextrafonts-${version}.tar.gz";
+  postFetch = ''
+    tar -xzvf $downloadedFile --strip-components=1
     mkdir -p $out/etc/fonts/conf.d
     mkdir -p $out/share/fonts/truetype
     cp -v *.ttf $out/share/fonts/truetype
     cp -v ${./cambria-alias.conf} $out/etc/fonts/conf.d/30-cambria.conf
   '';
+  sha256 = "0kwm42ggr8kvcn3554cpmv90xzam1sdncx7x3zs3bzp88mxrnv1z";
 
   meta = with stdenv.lib; {
     # This font doesn't appear to have any official web site but this
diff --git a/pkgs/data/fonts/camingo-code/default.nix b/pkgs/data/fonts/camingo-code/default.nix
index bc1402270aa..dfdf367337c 100644
--- a/pkgs/data/fonts/camingo-code/default.nix
+++ b/pkgs/data/fonts/camingo-code/default.nix
@@ -1,22 +1,19 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "camingo-code-${version}";
+let
   version = "1.0";
+in fetchzip rec {
+  name = "camingo-code-${version}";
 
-  src = fetchurl {
-    url = https://github.com/chrissimpkins/codeface/releases/download/font-collection/codeface-fonts.zip;
-    sha256 = "1gbpfa5mqyhi5yrb6dl708pggiwp002b532fn3axiagb0cxxf02s";
-  };
-
-  buildInputs = [ unzip ];
-
-  installPhase = ''
+  url = https://github.com/chrissimpkins/codeface/releases/download/font-collection/codeface-fonts.zip;
+  postFetch = ''
+    unzip $downloadedFile
     mkdir -p $out/share/fonts/truetype
     mkdir -p $out/share/doc/${name}
-    cp -v camingo-code/*.ttf $out/share/fonts/truetype/
-    cp -v camingo-code/*.txt $out/share/doc/${name}/
+    cp -v fonts/camingo-code/*.ttf $out/share/fonts/truetype/
+    cp -v fonts/camingo-code/*.txt $out/share/doc/${name}/
   '';
+  sha256 = "035z2k6lwwy2bysw27pirn3vjxnj2h23nyx8jr213rb2bl0m21x1";
 
   meta = with stdenv.lib; {
     homepage = https://www.myfonts.com/fonts/jan-fromm/camingo-code/;
diff --git a/pkgs/data/fonts/cantarell-fonts/default.nix b/pkgs/data/fonts/cantarell-fonts/default.nix
index 98ce946044d..de2edad451b 100644
--- a/pkgs/data/fonts/cantarell-fonts/default.nix
+++ b/pkgs/data/fonts/cantarell-fonts/default.nix
@@ -10,6 +10,10 @@ stdenv.mkDerivation rec {
     sha256 = "0zvkd8cm1cg2919v1js9qmzwa02sjl7qajj3gcvgqvai1fm2i8hl";
   };
 
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "13w5qj1lx4vk875yna35v9lnc80cwmphcafnmp0d5grg4d98cry2";
+
   meta = {
     description = "Default typeface used in the user interface of GNOME since version 3.0";
     platforms = stdenv.lib.platforms.all;
diff --git a/pkgs/data/fonts/carlito/default.nix b/pkgs/data/fonts/carlito/default.nix
index b90d89c9779..2243435bc5d 100644
--- a/pkgs/data/fonts/carlito/default.nix
+++ b/pkgs/data/fonts/carlito/default.nix
@@ -1,23 +1,22 @@
-{stdenv, fetchurl}:
+{stdenv, fetchzip}:
 
-stdenv.mkDerivation rec {
-  name = "carlito-${version}";
+let
   version = "20130920";
+in fetchzip rec {
+  name = "carlito-${version}";
 
-  src = fetchurl {
-    url = "https://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/crosextrafonts-carlito-${version}.tar.gz";
-    sha256 = "0nmgzp6gdvv4dipswrw0l1bfjp4jbic2qvm7dpqiq71jpin2plab";
-  };
-
-  phases = ["unpackPhase" "installPhase"];
+  url = "https://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/crosextrafonts-carlito-${version}.tar.gz";
 
-  installPhase = ''
+  postFetch = ''
+    tar -xzvf $downloadedFile --strip-components=1
     mkdir -p $out/etc/fonts/conf.d
     mkdir -p $out/share/fonts/truetype
     cp -v *.ttf $out/share/fonts/truetype
     cp -v ${./calibri-alias.conf} $out/etc/fonts/conf.d/30-calibri.conf
   '';
 
+  sha256 = "0d72zy6kdmxgpi63r3yvi3jh1hb7lvlgv8hgd4ag0x10dz18mbzv";
+
   meta = with stdenv.lib; {
     # This font doesn't appear to have any official web site but this
     # one provides some good information and samples.
diff --git a/pkgs/data/fonts/cm-unicode/default.nix b/pkgs/data/fonts/cm-unicode/default.nix
index ed7ce93e189..d17021feb81 100644
--- a/pkgs/data/fonts/cm-unicode/default.nix
+++ b/pkgs/data/fonts/cm-unicode/default.nix
@@ -1,23 +1,22 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "cm-unicode-${version}";
+let
   version = "0.7.0";
+in fetchzip rec {
+  name = "cm-unicode-${version}";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/cm-unicode/cm-unicode/${version}/${name}-otf.tar.xz";
-    sha256 = "0a0w9qm9g8qz2xh3lr61bj1ymqslqsvk4w2ybc3v2qa89nz7x2jl";
-  };
-
-  phases = [ "unpackPhase" "installPhase" ];
+  url = "mirror://sourceforge/cm-unicode/cm-unicode/${version}/${name}-otf.tar.xz";
 
-  installPhase = ''
+  postFetch = ''
+    tar -xJvf $downloadedFile --strip-components=1
     mkdir -p $out/share/fonts/opentype
     mkdir -p $out/share/doc/${name}
     cp -v *.otf $out/share/fonts/opentype/
     cp -v README FontLog.txt $out/share/doc/${name}
   '';
 
+  sha256 = "1rzz7yhqq3lljyqxbg46jfzfd09qgpgx865lijr4sgc94riy1ypn";
+
   meta = with stdenv.lib; {
     homepage = http://canopus.iacp.dvo.ru/~panov/cm-unicode/;
     description = "Computer Modern Unicode fonts";
diff --git a/pkgs/data/fonts/comfortaa/default.nix b/pkgs/data/fonts/comfortaa/default.nix
index c773f395592..0dd4f727ad2 100644
--- a/pkgs/data/fonts/comfortaa/default.nix
+++ b/pkgs/data/fonts/comfortaa/default.nix
@@ -1,25 +1,18 @@
-{stdenv, fetchurl, unzip}:
+{stdenv, fetchzip}:
 
-stdenv.mkDerivation rec {
-  name = "comfortaa-${version}";
+let
   version = "2.004";
+in fetchzip rec {
+  name = "comfortaa-${version}";
 
-  src = fetchurl {
-    url = "http://openfontlibrary.org/assets/downloads/comfortaa/38318a69b56162733bf82bc0170b7521/comfortaa.zip";
-    sha256 = "0js0kk5g6b7xrq92b68gz5ipbiv1havnbgnfqzvlw3k3nllwnl9z";
-  };
-
-  phases = ["unpackPhase" "installPhase"];
-
-  buildInputs = [unzip];
-
-  installPhase = ''
-    mkdir -p $out/share/fonts/truetype
-    mkdir -p $out/share/doc/${name}
-    cp -v *.ttf $out/share/fonts/truetype/
-    cp -v FONTLOG.txt $out/share/doc/${name}/
-    cp -v donate.html $out/share/doc/${name}/
+  url = "http://openfontlibrary.org/assets/downloads/comfortaa/38318a69b56162733bf82bc0170b7521/comfortaa.zip";
+  postFetch = ''
+    mkdir -p $out/share/fonts $out/share/doc
+    unzip -l $downloadedFile
+    unzip -j $downloadedFile \*.ttf                        -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*/FONTLOG.txt \*/donate.html -d $out/share/doc/${name}
   '';
+  sha256 = "1gnscf3kw9p5gbc5594a22cc6nmiir9mhp1nl3mkbzd4v1jfbh2h";
 
   meta = with stdenv.lib; {
     homepage = http://aajohan.deviantart.com/art/Comfortaa-font-105395949;
diff --git a/pkgs/data/fonts/comic-neue/default.nix b/pkgs/data/fonts/comic-neue/default.nix
index 5d3da910e0b..07fc172ca51 100644
--- a/pkgs/data/fonts/comic-neue/default.nix
+++ b/pkgs/data/fonts/comic-neue/default.nix
@@ -1,29 +1,24 @@
-{ stdenv, fetchurl
-, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "comic-neue-${version}";
+let
   version = "2.2";
+in fetchzip rec {
+  name = "comic-neue-${version}";
 
-  src = fetchurl {
-    url = "http://comicneue.com/${name}.zip";
-    sha256 = "1dmmjhxxc0bj2755yksiiwh275vmnyciknr9b995lmdkjgh7sz6n";
-  };
-
-  buildInputs = [ unzip ];
-  phases = [ "unpackPhase" "installPhase" ];
-  sourceRoot = name;
+  url = "http://comicneue.com/${name}.zip";
 
-  installPhase = ''
-    mkdir -vp $out/share/fonts/truetype $out/share/fonts/opentype $out/share/fonts/EOT $out/share/fonts/WOFF $out/share/fonts/WOFF2 $out/share/doc/${name}
-    cp -v OTF/*.otf  $out/share/fonts/opentype
-    cp -v Web/*.ttf $out/share/fonts/truetype
-    cp -v Web/*.eot  $out/share/fonts/EOT
-    cp -v Web/*.woff  $out/share/fonts/WOFF
-    cp -v Web/*.woff2  $out/share/fonts/WOFF2
-    cp -v Booklet-ComicNeue.pdf FONTLOG.txt OFL-FAQ.txt SIL-License.txt $out/share/doc/${name}
+  postFetch = ''
+    mkdir -vp $out/share/{doc,fonts}
+    unzip -j $downloadedFile comic-neue-2.2/\*.otf   -d $out/share/fonts/opentype
+    unzip -j $downloadedFile comic-neue-2.2/\*.ttf   -d $out/share/fonts/truetype
+    unzip -j $downloadedFile comic-neue-2.2/\*.eot   -d $out/share/fonts/EOT
+    unzip -j $downloadedFile comic-neue-2.2/\*.woff  -d $out/share/fonts/WOFF
+    unzip -j $downloadedFile comic-neue-2.2/\*.woff2 -d $out/share/fonts/WOFF2
+    unzip -j $downloadedFile comic-neue-2.2/\*.pdf comic-neue-2.2/FONTLOG.txt comic-neue-2.2/OFL-FAQ.txt comic-neue-2.2/SIL-License.txt -d $out/share/doc/${name}
   '';
 
+  sha256 = "1yypq5aqqzv3q1c6vx5130mi2iwihzzvrawhwqpwsfjl0p25sq9q";
+
   meta = with stdenv.lib; {
     homepage = http://comicneue.com/;
     description = "A casual type face: Make your lemonade stand look like a fortune 500 company";
diff --git a/pkgs/data/fonts/comic-relief/default.nix b/pkgs/data/fonts/comic-relief/default.nix
index 31c89215ea7..2a1273214bd 100644
--- a/pkgs/data/fonts/comic-relief/default.nix
+++ b/pkgs/data/fonts/comic-relief/default.nix
@@ -1,32 +1,23 @@
-{stdenv, fetchurl, unzip}:
+{stdenv, fetchzip}:
 
-stdenv.mkDerivation rec {
-  name = "comic-relief-${version}";
+let
   version = "1.1";
+in fetchzip rec {
+  name = "comic-relief-${version}";
 
-  src = fetchurl {
-    url = "https://fontlibrary.org/assets/downloads/comic-relief/45c456b6db2aaf2f7f69ac66b5ac7239/comic-relief.zip";
-    sha256 = "0wpf10m9zmcfvcxgc7dxzdm3syam7d7qxlfabgr1nxzq299kh8ch";
-  };
-
-  buildInputs = [unzip];
-
-  phases = ["unpackPhase" "installPhase"];
-
-  unpackCmd = ''
-    mkdir -p ${name}
-    unzip -qq -d ${name} $src
-  '';
+  url = "https://fontlibrary.org/assets/downloads/comic-relief/45c456b6db2aaf2f7f69ac66b5ac7239/comic-relief.zip";
 
-  installPhase = ''
+  postFetch = ''
     mkdir -p $out/etc/fonts/conf.d
     mkdir -p $out/share/doc/${name}
     mkdir -p $out/share/fonts/truetype
-    cp -v *.ttf $out/share/fonts/truetype
-    cp -v ${./comic-sans-ms-alias.conf} $out/etc/fonts/conf.d/30-comic-sans-ms.conf
-    cp -v FONTLOG.txt $out/share/doc/${name}
+    cp -v ${./comic-sans-ms-alias.conf}     $out/etc/fonts/conf.d/30-comic-sans-ms.conf
+    unzip -j $downloadedFile \*.ttf      -d $out/share/fonts/truetype
+    unzip -j $downloadedFile FONTLOG.txt -d $out/share/doc/${name}
   '';
 
+  sha256 = "0dz0y7w6mq4hcmmxv6fn4mp6jkln9mzr4s96vsg68wrl5b7k9yff";
+
   meta = with stdenv.lib; {
     homepage = http://loudifier.com/comic-relief/;
     description = "A font metric-compatible with Microsoft Comic Sans";
diff --git a/pkgs/data/fonts/corefonts/default.nix b/pkgs/data/fonts/corefonts/default.nix
index c514f1ab7fb..91c8ed1163d 100644
--- a/pkgs/data/fonts/corefonts/default.nix
+++ b/pkgs/data/fonts/corefonts/default.nix
@@ -59,6 +59,10 @@ stdenv.mkDerivation {
     done
   '';
 
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "0baadsrgpqj15fgjmcn0aim0k0nk7mvivcxinw1zwg61kkcwhalx";
+
   meta = with stdenv.lib; {
     homepage = http://corefonts.sourceforge.net/;
     description = "Microsoft's TrueType core fonts for the Web";
diff --git a/pkgs/data/fonts/crimson/default.nix b/pkgs/data/fonts/crimson/default.nix
index f612f077064..e96c13b7822 100644
--- a/pkgs/data/fonts/crimson/default.nix
+++ b/pkgs/data/fonts/crimson/default.nix
@@ -1,23 +1,23 @@
-{stdenv, fetchurl}:
+{stdenv, fetchzip}:
 
-stdenv.mkDerivation rec {
-  name = "crimson-${version}";
+let
   version = "2014.10";
+in fetchzip rec {
+  name = "crimson-${version}";
 
-  src = fetchurl {
-    url = "https://github.com/skosch/Crimson/archive/fonts-october2014.tar.gz";
-    sha256 = "0qyihrhqb89vwg9cfpaf5xqmcjvs4r4614bxy634vmqv9v1bzn5b";
-  };
+  url = "https://github.com/skosch/Crimson/archive/fonts-october2014.tar.gz";
 
-  phases = ["unpackPhase" "installPhase"];
+  postFetch = ''
+    tar -xzvf $downloadedFile --strip-components=1
 
-  installPhase = ''
     mkdir -p $out/share/fonts/opentype
     mkdir -p $out/share/doc/${name}
     cp -v "Desktop Fonts/OTF/"*.otf $out/share/fonts/opentype
     cp -v README.md $out/share/doc/${name}
   '';
 
+  sha256 = "0mg65f0ydyfmb43jqr1f34njpd10w8npw15cbb7z0nxmy4nkl842";
+
   meta = with stdenv.lib; {
     homepage = https://aldusleaf.org/crimson.html;
     description = "A font family inspired by beautiful oldstyle typefaces";
diff --git a/pkgs/data/fonts/culmus/default.nix b/pkgs/data/fonts/culmus/default.nix
index 08783e46cde..236058c0b27 100644
--- a/pkgs/data/fonts/culmus/default.nix
+++ b/pkgs/data/fonts/culmus/default.nix
@@ -1,19 +1,20 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "culmus-${version}";
+let
   version = "0.130";
+in fetchzip {
+  name = "culmus-${version}";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/culmus/culmus/${version}/culmus-${version}.tar.gz";
-    sha256 = "908583e388bc983a63df4f38f7130eac69fc19539952031408bb3c627846f9c1";
-  };
-  
-  installPhase = ''
+  url = "mirror://sourceforge/culmus/culmus/${version}/culmus-${version}.tar.gz";
+
+  postFetch = ''
+    tar -xzvf $downloadedFile --strip-components=1
     mkdir -p $out/share/fonts/truetype
     cp -v *.ttf $out/share/fonts/truetype/
   '';
-  
+
+  sha256 = "0v5vm8j2bxnw2qn0640kyibn4h8ck8cidhx2pixi5xsayr0ij1n6";
+
   meta = {
     description = "Culmus Hebrew fonts";
     longDescription = "The Culmus project aims at providing the Hebrew-speaking GNU/Linux and Unix community with a basic collection of Hebrew fonts for X Windows.";
diff --git a/pkgs/data/fonts/dina/default.nix b/pkgs/data/fonts/dina/default.nix
index a206bd7f911..66feaf0ff54 100644
--- a/pkgs/data/fonts/dina/default.nix
+++ b/pkgs/data/fonts/dina/default.nix
@@ -1,23 +1,19 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
+let
   version = "2.92";
+in fetchzip rec {
   name = "dina-font-${version}";
 
-  src = fetchurl {
-    url = "http://www.donationcoder.com/Software/Jibz/Dina/downloads/Dina.zip";
-    sha256 = "1kq86lbxxgik82aywwhawmj80vsbz3hfhdyhicnlv9km7yjvnl8z";
-  };
-
-  nativeBuildInputs = [ unzip ];
-  phases = [ "unpackPhase" "installPhase" ];
+  url = "http://www.donationcoder.com/Software/Jibz/Dina/downloads/Dina.zip";
 
-  installPhase =
-  ''
+  postFetch = ''
     mkdir -p $out/share/fonts
-    cp *.bdf $out/share/fonts
+    unzip -j $downloadedFile \*.bdf -d $out/share/fonts
   '';
 
+  sha256 = "02a6hqbq18sw69npylfskriqhvj1nsk65hjjyd05nl913ycc6jl7";
+
   meta = with stdenv.lib; {
     description = "A monospace bitmap font aimed at programmers";
     longDescription = ''
diff --git a/pkgs/data/fonts/dosis/default.nix b/pkgs/data/fonts/dosis/default.nix
index 28b9ee2f1e7..01157e8b7e4 100644
--- a/pkgs/data/fonts/dosis/default.nix
+++ b/pkgs/data/fonts/dosis/default.nix
@@ -1,22 +1,18 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchzip}:
 
-stdenv.mkDerivation rec {
+fetchzip rec {
   name = "dosis-1.007";
 
-  src = fetchFromGitHub {
-    owner = "impallari";
-    repo = "Dosis";
-    rev = "12df1e13e58768f20e0d48ff15651b703f9dd9dc";
-    sha256 = "0glniyg07z5gx5gsa1ymarg2gsncjyf94wi6j9bf68v5s2w3v7md";
-  };
+  url = https://github.com/impallari/Dosis/archive/12df1e13e58768f20e0d48ff15651b703f9dd9dc.zip;
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/opentype
-    mkdir -p $out/share/doc/${name}
-    cp -v "fonts/OTF v1.007 Fontlab/"*.otf $out/share/fonts/opentype/
-    cp -v README.md FONTLOG.txt $out/share/doc/${name}
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.otf                    -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*README.md \*FONTLOG.txt -d "$out/share/doc/${name}"
   '';
 
+  sha256 = "11a8jmgaly14l7rm3jxkwwv3ngr8fdlkp70nicjk2rg0nny2cvfq";
+
   meta = with stdenv.lib; {
     description = "A very simple, rounded, sans serif family";
     longDescription = ''
diff --git a/pkgs/data/fonts/droid/default.nix b/pkgs/data/fonts/droid/default.nix
index 70730a7d8b7..c2a4868a091 100644
--- a/pkgs/data/fonts/droid/default.nix
+++ b/pkgs/data/fonts/droid/default.nix
@@ -50,6 +50,10 @@ stdenv.mkDerivation rec {
     cp *.ttf $out/share/fonts/droid
   '';
 
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1l3lqfdr9pm05b1py9yr3cf65gi1my7jrrlvikqpqg2zr066n6c3";
+
   meta = {
     description = "Droid Family fonts by Google Android";
     homepage = https://github.com/google/fonts;
diff --git a/pkgs/data/fonts/eb-garamond/default.nix b/pkgs/data/fonts/eb-garamond/default.nix
index 0956250e36c..53a5d9f73cc 100644
--- a/pkgs/data/fonts/eb-garamond/default.nix
+++ b/pkgs/data/fonts/eb-garamond/default.nix
@@ -1,23 +1,20 @@
 { stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "eb-garamond-${version}";
+let
   version = "0.016";
+in fetchzip rec {
+  name = "eb-garamond-${version}";
 
-  src = fetchzip {
-    url = "https://bitbucket.org/georgd/eb-garamond/downloads/EBGaramond-${version}.zip";
-    sha256 = "0j40bg1di39q7zis64il67xchldyznrl8wij9il10c4wr8nl4r9z";
-  };
-
-  phases = [ "unpackPhase" "installPhase" ];
+  url = "https://bitbucket.org/georgd/eb-garamond/downloads/EBGaramond-${version}.zip";
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/opentype
-    mkdir -p $out/share/doc/${name}
-    cp -v "otf/"*.otf $out/share/fonts/opentype/
-    cp -v Changes README.markdown README.xelualatex $out/share/doc/${name}
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.otf                                          -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*Changes \*README.markdown \*README.xelualatex -d "$out/share/doc/${name}"
   '';
 
+  sha256 = "04jq4mpln85zzbla8ybsjw7vn9qr3r0snmk5zykrm24imq7ripv3";
+
   meta = with stdenv.lib; {
     homepage = http://www.georgduffner.at/ebgaramond/;
     description = "Digitization of the Garamond shown on the Egenolff-Berner specimen";
diff --git a/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix b/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix
index 4082d5949a3..10305a8c2d2 100644
--- a/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix
+++ b/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix
@@ -1,21 +1,19 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "emacs-all-the-icons-fonts-${version}";
+let
   version = "3.1.1";
+in fetchzip {
+  name = "emacs-all-the-icons-fonts-${version}";
 
-  src = fetchFromGitHub {
-    owner = "domtronn";
-    repo = "all-the-icons.el";
-    rev = version;
-    sha256 = "0h8a2jvn2wfi3bqd35scmhm8wh20mlk09sy68m1whi9binzkm8rf";
-  };
+  url = "https://github.com/domtronn/all-the-icons.el/archive/${version}.zip";
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/all-the-icons
-    for font in $src/fonts/*.ttf; do cp $font $out/share/fonts/all-the-icons; done
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/all-the-icons
   '';
 
+  sha256 = "0ps8q9nkx67ivgn8na4s012360v36jwr0951rsg7j6dyyw9g41jq";
+
   meta = with stdenv.lib; {
     description = "Icon fonts for emacs all-the-icons";
     longDescription = ''
diff --git a/pkgs/data/fonts/encode-sans/default.nix b/pkgs/data/fonts/encode-sans/default.nix
index e0f79b2722c..96d64e13893 100644
--- a/pkgs/data/fonts/encode-sans/default.nix
+++ b/pkgs/data/fonts/encode-sans/default.nix
@@ -1,22 +1,18 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
+fetchzip rec {
   name = "encode-sans-1.002";
 
-  src = fetchFromGitHub {
-    owner = "impallari";
-    repo = "Encode-Sans";
-    rev = "11162b46892d20f55bd42a00b48cbf06b5871f75";
-    sha256 = "1v5k79qlsl6nggilmjw56axwwr2b3838x6vqch4lh0dck5ri9w2c";
-  };
+  url = https://github.com/impallari/Encode-Sans/archive/11162b46892d20f55bd42a00b48cbf06b5871f75.zip;
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/truetype
-    mkdir -p $out/share/doc/${name}
-    cp -v *.ttf $out/share/fonts/truetype/
-    cp -v README.md FONTLOG.txt $out/share/doc/${name}
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.ttf                    -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*README.md \*FONTLOG.txt -d "$out/share/doc/${name}"
   '';
 
+  sha256 = "16mx894zqlwrhnp4rflgayxhxppmsj6k7haxdngajhb30rlwf08p";
+
   meta = with stdenv.lib; {
     description = "A versatile sans serif font family";
     longDescription = ''
diff --git a/pkgs/data/fonts/fantasque-sans-mono/default.nix b/pkgs/data/fonts/fantasque-sans-mono/default.nix
index a87c89d1df9..de52ae411ef 100644
--- a/pkgs/data/fonts/fantasque-sans-mono/default.nix
+++ b/pkgs/data/fonts/fantasque-sans-mono/default.nix
@@ -1,28 +1,19 @@
-{stdenv, fetchurl, unzip}:
+{stdenv, fetchzip}:
 
-stdenv.mkDerivation rec {
-  name = "fantasque-sans-mono-${version}";
+let
   version = "1.7.1";
+in fetchzip rec {
+  name = "fantasque-sans-mono-${version}";
 
-  src = fetchurl {
-    url = "https://github.com/belluzj/fantasque-sans/releases/download/v${version}/FantasqueSansMono.zip";
-    sha256 = "0lkky7mmpq6igpjh7lsv30xjx62mwlx27gd9zwcyv3mp2d2b5cvb";
-  };
-
-  buildInputs = [unzip];
-  phases = ["unpackPhase" "installPhase"];
+  url = "https://github.com/belluzj/fantasque-sans/releases/download/v${version}/FantasqueSansMono.zip";
 
-  unpackCmd = ''
-    mkdir -p ${name}
-    unzip -qq -d ${name} $src
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.otf    -d $out/share/fonts/opentype
+    unzip -j $downloadedFile README.md -d $out/share/doc/${name}
   '';
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/opentype
-    mkdir -p $out/share/doc/${name}
-    cp -v "OTF/"*.otf $out/share/fonts/opentype
-    cp -v README.md $out/share/doc/${name}
-  '';
+  sha256 = "1sjdpnxyjdbqxzrylzkynxh1bmicc71h3pmwmr3a3cq0h53g28z0";
 
   meta = with stdenv.lib; {
     homepage = https://github.com/belluzj/fantasque-sans;
diff --git a/pkgs/data/fonts/fira-mono/default.nix b/pkgs/data/fonts/fira-mono/default.nix
index 3997ba27719..4fc6aab9510 100644
--- a/pkgs/data/fonts/fira-mono/default.nix
+++ b/pkgs/data/fonts/fira-mono/default.nix
@@ -1,22 +1,17 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
+fetchzip {
   name = "fira-mono-3.206";
 
-  src = fetchurl {
-    url = http://www.carrois.com/downloads/fira_mono_3_2/FiraMonoFonts3206.zip;
-    sha256 = "1z65x0dw5dq6rs6p9wyfrir50rlh95vgzsxr8jcd40nqazw4jhpi";
-  };
-
-  buildInputs = [ unzip ];
-  phases = [ "unpackPhase" "installPhase" ];
-  sourceRoot = "FiraMonoFonts3206";
+  url = http://www.carrois.com/downloads/fira_mono_3_2/FiraMonoFonts3206.zip;
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/opentype
-    find . -name "*.otf" -exec cp -v {} $out/share/fonts/opentype \;
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
   '';
 
+  sha256 = "0m4kdjh4xjyznybpgh21a0gibv4wsxq0rqyl3wv942zk6mclmgdf";
+
   meta = with stdenv.lib; {
     homepage = http://www.carrois.com/fira-4-1/;
     description = "Monospace font for Firefox OS";
diff --git a/pkgs/data/fonts/fira/default.nix b/pkgs/data/fonts/fira/default.nix
index f777ae33e0b..cddb8cd726a 100644
--- a/pkgs/data/fonts/fira/default.nix
+++ b/pkgs/data/fonts/fira/default.nix
@@ -1,22 +1,17 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
+fetchzip rec {
   name = "fira-4.106";
 
-  src = fetchurl {
-    url = http://www.carrois.com/downloads/fira_4_1/FiraFonts4106.zip;
-    sha256 = "123xwd7abb96lsla1v579vfpvc7fwixhq78221qxrw4dv8mgf8id";
-  };
-
-  buildInputs = [unzip];
-  phases = [ "unpackPhase" "installPhase" ];
-  sourceRoot = "FiraFonts4106";
+  url = http://www.carrois.com/downloads/fira_4_1/FiraFonts4106.zip;
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/opentype
-    find . -name "*.otf" -exec cp -v {} $out/share/fonts/opentype \;
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
   '';
 
+  sha256 = "174nwmpvxqg1qjfj6h3yvrphs1s3n6zricdh27iaxilajm0ilbgs";
+
   meta = with stdenv.lib; {
     homepage = http://www.carrois.com/fira-4-1/;
     description = "Sans-serif font for Firefox OS";
diff --git a/pkgs/data/fonts/fontconfig-penultimate/default.nix b/pkgs/data/fonts/fontconfig-penultimate/default.nix
index 360cacb551d..da1c4467036 100644
--- a/pkgs/data/fonts/fontconfig-penultimate/default.nix
+++ b/pkgs/data/fonts/fontconfig-penultimate/default.nix
@@ -1,21 +1,18 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchzip }:
 
 let version = "0.3.5"; in
-stdenv.mkDerivation {
+fetchzip {
   name = "fontconfig-penultimate-${version}";
 
-  src = fetchFromGitHub {
-    owner = "ttuegel";
-    repo = "fontconfig-penultimate";
-    rev = version;
-    sha256 = "1xi664bs6n687s972nch87hi0iqkd6gr1l76zl58pymiw2132ks8";
-  };
+  url = "https://github.com/ttuegel/fontconfig-penultimate/archive/${version}.zip";
 
-  installPhase = ''
+  postFetch = ''
     mkdir -p $out/etc/fonts/conf.d
-    cp *.conf $out/etc/fonts/conf.d
+    unzip -j $downloadedFile \*.conf -d $out/etc/fonts/conf.d
   '';
 
+  sha256 = "1gfgl7qimp76q4z0nv55vv57yfs4kscdr329np701k0xnhncwvrk";
+
   meta = with stdenv.lib; {
     homepage = https://github.com/ttuegel/fontconfig-penultimate;
     description = "Sensible defaults for Fontconfig";
diff --git a/pkgs/data/fonts/freefont-ttf/default.nix b/pkgs/data/fonts/freefont-ttf/default.nix
index 00d5cfba27a..87b3abe2911 100644
--- a/pkgs/data/fonts/freefont-ttf/default.nix
+++ b/pkgs/data/fonts/freefont-ttf/default.nix
@@ -1,20 +1,17 @@
-{stdenv, fetchurl, unzip}:
+{stdenv, fetchzip}:
 
-stdenv.mkDerivation rec {
+fetchzip rec {
   name = "freefont-ttf-20120503";
 
-  src = fetchurl {
-    url = "mirror://gnu/freefont/${name}.zip";
-    sha256 = "1bw9mrf5pqi2a29b7qw4nhhj566aqqmi28hkbn2a38c2pzqvm1bw";
-  };
-
-  buildInputs = [ unzip ];
+  url = "mirror://gnu/freefont/${name}.zip";
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/truetype
-    cp *.ttf $out/share/fonts/truetype
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
   '';
 
+  sha256 = "0h0x2hhr7kvjiycf7fv800xxwa6hcpiz54bqx06wsqc7z61iklvd";
+
   meta = {
     description = "GNU Free UCS Outline Fonts";
     longDescription = ''
diff --git a/pkgs/data/fonts/gdouros/default.nix b/pkgs/data/fonts/gdouros/default.nix
index 28bea4c2c8b..359074099ba 100644
--- a/pkgs/data/fonts/gdouros/default.nix
+++ b/pkgs/data/fonts/gdouros/default.nix
@@ -1,62 +1,51 @@
-{stdenv, fetchurl, unzip, lib }:
+{stdenv, fetchzip, lib}:
+
 let
   fonts = {
-    symbola = { version = "9.00"; file = "Symbola.zip"; sha256 = "0d9zrlvzh8inhr17p99banr0dmrvkwxbk3q7zhqqx2z4gf2yavc5";
+    symbola = { version = "9.17"; file = "Symbola.zip"; sha256 = "13z18lxx0py54nns61ihgxacpf1lg9s7g2sbpbnxpllqw7j73iq2";
                 description = "Basic Latin, Greek, Cyrillic and many Symbol blocks of Unicode"; };
-    aegyptus = { version = "6.00"; file = "Aegyptus.zip"; sha256 = "10mr54ja9b169fhqfkrw510jybghrpjx7a8a7m38k5v39ck8wz6v";
+    aegyptus = { version = "6.17"; file = "Aegyptus.zip"; sha256 = "19rkf89msqb076qjdfa75pqrx35c3slj64vxw08zqdvyavq7jc79";
                  description = "Egyptian Hieroglyphs, Coptic, Meroitic"; };
-    akkadian = { version = "7.13"; file = "Akkadian.zip"; sha256 = "1jd2fb6jnwpdwgkidsi2pnw0nk2cpya8k85299w591sqslfkxyij";
+    akkadian = { version = "7.17"; file = "AkkadianAssyrian.zip"; sha256 = "1xw2flrwb5r89sk7jd195v3svsb21brf1li2i3pdjcfqxfp5m0g7";
                  description = "Sumero-Akkadian Cuneiform"; };
-    anatolian = { version = "5.02"; file = "Anatolian.zip"; sha256 = "0arm58sijzk0bqmfb70k1sjvq79wgw16hx3j2g4l8qz4sv05bp8l";
+    anatolian = { version = "5.17"; file = "Anatolian.zip"; sha256 = "0dqcyjakc4fy076pjplm6psl8drpwxiwyq97xrf6a3qa098gc0qc";
                   description = "Anatolian Hieroglyphs"; };
-    maya = { version = "4.14"; file = "Maya.zip"; sha256 = "0l97racgncrhb96mfbsx8dr5n4j289iy0nnwhxf9b21ns58a9x4f";
+    maya = { version = "4.17"; file = "Maya.zip"; sha256 = "17s5c23wpqrcq5h6pgssbmzxiv4jvhdh2ssr99j9q6j32a51h9gh";
              description = "Maya Hieroglyphs"; };
-    unidings = { version = "8.00"; file = "Unidings.zip"; sha256 = "1i0z3mhgj4680188lqpmk7rx3yiz4l7yybb4wq6zk35j75l28irm";
+    unidings = { version = "9.17"; file = "Unidings.zip"; sha256 = "0nzw8mrhk0hbjnl2cgi31b00vmi785win86kiz9d2yzdfz1is6sk";
                  description = "Glyphs and Icons for blocks of The Unicode Standard"; };
-    musica = { version = "3.12"; file = "Musica.zip"; sha256 = "079vyb0mpxvlcf81d5pqh9dijkcvidfbcyvpbgjpmgzzrrj0q210";
+    musica = { version = "3.17"; file = "Musica.zip"; sha256 = "0mnv61dxzs2npvxgs5l9q81q19xzzi1sn53x5qwpiirkmi6bg5y6";
                description = "Musical Notation"; };
-    analecta = { version = "5.00"; file = "Analecta.zip"; sha256 = "0rphylnz42fqm1zpx5jx60k294kax3sid8r2hx3cbxfdf8fnpb1f";
+    analecta = { version = "5.17"; file = "Analecta.zip"; sha256 = "13npnfscd9mz6vf89qxxbj383njf53a1smqjh0c1w2lvijgak3aj";
                  description = "Coptic, Gothic, Deseret"; };
-    # the following are also available from http://users.teilar.gr/~g1951d/
-    # but not yet packaged:
-    #  - Aroania
-    #  - Anaktoria
-    #  - Alexander
-    #  - Avdira
-    #  - Asea
-    #  - Aegean
+    textfonts = { version = "7.17"; file = "TextfontsFonts.zip"; sha256 = "1ggflqnslp81v8pzmzx6iwi2sa38l9bpivjjci7nvx3y5xynm6wl";
+                 description = "Aroania, Anaktoria, Alexander, Avdira and Asea"; };
+    aegan = { version = "9.17"; file = "AegeanFonts.zip"; sha256 = "0dm2ck3p11bc9izrh7xz3blqfqg1mgsvy4jsgmz9rcs4m74xrhsf";
+              description = "Aegean"; };
+    abydos = { version = "1.23"; file = "AbydosFont.zip"; sha256 = "04r7ysnjjq0nrr3m8lbz8ssyx6xaikqybjqxzl3ziywl9h6nxdj8";
+               description = "AbydosFont"; };
   };
-  mkpkg = name_: {version, file, sha256, description}:
-    stdenv.mkDerivation rec {
-      name = "${name_}-${version}";
-
-      src = fetchurl {
-        url = "http://users.teilar.gr/~g1951d/${file}";
-        inherit sha256;
-      };
-
-      buildInputs = [ unzip ];
-
-      sourceRoot = ".";
 
-      installPhase = ''
-        mkdir -p $out/share/fonts/truetype
-        cp -v *.ttf $out/share/fonts/truetype/
+  mkpkg = name_: {version, file, sha256, description}: fetchzip rec {
+    name = "${name_}-${version}";
+    url = "http://users.teilar.gr/~g1951d/${file}";
+    postFetch = ''
+      mkdir -p $out/share/{fonts,doc}
+      unzip -j $downloadedFile \*.ttf                 -d $out/share/fonts/truetype
+      unzip -j $downloadedFile \*.docx \*.pdf \*.xlsx -d "$out/share/doc/${name}" || true  # unpack docs if any
+      rmdir "$out/share/doc/${name}" $out/share/doc                               || true  # remove dirs if empty
+    '';
+    inherit sha256;
 
-        mkdir -p "$out/doc/${name}"
-        cp -v *.docx *.pdf *.xlsx "$out/doc/${name}/"
-      '';
-
-      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 = stdenv.lib.licenses.free;
-        homepage = http://users.teilar.gr/~g1951d/;
-        platforms = stdenv.lib.platforms.unix;
-      };
+    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 = stdenv.lib.licenses.free;
+      homepage = http://users.teilar.gr/~g1951d/;
+      platforms = stdenv.lib.platforms.unix;
     };
-
+  };
 in
-lib.mapAttrs mkpkg fonts
+  lib.mapAttrs mkpkg fonts
diff --git a/pkgs/data/fonts/go-font/default.nix b/pkgs/data/fonts/go-font/default.nix
index 0c9dfa40982..a0af38cfd24 100644
--- a/pkgs/data/fonts/go-font/default.nix
+++ b/pkgs/data/fonts/go-font/default.nix
@@ -17,6 +17,10 @@ stdenv.mkDerivation rec {
     mv $out/share/fonts/truetype/README $out/share/doc/go-font/LICENSE
   '';
 
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "10hfm2cpxlx1ng7r2mbvykjhmy131qlgzpdzj7ibg9kr293bcjc0";
+
   meta = with stdenv.lib; {
     homepage = https://blog.golang.org/go-fonts;
     description = "The Go font family";
diff --git a/pkgs/data/fonts/gyre/default.nix b/pkgs/data/fonts/gyre/default.nix
index a5f43d4169b..492d89a674c 100644
--- a/pkgs/data/fonts/gyre/default.nix
+++ b/pkgs/data/fonts/gyre/default.nix
@@ -1,24 +1,20 @@
-{stdenv, fetchurl, unzip}:
+{stdenv, fetchzip}:
 
-stdenv.mkDerivation rec {
+let
   baseName = "gyre-fonts";
   version = "2.005";
+in fetchzip {
   name="${baseName}-${version}";
-  
-  src = fetchurl {
-    url = "http://www.gust.org.pl/projects/e-foundry/tex-gyre/whole/tg-2.005otf.zip";
-    sha256 = "0kph9l3g7jb2bpmxdbdg5zl56wacmnvdvsdn7is1gc750sqvsn31";
-  };
-
-  buildInputs = [unzip];
 
-  sourceRoot = ".";
+  url = "http://www.gust.org.pl/projects/e-foundry/tex-gyre/whole/tg-${version}otf.zip";
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/truetype
-    cp *.otf $out/share/fonts/truetype
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/truetype
   '';
 
+  sha256 = "17amdpahs6kn7hk3dqxpff1s095cg1caxzij3mxjbbxp8zy0l111";
+
   meta = {
     description = "OpenType fonts from the Gyre project, suitable for use with (La)TeX";
     longDescription = ''
diff --git a/pkgs/data/fonts/hack/default.nix b/pkgs/data/fonts/hack/default.nix
index 689e1e054dc..f997f10db1d 100644
--- a/pkgs/data/fonts/hack/default.nix
+++ b/pkgs/data/fonts/hack/default.nix
@@ -1,26 +1,21 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "hack-font-${version}";
+let
   version = "2.020";
+in fetchzip rec {
+  name = "hack-font-${version}";
 
-  src = let
-    version_ = with stdenv.lib;
-      concatStringsSep "_" (splitString "." version);
-  in fetchurl {
-    sha256 = "16kkmc3psckw1b7k07ccn1gi5ymhlg9djh43nqjzg065g6p6d184";
-    url = "https://github.com/chrissimpkins/Hack/releases/download/v${version}/Hack-v${version_}-ttf.zip";
-  };
-
-  sourceRoot = ".";
-
-  nativeBuildInputs = [ unzip ];
+  url = let
+    version_ = with stdenv.lib; concatStringsSep "_" (splitString "." version);
+  in "https://github.com/chrissimpkins/Hack/releases/download/v${version}/Hack-v${version_}-ttf.zip";
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/hack
-    cp *.ttf $out/share/fonts/hack
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/hack
   '';
 
+  sha256 = "0cpsglb9vnhmpsn496aqisfvmq3yxvjnj7c361dspy0fn6z8x60c";
+
   meta = with stdenv.lib; {
     description = "A typeface designed for source code";
     longDescription = ''
diff --git a/pkgs/data/fonts/hanazono/default.nix b/pkgs/data/fonts/hanazono/default.nix
index 01be8afd7aa..27459b2d1f3 100644
--- a/pkgs/data/fonts/hanazono/default.nix
+++ b/pkgs/data/fonts/hanazono/default.nix
@@ -1,25 +1,20 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "hanazono-${version}";
+let
   version = "20141012";
+in fetchzip {
+  name = "hanazono-${version}";
 
-  src = fetchurl {
-    url = "mirror://sourceforgejp/hanazono-font/62072/hanazono-20141012.zip";
-    sha256 = "020jhqnzm9jvkmfvvyk1my26ncwxbnb9yc8v7am252jwrifji9q6";
-  };
-
-  buildInputs = [ unzip ];
-
-  sourceRoot = ".";
+  url = "mirror://sourceforgejp/hanazono-font/62072/hanazono-${version}.zip";
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/hanazono
-    cp *.ttf $out/share/fonts/hanazono
-    mkdir -p $out/share/doc/hanazono
-    cp *.txt $out/share/doc/hanazono
+  postFetch = ''
+    mkdir -p $out/share/fonts/hanazono $out/share/doc/hanazono
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/hanazono
+    unzip -j $downloadedFile \*.txt -d $out/share/doc/hanazono
   '';
 
+  sha256 = "0z0fgrjzp0hqqnhfisivciqpxd2br2w2q9mvxkglj44np2q889w2";
+
   meta = with stdenv.lib; {
     description = "Free kanji font containing 96,327 characters";
     homepage = http://fonts.jp/hanazono/;
diff --git a/pkgs/data/fonts/hasklig/default.nix b/pkgs/data/fonts/hasklig/default.nix
index 51d2b8b9c11..96af2e573a2 100644
--- a/pkgs/data/fonts/hasklig/default.nix
+++ b/pkgs/data/fonts/hasklig/default.nix
@@ -1,25 +1,20 @@
-{stdenv, fetchurl, unzip}:
+{stdenv, fetchzip}:
 
-stdenv.mkDerivation rec {
-  name = "hasklig-${version}";
+let
   version = "1.1";
+in fetchzip {
+  name = "hasklig-${version}";
 
-  src = fetchurl {
-    url = "https://github.com/i-tu/Hasklig/releases/download/${version}/Hasklig-${version}.zip";
-    sha256 = "1hwmdbygallw2kjk0v3a3dl7w6b21wii3acrl0w3ibn05g1cxv4q";
-  };
-
-  buildInputs = [ unzip ];
-
-  sourceRoot = ".";
-
-  phases = [ "unpackPhase" "installPhase" ];
+  url = "https://github.com/i-tu/Hasklig/releases/download/${version}/Hasklig-${version}.zip";
 
-  installPhase = ''
+  postFetch = ''
+    unzip $downloadedFile
     mkdir -p $out/share/fonts/opentype
     cp *.otf $out/share/fonts/opentype
   '';
 
+  sha256 = "0xxyx0nkapviqaqmf3b610nq17k20afirvc72l32pfspsbxz8ybq";
+
   meta = with stdenv.lib; {
     homepage = https://github.com/i-tu/Hasklig;
     description = "A font with ligatures for Haskell code based off Source Code Pro";
diff --git a/pkgs/data/fonts/helvetica-neue-lt-std/default.nix b/pkgs/data/fonts/helvetica-neue-lt-std/default.nix
index 13e98462b21..a614017b809 100644
--- a/pkgs/data/fonts/helvetica-neue-lt-std/default.nix
+++ b/pkgs/data/fonts/helvetica-neue-lt-std/default.nix
@@ -1,25 +1,19 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "helvetica-neue-lt-std-${version}";
+let
   version = "2013.06.07"; # date of most recent file in distribution
+in fetchzip rec {
+  name = "helvetica-neue-lt-std-${version}";
 
-  src = fetchurl {
-    url = "http://www.ephifonts.com/downloads/helvetica-neue-lt-std.zip";
-    sha256 = "0nrjdj2a11dr6d3aihvjxzrkdi0wq6f2bvaiimi5iwmpyz80n0h6";
-  };
-
-  nativeBuildInputs = [ unzip ];
-
-  phases = [ "unpackPhase" "installPhase" ];
-
-  sourceRoot = "Helvetica Neue LT Std";
+  url = "http://www.ephifonts.com/downloads/helvetica-neue-lt-std.zip";
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/opentype
-    cp -v *.otf $out/share/fonts/opentype
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile Helvetica\ Neue\ LT\ Std/\*.otf -d $out/share/fonts/opentype
   '';
 
+  sha256 = "0ampp9vf9xw0sdppl4lb9i9h75ywljhdcqmzh45mx2x9m7h6xgg9";
+
   meta = {
     homepage = http://www.ephifonts.com/free-helvetica-font-helvetica-neue-lt-std.html;
     description = "Helvetica Neue LT Std font";
diff --git a/pkgs/data/fonts/inconsolata/default.nix b/pkgs/data/fonts/inconsolata/default.nix
index caa67256a1f..13aeae80312 100644
--- a/pkgs/data/fonts/inconsolata/default.nix
+++ b/pkgs/data/fonts/inconsolata/default.nix
@@ -1,20 +1,15 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "inconsolata-${version}";
+let
   version = "1.010";
+in fetchzip {
+  name = "inconsolata-${version}";
 
-  src = fetchurl {
-    url = "http://www.levien.com/type/myfonts/Inconsolata.otf";
-    sha256 = "06js6znbcf7swn8y3b8ki416bz96ay7d3yvddqnvi88lqhbfcq8m";
-  };
+  url = "http://www.levien.com/type/myfonts/Inconsolata.otf";
 
-  phases = [ "installPhase" ];
+  postFetch = "install -Dm644 $downloadedFile $out/share/fonts/opentype/inconsolata.otf";
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/opentype
-    cp -v $src $out/share/fonts/opentype/inconsolata.otf
-  '';
+  sha256 = "1yyf7agabfv0ia57c7in0r33x7c8ay445zf7c3dfc83j6w85g3i7";
 
   meta = with stdenv.lib; {
     homepage = http://www.levien.com/type/myfonts/inconsolata.html;
diff --git a/pkgs/data/fonts/input-fonts/default.nix b/pkgs/data/fonts/input-fonts/default.nix
index 8cfda1a5e9c..5217b175ed2 100644
--- a/pkgs/data/fonts/input-fonts/default.nix
+++ b/pkgs/data/fonts/input-fonts/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   name = "input-fonts-${version}";
-  version = "2016-10-06"; # date of the download and checksum
+  version = "2017-08-10"; # date of the download and checksum
 
   src = requireFile {
     name = "Input-Font.zip";
     url = "http://input.fontbureau.com/download/";
-    sha256 = "06hrsrb5a6hzrgkkhk0gdj92rhgr433vgn4j5g3pd8f1ijlfqn4y";
+    sha256 = "07fkyvbb12agkb2kpnq2j45nycgbjvb4n1s5hjyqsipdh2z9zihq";
   };
 
   nativeBuildInputs = [ unzip ];
@@ -23,6 +23,10 @@ stdenv.mkDerivation rec {
     cp -a *.txt "$out"/share/doc/
   '';
 
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "0k7xqkgqldd110ch9s144ilh762q777qcjvg3plmrb9s6xiaqvvd";
+
   meta = with stdenv.lib; {
     description = "Fonts for Code, from Font Bureau";
     longDescrition = ''
diff --git a/pkgs/data/fonts/junicode/default.nix b/pkgs/data/fonts/junicode/default.nix
index a8b6c8853f3..8b1ddd0c753 100644
--- a/pkgs/data/fonts/junicode/default.nix
+++ b/pkgs/data/fonts/junicode/default.nix
@@ -1,20 +1,16 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation {
+fetchzip {
   name = "junicode-0.7.8";
 
-  src = fetchurl {
-    url = mirror://sourceforge/junicode/junicode/junicode-0-7-8/junicode-0-7-8.zip;
-    sha256 = "1lgkhj52s351ya7lp9z3xba7kaivgdvg80njhpj1rpc3jcmc69vl";
-  };
+  url = mirror://sourceforge/junicode/junicode/junicode-0-7-8/junicode-0-7-8.zip;
 
-  buildInputs = [ unzip ];
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/junicode-ttf
+  '';
 
-  installPhase =
-    ''
-      mkdir -p $out/share/fonts/junicode-ttf
-      cp fonts/*.ttf $out/share/fonts/junicode-ttf
-    '';
+  sha256 = "0q4si9pnbif36154sv49kzc7ygivgflv81nzmblpz3b2p77g9956";
 
   meta = {
     homepage = http://junicode.sourceforge.net/;
diff --git a/pkgs/data/fonts/kawkab-mono/default.nix b/pkgs/data/fonts/kawkab-mono/default.nix
index 7b990327286..bfc76b69b65 100644
--- a/pkgs/data/fonts/kawkab-mono/default.nix
+++ b/pkgs/data/fonts/kawkab-mono/default.nix
@@ -1,21 +1,17 @@
-{stdenv, fetchurl, unzip}:
+{stdenv, fetchzip}:
 
-stdenv.mkDerivation rec {
+fetchzip rec {
   name = "kawkab-mono-20151015";
 
-  src = fetchurl {
-    url = "http://makkuk.com/kawkab-mono/downloads/kawkab-mono-0.1.zip";
-    sha256 = "16pv9s4q7199aacbzfi2d10rcrq77vyfvzcy42g80nhfrkz1cb0m";
-  };
-
-  buildInputs = [ unzip ];
-  sourceRoot = ".";
+  url = "http://makkuk.com/kawkab-mono/downloads/kawkab-mono-0.1.zip";
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/truetype
-    cp *.ttf $out/share/fonts/truetype
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
   '';
 
+  sha256 = "1vfrb7xs817najplncg7zl9j5yxj8qnwb7aqm2v9p9xwafa4d2yd";
+
   meta = {
     description = "An arab fixed-width font";
     homepage = http://makkuk.com/kawkab-mono/;
diff --git a/pkgs/data/fonts/kochi-substitute-naga10/default.nix b/pkgs/data/fonts/kochi-substitute-naga10/default.nix
index ea2c15752d7..c24e6898129 100644
--- a/pkgs/data/fonts/kochi-substitute-naga10/default.nix
+++ b/pkgs/data/fonts/kochi-substitute-naga10/default.nix
@@ -1,23 +1,21 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchzip }:
 
 let version = "20030809";
 in
-stdenv.mkDerivation {
+fetchzip {
   name = "kochi-substitute-naga10-${version}";
 
-  src = fetchurl {
-    url = "mirror://sourceforgejp/efont/5411/kochi-substitute-${version}.tar.bz2";
-    sha256 = "f4d69b24538833bf7e2c4de5e01713b3f1440960a6cc2a5993cb3c68cd23148c";
-  };
-
-  sourceRoot = "kochi-substitute-${version}";
+  url = "mirror://sourceforgejp/efont/5411/kochi-substitute-${version}.tar.bz2";
 
-  installPhase = ''
+  postFetch = ''
+    tar -xjf $downloadedFile --strip-components=1
     mkdir -p $out/share/fonts/truetype
     cp ./kochi-gothic-subst.ttf $out/share/fonts/truetype/kochi-gothic-subst-naga10.ttf
     cp ./kochi-mincho-subst.ttf $out/share/fonts/truetype/kochi-mincho-subst-naga10.ttf
   '';
 
+  sha256 = "1bjb5cr3wf3d5y7xj1ly2mkv4ndwvg615rb1ql6lsqc2icjxk7j9";
+
   meta = {
     description = "Japanese font, non-free replacement for MS Gothic and MS Mincho";
     longDescription = ''
diff --git a/pkgs/data/fonts/kochi-substitute/default.nix b/pkgs/data/fonts/kochi-substitute/default.nix
index 6337387b376..f49d20e3ba7 100644
--- a/pkgs/data/fonts/kochi-substitute/default.nix
+++ b/pkgs/data/fonts/kochi-substitute/default.nix
@@ -28,6 +28,10 @@ stdenv.mkDerivation {
     cp ./share/fonts/truetype/kochi/kochi-mincho-subst.ttf $out/share/fonts/truetype/
   '';
 
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "10hcrf51npc1w2jsz5aiw07dgw96vs4wmsz4ai9zyaswipvf8ddy";
+
   meta = {
     description = "Japanese font, a free replacement for MS Gothic and MS Mincho";
     longDescription = ''
diff --git a/pkgs/data/fonts/lato/default.nix b/pkgs/data/fonts/lato/default.nix
index 8d1111090aa..91d85ce9a0d 100644
--- a/pkgs/data/fonts/lato/default.nix
+++ b/pkgs/data/fonts/lato/default.nix
@@ -1,22 +1,17 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation {
+fetchzip {
   name = "lato-2.0";
 
-  src = fetchurl {
-    url = http://www.latofonts.com/download/Lato2OFL.zip;
-    sha256 = "1f5540g0ja1nx3ddd3ywn77xc81ssrxpq8n3gyb9sabyq2b4xda2";
-  };
-
-  sourceRoot = "Lato2OFL";
+  url = http://www.latofonts.com/download/Lato2OFL.zip;
 
-  buildInputs = [ unzip ];
-
-  installPhase = ''
-    mkdir -p $out/share/fonts/lato
-    cp *.ttf $out/share/fonts/lato
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/lato
   '';
 
+  sha256 = "1amwn6vcaggxrd2s4zw21s2pr47zmzdf2xfy4x9lxa2cd9bkhvg5";
+
   meta = with stdenv.lib; {
     homepage = http://www.latofonts.com/;
 
diff --git a/pkgs/data/fonts/league-of-moveable-type/default.nix b/pkgs/data/fonts/league-of-moveable-type/default.nix
index 8f6d5ec8ad6..82ceebae327 100644
--- a/pkgs/data/fonts/league-of-moveable-type/default.nix
+++ b/pkgs/data/fonts/league-of-moveable-type/default.nix
@@ -27,6 +27,10 @@ stdenv.mkDerivation rec {
     cp */share/fonts/opentype/*.otf $out/share/fonts/opentype
   '';
 
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1gy959qhhdwm1phbrkab9isi0dmxcy0yizzncb0k49w88mc13vd0";
+
   meta = {
     description = "Font Collection by The League of Moveable Type";
 
diff --git a/pkgs/data/fonts/libre-baskerville/default.nix b/pkgs/data/fonts/libre-baskerville/default.nix
index 64779b5d388..18f236068a2 100644
--- a/pkgs/data/fonts/libre-baskerville/default.nix
+++ b/pkgs/data/fonts/libre-baskerville/default.nix
@@ -1,22 +1,18 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
+fetchzip rec {
   name = "libre-baskerville-1.000";
 
-  src = fetchFromGitHub {
-    owner = "impallari";
-    repo = "Libre-Baskerville";
-    rev = "2fba7c8e0a8f53f86efd3d81bc4c63674b0c613f";
-    sha256 = "0i9ra6ip81zzjxl71p8zwa6ymlmkf4yi5ny22vlwx9a53kbf4ifl";
-  };
+  url = https://github.com/impallari/Libre-Baskerville/archive/2fba7c8e0a8f53f86efd3d81bc4c63674b0c613f.zip;
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/truetype
-    mkdir -p $out/share/doc/${name}
-    cp -v *.ttf $out/share/fonts/truetype/
-    cp -v README.md FONTLOG.txt $out/share/doc/${name}
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip    -j $downloadedFile \*.ttf                    -d $out/share/fonts/truetype
+    unzip -n -j $downloadedFile \*README.md \*FONTLOG.txt -d "$out/share/doc/${name}"
   '';
 
+  sha256 = "0arlq89b3vmpw3n4wbllsdvqblhz6p09dm19z1cndicmcgk26w2a";
+
   meta = with stdenv.lib; {
     description = "A webfont family optimized for body text";
     longDescription = ''
diff --git a/pkgs/data/fonts/libre-bodoni/default.nix b/pkgs/data/fonts/libre-bodoni/default.nix
index 691d5556e8f..96f366973f0 100644
--- a/pkgs/data/fonts/libre-bodoni/default.nix
+++ b/pkgs/data/fonts/libre-bodoni/default.nix
@@ -1,22 +1,18 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
+fetchzip rec {
   name = "libre-bodoni-2.000";
 
-  src = fetchFromGitHub {
-    owner = "impallari";
-    repo = "Libre-Bodoni";
-    rev = "995a40e8d6b95411d660cbc5bb3f726ffd080c7d";
-    sha256 = "1ncfkvmcxh2lphfra43h8482qglpd965v96agvz092697xwrbyn9";
-  };
+  url = https://github.com/impallari/Libre-Bodoni/archive/995a40e8d6b95411d660cbc5bb3f726ffd080c7d.zip;
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/opentype
-    mkdir -p $out/share/doc/${name}
-    cp -v "fonts/v2000 - initial glyphs migration/OTF/"*.otf $out/share/fonts/opentype/
-    cp -v README.md FONTLOG.txt $out/share/doc/${name}
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*/v2000\ -\ initial\ glyphs\ migration/OTF/\*.otf  -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*README.md \*FONTLOG.txt                           -d "$out/share/doc/${name}"
   '';
 
+  sha256 = "0pnb1xydpvcl9mkz095f566kz7yj061wbf40rwrbwmk706f6bsiw";
+
   meta = with stdenv.lib; {
     description = "Bodoni fonts adapted for today's web requirements";
     longDescription = ''
diff --git a/pkgs/data/fonts/libre-caslon/default.nix b/pkgs/data/fonts/libre-caslon/default.nix
index 5037cb81f39..ec932ab978c 100644
--- a/pkgs/data/fonts/libre-caslon/default.nix
+++ b/pkgs/data/fonts/libre-caslon/default.nix
@@ -32,6 +32,10 @@ stdenv.mkDerivation rec {
     cp -v libre-caslon-text-${version}-src/README.md libre-caslon-text-${version}-src/FONTLOG.txt $out/share/doc/${name}
   '';
 
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "05aajwny99yqzn1nnq1blx6h7rl54x056y12hyawfbigkzxhscns";
+
   meta = with stdenv.lib; {
     description = "Caslon fonts based on hand-lettered American Caslons of 1960s";
     homepage = http://www.impallari.com/librecaslon;
diff --git a/pkgs/data/fonts/libre-franklin/default.nix b/pkgs/data/fonts/libre-franklin/default.nix
index 473102d77ef..9ca37e35640 100644
--- a/pkgs/data/fonts/libre-franklin/default.nix
+++ b/pkgs/data/fonts/libre-franklin/default.nix
@@ -1,22 +1,18 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
+fetchzip rec {
   name = "libre-franklin-1.014";
 
-  src = fetchFromGitHub {
-    owner = "impallari";
-    repo = "Libre-Franklin";
-    rev = "006293f34c47bd752fdcf91807510bc3f91a0bd3";
-    sha256 = "0df41cqhw5dz3g641n4nd2jlqjf5m4fkv067afk3759m4hg4l78r";
-  };
+  url = https://github.com/impallari/Libre-Franklin/archive/006293f34c47bd752fdcf91807510bc3f91a0bd3.zip;
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/opentype
-    mkdir -p $out/share/doc/${name}
-    cp -v "fonts/OTF/"*.otf $out/share/fonts/opentype/
-    cp -v README.md FONTLOG.txt $out/share/doc/${name}
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.otf                    -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*README.md \*FONTLOG.txt -d "$out/share/doc/${name}"
   '';
 
+  sha256 = "1rkjp8x62cn4alw3lp7m45q34bih81j2hg15kg5c1nciyqq1qz0z";
+
   meta = with stdenv.lib; {
     description = "A reinterpretation and expansion based on the 1912 Morris Fuller Benton’s classic.";
     homepage = https://github.com/impallari/Libre-Franklin;
diff --git a/pkgs/data/fonts/lmodern/default.nix b/pkgs/data/fonts/lmodern/default.nix
index e694ba4db75..6876000d6e4 100644
--- a/pkgs/data/fonts/lmodern/default.nix
+++ b/pkgs/data/fonts/lmodern/default.nix
@@ -1,23 +1,24 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation {
+fetchzip {
   name = "lmodern-2.004.4";
-  
-  src = fetchurl {
-    url = mirror://debian/pool/main/l/lmodern/lmodern_2.004.4.orig.tar.gz;
-    sha256 = "1g1fmi9asw6x9arm5sy3r4jwz7zrrbcw6q4waj3iqs0iq525i1rw";
-  };
 
-  installPhase = ''
+  url = mirror://debian/pool/main/l/lmodern/lmodern_2.004.4.orig.tar.gz;
+
+  postFetch = ''
+    tar xzvf $downloadedFile
+
     mkdir -p $out/texmf-dist/
     mkdir -p $out/share/fonts/
 
-    cp -r ./* $out/texmf-dist/
-    cp -r fonts/{opentype,type1} $out/share/fonts/
+    cp -r lmodern-2.004.4/* $out/texmf-dist/
+    cp -r lmodern-2.004.4/fonts/{opentype,type1} $out/share/fonts/
 
-    ln -s $out/texmf* $out/share/
+    ln -s -r $out/texmf* $out/share/
   '';
 
+  sha256 = "13n7ls8ss4sffd6c1iw2wb5hbq642i0fmivm76mbqwf652l002i5";
+
   meta = {
     description = "Latin Modern font";
     platforms = stdenv.lib.platforms.unix;
diff --git a/pkgs/data/fonts/lmodern/lmmath.nix b/pkgs/data/fonts/lmodern/lmmath.nix
index 6e136c39eb0..c6e0788eed3 100644
--- a/pkgs/data/fonts/lmodern/lmmath.nix
+++ b/pkgs/data/fonts/lmodern/lmmath.nix
@@ -1,28 +1,24 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation {
+fetchzip {
   name = "lmmath-0.903";
-  
-  src = fetchurl {
-    url = "http://www.gust.org.pl/projects/e-foundry/lm-math/download/lmmath0903otf";
-    sha256 = "ee96cb14f5c746d6c6b9ecfbdf97dafc2f535be3dd277e15e8ea6fb594995d64";
-    name = "lmmath-0.903.zip";
-  };
 
-  buildInputs = [unzip];
+  url = "http://www.gust.org.pl/projects/e-foundry/lm-math/download/lmmath0903otf";
 
-  sourceRoot = ".";
+  postFetch = ''
+    unzip $downloadedFile
 
-  installPhase = ''
     mkdir -p $out/texmf-dist/fonts/opentype
     mkdir -p $out/share/fonts/opentype
 
     cp *.{OTF,otf} $out/texmf-dist/fonts/opentype/lmmath-regular.otf
     cp *.{OTF,otf} $out/share/fonts/opentype/lmmath-regular.otf
 
-    ln -s $out/texmf* $out/share/
+    ln -s -r $out/texmf* $out/share/
   '';
 
+  sha256 = "19821d4vbd6z20jzsw24zh0hhwayglhrfw8larg2w6alhdqi7rln";
+
   meta = {
     description = "Latin Modern font";
     platforms = stdenv.lib.platforms.unix;
diff --git a/pkgs/data/fonts/lobster-two/default.nix b/pkgs/data/fonts/lobster-two/default.nix
index 84752fe6a1d..850fd1a1f94 100644
--- a/pkgs/data/fonts/lobster-two/default.nix
+++ b/pkgs/data/fonts/lobster-two/default.nix
@@ -65,6 +65,10 @@ in
       cp -v ${regular.file} $out/share/fonts/opentype/${regular.name}
     '';
 
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+    outputHash = "0if9l8pzwgfnbdjg5yblcy08dwn9yj3wzz29l0fycia46xlzd4ym";
+
     meta = with stdenv.lib; {
       homepage = http://www.impallari.com/lobstertwo;
       description = "Script font with many ligatures";
diff --git a/pkgs/data/fonts/lohit-fonts/default.nix b/pkgs/data/fonts/lohit-fonts/default.nix
index 12c4f67666d..c847b4cdd27 100644
--- a/pkgs/data/fonts/lohit-fonts/default.nix
+++ b/pkgs/data/fonts/lohit-fonts/default.nix
@@ -1,58 +1,59 @@
-{ stdenv, fetchurl, lib }:
+{ stdenv, fetchzip, lib }:
 let
   fonts = {
-    assamese = { label = "Assamese"; version = "2.91.3" ; sha256 = "0kbdvi8f7vbvsain9zmnj9h43a6bmdkhk5c2wzg15100w7wf6lpq"; };
-    bengali = { label = "Bengali"; version = "2.91.3" ; sha256 = "1wdd2dkqaflf6nm5yc7llkfxin6g0zb2sbcd5g2xbrl0gwwcmkij"; };
-    devanagari = { label = "Devanagari script"; version = "2.95.2" ; sha256 = "1ss0j0pcfrg1vsypnm0042y4bn7b84mi6lbfsvr6rs89lb5swvn2"; };
-    gujarati = { label = "Gujarati"; version = "2.92.2-and-4.2.2" ; sha256 = "1i27yjhn3x31a89x1hjs6rskdwp2kh0hibq1xiz3rgqil2m0jar6"; };
-    gurmukhi = { label = "Gurmukhi script"; version = "2.91.0" ; sha256 = "0z8a30mnyhlfvqhnggfk0369hqg779ihqyhcmpxj0sf9dmb1i0mj"; }; # renamed from Punjabi
-    kannada = { label = "Kannada"; version = "2.5.3" ; sha256 = "1x9fb5z1bwmfi0y1fdnzizzjxhbxp272wxznx36063kjf25bb9pi"; };
-    malayalam = { label = "Malayalam"; version = "2.92.0" ; sha256 = "1syv1irxh5xl0z0d5kwankhlmi7s2dg4wpp58nq0mkd3rhm5q8qw"; };
-    marathi = { label = "Marathi"; version = "2.94.0" ; sha256 = "0y9sca6gbfbafv52v0n2r1xfs8rg6zmqs4vp9sjfc1c6yqhzagl4"; };
-    nepali = { label = "Nepali"; version = "2.94.0" ; sha256 = "0c56141rpxc30581i3gisg8kfaadxhqjhgshni6g7a7rn6l4dx17"; };
-    odia = { label = "Odia"; version = "2.91.0" ; sha256 = "15iz9kdf9k5m8wcn2iqlqjm758ac3hvnk93va6kac06frxnhw9lp"; }; # renamed from Oriya
-    tamil-classical = { label = "Classical Tamil"; version = "2.5.3" ; sha256 = "0ci4gk8qhhysjza69nncgmqmal8s4n8829icamvlzbmjdd4s2pij"; };
-    tamil = { label = "Tamil"; version = "2.91.1" ; sha256 = "1ir6kjl48apwk41xbpj0x458k108s7i61yzpkfhqcy1fkcr7cngj"; };
-    telugu = { label = "Telugu"; version = "2.5.4" ; sha256 = "06gdba7690y20l7nsi8fnnimim5hlq7hik0mpk2fzw4w39hjybk9"; };
+    assamese        = { label = "Assamese";          version = "2.91.5"; sha256 = "06cw416kgw0m6883n5ixmpniinsd747rdmacf06z83w1hqwj2js6"; };
+    bengali         = { label = "Bengali";           version = "2.91.5"; sha256 = "1j7gfmkzzyk9mivy09a9yfqxpidw52hw48dyh4qkci304mspcbvr"; };
+    devanagari      = { label = "Devanagari script"; version = "2.95.4"; sha256 = "1c17xirzx5rf7xpmkrm94jf9xrzckyagwnqn3pyag28lyj8x67m5"; };
+    gujarati        = { label = "Gujarati";          version = "2.92.4"; sha256 = "0xdgmkikz532zxj239wr73l24qnzxhra88f52146x7fsb7gpvfb1"; };
+    gurmukhi        = { label = "Gurmukhi script";   version = "2.91.2"; sha256 = "1xk1qvc0xwcmjcavj9zmy4bbphffdlv7sldmqlk30ch5fy5r0ypb"; }; # renamed from Punjabi
+    kannada         = { label = "Kannada";           version = "2.5.4" ; sha256 = "0sax56xg98p2nf0nsvba42hhz946cs7q0gidiz9zfpb6pbgwxdgg"; };
+    malayalam       = { label = "Malayalam";         version = "2.92.2"; sha256 = "18sca59fj9zvqhagbix35i4ld2n4mwv57q04pijl5gvpyfb1abs8"; };
+    marathi         = { label = "Marathi";           version = "2.94.2"; sha256 = "0cjjxxlhqmdmhr35s4ak0ma89456daik5rqrn6pdzj39098lmci7"; };
+    nepali          = { label = "Nepali";            version = "2.94.2"; sha256 = "1p7lif136xakfqkbv6p1lb56rs391b25vn4bxrjdfvsk0r0h0ry3"; };
+    odia            = { label = "Odia";              version = "2.91.2"; sha256 = "0z5rc4f9vfrfm8h2flzf5yx44x50jqdmmzifkmjwczib3hpg2ila"; }; # renamed from Oriya
+    tamil-classical = { label = "Classical Tamil";   version = "2.5.4" ; sha256 = "0svmj3dhk0195mhdwjhi3qgwa83223irb32fp12782sj9njdvyi2"; };
+    tamil           = { label = "Tamil";             version = "2.91.3"; sha256 = "0qyw9p8alyvjryyw8a25q3gfyrhby49mjb0ydgggf5ckd07kblcm"; };
+    telugu          = { label = "Telugu";            version = "2.5.5" ; sha256 = "07p41686ypmclj9d3njp01lvrgssqxa4s5hsbrqfjrnwd3rjspzr"; };
   };
   gplfonts = {
     # GPL fonts removed from later releases
-    kashmiri = { label = "Kashmiri"; version = "2.4.3" ; sha256 = "0ax8xzv4pz17jnsjdklawncsm2qn7176wbxykswygpzdd5lr0gg9"; };
-    konkani = { label = "Konkani"; version = "2.4.3" ; sha256 = "03zc27z26a60aaggrqx4d6l0jgggciq8p83v6vgg0k6l3apvcp45"; };
-    maithili = { label = "Maithili"; version = "2.4.3" ; sha256 = "0aqwnhq1namvvb77f2vssahixqf4xay7ja4q8qc312wxkajdqh4a"; };
-    sindhi = { label = "Sindhi"; version = "2.4.3" ; sha256 = "00imfbn01yc2g5zdyydks9w3ndkawr66l9qk2idlvw3yz3sw2kf1"; };
+    kashmiri        = { label = "Kashmiri";          version = "2.4.3" ; sha256 = "0c6whklad9bscymrlcbxj4fdvh4cdf40vb61ykbp6mapg6dqxwhn"; };
+    konkani         = { label = "Konkani";           version = "2.4.3" ; sha256 = "0pcb5089dabac1k6ymqnbnlyk7svy2wnb5glvhsd8glycjhrcp70"; };
+    maithili        = { label = "Maithili";          version = "2.4.3" ; sha256 = "1yfwv7pcj7k4jryz0s6mb56bq7fs15g56y7pi5yd89q1f8idk6bc"; };
+    sindhi          = { label = "Sindhi";            version = "2.4.3" ; sha256 = "1iywzyy185bvfsfi5pp11c8bzrp40kni2cpwcmxqwha7c9v8brlc"; };
   };
-  mkpkg = license: name: {label, version, sha256}:
-    stdenv.mkDerivation {
-      name = "lohit-${name}-${version}";
-
-      src = fetchurl {
-        url = "https://fedorahosted.org/releases/l/o/lohit/lohit-${name}-ttf-${version}.tar.gz";
-        inherit sha256;
-      };
-
-      installPhase = ''
-        mkdir -p $out/share/fonts/truetype
-        cp -v *.ttf $out/share/fonts/truetype/
-
-        mkdir -p $out/etc/fonts/conf.d
-        cp -v *.conf $out/etc/fonts/conf.d
-
-        mkdir -p "$out/share/doc/lohit-${name}"
-        cp -v ChangeLog* COPYRIGHT* "$out/share/doc/lohit-${name}/"
-      '';
-
-      meta = {
-        inherit license;
-        description = "Free and open source fonts for Indian languages (" + label + ")";
-        homepage = https://fedorahosted.org/lohit/;
-        maintainers = [ lib.maintainers.mathnerd314 lib.maintainers.ttuegel ];
-        # Set a non-zero priority to allow easy overriding of the
-        # fontconfig configuration files.
-        priority = 5;
-        platforms = stdenv.lib.platforms.unix;
-      };
+
+  mkpkg = license: name: {label, version, sha256}: fetchzip {
+    name = "lohit-${name}-${version}";
+
+    url = "https://releases.pagure.org/lohit/lohit-${name}-ttf-${version}.tar.gz";
+
+    postFetch = ''
+      tar -xzf $downloadedFile --strip-components=1
+
+      mkdir -p $out/share/fonts/truetype
+      cp -v *.ttf $out/share/fonts/truetype/
+
+      mkdir -p $out/etc/fonts/conf.d
+      cp -v *.conf $out/etc/fonts/conf.d
+
+      mkdir -p "$out/share/doc/lohit-${name}"
+      cp -v ChangeLog* COPYRIGHT* "$out/share/doc/lohit-${name}/"
+    '';
+
+    inherit sha256;
+
+    meta = {
+      inherit license;
+      description = "Free and open source fonts for Indian languages (" + label + ")";
+      homepage = https://pagure.io/lohit;
+      maintainers = [ lib.maintainers.mathnerd314 lib.maintainers.ttuegel ];
+      # Set a non-zero priority to allow easy overriding of the
+      # fontconfig configuration files.
+      priority = 5;
+      platforms = stdenv.lib.platforms.unix;
     };
+  };
 
 in
 # Technically, GPLv2 with usage exceptions
diff --git a/pkgs/data/fonts/meslo-lg/default.nix b/pkgs/data/fonts/meslo-lg/default.nix
index fe123f6622d..8a11a98ebd2 100644
--- a/pkgs/data/fonts/meslo-lg/default.nix
+++ b/pkgs/data/fonts/meslo-lg/default.nix
@@ -32,6 +32,10 @@ stdenv.mkDerivation rec {
     cp *.ttf $out/share/fonts/truetype
   '';
 
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1cppf8sk6r5wjnnas9n6iyag6pj9jvaic66lvwpqg3742s5akx6x";
+
   meta = {
     description = "A customized version of Apple’s Menlo-Regular font";
     homepage = https://github.com/andreberg/Meslo-Font/;
diff --git a/pkgs/data/fonts/mononoki/default.nix b/pkgs/data/fonts/mononoki/default.nix
index d93c0fb96d4..cc481a136ba 100644
--- a/pkgs/data/fonts/mononoki/default.nix
+++ b/pkgs/data/fonts/mononoki/default.nix
@@ -1,22 +1,19 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "mononoki-${version}";
+let
   version = "1.2";
+in fetchzip {
+  name = "mononoki-${version}";
 
-  src = fetchurl {
-    url = "https://github.com/madmalik/mononoki/releases/download/${version}/mononoki.zip";
-    sha256 = "0n66bnn2i776fbky14qjijwsbrja9yzc1xfsmvz99znvcdvflafg";
-  };
-
-  buildInputs = [ unzip ];
-  phases = [ "unpackPhase" ];
+  url = "https://github.com/madmalik/mononoki/releases/download/${version}/mononoki.zip";
 
-  unpackPhase = ''
+  postFetch = ''
     mkdir -p $out/share/fonts/mononoki
-    unzip $src -d $out/share/fonts/mononoki
+    unzip -j $downloadedFile -d $out/share/fonts/mononoki
   '';
 
+  sha256 = "19y4xg7ilm21h9yynyrwcafdqn05zknpmmjrb37qim6p0cy2glff";
+
   meta = with stdenv.lib; {
     homepage = https://github.com/madmalik/mononoki;
     description = "A font for programming and code review";
diff --git a/pkgs/data/fonts/montserrat/default.nix b/pkgs/data/fonts/montserrat/default.nix
index 70fd2060ff1..7d7be9a41a6 100644
--- a/pkgs/data/fonts/montserrat/default.nix
+++ b/pkgs/data/fonts/montserrat/default.nix
@@ -2,22 +2,23 @@
 #
 # https://aur.archlinux.org/packages/ttf-montserrat/
 
-{ stdenv, fetchurl }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "montserrat-${version}";
+let
   version = "1.0";
+in fetchzip {
+  name = "montserrat-${version}";
 
-  src = fetchurl {
-    url = "http://marvid.fr/~eeva/mirror/Montserrat.tar.gz";
-    sha256 = "12yn651kxi5fcbpdxhapg5fpri291mgcfc1kx7ymg53nrl11nj3x";
-  };
+  url = "http://marvid.fr/~eeva/mirror/Montserrat.tar.gz";
 
-  installPhase = ''
+  postFetch = ''
+    tar -xzf $downloadedFile --strip-components=1
     mkdir -p $out/share/fonts/montserrat
     cp *.ttf $out/share/fonts/montserrat
   '';
 
+  sha256 = "11sdgvhaqg59mq71aqwqp2mb428984hjxy7hd1vasia9kgk8259w";
+
   meta = with stdenv.lib; {
     description = "A geometric sans serif font with extended latin support (Regular, Alternates, Subrayada)";
     homepage    = "http://www.fontspace.com/julieta-ulanovsky/montserrat";
diff --git a/pkgs/data/fonts/mph-2b-damase/default.nix b/pkgs/data/fonts/mph-2b-damase/default.nix
index 49d857ec575..5729561c580 100644
--- a/pkgs/data/fonts/mph-2b-damase/default.nix
+++ b/pkgs/data/fonts/mph-2b-damase/default.nix
@@ -1,23 +1,16 @@
-{stdenv, fetchurl, unzip}:
+{stdenv, fetchzip}:
 
-stdenv.mkDerivation {
+fetchzip {
   name = "MPH-2B-Damase";
 
-  src = fetchurl {
-    url = http://www.wazu.jp/downloads/damase_v.2.zip;
-    sha256 = "0y7rakbysjjrzcc5y100hkn64j7js434x20pyi6rllnw2w2n1y1h";
-  };
-
-  buildInputs = [unzip];
+  url = http://www.wazu.jp/downloads/damase_v.2.zip;
 
-  unpackPhase = ''
-    unzip $src;
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
   '';
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/truetype
-    cp *.ttf $out/share/fonts/truetype
-  '';
+  sha256 = "0yzf12z6fpbgycqwiz88f39iawdhjabadfa14wxar3nhl9n434ql";
 
   meta = {
     platforms = stdenv.lib.platforms.unix;
diff --git a/pkgs/data/fonts/mplus-outline-fonts/default.nix b/pkgs/data/fonts/mplus-outline-fonts/default.nix
index 839d61206c2..b70166b7ec1 100644
--- a/pkgs/data/fonts/mplus-outline-fonts/default.nix
+++ b/pkgs/data/fonts/mplus-outline-fonts/default.nix
@@ -1,21 +1,20 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "mplus-${version}";
+let
   version = "062";
+in fetchzip rec {
+  name = "mplus-${version}";
 
-  src = fetchurl {
-    url = "mirror://sourceforgejp/mplus-fonts/62344/mplus-TESTFLIGHT-${version}.tar.xz";
-    sha256 = "1f44vmnma5njhfiz351gwblxmdh9njv486864zrxqaa1h5pvdhha";
-  };
-
-  phases = [ "unpackPhase" "installPhase" ];
+  url = "mirror://sourceforgejp/mplus-fonts/62344/mplus-TESTFLIGHT-${version}.tar.xz";
 
-  installPhase = ''
+  postFetch = ''
+    tar -xJf $downloadedFile --strip-components=1
     mkdir -p $out/share/fonts/truetype
     cp *.ttf $out/share/fonts/truetype
   '';
 
+  sha256 = "0zm1snq5r584rz90yv5lndsqgchdaxq2185vrk7849ch4k5vd23z";
+
   meta = with stdenv.lib; {
     description = "M+ Outline Fonts";
     homepage = http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html;
diff --git a/pkgs/data/fonts/nafees/default.nix b/pkgs/data/fonts/nafees/default.nix
index d75dcda6421..054c2ca91f6 100644
--- a/pkgs/data/fonts/nafees/default.nix
+++ b/pkgs/data/fonts/nafees/default.nix
@@ -38,6 +38,10 @@ stdenv.mkDerivation rec {
     # cp $riqa/*.ttf $out/share/fonts/truetype
   '';
 
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1wa0j65iz20ij37dazd1rjg8x625m6q1y8g5h7ia48pbc88sr01q";
+
   meta = {
     description = "OpenType Urdu font from the Center for Research in Urdu Language Processing";
     longDescription = ''
diff --git a/pkgs/data/fonts/nerdfonts/default.nix b/pkgs/data/fonts/nerdfonts/default.nix
index 409dcce024b..4b725cbf5f8 100644
--- a/pkgs/data/fonts/nerdfonts/default.nix
+++ b/pkgs/data/fonts/nerdfonts/default.nix
@@ -20,6 +20,10 @@ stdenv.mkDerivation rec {
     ./install.sh ${withFont}
   '';
 
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "0bxna3llj6kf1rndvkw8w81blmgwy9l8kricynlf0l3mdd6li1f4";
+
   meta = with stdenv.lib; {
     description = ''
       Nerd Fonts is a project that attempts to patch as many developer targeted
diff --git a/pkgs/data/fonts/norwester/default.nix b/pkgs/data/fonts/norwester/default.nix
index 9bd38409955..35d69aa7f07 100644
--- a/pkgs/data/fonts/norwester/default.nix
+++ b/pkgs/data/fonts/norwester/default.nix
@@ -1,24 +1,20 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  pname = "norwester";
+let
   version = "1.2";
+  pname = "norwester";
+in fetchzip rec {
   name = "${pname}-${version}";
 
-  src = fetchurl {
-    url = "http://jamiewilson.io/norwester/assets/norwester.zip";
-    sha256 = "0syg8ss7mpli4cbxvh3ld7qrlbhb2dfv3wchm765iw6ndc05g92d";
-  };
-
-  phases = [ "installPhase" ];
-
-  buildInputs = [ unzip ];
+  url = "http://jamiewilson.io/norwester/assets/norwester.zip";
 
-  installPhase = ''
+  postFetch = ''
     mkdir -p $out/share/fonts/opentype
-    unzip -D -j $src ${pname}-v${version}/${pname}.otf -d $out/share/fonts/opentype/
+    unzip -D -j $downloadedFile ${pname}-v${version}/${pname}.otf -d $out/share/fonts/opentype/
   '';
 
+  sha256 = "1npsaiiz9g5z6315lnmynwcnrfl37fyxc7w1mhkw1xbzcnv74z4r";
+
   meta = with stdenv.lib; {
     homepage = http://jamiewilson.io/norwester;
     description = "A condensed geometric sans serif by Jamie Wilson";
diff --git a/pkgs/data/fonts/oldsindhi/default.nix b/pkgs/data/fonts/oldsindhi/default.nix
index 411af37932a..4e55b5098c8 100644
--- a/pkgs/data/fonts/oldsindhi/default.nix
+++ b/pkgs/data/fonts/oldsindhi/default.nix
@@ -1,25 +1,23 @@
-{ stdenv, fetchurl, p7zip }:
+{ stdenv, fetchzip, p7zip }:
 
-stdenv.mkDerivation rec {
-  name = "oldsindhi-${version}";
+let
   version = "0.1";
+in fetchzip rec {
+  name = "oldsindhi-${version}";
 
-  src = fetchurl {
-    url = "https://github.com/MihailJP/oldsindhi/releases/download/0.1/OldSindhi-0.1.7z";
-    sha256 = "1sbmxyxi81k88hkfw7gnnpgd5vy2vyj5y5428cd6nz4zlaclgq8z";
-  };
-
-  buildInputs = [ p7zip ];
+  url = "https://github.com/MihailJP/oldsindhi/releases/download/0.1/OldSindhi-0.1.7z";
 
-  unpackCmd = "7z x $curSrc";
+  postFetch = ''
+    ${p7zip}/bin/7z x $downloadedFile
 
-  installPhase = ''
     mkdir -p $out/share/fonts/truetype
     mkdir -p $out/share/doc/${name}
-    cp -v *.ttf $out/share/fonts/truetype/
-    cp -v README *.txt $out/share/doc/${name}
+    cp -v OldSindhi/*.ttf $out/share/fonts/truetype/
+    cp -v OldSindhi/README OldSindhi/*.txt $out/share/doc/${name}
   '';
 
+  sha256 = "1na3lxyz008fji5ln3fqzyr562k6kch1y824byhfs4y0rwwz3f3q";
+
   meta = with stdenv.lib; {
     homepage = https://github.com/MihailJP/oldsindhi;
     description = "Free Sindhi Khudabadi font";
diff --git a/pkgs/data/fonts/oldstandard/default.nix b/pkgs/data/fonts/oldstandard/default.nix
index 125a4b636a9..95f8f3be7d6 100644
--- a/pkgs/data/fonts/oldstandard/default.nix
+++ b/pkgs/data/fonts/oldstandard/default.nix
@@ -19,6 +19,10 @@ stdenv.mkDerivation rec {
     cp -v FONTLOG.txt $out/share/doc/${name}
   '';
 
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1qwfsyp51grr56jcnkkmnrnl3r20pmhp9zh9g88kp64m026cah6n";
+
   meta = with stdenv.lib; {
     homepage = https://github.com/akryukov/oldstand;
     description = "An attempt to revive a specific type of Modern style of serif typefaces";
diff --git a/pkgs/data/fonts/open-dyslexic/default.nix b/pkgs/data/fonts/open-dyslexic/default.nix
index 5d9bb584360..1320ad8438f 100644
--- a/pkgs/data/fonts/open-dyslexic/default.nix
+++ b/pkgs/data/fonts/open-dyslexic/default.nix
@@ -1,25 +1,20 @@
-{stdenv, fetchgit}:
+{stdenv, fetchzip}:
 
-stdenv.mkDerivation rec {
-  name = "open-dyslexic-${version}";
+let
   version = "2014-11-11";
+in fetchzip {
+  name = "open-dyslexic-${version}";
 
-  src = fetchgit {
-    url = "https://github.com/antijingoist/open-dyslexic.git";
-    rev = "f4b5ba89018b44d633608907e15f93fb3fabbabc";
-    sha256 = "04pa7c2cary6pqxsmxqrg7wi19szg7xh8panmvqvmc7jas0mzg6q";
-  };
-
-  phases = ["unpackPhase" "installPhase"];
-
-  installPhase = ''
-    mkdir -p $out/share/fonts/opentype
-    cp -v 'otf/'*.otf $out/share/fonts/opentype
+  url = https://github.com/antijingoist/open-dyslexic/archive/f4b5ba89018b44d633608907e15f93fb3fabbabc.zip;
 
-    mkdir -p $out/share/doc/open-dyslexic
-    cp -v README.md $out/share/doc/open-dyslexic
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.otf       -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*/README.md -d $out/share/doc/open-dyslexic
   '';
 
+  sha256 = "045xc7kj56q4ygnjppm8f8fwqqvf21x1piabm4nh8hwgly42a3w2";
+
   meta = with stdenv.lib; {
     homepage = http://opendyslexic.org/;
     description = "Font created to increase readability for readers with dyslexia";
diff --git a/pkgs/data/fonts/orbitron/default.nix b/pkgs/data/fonts/orbitron/default.nix
index fa34d9586c5..e0ef1ecda81 100644
--- a/pkgs/data/fonts/orbitron/default.nix
+++ b/pkgs/data/fonts/orbitron/default.nix
@@ -1,26 +1,22 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "orbitron-${version}";
+let
   version = "20110526";
+in fetchzip {
+  name = "orbitron-${version}";
 
-  src = fetchFromGitHub {
-    owner  = "theleagueof";
-    repo   = "orbitron";
-    rev    = "13e6a52";
-    sha256 = "1c6jb7ayr07j1pbnzf3jxng9x9bbqp3zydf8mqdw9ifln1b4ycyf";
-  };
-
-  phases = [ "unpackPhase" "installPhase" ];
+  url = https://github.com/theleagueof/orbitron/archive/13e6a52.zip;
 
-  installPhase = ''
+  postFetch = ''
     otfdir=$out/share/fonts/opentype/orbitron
     ttfdir=$out/share/fonts/ttf/orbitron
     mkdir -p $otfdir $ttfdir
-    cp -v Orbitron*.otf $otfdir
-    cp -v Orbitron*.ttf $ttfdir
+    unzip -j $downloadedFile \*/Orbitron\*.otf -d $otfdir
+    unzip -j $downloadedFile \*/Orbitron\*.ttf -d $ttfdir
   '';
 
+  sha256 = "1y9yzvpqs2v3ssnqk2iiglrh8amgsscnk8vmfgnqgqi9f4dhdvnv";
+
   meta = with stdenv.lib; {
     homepage = https://www.theleagueofmoveabletype.com/orbitron;
     downloadPage = "https://www.theleagueofmoveabletype.com/orbitron/download";
diff --git a/pkgs/data/fonts/overpass/default.nix b/pkgs/data/fonts/overpass/default.nix
index e24d61d5ba1..8bb4e82747a 100644
--- a/pkgs/data/fonts/overpass/default.nix
+++ b/pkgs/data/fonts/overpass/default.nix
@@ -1,27 +1,19 @@
-{ stdenv, fetchFromGitHub, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "overpass-${version}";
+let
   version = "3.0.2";
+in fetchzip rec {
+  name = "overpass-${version}";
 
-  src = fetchFromGitHub {
-    owner = "RedHatBrand";
-    repo = "Overpass";
-    rev = version;
-    sha256 = "1bgmnhdfmp4rycyadcnzw62vkvn63nn29pq9vbjf4c9picvl8ah6";
-  };
-
-  nativeBuildInputs = [ unzip ];
-
-  phases = [ "unpackPhase" "installPhase" ];
+  url = "https://github.com/RedHatBrand/Overpass/archive/${version}.zip";
 
-  installPhase = ''
-    mkdir -p $out/share/doc/${name}
-    mkdir -p $out/share/fonts/opentype
-    cp -v "desktop-fonts/"*"/"*.otf $out/share/fonts/opentype
-    cp -v LICENSE.md README.md $out/share/doc/${name}
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype ; unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    mkdir -p $out/share/doc/${name}    ; unzip -j $downloadedFile \*.md  -d $out/share/doc/${name}
   '';
 
+  sha256 = "05zv3zcfc9a707sn3hhf46b126k19d9byzvi5ixp5y2548vjvl6s";
+
   meta = with stdenv.lib; {
     homepage = http://overpassfont.org/;
     description = "Font heavily inspired by Highway Gothic";
diff --git a/pkgs/data/fonts/oxygenfonts/default.nix b/pkgs/data/fonts/oxygenfonts/default.nix
index 1054986288a..109b3c3a0b3 100644
--- a/pkgs/data/fonts/oxygenfonts/default.nix
+++ b/pkgs/data/fonts/oxygenfonts/default.nix
@@ -1,23 +1,17 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
+fetchzip rec {
   name = "oxygenfonts-20160824";
 
-  src = fetchFromGitHub {
-    owner = "vernnobile";
-    repo = "oxygenFont";
-    rev = "62db0ebe3488c936406685485071a54e3d18473b";
-    sha256 = "134kx3d0g3zdkw8kl8p6j37fzw3bl163jv2dx4dk1451f3ramcnh";
-  };
-
-  phases = [ "unpackPhase" "installPhase" ];
+  url = https://github.com/vernnobile/oxygenFont/archive/62db0ebe3488c936406685485071a54e3d18473b.zip;
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/truetype/
-    cp OxygenSans-version-0.4/*/*.ttf $out/share/fonts/truetype/
-    cp Oxygen-Monospace/*.ttf $out/share/fonts/truetype/
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile '*/Oxygen-Sans.ttf' '*/Oxygen-Sans-Bold.ttf' '*/OxygenMono-Regular.ttf' -d $out/share/fonts/truetype
   '';
 
+  sha256 = "17m86p1s7a7d90zqjsr46h5bpmas4vxsgj7kd0j5c8cb7lw92jyf";
+
   meta = with stdenv.lib; {
     description = "Desktop/gui font for integrated use with the KDE desktop";
     longDescription = ''
diff --git a/pkgs/data/fonts/paratype-pt/mono.nix b/pkgs/data/fonts/paratype-pt/mono.nix
index 1a9cf29c3e0..6124d0c79b6 100644
--- a/pkgs/data/fonts/paratype-pt/mono.nix
+++ b/pkgs/data/fonts/paratype-pt/mono.nix
@@ -1,30 +1,23 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
+fetchzip rec {
   name = "paratype-pt-mono";
 
-  src = fetchurl rec {
-    url = "http://www.paratype.ru/uni/public/PTMono.zip";
-    sha256 = "1wqaai7d6xh552vvr5svch07kjn1q89ab5jimi2z0sbd0rbi86vl";
-  };
-
-  buildInputs = [unzip];
+  url = "http://www.paratype.ru/uni/public/PTMono.zip";
 
-  phases = "unpackPhase installPhase";
-  sourceRoot = ".";
-
-  installPhase = ''
-    mkdir -p $out/share/fonts/truetype
-    mkdir -p $out/share/doc/paratype
-    cp *.ttf $out/share/fonts/truetype
-    cp *.txt $out/share/doc/paratype
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.txt -d $out/share/doc/paratype
   '';
 
+  sha256 = "07kl82ngby55khvzsvn831ddpc0q8djgz2y6gsjixkyjfdk2xjjm";
+
   meta = with stdenv.lib; {
     homepage = http://www.paratype.ru/public/; 
     description = "An open Paratype font";
 
-    license = "Open Paratype license"; 
+    license = "Open Paratype license";
     # no commercial distribution of the font on its own
     # must rename on modification
     # http://www.paratype.ru/public/pt_openlicense.asp
diff --git a/pkgs/data/fonts/paratype-pt/sans.nix b/pkgs/data/fonts/paratype-pt/sans.nix
index 89d9e9381e7..499871a4228 100644
--- a/pkgs/data/fonts/paratype-pt/sans.nix
+++ b/pkgs/data/fonts/paratype-pt/sans.nix
@@ -1,30 +1,23 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
+fetchzip rec {
   name = "paratype-pt-sans";
 
-  src = fetchurl rec {
-    url = "http://www.paratype.ru/uni/public/PTSans.zip";
-    sha256 = "1j9gkbqyhxx8pih5agr9nl8vbpsfr9vdqmhx73ji3isahqm3bhv5";
-  };
-
-  buildInputs = [unzip];
+  url = "http://www.paratype.ru/uni/public/PTSans.zip";
 
-  phases = "unpackPhase installPhase";
-  sourceRoot = ".";
-
-  installPhase = ''
-    mkdir -p $out/share/fonts/truetype
-    mkdir -p $out/share/doc/paratype
-    cp *.ttf $out/share/fonts/truetype
-    cp *.txt $out/share/doc/paratype
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.txt -d $out/share/doc/paratype
   '';
 
+  sha256 = "01fkd417gv98jf3a6zyfi9w2dkqsbddy1vacga2672yf0kh1z1r0";
+
   meta = with stdenv.lib; {
     homepage = http://www.paratype.ru/public/; 
     description = "An open Paratype font";
 
-    license = "Open Paratype license"; 
+    license = "Open Paratype license";
     # no commercial distribution of the font on its own
     # must rename on modification
     # http://www.paratype.ru/public/pt_openlicense.asp
diff --git a/pkgs/data/fonts/paratype-pt/serif.nix b/pkgs/data/fonts/paratype-pt/serif.nix
index 323e10c8b7b..409aaf526f8 100644
--- a/pkgs/data/fonts/paratype-pt/serif.nix
+++ b/pkgs/data/fonts/paratype-pt/serif.nix
@@ -1,30 +1,23 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
+fetchzip rec {
   name = "paratype-pt-serif";
 
-  src = fetchurl rec {
-    url = "http://www.paratype.ru/uni/public/PTSerif.zip";
-    sha256 = "0x3l58c1rvwmh83bmmgqwwbw9av1mvvq68sw2hdkyyihjvamyvvs";
-  };
-
-  buildInputs = [unzip];
+  url = "http://www.paratype.ru/uni/public/PTSerif.zip";
 
-  phases = "unpackPhase installPhase";
-  sourceRoot = ".";
-
-  installPhase = ''
-    mkdir -p $out/share/fonts/truetype
-    mkdir -p $out/share/doc/paratype
-    cp *.ttf $out/share/fonts/truetype
-    cp *.txt $out/share/doc/paratype
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.txt -d $out/share/doc/paratype
   '';
 
+  sha256 = "1iw5qi4ag3yp1lwmi91lb18gr768bqwl46xskaqnkhr9i9qp0v6d";
+
   meta = with stdenv.lib; {
     homepage = http://www.paratype.ru/public/; 
     description = "An open Paratype font";
 
-    license = "Open Paratype license"; 
+    license = "Open Paratype license";
     # no commercial distribution of the font on its own
     # must rename on modification
     # http://www.paratype.ru/public/pt_openlicense.asp
diff --git a/pkgs/data/fonts/pecita/default.nix b/pkgs/data/fonts/pecita/default.nix
index 7650c13961e..b57cf22569d 100644
--- a/pkgs/data/fonts/pecita/default.nix
+++ b/pkgs/data/fonts/pecita/default.nix
@@ -1,21 +1,20 @@
-{stdenv, fetchurl}:
+{stdenv, fetchzip}:
 
-stdenv.mkDerivation rec {
-  name = "pecita-${version}";
+let
   version = "5.4";
+in fetchzip rec {
+  name = "pecita-${version}";
 
-  src = fetchurl {
-    url = "http://archive.rycee.net/pecita/${name}.tar.xz";
-    sha256 = "1cqzj558ldzzsbfbvlwp5fjh2gxa03l16dki0n8z5lmrdq8hrkws";
-  };
-
-  phases = ["unpackPhase" "installPhase"];
+  url = "http://archive.rycee.net/pecita/${name}.tar.xz";
 
-  installPhase = ''
+  postFetch = ''
+    tar xJvf $downloadedFile --strip-components=1
     mkdir -p $out/share/fonts/opentype
     cp -v Pecita.otf $out/share/fonts/opentype/Pecita.otf
   '';
 
+  sha256 = "0pwm20f38lcbfkdqkpa2ydpc9kvmdg0ifc4h2dmipsnwbcb5rfwm";
+
   meta = with stdenv.lib; {
     homepage = http://pecita.eu/police-en.php;
     description = "Handwritten font with connected glyphs";
diff --git a/pkgs/data/fonts/poly/default.nix b/pkgs/data/fonts/poly/default.nix
index 7298dbb18ce..b27290707b6 100644
--- a/pkgs/data/fonts/poly/default.nix
+++ b/pkgs/data/fonts/poly/default.nix
@@ -27,6 +27,10 @@ stdenv.mkDerivation rec {
     cp ${italic} $out/share/fonts/opentype/Poly-Italic.otf
   '';
 
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "11d7ldryfxi0wzfrg1bhw23a668a44vdb8gggxryvahmp5ahmq2h";
+
   meta = {
     description = "Medium contrast serif font";
     longDescription = ''
diff --git a/pkgs/data/fonts/powerline-fonts/default.nix b/pkgs/data/fonts/powerline-fonts/default.nix
index 3140be6d035..9f42324e6d6 100644
--- a/pkgs/data/fonts/powerline-fonts/default.nix
+++ b/pkgs/data/fonts/powerline-fonts/default.nix
@@ -1,34 +1,29 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchzip}:
 
-stdenv.mkDerivation {
+fetchzip {
   name = "powerline-fonts-2017-05-25";
 
-  src = fetchFromGitHub {
-    owner = "powerline";
-    repo = "fonts";
-    rev = "fe396ef6f6b9b315f30af7d7229ff21f67a66e12";
-    sha256 = "1l72kf0zqdp52hbnphky5cl0a1p9fghldvq7ppbnnrhmcwvavprs";
-  };
-
-  dontBuild = true;
+  url = https://github.com/powerline/fonts/archive/fe396ef6f6b9b315f30af7d7229ff21f67a66e12.zip;
 
-  installPhase = ''
+  postFetch = ''
     mkdir -p $out/share/fonts/opentype
-    cp -v */*.otf $out/share/fonts/opentype
+    unzip -j $downloadedFile '*.otf' -d $out/share/fonts/opentype
 
     mkdir -p $out/share/fonts/truetype
-    cp -v */*.ttf $out/share/fonts/truetype
+    unzip -j $downloadedFile '*.ttf' -d $out/share/fonts/truetype
 
     mkdir -p $out/share/fonts/bdf
-    cp -v */BDF/*.bdf $out/share/fonts/bdf
+    unzip -j $downloadedFile '*/BDF/*.bdf' -d $out/share/fonts/bdf
 
     mkdir -p $out/share/fonts/pcf
-    cp -v */PCF/*.pcf.gz $out/share/fonts/pcf
+    unzip -j $downloadedFile '*/PCF/*.pcf.gz' -d $out/share/fonts/pcf
 
     mkdir -p $out/share/fonts/psf
-    cp -v */PSF/*.psf.gz $out/share/fonts/psf
+    unzip -j $downloadedFile '*/PSF/*.psf.gz' -d $out/share/fonts/psf
   '';
 
+  sha256 = "07yjbwri7nnnnynps86sz0dlivwqw7gfw045v63q969nab9dw388";
+
   meta = with stdenv.lib; {
     homepage = https://github.com/powerline/fonts;
     description = "Patched fonts for Powerline users";
diff --git a/pkgs/data/fonts/profont/default.nix b/pkgs/data/fonts/profont/default.nix
index 98227605ac8..0c6eede969f 100644
--- a/pkgs/data/fonts/profont/default.nix
+++ b/pkgs/data/fonts/profont/default.nix
@@ -1,26 +1,23 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
+fetchzip rec {
   name = "profont";
 
-  src = fetchurl {
-    url = "http://tobiasjung.name/downloadfile.php?file=profont-x11.zip";
-    sha256 = "19ww5iayxzxxgixa9hgb842xd970mwghxfz2vsicp8wfwjh6pawr";
-  };
+  url = "http://tobiasjung.name/downloadfile.php?file=profont-x11.zip";
+
+  postFetch = ''
+    unzip -j $downloadedFile
 
-  buildInputs = [ unzip ];
+    mkdir -p $out/share/doc/$name $out/share/fonts/misc
 
-  phases = [ "unpackPhase" "installPhase" ];
-  installPhase =
-    ''
-      mkdir -p $out/share/doc/$name $out/share/fonts/misc
+    cp LICENSE $out/share/doc/$name/LICENSE
 
-      cp LICENSE $out/share/doc/$name/LICENSE
+    for f in *.pcf; do
+      gzip -c "$f" > $out/share/fonts/misc/"$f".gz
+    done
+  '';
 
-      for f in *.pcf; do
-        gzip -c "$f" > $out/share/fonts/misc/"$f".gz
-      done
-    '';
+  sha256 = "1calqmvrfv068w61f614la8mg8szas6m5i9s0lsmwjhb4qwjyxbw";
 
   meta = with stdenv.lib; {
     homepage = http://tobiasjung.name;
diff --git a/pkgs/data/fonts/quattrocento-sans/default.nix b/pkgs/data/fonts/quattrocento-sans/default.nix
index 116fdd25a04..34c8a74a762 100644
--- a/pkgs/data/fonts/quattrocento-sans/default.nix
+++ b/pkgs/data/fonts/quattrocento-sans/default.nix
@@ -1,26 +1,20 @@
-{stdenv, fetchurl, unzip}:
+{stdenv, fetchzip}:
 
-stdenv.mkDerivation rec {
-  name = "quattrocento-sans-${version}";
+let
   version = "2.0";
+in fetchzip rec {
+  name = "quattrocento-sans-${version}";
 
-  src = fetchurl {
-    url = "http://www.impallari.com/media/releases/quattrocento-sans-v${version}.zip";
-    sha256 = "043jfdn18dgzpx3qb3s0hc541n6xv4gacsm4srd6f0pri45g4wh1";
-  };
-
-  buildInputs = [unzip];
-  phases = ["unpackPhase" "installPhase"];
-
-  sourceRoot = "quattrocento-sans-v${version}";
+  url = "http://www.impallari.com/media/releases/quattrocento-sans-v${version}.zip";
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/opentype
-    mkdir -p $out/share/doc/${name}
-    cp -v "src/"*.otf $out/share/fonts/opentype
-    cp -v FONTLOG.txt $out/share/doc/${name}
+  postFetch = ''
+    mkdir -p $out/share/{fonts,doc}
+    unzip -j $downloadedFile '*/QuattrocentoSans*.otf' -d $out/share/fonts/opentype
+    unzip -j $downloadedFile '*/FONTLOG.txt'           -d $out/share/doc/${name}
   '';
 
+  sha256 = "0g8hnn92ks4y0jbizwj7yfa097lk887wqkqpqjdmc09sd2n44343";
+
   meta = with stdenv.lib; {
     homepage = http://www.impallari.com/quattrocentosans/;
     description = "A classic, elegant and sober sans-serif typeface";
diff --git a/pkgs/data/fonts/quattrocento/default.nix b/pkgs/data/fonts/quattrocento/default.nix
index 7ef62d2300c..a78001bb4ae 100644
--- a/pkgs/data/fonts/quattrocento/default.nix
+++ b/pkgs/data/fonts/quattrocento/default.nix
@@ -1,24 +1,20 @@
-{stdenv, fetchurl, unzip}:
+{stdenv, fetchzip}:
 
-stdenv.mkDerivation rec {
-  name = "quattrocento-${version}";
+let
   version = "1.1";
+in fetchzip rec {
+  name = "quattrocento-${version}";
 
-  src = fetchurl {
-    url = "http://www.impallari.com/media/releases/quattrocento-v${version}.zip";
-    sha256 = "09wmbfwkry1r2cf5z4yy67wd4yzlnsjigg01r5r80z1phl0axn9n";
-  };
-
-  buildInputs = [unzip];
-  phases = ["unpackPhase" "installPhase"];
+  url = "http://www.impallari.com/media/releases/quattrocento-v${version}.zip";
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/opentype
-    mkdir -p $out/share/doc/${name}
-    cp -v "src/"*.otf $out/share/fonts/opentype
-    cp -v FONTLOG.txt $out/share/doc/${name}
+  postFetch = ''
+    mkdir -p $out/share/{fonts,doc}
+    unzip -j $downloadedFile \*.otf        -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*FONTLOG.txt -d $out/share/doc/${name}
   '';
 
+  sha256 = "0f8l19y61y20sszn8ni8h9kgl0zy1gyzychg22z5k93ip4h7kfd0";
+
   meta = with stdenv.lib; {
     homepage = http://www.impallari.com/quattrocento/;
     description = "A classic, elegant, sober and strong serif typeface";
diff --git a/pkgs/data/fonts/raleway/default.nix b/pkgs/data/fonts/raleway/default.nix
index e754135755a..2ba9069d48b 100644
--- a/pkgs/data/fonts/raleway/default.nix
+++ b/pkgs/data/fonts/raleway/default.nix
@@ -1,23 +1,20 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "raleway-${version}";
+let
   version = "2016-08-30";
+in fetchzip {
+  name = "raleway-${version}";
 
-  src = fetchFromGitHub {
-    owner = "impallari";
-    repo = "Raleway";
-    rev = "fa27f47b087fc093c6ae11cfdeb3999ac602929a";
-    sha256 = "1i6a14ynm29gqjr7kfk118v69vjpd3g4ylwfvhwa66xax09jkhlr";
-  };
-  dontBuild = true;
+  url = https://github.com/impallari/Raleway/archive/fa27f47b087fc093c6ae11cfdeb3999ac602929a.zip;
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/opentype
-    cp "$src/fonts/OTF v3.000 Fontlab"/*.otf $out/share/fonts/opentype
-    find -type f -maxdepth 1 -exec cp "{}" $out/ \;
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*-Original.otf  -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.txt \*.md     -d $out
   '';
 
+  sha256 = "16jr7drqg2wib2q48ajlsa7rh1jxjibl1wd4rjndi49vfl463j60";
+
   meta = {
     description = "Raleway is an elegant sans-serif typeface family";
 
@@ -35,7 +32,7 @@ stdenv.mkDerivation rec {
       It also has a sister display family, Raleway Dots.
     '';
 
-    homepage = src.meta.homepage;
+    homepage = https://github.com/impallari/Raleway;
     license = stdenv.lib.licenses.ofl;
 
     maintainers = with stdenv.lib.maintainers; [ profpatsch ];
diff --git a/pkgs/data/fonts/roboto-mono/default.nix b/pkgs/data/fonts/roboto-mono/default.nix
index e9eff414bc1..175acb22d7b 100644
--- a/pkgs/data/fonts/roboto-mono/default.nix
+++ b/pkgs/data/fonts/roboto-mono/default.nix
@@ -63,6 +63,10 @@ stdenv.mkDerivation rec {
     cp -a *.ttf $out/share/fonts/truetype/
   '';
 
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1rd3qql779dn9nl940hf988lvv4gfy5llgrlfqq0db0c22b2yfng";
+
   meta = {
     homepage = https://www.google.com/fonts/specimen/Roboto+Mono;
     description = "Google Roboto Mono fonts";
diff --git a/pkgs/data/fonts/roboto-slab/default.nix b/pkgs/data/fonts/roboto-slab/default.nix
index 5a8a3f3c120..c5ce13ad7ae 100644
--- a/pkgs/data/fonts/roboto-slab/default.nix
+++ b/pkgs/data/fonts/roboto-slab/default.nix
@@ -39,6 +39,10 @@ stdenv.mkDerivation rec {
     cp -a *.ttf $out/share/fonts/truetype/
   '';
 
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "0imhvisjzi0rvn32hn04kngca4szx0j39h4c4zs7ryb4wdca76q9";
+
   meta = {
     homepage = https://www.google.com/fonts/specimen/Roboto+Slab;
     description = "Google Roboto Slab fonts";
diff --git a/pkgs/data/fonts/sampradaya/default.nix b/pkgs/data/fonts/sampradaya/default.nix
index 57639d8e6ab..90b32f251ef 100644
--- a/pkgs/data/fonts/sampradaya/default.nix
+++ b/pkgs/data/fonts/sampradaya/default.nix
@@ -1,10 +1,13 @@
-{ lib, runCommand, fetchurl }:
+{ lib, fetchzip }:
 
-runCommand "sampradaya-2015-05-26" {
-  src = fetchurl {
-    url = "https://bitbucket.org/OorNaattaan/sampradaya/raw/afa9f7c6ab17e14bd7dd74d0acaec2f75454dfda/Sampradaya.ttf";
-    sha256 = "0110k1yh5kz3f04wp72bfz59pxjc7p6jv7m5p0rqn1kqbf7g3pck";
-  };
+fetchzip {
+  name = "sampradaya-2015-05-26";
+
+  url = "https://bitbucket.org/OorNaattaan/sampradaya/raw/afa9f7c6ab17e14bd7dd74d0acaec2f75454dfda/Sampradaya.ttf";
+
+  postFetch = "install -Dm644 $downloadedFile $out/share/fonts/truetype/Sampradaya.ttf";
+
+  sha256 = "1pqyj5r5jc7dk8yyzl7i6qq2m9zvahcjj49a66wwzdby5zyw8dqv";
 
   meta = with lib; {
     homepage = https://bitbucket.org/OorNaattaan/sampradaya/;
@@ -14,7 +17,3 @@ runCommand "sampradaya-2015-05-26" {
     platforms = platforms.all;
   };
 }
-''
-  mkdir -p $out/share/fonts/truetype
-  cp $src $out/share/fonts/truetype/Sampradaya.ttf
-''
diff --git a/pkgs/data/fonts/shrikhand/default.nix b/pkgs/data/fonts/shrikhand/default.nix
index 942a284e2c0..034c36a63ce 100644
--- a/pkgs/data/fonts/shrikhand/default.nix
+++ b/pkgs/data/fonts/shrikhand/default.nix
@@ -1,19 +1,15 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
+let
   version = "2016-03-03";
+in fetchzip {
   name = "shrikhand-${version}";
 
-  src = fetchFromGitHub {
-    owner = "jonpinhorn";
-    repo = "shrikhand";
-    rev = "c11c9b0720fba977fad7cb4f339ebacdba1d1394";
-    sha256 = "1d21bvj4w8i0zrmkdrgbn0rpzac89iazfids1x273gsrsvvi45kk";
-  };
+  url = https://github.com/jonpinhorn/shrikhand/raw/c11c9b0720fba977fad7cb4f339ebacdba1d1394/build/Shrikhand-Regular.ttf;
+
+  postFetch = "install -D -m644 $downloadedFile $out/share/fonts/truetype/Shrikhand-Regular.ttf";
 
-  installPhase = ''
-    install -D -m644 build/Shrikhand-Regular.ttf $out/share/fonts/truetype/Shrikhand-Regular.ttf
-  '';
+  sha256 = "0s54k9cs1g2yz6lwg5gakqb12vg5qkfdz3pc8mh7mib2s6q926hs";
 
   meta = with stdenv.lib; {
     homepage = https://jonpinhorn.github.io/shrikhand/;
diff --git a/pkgs/data/fonts/signwriting/default.nix b/pkgs/data/fonts/signwriting/default.nix
index 147f4edc519..883e43b4381 100644
--- a/pkgs/data/fonts/signwriting/default.nix
+++ b/pkgs/data/fonts/signwriting/default.nix
@@ -13,6 +13,10 @@ runCommand "signwriting-1.1.4" {
     sha256 = "0am5wbf7jdy9szxkbsc5f3959cxvbj7mr0hy1ziqmkz02c6xjw2m";
   };
 
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "0cn37s3lc7gbr8036l7ia2869qmxglkmgllh3r9q5j54g3sfjc7q";
+
   meta = with lib; {
     homepage = https://github.com/Slevinski/signwriting_2010_fonts;
     description = "Typeface for written sign languages";
diff --git a/pkgs/data/fonts/siji/default.nix b/pkgs/data/fonts/siji/default.nix
index 382f3fa8f0f..b695143fa59 100644
--- a/pkgs/data/fonts/siji/default.nix
+++ b/pkgs/data/fonts/siji/default.nix
@@ -1,21 +1,19 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "siji-${date}";
+let
   date = "2016-05-13";
+in fetchzip {
+  name = "siji-${date}";
 
-  src = fetchFromGitHub {
-    owner = "stark";
-    repo = "siji";
-    rev = "95369afac3e661cb6d3329ade5219992c88688c1";
-    sha256 = "1408g4nxwdd682vjqpmgv0cp0bfnzzzwls62cjs9zrds16xa9dpf";
-  };
+  url = https://github.com/stark/siji/archive/95369afac3e661cb6d3329ade5219992c88688c1.zip;
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/pcf
-    cp -v */*.pcf $out/share/fonts/pcf
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.pcf -d $out/share/fonts/pcf
   '';
 
+  sha256 = "1799hs7zd8w7qyja4mii9ggmrm786az7ldsqwx9mbi51b56ym640";
+
   meta = {
     homepage = https://github.com/stark/siji;
     description = "An iconic bitmap font based on Stlarch with additional glyphs";
diff --git a/pkgs/data/fonts/source-code-pro/default.nix b/pkgs/data/fonts/source-code-pro/default.nix
index 8679a8fd8ce..08c330809e8 100644
--- a/pkgs/data/fonts/source-code-pro/default.nix
+++ b/pkgs/data/fonts/source-code-pro/default.nix
@@ -1,24 +1,19 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "source-code-pro-${version}";
+let
   version = "2.030";
+in fetchzip {
+  name = "source-code-pro-${version}";
 
-  src = fetchFromGitHub {
-    owner = "adobe-fonts";
-    repo = "source-code-pro";
-    rev = "2.030R-ro/1.050R-it";
-    name = "2.030R-ro-1.050R-it";
-    sha256 = "0hc5kflr8xzqgdm0c3gbgb1paygznxmnivkylid69ipc7wnicx1n";
-  };
-
-  phases = "unpackPhase installPhase";
+  url = https://github.com/adobe-fonts/source-code-pro/archive/2.030R-ro/1.050R-it.zip;
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/opentype
-    find . -name "*.otf" -exec cp {} $out/share/fonts/opentype \;
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
   '';
 
+  sha256 = "0d8qwzjgnz264wlm4qim048z3236z4hbblvc6yplw13f6b65j6fv";
+
   meta = {
     description = "A set of monospaced OpenType fonts designed for coding environments";
     maintainers = with stdenv.lib.maintainers; [ relrod ];
diff --git a/pkgs/data/fonts/source-han-sans/default.nix b/pkgs/data/fonts/source-han-sans/default.nix
index 240f0ff5d29..dc0d3175851 100644
--- a/pkgs/data/fonts/source-han-sans/default.nix
+++ b/pkgs/data/fonts/source-han-sans/default.nix
@@ -1,26 +1,20 @@
-{stdenv, fetchurl, unzip}:
+{stdenv, fetchzip}:
 
 let
-  makePackage = {variant, language, region, sha256}: stdenv.mkDerivation rec {
+  makePackage = {variant, language, region, sha256}: let
     version = "1.004R";
-    name = "source-han-sans-${variant}-${version}";
     revision = "5f5311e71cb628321cc0cffb51fb38d862b726aa";
+  in fetchzip {
+    name = "source-han-sans-${variant}-${version}";
 
-    buildInputs = [ unzip ];
+    url = "https://github.com/adobe-fonts/source-han-sans/raw/${revision}/SubsetOTF/SourceHanSans${region}.zip";
 
-    src = fetchurl {
-      url = "https://github.com/adobe-fonts/source-han-sans/raw/${revision}/SubsetOTF/SourceHanSans${region}.zip";
-      inherit sha256;
-    };
-
-    setSourceRoot = ''
-      sourceRoot=$( echo SourceHanSans* )
+    postFetch = ''
+      mkdir -p $out/share/fonts
+      unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
     '';
 
-    installPhase = ''
-      mkdir -p $out/share/fonts/opentype
-      cp $( find . -name '*.otf' ) $out/share/fonts/opentype
-    '';
+    inherit sha256;
 
     meta = {
       description = "${language} subset of an open source Pan-CJK sans-serif typeface";
@@ -36,24 +30,24 @@ in
     variant = "japanese";
     language = "Japanese";
     region = "JP";
-    sha256 = "0m1zprwqnqp3za42firg53hyzir6p0q73fl8mh5j4px3zgivlvfw";
+    sha256 = "194zapswaqly8ycx3k66vznlapvpyhdigp3sabsl4hn87j9xsc5v";
   };
   korean = makePackage {
     variant = "korean";
     language = "Korean";
     region = "KR";
-    sha256 = "1bz6n2sd842vgnqky0i7a3j3i2ixhzzkkbx1m8plk04r1z41bz9q";
+    sha256 = "0xij6mciiqgpwv1agqily2jji377x084k7fj4rpv6z0r5vvhqr08";
   };
   simplified-chinese = makePackage {
     variant = "simplified-chinese";
     language = "Simplified Chinese";
     region = "CN";
-    sha256 = "0ksafcwmnpj3yxkgn8qkqkpw10ivl0nj9n2lsi9c6fw3aa71s3ha";
+    sha256 = "038av18d45qr85bgx95j2fm8j64d72nsm9xzg0lpwr9xwni2sbx0";
   };
   traditional-chinese = makePackage {
     variant = "traditional-chinese";
     language = "Traditional Chinese";
     region = "TW";
-    sha256 = "1l4zymd5n4nl9gmja707xq6bar88dxki2mwdixdfrkf544cidflj";
+    sha256 = "1mzcv5hksyxplyv5q3w5nr1xz73hdnvip5gicz35j0by4gc739lr";
   };
 }
diff --git a/pkgs/data/fonts/source-han-serif/default.nix b/pkgs/data/fonts/source-han-serif/default.nix
index 148f5a4538f..ac85d31d331 100644
--- a/pkgs/data/fonts/source-han-serif/default.nix
+++ b/pkgs/data/fonts/source-han-serif/default.nix
@@ -1,27 +1,21 @@
-{stdenv, fetchurl, unzip}:
+{stdenv, fetchzip}:
 
 let
-  makePackage = {variant, language, region, sha256}: stdenv.mkDerivation rec {
+  makePackage = {variant, language, region, sha256}: let
     version = "1.000R";
-    name = "source-han-serif-${variant}-${version}";
     revision = "f6cf97d92b22e7bd77e355a61fe549ae44b6de76";
+  in fetchzip {
+    name = "source-han-serif-${variant}-${version}";
 
-    buildInputs = [ unzip ];
-
-    src = fetchurl {
-      url = "https://github.com/adobe-fonts/source-han-serif/raw/${revision}/SubsetOTF/SourceHanSerif${region}.zip";
-      inherit sha256;
-    };
-
-    setSourceRoot = ''
-      sourceRoot=$( echo SourceHanSerif* )
-    '';
+    url = "https://github.com/adobe-fonts/source-han-serif/raw/${revision}/SubsetOTF/SourceHanSerif${region}.zip";
 
-    installPhase = ''
+    postFetch = ''
       mkdir -p $out/share/fonts/opentype
-      cp $( find . -name '*.otf' ) $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;
@@ -36,24 +30,24 @@ in
     variant = "japanese";
     language = "Japanese";
     region = "JP";
-    sha256 = "0488zxr6jpwinzayrznc4ciy8mqcq9afx80xnp37pl9gcxsv0jp7";
+    sha256 = "0cklcy6y3r7pg8z43fzd8zl5g46bkqa1iy0li49rm0fgdaw7kin2";
   };
   korean = makePackage {
     variant = "korean";
     language = "Korean";
     region = "KR";
-    sha256 = "1kwsqrb3s52nminq65n3la540dgvahnhvgwv5h168nrmz881ni9r";
+    sha256 = "0lxrr978djsych8fmbl57n1c9c7ihl61w0b9q4plw27vd6p41fza";
   };
   simplified-chinese = makePackage {
     variant = "simplified-chinese";
     language = "Simplified Chinese";
     region = "CN";
-    sha256 = "0y6js0hjgf1i8mf7kzklcl02qg0bi7j8n7j1l4awmkij1ix2yc43";
+    sha256 = "0k3x4kncjnbipf4i3lkk6b33zpf1ckp5648z51v48q47l3zqpm6p";
   };
   traditional-chinese = makePackage {
     variant = "traditional-chinese";
     language = "Traditional Chinese";
     region = "TW";
-    sha256 = "0q52dn0vh3pqpr9gn4r4qk99lkvhf2gl12y99n9423brrqyfbi6h";
+    sha256 = "00bi66nlkrargmmf4av24qfd716py7a9smcvr4xnll7fffldxv06";
   };
 }
diff --git a/pkgs/data/fonts/source-sans-pro/default.nix b/pkgs/data/fonts/source-sans-pro/default.nix
index 83b6a3f2d57..4ae9ceac01d 100644
--- a/pkgs/data/fonts/source-sans-pro/default.nix
+++ b/pkgs/data/fonts/source-sans-pro/default.nix
@@ -1,19 +1,17 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation {
+fetchzip {
   name = "source-sans-pro-2.010";
-  src = fetchurl {
-    url = "https://github.com/adobe-fonts/source-sans-pro/archive/2.010R-ro/1.065R-it.tar.gz";
-    sha256 = "1s3rgia6x9fxc2pvlwm203grqkb49px6q0xnh8kbqxqsgna615p2";
-  };
 
-  phases = "unpackPhase installPhase";
+  url = "https://github.com/adobe-fonts/source-sans-pro/archive/2.010R-ro/1.065R-it.zip";
 
-  installPhase = ''
+  postFetch = ''
     mkdir -p $out/share/fonts/opentype
-    find . -name "*.otf" -exec cp {} $out/share/fonts/opentype \;
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
   '';
 
+  sha256 = "17rgkh54arybmcdg750ynw32x2sps7p9vrvq9kpih8vdghwrh9k2";
+
   meta = with stdenv.lib; {
     homepage = http://sourceforge.net/adobe/sourcesans;
     description = "A set of OpenType fonts designed by Adobe for UIs";
diff --git a/pkgs/data/fonts/source-serif-pro/default.nix b/pkgs/data/fonts/source-serif-pro/default.nix
index 0ccb0299a36..d627d813daa 100644
--- a/pkgs/data/fonts/source-serif-pro/default.nix
+++ b/pkgs/data/fonts/source-serif-pro/default.nix
@@ -1,21 +1,19 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "source-serif-pro-${version}";
+let
   version = "1.017";
+in fetchzip {
+  name = "source-serif-pro-${version}";
 
-  src = fetchurl rec {
-    url = "https://github.com/adobe-fonts/source-serif-pro/archive/${version}R.tar.gz";
-    sha256 = "04h24iywjl4fd08x22ypdb3sm979wjfq4wk95r3rk8w376spakrg";
-  };
-
-  phases = "unpackPhase installPhase";
+  url = "https://github.com/adobe-fonts/source-serif-pro/archive/${version}R.zip";
 
-  installPhase = ''
+  postFetch = ''
     mkdir -p $out/share/fonts/opentype
-    find . -name "*.otf" -exec cp {} $out/share/fonts/opentype \;
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
   '';
 
+  sha256 = "04447fbj7lwr2qmmvy7d7624qdh4in7hp627nsc8vbpxmb7bbmn1";
+
   meta = with stdenv.lib; {
     homepage = http://sourceforge.net/adobe/sourceserifpro;
     description = "A set of OpenType fonts to complement Source Sans Pro";
diff --git a/pkgs/data/fonts/stix-otf/default.nix b/pkgs/data/fonts/stix-otf/default.nix
index f32d865c95c..1ae85da3f7f 100644
--- a/pkgs/data/fonts/stix-otf/default.nix
+++ b/pkgs/data/fonts/stix-otf/default.nix
@@ -1,25 +1,19 @@
-{stdenv, fetchurl, unzip}:
+{stdenv, fetchzip}:
 
-stdenv.mkDerivation rec {
-  name = "stix-otf-${version}";
+let
   version = "1.1.1";
+in fetchzip rec {
+  name = "stix-otf-${version}";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/stixfonts/STIXv${version}-word.zip";
-    sha256 = "1q35wbqn3nh78pdban9z37lh090c6p49q3d00zzxm0axxz66xy4q";
-  };
-
-  buildInputs = [unzip];
-
-  phases = ["unpackPhase" "installPhase"];
-
-  sourceRoot = "Fonts/STIX-Word";
+  url = "mirror://sourceforge/stixfonts/STIXv${version}-word.zip";
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/opentype
-    cp *.otf $out/share/fonts/opentype
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
   '';
 
+  sha256 = "04d4qxq3i9fyapsmxk6d9v1xirjam8c74fyxs6n24d3gf2945zmw";
+
   meta = with stdenv.lib; {
     homepage = http://www.stixfonts.org/;
     description = "Fonts for Scientific and Technical Information eXchange";
diff --git a/pkgs/data/fonts/stix-two/default.nix b/pkgs/data/fonts/stix-two/default.nix
index d4ec083a070..f535c0d7e7b 100644
--- a/pkgs/data/fonts/stix-two/default.nix
+++ b/pkgs/data/fonts/stix-two/default.nix
@@ -1,23 +1,19 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "stix-two-${version}";
+let
   version = "2.0.0";
+in fetchzip {
+  name = "stix-two-${version}";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/stixfonts/Current%20Release/STIXv${version}.zip";
-    sha256 = "0f6rcg0p2dhnks523nywgkjk56bjajz3gnwsrap932674xxjkb3g";
-  };
-
-  buildInputs = [ unzip ];
-
-  phases = [ "unpackPhase" "installPhase" ];
+  url = "mirror://sourceforge/stixfonts/Current%20Release/STIXv${version}.zip";
 
-  installPhase = ''
-    mkdir -p $out/share/fonts/opentype
-    cp -v "Fonts/OTF/"*.otf $out/share/fonts/opentype
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
   '';
 
+  sha256 = "19i30d2xjk52bjj7xva1hnlyh58yd5phas1njcc8ldcz87a1lhql";
+
   meta = with stdenv.lib; {
     homepage = http://www.stixfonts.org/;
     description = "Fonts for Scientific and Technical Information eXchange";
diff --git a/pkgs/data/fonts/tai-languages/default.nix b/pkgs/data/fonts/tai-languages/default.nix
index 0b9a63f2cb3..7778c4a98b8 100644
--- a/pkgs/data/fonts/tai-languages/default.nix
+++ b/pkgs/data/fonts/tai-languages/default.nix
@@ -1,11 +1,14 @@
-{ lib, runCommand, fetchurl }:
+{ lib, fetchzip }:
 
 {
-tai-ahom = runCommand "tai-ahom-2015-07-06" {
-  src = fetchurl {
-    url = "https://github.com/enabling-languages/tai-languages/blob/b57a3ea4589af69bb8e87c6c4bb7cd367b52f0b7/ahom/.fonts/ttf/.original/AhomUnicode_FromMartin.ttf?raw=true";
-    sha256 = "0zpjsylm29qc3jdv5kv0689pcirai46j7xjp5dppi0fmzxaxqnsk";
-  };
+tai-ahom = fetchzip {
+  name = "tai-ahom-2015-07-06";
+
+  url = "https://github.com/enabling-languages/tai-languages/blob/b57a3ea4589af69bb8e87c6c4bb7cd367b52f0b7/ahom/.fonts/ttf/.original/AhomUnicode_FromMartin.ttf?raw=true";
+
+  postFetch = "install -Dm644 $downloadedFile $out/share/fonts/truetype/AhomUnicode.ttf";
+
+  sha256 = "03h8ql9d5bzq4j521j0cz08ddf717bzim1nszh2aar6kn0xqnp9q";
 
   meta = with lib; {
     homepage = https://github.com/enabling-languages/tai-languages;
@@ -14,11 +17,7 @@ tai-ahom = runCommand "tai-ahom-2015-07-06" {
     license = licenses.ofl; # See font metadata
     platforms = platforms.all;
   };
-}
-''
-  mkdir -p $out/share/fonts/truetype
-  cp $src $out/share/fonts/truetype/AhomUnicode.ttf
-'';
+};
 
 # TODO: package others (Khamti Shan, Tai Aiton, Tai Phake, and/or Assam Tai)
 
diff --git a/pkgs/data/fonts/tempora-lgc/default.nix b/pkgs/data/fonts/tempora-lgc/default.nix
index c934bdb70e3..d0e7b89888c 100644
--- a/pkgs/data/fonts/tempora-lgc/default.nix
+++ b/pkgs/data/fonts/tempora-lgc/default.nix
@@ -30,6 +30,10 @@ stdenv.mkDerivation {
     mkdir -p "$out/share/fonts/opentype/public"
     cp ${toString srcs} "$out/share/fonts/opentype/public"
   '';
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1kwj31cjgdirqvh6bxs4fnvvr1ppaz6z8w40kvhkivgs69jglmzw";
+
   meta = {
     description = ''Tempora font'';
     license = stdenv.lib.licenses.gpl2 ;
diff --git a/pkgs/data/fonts/terminus-font-ttf/default.nix b/pkgs/data/fonts/terminus-font-ttf/default.nix
index 01959f91195..8750dfbd52d 100644
--- a/pkgs/data/fonts/terminus-font-ttf/default.nix
+++ b/pkgs/data/fonts/terminus-font-ttf/default.nix
@@ -1,17 +1,15 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "terminus-font-ttf-${version}";
+let
   version = "4.40.1";
+in fetchzip rec {
+  name = "terminus-font-ttf-${version}";
 
-  src = fetchurl {
-    url = "http://files.ax86.net/terminus-ttf/files/${version}/terminus-ttf-${version}.zip";
-    sha256 = "c3cb690c2935123035a0b1f3bfdd9511c282dab489cd423e161a47c592edf188";
-  };
+  url = "http://files.ax86.net/terminus-ttf/files/${version}/terminus-ttf-${version}.zip";
 
-  nativeBuildInputs = [ unzip ];
+  postFetch = ''
+    unzip -j $downloadedFile
 
-  installPhase = ''
     for i in *.ttf; do
       local destname="$(echo "$i" | sed -E 's|-[[:digit:].]+\.ttf$|.ttf|')"
       install -Dm 644 "$i" "$out/share/fonts/truetype/$destname"
@@ -20,6 +18,8 @@ stdenv.mkDerivation rec {
     install -Dm 644 COPYING "$out/share/doc/terminus-font-ttf/COPYING"
   '';
 
+  sha256 = "0cfkpgixdz47y94s9j26pm7n4hvad23vb2q4315kgahl4294zcpg";
+
   meta = with stdenv.lib; {
     description = "A clean fixed width TTF font";
     longDescription = ''
diff --git a/pkgs/data/fonts/theano/default.nix b/pkgs/data/fonts/theano/default.nix
index c385c3d40a9..2dbe7e720d2 100644
--- a/pkgs/data/fonts/theano/default.nix
+++ b/pkgs/data/fonts/theano/default.nix
@@ -1,24 +1,21 @@
 { stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "theano-${version}";
+let
   version = "2.0";
+in fetchzip rec {
+  name = "theano-${version}";
 
-  src = fetchzip {
-    stripRoot = false;
-    url = "https://github.com/akryukov/theano/releases/download/v${version}/theano-${version}.otf.zip";
-    sha256 = "1z3c63rcp4vfjyfv8xwc3br10ydwjyac3ipbl09y01s7qhfz02gp";
-  };
-
-  phases = [ "unpackPhase" "installPhase" ];
+  url = "https://github.com/akryukov/theano/releases/download/v${version}/theano-${version}.otf.zip";
 
-  installPhase = ''
+  postFetch = ''
     mkdir -p $out/share/fonts/opentype
     mkdir -p $out/share/doc/${name}
-    find . -name "*.otf" -exec cp -v {} $out/share/fonts/opentype \;
-    find . -name "*.txt" -exec cp -v {} $out/share/doc/${name} \;
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.txt -d "$out/share/doc/${name}"
   '';
 
+  sha256 = "1my1symb7k80ys33iphsxvmf6432wx6vjdnxhzhkgrang1rhx1h8";
+
   meta = with stdenv.lib; {
     homepage = https://github.com/akryukov/theano;
     description = "An old-style font designed from historic samples";
diff --git a/pkgs/data/fonts/tipa/default.nix b/pkgs/data/fonts/tipa/default.nix
index 45d88901ea7..1a4954e6ce4 100644
--- a/pkgs/data/fonts/tipa/default.nix
+++ b/pkgs/data/fonts/tipa/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation {
   name = "tipa-1.3";
-  
+
   src = fetchurl {
     url = "mirror://debian/pool/main/t/tipa/tipa_1.3.orig.tar.gz";
     sha256 = "1q1sisxdcd2zd9b7mnagr2mxf9v3n1r4s5892zx5ly4r0niyya9m";
@@ -13,9 +13,13 @@ stdenv.mkDerivation {
     mkdir -p "$PREFIX" "$out/share"
     make install PREFIX="$PREFIX"
 
-    ln -s $out/texmf* $out/share/
+    ln -s -r $out/texmf* $out/share/
   '';
 
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1g2cclykr6ax584rlcri8w2h385n624sgfx2fm45r0cwkg1p77h2";
+
   meta = {
     description = "Phonetic font for TeX";
     platforms = stdenv.lib.platforms.unix;
diff --git a/pkgs/data/fonts/ttf-bitstream-vera/default.nix b/pkgs/data/fonts/ttf-bitstream-vera/default.nix
index 0ab7657cc6f..a4d479ea33c 100644
--- a/pkgs/data/fonts/ttf-bitstream-vera/default.nix
+++ b/pkgs/data/fonts/ttf-bitstream-vera/default.nix
@@ -1,21 +1,19 @@
-{stdenv, fetchurl}:
+{stdenv, fetchzip}:
 
-stdenv.mkDerivation {
+fetchzip {
   name = "ttf-bitstream-vera-1.10";
 
-  src = fetchurl {
-    url = mirror://gnome/sources/ttf-bitstream-vera/1.10/ttf-bitstream-vera-1.10.tar.bz2;
-    sha256 = "1p3qs51x5327gnk71yq8cvmxc6wgx79sqxfvxcv80cdvgggjfnyv";
-  };
-
-  dontBuild = true;
+  url = mirror://gnome/sources/ttf-bitstream-vera/1.10/ttf-bitstream-vera-1.10.tar.bz2;
 
-  installPhase = ''
+  postFetch = ''
+    tar -xjf $downloadedFile --strip-components=1
     fontDir=$out/share/fonts/truetype
     mkdir -p $fontDir
     cp *.ttf $fontDir
   '';
 
+  sha256 = "179hal4yi3367jg8rsvqx6h2w4s0kn9zzrv8c47sslyg28g39s4m";
+
   meta = {
     platforms = stdenv.lib.platforms.unix;
   };
diff --git a/pkgs/data/fonts/ttf-envy-code-r/default.nix b/pkgs/data/fonts/ttf-envy-code-r/default.nix
index 8db10d7f582..2c58f197f18 100644
--- a/pkgs/data/fonts/ttf-envy-code-r/default.nix
+++ b/pkgs/data/fonts/ttf-envy-code-r/default.nix
@@ -1,25 +1,21 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchzip }:
+
 let
   pname = "ttf-envy-code-r";
   version = "PR7";
-in
-stdenv.mkDerivation rec {
+in fetchzip {
   name = "${pname}-0.${version}";
 
-  src = fetchurl {
-    url = "http://download.damieng.com/fonts/original/EnvyCodeR-${version}.zip";
-    sha256 = "9f7e9703aaf21110b4e1a54d954d57d4092727546348598a5a8e8101e4597aff";
-  };
-
-  buildInputs = [unzip];
+  url = "http://download.damieng.com/fonts/original/EnvyCodeR-${version}.zip";
 
-  installPhase = ''
-    for f in *.ttf; do
-        install -Dm 644 "$f" "$out/share/fonts/truetype/$f"
-    done
-    install -Dm 644 Read\ Me.txt "$out/share/doc/${pname}/readme.txt"
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.txt -d "$out/share/doc/${pname}"
   '';
 
+  sha256 = "0x0r07nax68cmz7490x2crzzgdg4j8fg63wppcmjqm0230bggq2z";
+
   meta = with stdenv.lib; {
     homepage = http://damieng.com/blog/tag/envy-code-r;
     description = "Free scalable coding font by DamienG";
diff --git a/pkgs/data/fonts/unifont_upper/default.nix b/pkgs/data/fonts/unifont_upper/default.nix
index 7f7b53526e5..8a3fd2d6035 100644
--- a/pkgs/data/fonts/unifont_upper/default.nix
+++ b/pkgs/data/fonts/unifont_upper/default.nix
@@ -1,21 +1,15 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchzip }:
 
-stdenv.mkDerivation rec {
-  name = "unifont_upper-${version}";
+let
   version = "9.0.03";
+in fetchzip rec {
+  name = "unifont_upper-${version}";
 
-  ttf = fetchurl {
-    url = "http://unifoundry.com/pub/unifont-${version}/font-builds/${name}.ttf";
-    sha256 = "015v39y6nnyz4ld006349jzk9isyaqp4cnvmz005ylfnicl4zwhi";
-  };
+  url = "http://unifoundry.com/pub/unifont-${version}/font-builds/${name}.ttf";
 
-  phases = "installPhase";
+  postFetch = "install -Dm644 $downloadedFile $out/share/fonts/truetype/unifont_upper.ttf";
 
-  installPhase =
-    ''
-      mkdir -p $out/share/fonts/truetype
-      cp -v ${ttf} $out/share/fonts/truetype/unifont_upper.ttf
-    '';
+  sha256 = "0anja3wrdjw0czqqk6wpf9yrkp0b11hb98wzmrpyij9gfgrspd71";
 
   meta = with stdenv.lib; {
     description = "Unicode font for glyphs above the Unicode Basic Multilingual Plane";