about summary refs log tree commit diff
path: root/nixpkgs/pkgs/data
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:36 +0000
committerAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:47 +0000
commit36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch)
treeb3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/data
parent4e31070265257dc67d120c27e0f75c2344fdfa9a (diff)
parentabf060725d7614bd3b9f96764262dfbc2f9c2199 (diff)
downloadnixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs
git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a
git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/data')
-rw-r--r--nixpkgs/pkgs/data/documentation/bgnet/default.nix32
-rw-r--r--nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix12
-rw-r--r--nixpkgs/pkgs/data/documentation/man-pages-posix/default.nix21
-rw-r--r--nixpkgs/pkgs/data/documentation/man-pages/default.nix28
-rw-r--r--nixpkgs/pkgs/data/documentation/mustache-spec/default.nix42
-rw-r--r--nixpkgs/pkgs/data/documentation/rnrs/builder.sh12
-rw-r--r--nixpkgs/pkgs/data/documentation/rnrs/common.nix30
-rw-r--r--nixpkgs/pkgs/data/documentation/rnrs/r3rs.nix7
-rw-r--r--nixpkgs/pkgs/data/documentation/rnrs/r4rs.nix7
-rw-r--r--nixpkgs/pkgs/data/documentation/rnrs/r5rs.nix7
-rw-r--r--nixpkgs/pkgs/data/documentation/std-man-pages/default.nix24
-rw-r--r--nixpkgs/pkgs/data/documentation/stdman/default.nix34
-rw-r--r--nixpkgs/pkgs/data/documentation/zeal/default.nix40
-rw-r--r--nixpkgs/pkgs/data/documentation/zeal/remove_ads.patch23
-rw-r--r--nixpkgs/pkgs/data/fonts/aileron/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/andagii/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/andika/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/anonymous-pro/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/arkpandora/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/arphic/default.nix55
-rw-r--r--nixpkgs/pkgs/data/fonts/aurulent-sans/default.nix21
-rw-r--r--nixpkgs/pkgs/data/fonts/babelstone-han/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/baekmuk-ttf/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/bakoma-ttf/default.nix21
-rw-r--r--nixpkgs/pkgs/data/fonts/cabin/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/caladea/cambria-alias.conf18
-rw-r--r--nixpkgs/pkgs/data/fonts/caladea/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/camingo-code/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/cantarell-fonts/default.nix38
-rw-r--r--nixpkgs/pkgs/data/fonts/carlito/calibri-alias.conf18
-rw-r--r--nixpkgs/pkgs/data/fonts/carlito/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/charis-sil/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/clearlyU/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/cm-unicode/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/comfortaa/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/comic-neue/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf18
-rw-r--r--nixpkgs/pkgs/data/fonts/comic-relief/default.nix40
-rw-r--r--nixpkgs/pkgs/data/fonts/corefonts/default.nix75
-rw-r--r--nixpkgs/pkgs/data/fonts/corefonts/no-op.conf9
-rw-r--r--nixpkgs/pkgs/data/fonts/crimson/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/culmus/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/dejavu-fonts/default.nix75
-rw-r--r--nixpkgs/pkgs/data/fonts/dina-pcf/default.nix65
-rw-r--r--nixpkgs/pkgs/data/fonts/dina/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/dosemu-fonts/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/dosis/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/doulos-sil/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/droid/default.nix64
-rw-r--r--nixpkgs/pkgs/data/fonts/eb-garamond/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/emojione/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/encode-sans/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/envypn-font/default.nix40
-rw-r--r--nixpkgs/pkgs/data/fonts/et-book/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/eunomia/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/f5_6/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/fantasque-sans-mono/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/ferrum/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/fira-code/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/fira-code/symbols.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/fira-mono/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/fira/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/fixedsys-excelsior/default.nix38
-rw-r--r--nixpkgs/pkgs/data/fonts/font-awesome-4/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/font-awesome-5/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/fontconfig-penultimate/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/freefont-ttf/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/gdouros/default.nix51
-rw-r--r--nixpkgs/pkgs/data/fonts/gentium-book-basic/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/gentium/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/go-font/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/gohufont/default.nix66
-rw-r--r--nixpkgs/pkgs/data/fonts/google-fonts/default.nix51
-rw-r--r--nixpkgs/pkgs/data/fonts/gyre/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/hack/default.nix40
-rw-r--r--nixpkgs/pkgs/data/fonts/hanazono/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/hasklig/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/helvetica-neue-lt-std/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/hyperscrypt/default.nix40
-rw-r--r--nixpkgs/pkgs/data/fonts/ia-writer-duospace/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/ibm-plex/default.nix21
-rw-r--r--nixpkgs/pkgs/data/fonts/inconsolata/default.nix19
-rw-r--r--nixpkgs/pkgs/data/fonts/inconsolata/lgc.nix62
-rw-r--r--nixpkgs/pkgs/data/fonts/input-fonts/default.nix50
-rw-r--r--nixpkgs/pkgs/data/fonts/inriafonts/default.nix40
-rw-r--r--nixpkgs/pkgs/data/fonts/inter-ui/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/bin.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/default.nix103
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/package-lock.json1025
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/package-lock.nix142
-rw-r--r--nixpkgs/pkgs/data/fonts/ipaexfont/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/ipafont/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/iwona/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/junicode/default.nix21
-rw-r--r--nixpkgs/pkgs/data/fonts/kawkab-mono/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/kochi-substitute-naga10/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/kochi-substitute/default.nix48
-rw-r--r--nixpkgs/pkgs/data/fonts/lato/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/league-of-moveable-type/default.nix51
-rw-r--r--nixpkgs/pkgs/data/fonts/league-of-moveable-type/fonts.nix82
-rw-r--r--nixpkgs/pkgs/data/fonts/league-of-moveable-type/update.sh25
-rw-r--r--nixpkgs/pkgs/data/fonts/liberastika/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/liberation-sans-narrow/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/libertine/default.nix54
-rw-r--r--nixpkgs/pkgs/data/fonts/libertinus/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/libre-baskerville/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/libre-bodoni/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/libre-caslon/default.nix46
-rw-r--r--nixpkgs/pkgs/data/fonts/libre-franklin/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/lm-math/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/lmodern/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/lmodern/lmmath.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/lobster-two/default.nix79
-rw-r--r--nixpkgs/pkgs/data/fonts/lohit-fonts/default.nix61
-rw-r--r--nixpkgs/pkgs/data/fonts/marathi-cursive/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/material-icons/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/medio/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/meslo-lg/default.nix46
-rw-r--r--nixpkgs/pkgs/data/fonts/migmix/default.nix44
-rw-r--r--nixpkgs/pkgs/data/fonts/migu/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/monoid/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/mononoki/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/montserrat/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/mph-2b-damase/default.nix18
-rw-r--r--nixpkgs/pkgs/data/fonts/mplus-outline-fonts/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/mro-unicode/default.nix19
-rw-r--r--nixpkgs/pkgs/data/fonts/myrica/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/nafees/default.nix62
-rw-r--r--nixpkgs/pkgs/data/fonts/nerdfonts/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/norwester/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/noto-fonts/default.nix127
-rw-r--r--nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/oldsindhi/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/oldstandard/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/open-dyslexic/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/open-sans/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/orbitron/default.nix46
-rw-r--r--nixpkgs/pkgs/data/fonts/overpass/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/oxygenfonts/default.nix45
-rw-r--r--nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/pecita/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/penna/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/poly/default.nix51
-rw-r--r--nixpkgs/pkgs/data/fonts/powerline-fonts/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/profont/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/proggyfonts/default.nix46
-rw-r--r--nixpkgs/pkgs/data/fonts/quattrocento-sans/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/quattrocento/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/raleway/default.nix40
-rw-r--r--nixpkgs/pkgs/data/fonts/redhat-liberation-fonts/default.nix75
-rw-r--r--nixpkgs/pkgs/data/fonts/ricty/default.nix38
-rw-r--r--nixpkgs/pkgs/data/fonts/rictydiminished-with-firacode/default.nix50
-rw-r--r--nixpkgs/pkgs/data/fonts/roboto-mono/default.nix88
-rw-r--r--nixpkgs/pkgs/data/fonts/roboto-slab/default.nix64
-rw-r--r--nixpkgs/pkgs/data/fonts/roboto/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/rounded-mgenplus/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/route159/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/sampradaya/default.nix19
-rw-r--r--nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/scheherazade/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/seshat/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/shrikhand/default.nix21
-rw-r--r--nixpkgs/pkgs/data/fonts/signwriting/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/siji/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/source-code-pro/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/source-han-code-jp/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/source-han-sans/default.nix53
-rw-r--r--nixpkgs/pkgs/data/fonts/source-han-serif/default.nix53
-rw-r--r--nixpkgs/pkgs/data/fonts/source-sans-pro/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/source-serif-pro/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/stix-otf/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/stix-two/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/tai-languages/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/tempora-lgc/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/tenderness/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/terminus-font-ttf/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/terminus-font/default.nix44
-rw-r--r--nixpkgs/pkgs/data/fonts/tewi/default.nix51
-rw-r--r--nixpkgs/pkgs/data/fonts/tex-gyre-math/default.nix69
-rw-r--r--nixpkgs/pkgs/data/fonts/tex-gyre/default.nix84
-rw-r--r--nixpkgs/pkgs/data/fonts/theano/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/tipa/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/tlwg/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/ttf-bitstream-vera/default.nix20
-rw-r--r--nixpkgs/pkgs/data/fonts/ttf-envy-code-r/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/ubuntu-font-family/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix45
-rw-r--r--nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/uni-vga/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/unifont/default.nix44
-rw-r--r--nixpkgs/pkgs/data/fonts/unifont_upper/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/unscii/default.nix40
-rw-r--r--nixpkgs/pkgs/data/fonts/vdrsymbols/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/vegur/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/vista-fonts-chs/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/vista-fonts-chs/no-op.conf9
-rw-r--r--nixpkgs/pkgs/data/fonts/vista-fonts/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/vista-fonts/no-op.conf9
-rw-r--r--nixpkgs/pkgs/data/fonts/weather-icons/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/wqy-microhei/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/wqy-zenhei/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/xits-math/default.nix40
-rw-r--r--nixpkgs/pkgs/data/fonts/zilla-slab/default.nix34
-rw-r--r--nixpkgs/pkgs/data/icons/arc-icon-theme/default.nix27
-rw-r--r--nixpkgs/pkgs/data/icons/bibata-cursors/default.nix41
-rw-r--r--nixpkgs/pkgs/data/icons/capitaine-cursors/default.nix45
-rw-r--r--nixpkgs/pkgs/data/icons/elementary-icon-theme/default.nix38
-rw-r--r--nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix32
-rw-r--r--nixpkgs/pkgs/data/icons/faba-icon-theme/default.nix28
-rw-r--r--nixpkgs/pkgs/data/icons/faba-mono-icons/default.nix31
-rw-r--r--nixpkgs/pkgs/data/icons/hicolor-icon-theme/default.nix18
-rw-r--r--nixpkgs/pkgs/data/icons/hicolor-icon-theme/setup-hook.sh21
-rw-r--r--nixpkgs/pkgs/data/icons/iconpack-obsidian/default.nix35
-rw-r--r--nixpkgs/pkgs/data/icons/maia-icon-theme/default.nix41
-rw-r--r--nixpkgs/pkgs/data/icons/moka-icon-theme/default.nix29
-rw-r--r--nixpkgs/pkgs/data/icons/numix-cursor-theme/default.nix34
-rw-r--r--nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix38
-rw-r--r--nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix36
-rw-r--r--nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix36
-rw-r--r--nixpkgs/pkgs/data/icons/paper-icon-theme/default.nix34
-rw-r--r--nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix33
-rw-r--r--nixpkgs/pkgs/data/icons/tango-icon-theme/default.nix27
-rw-r--r--nixpkgs/pkgs/data/icons/tango-icon-theme/rsvg-convert.patch34
-rw-r--r--nixpkgs/pkgs/data/icons/vanilla-dmz/default.nix31
-rw-r--r--nixpkgs/pkgs/data/icons/zafiro-icons/default.nix29
-rw-r--r--nixpkgs/pkgs/data/machine-learning/mnist/default.nix45
-rw-r--r--nixpkgs/pkgs/data/misc/adapta-backgrounds/default.nix23
-rw-r--r--nixpkgs/pkgs/data/misc/brise/default.nix41
-rw-r--r--nixpkgs/pkgs/data/misc/brise/fetchPackages.nix130
-rw-r--r--nixpkgs/pkgs/data/misc/cacert/default.nix69
-rw-r--r--nixpkgs/pkgs/data/misc/cacert/fix-unicode-ca-names.patch20
-rw-r--r--nixpkgs/pkgs/data/misc/cacert/setup-hook.sh5
-rw-r--r--nixpkgs/pkgs/data/misc/combinatorial_designs/default.nix31
-rw-r--r--nixpkgs/pkgs/data/misc/conway_polynomials/default.nix43
-rw-r--r--nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix37
-rw-r--r--nixpkgs/pkgs/data/misc/dns-root-data/default.nix35
-rw-r--r--nixpkgs/pkgs/data/misc/dns-root-data/root.ds2
-rw-r--r--nixpkgs/pkgs/data/misc/dns-root-data/root.key2
-rwxr-xr-xnixpkgs/pkgs/data/misc/dns-root-data/update-root-key.sh10
-rw-r--r--nixpkgs/pkgs/data/misc/elliptic_curves/default.nix51
-rw-r--r--nixpkgs/pkgs/data/misc/freepats/default.nix24
-rw-r--r--nixpkgs/pkgs/data/misc/geolite-legacy/builder.sh22
-rw-r--r--nixpkgs/pkgs/data/misc/geolite-legacy/default.nix41
-rw-r--r--nixpkgs/pkgs/data/misc/graphs/default.nix26
-rw-r--r--nixpkgs/pkgs/data/misc/hackage/default.nix6
-rw-r--r--nixpkgs/pkgs/data/misc/iana-etc/default.nix21
-rw-r--r--nixpkgs/pkgs/data/misc/libkkc-data/default.nix22
-rw-r--r--nixpkgs/pkgs/data/misc/mailcap/default.nix28
-rw-r--r--nixpkgs/pkgs/data/misc/media-player-info/default.nix33
-rw-r--r--nixpkgs/pkgs/data/misc/mime-types/default.nix21
-rw-r--r--nixpkgs/pkgs/data/misc/miscfiles/default.nix18
-rw-r--r--nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix23
-rw-r--r--nixpkgs/pkgs/data/misc/nixos-artwork/default.nix5
-rw-r--r--nixpkgs/pkgs/data/misc/nixos-artwork/grub2-theme.nix5
-rw-r--r--nixpkgs/pkgs/data/misc/nixos-artwork/icons.nix13
-rw-r--r--nixpkgs/pkgs/data/misc/nixos-artwork/wallpapers.nix120
-rw-r--r--nixpkgs/pkgs/data/misc/osinfo-db/default.nix26
-rw-r--r--nixpkgs/pkgs/data/misc/pari-galdata/default.nix26
-rw-r--r--nixpkgs/pkgs/data/misc/pari-seadata-small/default.nix26
-rw-r--r--nixpkgs/pkgs/data/misc/polytopes_db/default.nix26
-rw-r--r--nixpkgs/pkgs/data/misc/poppler-data/default.nix20
-rw-r--r--nixpkgs/pkgs/data/misc/scowl/default.nix113
-rw-r--r--nixpkgs/pkgs/data/misc/shared-desktop-ontologies/default.nix26
-rw-r--r--nixpkgs/pkgs/data/misc/shared-mime-info/default.nix24
-rw-r--r--nixpkgs/pkgs/data/misc/sound-theme-freedesktop/default.nix21
-rw-r--r--nixpkgs/pkgs/data/misc/tzdata/default.nix72
-rw-r--r--nixpkgs/pkgs/data/misc/tzdata/tzdata-setup-hook.sh5
-rw-r--r--nixpkgs/pkgs/data/misc/wireless-regdb/default.nix26
-rw-r--r--nixpkgs/pkgs/data/misc/xorg-rgb/default.nix22
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/docbook-5.0/default.nix35
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/3.1.nix37
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/4.1.nix37
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/default.nix25
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/docbook-ebnf.cat2
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix27
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix13
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix13
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.4.nix13
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix13
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/generic.nix23
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix32
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix66
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/docbook-xsl-ns-infinite.patch30
-rw-r--r--nixpkgs/pkgs/data/soundfonts/fluid/default.nix24
-rw-r--r--nixpkgs/pkgs/data/themes/ant-theme/default.nix39
-rw-r--r--nixpkgs/pkgs/data/themes/matcha/default.nix32
-rw-r--r--nixpkgs/pkgs/data/themes/materia-theme/default.nix38
-rw-r--r--nixpkgs/pkgs/data/themes/nordic-polar/default.nix35
-rw-r--r--nixpkgs/pkgs/data/themes/plano/default.nix33
-rw-r--r--nixpkgs/pkgs/data/themes/plata/default.nix80
-rw-r--r--nixpkgs/pkgs/data/themes/shades-of-gray/default.nix30
295 files changed, 11053 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/data/documentation/bgnet/default.nix b/nixpkgs/pkgs/data/documentation/bgnet/default.nix
new file mode 100644
index 000000000000..51ebe704beac
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/bgnet/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, fetchurl, python, zip, fop }:
+
+stdenv.mkDerivation rec {
+  name = "bgnet-${version}";
+  version = "3.0.21";
+
+  src = fetchurl {
+    url = https://beej.us/guide/bgnet/bgnet.tgz;
+    sha256 = "00ggr5prc5i3w9gaaw2sadfq6haq7lmh0vdilaxx8xz9z5znxvyv";
+  };
+
+  buildInputs = [ python zip fop ];
+
+  preBuild = ''
+    sed -i "s/#disable=1/disable=1/" bin/bgvalidate
+    # build scripts need some love
+    patchShebangs .
+  '';
+
+  installPhase = ''
+    mkdir -p $out
+    mv * $out/
+  '';
+
+  meta = {
+    description = "Beej’s Guide to Network Programming";
+    homepage = https://beej.us/guide/bgnet/;
+    license = lib.licenses.unfree;
+
+    maintainers = with lib.maintainers; [ Profpatsch ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix b/nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix
new file mode 100644
index 000000000000..9e6639c0a0ad
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix
@@ -0,0 +1,12 @@
+{ stdenv, fetchurl, itstool, libxml2, gettext }:
+
+stdenv.mkDerivation {
+  name = "gnome-user-docs-3.2.2";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/gnome-user-docs/3.2/gnome-user-docs-3.2.2.tar.xz;
+    sha256 = "1ka0nw2kc85p10y8x31v0wv06a88k7qrgafp4ys04y9fzz0rkcjj";
+  };
+
+  nativeBuildInputs = [ itstool libxml2 gettext ];
+}
diff --git a/nixpkgs/pkgs/data/documentation/man-pages-posix/default.nix b/nixpkgs/pkgs/data/documentation/man-pages-posix/default.nix
new file mode 100644
index 000000000000..b45edf7947ba
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/man-pages-posix/default.nix
@@ -0,0 +1,21 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  name = "man-pages-posix-2013-a";
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/docs/man-pages/man-pages-posix/${name}.tar.xz";
+    sha256 = "0258j05zdrxpgdj8nndbyi7bvrs8fxdksb0xbfrylzgzfmf3lqqr";
+  };
+
+  preBuild =
+    ''
+      makeFlagsArray=(MANDIR=$out/share/man)
+    '';
+
+  meta = {
+    description = "POSIX man-pages (0p, 1p, 3p)";
+    homepage = https://www.kernel.org/doc/man-pages/;
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/documentation/man-pages/default.nix b/nixpkgs/pkgs/data/documentation/man-pages/default.nix
new file mode 100644
index 000000000000..6d657472e66f
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/man-pages/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "man-pages-${version}";
+  version = "4.16";
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/docs/man-pages/${name}.tar.xz";
+    sha256 = "1d2d6llazg3inwjiz22cn46mbm5ydpbyh9qb55z4j3nm4w6wrzs7";
+  };
+
+  makeFlags = [ "MANDIR=$(out)/share/man" ];
+  postInstall = ''
+    # conflict with shadow-utils
+    rm $out/share/man/man5/passwd.5 \
+       $out/share/man/man3/getspnam.3
+  '';
+  outputDocdev = "out";
+
+  meta = with stdenv.lib; {
+    description = "Linux development manual pages";
+    homepage = https://www.kernel.org/doc/man-pages/;
+    repositories.git = http://git.kernel.org/pub/scm/docs/man-pages/man-pages;
+    license = licenses.gpl2Plus;
+    platforms = with platforms; unix;
+    priority = 30; # if a package comes with its own man page, prefer it
+  };
+}
diff --git a/nixpkgs/pkgs/data/documentation/mustache-spec/default.nix b/nixpkgs/pkgs/data/documentation/mustache-spec/default.nix
new file mode 100644
index 000000000000..08690b7cecfc
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/mustache-spec/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "mustache-spec-${version}";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "mustache";
+    repo = "mustache";
+    rev = "v${version}";
+    sha256 = "03xrfyjzm5ss6zkdlpl9ypwzcglspcdcnr3f94vj1rjfqm2rxcjw";
+  };
+
+  configurePhase = "";
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/{man/man5,doc/html}
+    cp man/mustache.5 $out/man/man5
+    cp man/mustache.5.html $out/doc/html
+  '';
+
+  meta = rec {
+    description = "Logic-less templates, specification package";
+    longDescription = ''
+      Inspired by ctemplate and et, Mustache is a framework-agnostic way to
+      render logic-free views.
+
+      Provides the specification as man page and html docs.
+
+      As ctemplates says, "It emphasizes separating logic from presentation: it
+      is impossible to embed application logic in this template language."
+
+      For a list of implementations and tips, see ${homepage}.
+    '';
+
+    homepage = http://mustache.github.io/;
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ Profpatsch ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/documentation/rnrs/builder.sh b/nixpkgs/pkgs/data/documentation/rnrs/builder.sh
new file mode 100644
index 000000000000..6ec5c855abab
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/rnrs/builder.sh
@@ -0,0 +1,12 @@
+source "$stdenv/setup" || exit 1
+
+# XXX: Eventually we could consider building the PDF/PS files as well.
+
+echo "source is \`$src', report name is \`$reportName'"
+
+mkdir -p "$out/share/info" &&					\
+makeinfo -o "$out/share/info/${reportName}.info" "$src"
+
+# XXX: HTML output is apparently broken.
+#mkdir -p "$out/share/doc/${reportName}" &&			\
+#makeinfo -o "$out/share/doc/${reportName}/html" --html --force "$src"
diff --git a/nixpkgs/pkgs/data/documentation/rnrs/common.nix b/nixpkgs/pkgs/data/documentation/rnrs/common.nix
new file mode 100644
index 000000000000..bd38389eb47e
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/rnrs/common.nix
@@ -0,0 +1,30 @@
+{ fetchurl, stdenv, texinfo, revision, sha256 }:
+
+stdenv.mkDerivation rec {
+  name = "r${toString revision}rs";
+  src = fetchurl {
+    url = "http://swiss.csail.mit.edu/ftpdir/scm/${name}.txi";
+    inherit sha256;
+  };
+
+  buildInputs = [ texinfo ];
+
+  # Tell the builder about the name of the report.  
+  reportName = name;
+
+  builder = ./builder.sh;
+
+  meta = {
+    description = "Revised^${toString revision} Report on the Algorithmic Language Scheme";
+
+    longDescription = ''
+      This package contains the GNU Info version of the
+      the ${toString revision}th revision of the Report on the
+      Algorithmic Language Scheme.
+    '';
+
+    homepage = http://swiss.csail.mit.edu/~jaffer/Scheme;
+
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/data/documentation/rnrs/r3rs.nix b/nixpkgs/pkgs/data/documentation/rnrs/r3rs.nix
new file mode 100644
index 000000000000..d252a1680bd7
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/rnrs/r3rs.nix
@@ -0,0 +1,7 @@
+{ fetchurl, stdenv, texinfo }:
+
+import ./common.nix {
+  inherit fetchurl stdenv texinfo;
+  revision = 3;
+  sha256 = "0knrpkr74s8yn4xcqxkqpgxmzdmzrvahh1n1csqc1wwd2rb4vnpr";
+}
diff --git a/nixpkgs/pkgs/data/documentation/rnrs/r4rs.nix b/nixpkgs/pkgs/data/documentation/rnrs/r4rs.nix
new file mode 100644
index 000000000000..1aa6a49f02d2
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/rnrs/r4rs.nix
@@ -0,0 +1,7 @@
+{ fetchurl, stdenv, texinfo }:
+
+import ./common.nix {
+  inherit fetchurl stdenv texinfo;
+  revision = 4;
+  sha256 = "02jgy0lvi5ymkdxwjasg50zl03zmyj8sgnfxxnjnbmif72c0k4p8";
+}
diff --git a/nixpkgs/pkgs/data/documentation/rnrs/r5rs.nix b/nixpkgs/pkgs/data/documentation/rnrs/r5rs.nix
new file mode 100644
index 000000000000..a0fff6507e4b
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/rnrs/r5rs.nix
@@ -0,0 +1,7 @@
+{ fetchurl, stdenv, texinfo }:
+
+import ./common.nix {
+  inherit fetchurl stdenv texinfo;
+  revision = 5;
+  sha256 = "1s2wcslwcgb9j89vjn7qs63qlnsv1481jaw1sgg33fgbgk6a8wrk";
+}
diff --git a/nixpkgs/pkgs/data/documentation/std-man-pages/default.nix b/nixpkgs/pkgs/data/documentation/std-man-pages/default.nix
new file mode 100644
index 000000000000..345971355001
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/std-man-pages/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  name = "std-man-pages-4.4.0";
+
+  src = fetchurl {
+    url = mirror://gcc/libstdc++/doxygen/libstdc++-man.4.4.0.tar.bz2;
+    sha256 = "0153py77ll759jacq41dp2z2ksr08pdcfic0rwjd6pr84dk89y9v";
+  };
+
+  outputDevdoc = "out";
+
+  installPhase = ''
+    mkdir -p $out/share/man
+    cp -R * $out/share/man
+  '';
+
+  meta = {
+    description = "C++ STD manual pages";
+    homepage = https://gcc.gnu.org/;
+    license = "GPL/LGPL";
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/documentation/stdman/default.nix b/nixpkgs/pkgs/data/documentation/stdman/default.nix
new file mode 100644
index 000000000000..25df45258a6f
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/stdman/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, curl, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "stdman-${version}";
+  version = "2018.03.11";
+
+  src = fetchFromGitHub {
+    owner = "jeaye";
+    repo = "stdman";
+    rev = "${version}";
+    sha256 = "1017vwhcwlwi5sa8h6pkhj048in826wxnhl6qarykmzksvidff3r";
+  };
+
+  outputDevdoc = "out";
+
+  preConfigure = "
+    patchShebangs ./configure
+    patchShebangs ./do_install
+  ";
+
+  buildInputs = [ curl ];
+
+  meta = with stdenv.lib; {
+    description = "Formatted C++17 stdlib man pages (cppreference)";
+    longDescription = "stdman is a tool that parses archived HTML
+      files from cppreference and generates groff-formatted manual
+      pages for Unix-based systems. The goal is to provide excellent
+      formatting for easy readability.";
+    homepage = https://github.com/jeaye/stdman;
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.twey ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/documentation/zeal/default.nix b/nixpkgs/pkgs/data/documentation/zeal/default.nix
new file mode 100644
index 000000000000..63fe26f069c7
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/zeal/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, cmake, extra-cmake-modules, pkgconfig
+, qtbase, qtimageformats, qtwebkit, qtx11extras
+, libarchive, libXdmcp, libpthreadstubs, xcbutilkeysyms  }:
+
+stdenv.mkDerivation rec {
+  name = "zeal-${version}";
+  version = "0.6.1";
+
+  src = fetchFromGitHub {
+    owner  = "zealdocs";
+    repo   = "zeal";
+    rev    = "v${version}";
+    sha256 = "05qcjpibakv4ibhxgl5ajbkby3w7bkxsv3nfv2a0kppi1z0f8n8v";
+  };
+
+  # while ads can be disabled from the user settings, by default they are not so
+  # we patch it out completely instead
+  patches = [ ./remove_ads.patch ];
+
+  nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig ];
+  buildInputs = [
+    qtbase qtimageformats qtwebkit qtx11extras
+    libarchive
+    libXdmcp libpthreadstubs xcbutilkeysyms
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "A simple offline API documentation browser";
+    longDescription = ''
+      Zeal is a simple offline API documentation browser inspired by Dash (macOS
+      app), available for Linux and Windows.
+    '';
+    homepage    = https://zealdocs.org/;
+    license     = licenses.gpl3;
+    maintainers = with maintainers; [ skeidel peterhoeg ];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/documentation/zeal/remove_ads.patch b/nixpkgs/pkgs/data/documentation/zeal/remove_ads.patch
new file mode 100644
index 000000000000..be0cab305eb5
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/zeal/remove_ads.patch
@@ -0,0 +1,23 @@
+commit 1b61397175b6e60f23224db463301c9057830859
+Author: Peter Hoeg <peter@hoeg.com>
+Date:   Mon Feb 19 07:38:03 2018 +0800
+
+    strip container with ads
+
+diff --git a/src/app/resources/browser/welcome.html b/src/app/resources/browser/welcome.html
+index bb3f511..67382b2 100644
+--- a/src/app/resources/browser/welcome.html
++++ b/src/app/resources/browser/welcome.html
+@@ -20,12 +20,6 @@
+               <span id="version" class="has-text-weight-light is-size-5"></span>
+             </p>
+             <p class="subtitle">Docs for everyone</p>
+-            <div id="carboncontainer" style="margin-top: 75px;">
+-              <div id="carbon" class="box">
+-                <script async type="text/javascript" src="https://cdn.carbonads.com/carbon.js?zoneid=1673&serve=C6AILKT&placement=zealdocsforwindowsorg"
+-                  onerror="document.getElementById('carboncontainer').style.display = 'none';" id="_carbonads_js"></script>
+-              </div>
+-            </div>
+           </div>
+           <div class="column">
+             <p class="subtitle is-5">Customize</p>
diff --git a/nixpkgs/pkgs/data/fonts/aileron/default.nix b/nixpkgs/pkgs/data/fonts/aileron/default.nix
new file mode 100644
index 000000000000..52a96f16db0c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/aileron/default.nix
@@ -0,0 +1,27 @@
+{ stdenv,  fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "102";
+  pname = "aileron";
+in
+
+fetchzip rec {
+  name = "${pname}-font-${majorVersion}.${minorVersion}";
+
+  url = "http://dotcolon.net/DL/font/${pname}.zip";
+  sha256 = "04xnzdy9plzd2p02yq367h37m5ygx0w8cpkdv39cc3754ljlsxim";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype/${pname}
+    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://dotcolon.net/font/${pname}/";
+    description = "A helvetica font in nine weights";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.cc0;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/andagii/default.nix b/nixpkgs/pkgs/data/fonts/andagii/default.nix
new file mode 100644
index 000000000000..ba0bab61eec5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/andagii/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "1.0.2";
+in fetchzip {
+  name = "andagii-${version}";
+
+  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
+  # own risk Debian claims it is GPL - good enough for me.
+  meta = with stdenv.lib; {
+    homepage = http://www.i18nguy.com/unicode/unicode-font.html;
+    description = "Unicode Plane 1 Osmanya script font";
+    maintainers = with maintainers; [ raskin rycee ];
+    license = "unknown";
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/andika/default.nix b/nixpkgs/pkgs/data/fonts/andika/default.nix
new file mode 100644
index 000000000000..4b6965563a3a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/andika/default.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchzip}:
+
+let
+  version = "5.000";
+in
+  fetchzip rec {
+    name = "andika-${version}";
+
+    url = "https://software.sil.org/downloads/r/andika/Andika-${version}.zip";
+
+    postFetch = ''
+      mkdir -p $out/share/{doc,fonts}
+      unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+      unzip -j $downloadedFile \*OFL.txt \*OFL-FAQ.txt \*README.txt \*FONTLOG.txt -d "$out/share/doc/${name}"
+    '';
+
+    sha256 = "1jy9vpcprpd1k48p20wh6jhyn909ibia8lr5i747p41l0s8a7lqy";
+
+    meta = with stdenv.lib; {
+      homepage = https://software.sil.org/andika;
+      description = "A family designed especially for literacy use taking into account the needs of beginning readers";
+      longDescription = ''
+      Andika is a sans serif, Unicode-compliant font designed especially for literacy use, taking into account the needs of beginning readers. The focus is on clear, easy-to-perceive letterforms that will not be readily confused with one another.
+
+      A sans serif font is preferred by some literacy personnel for teaching people to read. Its forms are simpler and less cluttered than those of most serif fonts. For years, literacy workers have had to make do with fonts that were not really suitable for beginning readers and writers. In some cases, literacy specialists have had to tediously assemble letters from a variety of fonts in order to get all of the characters they need for their particular language project, resulting in confusing and unattractive publications. Andika addresses those issues.
+      '';
+      license = licenses.ofl;
+      platforms = platforms.all;
+      maintainers = [ maintainers.f--t ];
+    };
+  }
diff --git a/nixpkgs/pkgs/data/fonts/anonymous-pro/default.nix b/nixpkgs/pkgs/data/fonts/anonymous-pro/default.nix
new file mode 100644
index 000000000000..3ac2c9432997
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/anonymous-pro/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "1.002";
+in fetchzip rec {
+  name = "anonymousPro-${version}";
+
+  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 = https://www.marksimonson.com/fonts/view/anonymous-pro;
+    description = "TrueType font set intended for source code";
+    longDescription = ''
+      Anonymous Pro (2009) is a family of four fixed-width fonts
+      designed with coding in mind. Anonymous Pro features an
+      international, Unicode-based character set, with support for
+      most Western and Central European Latin-based languages, plus
+      Greek and Cyrillic. It is designed by Mark Simonson.
+    '';
+    maintainers = with maintainers; [ raskin rycee ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/arkpandora/default.nix b/nixpkgs/pkgs/data/fonts/arkpandora/default.nix
new file mode 100644
index 000000000000..909985d945bc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/arkpandora/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl }:
+
+let
+  version = "2.04";
+in fetchurl {
+  name = "arkpandora-${version}";
+
+  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";
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/arphic/default.nix b/nixpkgs/pkgs/data/fonts/arphic/default.nix
new file mode 100644
index 000000000000..37d9a1995674
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/arphic/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchzip, mkfontscale, mkfontdir }:
+
+let
+  version = "0.2.20080216.2";
+in {
+  arphic-ukai = fetchzip {
+    name = "arphic-ukai-${version}";
+
+    url = "http://archive.ubuntu.com/ubuntu/pool/main/f/fonts-arphic-ukai/fonts-arphic-ukai_${version}.orig.tar.bz2";
+
+    postFetch = ''
+      tar -xjvf $downloadedFile --strip-components=1
+      install -D -v ukai.ttc $out/share/fonts/truetype/arphic-ukai.ttc
+      cd $out/share/fonts
+      ${mkfontdir}/bin/mkfontdir
+      ${mkfontscale}/bin/mkfontscale
+    '';
+
+    sha256 = "0xi5ycm7ydzpn7cqxv1kcj9vd70nr9wn8v27hmibyjc25y2qdmzl";
+
+    meta = with stdenv.lib; {
+      description = "CJK Unicode font Kai style";
+      homepage = https://www.freedesktop.org/wiki/Software/CJKUnifonts/;
+
+      license = licenses.arphicpl;
+      maintainers = [ maintainers.changlinli ];
+      platforms = platforms.all;
+    };
+  };
+
+  arphic-uming = fetchzip {
+    name = "arphic-uming-${version}";
+
+    url = "http://archive.ubuntu.com/ubuntu/pool/main/f/fonts-arphic-uming/fonts-arphic-uming_${version}.orig.tar.bz2";
+
+    postFetch = ''
+      tar -xjvf $downloadedFile --strip-components=1
+      install -D -v uming.ttc $out/share/fonts/truetype/arphic-uming.ttc
+      cd $out/share/fonts
+      ${mkfontdir}/bin/mkfontdir
+      ${mkfontscale}/bin/mkfontscale
+    '';
+
+    sha256 = "16jybvj1cxamm682caj6nsm6l5c60x9mgchp1l2izrw2rvc8x38d";
+
+    meta = with stdenv.lib; {
+      description = "CJK Unicode font Ming style";
+      homepage = https://www.freedesktop.org/wiki/Software/CJKUnifonts/;
+
+      license = licenses.arphicpl;
+      maintainers = [ maintainers.changlinli ];
+      platforms = platforms.all;
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/aurulent-sans/default.nix b/nixpkgs/pkgs/data/fonts/aurulent-sans/default.nix
new file mode 100644
index 000000000000..1a83ce17646e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/aurulent-sans/default.nix
@@ -0,0 +1,21 @@
+{stdenv, fetchzip}:
+
+fetchzip rec {
+  name = "aurulent-sans-0.1";
+
+  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";
+    longDescription = "Aurulent Sans is a humanist sans serif intended to be used as an interface font.";
+    homepage = http://delubrum.org/;
+    maintainers = with stdenv.lib.maintainers; [ deepfire ];
+    license = stdenv.lib.licenses.ofl;
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/babelstone-han/default.nix b/nixpkgs/pkgs/data/fonts/babelstone-han/default.nix
new file mode 100644
index 000000000000..67080e73c46d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/babelstone-han/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchzip}:
+
+let
+  version = "11.0.3";
+in fetchzip {
+  name = "babelstone-han-${version}";
+
+  url = http://www.babelstone.co.uk/Fonts/Download/BabelStoneHan.zip;
+  postFetch = ''
+    mkdir -p $out/share/fonts/truetype
+    unzip $downloadedFile '*.ttf' -d $out/share/fonts/truetype
+  '';
+  sha256 = "0c8s21kllyilwivrb8gywq818y67w3zpann34hz36vy0wyiswn1c";
+
+  meta = with stdenv.lib; {
+    description = "Unicode CJK font with over 36000 Han characters";
+    homepage = http://www.babelstone.co.uk/Fonts/Han.html;
+
+    license = licenses.free;
+    platforms = platforms.all;
+    hydraPlatforms = [];
+    maintainers = [ maintainers.volth ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/baekmuk-ttf/default.nix b/nixpkgs/pkgs/data/fonts/baekmuk-ttf/default.nix
new file mode 100644
index 000000000000..555bba63354c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/baekmuk-ttf/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchzip }:
+
+fetchzip rec {
+  name = "baekmuk-ttf-2.2";
+
+  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";
+    homepage = http://kldp.net/projects/baekmuk/;
+    license = "BSD-like";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/bakoma-ttf/default.nix b/nixpkgs/pkgs/data/fonts/bakoma-ttf/default.nix
new file mode 100644
index 000000000000..8d87154c1df0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/bakoma-ttf/default.nix
@@ -0,0 +1,21 @@
+{stdenv, fetchzip}:
+
+fetchzip {
+  name = "bakoma-ttf";
+
+  url = http://tarballs.nixos.org/sha256/1j1y3cq6ys30m734axc0brdm2q9n2as4h32jws15r7w5fwr991km;
+
+  postFetch = ''
+    tar xjvf $downloadedFile --strip-components=1
+    mkdir -p $out/share/fonts/truetype
+    cp ttf/*.ttf $out/share/fonts/truetype
+  '';
+
+  sha256 = "0g7i723n00cqx2va05z1h6v3a2ar69gqw4hy6pjj7m0ml906rngc";
+
+  meta = {
+    description = "TrueType versions of the Computer Modern and AMS TeX Fonts";
+    homepage = http://www.ctan.org/tex-archive/fonts/cm/ps-type1/bakoma/ttf/;
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/cabin/default.nix b/nixpkgs/pkgs/data/fonts/cabin/default.nix
new file mode 100644
index 000000000000..5bf4d454b062
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cabin/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchzip }:
+
+fetchzip rec {
+  name = "cabin-1.005";
+
+  url = https://github.com/impallari/Cabin/archive/982839c790e9dc57c343972aa34c51ed3b3677fd.zip;
+
+  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 = "1ax5c2iab48qsk9zn3gjvqaib2lnlm25f1wr0aysf5ngw0y0jkrd";
+
+  meta = with stdenv.lib; {
+    description = "A humanist sans with 4 weights and true italics";
+    longDescription = ''
+      The Cabin font family is a humanist sans with 4 weights and true italics,
+      inspired by Edward Johnston’s and Eric Gill’s typefaces, with a touch of
+      modernism. Cabin incorporates modern proportions, optical adjustments, and
+      some elements of the geometric sans. It remains true to its roots, but has
+      its own personality.
+
+      The weight distribution is almost monotone, although top and bottom curves
+      are slightly thin. Counters of the b, g, p and q are rounded and optically
+      adjusted. The curved stem endings have a 10 degree angle. E and F have
+      shorter center arms. M is splashed.
+    '';
+    homepage = http://www.impallari.com/cabin;
+    license = licenses.ofl;
+    maintainers = with maintainers; [ cmfwyp ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/caladea/cambria-alias.conf b/nixpkgs/pkgs/data/fonts/caladea/cambria-alias.conf
new file mode 100644
index 000000000000..f763e2a8c346
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/caladea/cambria-alias.conf
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+  <!-- Configure Caladea as a metric-compatible alias for the
+       Microsoft Cambria font family. -->
+  <alias binding="same">
+    <family>Cambria</family>
+    <accept>
+      <family>Caladea</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Caladea</family>
+    <default>
+      <family>Cambria</family>
+    </default>
+  </alias>
+</fontconfig>
diff --git a/nixpkgs/pkgs/data/fonts/caladea/default.nix b/nixpkgs/pkgs/data/fonts/caladea/default.nix
new file mode 100644
index 000000000000..56d8273f78ab
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/caladea/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchzip}:
+
+let
+  version = "20130214";
+in fetchzip rec {
+  name = "caladea-${version}";
+
+  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
+    # one provides some good information and samples.
+    homepage = http://openfontlibrary.org/en/font/caladea;
+    description = "A serif font metric-compatible with Microsoft Cambria";
+    longDescription = ''
+      Caladea is a free font that is metric-compatible with the
+      Microsoft Cambria font. Developed by Carolina Giovagnoli and
+      Andrés Torresi at Huerta Tipográfica foundry.
+    '';
+    license = licenses.asl20;
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+
+    # Reduce the priority of this package. The intent is that if you
+    # also install the `vista-fonts` package, then you probably will
+    # not want to install the font alias of this package.
+    priority = 10;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/camingo-code/default.nix b/nixpkgs/pkgs/data/fonts/camingo-code/default.nix
new file mode 100644
index 000000000000..dfdf367337c3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/camingo-code/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "1.0";
+in fetchzip rec {
+  name = "camingo-code-${version}";
+
+  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 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/;
+    description = "A monospaced typeface designed for source-code editors";
+    platforms = platforms.all;
+    license = licenses.cc-by-nd-30;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/cantarell-fonts/default.nix b/nixpkgs/pkgs/data/fonts/cantarell-fonts/default.nix
new file mode 100644
index 000000000000..03d2e85d6af9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cantarell-fonts/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, meson, ninja, gettext, appstream-glib, gnome3 }:
+
+let
+  pname = "cantarell-fonts";
+  version = "0.110";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    sha256 = "19rll0h4xjn83lqm0zc4088y0vkrx1wxg8jz9imvgd8snmfxfm54";
+  };
+
+  nativeBuildInputs = [ meson ninja gettext appstream-glib ];
+
+  # ad-hoc fix for https://github.com/NixOS/nixpkgs/issues/50855
+  # until we fix gettext's envHook
+  preBuild = ''
+    export GETTEXTDATADIRS="$GETTEXTDATADIRS_FOR_BUILD"
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "052nxmhw2j8yvcj90r8xhjf0mzim8h6syip7winxb28vavj6jnba";
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
+  meta = {
+    description = "Default typeface used in the user interface of GNOME since version 3.0";
+    platforms = stdenv.lib.platforms.all;
+    license = stdenv.lib.licenses.ofl;
+    maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/carlito/calibri-alias.conf b/nixpkgs/pkgs/data/fonts/carlito/calibri-alias.conf
new file mode 100644
index 000000000000..294af3b6c784
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/carlito/calibri-alias.conf
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+  <!-- Configure Carlito as a metric-compatible alias for the
+       Microsoft Calibri font family. -->
+  <alias binding="same">
+    <family>Calibri</family>
+    <accept>
+      <family>Carlito</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Carlito</family>
+    <default>
+      <family>Calibri</family>
+    </default>
+  </alias>
+</fontconfig>
diff --git a/nixpkgs/pkgs/data/fonts/carlito/default.nix b/nixpkgs/pkgs/data/fonts/carlito/default.nix
new file mode 100644
index 000000000000..2243435bc5db
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/carlito/default.nix
@@ -0,0 +1,39 @@
+{stdenv, fetchzip}:
+
+let
+  version = "20130920";
+in fetchzip rec {
+  name = "carlito-${version}";
+
+  url = "https://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/crosextrafonts-carlito-${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 ${./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.
+    homepage = http://openfontlibrary.org/en/font/carlito;
+    description = "A sans-serif font metric-compatible with Microsoft Calibri";
+    longDescription = ''
+      Carlito is a free font that is metric-compatible with the
+      Microsoft Calibri font. The font is designed by Łukasz Dziedzic
+      of the tyPoland foundry and based his Lato font.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+
+    # Reduce the priority of this package. The intent is that if you
+    # also install the `vista-fonts` package, then you probably will
+    # not want to install the font alias of this package.
+    priority = 10;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/charis-sil/default.nix b/nixpkgs/pkgs/data/fonts/charis-sil/default.nix
new file mode 100644
index 000000000000..995e03372fb4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/charis-sil/default.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchzip}:
+
+let
+  version = "5.000";
+in
+  fetchzip rec {
+    name = "charis-sil-${version}";
+
+    url = "https://software.sil.org/downloads/r/charis/CharisSIL-${version}.zip";
+
+    postFetch = ''
+      mkdir -p $out/share/{doc,fonts}
+      unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+      unzip -j $downloadedFile \*OFL.txt \*OFL-FAQ.txt \*README.txt \*FONTLOG.txt -d "$out/share/doc/${name}"
+    '';
+
+    sha256 = "1a220s8n0flvcdkazqf5g10v6r55s2an308slvvarynpj6l7x27n";
+
+    meta = with stdenv.lib; {
+      homepage = https://software.sil.org/charis;
+      description = "A family of highly readable fonts for broad multilingual use";
+      longDescription = ''
+      This Charis SIL font is essentially the same design as the SIL Charis font first released by SIL in 1997. Charis is similar to Bitstream Charter, one of the first fonts designed specifically for laser printers. It is highly readable and holds up well in less-than-ideal reproduction environments. It also has a full set of styles – regular, italic, bold, bold italic. Charis is a serif, proportionally-spaced font optimized for readability in long printed documents.
+
+      The goal for this product was to provide a single Unicode-based font family that would contain a comprehensive inventory of glyphs needed for almost any Roman- or Cyrillic-based writing system, whether used for phonetic or orthographic needs. In addition, there is provision for other characters and symbols useful to linguists. This font makes use of state-of-the-art font technologies to support complex typographic issues, such as the need to position arbitrary combinations of base glyphs and diacritics optimally.
+      '';
+      license = licenses.ofl;
+      platforms = platforms.all;
+      maintainers = [ maintainers.f--t ];
+    };
+  }
diff --git a/nixpkgs/pkgs/data/fonts/clearlyU/default.nix b/nixpkgs/pkgs/data/fonts/clearlyU/default.nix
new file mode 100644
index 000000000000..5dc8e53282ab
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/clearlyU/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, mkfontdir, mkfontscale }:
+
+stdenv.mkDerivation {
+  name = "clearlyU-12-1.9";
+
+  src = fetchurl {
+    url = https://www.math.nmsu.edu/~mleisher/Software/cu/cu12-1.9.tgz;
+    sha256 = "1xn14jbv3m1khy7ydvad9ydkn7yygdbhjy9wm1v000jzjwr3lv21";
+  };
+  
+  nativeBuildInputs = [ mkfontdir mkfontscale ];
+
+  installPhase =
+    ''
+      mkdir -p $out/share/fonts
+      cp *.bdf $out/share/fonts
+      cd $out/share/fonts
+      mkfontdir 
+      mkfontscale
+    '';
+  
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "127zrg65s90ksj99kr9hxny40rbxvpai62mf5nqk853hcd1bzpr6";
+
+  meta = {
+    description = "A Unicode font";
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/cm-unicode/default.nix b/nixpkgs/pkgs/data/fonts/cm-unicode/default.nix
new file mode 100644
index 000000000000..d17021feb81e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cm-unicode/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "0.7.0";
+in fetchzip rec {
+  name = "cm-unicode-${version}";
+
+  url = "mirror://sourceforge/cm-unicode/cm-unicode/${version}/${name}-otf.tar.xz";
+
+  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";
+    maintainers = with maintainers; [ raskin rycee ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/comfortaa/default.nix b/nixpkgs/pkgs/data/fonts/comfortaa/default.nix
new file mode 100644
index 000000000000..f7ec6e8b8c87
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/comfortaa/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchzip}:
+
+let
+  version = "3.001";
+in fetchzip rec {
+  name = "comfortaa-${version}";
+
+  url = "https://orig00.deviantart.net/40a3/f/2017/093/d/4/comfortaa___font_by_aajohan-d1qr019.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 = "0z7xr0cnn6ghwivrm5b5awq9bzhnay3y99qq6dkdgfkfdsaz0n9h";
+
+  meta = with stdenv.lib; {
+    homepage = http://aajohan.deviantart.com/art/Comfortaa-font-105395949;
+    description = "A clean and modern font suitable for headings and logos";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/comic-neue/default.nix b/nixpkgs/pkgs/data/fonts/comic-neue/default.nix
new file mode 100644
index 000000000000..07fc172ca513
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/comic-neue/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "2.2";
+in fetchzip rec {
+  name = "comic-neue-${version}";
+
+  url = "http://comicneue.com/${name}.zip";
+
+  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";
+    longDescription = ''
+      It is inspired by Comic Sans but more regular.  The font was
+      designed by Craig Rozynski.  It is available in two variants:
+      Comic Neue and Comic Neue Angular.  The former having round and
+      the latter angular terminals.  Both variants come in Light,
+      Regular, and Bold weights with Oblique variants.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf b/nixpkgs/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf
new file mode 100644
index 000000000000..be5f6cca866d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+  <!-- Configure Comic Relief as a metric-compatible alias for the
+       Microsoft Comic Sans font family. -->
+  <alias binding="same">
+    <family>Comic Sans MS</family>
+    <accept>
+      <family>Comic Relief</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Comic Relief</family>
+    <default>
+      <family>Comic Sans MS</family>
+    </default>
+  </alias>
+</fontconfig>
diff --git a/nixpkgs/pkgs/data/fonts/comic-relief/default.nix b/nixpkgs/pkgs/data/fonts/comic-relief/default.nix
new file mode 100644
index 000000000000..2a1273214bd6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/comic-relief/default.nix
@@ -0,0 +1,40 @@
+{stdenv, fetchzip}:
+
+let
+  version = "1.1";
+in fetchzip rec {
+  name = "comic-relief-${version}";
+
+  url = "https://fontlibrary.org/assets/downloads/comic-relief/45c456b6db2aaf2f7f69ac66b5ac7239/comic-relief.zip";
+
+  postFetch = ''
+    mkdir -p $out/etc/fonts/conf.d
+    mkdir -p $out/share/doc/${name}
+    mkdir -p $out/share/fonts/truetype
+    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";
+    longDescription = ''
+      Comic Relief is a typeface designed to be metrically equivalent
+      to the popular Comic Sans MS. Comic Relief can be used in place
+      of Comic Sans MS without having to move, resize, or reset any
+      part of the copy. It contains all glyphs and characters
+      available in Comic Sans MS.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+
+    # Reduce the priority of this package. The intent is that if you
+    # also install the `corefonts` package, then you probably will not
+    # want to install the font alias of this package.
+    priority = 10;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/corefonts/default.nix b/nixpkgs/pkgs/data/fonts/corefonts/default.nix
new file mode 100644
index 000000000000..8c45c8139534
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/corefonts/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, fetchurl, cabextract }:
+
+let
+
+  fonts = [
+    {name = "andale";  sha256 = "0w7927hlwayqf3vvanf8f3qp2g1i404jzqvhp1z3mp0sjm1gw905";}
+    {name = "arial";   sha256 = "1xkqyivbyb3z9dcalzidf8m4npzfpls2g0kldyn8g73f2i6plac5";}
+    {name = "arialb";  sha256 = "1a60zqrg63kjnykh5hz7dbpzvx7lyivn3vbrp7jyv9d1nvzz09d4";}
+    {name = "comic";   sha256 = "0ki0rljjc1pxkbsxg515fwx15yc95bdyaksa3pjd89nyxzzg6vcw";}
+    {name = "courie";  sha256 = "111k3waxki9yyxpjwl2qrdkswvsd2dmvhbjmmrwyipam2s31sldv";}
+    {name = "georgi";  sha256 = "0083jcpd837j2c06kp1q8glfjn9k7z6vg3wi137savk0lv6psb1c";}
+    {name = "impact";  sha256 = "1yyc5z7zmm3s418hmrkmc8znc55afsrz5dgxblpn9n81fhxyyqb0";}
+    {name = "times";   sha256 = "1aq7z3l46vwgqljvq9zfgkii6aivy00z1529qbjkspggqrg5jmnv";}
+    {name = "trebuc";  sha256 = "1jfsgz80pvyqvpfpaiz5pd8zwlcn67rg2jgynjwf22sip2dhssas";}
+    {name = "webdin";  sha256 = "0nnp2znmnmx87ijq9zma0vl0hd46npx38p0cc6lgp00hpid5nnb4";}
+    {name = "verdan";  sha256 = "15mdbbfqbyp25a6ynik3rck3m3mg44plwrj79rwncc9nbqjn3jy1";}
+    {name = "wd97vwr"; sha256 = "1lmkh3zb6xv47k0z2mcwk3vk8jff9m845c9igxm14bbvs6k2c4gn";}
+  ];
+
+  eula = fetchurl {
+    url = http://corefonts.sourceforge.net/eula.htm;
+    sha256 = "1aqbcnl032g2hd7iy56cs022g47scb0jxxp3mm206x1yqc90vs1c";
+  };
+
+in
+
+stdenv.mkDerivation {
+  name = "corefonts-1";
+
+  exes = map ({name, sha256}: fetchurl {
+    url = "mirror://sourceforge/corefonts/${name}32.exe";
+    inherit sha256;
+  }) fonts;
+
+  nativeBuildInputs = [cabextract];
+
+  buildCommand = ''
+    for i in $exes; do
+        cabextract --lowercase $i
+    done
+
+    cabextract --lowercase viewer1.cab
+
+    fontDir=$out/share/fonts/truetype
+    mkdir -p $fontDir
+    cp *.ttf $fontDir
+
+    # Also put the EULA there to be on the safe side.
+    cp ${eula} $fontDir/eula.html
+
+    # Set up no-op font configs to override any aliases set up by
+    # other packages.
+    mkdir -p $out/etc/fonts/conf.d
+    for name in Andale-Mono Arial-Black Arial Comic-Sans-MS \
+                Courier-New Georgia Impact Times-New-Roman \
+                Trebuchet Verdana Webdings ; do
+      substitute ${./no-op.conf} $out/etc/fonts/conf.d/30-''${name,,}.conf \
+        --subst-var-by fontname "''${name//-/ }"
+    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";
+    platforms = platforms.all;
+    license = licenses.unfreeRedistributable;
+    # Set a non-zero priority to allow easy overriding of the
+    # fontconfig configuration files.
+    priority = 5;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/corefonts/no-op.conf b/nixpkgs/pkgs/data/fonts/corefonts/no-op.conf
new file mode 100644
index 000000000000..503e62cfa295
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/corefonts/no-op.conf
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+  <!-- This configuation is intentionally left empty in order to
+       override any other font package that may wish to set up an
+       alias for the Microsoft @fontname@ font. If you actually do
+       want to have the alias then please change the priority of that
+       package; see the Nix manual page for nix-env for details. -->
+</fontconfig>
diff --git a/nixpkgs/pkgs/data/fonts/crimson/default.nix b/nixpkgs/pkgs/data/fonts/crimson/default.nix
new file mode 100644
index 000000000000..e96c13b7822b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/crimson/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchzip}:
+
+let
+  version = "2014.10";
+in fetchzip rec {
+  name = "crimson-${version}";
+
+  url = "https://github.com/skosch/Crimson/archive/fonts-october2014.tar.gz";
+
+  postFetch = ''
+    tar -xzvf $downloadedFile --strip-components=1
+
+    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";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/culmus/default.nix b/nixpkgs/pkgs/data/fonts/culmus/default.nix
new file mode 100644
index 000000000000..ee41d9b88fbd
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/culmus/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "0.133";
+in fetchzip {
+  name = "culmus-${version}";
+
+  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 = "1jxg2wf4kwasp5cia00nki2lrcdnhsyh4yy7d05l0a9bim5hq2lr";
+
+  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.";
+    platforms = stdenv.lib.platforms.all;
+    license = stdenv.lib.licenses.gpl2;
+    homepage = http://culmus.sourceforge.net/;
+    downloadPage = http://culmus.sourceforge.net/download.html;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/dejavu-fonts/default.nix b/nixpkgs/pkgs/data/fonts/dejavu-fonts/default.nix
new file mode 100644
index 000000000000..fa877ea6ed53
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dejavu-fonts/default.nix
@@ -0,0 +1,75 @@
+{ fetchFromGitHub, stdenv, fontforge, perl, perlPackages }:
+
+let
+  version = "2.37";
+
+  meta = {
+    description = "A typeface family based on the Bitstream Vera fonts";
+    longDescription = ''
+      The DejaVu fonts are TrueType fonts based on the BitStream Vera fonts,
+      providing more styles and with greater coverage of Unicode.
+
+      This package includes DejaVu Sans, DejaVu Serif, DejaVu Sans Mono, and
+      the TeX Gyre DejaVu Math font.
+    '';
+    homepage = http://dejavu-fonts.org/wiki/Main_Page;
+
+    # Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved.
+    # Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
+    # DejaVu changes are in public domain
+    # See http://dejavu-fonts.org/wiki/License for details
+    license = stdenv.lib.licenses.free;
+
+    platforms = stdenv.lib.platforms.all;
+  };
+
+  full-ttf = stdenv.mkDerivation {
+    name = "dejavu-fonts-full-${version}";
+    nativeBuildInputs = [fontforge perl perlPackages.IOString perlPackages.FontTTF];
+
+    src = fetchFromGitHub {
+      owner = "dejavu-fonts";
+      repo = "dejavu-fonts";
+      rev = "version_${stdenv.lib.replaceStrings ["."] ["_"] version}";
+      sha256 = "1xknlg2h287dx34v2n5r33bpcl4biqf0cv7nak657rjki7s0k4bk";
+    };
+
+    buildFlags = "full-ttf";
+
+    preBuild = "patchShebangs scripts";
+
+    installPhase = ''
+      mkdir -p $out/share/fonts/truetype
+      cp build/*.ttf $out/share/fonts/truetype/
+    '';
+
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+    outputHash = "1cxprzsr826d888ha4zxx28i9jfj1k74q9kfv3v2rf603460iha9";
+    inherit meta;
+  };
+
+  minimal = stdenv.mkDerivation {
+    name = "dejavu-fonts-minimal-${version}";
+    buildCommand = ''
+      install -D ${full-ttf}/share/fonts/truetype/DejaVuSans.ttf $out/share/fonts/truetype/DejaVuSans.ttf
+    '';
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+    outputHash = "0ybsynp9904vmd3qv5b438swhx43m5q6gfih3i32iw33rks8nkpj";
+    inherit meta;
+  };
+in stdenv.mkDerivation {
+  name = "dejavu-fonts-${version}";
+  buildCommand = ''
+    mkdir -p $out/share/fonts/truetype
+    cp ${full-ttf}/share/fonts/truetype/*.ttf $out/share/fonts/truetype/
+    ln -s --relative --force --target-directory=$out/share/fonts/truetype ${minimal}/share/fonts/truetype/DejaVuSans.ttf
+  '';
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "15l93xm9mg2ziaxv4nqy2a4jaz54d05xf0hfz1h84bclzb882llh";
+  inherit meta;
+
+  passthru.minimal = minimal;
+}
diff --git a/nixpkgs/pkgs/data/fonts/dina-pcf/default.nix b/nixpkgs/pkgs/data/fonts/dina-pcf/default.nix
new file mode 100644
index 000000000000..975bbc1749a7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dina-pcf/default.nix
@@ -0,0 +1,65 @@
+{stdenv, fetchurl, unzip, bdftopcf, mkfontdir, mkfontscale}:
+
+stdenv.mkDerivation rec {
+  version = "2.92";
+  name = "dina-font-pcf-${version}";
+
+  src = fetchurl {
+    url = "http://www.donationcoder.com/Software/Jibz/Dina/downloads/Dina.zip";
+    sha256 = "1kq86lbxxgik82aywwhawmj80vsbz3hfhdyhicnlv9km7yjvnl8z";
+  };
+
+  nativeBuildInputs = [ unzip bdftopcf mkfontdir mkfontscale ];
+
+  dontBuild = true;
+  patchPhase = "sed -i 's/microsoft-cp1252/ISO8859-1/' *.bdf";
+  installPhase = ''
+    _get_font_size() {
+      _pt=$\{1%.bdf}
+      _pt=$\{_pt#*-}
+      echo $_pt
+    }
+
+    for i in Dina_i400-*.bdf; do
+        bdftopcf -t -o DinaItalic$(_get_font_size $i).pcf $i
+    done
+    for i in Dina_i700-*.bdf; do
+        bdftopcf -t -o DinaBoldItalic$(_get_font_size $i).pcf $i
+    done
+    for i in Dina_r400-*.bdf; do
+        bdftopcf -t -o DinaMedium$(_get_font_size $i).pcf $i
+    done
+    for i in Dina_r700-*.bdf; do
+        bdftopcf -t -o DinaBold$(_get_font_size $i).pcf $i
+    done
+    gzip -n *.pcf
+
+    fontDir="$out/share/fonts/misc"
+    mkdir -p "$fontDir"
+    mv *.pcf.gz "$fontDir"
+
+    cd "$fontDir"
+    mkfontdir
+    mkfontscale
+  '';
+
+  preferLocalBuild = true;
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "0v0qn5zwq4j1yx53ypg6w6mqx6dk8l1xix0188b0k4z3ivgnflyb";
+
+  meta = with stdenv.lib; {
+    description = "A monospace bitmap font aimed at programmers";
+    longDescription = ''
+      Dina is a monospace bitmap font, primarily aimed at programmers. It is
+      relatively compact to allow a lot of code on screen, while (hopefully)
+      clear enough to remain readable even at high resolutions.
+    '';
+    homepage = https://www.donationcoder.com/Software/Jibz/Dina/;
+    downloadPage = https://www.donationcoder.com/Software/Jibz/Dina/;
+    license = licenses.free;
+    maintainers = [ maintainers.prikhi ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/dina/default.nix b/nixpkgs/pkgs/data/fonts/dina/default.nix
new file mode 100644
index 000000000000..66feaf0ff544
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dina/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "2.92";
+in fetchzip rec {
+  name = "dina-font-${version}";
+
+  url = "http://www.donationcoder.com/Software/Jibz/Dina/downloads/Dina.zip";
+
+  postFetch = ''
+    mkdir -p $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 = ''
+      Dina is a monospace bitmap font, primarily aimed at programmers. It is
+      relatively compact to allow a lot of code on screen, while (hopefully)
+      clear enough to remain readable even at high resolutions.
+    '';
+    homepage = https://www.donationcoder.com/Software/Jibz/Dina/;
+    downloadPage = https://www.donationcoder.com/Software/Jibz/Dina/;
+    license = licenses.free;
+    maintainers = [ maintainers.prikhi ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/dosemu-fonts/default.nix b/nixpkgs/pkgs/data/fonts/dosemu-fonts/default.nix
new file mode 100644
index 000000000000..f564507c777c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dosemu-fonts/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, bdftopcf, mkfontdir, mkfontscale }:
+
+stdenv.mkDerivation rec {
+  name = "dosemu-fonts-${version}";
+  version = "1.4.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/dosemu/dosemu-${version}.tgz";
+    sha256 = "0l1zwmw42mpakjrzmbygshcg2qzq9mv8lx42738rz3j9hrqzg4pw";
+  };
+
+  buildCommand = ''
+    tar xf "$src" --anchored --wildcards '*/etc/*.bdf' '*/etc/dosemu.alias'
+    fontPath="$out/share/fonts/X11/misc/dosemu"
+    mkdir -p "$fontPath"
+    for i in */etc/*.bdf; do
+      fontOut="$out/share/fonts/X11/misc/dosemu/$(basename "$i" .bdf).pcf.gz"
+      echo -n "Installing font $fontOut..." >&2
+      ${bdftopcf}/bin/bdftopcf $i | gzip -c -9 -n > "$fontOut"
+      echo " done." >&2
+    done
+    cp */etc/dosemu.alias "$fontPath/fonts.alias"
+    cd "$fontPath"
+    ${mkfontdir}/bin/mkfontdir
+    ${mkfontscale}/bin/mkfontscale
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1miqv0ral5vazx721wildjlzvji5r7pbgm39c0cpj5ywafaikxr8";
+
+  meta = {
+    description = "Various fonts from the DOSEmu project";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/dosis/default.nix b/nixpkgs/pkgs/data/fonts/dosis/default.nix
new file mode 100644
index 000000000000..01157e8b7e4c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dosis/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchzip}:
+
+fetchzip rec {
+  name = "dosis-1.007";
+
+  url = https://github.com/impallari/Dosis/archive/12df1e13e58768f20e0d48ff15651b703f9dd9dc.zip;
+
+  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 = ''
+      Dosis is a very simple, rounded, sans serif family.
+
+      The lighter weights are minimalist. The bolder weights have more
+      personality. The medium weight is nice and balanced. The overall result is
+      a family that's clean and modern, and can express a wide range of
+      voices & feelings.
+
+      It comes in 7 incremental weights: ExtraLight, Light, Book, Medium,
+      Semibold, Bold & ExtraBold
+    '';
+    homepage = http://www.impallari.com/dosis;
+    license = licenses.ofl;
+    maintainers = with maintainers; [ cmfwyp ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/doulos-sil/default.nix b/nixpkgs/pkgs/data/fonts/doulos-sil/default.nix
new file mode 100644
index 000000000000..324f6f63e556
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/doulos-sil/default.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchzip}:
+
+let
+  version = "5.000";
+in
+  fetchzip rec {
+    name = "doulos-sil-${version}";
+
+    url = "https://software.sil.org/downloads/r/doulos/DoulosSIL-${version}.zip";
+
+    postFetch = ''
+      mkdir -p $out/share/{doc,fonts}
+      unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+      unzip -j $downloadedFile \*OFL.txt \*OFL-FAQ.txt \*README.txt \*FONTLOG.txt -d "$out/share/doc/${name}"
+    '';
+
+    sha256 = "04a9cr7jbw7d8llcj8xsqp9rp8w6gcgbd9sdwvi02kz7jhqa0vad";
+
+    meta = with stdenv.lib; {
+      homepage = https://software.sil.org/doulos;
+      description = "A font that provides complete support for the International Phonetic Alphabet";
+      longDescription = ''
+      This Doulos SIL font is essentially the same design as the SIL Doulos font first released by SIL in 1992. The design has been changed from the original in that it has been scaled down to be a better match with contemporary digital fonts, such as Times New Roman®. This current release is a regular typeface, with no bold or italic version available or planned. It is intended for use alongside other Times-like fonts where a range of styles (italic, bold) are not needed. Therefore, just one font is included in the Doulos SIL release: Doulos SIL Regular.
+
+      The goal for this product was to provide a single Unicode-based font family that would contain a comprehensive inventory of glyphs needed for almost any Roman- or Cyrillic-based writing system, whether used for phonetic or orthographic needs. In addition, there is provision for other characters and symbols useful to linguists. This font makes use of state-of-the-art font technologies to support complex typographic issues, such as the need to position arbitrary combinations of base glyphs and diacritics optimally.
+      '';
+      license = licenses.ofl;
+      platforms = platforms.all;
+      maintainers = [ maintainers.f--t ];
+    };
+  }
diff --git a/nixpkgs/pkgs/data/fonts/droid/default.nix b/nixpkgs/pkgs/data/fonts/droid/default.nix
new file mode 100644
index 000000000000..c2a4868a091c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/droid/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "font-droid-${version}";
+  version = "2015-12-09";
+  at = "2776afefa9e0829076cd15fdc41e7950e2ffab82";
+
+  srcs = [
+    (fetchurl {
+      url = "https://github.com/google/fonts/raw/${at}/apache/droidsans/DroidSans.ttf";
+      sha256 = "1yml18dm86rrkihb2zz0ng8b1j2bb14hxc1d3hp0998vsr9s1w4h";
+    })
+    (fetchurl {
+      url = "https://github.com/google/fonts/raw/${at}/apache/droidsans/DroidSans-Bold.ttf";
+      sha256 = "1z61hz92d3l1pawmbc6iwi689v8rr0xlkx59pl89m1g9aampdrmh";
+    })
+    (fetchurl {
+      url = "https://github.com/google/fonts/raw/${at}/apache/droidsansmono/DroidSansMono.ttf";
+      sha256 = "0rzspxg457q4f4cp2wz93py13lbnqbhf12q4mzgy6j30njnjwl9h";
+    })
+    (fetchurl {
+      url = "https://github.com/google/fonts/raw/${at}/apache/droidserif/DroidSerif.ttf";
+      sha256 = "1y7jzi7dz8j1yp8dxbmbvd6dpsck2grk3q1kd5rl7f31vlq5prj1";
+    })
+    (fetchurl {
+      url = "https://github.com/google/fonts/raw/${at}/apache/droidserif/DroidSerif-Bold.ttf";
+      sha256 = "1c61b423sn5nnr2966jdzq6fy8pw4kg79cr3nbby83jsly389f9b";
+    })
+    (fetchurl {
+      url = "https://github.com/google/fonts/raw/${at}/apache/droidserif/DroidSerif-Italic.ttf";
+      sha256 = "1bvrilgi0s72hiiv32hlxnzazslh3rbz8wgmsln0i9mnk7jr9bs0";
+    })
+    (fetchurl {
+      url = "https://github.com/google/fonts/raw/${at}/apache/droidserif/DroidSerif-BoldItalic.ttf";
+      sha256 = "052vlkmhy9c5nyk4byvhzya3y57fb09lqxd6spar6adf9ajbylgi";
+    })
+  ];
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  sourceRoot = "./";
+
+  unpackCmd = ''
+    ttfName=$(basename $(stripHash $curSrc))
+    cp $curSrc ./$ttfName
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/droid
+    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;
+    license = stdenv.lib.licenses.asl20;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/eb-garamond/default.nix b/nixpkgs/pkgs/data/fonts/eb-garamond/default.nix
new file mode 100644
index 000000000000..53a5d9f73cc1
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/eb-garamond/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "0.016";
+in fetchzip rec {
+  name = "eb-garamond-${version}";
+
+  url = "https://bitbucket.org/georgd/eb-garamond/downloads/EBGaramond-${version}.zip";
+
+  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";
+    maintainers = with maintainers; [ relrod rycee ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix b/nixpkgs/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix
new file mode 100644
index 000000000000..10305a8c2d2b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "3.1.1";
+in fetchzip {
+  name = "emacs-all-the-icons-fonts-${version}";
+
+  url = "https://github.com/domtronn/all-the-icons.el/archive/${version}.zip";
+
+  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 = ''
+      The emacs package all-the-icons provides icons to improve
+      presentation of information in emacs. This package provides
+      the fonts needed to make the package work properly.
+    '';
+    homepage = https://github.com/domtronn/all-the-icons.el;
+
+    /*
+    The fonts come under a mixture of licenses - the MIT license,
+    SIL OFL license, and Apache license v2.0. See the GitHub page
+    for further information.
+    */
+    license = licenses.free;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ rlupton20 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/emojione/default.nix b/nixpkgs/pkgs/data/fonts/emojione/default.nix
new file mode 100644
index 000000000000..9d4c1e22e145
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/emojione/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, inkscape, imagemagick, potrace, svgo, scfbuild }:
+
+stdenv.mkDerivation rec {
+  name = "emojione-${version}";
+  version = "1.3";
+
+  src = fetchFromGitHub {
+    owner = "eosrei";
+    repo = "emojione-color-font";
+    rev = "v${version}";
+    sha256 = "0hgs661g1j91lkafhrfx5ix7ymarh5bzcx34r2id6jl7dc3j41l3";
+  };
+
+  preBuild = ''
+    sed -i 's,SCFBUILD :=.*,SCFBUILD := scfbuild,' Makefile
+    # Shut up inkscape's warnings
+    export HOME="$NIX_BUILD_ROOT"
+  '';
+
+  nativeBuildInputs = [ inkscape imagemagick potrace svgo scfbuild ];
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    install -Dm755 build/EmojiOneColor-SVGinOT.ttf $out/share/fonts/truetype/EmojiOneColor-SVGinOT.ttf
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Open source emoji set";
+    homepage = http://emojione.com/;
+    license = licenses.cc-by-40;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/encode-sans/default.nix b/nixpkgs/pkgs/data/fonts/encode-sans/default.nix
new file mode 100644
index 000000000000..96d64e138935
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/encode-sans/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchzip }:
+
+fetchzip rec {
+  name = "encode-sans-1.002";
+
+  url = https://github.com/impallari/Encode-Sans/archive/11162b46892d20f55bd42a00b48cbf06b5871f75.zip;
+
+  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 = ''
+      The Encode Sans family is a versatile workhorse. Featuring a huge range of
+      weights and widths, it's ready for all kind of typographic challenges. It
+      also includes Tabular and Old Style figures, as well as full set of Small
+      Caps and other Open Type features.
+
+      Designed by Pablo Impallari and Andres Torresi.
+    '';
+    homepage = http://www.impallari.com/projects/overview/encode;
+    license = licenses.ofl;
+    maintainers = with maintainers; [ cmfwyp ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/envypn-font/default.nix b/nixpkgs/pkgs/data/fonts/envypn-font/default.nix
new file mode 100644
index 000000000000..0e31231d05fc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/envypn-font/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, mkfontdir, mkfontscale }:
+
+stdenv.mkDerivation rec {
+  name = "envypn-font-1.7.1";
+
+  src = fetchurl {
+    url = "https://ywstd.fr/files/p/envypn-font/envypn-font-1.7.1.tar.gz";
+    sha256 = "bda67b6bc6d5d871a4d46565d4126729dfb8a0de9611dae6c68132a7b7db1270";
+  };
+
+  nativeBuildInputs = [ mkfontdir mkfontscale ];
+
+  unpackPhase = ''
+    tar -xzf $src --strip-components=1
+  '';
+
+  installPhase = ''
+    # install the pcf fonts (for xorg applications)
+    fontDir="$out/share/fonts/envypn"
+    mkdir -p "$fontDir"
+    mv *.pcf.gz "$fontDir"
+
+    cd "$fontDir"
+    mkfontdir
+    mkfontscale
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "04sjxfrlvjc2f0679cy4w366mpzbn3fp6gnrjb8vy12vjd1ffnc1";
+
+  meta = with stdenv.lib; {
+    description = ''
+      Readable bitmap font inspired by Envy Code R
+    '';
+    homepage = "http://ywstd.fr/p/pj/#envypn";
+    license = licenses.miros;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/et-book/default.nix b/nixpkgs/pkgs/data/fonts/et-book/default.nix
new file mode 100644
index 000000000000..58586ba7db65
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/et-book/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub }:
+
+fetchFromGitHub rec {
+  rev = "7e8f02dadcc23ba42b491b39e5bdf16e7b383031";
+  name = "et-book-${builtins.substring 0 6 rev}";
+  owner = "edwardtufte";
+  repo = "et-book";
+  sha256 = "1bfb1l8k7fzgk2l8cikiyfn5x9m0fiwrnsbc1483p8w3qp58s5n2";
+
+  postFetch = ''
+    tar -xzf $downloadedFile
+    mkdir -p $out/share/fonts/truetype
+    cp -t $out/share/fonts/truetype et-book-${rev}/source/4-ttf/*.ttf
+  '';
+
+  meta = with stdenv.lib; {
+    description = "The typeface used in Edward Tufte’s books.";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ jethro ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/eunomia/default.nix b/nixpkgs/pkgs/data/fonts/eunomia/default.nix
new file mode 100644
index 000000000000..56fa718f8670
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/eunomia/default.nix
@@ -0,0 +1,27 @@
+{ stdenv,  fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "200";
+  pname = "eunomia";
+in
+
+fetchzip rec {
+  name = "${pname}-font-${majorVersion}.${minorVersion}";
+
+  url = "http://dotcolon.net/DL/font/${pname}_${majorVersion}${minorVersion}.zip";
+  sha256 = "0lpmczs1d4p9dy4s0dnvv7bl5cd0f6yzyasfrkxij5s86glps38b";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype/${pname}
+    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://dotcolon.net/font/eunomia/;
+    description = "A futuristic decorative font.";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/f5_6/default.nix b/nixpkgs/pkgs/data/fonts/f5_6/default.nix
new file mode 100644
index 000000000000..25cab717cee9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/f5_6/default.nix
@@ -0,0 +1,27 @@
+{ stdenv,  fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "110";
+  pname = "f5_6";
+in
+
+fetchzip rec {
+  name = "${pname}-font-${majorVersion}.${minorVersion}";
+
+  url = "http://dotcolon.net/DL/font/${pname}_${majorVersion}${minorVersion}.zip";
+  sha256 = "04p6lccd26rhjbpq3ddxi5vkk3lk8lqbpnk8lakjzixp3fgdqpp4";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype/${pname}
+    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://dotcolon.net/font/${pname}/";
+    description = "A weighted decorative font.";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/fantasque-sans-mono/default.nix b/nixpkgs/pkgs/data/fonts/fantasque-sans-mono/default.nix
new file mode 100644
index 000000000000..7d05482ef5ff
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fantasque-sans-mono/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchzip }:
+
+let
+
+  version = "1.7.2";
+
+in
+
+fetchzip rec {
+  name = "fantasque-sans-mono-${version}";
+
+  url = "https://github.com/belluzj/fantasque-sans/releases/download/v${version}/FantasqueSansMono-Normal.zip";
+
+  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}
+  '';
+
+  sha256 = "1fwvbqfrgb539xybwdawvwa8cg4f215kw905rgl9a6p0iwa1nxqk";
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/belluzj/fantasque-sans;
+    description = "A font family with a great monospaced variant for programmers";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.rycee ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ferrum/default.nix b/nixpkgs/pkgs/data/fonts/ferrum/default.nix
new file mode 100644
index 000000000000..bbe185bd8486
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ferrum/default.nix
@@ -0,0 +1,27 @@
+{ stdenv,  fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "200";
+  pname = "ferrum";
+in
+
+fetchzip rec {
+  name = "${pname}-font-${majorVersion}.${minorVersion}";
+
+  url = "http://dotcolon.net/DL/font/${pname}.zip";
+  sha256 = "1w1b3ch7ik4264f05lxms01ls0aargvlx770a9szm682dfmizn8w";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype/${pname}
+    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://dotcolon.net/font/${pname}/";
+    description = "A decorative font.";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.cc0;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/fira-code/default.nix b/nixpkgs/pkgs/data/fonts/fira-code/default.nix
new file mode 100644
index 000000000000..b0b58b0ebfcc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fira-code/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "1.206";
+in fetchzip {
+  name = "fira-code-${version}";
+
+  url = "https://github.com/tonsky/FiraCode/releases/download/${version}/FiraCode_${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "0074d8q4m802f5yms8yxdx4rdz5xnpgv1w5hs330zg2p9ksicgzy";
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/tonsky/FiraCode;
+    description = "Monospace font with programming ligatures";
+    longDescription = ''
+      Fira Code is a monospace font extending the Fira Mono font with
+      a set of ligatures for common programming multi-character
+      combinations.
+    '';
+    license = licenses.ofl;
+    maintainers = [ maintainers.rycee ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/fira-code/symbols.nix b/nixpkgs/pkgs/data/fonts/fira-code/symbols.nix
new file mode 100644
index 000000000000..624616bdd580
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fira-code/symbols.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchzip }:
+
+fetchzip {
+  name = "fira-code-symbols-20160811";
+
+  url = "https://github.com/tonsky/FiraCode/files/412440/FiraCode-Regular-Symbol.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "19krsp22rin74ix0i19v4bh1c965g18xkmz1n55h6n6qimisnbkm";
+
+  meta = with stdenv.lib; {
+    description = "FiraCode unicode ligature glyphs in private use area";
+    longDescription = ''
+      FiraCode uses ligatures, which some editors don’t support.
+      This addition adds them as glyphs to the private unicode use area.
+      See https://github.com/tonsky/FiraCode/issues/211.
+    '';
+    license = licenses.ofl;
+    maintainers = [ maintainers.Profpatsch ];
+    homepage = "https://github.com/tonsky/FiraCode/issues/211#issuecomment-239058632";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/fira-mono/default.nix b/nixpkgs/pkgs/data/fonts/fira-mono/default.nix
new file mode 100644
index 000000000000..2f50a83a70b4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fira-mono/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchzip }:
+
+fetchzip {
+  name = "fira-mono-3.206";
+
+  url = https://github.com/mozilla/Fira/archive/4.106.zip;
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile Fira-4.106/otf/FiraMono\*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "1ci3fxhdwabvfj4nl16pwcgqnh7s2slp8vblribk8zkpx8cbp1dj";
+
+  meta = with stdenv.lib; {
+    homepage = https://mozilla.github.io/Fira/;
+    description = "Monospace font for Firefox OS";
+    longDescription = ''
+      Fira Mono is a monospace font designed by Erik Spiekermann,
+      Ralph du Carrois, Anja Meiners and Botio Nikoltchev of Carrois
+      Type Design for Mozilla Firefox OS. Available in Regular,
+      Medium, and Bold.
+    '';
+    license = licenses.ofl;
+    maintainers = [ maintainers.rycee ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/fira/default.nix b/nixpkgs/pkgs/data/fonts/fira/default.nix
new file mode 100644
index 000000000000..ce6e011d8a65
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fira/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchzip }:
+
+fetchzip rec {
+  name = "fira-4.106";
+
+  url = https://github.com/mozilla/Fira/archive/4.106.zip;
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile Fira-4.106/otf/FiraSans\*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "0c97nmihcq0ki7ywj8zn048a2bgrszc61lb9p0djfi65ar52jab4";
+
+  meta = with stdenv.lib; {
+    homepage = https://mozilla.github.io/Fira/;
+    description = "Sans-serif font for Firefox OS";
+    longDescription = ''
+      Fira Sans is a sans-serif font designed by Erik Spiekermann,
+      Ralph du Carrois, Anja Meiners and Botio Nikoltchev of Carrois
+      Type Design for Mozilla Firefox OS.  It is closely related to
+      Spiekermann's FF Meta typeface.  Available in Two, Four, Eight,
+      Hair, Thin, Ultra Light, Extra Light, Light, Book, Regular,
+      Medium, Semi Bold, Bold, Extra Bold, Heavy weights with
+      corresponding italic versions.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/fixedsys-excelsior/default.nix b/nixpkgs/pkgs/data/fonts/fixedsys-excelsior/default.nix
new file mode 100644
index 000000000000..b0c481dfcb5c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fixedsys-excelsior/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl } :
+
+let 
+  major = "3";
+  minor = "00";
+  version = "${major}.${minor}";
+
+in
+
+stdenv.mkDerivation rec {
+  name = "fixedsys-excelsior-${version}";
+
+  src = fetchurl {
+    url = http://www.fixedsysexcelsior.com/fonts/FSEX300.ttf;
+    sha256 = "6ee0f3573bc5e33e93b616ef6282f49bc0e227a31aa753ac76ed2e3f3d02056d";
+  };
+
+  phases = [ "installPhase" ];
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype/
+    cp $src $out/share/fonts/truetype/${name}.ttf
+  '';
+
+  outputHashMode = "recursive";
+
+  outputHashAlgo = "sha256";
+
+  outputHash = "32d6f07f1ff08c764357f8478892b2ba5ade23427af99759f34a0ba24bcd2e37";
+  
+  meta = {
+    description = "Pan-unicode version of Fixedsys, a classic DOS font.";
+    homepage = http://www.fixedsysexcelsior.com/;
+    platforms = stdenv.lib.platforms.all;
+    license = stdenv.lib.licenses.publicDomain;
+    maintainers = [ stdenv.lib.maintainers.ninjatrappeur ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/font-awesome-4/default.nix b/nixpkgs/pkgs/data/fonts/font-awesome-4/default.nix
new file mode 100644
index 000000000000..34548b972442
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/font-awesome-4/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "4.7.0";
+in fetchzip rec {
+  name = "font-awesome-${version}";
+
+  url = "https://github.com/FortAwesome/Font-Awesome/archive/v${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile Font-Awesome-${version}/fonts/fontawesome-webfont.ttf -d $out/share/fonts/truetype
+  '';
+
+  sha256 = "0w8y7gxbqiy444phg4jl89kc5hq3jffbkhab8p110qy9jx8s106s";
+
+  meta = with stdenv.lib; {
+    description = "Font Awesome - TTF font";
+    longDescription = ''
+      Font Awesome gives you scalable vector icons that can instantly be customized.
+      This package includes only the TTF font. For full CSS etc. see the project website.
+    '';
+    homepage = http://fortawesome.github.io/Font-Awesome/;
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ abaldeau ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/font-awesome-5/default.nix b/nixpkgs/pkgs/data/fonts/font-awesome-5/default.nix
new file mode 100644
index 000000000000..aea809c04ecd
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/font-awesome-5/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "5.5.0";
+in fetchzip rec {
+  name = "font-awesome-${version}";
+
+  url = "https://github.com/FortAwesome/Font-Awesome/archive/${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile "Font-Awesome-${version}/use-on-desktop/Font Awesome 5 Brands-Regular-400.otf" -d $out/share/fonts/opentype
+    unzip -j $downloadedFile "Font-Awesome-${version}/use-on-desktop/Font Awesome 5 Free-Regular-400.otf" -d $out/share/fonts/opentype
+    unzip -j $downloadedFile "Font-Awesome-${version}/use-on-desktop/Font Awesome 5 Free-Solid-900.otf" -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "1drjc40glfqhwmfn3s4gz8hz1x0ncrwdr9n1i25m1l7pvsk26f5f";
+
+  meta = with stdenv.lib; {
+    description = "Font Awesome - OTF font";
+    longDescription = ''
+      Font Awesome gives you scalable vector icons that can instantly be customized.
+      This package includes only the OTF font. For full CSS etc. see the project website.
+    '';
+    homepage = http://fortawesome.github.io/Font-Awesome/;
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ abaldeau ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/fontconfig-penultimate/default.nix b/nixpkgs/pkgs/data/fonts/fontconfig-penultimate/default.nix
new file mode 100644
index 000000000000..e1be0da428a8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fontconfig-penultimate/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchzip
+, version ? "0.3.5"
+, sha256 ? "1gfgl7qimp76q4z0nv55vv57yfs4kscdr329np701k0xnhncwvrk"
+}:
+
+fetchzip {
+  name = "fontconfig-penultimate-${version}";
+
+  url = "https://github.com/ttuegel/fontconfig-penultimate/archive/${version}.zip";
+  inherit sha256;
+
+  postFetch = ''
+    mkdir -p $out/etc/fonts/conf.d
+    unzip -j $downloadedFile \*.conf -d $out/etc/fonts/conf.d
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/ttuegel/fontconfig-penultimate;
+    description = "Sensible defaults for Fontconfig";
+    license = licenses.asl20;
+    maintainers = [ maintainers.ttuegel ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/freefont-ttf/default.nix b/nixpkgs/pkgs/data/fonts/freefont-ttf/default.nix
new file mode 100644
index 000000000000..39118716f6f9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/freefont-ttf/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchzip}:
+
+fetchzip rec {
+  name = "freefont-ttf-20120503";
+
+  url = "mirror://gnu/freefont/${name}.zip";
+
+  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 = ''
+      The GNU Freefont project aims to provide a set of free outline
+      (PostScript Type0, TrueType, OpenType...) fonts covering the ISO
+      10646/Unicode UCS (Universal Character Set).
+    '';
+    homepage = https://www.gnu.org/software/freefont/;
+    license = stdenv.lib.licenses.gpl3Plus;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/gdouros/default.nix b/nixpkgs/pkgs/data/fonts/gdouros/default.nix
new file mode 100644
index 000000000000..359074099ba1
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gdouros/default.nix
@@ -0,0 +1,51 @@
+{stdenv, fetchzip, lib}:
+
+let
+  fonts = {
+    symbola = { version = "9.17"; file = "Symbola.zip"; sha256 = "13z18lxx0py54nns61ihgxacpf1lg9s7g2sbpbnxpllqw7j73iq2";
+                description = "Basic Latin, Greek, Cyrillic and many Symbol blocks of Unicode"; };
+    aegyptus = { version = "6.17"; file = "Aegyptus.zip"; sha256 = "19rkf89msqb076qjdfa75pqrx35c3slj64vxw08zqdvyavq7jc79";
+                 description = "Egyptian Hieroglyphs, Coptic, Meroitic"; };
+    akkadian = { version = "7.17"; file = "AkkadianAssyrian.zip"; sha256 = "1xw2flrwb5r89sk7jd195v3svsb21brf1li2i3pdjcfqxfp5m0g7";
+                 description = "Sumero-Akkadian Cuneiform"; };
+    anatolian = { version = "5.17"; file = "Anatolian.zip"; sha256 = "0dqcyjakc4fy076pjplm6psl8drpwxiwyq97xrf6a3qa098gc0qc";
+                  description = "Anatolian Hieroglyphs"; };
+    maya = { version = "4.17"; file = "Maya.zip"; sha256 = "17s5c23wpqrcq5h6pgssbmzxiv4jvhdh2ssr99j9q6j32a51h9gh";
+             description = "Maya Hieroglyphs"; };
+    unidings = { version = "9.17"; file = "Unidings.zip"; sha256 = "0nzw8mrhk0hbjnl2cgi31b00vmi785win86kiz9d2yzdfz1is6sk";
+                 description = "Glyphs and Icons for blocks of The Unicode Standard"; };
+    musica = { version = "3.17"; file = "Musica.zip"; sha256 = "0mnv61dxzs2npvxgs5l9q81q19xzzi1sn53x5qwpiirkmi6bg5y6";
+               description = "Musical Notation"; };
+    analecta = { version = "5.17"; file = "Analecta.zip"; sha256 = "13npnfscd9mz6vf89qxxbj383njf53a1smqjh0c1w2lvijgak3aj";
+                 description = "Coptic, Gothic, Deseret"; };
+    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}: 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;
+
+    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
diff --git a/nixpkgs/pkgs/data/fonts/gentium-book-basic/default.nix b/nixpkgs/pkgs/data/fonts/gentium-book-basic/default.nix
new file mode 100644
index 000000000000..9b626291c2cb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gentium-book-basic/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchzip }:
+
+let
+  major = "1";
+  minor = "102";
+  version = "${major}.${minor}";
+in fetchzip rec {
+  name = "gentium-book-basic-${version}";
+
+  url = "http://software.sil.org/downloads/r/gentium/GentiumBasic_${major}${minor}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -l $downloadedFile
+    unzip -j $downloadedFile \*.ttf                            -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*/FONTLOG.txt \*/GENTIUM-FAQ.txt -d $out/share/doc/${name}
+  '';
+
+  sha256 = "0598zr5f7d6ll48pbfbmmkrybhhdks9b2g3m2g67wm40070ffzmd";
+
+  meta = with stdenv.lib; {
+    homepage = https://software.sil.org/gentium/;
+    description = "A high-quality typeface family for Latin, Cyrillic, and Greek";
+    maintainers = with maintainers; [ ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/gentium/default.nix b/nixpkgs/pkgs/data/fonts/gentium/default.nix
new file mode 100644
index 000000000000..829eca8c06fc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gentium/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "5.000";
+in fetchzip rec {
+  name = "gentium-${version}";
+
+  url = "http://software.sil.org/downloads/r/gentium/GentiumPlus-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -l $downloadedFile
+    unzip -j $downloadedFile \*.ttf                                          -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*/FONTLOG.txt \*/GENTIUM-FAQ.txt \*/README.txt -d $out/share/doc/${name}
+    unzip -j $downloadedFile \*/documentation/\*                             -d $out/share/doc/${name}/documentation
+  '';
+
+  sha256 = "1qr2wjdmm93167b0w9cidlf3wwsyjx4838ja9jmm4jkyian5whhp";
+
+  meta = with stdenv.lib; {
+    homepage = https://software.sil.org/gentium/;
+    description = "A high-quality typeface family for Latin, Cyrillic, and Greek";
+    longDescription = ''
+      Gentium is a typeface family designed to enable the diverse ethnic groups
+      around the world who use the Latin, Cyrillic and Greek scripts to produce
+      readable, high-quality publications. It supports a wide range of Latin and
+      Cyrillic-based alphabets.
+
+      The design is intended to be highly readable, reasonably compact, and
+      visually attractive. The additional ‘extended’ Latin letters are designed
+      to naturally harmonize with the traditional 26 ones. Diacritics are
+      treated with careful thought and attention to their use. Gentium Plus also
+      supports both polytonic and monotonic Greek.
+
+      This package contains the regular and italic styles for the Gentium Plus
+      font family, along with documentation.
+    '';
+    downloadPage = "https://software.sil.org/gentium/download/";
+    maintainers = with maintainers; [ raskin rycee ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/go-font/default.nix b/nixpkgs/pkgs/data/fonts/go-font/default.nix
new file mode 100644
index 000000000000..a0af38cfd240
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/go-font/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchgit }:
+
+stdenv.mkDerivation rec {
+  name = "go-font-${version}";
+  version = "2017-03-30";
+
+  src = fetchgit {
+    url = "https://go.googlesource.com/image";
+    rev = "f03a046406d4d7fbfd4ed29f554da8f6114049fc";
+    sha256 = "1aq6mnjayks55gd9ahavk6jfydlq5lm4xm0xk4pd5sqa74p5p74d";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    mkdir -p $out/share/doc/go-font
+    cp font/gofont/ttfs/* $out/share/fonts/truetype
+    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";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ sternenseemann ];
+    platforms = stdenv.lib.platforms.all;
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/gohufont/default.nix b/nixpkgs/pkgs/data/fonts/gohufont/default.nix
new file mode 100644
index 000000000000..7936a216ada7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gohufont/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, fetchurl, mkfontdir, mkfontscale, bdf2psf }:
+
+stdenv.mkDerivation rec {
+  name = "gohufont-2.0";
+
+  pcf = fetchurl {
+    url = "http://font.gohu.org/gohufont-2.0.tar.gz";
+    sha256 = "0vi87fvj3m52piz2k6vqday03cah6zvz3dzrvjch3qjna1i1nb7s";
+  };
+
+  bdf = fetchurl {
+    url = "http://font.gohu.org/gohufont-bdf-2.0.tar.gz";
+    sha256 = "0rqqavhqbs7pajcblg92mjlz2dxk8b60vgdh271axz7kjs2wf9mr";
+  };
+
+  nativeBuildInputs = [ mkfontdir mkfontscale bdf2psf ];
+
+  unpackPhase = ''
+    mkdir pcf bdf
+    tar -xzf $pcf --strip-components=1 -C pcf
+    tar -xzf $bdf --strip-components=1 -C bdf
+  '';
+
+  installPhase = ''
+    # convert bdf to psf fonts
+    sourceRoot="$(pwd)"
+    mkdir psf
+
+    cd "${bdf2psf}/usr/share/bdf2psf"
+    for i in $sourceRoot/bdf/*.bdf; do
+      bdf2psf --fb $i standard.equivalents \
+                      ascii.set+useful.set+linux.set 512 \
+                      "$sourceRoot/psf/$(basename $i .bdf).psf"
+    done
+    cd "$sourceRoot"
+
+    # install the psf fonts (for the virtual console)
+    fontDir="$out/share/consolefonts"
+    mkdir -p "$fontDir"
+    mv psf/*.psf "$fontDir"
+
+
+    # install the pcf fonts (for xorg applications)
+    fontDir="$out/share/fonts/misc"
+    mkdir -p "$fontDir"
+    mv pcf/*.pcf.gz "$fontDir"
+
+    cd "$fontDir"
+    mkfontdir
+    mkfontscale
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "0msl5y9q6hjbhc85v121x1b1rhsh2rbqqy4k234i5mpp8l3087r7";
+
+  meta = with stdenv.lib; {
+    description = ''
+      A monospace bitmap font well suited for programming and terminal use
+    '';
+    homepage = http://font.gohu.org/;
+    license = licenses.wtfpl;
+    maintainers = with maintainers; [ epitrochoid ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/google-fonts/default.nix b/nixpkgs/pkgs/data/fonts/google-fonts/default.nix
new file mode 100644
index 000000000000..207f3615d1b4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/google-fonts/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "google-fonts-${version}";
+  version = "2018-07-13";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "fonts";
+    rev = "3ca591dae7372a26e254ec6d22e7b453813b9530";
+    sha256 = "01ak3dzw2kihwa0dy27x8vvpiscd66mnkf61vj1xn29m4g48y0lr";
+  };
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1pzm26794nwdbsvjnczpfchxiqa1n1zhp517g6g39wfm1nfszz83";
+
+  phases = [ "unpackPhase" "patchPhase" "installPhase" ];
+
+  patchPhase = ''
+    # These directories need to be removed because they contain
+    # older or duplicate versions of fonts also present in other
+    # directories. This causes non-determinism in the install since
+    # the installation order of font files with the same name is not
+    # fixed.
+    rm -rv ofl/alefhebrew \
+      ofl/misssaintdelafield \
+      ofl/mrbedford \
+      ofl/siamreap \
+      ofl/terminaldosislight
+
+    if find . -name "*.ttf" | sed 's|.*/||' | sort | uniq -c | sort -n | grep -v '^.*1 '; then
+      echo "error: duplicate font names"
+      exit 1
+    fi
+  '';
+
+  installPhase = ''
+    dest=$out/share/fonts/truetype
+    find . -name '*.ttf' -exec install -m 444 -Dt $dest '{}' +
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://fonts.google.com;
+    description = "Font files available from Google Fonts";
+    license = with licenses; [ asl20 ofl ufl ];
+    platforms = platforms.all;
+    hydraPlatforms = [];
+    maintainers = with maintainers; [ manveru ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/gyre/default.nix b/nixpkgs/pkgs/data/fonts/gyre/default.nix
new file mode 100644
index 000000000000..492d89a674ce
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gyre/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchzip}:
+
+let
+  baseName = "gyre-fonts";
+  version = "2.005";
+in fetchzip {
+  name="${baseName}-${version}";
+
+  url = "http://www.gust.org.pl/projects/e-foundry/tex-gyre/whole/tg-${version}otf.zip";
+
+  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 = ''
+      The Gyre project started in 2006, and will
+      eventually include enhanced releases of all 35 freely available
+      PostScript fonts distributed with Ghostscript v4.00.  These are
+      being converted to OpenType and extended with diacritical marks
+      covering all modern European languages and then some
+    '';
+    homepage = "http://www.gust.org.pl/projects/e-foundry/tex-gyre/index_html#Readings";
+    license = stdenv.lib.licenses.lppl13c;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = with stdenv.lib.maintainers; [ bergey ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/hack/default.nix b/nixpkgs/pkgs/data/fonts/hack/default.nix
new file mode 100644
index 000000000000..e77fcc3c3a3e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hack/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "3.003";
+in fetchzip rec {
+  name = "hack-font-${version}";
+
+  url = "https://github.com/chrissimpkins/Hack/releases/download/v${version}/Hack-v${version}-ttf.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/hack
+  '';
+
+  sha256 = "1l6ih6v7dqali5c7zh6z2xnbf9h2wz0ag6fdgszmqd5lnhw39v6s";
+
+  meta = with stdenv.lib; {
+    description = "A typeface designed for source code";
+    longDescription = ''
+      Hack is hand groomed and optically balanced to be a workhorse face for
+      code. It has deep roots in the libre, open source typeface community and
+      expands upon the contributions of the Bitstream Vera & DejaVu projects.
+      The face has been re-designed with a larger glyph set, modifications of
+      the original glyph shapes, and meticulous attention to metrics.
+    '';
+    homepage = https://sourcefoundry.org/hack/;
+
+    /*
+     "The font binaries are released under a license that permits unlimited
+      print, desktop, and web use for commercial and non-commercial
+      applications. It may be embedded and distributed in documents and
+      applications. The source is released in the widely supported UFO format
+      and may be modified to derive new typeface branches. The full text of
+      the license is available in LICENSE.md" (From the GitHub page)
+    */
+    license = licenses.free;
+    maintainers = with maintainers; [ dywedir ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/hanazono/default.nix b/nixpkgs/pkgs/data/fonts/hanazono/default.nix
new file mode 100644
index 000000000000..27459b2d1f3f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hanazono/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "20141012";
+in fetchzip {
+  name = "hanazono-${version}";
+
+  url = "mirror://sourceforgejp/hanazono-font/62072/hanazono-${version}.zip";
+
+  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/;
+
+    # Dual-licensed under OFL and the following:
+    # This font is a free software.
+    # Unlimited permission is granted to use, copy, and distribute it, with
+    # or without modification, either commercially and noncommercially.
+    # THIS FONT IS PROVIDED "AS IS" WITHOUT WARRANTY.
+    license = [ licenses.ofl licenses.free ];
+    maintainers = with maintainers; [ mathnerd314 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/hasklig/default.nix b/nixpkgs/pkgs/data/fonts/hasklig/default.nix
new file mode 100644
index 000000000000..de7dd5834e4b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hasklig/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchzip}:
+
+let
+  version = "1.1";
+in fetchzip {
+  name = "hasklig-${version}";
+
+  url = "https://github.com/i-tu/Hasklig/releases/download/${version}/Hasklig-${version}.zip";
+
+  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";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ davidrusu Profpatsch ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/helvetica-neue-lt-std/default.nix b/nixpkgs/pkgs/data/fonts/helvetica-neue-lt-std/default.nix
new file mode 100644
index 000000000000..a614017b8095
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/helvetica-neue-lt-std/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "2013.06.07"; # date of most recent file in distribution
+in fetchzip rec {
+  name = "helvetica-neue-lt-std-${version}";
+
+  url = "http://www.ephifonts.com/downloads/helvetica-neue-lt-std.zip";
+
+  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";
+    longDescription = ''
+      Helvetica Neue Lt Std is one of the most highly rated and complete
+      fonts of all time. Developed in early 1983, this font has well
+      camouflaged heights and weights. The structure of the word is uniform
+      throughout all the characters.
+
+      The legibility with Helvetica Neue LT Std is said to have improved as
+      opposed to other fonts. The tail of it is much longer in this
+      font. The numbers are well spaced and defined with high accuracy. The
+      punctuation marks are heavily detailed as well.
+    '';
+    license = stdenv.lib.licenses.unfree;
+    maintainers = [ stdenv.lib.maintainers.romildo ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/hyperscrypt/default.nix b/nixpkgs/pkgs/data/fonts/hyperscrypt/default.nix
new file mode 100644
index 000000000000..80516eb0293c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hyperscrypt/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchzip, lib }:
+
+let
+  version = "1.1";
+  pname = "HyperScrypt";
+in
+
+fetchzip rec {
+  name = "${lib.toLower pname}-font-${version}";
+  url = "https://gitlab.com/StudioTriple/Hyper-Scrypt/-/archive/${version}/Hyper-Scrypt-${version}.zip";
+  sha256 = "01pf5p2scmw02s0gxnibiwxbpzczphaaapv0v4s7svk9aw2gmc0m";
+  postFetch = ''
+    mkdir -p $out/share/fonts/{truetype,opentype}
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype/${pname}.ttf
+    unzip -j $downloadedFile \*${pname}.otf -d $out/share/fonts/opentype/${pname}.otf
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://velvetyne.fr/fonts/hyper-scrypt/;
+    description = "A modern stencil typeface inspired by stained glass technique";
+    longDescription = ''
+      The Hyper Scrypt typeface was designed for the Hyper Chapelle
+      exhibition. It was commissioned by AAAAA Atelier to Studio
+      Triple's designer Jérémy Landes.  Hyper Scrypt is a modern
+      stencil typeface inspired by the stained glass technique used in
+      the Metz cathedral. It borrows the stained glass method, drawing
+      holes for the light with black lead. This creates a reverse
+      typeface, where the shapes of the letters are drawn by their
+      counters. Hyper Scrypt is at the intersection between 3 metals :
+      the sacred lead of stained glass, the lead of print characters
+      and the heavy metal. Despite its organic look inherited for the
+      molted metal, Hyper Scrypt is based upon a rigorous grid,
+      allowing some neat alignements between shapes in multi lines
+      layouts.
+      '';
+    license = licenses.ofl;
+    maintainers = with maintainers; [ leenaars ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ia-writer-duospace/default.nix b/nixpkgs/pkgs/data/fonts/ia-writer-duospace/default.nix
new file mode 100644
index 000000000000..a042a31f1d02
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ia-writer-duospace/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "20180721";
+in fetchFromGitHub rec {
+  name = "ia-writer-duospace-${version}";
+
+  owner = "iaolo";
+  repo = "iA-Fonts";
+  rev = "55edf60f544078ab1e14987bc67e9029a200e0eb";
+  sha256 = "0932lcxf861vb3hz52z1xj8r99ag9sdyqsnq9brv7gc4kp2l339c";
+
+  postFetch = ''
+    tar --strip-components=1 -xzvf $downloadedFile
+    mkdir -p $out/share/fonts/opentype
+    cp "iA Writer Duospace/OTF (Mac)/"*.otf $out/share/fonts/opentype/
+  '';
+
+  meta = with lib; {
+    description = "iA Writer Duospace Typeface";
+    homepage = https://ia.net/topics/in-search-of-the-perfect-writing-font;
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ibm-plex/default.nix b/nixpkgs/pkgs/data/fonts/ibm-plex/default.nix
new file mode 100644
index 000000000000..91ef3ca49a72
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ibm-plex/default.nix
@@ -0,0 +1,21 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.2.3";
+in fetchzip rec {
+  name = "ibm-plex-${version}";
+  url = "https://github.com/IBM/plex/releases/download/v${version}/OpenType.zip";
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+  '';
+  sha256 = "16vmby2svr4q0lvsnrpxzmhkb6yv84x2jg6jccaj7x9vq56b4adg";
+
+  meta = with lib; {
+    description = "IBM Plex Typeface";
+    homepage = https://www.ibm.com/plex/;
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/inconsolata/default.nix b/nixpkgs/pkgs/data/fonts/inconsolata/default.nix
new file mode 100644
index 000000000000..e1544787b726
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/inconsolata/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, google-fonts }:
+
+stdenv.mkDerivation rec {
+  name = "inconsolata-${version}";
+
+  inherit (google-fonts) src version;
+
+  installPhase = ''
+    install -m644 --target $out/share/fonts/truetype/inconsolata -D $src/ofl/inconsolata/*.ttf
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.levien.com/type/myfonts/inconsolata.html;
+    description = "A monospace font for both screen and print";
+    maintainers = with maintainers; [ mikoim raskin rycee ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/inconsolata/lgc.nix b/nixpkgs/pkgs/data/fonts/inconsolata/lgc.nix
new file mode 100644
index 000000000000..8563e0e112ac
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/inconsolata/lgc.nix
@@ -0,0 +1,62 @@
+{stdenv, fetchFromGitHub, fontforge}:
+
+stdenv.mkDerivation rec {
+  name = "inconsolata-lgc-${version}";
+  version = "1.3";
+
+  src = fetchFromGitHub {
+    owner = "MihailJP";
+    repo = "Inconsolata-LGC";
+    rev = "8adfef7a7316fcd2e9a5857054c7cdb2babeb35d";
+    sha256 = "0dqjj3mlc28s8ljnph6l086b4j9r5dly4fldq59crycwys72zzai";
+  };
+
+  nativeBuildInputs = [ fontforge ];
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp -v $(find . -name '*.ttf') $out/share/fonts/truetype
+
+    mkdir -p $out/share/fonts/opentype
+    cp -v $(find . -name '*.otf') $out/share/fonts/opentype
+
+    mkdir -p "$out/doc/${name}"
+    cp -v AUTHORS ChangeLog COPYING License.txt README "$out/doc/${name}" || true
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "18brmw0h4hjq1m2l0abwc3zmib4rnfalpywdk68djm711zldxr76";
+
+  meta = with stdenv.lib; {
+    description = "Fork of Inconsolata font, with proper support of Cyrillic and Greek";
+    longDescription = ''
+      Inconsolata is one of the most suitable font for programmers created by Raph
+      Levien. Since the original Inconsolata does not contain Cyrillic alphabet,
+      it was slightly inconvenient for not a few programmers from Russia.
+
+      Inconsolata LGC is a modified version of Inconsolata with added the Cyrillic
+      alphabet which directly descends from Inconsolata Hellenic supporting modern
+      Greek.
+
+      Inconsolata LGC is licensed under SIL OFL.
+
+
+      Inconsolata LGC changes:
+      * Cyrillic glyphs added.
+      * Italic and Bold font added.
+
+      Changes inherited from Inconsolata Hellenic:
+      * Greek glyphs.
+
+      Changes inherited from Inconsolata-dz:
+      * Straight quotation marks.
+    '';
+
+    # See `License.txt' for details.
+    license = licenses.ofl;
+    homepage = https://github.com/MihailJP/Inconsolata-LGC;
+    maintainers = with maintainers; [ avnik rht ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/input-fonts/default.nix b/nixpkgs/pkgs/data/fonts/input-fonts/default.nix
new file mode 100644
index 000000000000..94c580c30df0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/input-fonts/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, requireFile, unzip }:
+
+stdenv.mkDerivation rec {
+  name = "input-fonts-${version}";
+  version = "2017-08-10"; # date of the download and checksum
+
+  src = requireFile {
+    name = "Input-Font.zip";
+    url = "http://input.fontbureau.com/download/";
+    sha256 = "07fkyvbb12agkb2kpnq2j45nycgbjvb4n1s5hjyqsipdh2z9zihq";
+  };
+
+  nativeBuildInputs = [ unzip ];
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    find Input_Fonts -name "*.ttf" -exec cp -a {} "$out"/share/fonts/truetype/ \;
+    mkdir -p "$out"/share/doc
+    cp -a *.txt "$out"/share/doc/
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "0k7xqkgqldd110ch9s144ilh762q777qcjvg3plmrb9s6xiaqvvd";
+
+  meta = with stdenv.lib; {
+    description = "Fonts for Code, from Font Bureau";
+    longDescription = ''
+      Input is a font family designed for computer programming, data,
+      and text composition. It was designed by David Jonathan Ross
+      between 2012 and 2014 and published by The Font Bureau. It
+      contains a wide array of styles so you can fine-tune the
+      typography that works best in your editing environment.
+
+      Input Mono is a monospaced typeface, where all characters occupy
+      a fixed width. Input Sans and Serif are proportional typefaces
+      that are designed with all of the features of a good monospace —
+      generous spacing, large punctuation, and easily distinguishable
+      characters — but without the limitations of a fixed width.
+    '';
+    homepage = http://input.fontbureau.com;
+    license = licenses.unfree;
+    maintainers = with maintainers; [ romildo ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/inriafonts/default.nix b/nixpkgs/pkgs/data/fonts/inriafonts/default.nix
new file mode 100644
index 000000000000..a2192385abc2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/inriafonts/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+
+  pname = "inriafonts";
+  version = "1.200";
+  name = "${pname}-${version}";
+
+src = fetchFromGitHub {
+  owner = "BlackFoundry";
+  repo = "InriaFonts";
+  rev = "v${version}";
+  sha256 = "06775y99lyh6hj5hzvrx56iybdck8a8xfqkipqd5c4cldg0a9hh8";
+};
+
+installPhase = ''
+  mkdir -p $out/share/fonts/truetype
+  cp fonts/*/TTF/*.ttf $out/share/fonts/truetype
+  mkdir -p $out/share/fonts/opentype
+  cp fonts/*/OTF/*.otf $out/share/fonts/opentype
+'';
+
+  meta = with stdenv.lib; {
+    homepage = https://black-foundry.com/work/inria;
+    description = "Inria Sans and Inria Serif";
+    longDescription = ''
+      Inria Sans and Inria Serif are the two members of a type family
+      design for the communication of Inria, the French national institute
+      dedicated to numeric research. The Institut needed a font
+      showing its values at the crossroad of humanity, technology,
+      excellence and creativity. Black[Foudry] created a humanist
+      typeface with a unapologetically contemporary design as the
+      Sans-serif part and a more rational axis and drawing for the
+      serif. Both members comes in 3 weights with matching italics.
+      '';
+    license = licenses.ofl;
+    maintainers = with maintainers; [ leenaars ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/inter-ui/default.nix b/nixpkgs/pkgs/data/fonts/inter-ui/default.nix
new file mode 100644
index 000000000000..dcce90aaef5f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/inter-ui/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "3.0";
+in fetchzip {
+  name = "inter-ui-${version}";
+
+  url = "https://github.com/rsms/inter/releases/download/v${version}/Inter-UI-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "16qmb8farkh41i56f0vvbxcg32rbg7my64amwz5y8gyy73i3320q";
+
+  meta = with stdenv.lib; {
+    homepage = https://rsms.me/inter/;
+    description = "A typeface specially designed for user interfaces";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ demize ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/bin.nix b/nixpkgs/pkgs/data/fonts/iosevka/bin.nix
new file mode 100644
index 000000000000..9bf5b40a78de
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iosevka/bin.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "2.0.1";
+in fetchzip rec {
+  name = "iosevka-bin-${version}";
+
+  url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/ttc-iosevka-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttc -d $out/share/fonts/iosevka
+  '';
+
+  sha256 = "1i21ja348k22rlf8z9jp90cidpmcnwqsw12vdrmm556sdwdkrkpc";
+
+  meta = with stdenv.lib; {
+    homepage = https://be5invis.github.io/Iosevka/;
+    downloadPage = "https://github.com/be5invis/Iosevka/releases";
+    description = ''
+      Slender monospace sans-serif and slab-serif typeface inspired by Pragmata
+      Pro, M+ and PF DIN Mono, designed to be the ideal font for programming.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.cstrahan ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/default.nix b/nixpkgs/pkgs/data/fonts/iosevka/default.nix
new file mode 100644
index 000000000000..f7fce315e8c1
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iosevka/default.nix
@@ -0,0 +1,103 @@
+{
+  stdenv, lib,
+  fetchFromGitHub, fetchurl,
+  nodejs, ttfautohint-nox, otfcc,
+
+  # Custom font set options.
+  # See https://github.com/be5invis/Iosevka#build-your-own-style
+  design ? [], upright ? [], italic ? [], oblique ? [],
+  family ? null, weights ? [],
+  # Custom font set name. Required if any custom settings above.
+  set ? null
+}:
+
+assert (design != []) -> set != null;
+assert (upright != []) -> set != null;
+assert (italic != []) -> set != null;
+assert (oblique != []) -> set != null;
+assert (family != null) -> set != null;
+assert (weights != []) -> set != null;
+
+let
+  installPackageLock = import ./package-lock.nix { inherit fetchurl lib; };
+in
+
+let pname = if set != null then "iosevka-${set}" else "iosevka"; in
+
+let
+  version = "1.14.3";
+  name = "${pname}-${version}";
+  src = fetchFromGitHub {
+    owner = "be5invis";
+    repo ="Iosevka";
+    rev = "v${version}";
+    sha256 = "0ba8hwxi88bp2jb9xfhk95nnlv8ykl74cv62xr4ybzm3b8ahpwqf";
+  };
+in
+
+with lib;
+let unwords = concatStringsSep " "; in
+
+let
+  param = name: options:
+    if options != [] then "${name}='${unwords options}'" else null;
+  config = unwords (lib.filter (x: x != null) [
+    (param "design" design)
+    (param "upright" upright)
+    (param "italic" italic)
+    (param "oblique" oblique)
+    (if family != null then "family='${family}'" else null)
+    (param "weights" weights)
+  ]);
+  custom = design != [] || upright != [] || italic != [] || oblique != []
+    || family != null || weights != [];
+in
+
+stdenv.mkDerivation {
+  inherit name pname version src;
+
+  nativeBuildInputs = [ nodejs ttfautohint-nox otfcc ];
+
+  passAsFile = [ "installPackageLock" ];
+  installPackageLock = installPackageLock ./package-lock.json;
+
+  preConfigure = ''
+    HOME=$TMPDIR
+    source "$installPackageLockPath";
+    npm --offline rebuild
+  '';
+
+  configurePhase = ''
+    runHook preConfigure
+
+    ${optionalString custom ''make custom-config set=${set} ${config}''}
+
+    runHook postConfigure
+  '';
+
+  makeFlags = lib.optionals custom [ "custom" "set=${set}" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    fontdir="$out/share/fonts/$pname"
+    install -d "$fontdir"
+    install "dist/$pname/ttf"/* "$fontdir"
+
+    runHook postInstall
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://be5invis.github.io/Iosevka/;
+    downloadPage = "https://github.com/be5invis/Iosevka/releases";
+    description = ''
+      Slender monospace sans-serif and slab-serif typeface inspired by Pragmata
+      Pro, M+ and PF DIN Mono, designed to be the ideal font for programming.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ cstrahan jfrankenau ttuegel ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/package-lock.json b/nixpkgs/pkgs/data/fonts/iosevka/package-lock.json
new file mode 100644
index 000000000000..54de11a1f422
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iosevka/package-lock.json
@@ -0,0 +1,1025 @@
+{
+  "name": "iosevka",
+  "version": "1.14.0",
+  "lockfileVersion": 1,
+  "requires": true,
+  "dependencies": {
+    "JSONStream": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz",
+      "integrity": "sha1-wQI3G27Dp887hHygDCC7D85Mbeo=",
+      "requires": {
+        "jsonparse": "1.3.1",
+        "through": "2.3.8"
+      }
+    },
+    "amdefine": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+      "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
+    },
+    "ansi-regex": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+      "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+    },
+    "bezier-js": {
+      "version": "2.2.5",
+      "resolved": "https://registry.npmjs.org/bezier-js/-/bezier-js-2.2.5.tgz",
+      "integrity": "sha512-HGh+GevPguxrAmnWF2/A+8c8FEatnKcE6WttpYWA5fn1CfpJz4reFbr11DuyFs2gwaIo9vF7aVXW2xg1iaqvyg=="
+    },
+    "builtin-modules": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+      "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8="
+    },
+    "camelcase": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+      "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
+    },
+    "caryll-shapeops": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/caryll-shapeops/-/caryll-shapeops-0.3.1.tgz",
+      "integrity": "sha512-3TdH6DZGL08S6qEvCZLNaOHyFvmzQts8m+TyYEvc6/PiI+XgX5mIag1/CKczIM8e2QtDr8JKW8foo4VNOM8/Og==",
+      "requires": {
+        "bezier-js": "2.2.5",
+        "clipper-lib": "1.0.0"
+      }
+    },
+    "child-process-promise": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/child-process-promise/-/child-process-promise-2.2.1.tgz",
+      "integrity": "sha1-RzChHvYQ+tRQuPIjx50x172tgHQ=",
+      "requires": {
+        "cross-spawn": "4.0.2",
+        "node-version": "1.1.0",
+        "promise-polyfill": "6.1.0"
+      }
+    },
+    "clipper-lib": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/clipper-lib/-/clipper-lib-1.0.0.tgz",
+      "integrity": "sha1-6QLOsm4o7lz6YBSr33kKUe//Tss="
+    },
+    "cliui": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+      "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+      "requires": {
+        "string-width": "1.0.2",
+        "strip-ansi": "3.0.1",
+        "wrap-ansi": "2.1.0"
+      }
+    },
+    "clone": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz",
+      "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8="
+    },
+    "code-point-at": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+      "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
+    },
+    "coffee-script": {
+      "version": "1.12.7",
+      "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz",
+      "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw=="
+    },
+    "cross-spawn": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
+      "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=",
+      "requires": {
+        "lru-cache": "4.1.1",
+        "which": "1.3.0"
+      }
+    },
+    "cubic2quad": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/cubic2quad/-/cubic2quad-1.1.1.tgz",
+      "integrity": "sha1-abGcYaP1tB7PLx1fro+wNBWqixU="
+    },
+    "decamelize": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
+    },
+    "deep-is": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+      "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
+    },
+    "defaults": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
+      "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+      "requires": {
+        "clone": "1.0.3"
+      }
+    },
+    "error-ex": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
+      "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
+      "requires": {
+        "is-arrayish": "0.2.1"
+      }
+    },
+    "escodegen": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz",
+      "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==",
+      "requires": {
+        "esprima": "3.1.3",
+        "estraverse": "4.2.0",
+        "esutils": "2.0.2",
+        "optionator": "0.8.2",
+        "source-map": "0.5.7"
+      }
+    },
+    "escope": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/escope/-/escope-1.0.3.tgz",
+      "integrity": "sha1-dZ3OhJbEJI/sLQyq9BCLzz8af10=",
+      "requires": {
+        "estraverse": "2.0.0"
+      },
+      "dependencies": {
+        "estraverse": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-2.0.0.tgz",
+          "integrity": "sha1-WuRpYyQ2ACBmdMyySgnhZnT83KE="
+        }
+      }
+    },
+    "esmangle": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/esmangle/-/esmangle-1.0.1.tgz",
+      "integrity": "sha1-2bs3uPjq+/Tm1O1reqKVarvTxMI=",
+      "requires": {
+        "escodegen": "1.3.3",
+        "escope": "1.0.3",
+        "esprima": "1.1.1",
+        "esshorten": "1.1.1",
+        "estraverse": "1.5.1",
+        "esutils": "1.0.0",
+        "optionator": "0.3.0",
+        "source-map": "0.1.43"
+      },
+      "dependencies": {
+        "escodegen": {
+          "version": "1.3.3",
+          "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.3.3.tgz",
+          "integrity": "sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM=",
+          "requires": {
+            "esprima": "1.1.1",
+            "estraverse": "1.5.1",
+            "esutils": "1.0.0",
+            "source-map": "0.1.43"
+          }
+        },
+        "esprima": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.1.1.tgz",
+          "integrity": "sha1-W28VR/TRAuZw4UDFCb5ncdautUk="
+        },
+        "estraverse": {
+          "version": "1.5.1",
+          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz",
+          "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E="
+        },
+        "esutils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz",
+          "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA="
+        },
+        "fast-levenshtein": {
+          "version": "1.0.7",
+          "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.0.7.tgz",
+          "integrity": "sha1-AXjc3uAjuSkFGTrwlZ6KdjnP3Lk="
+        },
+        "levn": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/levn/-/levn-0.2.5.tgz",
+          "integrity": "sha1-uo0znQykphDjo/FFucr0iAcVUFQ=",
+          "requires": {
+            "prelude-ls": "1.1.2",
+            "type-check": "0.3.2"
+          }
+        },
+        "optionator": {
+          "version": "0.3.0",
+          "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.3.0.tgz",
+          "integrity": "sha1-lxWotfXnWGz/BsgkngOc1zZNP1Q=",
+          "requires": {
+            "deep-is": "0.1.3",
+            "fast-levenshtein": "1.0.7",
+            "levn": "0.2.5",
+            "prelude-ls": "1.1.2",
+            "type-check": "0.3.2",
+            "wordwrap": "0.0.3"
+          }
+        },
+        "source-map": {
+          "version": "0.1.43",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
+          "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
+          "requires": {
+            "amdefine": "1.0.1"
+          }
+        },
+        "wordwrap": {
+          "version": "0.0.3",
+          "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+          "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
+        }
+      }
+    },
+    "esprima": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
+      "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM="
+    },
+    "esshorten": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/esshorten/-/esshorten-1.1.1.tgz",
+      "integrity": "sha1-F0+Wt8wmfkaHLYFOfbfCkL3/Yak=",
+      "requires": {
+        "escope": "1.0.3",
+        "estraverse": "4.1.1",
+        "esutils": "2.0.2"
+      },
+      "dependencies": {
+        "estraverse": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz",
+          "integrity": "sha1-9srKcokzqFDvkGYdDheYK6RxEaI="
+        }
+      }
+    },
+    "estraverse": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+      "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM="
+    },
+    "esutils": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+      "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
+    },
+    "execa": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+      "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+      "requires": {
+        "cross-spawn": "5.1.0",
+        "get-stream": "3.0.0",
+        "is-stream": "1.1.0",
+        "npm-run-path": "2.0.2",
+        "p-finally": "1.0.0",
+        "signal-exit": "3.0.2",
+        "strip-eof": "1.0.0"
+      },
+      "dependencies": {
+        "cross-spawn": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+          "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+          "requires": {
+            "lru-cache": "4.1.1",
+            "shebang-command": "1.2.0",
+            "which": "1.3.0"
+          }
+        }
+      }
+    },
+    "fast-levenshtein": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+      "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+    },
+    "find-up": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+      "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+      "requires": {
+        "path-exists": "2.1.0",
+        "pinkie-promise": "2.0.1"
+      }
+    },
+    "fs-extra": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz",
+      "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=",
+      "requires": {
+        "graceful-fs": "4.1.11",
+        "jsonfile": "3.0.1",
+        "universalify": "0.1.1"
+      }
+    },
+    "get-caller-file": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
+      "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U="
+    },
+    "get-stream": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+      "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
+    },
+    "graceful-fs": {
+      "version": "4.1.11",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+      "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
+    },
+    "hosted-git-info": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
+      "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg=="
+    },
+    "invert-kv": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+      "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
+    },
+    "is-arrayish": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+      "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+    },
+    "is-builtin-module": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+      "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+      "requires": {
+        "builtin-modules": "1.1.1"
+      }
+    },
+    "is-fullwidth-code-point": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+      "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+      "requires": {
+        "number-is-nan": "1.0.1"
+      }
+    },
+    "is-stream": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+      "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
+    },
+    "is-utf8": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+      "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
+    },
+    "isexe": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+    },
+    "jsonfile": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz",
+      "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=",
+      "requires": {
+        "graceful-fs": "4.1.11"
+      }
+    },
+    "jsonparse": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
+      "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA="
+    },
+    "lcid": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+      "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+      "requires": {
+        "invert-kv": "1.0.0"
+      }
+    },
+    "levn": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+      "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+      "requires": {
+        "prelude-ls": "1.1.2",
+        "type-check": "0.3.2"
+      }
+    },
+    "libspiro-js": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/libspiro-js/-/libspiro-js-0.3.1.tgz",
+      "integrity": "sha1-hmUrAAmm2E6nmlMgvcpfAGEu5Dk="
+    },
+    "load-json-file": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+      "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+      "requires": {
+        "graceful-fs": "4.1.11",
+        "parse-json": "2.2.0",
+        "pify": "2.3.0",
+        "pinkie-promise": "2.0.1",
+        "strip-bom": "2.0.0"
+      }
+    },
+    "locate-path": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+      "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+      "requires": {
+        "p-locate": "2.0.0",
+        "path-exists": "3.0.0"
+      },
+      "dependencies": {
+        "path-exists": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+          "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+        }
+      }
+    },
+    "lru-cache": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
+      "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
+      "requires": {
+        "pseudomap": "1.0.2",
+        "yallist": "2.1.2"
+      }
+    },
+    "megaminx": {
+      "version": "0.3.3",
+      "resolved": "https://registry.npmjs.org/megaminx/-/megaminx-0.3.3.tgz",
+      "integrity": "sha512-lZBSLMro+XYJIix9zCZ8N6nZgixpjUPkX6CKuh+Y9Wl9bir/2Fp27NWapA0cNQCPrzOOI9sAwxc4BI14aIdumw==",
+      "requires": {
+        "JSONStream": "1.3.2",
+        "child-process-promise": "2.2.1",
+        "cubic2quad": "1.1.1",
+        "fs-extra": "3.0.1",
+        "which": "1.3.0"
+      }
+    },
+    "mem": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
+      "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
+      "requires": {
+        "mimic-fn": "1.2.0"
+      }
+    },
+    "mimic-fn": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+      "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
+    },
+    "node-version": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/node-version/-/node-version-1.1.0.tgz",
+      "integrity": "sha512-t1V2RFiaTavaW3jtQO0A2nok6k7/Gghuvx2rjvICuT0B0dYaObBQ4U0xHL+ZTPFZodt1LMYG2Vi2nypfz4/AJg=="
+    },
+    "normalize-package-data": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+      "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
+      "requires": {
+        "hosted-git-info": "2.5.0",
+        "is-builtin-module": "1.0.0",
+        "semver": "5.5.0",
+        "validate-npm-package-license": "3.0.1"
+      }
+    },
+    "npm-run-path": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+      "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+      "requires": {
+        "path-key": "2.0.1"
+      }
+    },
+    "number-is-nan": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
+    },
+    "object-assign": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+    },
+    "optionator": {
+      "version": "0.8.2",
+      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+      "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
+      "requires": {
+        "deep-is": "0.1.3",
+        "fast-levenshtein": "2.0.6",
+        "levn": "0.3.0",
+        "prelude-ls": "1.1.2",
+        "type-check": "0.3.2",
+        "wordwrap": "1.0.0"
+      }
+    },
+    "os-locale": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+      "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+      "requires": {
+        "lcid": "1.0.0"
+      }
+    },
+    "p-finally": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
+    },
+    "p-limit": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz",
+      "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==",
+      "requires": {
+        "p-try": "1.0.0"
+      }
+    },
+    "p-locate": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+      "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+      "requires": {
+        "p-limit": "1.2.0"
+      }
+    },
+    "p-try": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+      "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
+    },
+    "pad": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/pad/-/pad-1.2.1.tgz",
+      "integrity": "sha512-cx/l/K+9UjGXJmoYolvP0l3cEUyB9BUdUL3wj3uwskIiApboLsinvsXxU9nSNg9Luz2ZyH0zzJNbqgLSNtfIDw==",
+      "requires": {
+        "coffee-script": "1.12.7",
+        "wcwidth": "1.0.1"
+      }
+    },
+    "parse-json": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+      "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+      "requires": {
+        "error-ex": "1.3.1"
+      }
+    },
+    "patel": {
+      "version": "0.32.1",
+      "resolved": "https://registry.npmjs.org/patel/-/patel-0.32.1.tgz",
+      "integrity": "sha1-nnC2sj/XqcgsV57VkbivpSF+YhI=",
+      "requires": {
+        "escodegen": "1.9.0",
+        "esmangle": "1.0.1",
+        "patrisika": "0.21.0",
+        "resumer": "0.0.0",
+        "yargs": "6.6.0"
+      },
+      "dependencies": {
+        "yargs": {
+          "version": "6.6.0",
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
+          "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
+          "requires": {
+            "camelcase": "3.0.0",
+            "cliui": "3.2.0",
+            "decamelize": "1.2.0",
+            "get-caller-file": "1.0.2",
+            "os-locale": "1.4.0",
+            "read-pkg-up": "1.0.1",
+            "require-directory": "2.1.1",
+            "require-main-filename": "1.0.1",
+            "set-blocking": "2.0.0",
+            "string-width": "1.0.2",
+            "which-module": "1.0.0",
+            "y18n": "3.2.1",
+            "yargs-parser": "4.2.1"
+          }
+        }
+      }
+    },
+    "path-exists": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+      "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+      "requires": {
+        "pinkie-promise": "2.0.1"
+      }
+    },
+    "path-key": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
+    },
+    "path-type": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+      "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+      "requires": {
+        "graceful-fs": "4.1.11",
+        "pify": "2.3.0",
+        "pinkie-promise": "2.0.1"
+      }
+    },
+    "patrisika": {
+      "version": "0.21.0",
+      "resolved": "https://registry.npmjs.org/patrisika/-/patrisika-0.21.0.tgz",
+      "integrity": "sha1-uCwn99QEFSLcXDG0O3xu+xnkdII=",
+      "requires": {
+        "patrisika-scopes": "0.11.0"
+      }
+    },
+    "patrisika-scopes": {
+      "version": "0.11.0",
+      "resolved": "https://registry.npmjs.org/patrisika-scopes/-/patrisika-scopes-0.11.0.tgz",
+      "integrity": "sha1-BSqddkoWXgs0zDW2ViqIJCA2tAM="
+    },
+    "pify": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+      "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
+    },
+    "pinkie": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
+    },
+    "pinkie-promise": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+      "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+      "requires": {
+        "pinkie": "2.0.4"
+      }
+    },
+    "prelude-ls": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+      "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
+    },
+    "promise-polyfill": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.1.0.tgz",
+      "integrity": "sha1-36lpQ+qcEh/KTem1hoyznTRy4Fc="
+    },
+    "pseudomap": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+      "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
+    },
+    "read-pkg": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+      "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+      "requires": {
+        "load-json-file": "1.1.0",
+        "normalize-package-data": "2.4.0",
+        "path-type": "1.1.0"
+      }
+    },
+    "read-pkg-up": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+      "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+      "requires": {
+        "find-up": "1.1.2",
+        "read-pkg": "1.1.0"
+      }
+    },
+    "require-directory": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
+    },
+    "require-main-filename": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+      "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
+    },
+    "resumer": {
+      "version": "0.0.0",
+      "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz",
+      "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=",
+      "requires": {
+        "through": "2.3.8"
+      }
+    },
+    "semver": {
+      "version": "5.5.0",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
+      "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA=="
+    },
+    "set-blocking": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+    },
+    "shebang-command": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+      "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+      "requires": {
+        "shebang-regex": "1.0.0"
+      }
+    },
+    "shebang-regex": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+      "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
+    },
+    "signal-exit": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+      "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
+    },
+    "source-map": {
+      "version": "0.5.7",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+      "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+      "optional": true
+    },
+    "spdx-correct": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
+      "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
+      "requires": {
+        "spdx-license-ids": "1.2.2"
+      }
+    },
+    "spdx-expression-parse": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
+      "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw="
+    },
+    "spdx-license-ids": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
+      "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc="
+    },
+    "string-width": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+      "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+      "requires": {
+        "code-point-at": "1.1.0",
+        "is-fullwidth-code-point": "1.0.0",
+        "strip-ansi": "3.0.1"
+      }
+    },
+    "strip-ansi": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+      "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+      "requires": {
+        "ansi-regex": "2.1.1"
+      }
+    },
+    "strip-bom": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+      "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+      "requires": {
+        "is-utf8": "0.2.1"
+      }
+    },
+    "strip-eof": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+      "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
+    },
+    "through": {
+      "version": "2.3.8",
+      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+      "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+    },
+    "toml": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.3.tgz",
+      "integrity": "sha512-O7L5hhSQHxuufWUdcTRPfuTh3phKfAZ/dqfxZFoxPCj2RYmpaSGLEIs016FCXItQwNr08yefUB5TSjzRYnajTA=="
+    },
+    "topsort": {
+      "version": "0.0.2",
+      "resolved": "https://registry.npmjs.org/topsort/-/topsort-0.0.2.tgz",
+      "integrity": "sha1-Ll4O6KFDlBfxAdW5stA15iAmMyE="
+    },
+    "type-check": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+      "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+      "requires": {
+        "prelude-ls": "1.1.2"
+      }
+    },
+    "universalify": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz",
+      "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc="
+    },
+    "unorm": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz",
+      "integrity": "sha1-NkIA1fE2RsqLzURJAnEzVhR5IwA="
+    },
+    "validate-npm-package-license": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
+      "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
+      "requires": {
+        "spdx-correct": "1.0.2",
+        "spdx-expression-parse": "1.0.4"
+      }
+    },
+    "wcwidth": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+      "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
+      "requires": {
+        "defaults": "1.0.3"
+      }
+    },
+    "which": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
+      "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
+      "requires": {
+        "isexe": "2.0.0"
+      }
+    },
+    "which-module": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
+      "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
+    },
+    "wordwrap": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+      "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
+    },
+    "wrap-ansi": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+      "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+      "requires": {
+        "string-width": "1.0.2",
+        "strip-ansi": "3.0.1"
+      }
+    },
+    "y18n": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+      "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
+    },
+    "yallist": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+      "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+    },
+    "yargs": {
+      "version": "8.0.2",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
+      "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
+      "requires": {
+        "camelcase": "4.1.0",
+        "cliui": "3.2.0",
+        "decamelize": "1.2.0",
+        "get-caller-file": "1.0.2",
+        "os-locale": "2.1.0",
+        "read-pkg-up": "2.0.0",
+        "require-directory": "2.1.1",
+        "require-main-filename": "1.0.1",
+        "set-blocking": "2.0.0",
+        "string-width": "2.1.1",
+        "which-module": "2.0.0",
+        "y18n": "3.2.1",
+        "yargs-parser": "7.0.0"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+        },
+        "camelcase": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+          "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0="
+        },
+        "find-up": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+          "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+          "requires": {
+            "locate-path": "2.0.0"
+          }
+        },
+        "is-fullwidth-code-point": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+        },
+        "load-json-file": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+          "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+          "requires": {
+            "graceful-fs": "4.1.11",
+            "parse-json": "2.2.0",
+            "pify": "2.3.0",
+            "strip-bom": "3.0.0"
+          }
+        },
+        "os-locale": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+          "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+          "requires": {
+            "execa": "0.7.0",
+            "lcid": "1.0.0",
+            "mem": "1.1.0"
+          }
+        },
+        "path-type": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+          "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+          "requires": {
+            "pify": "2.3.0"
+          }
+        },
+        "read-pkg": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+          "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+          "requires": {
+            "load-json-file": "2.0.0",
+            "normalize-package-data": "2.4.0",
+            "path-type": "2.0.0"
+          }
+        },
+        "read-pkg-up": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+          "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+          "requires": {
+            "find-up": "2.1.0",
+            "read-pkg": "2.0.0"
+          }
+        },
+        "string-width": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+          "requires": {
+            "is-fullwidth-code-point": "2.0.0",
+            "strip-ansi": "4.0.0"
+          }
+        },
+        "strip-ansi": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+          "requires": {
+            "ansi-regex": "3.0.0"
+          }
+        },
+        "strip-bom": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
+        },
+        "which-module": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+          "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
+        },
+        "yargs-parser": {
+          "version": "7.0.0",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
+          "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
+          "requires": {
+            "camelcase": "4.1.0"
+          }
+        }
+      }
+    },
+    "yargs-parser": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
+      "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
+      "requires": {
+        "camelcase": "3.0.0"
+      }
+    }
+  }
+}
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/package-lock.nix b/nixpkgs/pkgs/data/fonts/iosevka/package-lock.nix
new file mode 100644
index 000000000000..4a7be92e7375
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iosevka/package-lock.nix
@@ -0,0 +1,142 @@
+{ lib, fetchurl }:
+
+with lib; with builtins;
+
+let
+  # Convert a base64-encoded string into a list of quads and padding.
+  fromBase64 = str:
+    let
+      len = stringLength str;
+      quads = 3 * len - 4 * padding;
+      padding =
+        if hasSuffix "==" str then 2 else
+        if hasSuffix "=" str then 1 else
+        0;
+      chars = stringToCharacters (substring 0 (len - padding) str);
+      table = {
+        "A" = [0 0 0];
+        "B" = [0 0 1];
+        "C" = [0 0 2];
+        "D" = [0 0 3];
+        "E" = [0 1 0];
+        "F" = [0 1 1];
+        "G" = [0 1 2];
+        "H" = [0 1 3];
+        "I" = [0 2 0];
+        "J" = [0 2 1];
+        "K" = [0 2 2];
+        "L" = [0 2 3];
+        "M" = [0 3 0];
+        "N" = [0 3 1];
+        "O" = [0 3 2];
+        "P" = [0 3 3];
+        "Q" = [1 0 0];
+        "R" = [1 0 1];
+        "S" = [1 0 2];
+        "T" = [1 0 3];
+        "U" = [1 1 0];
+        "V" = [1 1 1];
+        "W" = [1 1 2];
+        "X" = [1 1 3];
+        "Y" = [1 2 0];
+        "Z" = [1 2 1];
+        "a" = [1 2 2];
+        "b" = [1 2 3];
+        "c" = [1 3 0];
+        "d" = [1 3 1];
+        "e" = [1 3 2];
+        "f" = [1 3 3];
+        "g" = [2 0 0];
+        "h" = [2 0 1];
+        "i" = [2 0 2];
+        "j" = [2 0 3];
+        "k" = [2 1 0];
+        "l" = [2 1 1];
+        "m" = [2 1 2];
+        "n" = [2 1 3];
+        "o" = [2 2 0];
+        "p" = [2 2 1];
+        "q" = [2 2 2];
+        "r" = [2 2 3];
+        "s" = [2 3 0];
+        "t" = [2 3 1];
+        "u" = [2 3 2];
+        "v" = [2 3 3];
+        "w" = [3 0 0];
+        "x" = [3 0 1];
+        "y" = [3 0 2];
+        "z" = [3 0 3];
+        "0" = [3 1 0];
+        "1" = [3 1 1];
+        "2" = [3 1 2];
+        "3" = [3 1 3];
+        "4" = [3 2 0];
+        "5" = [3 2 1];
+        "6" = [3 2 2];
+        "7" = [3 2 3];
+        "8" = [3 3 0];
+        "9" = [3 3 1];
+        "+" = [3 3 2];
+        "/" = [3 3 3];
+      };
+    in
+      take quads (concatMap (c: table.${c}) chars);
+
+  # Convert a list of quads with padding into a base16-encoded string.
+  toBase16 = quads:
+    if length quads == 0 then "" else
+    if length quads == 1 then throw "toBase16: odd quads" else
+    let
+      hexad = 4 * elemAt quads 0 + elemAt quads 1;
+      hexits = "0123456789abcdef";
+    in
+      substring hexad 1 hexits + toBase16 (drop 2 quads);
+in
+
+let
+  fetchResolved = { resolved, integrity, ... }:
+    let args = { url = resolved; } // integrityHash integrity; in
+      fetchurl args;
+  integrityHash = integrity:
+    if hasPrefix "sha1-" integrity then integritySHA1 integrity else
+    if hasPrefix "sha512-" integrity then integritySHA512 integrity else
+    throw "don't understand integrity: ${integrity}";
+  integritySHA1 = integrity:
+    { sha1 = toBase16 (fromBase64 (removePrefix "sha1-" integrity)); };
+  integritySHA512 = integrity:
+    { sha512 = toBase16 (fromBase64 (removePrefix "sha512-" integrity)); };
+in
+
+let
+  depend = name: attrs@{ version, dependencies ? {}, ... }:
+      {
+        inherit name version;
+        src = fetchResolved attrs;
+        depends = mapAttrsToList depend dependencies;
+      };
+  prepareDepend = { name, src, depends, ... }:
+    ''
+      unpackFile '${src}'
+      mv package '${name}'
+      mkdir -p '${name}/node_modules'
+      (
+          cd '${name}/node_modules'
+          ${concatMapStrings prepareDepend depends}
+      )
+    '';
+in
+
+packageLockFile:
+
+let
+  packageLock = fromJSON (readFile packageLockFile);
+  depends = mapAttrsToList depend packageLock.dependencies;
+in
+  ''
+    mkdir -p node_modules
+    (
+        cd node_modules
+        ${concatMapStrings prepareDepend depends}
+    )
+  ''
+
diff --git a/nixpkgs/pkgs/data/fonts/ipaexfont/default.nix b/nixpkgs/pkgs/data/fonts/ipaexfont/default.nix
new file mode 100644
index 000000000000..dfeab5124c84
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ipaexfont/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchzip }:
+
+fetchzip rec {
+  name = "ipaexfont-003.01";
+
+  url = "http://dl.ipafont.ipa.go.jp/IPAexfont/IPAexfont00301.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "02a6sj990cnig5lq0m54nmbmfkr3s57jpxl9fiyzrjmigvd1qmhj";
+
+  meta = with stdenv.lib; {
+    description = "Japanese font package with Mincho and Gothic fonts";
+    longDescription = ''
+      IPAex font is a Japanese font developed by the Information-technology
+      Promotion Agency of Japan. It provides both Mincho and Gothic fonts,
+      suitable for both display and printing.
+
+      This is the successor to the IPA fonts.
+    '';
+    homepage = http://ipafont.ipa.go.jp/;
+    license = licenses.ipa;
+    maintainers = with maintainers; [ gebner ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ipafont/default.nix b/nixpkgs/pkgs/data/fonts/ipafont/default.nix
new file mode 100644
index 000000000000..c056f14f46fd
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ipafont/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchzip }:
+
+fetchzip {
+  name = "ipafont-003.03";
+
+  url = "http://ipafont.ipa.go.jp/old/ipafont/IPAfont00303.php";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "0lrjd0bfy36f9j85m12afg5nvr5id3sig2nmzs5qifskbd7mqv9h";
+
+  meta = {
+    description = "Japanese font package with Mincho and Gothic fonts";
+    longDescription = ''
+      IPAFont is a Japanese font developed by the Information-technology
+      Promotion Agency of Japan. It provides both Mincho and Gothic fonts,
+      suitable for both display and printing.
+    '';
+    homepage = http://ipafont.ipa.go.jp/ipafont/;
+    license = stdenv.lib.licenses.ipa;
+    maintainers = [ stdenv.lib.maintainers.auntie ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/iwona/default.nix b/nixpkgs/pkgs/data/fonts/iwona/default.nix
new file mode 100644
index 000000000000..3649aad99f43
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iwona/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+  name = "iwona-${version}";
+  version = "0_995";
+
+  src = fetchzip {
+    url = "http://jmn.pl/pliki/Iwona-otf-${version}.zip";
+    sha256 = "1wj5bxbxpz5a8p3rhw708cyjc0lgqji8g0iv6brmmbrrkpb3jq2s";
+  };
+
+  installPhase = ''
+    install -m 444 -D -t $out/share/fonts/opentype/ *.otf
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1dcpn13bd31dw7ir0s722bv3nk136dy6qsab0kznjbzfqd7agswa";
+
+  meta = with stdenv.lib; {
+    description = "A two-element sans-serif typeface, created by Małgorzata Budyta";
+    homepage = http://jmn.pl/en/kurier-i-iwona/;
+    # "[...] GUST Font License (GFL), which is a free license, legally
+    # equivalent to the LaTeX Project Public # License (LPPL), version 1.3c or
+    # later." - GUST website
+    license = licenses.lppl13c;
+    maintainers = with maintainers; [ siddharthist ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/junicode/default.nix b/nixpkgs/pkgs/data/fonts/junicode/default.nix
new file mode 100644
index 000000000000..824d9044d76f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/junicode/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchzip }:
+
+fetchzip {
+  name = "junicode-0.7.8";
+
+  url = mirror://sourceforge/junicode/junicode/junicode-0-7-8/junicode-0-7-8.zip;
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/junicode-ttf
+  '';
+
+  sha256 = "0q4si9pnbif36154sv49kzc7ygivgflv81nzmblpz3b2p77g9956";
+
+  meta = {
+    homepage = http://junicode.sourceforge.net/;
+    description = "A Unicode font for medievalists";
+    platforms = stdenv.lib.platforms.unix;
+    license = stdenv.lib.licenses.gpl2Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/kawkab-mono/default.nix b/nixpkgs/pkgs/data/fonts/kawkab-mono/default.nix
new file mode 100644
index 000000000000..852fdec82f82
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kawkab-mono/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchzip}:
+
+fetchzip rec {
+  name = "kawkab-mono-20151015";
+
+  url = "http://makkuk.com/kawkab-mono/downloads/kawkab-mono-0.1.zip";
+
+  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 = https://makkuk.com/kawkab-mono/;
+    license = stdenv.lib.licenses.ofl;
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
+
+
diff --git a/nixpkgs/pkgs/data/fonts/kochi-substitute-naga10/default.nix b/nixpkgs/pkgs/data/fonts/kochi-substitute-naga10/default.nix
new file mode 100644
index 000000000000..c24e68981296
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kochi-substitute-naga10/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchzip }:
+
+let version = "20030809";
+in
+fetchzip {
+  name = "kochi-substitute-naga10-${version}";
+
+  url = "mirror://sourceforgejp/efont/5411/kochi-substitute-${version}.tar.bz2";
+
+  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 = ''
+      Kochi Gothic and Kochi Mincho were developed as free replacements for the
+      MS Gothic and MS Mincho fonts from Microsoft. This version of the fonts
+      includes some non-free glyphs from the naga10 font, which stipulate that
+      this font may not be sold commercially. See kochi-substitute for the free
+      Debian version.
+    '';
+    homepage = http://sourceforge.jp/projects/efont/;
+    license = stdenv.lib.licenses.unfreeRedistributable;
+    maintainers = [ stdenv.lib.maintainers.auntie ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/kochi-substitute/default.nix b/nixpkgs/pkgs/data/fonts/kochi-substitute/default.nix
new file mode 100644
index 000000000000..5815b84f21a4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kochi-substitute/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, dpkg }:
+
+let version = "20030809";
+in
+stdenv.mkDerivation {
+  name = "kochi-substitute-${version}";
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/t/ttf-kochi/ttf-kochi-gothic_${version}-15_all.deb";
+    sha256 = "6e2311cd8e880a9328e4d3eef34a1c1f024fc87fba0dce177a0e1584a7360fea";
+  };
+
+  src2 = fetchurl {
+    url = "mirror://debian/pool/main/t/ttf-kochi/ttf-kochi-mincho_${version}-15_all.deb";
+    sha256 = "91ce6c993a3a0f77ed85db76f62ce18632b4c0cbd8f864676359a17ae5e6fa3c";
+  };
+
+  nativeBuildInputs = [ dpkg ];
+
+  unpackCmd = ''
+    dpkg-deb --fsys-tarfile $src | tar xf - ./usr/share/fonts/truetype/kochi/kochi-gothic-subst.ttf
+    dpkg-deb --fsys-tarfile $src2 | tar xf - ./usr/share/fonts/truetype/kochi/kochi-mincho-subst.ttf
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp ./share/fonts/truetype/kochi/kochi-gothic-subst.ttf $out/share/fonts/truetype/
+    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 = ''
+      Kochi Gothic and Kochi Mincho were developed as free replacements for the
+      MS Gothic and MS Mincho fonts from Microsoft. These are the Debian
+      versions of the fonts, which remove some non-free glyphs that were added
+      from the naga10 font.
+    '';
+    homepage = http://sourceforge.jp/projects/efont/;
+    license = stdenv.lib.licenses.wadalab;
+    maintainers = [ stdenv.lib.maintainers.auntie ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/lato/default.nix b/nixpkgs/pkgs/data/fonts/lato/default.nix
new file mode 100644
index 000000000000..91d85ce9a0dd
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lato/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchzip }:
+
+fetchzip {
+  name = "lato-2.0";
+
+  url = http://www.latofonts.com/download/Lato2OFL.zip;
+
+  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/;
+
+    description = ''
+      Sans-serif typeface family designed in Summer 2010 by Łukasz Dziedzic
+    '';
+
+    longDescription = ''
+      Lato is a sans-serif typeface family designed in the Summer 2010 by
+      Warsaw-based designer Łukasz Dziedzic ("Lato" means "Summer" in Polish).
+      In December 2010 the Lato family was published under the open-source Open
+      Font License by his foundry tyPoland, with support from Google.
+
+      In 2013-2014, the family was greatly extended to cover 3000+ glyphs per
+      style. The Lato 2.010 family now supports 100+ Latin-based languages, 50+
+      Cyrillic-based languages as well as Greek and IPA phonetics. In the
+      process, the metrics and kerning of the family have been revised and four
+      additional weights were created.
+    '';
+
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ chris-martin ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/league-of-moveable-type/default.nix b/nixpkgs/pkgs/data/fonts/league-of-moveable-type/default.nix
new file mode 100644
index 000000000000..5657b8380a96
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/league-of-moveable-type/default.nix
@@ -0,0 +1,51 @@
+{stdenv, fetchurl, unzip, raleway}:
+
+let
+
+  # TO UPDATE:
+  # ./update.sh > ./fonts.nix
+  # we use the extended version of raleway (same license).
+  fonts = [raleway]
+    ++ map fetchurl (builtins.filter (f: f.name != "raleway.zip") (import ./fonts.nix));
+
+in
+stdenv.mkDerivation rec {
+
+  baseName = "league-of-moveable-type";
+  version = "2016-10-15";
+  name="${baseName}-${version}";
+
+  srcs = fonts;
+
+  nativeBuildInputs = [ unzip ];
+  sourceRoot = ".";
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/opentype
+    cp */*.otf $out/share/fonts/opentype
+    # for Raleway, where the fonts are already in /share/…
+    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";
+
+    longDescription = ''
+      We're done with the tired old fontstacks of yesteryear. The web
+      is no longer limited, and now it's time to raise our standards.
+      Since 2009, The League has given only the most well-made, free &
+      open-source, @font-face ready fonts.
+    '';
+
+    homepage = https://www.theleagueofmoveabletype.com/;
+
+    license = stdenv.lib.licenses.ofl;
+
+    platforms = stdenv.lib.platforms.all;
+    maintainers = with stdenv.lib.maintainers; [ bergey Profpatsch ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/league-of-moveable-type/fonts.nix b/nixpkgs/pkgs/data/fonts/league-of-moveable-type/fonts.nix
new file mode 100644
index 000000000000..efbe6a4c41cb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/league-of-moveable-type/fonts.nix
@@ -0,0 +1,82 @@
+[
+  {
+    url = "https://www.theleagueofmoveabletype.com/league-spartan/download";
+    sha256 = "1z9pff8xm58njs7whaxb3sq4vbdkxv7llwgm9nqhwshmgr52jrm1";
+    name = "league-spartan.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/junction/download";
+    sha256 = "1qbhfha012ma26n43lm1fh06i7z47wk50r8qsp09bpxc5yr4ypi7";
+    name = "junction.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/ostrich-sans/download";
+    sha256 = "11ydhbgcfhmydcnim64vb035cha14krxxrbf62426dm6bvxkphp3";
+    name = "ostrich-sans.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/league-gothic/download";
+    sha256 = "0nbwsbwhs375kbis3lpk98dw05mnh455vghjg1cq0j2fsj1zb99b";
+    name = "league-gothic.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/blackout/download";
+    sha256 = "1r7dihnjvy4fgvaj5m4llc9dm4cpdl1l79mhg3as16qvjgazms3p";
+    name = "blackout.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/knewave/download";
+    sha256 = "065yiakhm6h6jkmigj4pqm2qi6saph0pwb7g8s9gwkskhkk5iy57";
+    name = "knewave.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/fanwood/download";
+    sha256 = "1023da7hik8ci8s7rcy6lh4h9p6igx1kz9y1a2cv6sizbp819w8g";
+    name = "fanwood.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/linden-hill/download";
+    sha256 = "0rm92rz9kki91l5wcn149mdpwq1mfql4dv6d159hv534qmg3z3ks";
+    name = "linden-hill.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/league-script-number-one/download";
+    sha256 = "056hb02a5vydrq5q0gwzanp2zkrrv1spm8sfc5wzhyfzgwd1vc76";
+    name = "league-script-number-one.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/raleway/download";
+    sha256 = "0f6anym0adq0ankqbdqx4lyzbysx824zqdj1x60gafyisjx48y87";
+    name = "raleway.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/prociono/download";
+    sha256 = "11hamjry5lx3cykzpjq7kwlp6h9cjqy470fmn9f2pi954b46xkdy";
+    name = "prociono.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/orbitron/download";
+    sha256 = "156w4j324d350pvjmzdg2w8inhhdfzrvb86rhlavgd9sxx2fykk4";
+    name = "orbitron.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/goudy-bookletter-1911/download";
+    sha256 = "01qganq5n7rgqw546lf45kj8j7ymfjr00i2bwp3qw7ibifg9pn4n";
+    name = "goudy-bookletter-1911.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/sorts-mill-goudy/download";
+    sha256 = "11aywj5lzapk04k2yzi1g96acbbm48x902ka0v9cfwwqpn6js9ra";
+    name = "sorts-mill-goudy.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/chunk/download";
+    sha256 = "15mbqwz90y1n4vlj2xkc8vd56va6la5qnxhiipvcmkrng5y3931j";
+    name = "chunk.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/sniglet/download";
+    sha256 = "1lhpnjm52gyhy9s2kwbsg1rd9iyrqli5q9ngp141igx4p1bgbqkc";
+    name = "sniglet.zip";
+  }
+]
diff --git a/nixpkgs/pkgs/data/fonts/league-of-moveable-type/update.sh b/nixpkgs/pkgs/data/fonts/league-of-moveable-type/update.sh
new file mode 100644
index 000000000000..4d41df4fdb85
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/league-of-moveable-type/update.sh
@@ -0,0 +1,25 @@
+#!/usr/bin/env bash
+
+SITE=https://www.theleagueofmoveabletype.com
+
+# since there is no nice way to get all the fonts,
+# this fetches the homepage and extracts their names from the html …
+fonts=$(curl "$SITE" 2>/dev/null | \
+            sed -ne 's/<img.*cloudfront.*images\/\(.*\)-[[:digit:]-]\..*$/\1/p')
+
+# build an ad-hoc nixexpr list with the files & hashes
+echo "["
+for f in $fonts; do
+    url="$SITE/$f/download"
+    hash=$(nix-prefetch-url --type sha256 "$url" 2>/dev/null)
+    cat <<EOF
+  {
+    url = "$url";
+    sha256 = "$hash";
+    name = "$f.zip";
+  }
+EOF
+done
+echo "]"
+
+
diff --git a/nixpkgs/pkgs/data/fonts/liberastika/default.nix b/nixpkgs/pkgs/data/fonts/liberastika/default.nix
new file mode 100644
index 000000000000..2e1f89ed1e72
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/liberastika/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchzip}:
+
+let
+  version = "1.1.5";
+in fetchzip rec {
+  name = "liberastika-${version}";
+
+  url = "mirror://sourceforge/project/lib-ka/liberastika-ttf-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.ttf                           -d $out/share/fonts/truetype
+    unzip -j $downloadedFile AUTHORS ChangeLog COPYING README -d "$out/share/doc/${name}"
+  '';
+
+  sha256 = "1a9dvl1pzch2vh8sqyyn1d1wz4n624ffazl6hzlc3s5k5lzrb6jp";
+
+  meta = with stdenv.lib; {
+    description = "Liberation Sans fork with improved cyrillic support";
+    homepage = https://sourceforge.net/projects/lib-ka/;
+
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    hydraPlatforms = [];
+    maintainers = [ maintainers.volth ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/liberation-sans-narrow/default.nix b/nixpkgs/pkgs/data/fonts/liberation-sans-narrow/default.nix
new file mode 100644
index 000000000000..97a1ff70f491
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/liberation-sans-narrow/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, fontforge, pythonPackages, python }:
+
+stdenv.mkDerivation rec {
+  pname = "liberation-sans-narrow";
+  version = "1.07.6";
+
+  src = fetchFromGitHub {
+    owner = "liberationfonts";
+    repo = pname;
+    rev = version;
+    sha256 = "1qw554jbdnqkg6pjjl4cqkgsalq3398kzvww2naw30vykcz752bm";
+  };
+
+  buildInputs = [ fontforge pythonPackages.fonttools python ];
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp -v $(find . -name '*Narrow*.ttf') $out/share/fonts/truetype
+
+    mkdir -p "$out/doc/${pname}-${version}"
+    cp -v AUTHORS ChangeLog COPYING License.txt README "$out/doc/${pname}-${version}" || true
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Liberation Sans Narrow Font Family is a replacement for Arial Narrow";
+    longDescription = ''
+      Liberation Sans Narrow is a font originally created by Ascender
+      Inc and licensed to Oracle Corporation under a GPLv2 license. It is
+      metrically compatible with the commonly used Arial Narrow fonts
+      on Microsoft systems. It is no longer distributed with the
+      latest versions of the Liberation Fonts, as Red Hat has changed the
+      license to the Open Font License.
+    '';
+
+    license = licenses.gpl2;
+    homepage = https://github.com/liberationfonts;
+    maintainers = [ maintainers.leenaars ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/libertine/default.nix b/nixpkgs/pkgs/data/fonts/libertine/default.nix
new file mode 100644
index 000000000000..748c0268a80f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libertine/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, fontforge }:
+
+stdenv.mkDerivation rec {
+  name = "linux-libertine-5.3.0";
+
+  src = fetchurl {
+    url = mirror://sourceforge/linuxlibertine/5.3.0/LinLibertineSRC_5.3.0_2012_07_02.tgz;
+    sha256 = "0x7cz6hvhpil1rh03rax9zsfzm54bh7r4bbrq8rz673gl9h47v0v";
+  };
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [ fontforge ];
+
+  buildPhase = ''
+    for i in *.sfd; do
+      fontforge -lang=ff -c \
+        'Open($1);
+        ScaleToEm(1000);
+        Reencode("unicode");
+        Generate($1:r + ".ttf");
+        Generate($1:r + ".otf");
+        Reencode("TeX-Base-Encoding");
+        Generate($1:r + ".afm");
+        Generate($1:r + ".pfm");
+        Generate($1:r + ".pfb");
+        Generate($1:r + ".map");
+        Generate($1:r + ".enc");
+        ' $i;
+    done
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/{opentype,truetype,type1}/public
+    mkdir -p $out/share/texmf/fonts/{enc,map}
+    cp *.otf $out/share/fonts/opentype/public
+    cp *.ttf $out/share/fonts/truetype/public
+    cp *.pfb $out/share/fonts/type1/public
+    cp *.enc $out/share/texmf/fonts/enc
+    cp *.map $out/share/texmf/fonts/map
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1mj0j0hkp8pn7jcs4pvcan6whba60bfd671g3vhx3s9kxwf7xjvr";
+
+  meta = with stdenv.lib; {
+    description = "Linux Libertine Fonts";
+    homepage = http://linuxlibertine.sf.net;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.volth ];
+    license = licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/libertinus/default.nix b/nixpkgs/pkgs/data/fonts/libertinus/default.nix
new file mode 100644
index 000000000000..2ee1e83691cc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libertinus/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "libertinus-${version}";
+  version = "6.6";
+
+  src = fetchFromGitHub {
+    rev    = "v${version}";
+    owner  = "khaledhosny";
+    repo   = "libertinus";
+    sha256 = "0syagjmwy6q1ysncchl9bgyfrm7f6fghj1aipbr6md7l6gafz7ji";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/opentype/
+    mkdir -p $out/share/doc/${name}/
+    cp *.otf $out/share/fonts/opentype/
+    cp *.txt $out/share/doc/${name}/
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "11pxb2zwvjlk06zbqrfv2pgwsl4awf68fak1ks4881i8xbl1910m";
+
+  meta = with stdenv.lib; {
+    description = "A fork of the Linux Libertine and Linux Biolinum fonts";
+    longDescription = ''
+      Libertinus fonts is a fork of the Linux Libertine and Linux Biolinum fonts
+      that started as an OpenType math companion of the Libertine font family,
+      but grown as a full fork to address some of the bugs in the fonts.
+    '';
+    homepage = https://github.com/khaledhosny/libertinus;
+    license = licenses.ofl;
+    maintainers = with maintainers; [ siddharthist ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/libre-baskerville/default.nix b/nixpkgs/pkgs/data/fonts/libre-baskerville/default.nix
new file mode 100644
index 000000000000..18f236068a2f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libre-baskerville/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchzip }:
+
+fetchzip rec {
+  name = "libre-baskerville-1.000";
+
+  url = https://github.com/impallari/Libre-Baskerville/archive/2fba7c8e0a8f53f86efd3d81bc4c63674b0c613f.zip;
+
+  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 = ''
+      Libre Baskerville is a webfont family optimized for body text. It's Based
+      on 1941 ATF Baskerville Specimens but it has a taller x-height, wider
+      counters and less contrast that allow it to work on small sizes in any
+      screen.
+    '';
+    homepage = http://www.impallari.com/projects/overview/libre-baskerville;
+    license = licenses.ofl;
+    maintainers = with maintainers; [ cmfwyp ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/libre-bodoni/default.nix b/nixpkgs/pkgs/data/fonts/libre-bodoni/default.nix
new file mode 100644
index 000000000000..96f366973f0e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libre-bodoni/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchzip }:
+
+fetchzip rec {
+  name = "libre-bodoni-2.000";
+
+  url = https://github.com/impallari/Libre-Bodoni/archive/995a40e8d6b95411d660cbc5bb3f726ffd080c7d.zip;
+
+  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 = ''
+      The Libre Bodoni fonts are based on the 19th century Morris Fuller
+      Benton's ATF design, but specifically adapted for today's web
+      requirements.
+
+      They are a perfect choice for everything related to elegance, style,
+      luxury and fashion.
+
+      Libre Bodoni currently features four styles: Regular, Italic, Bold and
+      Bold Italic.
+    '';
+    homepage = https://github.com/impallari/Libre-Bodoni;
+    license = licenses.ofl;
+    maintainers = with maintainers; [ cmfwyp ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/libre-caslon/default.nix b/nixpkgs/pkgs/data/fonts/libre-caslon/default.nix
new file mode 100644
index 000000000000..ec932ab978c2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libre-caslon/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "libre-caslon-${version}";
+  version = "1.002";
+
+  srcs = [
+    (fetchFromGitHub {
+      owner = "impallari";
+      repo = "Libre-Caslon-Text";
+      rev = "c31e21f7e8cf91f18d90f778ce20e66c68219c74";
+      name = "libre-caslon-text-${version}-src";
+      sha256 = "0zczv9qm8cgc7w1p64mnf0p0fi7xv89zhf1zzf1qcna15kbgc705";
+    })
+
+    (fetchFromGitHub {
+      owner = "impallari";
+      repo = "Libre-Caslon-Display";
+      rev = "3491f6a9cfde2bc15e736463b0bc7d93054d5da1";
+      name = "libre-caslon-display-${version}-src";
+      sha256 = "12jrny3y8w8z61lyw470drnhliji5b24lgxap4w3brp6z3xjph95";
+    })
+  ];
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/opentype
+    mkdir -p $out/share/doc/${name}
+    cp -v "libre-caslon-text-${version}-src/fonts/OTF/"*.otf $out/share/fonts/opentype/
+    cp -v "libre-caslon-display-${version}-src/fonts/OTF/"*.otf $out/share/fonts/opentype/
+    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;
+    license = licenses.ofl;
+    maintainers = with maintainers; [ cmfwyp ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/libre-franklin/default.nix b/nixpkgs/pkgs/data/fonts/libre-franklin/default.nix
new file mode 100644
index 000000000000..9ca37e356409
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libre-franklin/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchzip }:
+
+fetchzip rec {
+  name = "libre-franklin-1.014";
+
+  url = https://github.com/impallari/Libre-Franklin/archive/006293f34c47bd752fdcf91807510bc3f91a0bd3.zip;
+
+  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;
+    license = licenses.ofl;
+    maintainers = with maintainers; [ cmfwyp ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/lm-math/default.nix b/nixpkgs/pkgs/data/fonts/lm-math/default.nix
new file mode 100644
index 000000000000..348373b89276
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lm-math/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+  name = "latinmodern-math-${version}";
+  version = "1.959";
+
+  src = fetchzip {
+    url = "www.gust.org.pl/projects/e-foundry/lm-math/download/latinmodern-math-1959.zip";
+    sha256 = "15l3lxjciyjmbh0q6jjvzz16ibk4ij79in9fs47qhrfr2wrddpvs";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/opentype/
+    mkdir -p $out/share/doc/${name}/
+    cp otf/*.otf $out/share/fonts/opentype/
+    cp doc/*.txt $out/share/doc/${name}/
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "05k145bxgxjh7i9gx1ahigxfpc2v2vwzsy2mc41jvvg51kjr8fnn";
+
+  meta = with stdenv.lib; {
+    description = "The Latin Modern Math (LM Math) font completes the modernization of the Computer Modern family of typefaces designed and programmed by Donald E. Knuth.";
+    homepage = http://www.gust.org.pl/projects/e-foundry/lm-math;
+    # "The Latin Modern Math font is licensed under the GUST Font License (GFL),
+    # which is a free license, legally equivalent to the LaTeX Project Public
+    # License (LPPL), version 1.3c or later." - GUST website
+    license = licenses.lppl13c;
+    maintainers = with maintainers; [ siddharthist ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/lmodern/default.nix b/nixpkgs/pkgs/data/fonts/lmodern/default.nix
new file mode 100644
index 000000000000..c408aae9c0ef
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lmodern/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchzip }:
+
+fetchzip {
+  name = "lmodern-2.004.5";
+
+  url = mirror://debian/pool/main/l/lmodern/lmodern_2.004.5.orig.tar.gz;
+
+  postFetch = ''
+    tar xzvf $downloadedFile
+
+    mkdir -p $out/texmf-dist/
+    mkdir -p $out/share/fonts/
+
+    cp -r lmodern-2.004.5/* $out/texmf-dist/
+    cp -r lmodern-2.004.5/fonts/{opentype,type1} $out/share/fonts/
+
+    ln -s -r $out/texmf* $out/share/
+  '';
+
+  sha256 = "11f10qnp8a435lhh19zc2znlf9q4isynmvjmvr63g5n5fhvhc192";
+
+  meta = {
+    description = "Latin Modern font";
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/lmodern/lmmath.nix b/nixpkgs/pkgs/data/fonts/lmodern/lmmath.nix
new file mode 100644
index 000000000000..c6e0788eed38
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lmodern/lmmath.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchzip }:
+
+fetchzip {
+  name = "lmmath-0.903";
+
+  url = "http://www.gust.org.pl/projects/e-foundry/lm-math/download/lmmath0903otf";
+
+  postFetch = ''
+    unzip $downloadedFile
+
+    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 -r $out/texmf* $out/share/
+  '';
+
+  sha256 = "19821d4vbd6z20jzsw24zh0hhwayglhrfw8larg2w6alhdqi7rln";
+
+  meta = {
+    description = "Latin Modern font";
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/lobster-two/default.nix b/nixpkgs/pkgs/data/fonts/lobster-two/default.nix
new file mode 100644
index 000000000000..850fd1a1f94c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lobster-two/default.nix
@@ -0,0 +1,79 @@
+{stdenv, fetchurl}:
+
+let
+
+  # HG revision in which this version of the font can be fount.
+  rev = "8e98053718f9a15184c93d6530885791be71b756";
+
+  urlBase = "https://googlefontdirectory.googlecode.com/hg-history/${rev}/ofl/lobstertwo";
+
+  # Just a small convenience function.
+  fetch = {name, path ? "/src", sha256}:
+    {
+      inherit name;
+      file = fetchurl {
+        url = "${urlBase}${path}/${name}";
+        inherit sha256;
+      };
+    };
+
+  fontlog =
+    fetch {
+      name = "FONTLOG.txt";
+      path = "";
+      sha256 = "0n405i8m70q95y8w43gzr5yvkj7gx7rd3xa4rx6y8qcqv5g7v9if";
+    };
+
+  bold =
+    fetch {
+      name = "LobsterTwo-Bold.otf";
+      sha256 = "0gkayn96vvgngs9xnmcyyf16q4payk79ghvl354rl93ayb3gf7x0";
+    };
+
+  boldItalic =
+    fetch {
+      name = "LobsterTwo-BoldItalic.otf";
+      sha256 = "0wznqkvwjqi9s4bg10fpp2345by3nxa0m0w6b3al3zaqyx2p1dxp";
+    };
+
+  italic =
+    fetch {
+      name = "LobsterTwo-Italic.otf";
+      sha256 = "0lpnzwgwl5fm6gqy8bylbryz0hy94mf1mp615y5sh0wikdvk570z";
+    };
+
+  regular =
+    fetch {
+      name = "LobsterTwo-Regular.otf";
+      sha256 = "147m3sa3sqqbkbw1hgjdwnw8w0y37x58g5p09s7q2vm74flcpbq1";
+    };
+in
+
+  stdenv.mkDerivation rec {
+    name = "lobstertwo-${version}";
+    version = "1.006";
+
+    phases = ["installPhase"];
+
+    installPhase = ''
+      mkdir -p $out/share/fonts/opentype
+      mkdir -p $out/share/doc/${name}
+      cp -v ${fontlog.file} $out/share/doc/${name}/${fontlog.name}
+      cp -v ${bold.file} $out/share/fonts/opentype/${bold.name}
+      cp -v ${boldItalic.file} $out/share/fonts/opentype/${boldItalic.name}
+      cp -v ${italic.file} $out/share/fonts/opentype/${italic.name}
+      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";
+      license = licenses.ofl;
+      platforms = platforms.all;
+      maintainers = [maintainers.rycee];
+    };
+  }
diff --git a/nixpkgs/pkgs/data/fonts/lohit-fonts/default.nix b/nixpkgs/pkgs/data/fonts/lohit-fonts/default.nix
new file mode 100644
index 000000000000..c847b4cdd270
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lohit-fonts/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchzip, lib }:
+let
+  fonts = {
+    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 = "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}: 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
+lib.mapAttrs (mkpkg lib.licenses.gpl2) gplfonts //
+lib.mapAttrs (mkpkg lib.licenses.ofl) fonts
diff --git a/nixpkgs/pkgs/data/fonts/marathi-cursive/default.nix b/nixpkgs/pkgs/data/fonts/marathi-cursive/default.nix
new file mode 100644
index 000000000000..48b2f4c516b6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/marathi-cursive/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchzip, p7zip }:
+
+let
+  version = "1.2";
+in fetchzip rec {
+  name = "marathi-cursive-${version}";
+
+  url = "https://github.com/MihailJP/MarathiCursive/releases/download/${version}/MarathiCursive-${version}.7z";
+
+  postFetch = ''
+    ${p7zip}/bin/7z x $downloadedFile
+    cd MarathiCursive
+
+    mkdir -p $out/share/fonts/marathi-cursive
+    cp -v *.otf *.ttf $out/share/fonts/marathi-cursive
+    mkdir -p $out/share/doc/${name}
+    cp -v README *.txt $out/share/doc/${name}
+  '';
+
+  sha256 = "0fhz2ixrkm523qlx5pnwyzxgb1cfiiwrhls98xg8a5l3sypn1g8v";
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/MihailJP/MarathiCursive;
+    description = "Modi script font with Graphite and OpenType support";
+    maintainers = with maintainers; [ mathnerd314 ];
+    license = licenses.mit; # It's the M+ license, M+ is MIT(-ish)
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/material-icons/default.nix b/nixpkgs/pkgs/data/fonts/material-icons/default.nix
new file mode 100644
index 000000000000..ea44c9c79b1e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/material-icons/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "material-icons-${version}";
+  version = "3.0.1";
+
+  src = fetchFromGitHub {
+    owner  = "google";
+    repo   = "material-design-icons";
+    rev    = "${version}";
+    sha256 = "17q5brcqyyc8gbjdgpv38p89s60cwxjlwy2ljnrvas5cj0s62np0";
+  };
+
+  buildCommand = ''
+    mkdir -p $out/share/fonts/truetype
+    cp $src/iconfont/*.ttf $out/share/fonts/truetype
+  '';
+
+  meta = with stdenv.lib; {
+    description = "System status icons by Google, featuring material design";
+    homepage = https://material.io/icons;
+    license = licenses.asl20;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ mpcsh ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/medio/default.nix b/nixpkgs/pkgs/data/fonts/medio/default.nix
new file mode 100644
index 000000000000..aa805b6f0825
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/medio/default.nix
@@ -0,0 +1,32 @@
+{ stdenv,  fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "200";
+  pname = "medio";
+in
+
+fetchzip rec {
+  name = "${pname}-font-${majorVersion}.${minorVersion}";
+
+  url = "http://dotcolon.net/DL/font/${pname}.zip";
+  sha256 = "0gxcmhjlsh2pzsmj78vw4v935ax7hfk533ddlhfhfma52zyxyh7x";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype/${pname}
+    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://dotcolon.net/font/${pname}/";
+    description = "Serif font designed by Sora Sagano";
+    longDescription = ''
+      Medio is a serif font designed by Sora Sagano, based roughly
+      on the proportions of the font Tenderness (from the same designer),
+      but with hairline serifs in the style of a Didone.
+    '';
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.cc0;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/meslo-lg/default.nix b/nixpkgs/pkgs/data/fonts/meslo-lg/default.nix
new file mode 100644
index 000000000000..f990575def0f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/meslo-lg/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+  version = "1.2.1";
+
+  name = "meslo-lg-${version}";
+
+  meslo-lg = fetchurl {
+    url="https://github.com/andreberg/Meslo-Font/blob/master/dist/v${version}/Meslo%20LG%20v${version}.zip?raw=true";
+    name="${name}";
+    sha256="1l08mxlzaz3i5bamnfr49s2k4k23vdm64b8nz2ha33ysimkbgg6h";
+  };
+
+  meslo-lg-dz = fetchurl {
+    url="https://github.com/andreberg/Meslo-Font/blob/master/dist/v${version}/Meslo%20LG%20DZ%20v${version}.zip?raw=true";
+    name="${name}-dz";
+    sha256="0lnbkrvcpgz9chnvix79j6fiz36wj6n46brb7b1746182rl1l875";
+  };
+
+  nativeBuildInputs = [ unzip ];
+
+  sourceRoot = ".";
+
+  phases = [ "unpackPhase" "installPhase" ];
+  unpackPhase = ''
+    unzip -j ${meslo-lg}
+    unzip -j ${meslo-lg-dz}
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    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/;
+    license = stdenv.lib.licenses.asl20;
+    maintainers = with stdenv.lib.maintainers; [ balajisivaraman ];
+    platforms = with stdenv.lib.platforms; all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/migmix/default.nix b/nixpkgs/pkgs/data/fonts/migmix/default.nix
new file mode 100644
index 000000000000..14b08e140ea8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/migmix/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+  name = "migmix-${version}";
+  version = "20150712";
+
+  srcs = [
+    (fetchzip {
+      url = "mirror://sourceforgejp/mix-mplus-ipa/63544/migmix-1p-${version}.zip";
+      sha256 = "0wp44axcalaak04nj3dgpx0vk13nqa3ihx2vjv4acsgv83x8ciph";
+    })
+    (fetchzip {
+      url = "mirror://sourceforgejp/mix-mplus-ipa/63544/migmix-2p-${version}.zip";
+      sha256 = "0y7s3rbxrp5bv56qgihk8b847lqgibfhn2wlkzx7z655fbzdgxw9";
+    })
+    (fetchzip {
+      url = "mirror://sourceforgejp/mix-mplus-ipa/63544/migmix-1m-${version}.zip";
+      sha256 = "1sfym0chy8ilyd9sr3mjc0bf63vc33p05ynpdc11miivxn4qsshx";
+    })
+    (fetchzip {
+      url = "mirror://sourceforgejp/mix-mplus-ipa/63544/migmix-2m-${version}.zip";
+      sha256 = "0hg04rvm39fh4my4akmv4rhfc14s3ipz2aw718h505k9hppkhkch";
+    })
+  ];
+
+  unpackPhase = ":";
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype/migmix
+    find $srcs -name '*.ttf' | xargs install -m644 --target $out/share/fonts/truetype/migmix
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1fhh8wg6lxwrnsg9rl4ihffl0bsp1wqa5gps9fx60kr6j9wpvmbg";
+
+  meta = with stdenv.lib; {
+    description = "A high-quality Japanese font based on M+ fonts and IPA fonts";
+    homepage = http://mix-mplus-ipa.osdn.jp/migmix;
+    license = licenses.ipa;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.mikoim ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/migu/default.nix b/nixpkgs/pkgs/data/fonts/migu/default.nix
new file mode 100644
index 000000000000..aefaefb337fa
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/migu/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+  name = "migu-${version}";
+  version = "20150712";
+
+  srcs = [
+    (fetchzip {
+      url = "mirror://sourceforgejp/mix-mplus-ipa/63545/migu-1p-${version}.zip";
+      sha256 = "04wpbk5xbbcv2rzac8yzj4ww7sk2hy2rg8zs96yxc5vzj9q7svf6";
+    })
+    (fetchzip {
+      url = "mirror://sourceforgejp/mix-mplus-ipa/63545/migu-1c-${version}.zip";
+      sha256 = "1k7ymix14ac5fb44bjvbaaf24784zzpyc1jj2280c0zdnpxksyk6";
+    })
+    (fetchzip {
+      url = "mirror://sourceforgejp/mix-mplus-ipa/63545/migu-1m-${version}.zip";
+      sha256 = "07r8id83v92hym21vrqmfsfxb646v8258001pkjhgfnfg1yvw8lm";
+    })
+    (fetchzip {
+      url = "mirror://sourceforgejp/mix-mplus-ipa/63545/migu-2m-${version}.zip";
+      sha256 = "1pvzbrawh43589j8rfxk86y1acjbgzzdy5wllvdkpm1qnx28zwc2";
+    })
+  ];
+
+  unpackPhase = ":";
+
+  installPhase = ''
+    find $srcs -name '*.ttf' | xargs install -m644 --target $out/share/fonts/truetype/migu -D
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "0nbpn21cxdd6gsgr3fadzjsnz84f2swpf81wmscmjgvd56ngndzh";
+
+  meta = with stdenv.lib; {
+    description = "A high-quality Japanese font based on modified M+ fonts and IPA fonts";
+    homepage = http://mix-mplus-ipa.osdn.jp/migu/;
+    license = licenses.ipa;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.mikoim ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/monoid/default.nix b/nixpkgs/pkgs/data/fonts/monoid/default.nix
new file mode 100644
index 000000000000..77c311ce364c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/monoid/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, python, fontforge }:
+
+stdenv.mkDerivation rec {
+  name = "monoid-${version}";
+  version = "2016-07-21";
+
+  src = fetchFromGitHub {
+    owner = "larsenwork";
+    repo = "monoid";
+    rev = "e9d77ec18c337dc78ceae787a673328615f0b120";
+    sha256 = "07h5q6cn6jjpmxp9vyag1bxx481waz344sr2kfs7d37bba8yjydj";
+  };
+
+  nativeBuildInputs = [ python fontforge ];
+
+  buildPhase = ''
+    local _d=""
+    local _l=""
+    for _d in {Monoisome,Source}/*.sfdir; do
+      _l="''${_d##*/}.log"
+      echo "Building $_d (log at $_l)"
+      python Scripts/build.py 1 0 $_d > $_l
+    done
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/{doc,fonts/truetype}
+    cp -va _release/* $out/share/fonts/truetype
+    cp -va Readme.md $out/share/doc
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "0lbipgygiva3gg1pqw07phpnnf0s6ka9vqdk1pw7bkybjw3f7wzm";
+
+  meta = with stdenv.lib; {
+    homepage = http://larsenwork.com/monoid;
+    description = "Customisable coding font with alternates, ligatures and contextual positioning";
+    license = [ licenses.ofl licenses.mit ];
+    platforms = platforms.all;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/mononoki/default.nix b/nixpkgs/pkgs/data/fonts/mononoki/default.nix
new file mode 100644
index 000000000000..cc481a136ba7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/mononoki/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "1.2";
+in fetchzip {
+  name = "mononoki-${version}";
+
+  url = "https://github.com/madmalik/mononoki/releases/download/${version}/mononoki.zip";
+
+  postFetch = ''
+    mkdir -p $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";
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/montserrat/default.nix b/nixpkgs/pkgs/data/fonts/montserrat/default.nix
new file mode 100644
index 000000000000..7d7be9a41a61
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/montserrat/default.nix
@@ -0,0 +1,29 @@
+# Originally packaged for ArchLinux.
+#
+# https://aur.archlinux.org/packages/ttf-montserrat/
+
+{ stdenv, fetchzip }:
+
+let
+  version = "1.0";
+in fetchzip {
+  name = "montserrat-${version}";
+
+  url = "http://marvid.fr/~eeva/mirror/Montserrat.tar.gz";
+
+  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";
+    license     = licenses.ofl;
+    platforms   = platforms.all;
+    maintainers = with maintainers; [ scolobb ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/mph-2b-damase/default.nix b/nixpkgs/pkgs/data/fonts/mph-2b-damase/default.nix
new file mode 100644
index 000000000000..692ad63574f4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/mph-2b-damase/default.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchzip}:
+
+fetchzip {
+  name = "MPH-2B-Damase-2";
+
+  url = http://www.wazu.jp/downloads/damase_v.2.zip;
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  sha256 = "0yzf12z6fpbgycqwiz88f39iawdhjabadfa14wxar3nhl9n434ql";
+
+  meta = {
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/mplus-outline-fonts/default.nix b/nixpkgs/pkgs/data/fonts/mplus-outline-fonts/default.nix
new file mode 100644
index 000000000000..0fd724149d8f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/mplus-outline-fonts/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "063";
+in fetchzip rec {
+  name = "mplus-${version}";
+
+  url = "mirror://sourceforgejp/mplus-fonts/62344/mplus-TESTFLIGHT-${version}.tar.xz";
+
+  postFetch = ''
+    tar -xJf $downloadedFile --strip-components=1
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+  '';
+
+  sha256 = "0d485l2ihxfk039rrrnfviamlbj13cwky0c752m4ikwvgiqiq94y";
+
+  meta = with stdenv.lib; {
+    description = "M+ Outline Fonts";
+    homepage = http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html;
+    license = licenses.mit;
+    maintainers = with maintainers; [ henrytill ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/mro-unicode/default.nix b/nixpkgs/pkgs/data/fonts/mro-unicode/default.nix
new file mode 100644
index 000000000000..8986a9adb7a8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/mro-unicode/default.nix
@@ -0,0 +1,19 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "mro-unicode-2013-05-25";
+
+  url = "https://github.com/phjamr/MroUnicode/raw/master/MroUnicode-Regular.ttf";
+
+  postFetch = "install -Dm644 $downloadedFile $out/share/fonts/truetype/MroUnicode-Regular.ttf";
+
+  sha256 = "1i71bjd9gdyn8ladfncbfhz6xz1h8xx8yf876j1z8lh719410c8g";
+
+  meta = with lib; {
+    homepage = https://github.com/phjamr/MroUnicode;
+    description = "Unicode-compliant Mro font";
+    maintainers = with maintainers; [ mathnerd314 ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/myrica/default.nix b/nixpkgs/pkgs/data/fonts/myrica/default.nix
new file mode 100644
index 000000000000..f3be8857284c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/myrica/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchFromGitHub }:
+
+fetchFromGitHub rec {
+  name = "myrica-2.011.20160403";
+
+  owner = "tomokuni";
+  repo = "Myrica";
+  rev = "b737107723bfddd917210f979ccc32ab3eb6dc20";
+  sha256 = "187rklcibbkai6m08173ca99qn8v7xpdfdv0izpymmavj85axm12";
+
+  postFetch = ''
+    tar --strip-components=1 -xzvf $downloadedFile
+    mkdir -p $out/share/fonts/truetype
+    cp product/*.TTC $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    homepage = https://myrica.estable.jp/;
+    license = licenses.ofl;
+    maintainers = with maintainers; [ mikoim ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/nafees/default.nix b/nixpkgs/pkgs/data/fonts/nafees/default.nix
new file mode 100644
index 000000000000..b39a59d1ba7a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nafees/default.nix
@@ -0,0 +1,62 @@
+{stdenv, fetchurl, unzip}:
+
+stdenv.mkDerivation rec {
+  name = "nafees";
+
+  srcs = [(fetchurl {
+    url = "http://www.cle.org.pk/Downloads/localization/fonts/NafeesNastaleeq/Nafees_Nastaleeq_v1.02.zip";
+    sha256 = "1h1k5d74pg2gs782910v7i9rz2633wdacy34ds7ybxbpjiz6pqix";
+  })
+
+  (fetchurl {
+    url = "http://www.cle.org.pk/Downloads/localization/fonts/NafeesRiqa/Nafees_Riqa_v1.0.zip";
+    sha256 = "1liismsyaj69y40vs9a9db4l95n25n8vnjnx7sbk70nxppwngd8i";
+  })
+
+  (fetchurl {
+    url = "http://www.cle.org.pk/Downloads/localization/fonts/NafeesNaskh/Nafees_Naskh_v2.01.zip";
+    sha256 = "1qbbj6w6bvrlymv7z6ld609yhp0l2f27z14180w5n8kzzl720vly";
+  })
+
+  (fetchurl {
+    url = "http://www.cle.org.pk/Downloads/localization/fonts/NafeesTahreerNaskh/Nafees_Tahreer_Naskh_v1.0.zip";
+    sha256 = "006l87drbi4zh52kpvn8wl9wbwm9srfn406rzsnf4gv0spzhqrxl";
+  })
+  (fetchurl {
+    url = "http://www.cle.org.pk/Downloads/localization/fonts/NafeesPakistaniNaskh/Nafees_Pakistani_Naskh_v2.01.zip";
+    sha256 = "1i5ip60gq1cgc9fc96kvlahdpia8dxdgcisglvbm2d212bz0s5nb";
+  })
+];
+
+  nativeBuildInputs = [unzip];
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+    # 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 = ''
+      The Nafees font family is developed according
+      to calligraphic rules, following the style of Syed Nafees
+      Al-Hussaini (Nafees Raqam) one of the finest calligraphers of
+      Pakistan
+    '';
+    homepage = http://www.cle.org.pk/software/localization.htm;
+
+    # Used to be GPLv2.  The license distributed with the fonts looks
+    # more like a modified BSD, but still contains the GPLv2 embedded
+    # font exception, and some not-for-resale language.
+    license = "unknown";
+    platforms = stdenv.lib.platforms.all;
+    maintainers = with stdenv.lib.maintainers; [ bergey ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix b/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix
new file mode 100644
index 000000000000..528055a5e80e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, bash, which, withFont ? "" }:
+
+stdenv.mkDerivation rec {
+  version = "2.0.0";
+  name = "nerdfonts-${version}";
+  src = fetchFromGitHub {
+    owner = "ryanoasis";
+    repo = "nerd-fonts";
+    rev = version;
+    sha256 = "09i467hyskvzj2wn5sj6shvc9pb0a0rx5iknjkkkbg1ng3bla7nm";
+  };
+  dontPatchShebangs = true;
+  buildInputs = [ which ];
+  patchPhase = ''
+    sed -i -e 's|/bin/bash|${bash}/bin/bash|g' install.sh
+    sed -i -e 's|font_dir="\$HOME/.local/share/fonts|font_dir="$out/share/fonts/truetype|g' install.sh
+  '';
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    ./install.sh ${withFont}
+  '';
+
+  meta = with stdenv.lib; {
+    description = ''
+      Nerd Fonts is a project that attempts to patch as many developer targeted
+      and/or used fonts as possible. The patch is to specifically add a high
+      number of additional glyphs from popular 'iconic fonts' such as Font
+      Awesome, Devicons, Octicons, and others.
+    '';
+    homepage = https://github.com/ryanoasis/nerd-fonts;
+    license = licenses.mit;
+    maintainers = with maintainers; [ garbas ];
+    platforms = with platforms; unix;
+    hydraPlatforms = []; # 'Output limit exceeded' on Hydra
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/norwester/default.nix b/nixpkgs/pkgs/data/fonts/norwester/default.nix
new file mode 100644
index 000000000000..35d69aa7f078
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/norwester/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "1.2";
+  pname = "norwester";
+in fetchzip rec {
+  name = "${pname}-${version}";
+
+  url = "http://jamiewilson.io/norwester/assets/norwester.zip";
+
+  postFetch = ''
+    mkdir -p $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";
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix b/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
new file mode 100644
index 000000000000..5043e031c08f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
@@ -0,0 +1,127 @@
+{ stdenv, fetchzip, fetchFromGitHub, optipng, cairo, pythonPackages, pkgconfig, pngquant, which, imagemagick }:
+
+let
+  mkNoto = { name, weights, sha256, }:
+    let
+      version = "2018-11-30";
+      ref = "85e78f831469323c85847e23f95026c894159135";
+    in
+    fetchzip {
+      name = "${name}-${version}";
+      inherit sha256;
+      url = "https://github.com/googlei18n/noto-fonts/archive/${ref}.zip";
+      postFetch = ''
+        unzip $downloadedFile
+        mkdir -p $out/share/fonts/noto
+        # Also copy unhinted & alpha fonts for better glyph coverage,
+        # if they don't have a hinted version
+        # (see https://groups.google.com/d/msg/noto-font/ZJSkZta4n5Y/tZBnLcPdbS0J)
+        for ttf in noto-fonts-*/{hinted,unhinted,alpha}/*-${weights}.ttf
+        do
+            cp -n "$ttf" -t "$out/share/fonts/noto"
+        done
+      '';
+      meta = with stdenv.lib; {
+        inherit version;
+        description = "Beautiful and free fonts for many languages";
+        homepage = https://www.google.com/get/noto/;
+        longDescription =
+        ''
+          When text is rendered by a computer, sometimes characters are
+          displayed as “tofu”. They are little boxes to indicate your device
+          doesn’t have a font to display the text.
+
+          Google has been developing a font family called Noto, which aims to
+          support all languages with a harmonious look and feel. Noto is
+          Google’s answer to tofu. The name noto is to convey the idea that
+          Google’s goal is to see “no more tofu”.  Noto has multiple styles and
+          weights, and freely available to all.
+
+          This package also includes the Arimo, Cousine, and Tinos fonts.
+        '';
+        license = licenses.asl20;
+        platforms = platforms.all;
+        maintainers = with maintainers; [ mathnerd314 ];
+      };
+    };
+in
+
+rec {
+  noto-fonts = mkNoto {
+    name = "noto-fonts";
+    weights = "{Regular,Bold,Light,Italic,BoldItalic,LightItalic}";
+    sha256 = "0kvq5ldip2ra2njlxg9fxj46nfqzq5l3n359d3kwfbsld7hixm2d";
+  };
+  noto-fonts-extra = mkNoto {
+    name = "noto-fonts-extra";
+    weights = "{Black,Condensed,Extra,Medium,Semi,Thin}*";
+    sha256 = "0l94aiy1b3qirg2mmbagbr0014vqk32za79pzck1acy2hgy716kq";
+  };
+  noto-fonts-cjk = let version = "1.004"; in fetchzip {
+    name = "noto-fonts-cjk-${version}";
+
+    # Same as https://noto-website.storage.googleapis.com/pkgs/NotoSansCJK.ttc.zip but versioned & with no extra SIL license file
+    url = "https://raw.githubusercontent.com/googlei18n/noto-cjk/40d9f5b179a59a06b98373c76bdc3e2119e4e6b2/NotoSansCJK.ttc.zip";
+    postFetch = ''
+      mkdir -p $out/share/fonts
+      unzip -j $downloadedFile \*.ttc -d $out/share/fonts/noto
+    '';
+    sha256 = "0ghw2azqq3nkcxsbvf53qjmrhcfsnry79rq7jsr0wwi2pn7d3dsq";
+
+    meta = with stdenv.lib; {
+      inherit version;
+      description = "Beautiful and free fonts for CJK languages";
+      homepage = https://www.google.com/get/noto/help/cjk/;
+      longDescription =
+      ''
+        Noto Sans CJK is a sans serif typeface designed as an intermediate style
+        between the modern and traditional. It is intended to be a multi-purpose
+        digital font for user interface designs, digital content, reading on laptops,
+        mobile devices, and electronic books. Noto Sans CJK comprehensively covers
+        Simplified Chinese, Traditional Chinese, Japanese, and Korean in a unified font
+        family. It supports regional variants of ideographic characters for each of the
+        four languages. In addition, it supports Japanese kana, vertical forms, and
+        variant characters (itaiji); it supports Korean hangeul — both contemporary and
+        archaic.
+      '';
+      license = licenses.ofl;
+      platforms = platforms.all;
+      maintainers = with maintainers; [ mathnerd314 ];
+    };
+  };
+  noto-fonts-emoji = let version = "2018-08-10-unicode11"; in stdenv.mkDerivation {
+    name = "noto-fonts-emoji-${version}";
+
+    src = fetchFromGitHub {
+      owner = "googlei18n";
+      repo = "noto-emoji";
+      rev = "v${version}";
+      sha256 = "1y54zsvwf5pqhcd9cl2zz5l52qyswn6kycvrq03zm5kqqsngbw3p";
+    };
+
+    buildInputs = [ cairo ];
+    nativeBuildInputs = [ pngquant optipng which cairo pkgconfig imagemagick ]
+                     ++ (with pythonPackages; [ python fonttools nototools ]);
+
+    postPatch = ''
+      sed -i 's,^PNGQUANT :=.*,PNGQUANT := ${pngquant}/bin/pngquant,' Makefile
+      patchShebangs flag_glyph_name.py
+    '';
+
+    enableParallelBuilding = true;
+
+    installPhase = ''
+      mkdir -p $out/share/fonts/noto
+      cp NotoColorEmoji.ttf fonts/NotoEmoji-Regular.ttf $out/share/fonts/noto
+    '';
+
+    meta = with stdenv.lib; {
+      inherit version;
+      description = "Color and Black-and-White emoji fonts";
+      homepage = https://github.com/googlei18n/noto-emoji;
+      license = with licenses; [ ofl asl20 ];
+      platforms = platforms.all;
+      maintainers = with maintainers; [ mathnerd314 ];
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix b/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix
new file mode 100644
index 000000000000..b5fc13daefa0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix
@@ -0,0 +1,32 @@
+{ fetchFromGitHub, pythonPackages, lib }:
+
+pythonPackages.buildPythonPackage rec {
+  version = "2017-09-25";
+  name = "nototools-${version}";
+
+  src = fetchFromGitHub {
+    owner = "googlei18n";
+    repo = "nototools";
+    rev = "v2017-09-25-tooling-for-phase3-update";
+    sha256 = "03nzvcvwmrhfrcjhg218q2f3hfrm3vlivp4rk19sc397kh3hisiz";
+  };
+
+  propagatedBuildInputs = with pythonPackages; [ fonttools numpy ];
+
+  postPatch = ''
+    sed -ie "s^join(_DATA_DIR_PATH,^join(\"$out/third_party/ucd\",^" nototools/unicode_data.py
+  '';
+
+  postInstall = ''
+    cp -r third_party $out
+  '';
+
+  disabled = pythonPackages.isPy3k;
+
+  meta = {
+    description = "Noto fonts support tools and scripts plus web site generation";
+    license = lib.licenses.asl20;
+    homepage = https://github.com/googlei18n/nototools;
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/oldsindhi/default.nix b/nixpkgs/pkgs/data/fonts/oldsindhi/default.nix
new file mode 100644
index 000000000000..4e55b5098c80
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/oldsindhi/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchzip, p7zip }:
+
+let
+  version = "0.1";
+in fetchzip rec {
+  name = "oldsindhi-${version}";
+
+  url = "https://github.com/MihailJP/oldsindhi/releases/download/0.1/OldSindhi-0.1.7z";
+
+  postFetch = ''
+    ${p7zip}/bin/7z x $downloadedFile
+
+    mkdir -p $out/share/fonts/truetype
+    mkdir -p $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";
+    maintainers = with maintainers; [ mathnerd314 ];
+    license = licenses.bsd2;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/oldstandard/default.nix b/nixpkgs/pkgs/data/fonts/oldstandard/default.nix
new file mode 100644
index 000000000000..95f8f3be7d65
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/oldstandard/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+  name = "oldstandard-${version}";
+  version = "2.2";
+
+  src = fetchzip {
+    stripRoot = false;
+    url = "https://github.com/akryukov/oldstand/releases/download/v${version}/${name}.otf.zip";
+    sha256 = "1hl78jw5szdjq9dhbcv2ln75wpp2lzcxrnfc36z35v5wk4l7jc3h";
+  };
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/opentype
+    mkdir -p $out/share/doc/${name}
+    cp -v *.otf $out/share/fonts/opentype/
+    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";
+    maintainers = with maintainers; [ raskin rycee ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/open-dyslexic/default.nix b/nixpkgs/pkgs/data/fonts/open-dyslexic/default.nix
new file mode 100644
index 000000000000..7fa57463ece3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/open-dyslexic/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchzip}:
+
+let
+  version = "2016-06-23";
+in fetchzip {
+  name = "open-dyslexic-${version}";
+
+  url = https://github.com/antijingoist/open-dyslexic/archive/20160623-Stable.zip;
+
+  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 = "1vl8z5rknh2hpr2f0v4b2qgs5kclx5pzyk8al7243k5db82a2cyi";
+
+  meta = with stdenv.lib; {
+    homepage = https://opendyslexic.org/;
+    description = "Font created to increase readability for readers with dyslexia";
+    license = "Bitstream Vera License (https://www.gnome.org/fonts/#Final_Bitstream_Vera_Fonts)";
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/open-sans/default.nix b/nixpkgs/pkgs/data/fonts/open-sans/default.nix
new file mode 100644
index 000000000000..d8918a6567bb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/open-sans/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitLab }:
+
+stdenv.mkDerivation rec {
+  pname = "open-sans";
+  version = "1.11";
+
+  src = fetchFromGitLab {
+    domain = "salsa.debian.org";
+    owner = "fonts-team";
+    repo = "fonts-open-sans";
+    rev = "debian%2F1.11-1"; # URL-encoded form of "debian/1.11-1" tag
+    sha256 = "077hkvpmk3ghbqyb901w43b2m2a27lh8ddasyx1x7pdwyr2bjjl2";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Open Sans fonts";
+    longDescription = ''
+      Open Sans is a humanist sans serif typeface designed by Steve Matteson,
+      Type Director of Ascender Corp.
+    '';
+    homepage = https://www.opensans.com;
+    license = licenses.asl20;
+    platforms = platforms.all;
+    maintainers = [ maintainers.worldofpeace ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/orbitron/default.nix b/nixpkgs/pkgs/data/fonts/orbitron/default.nix
new file mode 100644
index 000000000000..e0ef1ecda813
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/orbitron/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "20110526";
+in fetchzip {
+  name = "orbitron-${version}";
+
+  url = https://github.com/theleagueof/orbitron/archive/13e6a52.zip;
+
+  postFetch = ''
+    otfdir=$out/share/fonts/opentype/orbitron
+    ttfdir=$out/share/fonts/ttf/orbitron
+    mkdir -p $otfdir $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";
+    description = ''
+     Geometric sans-serif for display purposes by Matt McInerney'';
+    longDescription = ''
+     Orbitron is a geometric sans-serif typeface intended for display
+     purposes. It features four weights (light, medium, bold, and
+     black), a stylistic alternative, small caps, and a ton of
+     alternate glyphs.
+
+     Orbitron was designed so that graphic designers in the future
+     will have some alternative to typefaces like Eurostile or Bank
+     Gothic. If you’ve ever seen a futuristic sci-fi movie, you have
+     may noticed that all other fonts have been lost or destroyed in
+     the apocalypse that led humans to flee earth. Only those very few
+     geometric typefaces have survived to be used on spaceship
+     exteriors, space station signage, monopolistic corporate
+     branding, uniforms featuring aerodynamic shoulder pads, etc. Of
+     course Orbitron could also be used on the posters for the movies
+     portraying this inevitable future.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.leenaars ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/overpass/default.nix b/nixpkgs/pkgs/data/fonts/overpass/default.nix
new file mode 100644
index 000000000000..c39bb945f48d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/overpass/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "3.0.3";
+in fetchzip rec {
+  name = "overpass-${version}";
+
+  url = "https://github.com/RedHatBrand/Overpass/archive/${version}.zip";
+
+  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 = "1m6p7rrlyqikjvypp4698sn0lp3a4z0z5al4swblfhg8qaxzv5pg";
+
+  meta = with stdenv.lib; {
+    homepage = http://overpassfont.org/;
+    description = "Font heavily inspired by Highway Gothic";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.rycee ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/oxygenfonts/default.nix b/nixpkgs/pkgs/data/fonts/oxygenfonts/default.nix
new file mode 100644
index 000000000000..109b3c3a0b3a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/oxygenfonts/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchzip }:
+
+fetchzip rec {
+  name = "oxygenfonts-20160824";
+
+  url = https://github.com/vernnobile/oxygenFont/archive/62db0ebe3488c936406685485071a54e3d18473b.zip;
+
+  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 = ''
+      Oxygen Font is a font family originally aimed as a desktop/gui
+      font for integrated use with the KDE desktop.
+
+      The basic concept for Oxygen Font was to design a clear,
+      legible, sans serif, that would be rendered with Freetype on
+      Linux-based devices. In addition a bold weight, plus regular and
+      bold italics, and a monospace version will be made.
+
+      Oxygen is constructed closely with the gridfitting aspects of
+      the Freetype font rendering engine. The oxygen fonts are also
+      autohinted with Werner Lemberg's "ttfautohint" library to
+      further the compatibility with the Freetype engine. The aim of
+      this approach is to produce a family of freetype-specific
+      desktop fonts whose appearance will stay uniform under different
+      screen render settings, unlike more traditionally designed
+      'screen fonts' that have tended to be designed for best
+      legibility on the Windows GDI render engine.
+
+      The main creator of Oxygen, Vernon Adams, suffered a heavy
+      traffic accident three months after its last release, causing him severe brain
+      injury. He finally passed away, sans oxygen, on August 25th 2016.
+      See: http://sansoxygen.com/
+    '';
+
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix b/nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix
new file mode 100644
index 000000000000..6124d0c79b66
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchzip }:
+
+fetchzip rec {
+  name = "paratype-pt-mono";
+
+  url = "http://www.paratype.ru/uni/public/PTMono.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/paratype
+  '';
+
+  sha256 = "07kl82ngby55khvzsvn831ddpc0q8djgz2y6gsjixkyjfdk2xjjm";
+
+  meta = with stdenv.lib; {
+    homepage = http://www.paratype.ru/public/; 
+    description = "An open Paratype font";
+
+    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
+
+    platforms = platforms.all;
+    maintainers = with maintainers; [ raskin ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix b/nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix
new file mode 100644
index 000000000000..499871a4228d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchzip }:
+
+fetchzip rec {
+  name = "paratype-pt-sans";
+
+  url = "http://www.paratype.ru/uni/public/PTSans.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/paratype
+  '';
+
+  sha256 = "01fkd417gv98jf3a6zyfi9w2dkqsbddy1vacga2672yf0kh1z1r0";
+
+  meta = with stdenv.lib; {
+    homepage = http://www.paratype.ru/public/; 
+    description = "An open Paratype font";
+
+    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
+
+    platforms = platforms.all;
+    maintainers = with maintainers; [ raskin ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix b/nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix
new file mode 100644
index 000000000000..409aaf526f81
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchzip }:
+
+fetchzip rec {
+  name = "paratype-pt-serif";
+
+  url = "http://www.paratype.ru/uni/public/PTSerif.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/paratype
+  '';
+
+  sha256 = "1iw5qi4ag3yp1lwmi91lb18gr768bqwl46xskaqnkhr9i9qp0v6d";
+
+  meta = with stdenv.lib; {
+    homepage = http://www.paratype.ru/public/; 
+    description = "An open Paratype font";
+
+    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
+
+    platforms = platforms.all;
+    maintainers = with maintainers; [ raskin ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/pecita/default.nix b/nixpkgs/pkgs/data/fonts/pecita/default.nix
new file mode 100644
index 000000000000..a90ff42a8e2a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/pecita/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl }:
+
+let
+
+  version = "5.4";
+
+in
+
+fetchurl rec {
+  name = "pecita-${version}";
+
+  url = "http://pecita.eu/b/Pecita.otf";
+
+  downloadToTemp = true;
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype
+    cp -v $downloadedFile $out/share/fonts/opentype/Pecita.otf
+  '';
+
+  recursiveHash = true;
+  sha256 = "0pwm20f38lcbfkdqkpa2ydpc9kvmdg0ifc4h2dmipsnwbcb5rfwm";
+
+  meta = with stdenv.lib; {
+    homepage = http://pecita.eu/police-en.php;
+    description = "Handwritten font with connected glyphs";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/penna/default.nix b/nixpkgs/pkgs/data/fonts/penna/default.nix
new file mode 100644
index 000000000000..b1244c47bf1b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/penna/default.nix
@@ -0,0 +1,32 @@
+{ stdenv,  fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "10";
+  pname = "penna";
+in
+
+fetchzip rec {
+  name = "${pname}-font-${majorVersion}.${minorVersion}";
+
+  url = "http://dotcolon.net/DL/font/${pname}.zip";
+  sha256 = "0hk15yndm56l6rbdykpkry2flffx0567mgjcqcnsx1iyzwwla5km";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype/${pname}
+    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://dotcolon.net/font/${pname}/";
+    description = "Geometric sans serif designed by Sora Sagano";
+    longDescription = ''
+     Penna is a geometric sans serif designed by Sora Sagano,
+     with outsized counters in the uppercase and a lowercase
+     with a small x-height.
+    '';
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.cc0;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/poly/default.nix b/nixpkgs/pkgs/data/fonts/poly/default.nix
new file mode 100644
index 000000000000..81fc7b799259
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/poly/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+  name = "poly";
+
+  regular = fetchurl {
+    # Finally a mirror that has a sha256 that doesn't change.
+    url = "https://googlefontdirectory.googlecode.com/hg-history/d7441308e589c9fa577f920fc4152fa32477a267/poly/src/Poly-Regular.otf";
+    sha256 = "1mxp2lvki6b1h7r9xcj1ld0g4z5y3dmsal85xam4yr764zpjzaiw";
+  };
+
+  italic = fetchurl {
+    # Finally a mirror that has a sha256 that doesn't change.
+    url = "https://googlefontdirectory.googlecode.com/hg-history/d7441308e589c9fa577f920fc4152fa32477a267/poly/src/Poly-Italic.otf";
+    sha256 = "1chzcy3kyi7wpr4iq4aj1v24fq1wwph1v5z96dimlqcrnvm66h2l";
+  };
+
+  nativeBuildInputs = [unzip];
+
+  sourceRoot = ".";
+
+  unpackPhase = "true";
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/opentype
+    cp ${regular} $out/share/fonts/opentype/Poly-Regular.otf
+    cp ${italic} $out/share/fonts/opentype/Poly-Italic.otf
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "11d7ldryfxi0wzfrg1bhw23a668a44vdb8gggxryvahmp5ahmq2h";
+
+  meta = {
+    description = "Medium contrast serif font";
+    longDescription = ''
+      With short ascenders and a very high x-height, Poly is efficient in small
+      sizes. Thanks to its careful balance between the x-height and glyph widths,
+      it allows more economy and legibility than standard web serifs, even in
+      small sizes. The aglutinative language for which it was designed contains
+      very long words. The goal was to develop a typeface that would tolerate
+      cramped tracking and that would increase the number of letters on a single
+      line. Poly is a Unicode typeface family that supports Open Type features
+      and languages that use the Latin script and its variants.
+    '';
+    homepage = http://www.fontsquirrel.com/fonts/poly;
+    license = stdenv.lib.licenses.ofl;
+    maintainers = with stdenv.lib.maintainers; [ relrod ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/powerline-fonts/default.nix b/nixpkgs/pkgs/data/fonts/powerline-fonts/default.nix
new file mode 100644
index 000000000000..c932c7f06c03
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/powerline-fonts/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchzip}:
+
+fetchzip {
+  name = "powerline-fonts-2018-11-11";
+
+  url = https://github.com/powerline/fonts/archive/e80e3eba9091dac0655a0a77472e10f53e754bb0.zip;
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype
+    unzip -j $downloadedFile '*.otf' -d $out/share/fonts/opentype
+
+    mkdir -p $out/share/fonts/truetype
+    unzip -j $downloadedFile '*.ttf' -d $out/share/fonts/truetype
+
+    mkdir -p $out/share/fonts/bdf
+    unzip -j $downloadedFile '*/BDF/*.bdf' -d $out/share/fonts/bdf
+
+    mkdir -p $out/share/fonts/pcf
+    unzip -j $downloadedFile '*/PCF/*.pcf.gz' -d $out/share/fonts/pcf
+
+    mkdir -p $out/share/fonts/psf
+    unzip -j $downloadedFile '*/PSF/*.psf.gz' -d $out/share/fonts/psf
+  '';
+
+  sha256 = "0irifak86gn7hawzgxcy53s22y215mxc2kjncv37h7q44jsqdqww";
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/powerline/fonts;
+    description = "Patched fonts for Powerline users";
+    longDescription = ''
+      Pre-patched and adjusted fonts for usage with the Powerline plugin.
+    '';
+    license = with licenses; [ asl20 free ofl ];
+    platforms = platforms.all;
+    maintainers = with maintainers; [ malyn ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/profont/default.nix b/nixpkgs/pkgs/data/fonts/profont/default.nix
new file mode 100644
index 000000000000..0c6eede969f1
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/profont/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchzip }:
+
+fetchzip rec {
+  name = "profont";
+
+  url = "http://tobiasjung.name/downloadfile.php?file=profont-x11.zip";
+
+  postFetch = ''
+    unzip -j $downloadedFile
+
+    mkdir -p $out/share/doc/$name $out/share/fonts/misc
+
+    cp LICENSE $out/share/doc/$name/LICENSE
+
+    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;
+    description = "A monospaced font created to be a most readable font for programming";
+    maintainers = with stdenv.lib.maintainers; [ myrl ];
+    license = licenses.mit;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/proggyfonts/default.nix b/nixpkgs/pkgs/data/fonts/proggyfonts/default.nix
new file mode 100644
index 000000000000..b2207e01df1a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/proggyfonts/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, mkfontdir, mkfontscale }:
+
+# adapted from https://aur.archlinux.org/packages/proggyfonts/
+
+stdenv.mkDerivation rec {
+  name = "proggyfonts-0.1";
+
+  src = fetchurl {
+    url = "https://web.archive.org/web/20150801042353/http://kaictl.net/software/proggyfonts-0.1.tar.gz";
+    sha256 = "1plcm1sjpa3hdqhhin48fq6zmz3ndm4md72916hd8ff0w6596q0n";
+  };
+
+  nativeBuildInputs = [ mkfontdir mkfontscale ];
+
+  installPhase =
+    ''
+      mkdir -p $out/share/doc/$name $out/share/fonts/misc $out/share/fonts/truetype
+
+      cp Licence.txt $out/share/doc/$name/LICENSE
+
+      rm Speedy.pcf # duplicated as Speedy11.pcf
+      for f in *.pcf; do
+        gzip -c "$f" > $out/share/fonts/misc/"$f".gz
+      done
+      cp *.bdf $out/share/fonts/misc
+      cp *.ttf $out/share/fonts/truetype
+
+      for f in misc truetype; do
+        cd $out/share/fonts/$f
+        mkfontscale
+        mkfontdir
+      done
+    '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1l1sxmzp3gcd2d32nxar6xwd1v1w18a9gfh57zmsrfpspnfbz7y1";
+
+  meta = with stdenv.lib; {
+    homepage = http://upperbounds.net;
+    description = "A set of fixed-width screen fonts that are designed for code listings";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = [ maintainers.myrl ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/quattrocento-sans/default.nix b/nixpkgs/pkgs/data/fonts/quattrocento-sans/default.nix
new file mode 100644
index 000000000000..34c8a74a7626
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/quattrocento-sans/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchzip}:
+
+let
+  version = "2.0";
+in fetchzip rec {
+  name = "quattrocento-sans-${version}";
+
+  url = "http://www.impallari.com/media/releases/quattrocento-sans-v${version}.zip";
+
+  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";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/quattrocento/default.nix b/nixpkgs/pkgs/data/fonts/quattrocento/default.nix
new file mode 100644
index 000000000000..a78001bb4ae6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/quattrocento/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchzip}:
+
+let
+  version = "1.1";
+in fetchzip rec {
+  name = "quattrocento-${version}";
+
+  url = "http://www.impallari.com/media/releases/quattrocento-v${version}.zip";
+
+  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";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/raleway/default.nix b/nixpkgs/pkgs/data/fonts/raleway/default.nix
new file mode 100644
index 000000000000..009295c58691
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/raleway/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "2016-08-30";
+in fetchzip {
+  name = "raleway-${version}";
+
+  url = https://github.com/impallari/Raleway/archive/fa27f47b087fc093c6ae11cfdeb3999ac602929a.zip;
+
+  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";
+
+    longDescription = ''
+      Initially designed by Matt McInerney as a single thin weight, it was
+      expanded into a 9 weight family by Pablo Impallari and Rodrigo Fuenzalida
+      in 2012 and iKerned by Igino Marini. In 2013 the Italics where added.
+
+      It is a display face and the download features both old style and lining
+      numerals, standard and discretionary ligatures, a pretty complete set of
+      diacritics, as well as a stylistic alternate inspired by more geometric
+      sans-serif typefaces than its neo-grotesque inspired default character
+      set.
+
+      It also has a sister display family, Raleway Dots.
+    '';
+
+    homepage = https://github.com/impallari/Raleway;
+    license = stdenv.lib.licenses.ofl;
+
+    maintainers = with stdenv.lib.maintainers; [ Profpatsch ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/redhat-liberation-fonts/default.nix b/nixpkgs/pkgs/data/fonts/redhat-liberation-fonts/default.nix
new file mode 100644
index 000000000000..0ee2a0c308c5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/redhat-liberation-fonts/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, fetchFromGitHub, fontforge, python3 }:
+
+let
+  inherit (python3.pkgs) fonttools;
+
+  common =
+    { version, repo, sha256, nativeBuildInputs, postPatch ? null, outputHash }:
+    stdenv.mkDerivation rec {
+      pname = "liberation-fonts";
+      inherit version;
+
+      src = fetchFromGitHub {
+        owner = "liberationfonts";
+        rev = version;
+        inherit repo sha256;
+      };
+
+      inherit nativeBuildInputs postPatch;
+
+      installPhase = ''
+        mkdir -p $out/share/fonts/truetype
+        cp -v $( find . -name '*.ttf') $out/share/fonts/truetype
+
+        mkdir -p "$out/share/doc/${pname}-${version}"
+        cp -v AUTHORS ChangeLog COPYING License.txt README "$out/share/doc/${pname}-${version}" || true
+      '';
+
+      outputHashAlgo = "sha256";
+      outputHashMode = "recursive";
+      inherit outputHash;
+
+      meta = with stdenv.lib; {
+        description = "Liberation Fonts, replacements for Times New Roman, Arial, and Courier New";
+        longDescription = ''
+          The Liberation Fonts are intended to be replacements for the three most
+          commonly used fonts on Microsoft systems: Times New Roman, Arial, and
+          Courier New. Since 2012 they are based on croscore fonts.
+
+          There are three sets: Sans (a substitute for Arial, Albany, Helvetica,
+          Nimbus Sans L, and Bitstream Vera Sans), Serif (a substitute for Times
+          New Roman, Thorndale, Nimbus Roman, and Bitstream Vera Serif) and Mono
+          (a substitute for Courier New, Cumberland, Courier, Nimbus Mono L, and
+          Bitstream Vera Sans Mono).
+        '';
+
+        license = licenses.ofl;
+        homepage = https://github.com/liberationfonts;
+        maintainers = [
+          maintainers.raskin
+        ];
+        platforms = platforms.unix;
+      };
+    };
+
+in {
+  liberation_ttf_v1 = common rec {
+    repo = "liberation-1.7-fonts";
+    version = "1.07.5";
+    nativeBuildInputs = [ fontforge ];
+    sha256 = "1ffl10mf78hx598sy9qr5m6q2b8n3mpnsj73bwixnd4985gsz56v";
+    outputHash = "16jn17p22z2vip58aza2dfg1ri31ki6z3hsnmidfqfi7v8k83vq4";
+  };
+  liberation_ttf_v2 = common rec {
+    repo = "liberation-fonts";
+    version = "2.00.4";
+    nativeBuildInputs = [ fontforge fonttools ];
+    postPatch = ''
+      substituteInPlace scripts/setisFixedPitch-fonttools.py --replace \
+        'font = ttLib.TTFont(fontfile)' \
+        'font = ttLib.TTFont(fontfile, recalcTimestamp=False)'
+    '';
+    sha256 = "14bn1zlhyr4qaz5z2sx4h115pnbd41ix1vky8fxm2lx76xrjjiaa";
+    outputHash = "14c0c5n4vzd5y0hf9jkh48h12kkd8hlg94npbmv41j449g6wv6vn";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ricty/default.nix b/nixpkgs/pkgs/data/fonts/ricty/default.nix
new file mode 100644
index 000000000000..add2c44cd480
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ricty/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, google-fonts, migu, fontforge, which }:
+
+stdenv.mkDerivation rec {
+  name = "ricty-${version}";
+  version = "4.1.0";
+
+  src = fetchurl {
+      url = "http://www.rs.tus.ac.jp/yyusa/ricty/ricty_generator-${version}.sh";
+      sha256 = "1cv0xh81fi6zdjb62zqjw46kbc89jvwbyllw1x1xbnpz2il6aavf";
+  };
+
+  unpackPhase = ''
+    install -m 0770 $src ricty_generator.sh
+  '';
+
+  patchPhase = ''
+    sed -i 's/fonts_directories=".*"/fonts_directories="$inconsolata $migu"/' ricty_generator.sh
+  '';
+
+  buildInputs = [ google-fonts migu fontforge which ];
+
+  buildPhase = ''
+    inconsolata=${google-fonts} migu=${migu} ./ricty_generator.sh auto
+  '';
+
+  installPhase = ''
+    install -m644 --target $out/share/fonts/truetype/ricty -D Ricty-*.ttf
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A high-quality Japanese font based on Inconsolata and Migu 1M";
+    homepage = http://www.rs.tus.ac.jp/yyusa/ricty.html;
+    license = licenses.unfree;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.mikoim ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/rictydiminished-with-firacode/default.nix b/nixpkgs/pkgs/data/fonts/rictydiminished-with-firacode/default.nix
new file mode 100644
index 000000000000..45618972c348
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/rictydiminished-with-firacode/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchgit, fontforge, pythonFull }:
+
+stdenv.mkDerivation rec {
+  name = "rictydiminished-with-firacode-${version}";
+  version = "0.0.1";
+  src = fetchgit {
+    url = "https://github.com/hakatashi/RictyDiminished-with-FiraCode.git";
+    rev = "refs/tags/${version}";
+    sha256 = "12lhb0k4d8p4lzw9k6hlsxpfpc15zfshz1h5cbaa88sb8n5jh360";
+    fetchSubmodules = true;
+  };
+
+  buildPhase = ''
+    substituteInPlace apply-feature.py --replace \
+      'ricty = ttLib.TTFont(options.in_font)' \
+      'ricty = ttLib.TTFont(options.in_font, recalcTimestamp=False)'
+    substituteInPlace build-py3.py --replace \
+      'datetime.date.today()' \
+      'datetime.date.fromtimestamp(float(os.environ["SOURCE_DATE_EPOCH"]))'
+
+    make
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/rictydiminished-with-firacode
+    cp *.ttf $out/share/fonts/rictydiminished-with-firacode
+  '';
+
+  nativeBuildInputs = [
+    fontforge
+    (pythonFull.withPackages (ps: [
+      ps.jinja2
+      ps."3to2"
+      ps.fonttools
+    ]))
+  ];
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "09ldviapljn4bb1mcxap2pkz7cq3wr2k2qialbnav5y7ii82acd4";
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/hakatashi/RictyDiminished-with-FiraCode;
+    description = "The best Japanese programming font meets the awesone ligatures of Firacode";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ mt-caret ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/roboto-mono/default.nix b/nixpkgs/pkgs/data/fonts/roboto-mono/default.nix
new file mode 100644
index 000000000000..175acb22d7b2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/roboto-mono/default.nix
@@ -0,0 +1,88 @@
+{ stdenv, fetchurl }:
+
+let
+  # last commit on the directory containing the fonts in the upstream repository
+  commit = "883939708704a19a295e0652036369d22469e8dc";
+in
+stdenv.mkDerivation rec {
+  name = "roboto-mono-${version}";
+  version = "2016-01-11";
+
+  srcs = [
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-Regular.ttf";
+      sha256 = "0r6g1xydy824xbbjilq6pvrv8611ga3q1702v5jj1ly5np6gpddz";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-Bold.ttf";
+      sha256 = "0x9qnrbd7hin873wjzrl6798bvakixd86qdw0z5b4sm56f7fjl32";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-Italic.ttf";
+      sha256 = "17aia6hgpjvvrl79y0f67ncr5y1nhyxj0dzqwdg3dycsa4kij59q";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-BoldItalic.ttf";
+      sha256 = "05gqfnps6qzxgyxrrmkmw0by3j88lf88v67n8jgi2chhhm0sw40q";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-Medium.ttf";
+      sha256 = "0ww96qd0cyj3waxf7a98hyd4cp8snajjvjmbhr66zilql8ylfzk0";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-MediumItalic.ttf";
+      sha256 = "1n2cvvcpwm68lazfh3s3xhj4mrc01x84mi2ackwf8ahd95fk9p5y";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-Light.ttf";
+      sha256 = "0na2sxz3n1km1ryz002spfa65d91fm48x0qcda2ac0rly7dgaqjf";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-LightItalic.ttf";
+      sha256 = "171fr8wsbmvfllsbmb9pcdax2qfzhbqzyxfn5bcrz9kx5k9x6198";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-Thin.ttf";
+      sha256 = "0pv54afyprajb16ksm5vklc1q76iv72v427wgamqzrzyvxgn6ymj";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-ThinItalic.ttf";
+      sha256 = "1ziyysl09z24l735y940g92rqhn9v4npwqzajj9m1kn0xz21r1aw";
+    })
+  ];
+
+  sourceRoot = "./";
+
+  unpackCmd = ''
+    ttfName=$(basename $(stripHash $curSrc))
+    cp $curSrc ./$ttfName
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    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";
+    longDescription = ''
+      Roboto Mono is a monospaced addition to the Roboto type family. Like
+      the other members of the Roboto family, the fonts are optimized for
+      readability on screens across a wide variety of devices and reading
+      environments. While the monospaced version is related to its variable
+      width cousin, it doesn't hesitate to change forms to better fit the
+      constraints of a monospaced environment. For example, narrow glyphs
+      like 'I', 'l' and 'i' have added serifs for more even texture while
+      wider glyphs are adjusted for weight. Curved caps like 'C' and 'O'
+      take on the straighter sides from Roboto Condensed.
+    '';
+    license = stdenv.lib.licenses.asl20;
+    maintainers = [ stdenv.lib.maintainers.romildo ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/roboto-slab/default.nix b/nixpkgs/pkgs/data/fonts/roboto-slab/default.nix
new file mode 100644
index 000000000000..c5ce13ad7ae4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/roboto-slab/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, fetchurl }:
+
+let
+  # last commit on the directory containing the fonts in the upstream repository
+  commit = "883939708704a19a295e0652036369d22469e8dc";
+in
+stdenv.mkDerivation rec {
+  name = "roboto-slab-${version}";
+  version = "2016-01-11";
+
+  srcs = [
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotoslab/RobotoSlab-Regular.ttf";
+      sha256 = "04180b5zk2nzll1rrgx8f1i1za66pk6pbrp0iww2xypjqra5zahk";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotoslab/RobotoSlab-Bold.ttf";
+      sha256 = "0ayl2hf5j33vixxfa7051hzjjxnx8zhag3rr0mmmnxpsn7md44ms";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotoslab/RobotoSlab-Light.ttf";
+      sha256 = "09riqgj9ixqjdb3mkzbs799cgmnp3ja3d6izlqkhpkfm52sgafqm";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotoslab/RobotoSlab-Thin.ttf";
+      sha256 = "1hd0m7lxhr261a4s2nb572ari6v53w2yd8yjr9i534iqfl4jcbsf";
+    })
+  ];
+
+  sourceRoot = "./";
+
+  unpackCmd = ''
+    ttfName=$(basename $(stripHash $curSrc))
+    cp $curSrc ./$ttfName
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    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";
+    longDescription = ''
+      Roboto has a dual nature. It has a mechanical skeleton and the forms
+      are largely geometric. At the same time, the font features friendly
+      and open curves. While some grotesks distort their letterforms to
+      force a rigid rhythm, Roboto doesn't compromise, allowing letters to
+      be settled into their natural width. This makes for a more natural
+      reading rhythm more commonly found in humanist and serif types.
+
+      This is the Roboto Slab family, which can be used alongside the normal
+      Roboto family and the Roboto Condensed family.
+    '';
+    license = stdenv.lib.licenses.asl20;
+    maintainers = [ stdenv.lib.maintainers.romildo ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/roboto/default.nix b/nixpkgs/pkgs/data/fonts/roboto/default.nix
new file mode 100644
index 000000000000..26697c523273
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/roboto/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "2.138";
+in fetchzip rec {
+  name = "roboto-${version}";
+
+  url = "https://github.com/google/roboto/releases/download/v${version}/roboto-unhinted.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -x __MACOSX/\* -d $out/share/fonts/truetype
+  '';
+
+  sha256 = "1s3c48wwvvwd3p4w3hfkri5v2c54j2bdxmd3bjv54klc5mrlh6z3";
+
+  meta = {
+    homepage = https://github.com/google/roboto;
+    description = "The Roboto family of fonts";
+    longDescription = ''
+      Google’s signature family of fonts, the default font on Android and
+      Chrome OS, and the recommended font for Google’s visual language,
+      Material Design.
+    '';
+    license = stdenv.lib.licenses.asl20;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/rounded-mgenplus/default.nix b/nixpkgs/pkgs/data/fonts/rounded-mgenplus/default.nix
new file mode 100644
index 000000000000..c6cb61b7bd1a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/rounded-mgenplus/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, p7zip }:
+
+let
+  pname = "rounded-mgenplus";
+  version = "20150602";
+
+in
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  inherit version;
+
+  src = fetchurl {
+    url = "https://osdn.jp/downloads/users/8/8598/${name}.7z";
+    sha256 = "1k15xvzd3s5ppp151wv31wrfq2ri8v96xh7i71i974rxjxj6gspc";
+  };
+
+  nativeBuildInputs = [ p7zip ];
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  unpackPhase = ''
+    7z x $src
+  '';
+
+  installPhase = ''
+    install -m 444 -D -t $out/share/fonts/${pname} ${pname}-*.ttf
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A Japanese font based on Rounded M+ and Noto Sans Japanese";
+    homepage = http://jikasei.me/font/rounded-mgenplus/;
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ mnacamura ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/route159/default.nix b/nixpkgs/pkgs/data/fonts/route159/default.nix
new file mode 100644
index 000000000000..892078a1151b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/route159/default.nix
@@ -0,0 +1,27 @@
+{ stdenv,  fetchzip }:
+
+let
+  majorVersion = "1";
+  minorVersion = "10";
+  pname = "route159";
+in
+
+fetchzip rec {
+  name = "${pname}-font-${majorVersion}.${minorVersion}";
+
+  url = "http://dotcolon.net/DL/font/${pname}_${majorVersion}${minorVersion}.zip";
+  sha256 = "1nv5csg73arvvwpac7ylh4j9n0s3qp79rbv2s4jvs2bf6gqhsq7h";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype/${pname}
+    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://dotcolon.net/font/${pname}/";
+    description = "A weighted sans serif font";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/sampradaya/default.nix b/nixpkgs/pkgs/data/fonts/sampradaya/default.nix
new file mode 100644
index 000000000000..90b32f251ef6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sampradaya/default.nix
@@ -0,0 +1,19 @@
+{ lib, fetchzip }:
+
+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/;
+    description = "Unicode-compliant Grantha font";
+    maintainers = with maintainers; [ mathnerd314 ];
+    license = licenses.ofl; # See font metadata
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix b/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix
new file mode 100644
index 000000000000..b8cc43c254a5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, p7zip }:
+
+let
+  version = "0.6.0";
+  sha256 = "08g3kzplp3v8kvni1vzl73fgh03xgfl8pwqyj7vwjihjdr1xfjyz";
+in fetchurl rec {
+  inherit sha256;
+
+  name = "sarasa-gothic-${version}";
+
+  url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${version}/sarasa-gothic-ttc-${version}.7z";
+
+  recursiveHash = true;
+  downloadToTemp = true;
+
+  postFetch = ''
+    ${p7zip}/bin/7z x $downloadedFile
+    mkdir -p $out/share/fonts
+    install -m644 *.ttc $out/share/fonts/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "SARASA GOTHIC is a Chinese & Japanese programming font based on Iosevka and Source Han Sans";
+    homepage = https://github.com/be5invis/Sarasa-Gothic;
+    license = licenses.ofl;
+    maintainers = [ maintainers.ChengCat ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/scheherazade/default.nix b/nixpkgs/pkgs/data/fonts/scheherazade/default.nix
new file mode 100644
index 000000000000..b35f537c06b9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/scheherazade/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "2.100";
+in fetchzip rec {
+  name = "scheherazade-${version}";
+
+  url = "http://software.sil.org/downloads/r/scheherazade/Scheherazade-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -l $downloadedFile
+    unzip -j $downloadedFile \*.ttf                        -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*/FONTLOG.txt  \*/README.txt -d $out/share/doc/${name}
+    unzip -j $downloadedFile \*/documentation/\*           -d $out/share/doc/${name}/documentation
+  '';
+
+  sha256 = "1g5f5f9gzamkq3kqyf7vbzvl4rdj3wmjf6chdrbxksrm3rnb926z";
+
+  meta = with stdenv.lib; {
+    homepage = https://software.sil.org/scheherazade/;
+    description = "A font designed in a similar style to traditional Naskh typefaces";
+    longDescription = ''
+      Scheherazade, named after the heroine of the classic Arabian Nights tale,
+      is designed in a similar style to traditional typefaces such as Monotype
+      Naskh, extended to cover the Unicode Arabic repertoire through Unicode
+      8.0.
+
+      Scheherazade provides a “simplified” rendering of Arabic script, using
+      basic connecting glyphs but not including a wide variety of additional
+      ligatures or contextual alternates (only the required lam-alef
+      ligatures). This simplified style is often preferred for clarity,
+      especially in non-Arabic languages, but may not be considered appropriate
+      in situations where a more elaborate style of calligraphy is preferred.
+
+      This package contains the regular and bold styles for the Scheherazade
+      font family, along with documentation.
+    '';
+    downloadPage = "https://software.sil.org/scheherazade/download/";
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/seshat/default.nix b/nixpkgs/pkgs/data/fonts/seshat/default.nix
new file mode 100644
index 000000000000..6b22716f1ebb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/seshat/default.nix
@@ -0,0 +1,37 @@
+{ stdenv,  fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "100";
+  pname = "seshat";
+in
+
+fetchzip rec {
+  name = "${pname}-font-${majorVersion}.${minorVersion}";
+
+  url = "http://dotcolon.net/DL/font/${pname}.zip";
+  sha256 = "1zzgc2d0jrris92p3irmxjhdq8aj99alz0z7dlz25qf37lcilrir";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype/${pname}
+    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://dotcolon.net/font/${pname}/";
+    description = "Roman body font designed for main text by Sora Sagano";
+    longDescription = ''
+      Seshat is a Roman body font designed for the main text. By
+      referring to the classical balance, we changed some lines by
+      omitting part of the lines such as "A" and "n".
+
+      Also, by attaching the strength of the thickness like Optima
+      to the main drawing, it makes it more sharp design.
+
+      It incorporates symbols and ligatures used in the European region.
+    '';
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.cc0;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/shrikhand/default.nix b/nixpkgs/pkgs/data/fonts/shrikhand/default.nix
new file mode 100644
index 000000000000..034c36a63cec
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/shrikhand/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "2016-03-03";
+in fetchzip {
+  name = "shrikhand-${version}";
+
+  url = https://github.com/jonpinhorn/shrikhand/raw/c11c9b0720fba977fad7cb4f339ebacdba1d1394/build/Shrikhand-Regular.ttf;
+
+  postFetch = "install -D -m644 $downloadedFile $out/share/fonts/truetype/Shrikhand-Regular.ttf";
+
+  sha256 = "0s54k9cs1g2yz6lwg5gakqb12vg5qkfdz3pc8mh7mib2s6q926hs";
+
+  meta = with stdenv.lib; {
+    homepage = https://jonpinhorn.github.io/shrikhand/;
+    description = "A vibrant and playful typeface for both Latin and Gujarati writing systems";
+    maintainers = with maintainers; [ sternenseemann ];
+    platforms = platforms.all;
+    license = licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/signwriting/default.nix b/nixpkgs/pkgs/data/fonts/signwriting/default.nix
new file mode 100644
index 000000000000..883e43b4381f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/signwriting/default.nix
@@ -0,0 +1,32 @@
+{ lib, runCommand, fetchurl }:
+
+runCommand "signwriting-1.1.4" {
+  src1 = fetchurl {
+    url = "https://github.com/Slevinski/signwriting_2010_fonts/raw/61c8e7123a1168657b5d34d85266a637f67b9d2b/fonts/SignWriting%202010.ttf";
+    name = "SignWriting_2010.ttf";
+    sha256 = "1abjzykbjx2hal8mrxp51rvblv3q84akyn9qhjfaj20rwphkf5zj";
+  };
+
+  src2 = fetchurl {
+    url = "https://github.com/Slevinski/signwriting_2010_fonts/raw/61c8e7123a1168657b5d34d85266a637f67b9d2b/fonts/SignWriting%202010%20Filling.ttf";
+    name = "SignWriting_2010_Filling.ttf";
+    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";
+    maintainers = with maintainers; [ mathnerd314 ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
+''
+  mkdir -p $out/share/fonts/truetype
+  cp $src1 $out/share/fonts/truetype/SignWriting_2010.ttf
+  cp $src2 $out/share/fonts/truetype/SignWriting_2010_Filling.ttf
+''
diff --git a/nixpkgs/pkgs/data/fonts/siji/default.nix b/nixpkgs/pkgs/data/fonts/siji/default.nix
new file mode 100644
index 000000000000..99f0d913b857
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/siji/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchzip }:
+
+let
+  date = "2016-05-13";
+in fetchzip {
+  name = "siji-${date}";
+
+  url = https://github.com/stark/siji/archive/95369afac3e661cb6d3329ade5219992c88688c1.zip;
+
+  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";
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.asymmetric ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/source-code-pro/default.nix b/nixpkgs/pkgs/data/fonts/source-code-pro/default.nix
new file mode 100644
index 000000000000..95c568821879
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-code-pro/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "2.030";
+in fetchzip {
+  name = "source-code-pro-${version}";
+
+  url = https://github.com/adobe-fonts/source-code-pro/archive/2.030R-ro/1.050R-it.zip;
+
+  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 ];
+    platforms = with stdenv.lib.platforms; all;
+    homepage = https://blog.typekit.com/2012/09/24/source-code-pro/;
+    license = stdenv.lib.licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/source-han-code-jp/default.nix b/nixpkgs/pkgs/data/fonts/source-han-code-jp/default.nix
new file mode 100644
index 000000000000..fc016a457c22
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-han-code-jp/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchzip }:
+
+let
+  pname = "source-han-code-jp";
+  version = "2.011R";
+in fetchzip {
+  name = "${pname}-${version}";
+
+  url = "https://github.com/adobe-fonts/${pname}/archive/${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "184vrjkymcm29k1cx00cdvjchzqr1w17925lmh85f0frx7vwljcd";
+
+  meta = {
+    description = "A monospaced Latin font suitable for coding";
+    maintainers = with stdenv.lib.maintainers; [ mt-caret ];
+    platforms = with stdenv.lib.platforms; all;
+    homepage = https://blogs.adobe.com/CCJKType/2015/06/source-han-code-jp.html;
+    license = stdenv.lib.licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/source-han-sans/default.nix b/nixpkgs/pkgs/data/fonts/source-han-sans/default.nix
new file mode 100644
index 000000000000..dc0d31758514
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-han-sans/default.nix
@@ -0,0 +1,53 @@
+{stdenv, fetchzip}:
+
+let
+  makePackage = {variant, language, region, sha256}: let
+    version = "1.004R";
+    revision = "5f5311e71cb628321cc0cffb51fb38d862b726aa";
+  in fetchzip {
+    name = "source-han-sans-${variant}-${version}";
+
+    url = "https://github.com/adobe-fonts/source-han-sans/raw/${revision}/SubsetOTF/SourceHanSans${region}.zip";
+
+    postFetch = ''
+      mkdir -p $out/share/fonts
+      unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    '';
+
+    inherit sha256;
+
+    meta = {
+      description = "${language} subset of an open source Pan-CJK sans-serif typeface";
+      homepage = https://github.com/adobe-fonts/source-han-sans;
+      license = stdenv.lib.licenses.ofl;
+      platforms = stdenv.lib.platforms.unix;
+      maintainers = with stdenv.lib.maintainers; [ taku0 ];
+    };
+  };
+in
+{
+  japanese = makePackage {
+    variant = "japanese";
+    language = "Japanese";
+    region = "JP";
+    sha256 = "194zapswaqly8ycx3k66vznlapvpyhdigp3sabsl4hn87j9xsc5v";
+  };
+  korean = makePackage {
+    variant = "korean";
+    language = "Korean";
+    region = "KR";
+    sha256 = "0xij6mciiqgpwv1agqily2jji377x084k7fj4rpv6z0r5vvhqr08";
+  };
+  simplified-chinese = makePackage {
+    variant = "simplified-chinese";
+    language = "Simplified Chinese";
+    region = "CN";
+    sha256 = "038av18d45qr85bgx95j2fm8j64d72nsm9xzg0lpwr9xwni2sbx0";
+  };
+  traditional-chinese = makePackage {
+    variant = "traditional-chinese";
+    language = "Traditional Chinese";
+    region = "TW";
+    sha256 = "1mzcv5hksyxplyv5q3w5nr1xz73hdnvip5gicz35j0by4gc739lr";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/source-han-serif/default.nix b/nixpkgs/pkgs/data/fonts/source-han-serif/default.nix
new file mode 100644
index 000000000000..ac85d31d3316
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-han-serif/default.nix
@@ -0,0 +1,53 @@
+{stdenv, fetchzip}:
+
+let
+  makePackage = {variant, language, region, sha256}: let
+    version = "1.000R";
+    revision = "f6cf97d92b22e7bd77e355a61fe549ae44b6de76";
+  in fetchzip {
+    name = "source-han-serif-${variant}-${version}";
+
+    url = "https://github.com/adobe-fonts/source-han-serif/raw/${revision}/SubsetOTF/SourceHanSerif${region}.zip";
+
+    postFetch = ''
+      mkdir -p $out/share/fonts/opentype
+      unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    '';
+
+    inherit sha256;
+
+    meta = {
+      description = "${language} subset of an open source Pan-CJK serif typeface";
+      homepage = https://github.com/adobe-fonts/source-han-sans;
+      license = stdenv.lib.licenses.ofl;
+      platforms = stdenv.lib.platforms.unix;
+      maintainers = with stdenv.lib.maintainers; [ taku0 ];
+    };
+  };
+in
+{
+  japanese = makePackage {
+    variant = "japanese";
+    language = "Japanese";
+    region = "JP";
+    sha256 = "0cklcy6y3r7pg8z43fzd8zl5g46bkqa1iy0li49rm0fgdaw7kin2";
+  };
+  korean = makePackage {
+    variant = "korean";
+    language = "Korean";
+    region = "KR";
+    sha256 = "0lxrr978djsych8fmbl57n1c9c7ihl61w0b9q4plw27vd6p41fza";
+  };
+  simplified-chinese = makePackage {
+    variant = "simplified-chinese";
+    language = "Simplified Chinese";
+    region = "CN";
+    sha256 = "0k3x4kncjnbipf4i3lkk6b33zpf1ckp5648z51v48q47l3zqpm6p";
+  };
+  traditional-chinese = makePackage {
+    variant = "traditional-chinese";
+    language = "Traditional Chinese";
+    region = "TW";
+    sha256 = "00bi66nlkrargmmf4av24qfd716py7a9smcvr4xnll7fffldxv06";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/source-sans-pro/default.nix b/nixpkgs/pkgs/data/fonts/source-sans-pro/default.nix
new file mode 100644
index 000000000000..1561605b6ad0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-sans-pro/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchzip }:
+
+fetchzip {
+  name = "source-sans-pro-2.040";
+
+  url = "https://github.com/adobe-fonts/source-sans-pro/releases/download/2.040R-ro%2F1.090R-it/source-sans-pro-2.040R-ro-1.090R-it.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype $out/share/fonts/truetype $out/share/fonts/variable
+    unzip -j $downloadedFile "*/OTF/*.otf" -d $out/share/fonts/opentype
+    unzip -j $downloadedFile "*/TTF/*.ttf" -d $out/share/fonts/truetype
+    unzip -j $downloadedFile "*/VAR/*.otf" -d $out/share/fonts/variable
+  '';
+
+  sha256 = "1n7z9xpxls74xxjsa61df1ln86y063m07w1f4sbxpjaa0frim4pp";
+
+  meta = with stdenv.lib; {
+    homepage = https://sourceforge.net/adobe/sourcesans;
+    description = "A set of OpenType fonts designed by Adobe for UIs";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ttuegel ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/source-serif-pro/default.nix b/nixpkgs/pkgs/data/fonts/source-serif-pro/default.nix
new file mode 100644
index 000000000000..d58ccc338133
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-serif-pro/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "1.017";
+in fetchzip {
+  name = "source-serif-pro-${version}";
+
+  url = "https://github.com/adobe-fonts/source-serif-pro/archive/${version}R.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "04447fbj7lwr2qmmvy7d7624qdh4in7hp627nsc8vbpxmb7bbmn1";
+
+  meta = with stdenv.lib; {
+    homepage = https://sourceforge.net/adobe/sourceserifpro;
+    description = "A set of OpenType fonts to complement Source Sans Pro";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ttuegel ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/stix-otf/default.nix b/nixpkgs/pkgs/data/fonts/stix-otf/default.nix
new file mode 100644
index 000000000000..1ae85da3f7f3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/stix-otf/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchzip}:
+
+let
+  version = "1.1.1";
+in fetchzip rec {
+  name = "stix-otf-${version}";
+
+  url = "mirror://sourceforge/stixfonts/STIXv${version}-word.zip";
+
+  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";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/stix-two/default.nix b/nixpkgs/pkgs/data/fonts/stix-two/default.nix
new file mode 100644
index 000000000000..f535c0d7e7b5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/stix-two/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "2.0.0";
+in fetchzip {
+  name = "stix-two-${version}";
+
+  url = "mirror://sourceforge/stixfonts/Current%20Release/STIXv${version}.zip";
+
+  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";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.rycee ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/tai-languages/default.nix b/nixpkgs/pkgs/data/fonts/tai-languages/default.nix
new file mode 100644
index 000000000000..7778c4a98b81
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tai-languages/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchzip }:
+
+{
+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;
+    description = "Unicode-compliant Tai Ahom font";
+    maintainers = with maintainers; [ mathnerd314 ];
+    license = licenses.ofl; # See font metadata
+    platforms = platforms.all;
+  };
+};
+
+# TODO: package others (Khamti Shan, Tai Aiton, Tai Phake, and/or Assam Tai)
+
+}
diff --git a/nixpkgs/pkgs/data/fonts/tempora-lgc/default.nix b/nixpkgs/pkgs/data/fonts/tempora-lgc/default.nix
new file mode 100644
index 000000000000..1cab3da200e6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tempora-lgc/default.nix
@@ -0,0 +1,43 @@
+{stdenv, fetchurl}:
+let
+  srcs = [
+    (fetchurl {
+      url = http://www.ttfotf.com/download-font/tempora-lgc-unicode-bold-italic.otf;
+      sha256 = "1yfbi62j6gjmzglxz29m6x6lxqpxghcqjjh916qn8in74ba5v0gq";
+    })
+    (fetchurl {
+      url = http://www.ttfotf.com/download-font/tempora-lgc-unicode-bold.otf;
+      sha256 = "0bfbl1h9h1022km2rg1zwl9lpabhnwdsvzdp0bwmf0wbm62550cp";
+    })
+    (fetchurl {
+      url = http://www.ttfotf.com/download-font/tempora-lgc-unicode-italic.otf;
+      sha256 = "10m9j4bvr6c4zp691wxm4hvzhph2zlfsxk1nmbsb9vn1i6vfgz04";
+    })
+    (fetchurl {
+      url = http://www.ttfotf.com/download-font/tempora-lgc-unicode.otf;
+      sha256 = "0iwa8wyydcpjss6d1jy4jibqxpvzph4vmaxwwmndpsqy1fz64y9i";
+    })
+  ];
+  nativeBuildInputs = [
+  ];
+in
+stdenv.mkDerivation {
+  name = "tempora-lgc";
+  inherit nativeBuildInputs;
+  inherit srcs;
+  phases = "installPhase";
+  installPhase = ''
+    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 ;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/tenderness/default.nix b/nixpkgs/pkgs/data/fonts/tenderness/default.nix
new file mode 100644
index 000000000000..29682cc12990
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tenderness/default.nix
@@ -0,0 +1,27 @@
+{ stdenv,  fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "601";
+  pname = "tenderness";
+in
+
+fetchzip rec {
+  name = "${pname}-font-${majorVersion}.${minorVersion}";
+
+  url = "http://dotcolon.net/DL/font/${pname}_${majorVersion}${minorVersion}.zip";
+  sha256 = "0d88l5mzq0k63zsmb8d5w3hfqxy04vpv4j0j8nmj1xv6kikhhybh";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype/${pname}
+    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://dotcolon.net/font/${pname}/";
+    description = "Serif font designed by Sora Sagano with old-style figures";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/terminus-font-ttf/default.nix b/nixpkgs/pkgs/data/fonts/terminus-font-ttf/default.nix
new file mode 100644
index 000000000000..12c46a12b938
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/terminus-font-ttf/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "4.46.0";
+in fetchzip rec {
+  name = "terminus-font-ttf-${version}";
+
+  url = "http://files.ax86.net/terminus-ttf/files/${version}/terminus-ttf-${version}.zip";
+
+  postFetch = ''
+    unzip -j $downloadedFile
+
+    for i in *.ttf; do
+      local destname="$(echo "$i" | sed -E 's|-[[:digit:].]+\.ttf$|.ttf|')"
+      install -Dm 644 "$i" "$out/share/fonts/truetype/$destname"
+    done
+
+    install -Dm 644 COPYING "$out/share/doc/terminus-font-ttf/COPYING"
+  '';
+
+  sha256 = "129rfmwnm2bhp99w4zl262l6sdx8pddc0gf1ispjqs6dz3m3mdkp";
+
+  meta = with stdenv.lib; {
+    description = "A clean fixed width TTF font";
+    longDescription = ''
+      Monospaced bitmap font designed for long work with computers
+      (TTF version, mainly for Java applications)
+    '';
+    homepage = http://files.ax86.net/terminus-ttf;
+    license = licenses.ofl;
+    maintainers = with maintainers; [ okasu ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/terminus-font/default.nix b/nixpkgs/pkgs/data/fonts/terminus-font/default.nix
new file mode 100644
index 000000000000..c1ee2250c9a2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/terminus-font/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, python3, bdftopcf, mkfontdir, mkfontscale }:
+
+stdenv.mkDerivation rec {
+  name = "terminus-font-4.46";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/terminus-font/${name}/${name}.tar.gz";
+    sha256 = "1kavqw38aarz0vpwz4b7l6l8xkyc5096zaf9ypqnvdwraqz46aaf";
+  };
+
+  buildInputs = [ python3 bdftopcf mkfontdir mkfontscale ];
+
+  patchPhase = ''
+    substituteInPlace Makefile --replace 'fc-cache' '#fc-cache'
+  '';
+
+  configurePhase = ''
+    sh ./configure --prefix=$out
+  '';
+
+  installPhase = ''
+    make install fontdir
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A clean fixed width font";
+    longDescription = ''
+      Terminus Font is designed for long (8 and more hours per day) work
+      with computers. Version 4.30 contains 850 characters, covers about
+      120 language sets and supports ISO8859-1/2/5/7/9/13/15/16,
+      Paratype-PT154/PT254, KOI8-R/U/E/F, Esperanto, many IBM, Windows and
+      Macintosh code pages, as well as the IBM VGA, vt100 and xterm
+      pseudographic characters.
+
+      The sizes present are 6x12, 8x14, 8x16, 10x20, 11x22, 12x24, 14x28 and
+      16x32. The styles are normal and bold (except for 6x12), plus
+      EGA/VGA-bold for 8x14 and 8x16.
+    '';
+    homepage = http://www.is-vn.bg/hamster/;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ astsmtl ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/tewi/default.nix b/nixpkgs/pkgs/data/fonts/tewi/default.nix
new file mode 100644
index 000000000000..32d859bf53bd
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tewi/default.nix
@@ -0,0 +1,51 @@
+{stdenv, fetchgit, bdftopcf, mkfontdir, mkfontscale}:
+
+stdenv.mkDerivation rec {
+  date = "2015-06-07";
+  name = "tewi-font-${date}";
+
+  src = fetchgit {
+    url = "https://github.com/lucy/tewi-font";
+    rev = "ff930e66ae471da4fdc226ffe65fd1ccd13d4a69";
+    sha256 = "0c7k847cp68w20frzsdknpss2cwv3lp970asyybv65jxyl2jz3iq";
+  };
+
+  nativeBuildInputs = [ bdftopcf mkfontdir mkfontscale ];
+  buildPhase = ''
+    for i in *.bdf; do
+        bdftopcf -o ''${i/bdf/pcf} $i
+    done
+
+    gzip -n *.pcf
+  '';
+
+  installPhase = ''
+    fontDir="$out/share/fonts/misc"
+    mkdir -p "$fontDir"
+    mv *.pcf.gz "$fontDir"
+
+    cd "$fontDir"
+    mkfontdir
+    mkfontscale
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "14dv3m1svahjyb9c1x1570qrmlnynzg0g36b10bqqs8xvhix34yq";
+
+  meta = with stdenv.lib; {
+    description = "A nice bitmap font, readable even at small sizes";
+    longDescription = ''
+      Tewi is a bitmap font, readable even at very small font sizes. This is
+      particularily useful while programming, to fit a lot of code on your
+      screen.
+    '';
+    homepage = https://github.com/lucy/tewi-font;
+    license = {
+      fullName = "GNU General Public License with a font exception";
+      url = "https://www.gnu.org/licenses/gpl-faq.html#FontException";
+    };
+    maintainers = [ maintainers.fro_ozen ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/tex-gyre-math/default.nix b/nixpkgs/pkgs/data/fonts/tex-gyre-math/default.nix
new file mode 100644
index 000000000000..3f9726ee094f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tex-gyre-math/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchzip }:
+
+let
+  variants = {
+    bonum = {
+      displayName = "Bonum";
+      version = "1.005";
+      sha256 = "1b6x7siypyxp1lhq7xxdqafwbn6p2p3xm3jb38q999sv8cgslxz8";
+      outputHash = "1zjaxkzidqmxakh9d61n0by9mi8hrmir45jppjj6hzwhm3rvknff";
+    };
+    pagella = {
+      displayName = "Pagella";
+      version = "1.632";
+      sha256 = "0f4cgq9w0lc1fbcbfqiv19mdhivbsscl13jmb0ln685641ci2sjr";
+      outputHash = "0wz2n1dpx9b8a0qgqy8vl712fxhi87mhcda281xaad62chndwf6k";
+    };
+    schola = {
+      displayName = "Schola";
+      version = "1.533";
+      sha256 = "0caqgkz7gz700h5a1mai0gq8hv7skrgs5nnrs1f7zw1mb9g53ya9";
+      outputHash = "0jk4bpxki95a9lmfj4cgpnv1jwlkh8qixbkf498n1x7hkaz03f5n";
+    };
+    termes = {
+      displayName = "Termes";
+      version = "1.543";
+      sha256 = "10ayqfpryfn1l35hy0vwyjzw3a6mfsnzgf78vsnccgk2gz1g9vhz";
+      outputHash = "0pa433cgshlypbyrrlp3qq0wg972rngcp37pr8pxdfshgz13q1mm";
+    };
+  };
+
+  mkVariant = variant: current:
+    let dotless_version = builtins.replaceStrings ["."] [""] current.version; in
+    stdenv.mkDerivation rec {
+      name = "tex-gyre-${variant}-math-${current.version}";
+      version = "${current.version}";
+
+      src = fetchzip {
+        url = "www.gust.org.pl/projects/e-foundry/tg-math/download/texgyre${variant}-math-${dotless_version}.zip";
+        sha256 = current.sha256;
+      };
+
+      installPhase = ''
+        mkdir -p $out/share/fonts/opentype/
+        mkdir -p $out/share/doc/${name}/
+        cp -v opentype/*.otf $out/share/fonts/opentype/
+        cp -v doc/*.txt $out/share/doc/${name}/
+      '';
+
+      outputHashAlgo = "sha256";
+      outputHashMode = "recursive";
+      outputHash = current.outputHash;
+
+      meta = with stdenv.lib; {
+        longDescription = ''
+          TeX Gyre ${current.displayName} Math is a math companion for the TeX Gyre
+          ${current.displayName} family of fonts (see
+          http://www.gust.org.pl/projects/e-foundry/tex-gyre/) in the OpenType format.
+        '';
+        homepage = http://www.gust.org.pl/projects/e-foundry/tg-math;
+        # "The TeX Gyre Math fonts are licensed under the GUST Font License (GFL),
+        # which is a free license, legally equivalent to the LaTeX Project Public
+        # License (LPPL), version 1.3c or later." - GUST website
+        license = licenses.lppl13c;
+        maintainers = with maintainers; [ siddharthist ];
+        platforms = platforms.all;
+      };
+    };
+in
+  stdenv.lib.mapAttrs mkVariant variants
diff --git a/nixpkgs/pkgs/data/fonts/tex-gyre/default.nix b/nixpkgs/pkgs/data/fonts/tex-gyre/default.nix
new file mode 100644
index 000000000000..3229e58506d9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tex-gyre/default.nix
@@ -0,0 +1,84 @@
+{ stdenv, fetchzip }:
+
+let
+  mkVariant = variant: { version, abbreviation, sha256, outputHash }: stdenv.mkDerivation {
+    name = "tex-gyre-${variant}-${version}";
+    inherit version;
+
+    src = fetchzip {
+      url = "http://www.gust.org.pl/projects/e-foundry/tex-gyre/${variant}/${abbreviation}${version}otf.zip";
+      stripRoot = false;
+      inherit sha256;
+    };
+
+    installPhase = ''
+      mkdir -p $out/share/fonts/opentype/
+      # Pagella & Adventor are not flat archives
+      test -d "${abbreviation}${version}otf" && cd "${abbreviation}${version}otf"
+      cp -v *.otf $out/share/fonts/opentype/
+    '';
+
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+    outputHash = outputHash;
+
+    meta = with stdenv.lib; {
+      homepage = http://www.gust.org.pl/projects/e-foundry/tex-gyre;
+      # "The TeX Gyre fonts are licensed under the GUST Font License (GFL),
+      # which is a free license, legally equivalent to the LaTeX Project Public
+      # License (LPPL), version 1.3c or later." - GUST website
+      license = licenses.lppl13c;
+      maintainers = with maintainers; [ jtojnar ];
+      platforms = platforms.all;
+    };
+  };
+in stdenv.lib.mapAttrs mkVariant {
+  adventor = {
+    version = "2_501";
+    sha256 = "0qjg3x0adfppyx3x33cm07ww9i9sl88xaq07m7wfip8rmyp567fn";
+    outputHash = "117h6f02m1r54b4f1a98q5kkjchl5pv9ibm1jla6xrzhk2pchb27";
+    abbreviation = "qag";
+  };
+  bonum = {
+    version = "2.004";
+    sha256 = "0qbrs98knx4h0b297c5n3vav4mkal1a95ai2dzmdc10pghfzl8vv";
+    outputHash = "0bid8gzwz50ylmm8jyqf9s4nfvy6cp1x34wbyrh4gyk1ki6hf3z1";
+    abbreviation = "qbk";
+  };
+  chorus = {
+    version = "2.003";
+    sha256 = "1b0zak27fzmapwbf2jasvsd95vhnqyc92n985d1lc1ivwja1zgfa";
+    outputHash = "0fqifd45c1ys6y98b66lmldfbv7wjb2414fs9swicv4n7xvl3cp1";
+    abbreviation = "qzc";
+  };
+  cursor = {
+    version = "2.004";
+    sha256 = "0ck3jm33bk2xsxp5d2irzd3j24zb49f0gnjvd1nikg1ivk8w85ng";
+    outputHash = "0i76835xqlkrnlx303mx63m0f4899j056c2ag2fl6p9qk8s4rskp";
+    abbreviation = "qcr";
+  };
+  heros = {
+    version = "2.004";
+    sha256 = "1fj2srxxf6ap913y5yd3dn4jzg828j7381gifs39nm5lnzmgw78y";
+    outputHash = "16y76ab46fxm9k8wfmwx4w0cl96yrmjywz587lyr08s0agp1v3kf";
+    abbreviation = "qhv";
+  };
+  pagella = {
+    version ="2_501";
+    sha256 = "1kccaxs3vk93la2pz4nv05hx1x3diyla49cz4l33zifdcp2zgg9d";
+    outputHash = "1nnjsgplimh29502pkd19rvfg93x31svxxmx4x7h51njrx1j8qa8";
+    abbreviation = "qpl";
+  };
+  schola = {
+    version = "2.005";
+    sha256 = "05z3gk4mm0sa7wwjcv31j2xlzqhwhcncpamn0kn9y0221cdknyp8";
+    outputHash = "1yqq1ngcylhldrh1v35l439k72szq9m4gx6g0wh235fk65chb2bm";
+    abbreviation = "qcs";
+  };
+  termes = {
+    version = "2.004";
+    sha256 = "1aq3yqbgkc3z20dkcqyhicsyq0afbgg4l397z96sd8a16jyz2x8k";
+    outputHash = "1igw821m601h8937pix6yish4d8fxmz3h4j9hripf41bxsiafzzg";
+    abbreviation = "qtm";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/theano/default.nix b/nixpkgs/pkgs/data/fonts/theano/default.nix
new file mode 100644
index 000000000000..2dbe7e720d2f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/theano/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "2.0";
+in fetchzip rec {
+  name = "theano-${version}";
+
+  url = "https://github.com/akryukov/theano/releases/download/v${version}/theano-${version}.otf.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype
+    mkdir -p $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";
+    maintainers = with maintainers; [ raskin rycee ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/tipa/default.nix b/nixpkgs/pkgs/data/fonts/tipa/default.nix
new file mode 100644
index 000000000000..1a4954e6ce40
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tipa/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "tipa-1.3";
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/t/tipa/tipa_1.3.orig.tar.gz";
+    sha256 = "1q1sisxdcd2zd9b7mnagr2mxf9v3n1r4s5892zx5ly4r0niyya9m";
+  };
+
+  installPhase = ''
+    export PREFIX="$out/texmf-dist"
+    mkdir -p "$PREFIX" "$out/share"
+    make install PREFIX="$PREFIX"
+
+    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/nixpkgs/pkgs/data/fonts/tlwg/default.nix b/nixpkgs/pkgs/data/fonts/tlwg/default.nix
new file mode 100644
index 000000000000..90f1b1da908a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tlwg/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, fontforge }:
+
+stdenv.mkDerivation rec {
+  name = "tlwg-${version}";
+  version = "0.6.4";
+
+  src = fetchFromGitHub {
+    owner = "tlwg";
+    repo = "fonts-tlwg";
+    rev = "v${version}";
+    sha256 = "13bx98ygyyizb15ybdv3856lkxhx1fss8f7aiqmp0lk9zgw4mqyk";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  buildInputs = [ fontforge ];
+
+  preAutoreconf = "echo ${version} > VERSION";
+
+  meta = with stdenv.lib; {
+    description = "A collection of Thai scalable fonts available under free licenses";
+    homepage = https://linux.thai.net/projects/fonts-tlwg;
+    license = with licenses; [ gpl2 publicDomain lppl13c free ];
+    platforms = platforms.unix;
+    maintainers = [ maintainers.yrashk ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ttf-bitstream-vera/default.nix b/nixpkgs/pkgs/data/fonts/ttf-bitstream-vera/default.nix
new file mode 100644
index 000000000000..a4d479ea33c5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ttf-bitstream-vera/default.nix
@@ -0,0 +1,20 @@
+{stdenv, fetchzip}:
+
+fetchzip {
+  name = "ttf-bitstream-vera-1.10";
+
+  url = mirror://gnome/sources/ttf-bitstream-vera/1.10/ttf-bitstream-vera-1.10.tar.bz2;
+
+  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/nixpkgs/pkgs/data/fonts/ttf-envy-code-r/default.nix b/nixpkgs/pkgs/data/fonts/ttf-envy-code-r/default.nix
new file mode 100644
index 000000000000..2c58f197f188
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ttf-envy-code-r/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchzip }:
+
+let
+  pname = "ttf-envy-code-r";
+  version = "PR7";
+in fetchzip {
+  name = "${pname}-0.${version}";
+
+  url = "http://download.damieng.com/fonts/original/EnvyCodeR-${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/${pname}"
+  '';
+
+  sha256 = "0x0r07nax68cmz7490x2crzzgdg4j8fg63wppcmjqm0230bggq2z";
+
+  meta = with stdenv.lib; {
+    homepage = http://damieng.com/blog/tag/envy-code-r;
+    description = "Free scalable coding font by DamienG";
+    license = licenses.unfree;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.lyt ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix b/nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix
new file mode 100644
index 000000000000..d7963f6395ad
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, inkscape, imagemagick, potrace, svgo, scfbuild }:
+
+stdenv.mkDerivation rec {
+  name = "twemoji-color-font-${meta.version}";
+  src = fetchFromGitHub {
+    owner = "eosrei";
+    repo = "twemoji-color-font";
+    rev = "v${meta.version}";
+    sha256 = "07yawvbdkk15d7ac9dj7drs1rqln9sba1fd6jx885ms7ww2sfm7r";
+  };
+
+  nativeBuildInputs = [ inkscape imagemagick potrace svgo scfbuild ];
+  # silence inkscape errors about non-writable home
+  preBuild = "export HOME=\"$NIX_BUILD_ROOT\"";
+  makeFlags = [ "SCFBUILD=${scfbuild}/bin/scfbuild" ];
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    install -Dm755 build/TwitterColorEmoji-SVGinOT.ttf $out/share/fonts/truetype/TwitterColorEmoji-SVGinOT.ttf
+    install -Dm644 linux/fontconfig/56-twemoji-color.conf $out/etc/fonts/conf.d/56-twemoji-color.conf
+  '';
+
+  meta = with stdenv.lib; {
+    version = "11.2.0";
+    description = "Color emoji SVGinOT font using Twitter Unicode 10 emoji with diversity and country flags";
+    longDescription = ''
+      A color and B&W emoji SVGinOT font built from the Twitter Emoji for
+      Everyone artwork with support for ZWJ, skin tone diversity and country
+      flags.
+
+      The font works in all operating systems, but will currently only show
+      color emoji in Firefox, Thunderbird, Photoshop CC 2017, and Windows Edge
+      V38.14393+. This is not a limitation of the font, but of the operating
+      systems and applications. Regular B&W outline emoji are included for
+      backwards/fallback compatibility.
+    '';
+    homepage = "https://github.com/eosrei/twemoji-color-font";
+    downloadPage = "https://github.com/eosrei/twemoji-color-font/releases";
+    license = with licenses; [ cc-by-40 mit ];
+    maintainers = [ maintainers.fgaz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ubuntu-font-family/default.nix b/nixpkgs/pkgs/data/fonts/ubuntu-font-family/default.nix
new file mode 100644
index 000000000000..e78f86fede44
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ubuntu-font-family/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchzip }:
+
+fetchzip rec {
+  name = "ubuntu-font-family-0.83";
+
+  url = "http://font.ubuntu.com/download/${name}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/ubuntu
+  '';
+
+  sha256 = "090y665h4kf2bi623532l6wiwkwnpd0xds0jr7560xwfwys1hiqh";
+
+  meta = {
+    description = "Ubuntu Font Family";
+    longDescription = "The Ubuntu typeface has been specially
+    created to complement the Ubuntu tone of voice. It has a
+    contemporary style and contains characteristics unique to
+    the Ubuntu brand that convey a precise, reliable and free attitude.";
+    homepage = http://font.ubuntu.com/;
+    license = stdenv.lib.licenses.free;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.antono ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix b/nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix
new file mode 100644
index 000000000000..996d11923972
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, mkfontdir, mkfontscale }:
+
+stdenv.mkDerivation rec {
+  name = "ucs-fonts-${version}";
+  version = "20090406";
+
+  srcs = [
+    (fetchurl {
+      url = http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz;
+      sha256 = "12hgizg25fzmk10wjl0c88x97h3pg5r9ga122s3y28wixz6x2bvh";
+    })
+    (fetchurl {
+      url = http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts-asian.tar.gz;
+      sha256 = "0ibjy4xpz5j373hsdr8bx99czfpclqmviwwv768j8n7z12z3wa51";
+    })
+    (fetchurl {
+      url = http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts-75dpi100dpi.tar.gz;
+      sha256 = "08vqr8yb636xa1s28vf3pm22dzkia0gisvsi2svqjqh4kk290pzh";
+    })
+  ];
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [ mkfontdir mkfontscale ];
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  installPhase = ''
+    mkdir -p $out/share/fonts
+    cp *.bdf $out/share/fonts
+    cd $out/share/fonts
+    mkfontdir
+    mkfontscale
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "12fh3kbsib0baqwk6148fnzqrj9gs4vnl7yd5n9km72sic1z1xwk";
+
+  meta = with stdenv.lib; {
+    description = "Unicode bitmap fonts";
+    maintainers = [ maintainers.raskin ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix b/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
new file mode 100644
index 000000000000..f8df39c95652
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "1.0";
+in
+fetchzip rec {
+  name = "ultimate-oldschool-pc-font-pack-${version}";
+  url = "http://int10h.org/oldschool-pc-fonts/download/ultimate_oldschool_pc_font_pack_v${version}.zip";
+  sha256 = "0hid4dgqfy2w26734vcw2rxmpacd9vd1r2qpdr9ww1n3kgc92k9y";
+
+  postFetch= ''
+    mkdir -p $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  meta = with stdenv.lib; {
+    description = "The Ultimate Oldschool PC Font Pack (TTF Fonts)";
+    homepage = "http://int10h.org/oldschool-pc-fonts/";
+    platforms = platforms.unix;
+    license = licenses.cc-by-sa-40;
+    maintainers = [ maintainers.endgame ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/uni-vga/default.nix b/nixpkgs/pkgs/data/fonts/uni-vga/default.nix
new file mode 100644
index 000000000000..2a13824b36f7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/uni-vga/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, mkfontdir, mkfontscale }:
+
+stdenv.mkDerivation {
+  name = "uni-vga";
+
+  src = fetchurl {
+    url = http://www.inp.nsk.su/~bolkhov/files/fonts/univga/uni-vga.tgz;
+    sha256 = "05sns8h5yspa7xkl81ri7y1yxf5icgsnl497f3xnaryhx11s2rv6";
+  };
+
+  nativeBuildInputs = [ mkfontdir mkfontscale ];
+
+  installPhase = ''
+    mkdir -p $out/share/fonts
+    cp *.bdf $out/share/fonts
+    cd $out/share/fonts
+    mkfontdir
+    mkfontscale
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  sha256 = "0rfly7r6blr2ykxlv0f6my2w41vvxcw85chspljd2p1fxlr28jd7";
+
+  meta = {
+    description = "Unicode VGA font";
+    maintainers = [stdenv.lib.maintainers.ftrvxmtrx];
+    homepage = http://www.inp.nsk.su/~bolkhov/files/fonts/univga/;
+    license = stdenv.lib.licenses.mit;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/unifont/default.nix b/nixpkgs/pkgs/data/fonts/unifont/default.nix
new file mode 100644
index 000000000000..943eb9572b2c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/unifont/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, mkfontscale, mkfontdir }:
+
+stdenv.mkDerivation rec {
+  name = "unifont-${version}";
+  version = "11.0.03";
+
+  ttf = fetchurl {
+    url = "mirror://gnu/unifont/${name}/${name}.ttf";
+    sha256 = "1fqlf3kczh1y7vhpcdcs1i9043idg5x9jisfqfd99sikvcbw7w75";
+  };
+
+  pcf = fetchurl {
+    url = "mirror://gnu/unifont/${name}/${name}.pcf.gz";
+    sha256 = "0wqcmvkqdww60hqh245whzh4mx3frrx2712lay826f9h5s4ywz6g";
+  };
+
+  nativeBuildInputs = [ mkfontscale mkfontdir ];
+
+  phases = "installPhase";
+
+  installPhase =
+    ''
+      mkdir -p $out/share/fonts $out/share/fonts/truetype
+      cp -v ${pcf} $out/share/fonts/unifont.pcf.gz
+      cp -v ${ttf} $out/share/fonts/truetype/unifont.ttf
+      cd $out/share/fonts
+      mkfontdir
+      mkfontscale
+    '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "006jbla4zfwccyy84sm4ck869sq5az5s5cfkcmdgj7ah3rz4d7dn";
+
+  meta = with stdenv.lib; {
+    description = "Unicode font for Base Multilingual Plane";
+    homepage = http://unifoundry.com/unifont.html;
+
+    # Basically GPL2+ with font exception.
+    license = http://unifoundry.com/LICENSE.txt;
+    maintainers = [ maintainers.rycee maintainers.vrthra ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/unifont_upper/default.nix b/nixpkgs/pkgs/data/fonts/unifont_upper/default.nix
new file mode 100644
index 000000000000..29ba4bfb5402
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/unifont_upper/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "10.0.06";
+in fetchzip rec {
+  name = "unifont_upper-${version}";
+
+  url = "http://unifoundry.com/pub/unifont-${version}/font-builds/${name}.ttf";
+
+  postFetch = "install -Dm644 $downloadedFile $out/share/fonts/truetype/unifont_upper.ttf";
+
+  sha256 = "13x5z8iyh9xz5fllcy89yinnz1iy16a2pjf3vip66nz10sq8crlr";
+
+  meta = with stdenv.lib; {
+    description = "Unicode font for glyphs above the Unicode Basic Multilingual Plane";
+    homepage = http://unifoundry.com/unifont.html;
+
+    # Basically GPL2+ with font exception.
+    license = http://unifoundry.com/LICENSE.txt;
+    maintainers = [ maintainers.mathnerd314 maintainers.vrthra ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/unscii/default.nix b/nixpkgs/pkgs/data/fonts/unscii/default.nix
new file mode 100644
index 000000000000..c4969d046d48
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/unscii/default.nix
@@ -0,0 +1,40 @@
+{stdenv, fetchurl, perl, bdftopcf, perlPackages, fontforge, SDL, SDL_image}:
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "unscii";
+  version = "1.1";
+  # or fetchFromGitHub(owner,repo,rev) or fetchgit(rev)
+  src = fetchurl {
+    url = "http://pelulamu.net/${pname}/${name}-src.tar.gz";
+    sha256 = "0qcxcnqz2nlwfzlrn115kkp3n8dd7593h762vxs6vfqm13i39lq1";
+  };
+  nativeBuildInputs = [perl bdftopcf perlPackages.TextCharWidth fontforge 
+    SDL SDL_image];
+  preConfigure = ''
+    patchShebangs .
+  '';
+  installPhase = ''
+    mkdir -p "$out/share/fonts"/{truetype,opentype,web,svg}
+    cp *.hex "$out/share/fonts/"
+    cp *.pcf "$out/share/fonts/"
+    cp *.ttf "$out/share/fonts/truetype"
+    cp *.otf "$out/share/fonts/opentype"
+    cp *.svg "$out/share/fonts/svg"
+    cp *.woff "$out/share/fonts/web"
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "03zvczdka665zcyf9fjrnx434mwpr5q8396j34kjmc67w7nhc49r";
+
+  meta = {
+    inherit version;
+    description = ''Bitmapped character-art-friendly Unicode fonts'';
+    # Basically GPL2+ with font exception — because of the Unifont-augmented
+    # version. The reduced version is public domain.
+    license = http://unifoundry.com/LICENSE.txt;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+    homepage = http://pelulamu.net/unscii/;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/vdrsymbols/default.nix b/nixpkgs/pkgs/data/fonts/vdrsymbols/default.nix
new file mode 100644
index 000000000000..d3373a64c490
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vdrsymbols/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchzip }:
+
+fetchzip rec {
+  name = "vdrsymbols-20100612";
+
+  url = http://andreas.vdr-developer.org/fonts/download/vdrsymbols-ttf-20100612.tgz;
+
+  sha256 = "0wpxns8zqic98c84j18dr4zmj092v07yq07vwwgzblr0rw9n6gzr";
+
+  postFetch = ''
+    tar xvzf "$downloadedFile"
+    install -Dm444 -t "$out/share/fonts/truetype" */*.ttf
+  '';
+
+  meta = with stdenv.lib; {
+    description = "DejaVu fonts with additional symbols used by VDR";
+    homepage = http://andreas.vdr-developer.org/fonts/;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ck3d ];
+
+    # Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved.
+    # Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
+    # DejaVu changes are in public domain
+    # See https://dejavu-fonts.github.io/License.html for details
+    license = licenses.free;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/vegur/default.nix b/nixpkgs/pkgs/data/fonts/vegur/default.nix
new file mode 100644
index 000000000000..4bf28782a8a5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vegur/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, rpmextract, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+  version = "0.701";
+  name = "vegur-font-${version}";
+
+  # Upstream doesn't version their URLs.
+  # http://dotcolon.net/font/vegur/ → http://dotcolon.net/DL/font/vegur.zip
+  src = fetchurl {
+    url = "http://download.opensuse.org/repositories/M17N:/fonts/SLE_12_SP3/src/dotcolon-vegur-fonts-0.701-1.4.src.rpm";
+    sha256 = "0ra3fds3b352rpzn0015km539c3l2ik2lqd5x6fr65ss9fg2xn34";
+  };
+
+  nativeBuildInputs = [ rpmextract unzip ];
+
+  unpackPhase = ''
+    rpmextract $src
+    unzip vegur.zip
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/Vegur
+    cp *.otf $out/share/fonts/Vegur
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://dotcolon.net/font/vegur/;
+    description = "A humanist sans serif font.";
+    platforms = platforms.all;
+    maintainers = [ maintainers.samueldr ];
+    license = licenses.cc0;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/vista-fonts-chs/default.nix b/nixpkgs/pkgs/data/fonts/vista-fonts-chs/default.nix
new file mode 100644
index 000000000000..e9a3282e7150
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vista-fonts-chs/default.nix
@@ -0,0 +1,36 @@
+{stdenv, fetchzip, cabextract}:
+
+# Modified from vista-fonts
+
+fetchzip {
+  name = "vista-fonts-chs-1";
+
+  url = http://download.microsoft.com/download/d/6/e/d6e2ff26-5821-4f35-a18b-78c963b1535d/VistaFont_CHS.EXE;
+
+  postFetch = ''
+    ${cabextract}/bin/cabextract --lowercase --filter '*.TTF' $downloadedFile
+
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+
+    # Set up no-op font configs to override any aliases set up by
+    # other packages.
+    mkdir -p $out/etc/fonts/conf.d
+    substitute ${./no-op.conf} $out/etc/fonts/conf.d/30-msyahei.conf \
+      --subst-var-by fontname "Microsoft YaHei"
+  '';
+
+  sha256 = "1zwrgck84k80gpg7493jdnxnv9ajxk5c7qndinnmqydnrw239zbw";
+
+  meta = {
+    description = "TrueType fonts from Microsoft Windows Vista For Simplified Chinese (Microsoft YaHei)";
+    homepage = https://www.microsoft.com/typography/fonts/family.aspx?FID=350;
+    license = stdenv.lib.licenses.unfree;
+    maintainers = [ stdenv.lib.maintainers.ChengCat ];
+
+    # Set a non-zero priority to allow easy overriding of the
+    # fontconfig configuration files.
+    priority = 5;
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/vista-fonts-chs/no-op.conf b/nixpkgs/pkgs/data/fonts/vista-fonts-chs/no-op.conf
new file mode 100644
index 000000000000..2d00b6244887
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vista-fonts-chs/no-op.conf
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+  <!-- This configuation is intentionally left empty in order to
+       override any other font package that may wish to set up an
+       alias for the @fontname@ font. If you actually do
+       want to have the alias then please change the priority of that
+       package; see the Nix manual page for nix-env for details. -->
+</fontconfig>
diff --git a/nixpkgs/pkgs/data/fonts/vista-fonts/default.nix b/nixpkgs/pkgs/data/fonts/vista-fonts/default.nix
new file mode 100644
index 000000000000..65fa3fb81ab5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vista-fonts/default.nix
@@ -0,0 +1,36 @@
+{stdenv, fetchzip, cabextract}:
+
+fetchzip {
+  name = "vista-fonts-1";
+
+  url = http://download.microsoft.com/download/f/5/a/f5a3df76-d856-4a61-a6bd-722f52a5be26/PowerPointViewer.exe;
+
+  postFetch = ''
+    ${cabextract}/bin/cabextract --lowercase --filter ppviewer.cab $downloadedFile
+    ${cabextract}/bin/cabextract --lowercase --filter '*.TTF' ppviewer.cab
+
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+
+    # Set up no-op font configs to override any aliases set up by
+    # other packages.
+    mkdir -p $out/etc/fonts/conf.d
+    for name in Calibri Cambria Candara Consolas Constantia Corbel ; do
+      substitute ${./no-op.conf} $out/etc/fonts/conf.d/30-''${name,,}.conf \
+        --subst-var-by fontname $name
+    done
+  '';
+
+  sha256 = "1q2d24c203vkl6pwk86frmaj6jra49hr9mydq7cnlx4hilqslw3g";
+
+  meta = {
+    description = "Some TrueType fonts from Microsoft Windows Vista (Calibri, Cambria, Candara, Consolas, Constantia, Corbel)";
+    homepage = http://www.microsoft.com/typography/ClearTypeFonts.mspx;
+    license = stdenv.lib.licenses.unfree; # haven't read the EULA, but we probably can't redistribute these files, so...
+
+    # Set a non-zero priority to allow easy overriding of the
+    # fontconfig configuration files.
+    priority = 5;
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/vista-fonts/no-op.conf b/nixpkgs/pkgs/data/fonts/vista-fonts/no-op.conf
new file mode 100644
index 000000000000..503e62cfa295
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vista-fonts/no-op.conf
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+  <!-- This configuation is intentionally left empty in order to
+       override any other font package that may wish to set up an
+       alias for the Microsoft @fontname@ font. If you actually do
+       want to have the alias then please change the priority of that
+       package; see the Nix manual page for nix-env for details. -->
+</fontconfig>
diff --git a/nixpkgs/pkgs/data/fonts/weather-icons/default.nix b/nixpkgs/pkgs/data/fonts/weather-icons/default.nix
new file mode 100644
index 000000000000..8d818d219239
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/weather-icons/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "2.0.10";
+in fetchzip rec {
+  name = "weather-icons-${version}";
+
+  url = "https://github.com/erikflowers/weather-icons/archive/${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile weather-icons-${version}/_docs/font-source/weathericons-regular.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "10zny9987wybq55sm803hrjkp33dq1lgmnxc15kssr8yb81g6qrl";
+
+  meta = with stdenv.lib; {
+    description = "Weather Icons";
+    longDescription = ''
+      Weather Icons is the only icon font and CSS with 222 weather themed icons,
+      ready to be dropped right into Bootstrap, or any project that needs high
+      quality weather, maritime, and meteorological based icons!
+    '';
+    homepage = https://erikflowers.github.io/weather-icons/;
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ pnelson ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/wqy-microhei/default.nix b/nixpkgs/pkgs/data/fonts/wqy-microhei/default.nix
new file mode 100644
index 000000000000..038f03169402
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/wqy-microhei/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchzip }:
+
+fetchzip rec {
+  name = "wqy-microhei-0.2.0-beta";
+
+  url = "mirror://sourceforge/wqy/${name}.tar.gz";
+
+  postFetch = ''
+    tar -xzf $downloadedFile --strip-components=1
+    install -Dm644 wqy-microhei.ttc $out/share/fonts/wqy-microhei.ttc
+  '';
+
+  sha256 = "0i5jh7mkp371fxqmsvn7say075r641yl4hq26isjyrqvb8cv92a9";
+
+  meta = {
+    description = "A (mainly) Chinese Unicode font";
+    homepage = http://wenq.org;
+    license = stdenv.lib.licenses.asl20;
+    maintainers = [ stdenv.lib.maintainers.pkmx ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/wqy-zenhei/default.nix b/nixpkgs/pkgs/data/fonts/wqy-zenhei/default.nix
new file mode 100644
index 000000000000..9718763d004a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/wqy-zenhei/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "0.9.45";
+in fetchzip rec {
+  name = "wqy-zenhei-${version}";
+
+  url = "mirror://sourceforge/wqy/${name}.tar.gz";
+
+  postFetch = ''
+    tar -xzf $downloadedFile --strip-components=1
+    mkdir -p $out/share/fonts
+    install -m644 *.ttc $out/share/fonts/
+  '';
+
+  sha256 = "0hbjq6afcd63nsyjzrjf8fmm7pn70jcly7fjzjw23v36ffi0g255";
+
+  meta = {
+    description = "A (mainly) Chinese Unicode font";
+    homepage = http://wenq.org;
+    license = stdenv.lib.licenses.gpl2; # with font embedding exceptions
+    maintainers = [ stdenv.lib.maintainers.pkmx ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/xits-math/default.nix b/nixpkgs/pkgs/data/fonts/xits-math/default.nix
new file mode 100644
index 000000000000..25431c7f9d70
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/xits-math/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, python2Packages, fontforge }:
+
+stdenv.mkDerivation rec {
+  name = "xits-math-${version}";
+  version = "1.108";
+
+  src = fetchFromGitHub {
+    owner = "khaledhosny";
+    repo = "xits-math";
+    rev = "v${version}";
+    sha256 = "08nn676c41a7gmmhrzi8mm0g74z8aiaafjk48pqcwxvjj9av7xjg";
+  };
+
+  nativeBuildInputs = [ fontforge ] ++ (with python2Packages; [ python fonttools ]);
+
+  postPatch = ''
+    rm *.otf
+
+    substituteInPlace tools/postprocess.py --replace \
+      'font = ttLib.TTFont(sys.argv[1])' \
+      'font = ttLib.TTFont(sys.argv[1], recalcTimestamp=False)'
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/opentype
+    cp *.otf $out/share/fonts/opentype
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "00xycmb9ka67j5s66nkng53y8q6362igisxz04zb58r2717jk50m";
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/khaledhosny/xits-math;
+    description = "OpenType implementation of STIX fonts with math support";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/zilla-slab/default.nix b/nixpkgs/pkgs/data/fonts/zilla-slab/default.nix
new file mode 100644
index 000000000000..d77d6d8b3011
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/zilla-slab/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "1.002";
+  hash = "1b1ys28hyjcl4qwbnsyi6527nj01g3d6id9jl23fv6f8fjm4ph0f";
+in fetchzip {
+  name = "zilla-slab-${version}";
+
+  url = "https://github.com/mozilla/zilla-slab/releases/download/v${version}/Zilla-Slab-Fonts-v${version}.zip";
+  postFetch = ''
+    unzip $downloadedFile
+    mkdir -p $out/share/fonts/truetype
+    cp -v zilla-slab/ttf/*.ttf $out/share/fonts/truetype/
+  '';
+  sha256 = hash;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/mozilla/zilla-slab;
+    description = "Zilla Slab fonts";
+    longDescription = ''
+      Zilla Slab is Mozilla's core typeface, used
+      for the Mozilla wordmark, headlines and
+      throughout their designs. A contemporary
+      slab serif, based on Typotheque's Tesla, it
+      is constructed with smooth curves and true
+      italics, which gives text an unexpectedly
+      sophisticated industrial look and a friendly
+      approachability in all weights.
+    '';
+    license = licenses.ofl;
+    maintainers = with maintainers; [ caugner ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/arc-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/arc-icon-theme/default.nix
new file mode 100644
index 000000000000..6529e5c571c2
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/arc-icon-theme/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, gtk3, moka-icon-theme }:
+
+stdenv.mkDerivation rec {
+  name = "${package-name}-${version}";
+  package-name = "arc-icon-theme";
+  version = "2016-11-22";
+
+  src = fetchFromGitHub {
+    owner = "horst3180";
+    repo = package-name;
+    rev = "55a575386a412544c3ed2b5617a61f842ee4ec15";
+    sha256 = "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd";
+  };
+
+  nativeBuildInputs = [ autoreconfHook gtk3 moka-icon-theme ];
+
+  postFixup = "gtk-update-icon-cache $out/share/icons/Arc";
+
+  meta = with stdenv.lib; {
+    description = "Arc icon theme";
+    homepage = https://github.com/horst3180/arc-icon-theme;
+    license = licenses.gpl3;
+    # moka-icon-theme dependency is restricted to linux
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/bibata-cursors/default.nix b/nixpkgs/pkgs/data/icons/bibata-cursors/default.nix
new file mode 100644
index 000000000000..ce7bb11522ba
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/bibata-cursors/default.nix
@@ -0,0 +1,41 @@
+{ fetchFromGitHub, gnome-themes-extra, inkscape, stdenv, xcursorgen }:
+
+stdenv.mkDerivation rec {
+  name = "bibata-cursors-${version}";
+  version = "0.4.1";
+
+  src = fetchFromGitHub {
+    owner = "KaizIqbal";
+    repo = "Bibata_Cursor";
+    rev = "v${version}";
+    sha256 = "14gvpjp4gv0m59qr8wls7xs5yjx5llldyzack5kg5cg2mzk2nsml";
+  };
+
+  postPatch = ''
+    patchShebangs .
+    substituteInPlace build.sh --replace "gksu " ""
+  '';
+
+  nativeBuildInputs  = [
+    gnome-themes-extra
+    inkscape
+    xcursorgen
+  ];
+
+  buildPhase = ''
+    HOME="$NIX_BUILD_ROOT" ./build.sh
+  '';
+
+  installPhase = ''
+    install -dm 0755 $out/share/icons
+    cp -pr Bibata_* $out/share/icons/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Material Based Cursor";
+    homepage = https://github.com/KaizIqbal/Bibata_Cursor;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ rawkode ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/capitaine-cursors/default.nix b/nixpkgs/pkgs/data/icons/capitaine-cursors/default.nix
new file mode 100644
index 000000000000..94a5449332b9
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/capitaine-cursors/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub
+, inkscape, xcursorgen }:
+
+stdenv.mkDerivation rec {
+  name = "capitaine-cursors-${version}";
+  version = "2.1";
+
+  src = fetchFromGitHub {
+    owner = "keeferrourke";
+    repo = "capitaine-cursors";
+    rev = "r${version}";
+    sha256 = "0ljvq1dqscp5gyf23qszn2ax80bxkqw2vx5zh3qln9vnzfascirb";
+  };
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  buildInputs  =[
+    inkscape
+    xcursorgen
+  ];
+
+  buildPhase = ''
+    # https://github.com/NixOS/nixpkgs/blob/master/pkgs/data/fonts/emojione/default.nix#L16
+    HOME="$NIX_BUILD_ROOT" ./build.sh
+  '';
+
+  installPhase = ''
+    install -dm 0755 $out/share/icons
+    cp -pr dist $out/share/icons/capitaine-cursors
+  '';
+
+  meta = with stdenv.lib; {
+    description = ''
+      An x-cursor theme inspired by macOS and based on KDE Breeze
+    '';
+    homepage = https://github.com/keeferrourke/capitaine-cursors;
+    license = licenses.lgpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [
+      eadwu
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/elementary-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/elementary-icon-theme/default.nix
new file mode 100644
index 000000000000..4c3beaaef2b0
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/elementary-icon-theme/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, meson, ninja, python3, gtk3 }:
+
+stdenv.mkDerivation rec {
+  name = "elementary-icon-theme-${version}";
+  version = "5.0.1";
+
+  src = fetchFromGitHub {
+    owner = "elementary";
+    repo = "icons";
+    rev = version;
+    sha256 = "1rw924b3ixfdff368dpv4vgsykwncmrvj9a6yfss0cf236xnvr9b";
+  };
+
+  nativeBuildInputs = [ meson ninja python3 gtk3 ];
+
+  # Disable installing gimp and inkscape palette files
+  mesonFlags = [
+    "-Dpalettes=false"
+  ];
+
+  postPatch = ''
+    chmod +x meson/symlink.py
+    patchShebangs .
+    sed -i volumeicon/meson.build -e "s,'/','$out',"
+  '';
+
+  postFixup = ''
+    gtk-update-icon-cache $out/share/icons/elementary
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Icons from the Elementary Project";
+    homepage = https://github.com/elementary/icons;
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ simonvandel ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
new file mode 100644
index 000000000000..d4a15a105cd3
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, pkgconfig, gdk_pixbuf, optipng, librsvg, gtk3, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  name = "elementary-xfce-icon-theme-${version}";
+  version = "0.13.1";
+
+  src = fetchFromGitHub {
+    owner = "shimmerproject";
+    repo = "elementary-xfce";
+    rev = "v${version}";
+    sha256 = "16msdrazhbv80cvh5ffvgj13xmkpf87r7mq6xz071fza6nv7g0jn";
+  };
+
+  nativeBuildInputs = [ pkgconfig gdk_pixbuf librsvg optipng gtk3 hicolor-icon-theme ];
+
+  postPatch = ''
+    substituteInPlace svgtopng/Makefile --replace "-O0" "-O"
+  '';
+
+  postInstall = ''
+    make icon-caches
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Elementary icons for Xfce and other GTK+ desktops like GNOME";
+    homepage = https://github.com/shimmerproject/elementary-xfce;
+    license = licenses.gpl2;
+    # darwin cannot deal with file names differing only in case
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ davidak ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/faba-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/faba-icon-theme/default.nix
new file mode 100644
index 000000000000..07d2b5ecf02c
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/faba-icon-theme/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, meson, ninja, python3, gtk3, elementary-icon-theme }:
+
+stdenv.mkDerivation rec {
+  name = "${package-name}-${version}";
+  package-name = "faba-icon-theme";
+  version = "4.3";
+
+  src = fetchFromGitHub {
+    owner = "moka-project";
+    repo = package-name;
+    rev = "v${version}";
+    sha256 = "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n";
+  };
+
+  nativeBuildInputs = [ meson ninja python3 gtk3 elementary-icon-theme ];
+
+  postPatch = ''
+    patchShebangs meson/post_install.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A sexy and modern icon theme with Tango influences";
+    homepage = https://snwh.org/moka;
+    license = with licenses; [ cc-by-sa-40 gpl3 ];
+    platforms = platforms.all;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/faba-mono-icons/default.nix b/nixpkgs/pkgs/data/icons/faba-mono-icons/default.nix
new file mode 100644
index 000000000000..a4ffefe1f26d
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/faba-mono-icons/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, gtk3, moka-icon-theme }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "faba-mono-icons";
+  version = "2016-04-30";
+
+  src = fetchFromGitHub {
+    owner = "snwh";
+    repo = pname;
+    rev = "2006c5281eb988c799068734f289a85443800cda";
+    sha256 = "0nisfl92y6hrbakp9qxi0ygayl6avkzrhwirg6854bwqjy2dvjv9";
+  };
+
+  nativeBuildInputs = [ autoreconfHook gtk3 moka-icon-theme ];
+
+  postFixup = ''
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "The full set of Faba monochrome panel icons";
+    homepage = https://snwh.org/moka;
+    license = licenses.gpl3;
+    # moka-icon-theme dependency is restricted to linux
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/hicolor-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/hicolor-icon-theme/default.nix
new file mode 100644
index 000000000000..2c0872188e02
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/hicolor-icon-theme/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "hicolor-icon-theme-0.17";
+
+  src = fetchurl {
+    url = "https://icon-theme.freedesktop.org/releases/${name}.tar.xz";
+    sha256 = "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i";
+  };
+
+  setupHook = ./setup-hook.sh;
+
+  meta = with stdenv.lib; {
+    description = "Default fallback theme used by implementations of the icon theme specification";
+    homepage = https://icon-theme.freedesktop.org/releases/;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/hicolor-icon-theme/setup-hook.sh b/nixpkgs/pkgs/data/icons/hicolor-icon-theme/setup-hook.sh
new file mode 100644
index 000000000000..29306cb316af
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/hicolor-icon-theme/setup-hook.sh
@@ -0,0 +1,21 @@
+# Populate XDG_ICON_DIRS
+hicolorIconThemeHook() {
+
+    # where to find icon themes
+    if [ -d "$1/share/icons" ]; then
+      addToSearchPath XDG_ICON_DIRS $1/share
+    fi
+	
+}
+
+# I think this is meant to be a runtime dep
+addEnvHooks "$hostOffset" hicolorIconThemeHook
+
+# Remove icon cache
+hicolorPreFixupPhase() {
+    rm -f $out/share/icons/hicolor/icon-theme.cache
+    rm -f $out/share/icons/HighContrast/icon-theme.cache
+}
+
+preFixupPhases="$preFixupPhases hicolorPreFixupPhase"
+
diff --git a/nixpkgs/pkgs/data/icons/iconpack-obsidian/default.nix b/nixpkgs/pkgs/data/icons/iconpack-obsidian/default.nix
new file mode 100644
index 000000000000..ee45a186f290
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/iconpack-obsidian/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, gtk3 }:
+
+stdenv.mkDerivation rec {
+  name = "iconpack-obsidian-${version}";
+  version = "4.3";
+
+  src = fetchFromGitHub {
+    owner = "madmaxms";
+    repo = "iconpack-obsidian";
+    rev = "v${version}";
+    sha256 = "0np2s4mbaykwwv516959r5d9gfdmqb5hadsx18x2if4751a9qz49";
+  };
+
+  nativeBuildInputs = [ gtk3 ];
+
+  installPhase = ''
+     mkdir -p $out/share/icons
+     mv Obsidian* $out/share/icons
+  '';
+
+  postFixup = ''
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Gnome Icon Pack based upon Faenza";
+    homepage = https://github.com/madmaxms/iconpack-obsidian;
+    license = licenses.lgpl3;
+    # darwin cannot deal with file names differing only in case
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/maia-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/maia-icon-theme/default.nix
new file mode 100644
index 000000000000..7b4ed7a66809
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/maia-icon-theme/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitLab, cmake, extra-cmake-modules, gtk3, kdeFrameworks, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  name = "maia-icon-theme-${version}";
+  version = "2018-02-24";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.manjaro.org";
+    group = "artwork";
+    owner = "themes";
+    repo = "maia";
+    rev = "b61312cc80cb9d12b0d8a55b3e61668eb6b77d2d";
+    sha256 = "1g98snlh96z4sqw9sfd7fxgamh45pcj3lh1kcmng7mirvrcn2pam";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+    gtk3
+    kdeFrameworks.plasma-framework
+    kdeFrameworks.kwindowsystem
+  ];
+
+  buildInputs = [
+    hicolor-icon-theme
+  ];
+
+  postFixup = ''
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Icons based on Breeze and Super Flat Remix";
+    homepage = https://gitlab.manjaro.org/artwork/themes/maia;
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ mounium ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/moka-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/moka-icon-theme/default.nix
new file mode 100644
index 000000000000..17892679a7ea
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/moka-icon-theme/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, meson, ninja, gtk3, python3, faba-icon-theme }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "moka-icon-theme";
+  version = "5.4.0";
+
+  src = fetchFromGitHub {
+    owner = "snwh";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd";
+  };
+
+  nativeBuildInputs = [ meson ninja gtk3 python3 faba-icon-theme ];
+
+  postPatch = ''
+    patchShebangs meson/post_install.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An icon theme designed with a minimal flat style using simple geometry and bright colours";
+    homepage = https://snwh.org/moka;
+    license = with licenses; [ cc-by-sa-40 gpl3 ];
+    # darwin cannot deal with file names differing only in case
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/numix-cursor-theme/default.nix b/nixpkgs/pkgs/data/icons/numix-cursor-theme/default.nix
new file mode 100644
index 000000000000..8e5a317082ea
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/numix-cursor-theme/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, inkscape, xcursorgen }:
+
+stdenv.mkDerivation rec {
+  version = "1.1";
+  package-name = "numix-cursor-theme";
+  name = "${package-name}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "numixproject";
+    repo = package-name;
+    rev = "v${version}";
+    sha256 = "0p8h48wsy3z5dz9vdnp01fpn6q8ky0h74l5qgixlip557bsa1spi";
+  };
+
+  nativeBuildInputs = [ inkscape xcursorgen ];
+
+  buildPhase = ''
+    patchShebangs .
+    HOME=$TMP ./build.sh
+  '';
+
+  installPhase = ''
+    install -dm 755 $out/share/icons
+    cp -dr --no-preserve='ownership' Numix-Cursor{,-Light} $out/share/icons/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Numix cursor theme";
+    homepage = https://numixproject.github.io;
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ offline ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix b/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix
new file mode 100644
index 000000000000..ebda6d4428c1
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, gtk3, numix-icon-theme }:
+
+stdenv.mkDerivation rec {
+  version = "18.09.19";
+
+  package-name = "numix-icon-theme-circle";
+
+  name = "${package-name}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "numixproject";
+    repo = package-name;
+    rev = version;
+    sha256 = "1a1ack4kpngnb3c281pssmp3snn2idcn2c5cv3l38a0dl5g5w8nq";
+  };
+
+  nativeBuildInputs = [ gtk3 numix-icon-theme ];
+
+  installPhase = ''
+    install -dm 755 $out/share/icons
+    cp -dr --no-preserve='ownership' Numix-Circle{,-Light} $out/share/icons/
+  '';
+
+  postFixup = ''
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Numix icon theme (circle version)";
+    homepage = https://numixproject.github.io;
+    license = licenses.gpl3;
+    # darwin cannot deal with file names differing only in case
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ jgeerds ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix b/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix
new file mode 100644
index 000000000000..03c1ba0f827a
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, gtk3, numix-icon-theme }:
+
+stdenv.mkDerivation rec {
+  name = "${package-name}-${version}";
+  package-name = "numix-icon-theme-square";
+  version = "18.09.19";
+
+  src = fetchFromGitHub {
+    owner = "numixproject";
+    repo = package-name;
+    rev = version;
+    sha256 = "0q5p901qj3gyzgpy5kk9q5sqb13ka5cfg6wvazlfch1k3kaqksz1";
+  };
+
+  nativeBuildInputs = [ gtk3 numix-icon-theme ];
+
+  installPhase = ''
+    mkdir -p $out/share/icons
+    cp -a Numix-Square{,-Light} $out/share/icons/
+  '';
+
+  postFixup = ''
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Numix icon theme (square version)";
+    homepage = https://numixproject.github.io;
+    license = licenses.gpl3;
+    # darwin cannot deal with file names differing only in case
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix
new file mode 100644
index 000000000000..9aaed97dc273
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, gtk3, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "numix-icon-theme";
+  version = "18.07.17";
+
+  src = fetchFromGitHub {
+    owner = "numixproject";
+    repo = pname;
+    rev = version;
+    sha256 = "0clh55kmhc52d33dfm2c6h3lg6ddfh8a088ir9lv1camn9kj55bd";
+  };
+
+  nativeBuildInputs = [ gtk3 hicolor-icon-theme ];
+
+  installPhase = ''
+    mkdir -p $out/share/icons
+    mv Numix{,-Light} $out/share/icons
+  '';
+
+  postFixup = ''
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Numix icon theme";
+    homepage = https://numixproject.github.io;
+    license = licenses.gpl3;
+    # darwin cannot deal with file names differing only in case
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo jgeerds ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/paper-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/paper-icon-theme/default.nix
new file mode 100644
index 000000000000..de808e44ea6c
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/paper-icon-theme/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, meson, ninja, gtk3, python3 }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "paper-icon-theme";
+  version = "2018-06-24";
+
+  src = fetchFromGitHub {
+    owner = "snwh";
+    repo = pname;
+    rev = "c7cd013fba06dd8fd5cdff9f885520e2923266b8";
+    sha256 = "0x45zkjnmbz904df63ph06npbm3phpgck4xwyymx8r8jgrfplk6v";
+  };
+
+  nativeBuildInputs = [ meson ninja gtk3 python3 ];
+
+  postPatch = ''
+    patchShebangs meson/post_install.py
+  '';
+
+  postInstall = ''
+    # The cache for Paper-Mono-Dark is missing
+    gtk-update-icon-cache "$out"/share/icons/Paper-Mono-Dark;
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Modern icon theme designed around bold colours and simple geometric shapes";
+    homepage = https://snwh.org/paper;
+    license = with licenses; [ cc-by-sa-40 lgpl3 ];
+    # darwin cannot deal with file names differing only in case
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix
new file mode 100644
index 000000000000..83ff9834c293
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, gtk3 }:
+
+stdenv.mkDerivation rec {
+  name = "papirus-icon-theme-${version}";
+  version = "20181120";
+
+  src = fetchFromGitHub {
+    owner = "PapirusDevelopmentTeam";
+    repo = "papirus-icon-theme";
+    rev = version;
+    sha256 = "1v0vb7l948gxyz37vzh01jqmb8d3w3hxw85vly08ra1ldixaczc5";
+  };
+
+  nativeBuildInputs = [ gtk3 ];
+
+  installPhase = ''
+     mkdir -p $out/share/icons
+     mv {,e}Papirus* $out/share/icons
+  '';
+
+  postFixup = ''
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Papirus icon theme";
+    homepage = https://github.com/PapirusDevelopmentTeam/papirus-icon-theme;
+    license = licenses.lgpl3;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/tango-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/tango-icon-theme/default.nix
new file mode 100644
index 000000000000..d38f6485f135
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/tango-icon-theme/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, intltool, pkgconfig, iconnamingutils, imagemagick, librsvg
+, gtk/*any version*/
+}:
+
+stdenv.mkDerivation rec {
+  name = "tango-icon-theme-0.8.90";
+
+  src = fetchurl {
+    url = "http://tango.freedesktop.org/releases/${name}.tar.gz";
+    sha256 = "13n8cpml71w6zfm2jz5fa7r1z18qlzk4gv07r6n1in2p5l1xi63f";
+  };
+
+  patches = [ ./rsvg-convert.patch ];
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ intltool iconnamingutils imagemagick librsvg ];
+
+  configureFlags = [ "--enable-png-creation" ];
+
+  postInstall = '''${gtk.out}/bin/gtk-update-icon-cache' "$out/share/icons/Tango" '';
+
+  meta = {
+    description = "A basic set of icons";
+    homepage = http://tango.freedesktop.org/Tango_Icon_Library;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/tango-icon-theme/rsvg-convert.patch b/nixpkgs/pkgs/data/icons/tango-icon-theme/rsvg-convert.patch
new file mode 100644
index 000000000000..ee3d00ccf3ed
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/tango-icon-theme/rsvg-convert.patch
@@ -0,0 +1,34 @@
+Based on https://build.opensuse.org/package/view_file?file=tango-icon-theme-rsvg-2_35_2.patch&package=tango-icon-theme&project=openSUSE%3A12.2&rev=faf71bf8278d5df6ec8a31726e5b8542
+
+diff -ru -x '*~' tango-icon-theme-0.8.90/configure tango-icon-theme-0.8.90-new/configure
+--- tango-icon-theme-0.8.90/configure	2009-02-26 04:08:00.000000000 +0100
++++ tango-icon-theme-0.8.90-new/configure	2013-08-15 17:54:24.167065399 +0200
+@@ -6554,7 +6554,7 @@
+   enable_large_bitmaps=no
+ fi
+    if test "x$enable_large_bitmaps" = "xyes"; then
+-      svgconvert_prog="rsvg"
++      svgconvert_prog="rsvg-convert"
+    else
+       svgconvert_prog="ksvgtopng"
+    fi
+diff -ru -x '*~' tango-icon-theme-0.8.90/svg2png.sh.in tango-icon-theme-0.8.90-new/svg2png.sh.in
+--- tango-icon-theme-0.8.90/svg2png.sh.in	2007-02-16 21:04:29.000000000 +0100
++++ tango-icon-theme-0.8.90-new/svg2png.sh.in	2013-08-15 17:54:08.275084837 +0200
+@@ -9,12 +9,14 @@
+ 
+ ICONFILE=`basename ${3}`
+ ICONNAME=`echo ${ICONFILE} | sed -e "s/.svg//"`
+-if test `basename $SVGCONVERT` = "rsvg"; then
++if test `basename $SVGCONVERT` = "rsvg-convert"; then
+     OPTIONS="-w ${1} -h ${1}"
++    OUTPUT="-o"
+ else
+     OPTIONS="${1} ${1}"
++    OUTPUT=""
+ fi
+ 
+ echo "${SVGCONVERT} ${OPTIONS} ${3} ${2}/${ICONNAME}.png"
+-${SVGCONVERT} ${OPTIONS} ${3} ${2}/${ICONNAME}.png
++${SVGCONVERT} ${OPTIONS} ${3} ${OUTPUT} ${2}/${ICONNAME}.png
+ 
diff --git a/nixpkgs/pkgs/data/icons/vanilla-dmz/default.nix b/nixpkgs/pkgs/data/icons/vanilla-dmz/default.nix
new file mode 100644
index 000000000000..b6def37def6f
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/vanilla-dmz/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, lib, fetchzip, xorg }:
+
+stdenv.mkDerivation rec {
+  name = "vanilla-dmz-${version}";
+  version = "0.4.4";
+  src = fetchzip {
+    url = "http://ftp.de.debian.org/debian/pool/main/d/dmz-cursor-theme/dmz-cursor-theme_${version}.tar.gz";
+    sha256 = "1l0c0svk7dy0d7icg7j2181wdn3fvks5gmyqnvjk749ppy5ks8mj";
+  };
+  buildInputs = [ xorg.xcursorgen ];
+  buildPhase = ''
+    cd DMZ-White/pngs; ./make.sh; cd -
+    cd DMZ-Black/pngs; ./make.sh; cd -
+  '';
+  installPhase = ''
+    install -d $out/share/icons/Vanilla-DMZ/cursors
+    cp -a DMZ-White/xcursors/* $out/share/icons/Vanilla-DMZ/cursors
+    install -Dm644 DMZ-White/index.theme $out/share/icons/Vanilla-DMZ/index.theme
+
+    install -d $out/share/icons/Vanilla-DMZ-AA/cursors
+    cp -a DMZ-Black/xcursors/* $out/share/icons/Vanilla-DMZ-AA/cursors
+    install -Dm644 DMZ-Black/index.theme $out/share/icons/Vanilla-DMZ-AA/index.theme
+  '';
+  meta = with lib; {
+    homepage = http://jimmac.musichall.cz;
+    description = "A style neutral scalable cursor theme";
+    platforms = platforms.all;
+    license = licenses.cc-by-nc-sa-30;
+    maintainers = with maintainers; [ cstrahan ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/zafiro-icons/default.nix b/nixpkgs/pkgs/data/icons/zafiro-icons/default.nix
new file mode 100644
index 000000000000..f44d22d49532
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/zafiro-icons/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, gtk3 }:
+
+stdenv.mkDerivation rec {
+  pname = "zafiro-icons";
+  version = "0.7.9";
+
+  src = fetchFromGitHub {
+    owner = "zayronxio";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "08cd4hcmhyrm91ps6j3c6jpwg5b9y635smnmrzgiz33iy2pa0qm7";
+  };
+
+  nativeBuildInputs = [ gtk3 ];
+
+  installPhase = ''
+    mkdir -p $out/share/icons/Zafiro-icons
+    cp -a * $out/share/icons/Zafiro-icons
+    gtk-update-icon-cache "$out"/share/icons/Zafiro-icons
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Icon pack flat with light colors";
+    homepage = https://github.com/zayronxio/Zafiro-icons;
+    license = with licenses; [ gpl3 ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/machine-learning/mnist/default.nix b/nixpkgs/pkgs/data/machine-learning/mnist/default.nix
new file mode 100644
index 000000000000..26b06b4e652e
--- /dev/null
+++ b/nixpkgs/pkgs/data/machine-learning/mnist/default.nix
@@ -0,0 +1,45 @@
+{ stdenvNoCC, fetchurl }:
+let
+  srcs = {
+    train-images = fetchurl {
+      url = "http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz";
+      sha256 = "029na81z5a1c9l1a8472dgshami6f2iixs3m2ji6ym6cffzwl3s4";
+    };
+    train-labels = fetchurl {
+      url = "http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz";
+      sha256 = "0p152200wwx0w65sqb65grb3v8ncjp230aykmvbbx2sm19556lim";
+    };
+    test-images = fetchurl {
+      url = "http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz";
+      sha256 = "1rn4vfigaxn2ms24bf4jwzzflgp3hvz0gksvb8j7j70w19xjqhld";
+    };
+    test-labels = fetchurl {
+      url = "http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz";
+      sha256 = "1imf0i194ndjxzxdx87zlgn728xx3p1qhq1ssbmnvv005vwn1bpp";
+    };
+  };
+in
+  stdenvNoCC.mkDerivation rec {
+    name = "mnist-${version}";
+    version = "2018-11-16";
+    installPhase = ''
+      mkdir -p $out
+      ln -s "${srcs.train-images}" "$out/${srcs.train-images.name}"
+      ln -s "${srcs.train-labels}" "$out/${srcs.train-labels.name}"
+      ln -s "${srcs.test-images}" "$out/${srcs.test-images.name}"
+      ln -s "${srcs.test-labels}" "$out/${srcs.test-labels.name}"
+    '';
+    phases = [ "installPhase" ];
+    meta = with stdenvNoCC.lib; {
+      description = "A large database of handwritten digits";
+      longDescription = ''
+        The MNIST database (Modified National Institute of Standards and
+        Technology database) is a large database of handwritten digits that is
+        commonly used for training various image processing systems.
+      '';
+      homepage = http://yann.lecun.com/exdb/mnist/index.html;
+      license = licenses.cc-by-sa-30;
+      platforms = platforms.all;
+      maintainers = with maintainers; [ cmcdragonkai ];
+    };
+  }
diff --git a/nixpkgs/pkgs/data/misc/adapta-backgrounds/default.nix b/nixpkgs/pkgs/data/misc/adapta-backgrounds/default.nix
new file mode 100644
index 000000000000..41f704e750c5
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/adapta-backgrounds/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  name = "adapta-backgrounds-${version}";
+  version = "0.5.2.3";
+
+  src = fetchFromGitHub {
+    owner = "adapta-project";
+    repo = "adapta-backgrounds";
+    rev = version;
+    sha256 = "0n0ggcxinja81lasmpviqq3l4jiwb05bs8r5aah1im2zvls1g007";
+  };
+
+  nativeBuildInputs = [ autoreconfHook  ];
+
+  meta = with stdenv.lib; {
+    description = "Wallpaper collection for adapta-project";
+    homepage = https://github.com/adapta-project/adapta-backgrounds;
+    license = with licenses; [ gpl2 cc-by-sa-40 ];
+    platforms = platforms.all;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/brise/default.nix b/nixpkgs/pkgs/data/misc/brise/default.nix
new file mode 100644
index 000000000000..54b54d278ffb
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/brise/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, librime }:
+
+stdenv.mkDerivation rec {
+  name = "brise-unstable-2017-09-16";
+
+  src = fetchFromGitHub {
+    owner = "rime";
+    repo = "brise";
+    rev = "1cfb0fe1d3a4190ce5d034f141941156dd271e80";
+    sha256 = "1l13j3cfwida0ycl874fizz2jwjvlxid589a1iciqa9y25k21ql7";
+  };
+
+  buildInputs = [ librime ];
+
+  postPatch = ''
+    patchShebangs scripts/*
+  '';
+
+  # we need to use fetchFromGitHub to fetch sub-packages before we 'make',
+  # since nix won't allow networking during 'make'
+  preBuild = import ./fetchPackages.nix fetchFromGitHub;
+
+  makeFlags = [ "BRISE_BUILD_BINARIES=yes" "PREFIX=$(out)" ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Rime Schema Repository";
+    longDescription = ''
+      This software is a collection of data packages used by Rime
+      to support various Chinese input methods, including those based on
+      modern dialects or historical diasystems of the Chinese language.
+    '';
+    homepage = https://rime.im;
+    # Note that individual packages in this collection
+    # may be released under different licenses
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.sifmelcara ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/brise/fetchPackages.nix b/nixpkgs/pkgs/data/misc/brise/fetchPackages.nix
new file mode 100644
index 000000000000..92930c67cc90
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/brise/fetchPackages.nix
@@ -0,0 +1,130 @@
+fetchFromGitHub:
+# generated using https://gist.github.com/sifmelcara/895c71f99500b9d56d68e9a866b58821
+''
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-array";
+  rev = "9ca2b725ae52c9b3185213e3555df1f9d4f1c53f";
+  sha256 = "0x3sifdpdivr8ssynjhc4g1zfl6h9hm9nh9p9zb9wkh1ky9z7kha";
+}} array
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-bopomofo";
+  rev = "7046ffe42b46915947117f80d901fb9a6e19c1a7";
+  sha256 = "09w8jl2dlgp72k49x0l2jiaqb359v576kai4xww6cljgr24ng8pl";
+}} bopomofo
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-cangjie";
+  rev = "64242be99c1e6793c9f40fef296a81d07a84e976";
+  sha256 = "0v5sk8zrm5p5gg8lszqm0imj9jswjlnfq87nw6m9pg5h5al230ja";
+}} cangjie
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-combo-pinyin";
+  rev = "97a7dc4670e0f90ad28e7d67c1543f4f0adc531d";
+  sha256 = "0y8iyvq7z6xj3lk2ppk4ggz297wn1r2xxbv53f2710jc7gyzf04q";
+}} combo-pinyin
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-double-pinyin";
+  rev = "1b75af4239897fd1e4c99d625b62093e66baff14";
+  sha256 = "0p54qx5a6rr55hl997kdcfxjczd9lcddrc5xsy7nhlfyc6108s2v";
+}} double-pinyin
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-emoji";
+  rev = "7e527056fe055237fee59463e0d445f3909aaf0c";
+  sha256 = "04d35n254viw29yyjf3ml7xljmi63sqgg870swlbi5bikcx7n9jf";
+}} emoji
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-essay";
+  rev = "595e35756d16d57d09405e243302b65b4384b5b4";
+  sha256 = "10kqhvrz8x17b2pf6x2x2znz5y6cj05c4rgwi1f0xhxiyrgjw9gm";
+}} essay
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-ipa";
+  rev = "9e02f8a02e9febb7b2df25f6906881a1df934811";
+  sha256 = "1g4v4j1gnv1qspfz88liwj1aa4gaa3aax0x2cif4vxicsm7w372m";
+}} ipa
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-jyutping";
+  rev = "3cc76e6e15cc05f1f94b89e750c21f87ce8fc0e4";
+  sha256 = "1yggz0yb84z8810s2gmsxkm9lh57fdzddx5v2rb5mqcwnimsd6ap";
+}} jyutping
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-luna-pinyin";
+  rev = "da00c3a6f932f094666e98a09f6ce9c7d74c334c";
+  sha256 = "0q3g1hj9bay5865h3pz7gv46d7wfka1jdxnddxcbp4zn7gjpsd48";
+}} luna-pinyin
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-middle-chinese";
+  rev = "6f9731bac8f289f77d35f1090159f1937e38c1f7";
+  sha256 = "0xd9iwk4j5043gfmp7rb57hbarfm6sxr32wiasi6p3c5g355zn89";
+}} middle-chinese
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-pinyin-simp";
+  rev = "38c08403c22845f7e2965c1d7a1514b41755d7dc";
+  sha256 = "1c0cqljx3d93w27y2flxyqcfd3rd9fvixbw6mxgfjzdb3s42bn8h";
+}} pinyin-simp
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-prelude";
+  rev = "120c2aa73b1b5e1bce904901bf13f506295004a5";
+  sha256 = "1aah9z58gkqrc18zadsq598ybj8ra22bgka3gma2jmi3rls2znq4";
+}} prelude
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-quick";
+  rev = "638abf270e121bc2bfc6029a14ee85a3f4c2188b";
+  sha256 = "0l1pma0yxrypnb5cq7jiczy0wa42kdqsc1brqkkccdnp08pa1p1m";
+}} quick
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-scj";
+  rev = "6b74ce14be0464bf076d7adc40aea4b120f233ec";
+  sha256 = "0lr92knr41mlqd1s0g2lh2h2qr8xka1s46x7iv4d6ghjf0id4gz6";
+}} scj
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-soutzoe";
+  rev = "3ab93d1b9ca9ca7cf17ff32bb4418b7a095afc3c";
+  sha256 = "1glbvgzx4psasq23511k8ymd7mf1pqvm3z18nzszhs00iif66s3m";
+}} soutzoe
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-stenotype";
+  rev = "766f22565f83f5c63c0ea195c936779ec6ae824d";
+  sha256 = "0jsvfq7xim99zs5imyk7rpknlaimk6nlxy38fmfxa1r843781mfd";
+}} stenotype
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-stroke";
+  rev = "e048967a4c1b956575828f1a20e565efed4b1137";
+  sha256 = "10asdz5bj12pnji7afzls6jd9dn2v90l2dgdjf0jfp2kfzd6pxnl";
+}} stroke
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-terra-pinyin";
+  rev = "e303507e728def38739f5761c50722eae1f06dd5";
+  sha256 = "1krbmx2iq3zw4q1x4aa9c72b9xgrnjrhyxa4h5hnq5l29p9qms4d";
+}} terra-pinyin
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-wubi";
+  rev = "97b7d9f93378e98fd11167bd80d54c40e67076aa";
+  sha256 = "1cdpbqqkqjbizja0w3f7a826a5bxb39nlf9qf2130x9havmkc89z";
+}} wubi
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-wugniu";
+  rev = "de40b29f8218cc852bf82b315c7070f1d50bda02";
+  sha256 = "1m7miwsqpy49cgqd1bl7z5lkkirj3lc2bdwd1zqfg5zbgfwn0rp8";
+}} wugniu
+''
diff --git a/nixpkgs/pkgs/data/misc/cacert/default.nix b/nixpkgs/pkgs/data/misc/cacert/default.nix
new file mode 100644
index 000000000000..aa6a42badb7c
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/cacert/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchurl, nss, python
+, blacklist ? []
+, includeEmail ? false
+}:
+
+with stdenv.lib;
+
+let
+
+  certdata2pem = fetchurl {
+    name = "certdata2pem.py";
+    url = "https://salsa.debian.org/debian/ca-certificates/raw/debian/20170717/mozilla/certdata2pem.py";
+    sha256 = "1d4q27j1gss0186a5m8bs5dk786w07ccyq0qi6xmd2zr1a8q16wy";
+  };
+
+in
+
+stdenv.mkDerivation rec {
+  name = "nss-cacert-${nss.version}";
+
+  src = nss.src;
+
+  outputs = [ "out" "unbundled" ];
+
+  nativeBuildInputs = [ python ];
+
+  configurePhase = ''
+    ln -s nss/lib/ckfw/builtins/certdata.txt
+
+    cat << EOF > blacklist.txt
+    ${concatStringsSep "\n" (map (c: ''"${c}"'') blacklist)}
+    EOF
+
+    cat ${certdata2pem} > certdata2pem.py
+    patch -p1 < ${./fix-unicode-ca-names.patch}
+    ${optionalString includeEmail ''
+      # Disable CAs used for mail signing
+      substituteInPlace certdata2pem.py --replace \[\'CKA_TRUST_EMAIL_PROTECTION\'\] '''
+    ''}
+  '';
+
+  buildPhase = ''
+    python certdata2pem.py | grep -vE '^(!|UNTRUSTED)'
+
+    for cert in *.crt; do
+      echo $cert | cut -d. -f1 | sed -e 's,_, ,g' >> ca-bundle.crt
+      cat $cert >> ca-bundle.crt
+      echo >> ca-bundle.crt
+    done
+  '';
+
+  installPhase = ''
+    mkdir -pv $out/etc/ssl/certs
+    cp -v ca-bundle.crt $out/etc/ssl/certs
+    # install individual certs in unbundled output
+    mkdir -pv $unbundled/etc/ssl/certs
+    cp -v *.crt $unbundled/etc/ssl/certs
+    rm -f $unbundled/etc/ssl/certs/ca-bundle.crt  # not wanted in unbundled
+  '';
+
+  setupHook = ./setup-hook.sh;
+
+  meta = {
+    homepage = https://curl.haxx.se/docs/caextract.html;
+    description = "A bundle of X.509 certificates of public Certificate Authorities (CA)";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ wkennington fpletz ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/cacert/fix-unicode-ca-names.patch b/nixpkgs/pkgs/data/misc/cacert/fix-unicode-ca-names.patch
new file mode 100644
index 000000000000..07d3629196a7
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/cacert/fix-unicode-ca-names.patch
@@ -0,0 +1,20 @@
+--- a/certdata2pem.py	2017-08-01 23:10:00.000000000 +0300
++++ b/certdata2pem.py	2017-08-01 23:08:21.131297636 +0300
+@@ -88,7 +88,7 @@
+ \# Read blacklist.
+ blacklist = []
+ if os.path.exists('blacklist.txt'):
+-    for line in open('blacklist.txt', 'r'):
++    for line in io.open('blacklist.txt', 'r', encoding='utf-8'):
+         line = line.strip()
+         if line.startswith('#') or len(line) == 0:
+             continue
+@@ -101,7 +101,7 @@
+     if obj['CKA_CLASS'] != 'CKO_NSS_TRUST':
+         continue
+     if obj['CKA_LABEL'] in blacklist:
+-        print("Certificate %s blacklisted, ignoring." % obj['CKA_LABEL'])
++        print("Certificate %s blacklisted, ignoring." % unicode(obj['CKA_LABEL']).encode('utf-8'))
+     elif obj['CKA_TRUST_SERVER_AUTH'] == 'CKT_NSS_TRUSTED_DELEGATOR':
+         trust[obj['CKA_LABEL']] = True
+     elif obj['CKA_TRUST_EMAIL_PROTECTION'] == 'CKT_NSS_TRUSTED_DELEGATOR':
diff --git a/nixpkgs/pkgs/data/misc/cacert/setup-hook.sh b/nixpkgs/pkgs/data/misc/cacert/setup-hook.sh
new file mode 100644
index 000000000000..b704a6a919e0
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/cacert/setup-hook.sh
@@ -0,0 +1,5 @@
+cacertHook() {
+    export SSL_CERT_FILE=@out@/etc/ssl/certs/ca-bundle.crt
+}
+
+addEnvHooks "$targetOffset" cacertHook
diff --git a/nixpkgs/pkgs/data/misc/combinatorial_designs/default.nix b/nixpkgs/pkgs/data/misc/combinatorial_designs/default.nix
new file mode 100644
index 000000000000..18331b5ada9d
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/combinatorial_designs/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  name = "combinatorial_designs-${version}";
+  version = "20140630";
+
+  src = fetchurl {
+    url = "mirror://sageupstream/combinatorial_designs/combinatorial_designs-${version}.tar.bz2";
+    sha256 = "0bj8ngiq59hipa6izi6g5ph5akmy4cbk0vlsb0wa67f7grnnqj69";
+  };
+
+  installPhase = ''
+    mkdir -p "$out/share/combinatorial_designs"
+    mv * "$out/share/combinatorial_designs"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Data for Combinatorial Designs";
+    longDescription = ''
+      Current content:
+
+      - The table of MOLS (10 000 integers) from the Handbook of Combinatorial
+        Designs, 2ed.
+    '';
+    license = licenses.publicDomain;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ timokau ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/conway_polynomials/default.nix b/nixpkgs/pkgs/data/misc/conway_polynomials/default.nix
new file mode 100644
index 000000000000..fec422b33acf
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/conway_polynomials/default.nix
@@ -0,0 +1,43 @@
+{ stdenv
+, fetchurl
+, python
+}:
+
+stdenv.mkDerivation rec {
+  name = "conway_polynomials-${version}";
+  version = "0.5";
+
+  pythonEnv = python.withPackages (ps: with ps; [ six ]);
+
+  src = fetchurl {
+    url = "mirror://sageupstream/conway_polynomials/conway_polynomials-${version}.tar.bz2";
+    sha256 = "05zb1ly9x2bbscqv0jgc45g48xx77mfs7qdbqhn4ihmihn57iwnq";
+  };
+
+  # Script that creates the "database" (nested python array) and pickles it
+  spkg-install = fetchurl {
+    url = "https://git.sagemath.org/sage.git/plain/build/pkgs/conway_polynomials/spkg-install.py?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
+    sha256 = "0m12nfb37j3bn4bp06ddgnyp2d6z0hg5f83pbbjszxw7vxs33a82";
+  };
+
+  installPhase = ''
+    # directory layout as spkg-install.py expects
+    dir="$PWD"
+    cd ..
+    ln -s "$dir" "src"
+
+    # environment spkg-install.py expects
+    mkdir -p "$out/share"
+    export SAGE_SHARE="$out/share"
+    export PYTHONPATH=$PWD
+
+    ${pythonEnv.interpreter} ${spkg-install}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Contains a small database of Conway polynomials.";
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ timokau ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix b/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix
new file mode 100644
index 000000000000..2dbd062d4fb2
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, autoconf
+, automake
+, libtool
+, intltool
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation {
+  name = "ddccontrol-db-20180908";
+  src = fetchFromGitHub {
+    owner = "ddccontrol";
+    repo = "ddccontrol-db";
+    rev = "5f211be363f77dc43e39f911b30f4fb19a2d7a84";
+    sha256 = "0vi3bzxpjdkn791vri68k7dah4v2liscniz7hxrarhl4fxlicc0w";
+  };
+
+  preConfigure = ''
+    ./autogen.sh
+  '';
+
+  buildInputs =
+    [
+      autoconf
+      automake
+      libtool
+      intltool
+    ];
+
+  meta = with stdenv.lib; {
+    description = "Monitor database for DDCcontrol";
+    homepage = http://github.com/ddccontrol/ddccontrol-db;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.pakhfn ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/dns-root-data/default.nix b/nixpkgs/pkgs/data/misc/dns-root-data/default.nix
new file mode 100644
index 000000000000..e94b8eb898c1
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/dns-root-data/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchurl }:
+
+let
+
+  rootHints = fetchurl {
+    # Original source https://www.internic.net/domain/named.root
+    # occasionally suffers from pointless hash changes,
+    # and having stable sources for older versions has advantages, too.
+    urls = map (prefix: prefix + "cc5e14a264912/etc/root.hints") [
+      "https://gitlab.labs.nic.cz/knot/knot-resolver/raw/"
+      "https://raw.githubusercontent.com/CZ-NIC/knot-resolver/"
+    ];
+    sha256 = "0vdrff4l8s8grif52dnh091s8qydhh88k25zqd9rj66sf1qwcwxl";
+  };
+
+  rootKey = ./root.key;
+  rootDs = ./root.ds;
+
+in
+
+stdenv.mkDerivation {
+  name = "dns-root-data-2017-10-24";
+
+  buildCommand = ''
+    mkdir $out
+    cp ${rootHints} $out/root.hints
+    cp ${rootKey} $out/root.key
+    cp ${rootDs} $out/root.ds
+  '';
+
+  meta = with lib; {
+    description = "DNS root data including root zone and DNSSEC key";
+    maintainers = with maintainers; [ fpletz vcunat ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/dns-root-data/root.ds b/nixpkgs/pkgs/data/misc/dns-root-data/root.ds
new file mode 100644
index 000000000000..7578e0405d9d
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/dns-root-data/root.ds
@@ -0,0 +1,2 @@
+. IN DS 19036 8 2 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5
+. IN DS 20326 8 2 E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D
diff --git a/nixpkgs/pkgs/data/misc/dns-root-data/root.key b/nixpkgs/pkgs/data/misc/dns-root-data/root.key
new file mode 100644
index 000000000000..c0da7b3f60fa
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/dns-root-data/root.key
@@ -0,0 +1,2 @@
+.	172800	IN	DNSKEY	257 3 8 AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjFFVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoXbfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaDX6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpzW5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relSQageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulqQxA+Uk1ihz0= ;{id = 19036 (ksk), size = 2048b}
+.	172800	IN	DNSKEY	257 3 8 AwEAAaz/tAm8yTn4Mfeh5eyI96WSVexTBAvkMgJzkKTOiW1vkIbzxeF3+/4RgWOq7HrxRixHlFlExOLAJr5emLvN7SWXgnLh4+B5xQlNVz8Og8kvArMtNROxVQuCaSnIDdD5LKyWbRd2n9WGe2R8PzgCmr3EgVLrjyBxWezF0jLHwVN8efS3rCj/EWgvIWgb9tarpVUDK/b58Da+sqqls3eNbuv7pr+eoZG+SrDK6nWeL3c6H5Apxz7LjVc1uTIdsIXxuOLYA4/ilBmSVIzuDWfdRUfhHdY6+cn8HFRm+2hM8AnXGXws9555KrUB5qihylGa8subX2Nn6UwNR1AkUTV74bU= ;{id = 20326 (ksk), size = 2048b}
diff --git a/nixpkgs/pkgs/data/misc/dns-root-data/update-root-key.sh b/nixpkgs/pkgs/data/misc/dns-root-data/update-root-key.sh
new file mode 100755
index 000000000000..9a3141aef197
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/dns-root-data/update-root-key.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p busybox unbound
+
+TMP=`mktemp`
+unbound-anchor -a "$TMP"
+grep -Ev "^($$|;)" "$TMP" | sed -e 's/ ;;.*//' > root.key
+
+unbound-anchor -F -a "$TMP"
+sed '/^;/d' < "$TMP" > root.ds
+rm $TMP
diff --git a/nixpkgs/pkgs/data/misc/elliptic_curves/default.nix b/nixpkgs/pkgs/data/misc/elliptic_curves/default.nix
new file mode 100644
index 000000000000..528486328c68
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/elliptic_curves/default.nix
@@ -0,0 +1,51 @@
+{ stdenv
+, fetchurl
+, python
+}:
+
+stdenv.mkDerivation rec {
+  pname = "elliptic_curves";
+  version = "0.8";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sageupstream/${pname}/${pname}-${version}.tar.bz2";
+    sha256 = "0pzaym44x88dn8rydiwqgm73yghzlgf7gqvd7qqsrsdl2vyp091w";
+  };
+
+
+  # Script that creates the sqlite database from the allcurves textfile
+  spkg-install = fetchurl {
+    url = "https://git.sagemath.org/sage.git/plain/build/pkgs/${pname}/spkg-install.py?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
+    sha256 = "116g684i6mvs11fvb6fzfsr4fn903axn31vigdyb8bgpf8l4hvc5";
+  };
+
+  installPhase = ''
+    # directory layout as spkg-install.py expects
+    dir="$PWD"
+    cd ..
+    ln -s "$dir" "src"
+
+    # environment spkg-install.py expects
+    mkdir -p "$out/share"
+    export SAGE_SHARE="$out/share"
+    export PYTHONPATH=$PWD
+
+    ${python.interpreter} ${spkg-install}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Databases of elliptic curves";
+    longDescription = ''
+      Includes two databases:
+
+       * A small subset of the data in John Cremona's database of elliptic curves up
+         to conductor 10000. See http://www.warwick.ac.uk/~masgaj/ftp/data/ or
+         http://sage.math.washington.edu/cremona/INDEX.html
+       * William Stein's database of interesting curves
+    '';
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ timokau ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/freepats/default.nix b/nixpkgs/pkgs/data/misc/freepats/default.nix
new file mode 100644
index 000000000000..e48470a67bb7
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/freepats/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "freepats-20060219";
+
+  src = fetchurl {
+    url = "https://freepats.zenvoid.org/${name}.tar.bz2";
+    sha256 = "12iw36rd94zirll96cd5k0va7p5hxmf2shvjlhzihcmjaw8flq82";
+  };
+
+  installPhase = ''mkdir "$out"; cp -r . "$out"'';
+
+  meta = with stdenv.lib; {
+    description = "Instrument patches, for MIDI synthesizers";
+    longDescription = ''
+      Freepats is a project to create a free and open set of instrument
+      patches, in any format, that can be used with softsynths.
+    '';
+    homepage = http://freepats.zenvoid.org/;
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/geolite-legacy/builder.sh b/nixpkgs/pkgs/data/misc/geolite-legacy/builder.sh
new file mode 100644
index 000000000000..c3e09e8543c5
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/geolite-legacy/builder.sh
@@ -0,0 +1,22 @@
+#!/bin/sh -e
+
+source "$stdenv/setup"
+
+mkdir -p $out/share/GeoIP
+cd $out/share/GeoIP
+
+# Iterate over all environment variable names beginning with "src":
+for var in "${!src@}"; do
+	# Store the value of the variable with name $var in $src:
+	eval src="\$$var"
+
+	# Copy $src to current directory, removing Nix hash from the filename:
+	dest="${src##*/}"
+	dest="${dest#*-}"
+	cp "$src" "$dest"
+done
+
+gzip -dv *.gz
+
+ln -s GeoLiteCity.dat GeoIPCity.dat
+ln -s GeoLiteCityv6.dat GeoIPCityv6.dat
diff --git a/nixpkgs/pkgs/data/misc/geolite-legacy/default.nix b/nixpkgs/pkgs/data/misc/geolite-legacy/default.nix
new file mode 100644
index 000000000000..309ae47a8516
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/geolite-legacy/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl }:
+
+let
+  fetchDB = src: sha256: fetchurl {
+    inherit sha256;
+    url = "https://geolite.maxmind.com/download/geoip/database/${src}";
+  };
+in
+stdenv.mkDerivation rec {
+  name = "geolite-legacy-${version}";
+  version = "2017-12-02";
+
+  srcGeoIP = fetchDB
+    "GeoLiteCountry/GeoIP.dat.gz"
+    "1nggml11wzlanmzk6wbw2kla91fj8ggd9kh9yz42lnyckdlf5ac4";
+  srcGeoIPv6 = fetchDB
+    "GeoIPv6.dat.gz"
+    "0w809xgmr5zi4fgm9q3lhrnh1vl62s49n737bhq4jplm5918ki50";
+  srcGeoLiteCity = fetchDB
+    "GeoLiteCity.dat.gz"
+    "0cibajsv5xdjpw1qfx22izm5azqcj0d7nvk39irgwflkim9jfjbs";
+  srcGeoLiteCityv6 = fetchDB
+    "GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz"
+    "1ldwbzgs64irfgb3kq3jp8fmhwmwqk713dr4kkdqlglrblr9hfkc";
+  srcGeoIPASNum = fetchDB
+    "asnum/GeoIPASNum.dat.gz"
+    "06qqs8qr8vxqwd80npz7n66k3bpc1vs7w43i2bb4k0di5yxnjwr9";
+  srcGeoIPASNumv6 = fetchDB
+    "asnum/GeoIPASNumv6.dat.gz"
+    "1qyq4h8cja62giv6q1qqc502vsq53wzz1kx80mgvwngmycrxa21k";
+
+  meta = with stdenv.lib; {
+    description = "GeoLite Legacy IP geolocation databases";
+    homepage = https://geolite.maxmind.com/download/geoip;
+    license = licenses.cc-by-sa-30;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fpletz ];
+  };
+
+  builder = ./builder.sh;
+}
diff --git a/nixpkgs/pkgs/data/misc/graphs/default.nix b/nixpkgs/pkgs/data/misc/graphs/default.nix
new file mode 100644
index 000000000000..aea5feef46c7
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/graphs/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "graphs";
+  version = "20161026";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sageupstream/${pname}/${pname}-${version}.tar.bz2";
+    sha256 = "0a2b5lly9nifphvknz88rrhfbbc8vqnlqcv19zdpfq8h8nnyjbb2";
+  };
+
+  installPhase = ''
+    mkdir -p "$out/share/graphs"
+    cp * "$out/share/graphs/"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A database of graphs";
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ timokau ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/hackage/default.nix b/nixpkgs/pkgs/data/misc/hackage/default.nix
new file mode 100644
index 000000000000..d141dba0795f
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/hackage/default.nix
@@ -0,0 +1,6 @@
+{ fetchurl }:
+
+fetchurl {
+  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/7882a52a634fbc2da03adc9616aa83b27b06d7a2.tar.gz";
+  sha256 = "1gw480w1d1117l8hbp7rh1jmjjqx11pzb3995m5wi2q9mvi645x2";
+}
diff --git a/nixpkgs/pkgs/data/misc/iana-etc/default.nix b/nixpkgs/pkgs/data/misc/iana-etc/default.nix
new file mode 100644
index 000000000000..af8270e6eefa
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/iana-etc/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "20180905";
+in fetchzip {
+  name = "iana-etc-${version}";
+  url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz";
+  sha256 = "1vl3by24xddl267cjq9bcwb7yvfd7gqalwgd5sgx8i7kz9bk40q2";
+
+  postFetch = ''
+    tar -xzvf $downloadedFile --strip-components=1
+    install -D -m0644 -t $out/etc services protocols
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/Mic92/iana-etc;
+    description = "IANA protocol and port number assignments (/etc/protocols and /etc/services)";
+    platforms = platforms.unix;
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/libkkc-data/default.nix b/nixpkgs/pkgs/data/misc/libkkc-data/default.nix
new file mode 100644
index 000000000000..343071fcf59c
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/libkkc-data/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, marisa, libkkc }:
+
+stdenv.mkDerivation rec {
+  pname = "libkkc-data";
+  version = "0.2.7";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "${meta.homepage}/releases/download/v${libkkc.version}/${name}.tar.xz";
+    sha256 = "16avb50jasq2f1n9xyziky39dhlnlad0991pisk3s11hl1aqfrwy";
+  };
+
+  nativeBuildInputs = [ marisa ];
+
+  meta = with stdenv.lib; {
+    description = "Language model data package for libkkc";
+    homepage    = https://github.com/ueno/libkkc;
+    license     = licenses.gpl3Plus;
+    maintainers = with maintainers; [ vanzef ];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/mailcap/default.nix b/nixpkgs/pkgs/data/misc/mailcap/default.nix
new file mode 100644
index 000000000000..d27e1d2dfd2e
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/mailcap/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchzip }:
+
+let
+  version = "2.1.48";
+
+in fetchzip {
+  name = "mailcap-${version}";
+
+  url = "https://releases.pagure.org/mailcap/mailcap-${version}.tar.xz";
+  sha256 = "0m1rls4z85aby9fggwx2x70b4y6l0jjyiqdv30p8g91nv8hrq9fw";
+
+  postFetch = ''
+    tar -xavf $downloadedFile --strip-components=1
+    substituteInPlace mailcap --replace "/usr/bin/" ""
+    gzip mailcap.4
+
+    install -D -m0644 -t $out/etc mailcap mime.types
+    install -D -m0644 -t $out/share/man/man4 mailcap.4.gz
+  '';
+
+  meta = with lib; {
+    description = "Helper application and MIME type associations for file types";
+    homepage = "https://pagure.io/mailcap";
+    license = licenses.mit;
+    maintainers = with maintainers; [ c0bw3b ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/media-player-info/default.nix b/nixpkgs/pkgs/data/misc/media-player-info/default.nix
new file mode 100644
index 000000000000..6d00f34e9787
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/media-player-info/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig, python3, udev, systemd }:
+
+let
+  name = "media-player-info-24";
+in
+
+  stdenv.mkDerivation {
+    inherit name;
+
+    src = fetchurl {
+      url = "https://www.freedesktop.org/software/media-player-info/${name}.tar.gz";
+      sha256 = "0d0i7av8v369hzvlynwlrbickv1brlzsmiky80lrjgjh1gdldkz6";
+    };
+
+    buildInputs = [ udev systemd ];
+    nativeBuildInputs = [ pkgconfig python3 ];
+
+    postPatch = ''
+      patchShebangs ./tools
+    '';
+
+    preConfigure = ''
+      configureFlags="$configureFlags --with-udevdir=$out/lib/udev"
+    '';
+
+    meta = with stdenv.lib; {
+      description = "A repository of data files describing media player capabilities";
+      homepage = https://www.freedesktop.org/wiki/Software/media-player-info/;
+      license = licenses.bsd3;
+      maintainers = with maintainers; [ ttuegel ];
+      platforms = with platforms; linux;
+    };
+  }
diff --git a/nixpkgs/pkgs/data/misc/mime-types/default.nix b/nixpkgs/pkgs/data/misc/mime-types/default.nix
new file mode 100644
index 000000000000..65ad964736d1
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/mime-types/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchzip }:
+
+let
+  version = "9";
+in fetchzip rec {
+  name = "mime-types-${version}";
+  url = "https://mirrors.kernel.org/gentoo/distfiles/${name}.tar.bz2";
+  postFetch = ''
+    mkdir -p $out/etc
+    tar xjvf $downloadedFile --directory=$out/etc --strip-components=1
+  '';
+  sha256 = "0gyla4wfiaccs0qh0hw7n08kdpnkkssglcg0z2jblb2lsdr4qna0";
+
+  meta = with stdenv.lib; {
+    description = "A database of common mappings of file extensions to MIME types";
+    homepage = https://packages.gentoo.org/packages/app-misc/mime-types;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ peterhoeg ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/miscfiles/default.nix b/nixpkgs/pkgs/data/misc/miscfiles/default.nix
new file mode 100644
index 000000000000..4e1d1e02a2f4
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/miscfiles/default.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  name = "miscfiles-1.5";
+
+  src = fetchurl {
+    url = "mirror://gnu/miscfiles/${name}.tar.gz";
+    sha256 = "005588vfrwx8ghsdv9p7zczj9lbc9a3r4m5aphcaqv8gif4siaka";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://www.gnu.org/software/miscfiles/;
+    license = licenses.gpl2Plus;
+    description = "Collection of files not of crucial importance for sysadmins";
+    maintainers = with maintainers; [ pSub ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix b/nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix
new file mode 100644
index 000000000000..95c66ed029ef
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl }:
+
+let
+  version = "20151214";
+  pname = "mobile-broadband-provider-info";
+  name = "${pname}-${version}";
+in
+stdenv.mkDerivation rec {
+  inherit name;
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${version}/${name}.tar.xz";
+    sha256 = "1905nab1h8p4hx0m1w0rn4mkg9209x680dcr4l77bngy21pmvr4a";
+  };
+
+  meta = {
+    description = "Mobile broadband service provider database";
+    homepage = http://live.gnome.org/NetworkManager/MobileBroadband/ServiceProviders;
+    platforms = stdenv.lib.platforms.all;
+    license = stdenv.lib.licenses.publicDomain;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/nixos-artwork/default.nix b/nixpkgs/pkgs/data/misc/nixos-artwork/default.nix
new file mode 100644
index 000000000000..71fe32c10665
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/nixos-artwork/default.nix
@@ -0,0 +1,5 @@
+{ callPackage }:
+
+rec {
+  wallpapers = callPackage ./wallpapers.nix { };
+}
diff --git a/nixpkgs/pkgs/data/misc/nixos-artwork/grub2-theme.nix b/nixpkgs/pkgs/data/misc/nixos-artwork/grub2-theme.nix
new file mode 100644
index 000000000000..8bc6c8adc13e
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/nixos-artwork/grub2-theme.nix
@@ -0,0 +1,5 @@
+{fetchzip}:
+fetchzip {
+  url = https://github.com/NixOS/nixos-artwork/releases/download/bootloader-18.09-pre/grub2-installer.tar.bz2;
+  sha256 = "0rhh061m1hpgadm7587inw3fxfacnd53xjc53w3vzghlck56djq5";
+}
diff --git a/nixpkgs/pkgs/data/misc/nixos-artwork/icons.nix b/nixpkgs/pkgs/data/misc/nixos-artwork/icons.nix
new file mode 100644
index 000000000000..1c14bcc9f981
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/nixos-artwork/icons.nix
@@ -0,0 +1,13 @@
+{ stdenv, fetchFromGitHub, imagemagick }:
+
+stdenv.mkDerivation {
+  name = "nixos-icons-2017-03-16";
+  srcs = fetchFromGitHub {
+    owner = "NixOS";
+    repo = "nixos-artwork";
+    rev = "783ca1249fc4cfe523ad4e541f37e2229891bc8b";
+    sha256 = "0wp08b1gh2chs1xri43wziznyjcplx0clpsrb13wzyscv290ay5a";
+  };
+  makeFlags = [ "DESTDIR=$(out)" "prefix=" ];
+  buildInputs = [ imagemagick ];
+}
diff --git a/nixpkgs/pkgs/data/misc/nixos-artwork/wallpapers.nix b/nixpkgs/pkgs/data/misc/nixos-artwork/wallpapers.nix
new file mode 100644
index 000000000000..50f874baa4ae
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/nixos-artwork/wallpapers.nix
@@ -0,0 +1,120 @@
+{ stdenv, fetchurl }:
+
+let
+  mkNixBackground = { name, src, description }:
+
+    stdenv.mkDerivation {
+      inherit name src;
+
+      unpackPhase = "true";
+
+      installPhase = ''
+        mkdir -p $out/share/artwork/gnome
+        ln -s $src $out/share/artwork/gnome/${src.name}
+
+        # KDE
+        mkdir -p $out/share/wallpapers/${name}/contents/images
+        ln -s $src $out/share/wallpapers/${name}/contents/images/${src.name}
+        cat >>$out/share/wallpapers/${name}/metadata.desktop <<_EOF
+[Desktop Entry]
+Name=${name}
+X-KDE-PluginInfo-Name=${name}
+_EOF
+      '';
+
+      meta = with stdenv.lib; {
+        inherit description;
+        homepage = https://github.com/NixOS/nixos-artwork;
+        license = licenses.free;
+        platforms = platforms.all;
+      };
+    };
+
+in
+
+rec {
+
+  gnome-dark = simple-dark-gray-bottom;
+
+  mosaic-blue = mkNixBackground {
+    name = "mosaic-blue-2016-02-19";
+    description = "Mosaic blue background for Nix";
+    src = fetchurl {
+      url = https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-mosaic-blue.png;
+      sha256 = "1cbcssa8qi0giza0k240w5yy4yb2bhc1p1r7pw8qmziprcmwv5n5";
+    };
+  };
+
+  simple-blue = mkNixBackground {
+    name = "simple-blue-2016-02-19";
+    description = "Simple blue background for Nix";
+    src = fetchurl {
+      url = https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-simple-blue.png;
+      sha256 = "1llr175m454aqixxwbp3kb5qml2hi1kn7ia6lm7829ny6y7xrnms";
+    };
+  };
+
+  simple-dark-gray = mkNixBackground {
+    name = "simple-dark-gray-2016-02-19";
+    description = "Simple dark gray background for Nix";
+    src = fetchurl {
+      url = https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-simple-dark-gray.png;
+      sha256 = "1282cnqc5qynp0q9gdll7bgpw23yp5bhvaqpar59ibkh3iscg8i5";
+    };
+  };
+
+  simple-dark-gray-bootloader = mkNixBackground {
+    name = "simple-dark-gray-bootloader-2018-08-28";
+    description = "Simple dark gray background for NixOS, specifically bootloaders.";
+    src = fetchurl {
+      url = https://raw.githubusercontent.com/NixOS/nixos-artwork/9d1f11f652ed5ffe460b6c602fbfe2e7e9a08dff/bootloader/nix-wallpaper-simple-dark-gray_bootloader.png;
+      sha256 = "0v26kfydn7alr81f2qpgsqdiq2zk7yrwlgibx2j7k91z9h47dpj9";
+    };
+  };
+
+  simple-dark-gray-bottom = mkNixBackground {
+    name = "simple-dark-gray-2018-08-28";
+    description = "Simple dark gray background for NixOS, specifically bootloaders and graphical login.";
+    src = fetchurl {
+      url = https://raw.githubusercontent.com/NixOS/nixos-artwork/783c38b22de09f6ee33aacc817470a4513392d83/wallpapers/nix-wallpaper-simple-dark-gray_bottom.png;
+      sha256 = "13hi4jwp5ga06dpdw5l03b4znwn58fdjlkqjkg824isqsxzv6k15";
+    };
+  };
+
+  simple-light-gray = mkNixBackground {
+    name = "simple-light-gray-2016-02-19";
+    description = "Simple light gray background for Nix";
+    src = fetchurl {
+      url = https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-simple-light-gray.png;
+      sha256 = "0i6d0xv1nzrv7na9hjrgzl3jrwn81vnprnq2pxyznlxbjcgkjnk2";
+    };
+  };
+
+  simple-red = mkNixBackground {
+    name = "simple-red-2016-02-19";
+    description = "Simple red background for Nix";
+    src = fetchurl {
+      url = https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-simple-red.png;
+      sha256 = "16drprsi3q8xbxx3bxp54yld04c4lq6jankw8ww1irg7z61a6wjs";
+    };
+  };
+
+  stripes-logo = mkNixBackground {
+    name = "stripes-logo-2016-02-19";
+    description = "Stripes logo background for Nix";
+    src = fetchurl {
+      url = https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-stripes-logo.png;
+      sha256 = "0cqjkgp30428c1yy8s4418k4qz0ycr6fzcg4rdi41wkh5g1hzjnl";
+    };
+  };
+
+  stripes = mkNixBackground {
+    name = "stripes-2016-02-19";
+    description = "Stripes background for Nix";
+    src = fetchurl {
+      url = https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-stripes.png;
+      sha256 = "116337wv81xfg0g0bsylzzq2b7nbj6hjyh795jfc9mvzarnalwd3";
+    };
+  };
+
+}
diff --git a/nixpkgs/pkgs/data/misc/osinfo-db/default.nix b/nixpkgs/pkgs/data/misc/osinfo-db/default.nix
new file mode 100644
index 000000000000..893707395ae5
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/osinfo-db/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, osinfo-db-tools, intltool, libxml2 }:
+
+stdenv.mkDerivation rec {
+  name = "osinfo-db-20181203";
+
+  src = fetchurl {
+    url = "https://releases.pagure.org/libosinfo/${name}.tar.xz";
+    sha256 = "1wimbj3hqp3ni91l7drj24i7z7xxfdpn6svf1szk9qd93cxc65q2";
+  };
+
+  nativeBuildInputs = [ osinfo-db-tools intltool libxml2 ];
+
+  phases = [ "installPhase" ];
+
+  installPhase = ''
+    osinfo-db-import --dir "$out/share/osinfo" "${src}"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Osinfo database of information about operating systems for virtualization provisioning tools";
+    homepage = https://libosinfo.org/;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/pari-galdata/default.nix b/nixpkgs/pkgs/data/misc/pari-galdata/default.nix
new file mode 100644
index 000000000000..222fd2f88707
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/pari-galdata/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  version = "20080411";
+  name = "pari-galdata-${version}";
+
+  src = fetchurl {
+    url = "http://pari.math.u-bordeaux.fr/pub/pari/packages/galdata.tgz";
+    sha256 = "1pch6bk76f1i6cwwgm7hhxi5h71m52lqayp4mnyj0jmjk406bhdp";
+  };
+
+  installPhase = ''
+    mkdir -p "$out/share/pari"
+    cp -R * "$out/share/pari/"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "PARI database needed to compute Galois group in degrees 8 through 11";
+    homepage = http://pari.math.u-bordeaux.fr/;
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ timokau ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/pari-seadata-small/default.nix b/nixpkgs/pkgs/data/misc/pari-seadata-small/default.nix
new file mode 100644
index 000000000000..967122c1bd4d
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/pari-seadata-small/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  version = "20090618";
+  name = "pari-seadata-small-${version}";
+
+  src = fetchurl {
+    url = "http://pari.math.u-bordeaux.fr/pub/pari/packages/seadata-small.tgz";
+    sha256 = "13qafribxwkz8h3haa0cng7arz0kh7398br4y7vqs9ib8w9yjnxz";
+  };
+
+  installPhase = ''
+    mkdir -p "$out/share/pari"
+    cp -R * "$out/share/pari/"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "PARI database needed by ellap for large primes";
+    homepage = http://pari.math.u-bordeaux.fr/;
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ timokau ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/polytopes_db/default.nix b/nixpkgs/pkgs/data/misc/polytopes_db/default.nix
new file mode 100644
index 000000000000..85f2cff09db2
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/polytopes_db/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "polytopes_db";
+  version = "20170220";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sageupstream/${pname}/${pname}-${version}.tar.bz2";
+    sha256 = "1q0cd811ilhax4dsj9y5p7z8prlalqr7k9mzq178c03frbgqny6b";
+  };
+
+  installPhase = ''
+    mkdir -p "$out/share/reflexive_polytopes"
+    cp -R * "$out/share/reflexive_polytopes/"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Reflexive polytopes database";
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ timokau ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/poppler-data/default.nix b/nixpkgs/pkgs/data/misc/poppler-data/default.nix
new file mode 100644
index 000000000000..d14ccdec2ead
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/poppler-data/default.nix
@@ -0,0 +1,20 @@
+{ fetchurl, stdenv, cmake, ninja }:
+
+stdenv.mkDerivation rec {
+  name = "poppler-data-0.4.9";
+
+  src = fetchurl {
+    url = "https://poppler.freedesktop.org/${name}.tar.gz";
+    sha256 = "04i0wgdkn5lhda8cyxd1ll4a2p41pwqrwd47n9mdpl7cx5ypx70z";
+  };
+
+  nativeBuildInputs = [ cmake ninja ];
+
+  meta = with stdenv.lib; {
+    homepage = https://poppler.freedesktop.org/;
+    description = "Encoding files for Poppler, a PDF rendering library";
+    platforms = platforms.all;
+    license = licenses.free; # more free licenses combined
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/scowl/default.nix b/nixpkgs/pkgs/data/misc/scowl/default.nix
new file mode 100644
index 000000000000..c90b8aa7e37d
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/scowl/default.nix
@@ -0,0 +1,113 @@
+{ stdenv, fetchFromGitHub, unzip, zip, libiconv, perl, aspell, dos2unix
+, singleWordlist ? null
+}:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "scowl";
+  version = "2018.04.16";
+
+  src = fetchFromGitHub {
+    owner = "en-wl";
+    repo = "wordlist";
+    rev = "rel-${version}";
+    sha256 = "0p0hgg5y88bb802z210cdk1c4fjwlpxxkci6yph3fk7g6s9xc73g";
+  };
+
+  postPatch = ''
+    substituteInPlace scowl/src/Makefile \
+        --replace g++ c++
+  '';
+
+  nativeBuildInputs = [ unzip zip perl aspell dos2unix ];
+  buildInputs = stdenv.lib.optional (!stdenv.isLinux) libiconv;
+
+  NIX_CFLAGS_COMPILE = "-Wno-narrowing";
+
+  preConfigure = ''
+    patchShebangs .
+    export PERL5LIB="$PERL5LIB''${PERL5LIB:+:}$PWD/varcon"
+  '';
+
+  postBuild = stdenv.lib.optionalString (singleWordlist == null) ''
+    (
+    cd scowl/speller
+    make aspell
+    make hunspell
+    )
+  '';
+
+  enableParallelBuilding = false;
+
+  installPhase = if singleWordlist == null then ''
+    eval "$preInstall"
+
+    mkdir -p "$out/share/scowl"
+    mkdir -p "$out/lib" "$out/share/hunspell" "$out/share/myspell"
+    mkdir -p "$out/share/dict"
+
+    cp -r scowl/speller/aspell "$out/lib/aspell"
+    cp scowl/speller/*.{aff,dic} "$out/share/hunspell"
+    ln -s "$out/share/hunspell" "$out/share/myspell/dicts"
+
+    cp scowl/final/* "$out/share/scowl"
+
+    (
+      cd scowl
+      for region in american british british_s british_z canadian australian; do
+        case $region in
+          american)
+            regcode=en-us;
+            ;;
+          british)
+            regcode=en-gb-ise;
+            ;;
+          british_s)
+            regcode=en-gb-ise;
+            ;;
+          british_z)
+            regcode=en-gb-ize;
+            ;;
+          canadian)
+            regcode=en-ca;
+            ;;
+          australian)
+            regcode=en-au;
+            ;;
+        esac
+        regcode_var="$regcode"
+        if test "$region" = british; then
+          regcode_var="en-gb"
+        fi
+
+        echo $region $regcode $regcode_sz
+        for s in 10 20 30 35 40 50 55 60 70 80 90 95; do
+          ./mk-list $regcode $s > "$out/share/dict/w$region.$s"
+          ./mk-list --variants=1 $regcode_var $s > "$out/share/dict/w$region.variants.$s"
+          ./mk-list --variants=2 $regcode_var $s > "$out/share/dict/w$region.acceptable.$s"
+        done
+        ./mk-list $regcode 60 > "$out/share/dict/w$region.txt"
+        ./mk-list --variants=1 $regcode_var 60 > "$out/share/dict/w$region.variants.txt"
+        ./mk-list --variants=2 $regcode_var 80 > "$out/share/dict/w$region.scrabble.txt"
+      done
+      ./mk-list --variants=1 en-gb 60 > "$out/share/dict/words.variants.txt"
+      ./mk-list --variants=1 en-gb 80 > "$out/share/dict/words.scrabble.txt"
+      ./mk-list en-gb-ise 60 > "$out/share/dict/words.txt"
+    )
+
+    eval "$postInstall"
+  '' else ''
+    mkdir -p "$out/share/dict"
+    cd scowl
+    ./mk-list ${singleWordlist} > "$out/share/dict/words.txt"
+  '';
+
+  meta = {
+    inherit version;
+    description = "Spell checker oriented word lists";
+    license = stdenv.lib.licenses.mit;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.unix;
+    homepage = "http://wordlist.aspell.net/";
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/shared-desktop-ontologies/default.nix b/nixpkgs/pkgs/data/misc/shared-desktop-ontologies/default.nix
new file mode 100644
index 000000000000..72895653479b
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/shared-desktop-ontologies/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, cmake }:
+
+stdenv.mkDerivation rec {
+  name = "shared-desktop-ontologies-0.11.0";
+  
+  src = fetchurl {
+    url = "mirror://sourceforge/oscaf/${name}.tar.bz2";
+    sha256 = "1m5vnijg7rnwg41vig2ckg632dlczzdab1gsq51g4x7m9k1fdbw2";
+  };
+  
+  buildInputs = [ cmake ];
+  
+  meta = with stdenv.lib; {
+    homepage = http://oscaf.sourceforge.net/;
+    description = "Ontologies necessary for the Nepomuk semantic desktop";
+    longDescription = ''
+      The shared-desktop-ontologies package brings the semantic web to the
+      desktop in terms of vocabulary. It contains the well known core
+      ontologies such as RDF and RDFS as well as the Nepomuk ontologies which
+      are used by projects like KDE or Strigi.
+    '';
+    platforms = platforms.all;
+    maintainers = [ maintainers.sander ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/misc/shared-mime-info/default.nix b/nixpkgs/pkgs/data/misc/shared-mime-info/default.nix
new file mode 100644
index 000000000000..f82ae5f1f9f2
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/shared-mime-info/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchurl, pkgconfig, gettext, perlPackages, intltool
+, libxml2, glib}:
+
+let version = "1.10"; in
+stdenv.mkDerivation rec {
+  name = "shared-mime-info-${version}";
+
+  src = fetchurl {
+    url = "http://freedesktop.org/~hadess/${name}.tar.xz";
+    sha256 = "1gxyvwym3xgpmp262gfn8jg5sla6k5hy6m6dmy6grgiq90xsh9f6";
+  };
+
+  nativeBuildInputs = [ pkgconfig gettext intltool ] ++ (with perlPackages; [ perl XMLParser ]);
+  buildInputs = [ libxml2 glib ];
+
+  meta = with stdenv.lib; {
+    inherit version;
+    description = "A database of common MIME types";
+    homepage = http://freedesktop.org/wiki/Software/shared-mime-info;
+    license = licenses.gpl2Plus;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.mimadrid ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/sound-theme-freedesktop/default.nix b/nixpkgs/pkgs/data/misc/sound-theme-freedesktop/default.nix
new file mode 100644
index 000000000000..043d3d65b84e
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/sound-theme-freedesktop/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, intltool }:
+
+stdenv.mkDerivation rec {
+  name = "sound-theme-freedesktop-${version}";
+  version = "0.8";
+
+  src = fetchurl {
+    sha256 = "054abv4gmfk9maw93fis0bf605rc56dah7ys5plc4pphxqh8nlfb";
+    url = "https://people.freedesktop.org/~mccann/dist/${name}.tar.bz2";
+  };
+
+  nativeBuildInputs = [ intltool ];
+
+  meta = with stdenv.lib; {
+    description = "Freedesktop reference sound theme";
+    homepage = http://freedesktop.org/wiki/Specifications/sound-theme-spec;
+    # See http://cgit.freedesktop.org/sound-theme-freedesktop/tree/CREDITS:
+    license = with licenses; [ cc-by-30 cc-by-sa-25 gpl2 gpl2Plus ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/tzdata/default.nix b/nixpkgs/pkgs/data/misc/tzdata/default.nix
new file mode 100644
index 000000000000..59079b28efc2
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/tzdata/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, fetchurl, buildPackages }:
+
+stdenv.mkDerivation rec {
+  name = "tzdata-${version}";
+  version = "2018g";
+
+  srcs =
+    [ (fetchurl {
+        url = "https://data.iana.org/time-zones/releases/tzdata${version}.tar.gz";
+        sha256 = "05kayi3w9pvhj6ljx1hvwd0r8mxfzn436fjmwhx53xkj919xxpq2";
+      })
+      (fetchurl {
+        url = "https://data.iana.org/time-zones/releases/tzcode${version}.tar.gz";
+        sha256 = "09y44fzcdq3c06saa8iqqa0a59cyw6ni3p31ps0j1w3hcpxz8lxa";
+      })
+    ];
+
+  sourceRoot = ".";
+
+  outputs = [ "out" "bin" "man" "dev" ];
+  propagatedBuildOutputs = [];
+
+  makeFlags = [
+    "TOPDIR=$(out)"
+    "TZDIR=$(out)/share/zoneinfo"
+    "BINDIR=$(bin)/bin"
+    "ZICDIR=$(bin)/bin"
+    "ETCDIR=$(TMPDIR)/etc"
+    "TZDEFAULT=$(TMPDIR)/etc"
+    "LIBDIR=$(dev)/lib"
+    "MANDIR=$(man)/share/man"
+    "AWK=awk"
+    "CFLAGS=-DHAVE_LINK=0"
+    "cc=${stdenv.cc.targetPrefix}cc"
+    "AR=${stdenv.cc.targetPrefix}ar"
+  ];
+
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+
+  doCheck = false; # needs more tools
+
+  installFlags = [ "ZIC=./zic-native" ];
+
+  preInstall = ''
+     mv zic.o zic.o.orig
+     mv zic zic.orig
+     make $makeFlags cc=cc AR=ar zic
+     mv zic zic-native
+     mv zic.o.orig zic.o
+     mv zic.orig zic
+  '';
+
+  postInstall =
+    ''
+      rm $out/share/zoneinfo-posix
+      mkdir $out/share/zoneinfo/posix
+      ( cd $out/share/zoneinfo/posix; ln -s ../* .; rm posix )
+      mv $out/share/zoneinfo-leaps $out/share/zoneinfo/right
+
+      mkdir -p "$dev/include"
+      cp tzfile.h "$dev/include/tzfile.h"
+    '';
+
+  setupHook = ./tzdata-setup-hook.sh;
+
+  meta = with stdenv.lib; {
+    homepage = http://www.iana.org/time-zones;
+    description = "Database of current and historical time zones";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fpletz ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/tzdata/tzdata-setup-hook.sh b/nixpkgs/pkgs/data/misc/tzdata/tzdata-setup-hook.sh
new file mode 100644
index 000000000000..9975d0aec31a
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/tzdata/tzdata-setup-hook.sh
@@ -0,0 +1,5 @@
+tzdataHook() {
+    export TZDIR=@out@/share/zoneinfo
+}
+
+addEnvHooks "$targetOffset" tzdataHook
diff --git a/nixpkgs/pkgs/data/misc/wireless-regdb/default.nix b/nixpkgs/pkgs/data/misc/wireless-regdb/default.nix
new file mode 100644
index 000000000000..b5293c6d341e
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/wireless-regdb/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "wireless-regdb-${version}";
+  version = "2018.10.24";
+
+  src = fetchurl {
+    url = "https://www.kernel.org/pub/software/network/wireless-regdb/${name}.tar.xz";
+    sha256 = "05lixkdzy7f3wpan6svh1n9f70rs0kfw6hl6p34sl8bxqxd88ghd";
+  };
+
+  dontBuild = true;
+
+  makeFlags = [
+    "DESTDIR=$(out)"
+    "PREFIX="
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Wireless regulatory database for CRDA";
+    homepage = http://wireless.kernel.org/en/developers/Regulatory/;
+    license = licenses.isc;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fpletz ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/xorg-rgb/default.nix b/nixpkgs/pkgs/data/misc/xorg-rgb/default.nix
new file mode 100644
index 000000000000..9a3db92adcc2
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/xorg-rgb/default.nix
@@ -0,0 +1,22 @@
+{stdenv, fetchurl, pkgconfig, xproto}:
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "rgb";
+  version = "1.0.6";
+
+  src = fetchurl {
+    url = "http://xorg.freedesktop.org/archive/individual/app/rgb-${version}.tar.bz2";
+    sha256 = "1c76zcjs39ljil6f6jpx1x17c8fnvwazz7zvl3vbjfcrlmm7rjmv";
+  };
+
+  nativeBuildInputs = [pkgconfig];
+  buildInputs = [xproto];
+  meta = {
+    inherit version;
+    description = "X11 colorname to RGB mapping database";
+    license = stdenv.lib.licenses.mit;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+    homepage = http://xorg.freedesktop.org/;
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/docbook-5.0/default.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/docbook-5.0/default.nix
new file mode 100644
index 000000000000..4986101584e1
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/docbook-5.0/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation {
+  name = "docbook5-5.0";
+
+  src = fetchurl {
+    url = http://www.docbook.org/xml/5.0/docbook-5.0.zip;
+    sha256 = "13i04dkd709f0p5f2413sf2y9321pfi4y85ynf8wih6ryphnbk9x";
+  };
+
+  nativeBuildInputs = [ unzip ];
+
+  installPhase =
+    ''
+      dst=$out/share/xml/docbook-5.0
+      mkdir -p $dst
+      cp -prv * $dst/
+
+      substituteInPlace $dst/catalog.xml --replace 'uri="' "uri=\"$dst/"
+
+      rm -rf $dst/docs $dst/ChangeLog
+
+      # Backwards compatibility. Will remove eventually.
+      mkdir -p $out/xml/rng $out/xml/dtd
+      ln -s $dst/rng $out/xml/rng/docbook
+      ln -s $dst/dtd $out/xml/dtd/docbook
+    '';
+
+  meta = {
+    description = "Schemas for DocBook 5.0, a semantic markup language for technical documentation";
+    homepage = https://docbook.org/xml/5.0/;
+    maintainers = [ lib.maintainers.eelco ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/3.1.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/3.1.nix
new file mode 100644
index 000000000000..cc71e0026324
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/3.1.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, unzip }:
+
+let
+
+  src = fetchurl {
+    url = http://www.oasis-open.org/docbook/sgml/3.1/docbk31.zip;
+    sha256 = "0f25ch7bywwhdxb1qa0hl28mgq1blqdap3rxzamm585rf4kis9i0";
+  };
+
+  isoents = fetchurl {
+    url = http://www.oasis-open.org/cover/ISOEnts.zip;
+    sha256 = "1clrkaqnvc1ja4lj8blr0rdlphngkcda3snm7b9jzvcn76d3br6w";
+  };
+
+in
+
+stdenv.mkDerivation {
+  name = "docbook-sgml-3.1";
+
+  unpackPhase = "true";
+
+  nativeBuildInputs = [ unzip ];
+
+  installPhase =
+    ''
+      o=$out/sgml/dtd/docbook-3.1
+      mkdir -p $o
+      cd $o
+      unzip ${src}
+      unzip ${isoents}
+      sed -e "s/iso-/ISO/" -e "s/.gml//" -i docbook.cat
+    '';
+
+  meta = {
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/4.1.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/4.1.nix
new file mode 100644
index 000000000000..dc7ebf5959da
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/4.1.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, unzip }:
+
+let
+
+  src = fetchurl {
+    url = http://www.oasis-open.org/docbook/sgml/4.1/docbk41.zip;
+    sha256 = "04b3gp4zkh9c5g9kvnywdkdfkcqx3kjc04j4mpkr4xk7lgqgrany";
+  };
+
+  isoents = fetchurl {
+    url = http://www.oasis-open.org/cover/ISOEnts.zip;
+    sha256 = "1clrkaqnvc1ja4lj8blr0rdlphngkcda3snm7b9jzvcn76d3br6w";
+  };
+
+in
+
+stdenv.mkDerivation {
+  name = "docbook-sgml-4.1";
+
+  unpackPhase = "true";
+
+  nativeBuildInputs = [ unzip ];
+
+  installPhase =
+    ''
+      o=$out/sgml/dtd/docbook-4.1
+      mkdir -p $o
+      cd $o
+      unzip ${src}
+      unzip ${isoents}
+      sed -e "s/iso-/ISO/" -e "s/.gml//" -i docbook.cat
+    '';
+
+  meta = {
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/default.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/default.nix
new file mode 100644
index 000000000000..3d8e16443dbf
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "docbook-xml-ebnf-1.2b1";
+
+  dtd = fetchurl {
+    url = http://www.docbook.org/xml/ebnf/1.2b1/dbebnf.dtd;
+    sha256 = "0min5dsc53my13b94g2yd65q1nkjcf4x1dak00bsc4ckf86mrx95";
+  };
+  catalog = ./docbook-ebnf.cat;
+
+  unpackPhase = ''
+    mkdir -p $out/xml/dtd/docbook-ebnf
+    cd $out/xml/dtd/docbook-ebnf
+  '';
+
+  installPhase = ''
+    cp -p $dtd dbebnf.dtd
+    cp -p $catalog $(stripHash $catalog)
+  '';
+
+  meta = {
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/docbook-ebnf.cat b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/docbook-ebnf.cat
new file mode 100644
index 000000000000..896a8338f118
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/docbook-ebnf.cat
@@ -0,0 +1,2 @@
+PUBLIC "-//OASIS//DTD DocBook EBNF Module V1.0//EN"
+       "dbebnf.dtd"
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix
new file mode 100644
index 000000000000..35e69641f116
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, unzip, findXMLCatalogs}:
+
+let
+
+  # Urgh, DocBook 4.1.2 doesn't come with an XML catalog.  Use the one
+  # from 4.2.
+  docbook42catalog = fetchurl {
+    url = http://www.docbook.org/xml/4.2/catalog.xml;
+    sha256 = "18lhp6q2l0753s855r638shkbdwq9blm6akdjsc9nrik24k38j17";
+  };
+
+in
+
+import ./generic.nix {
+  inherit stdenv unzip findXMLCatalogs;
+  name = "docbook-xml-4.1.2";
+  src = fetchurl {
+    url = http://www.docbook.org/xml/4.1.2/docbkx412.zip;
+    sha256 = "0wkp5rvnqj0ghxia0558mnn4c7s3n501j99q2isp3sp0ci069w1h";
+  };
+  postInstall = "
+    sed 's|V4.2|V4.1.2|g' < ${docbook42catalog} > catalog.xml
+  ";
+  meta = {
+    branch = "4.1.2";
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix
new file mode 100644
index 000000000000..f8c827e826d0
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix
@@ -0,0 +1,13 @@
+{stdenv, fetchurl, unzip, findXMLCatalogs}:
+
+import ./generic.nix {
+  inherit stdenv unzip findXMLCatalogs;
+  name = "docbook-xml-4.2";
+  src = fetchurl {
+    url = http://www.docbook.org/xml/4.2/docbook-xml-4.2.zip;
+    sha256 = "acc4601e4f97a196076b7e64b368d9248b07c7abf26b34a02cca40eeebe60fa2";
+  };
+  meta = {
+    branch = "4.2";
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix
new file mode 100644
index 000000000000..2c253a1029d6
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix
@@ -0,0 +1,13 @@
+{stdenv, fetchurl, unzip, findXMLCatalogs}:
+
+import ./generic.nix {
+  inherit stdenv unzip findXMLCatalogs;
+  name = "docbook-xml-4.3";
+  src = fetchurl {
+    url = http://www.docbook.org/xml/4.3/docbook-xml-4.3.zip;
+    sha256 = "0r1l2if1z4wm2v664sqdizm4gak6db1kx9y50jq89m3gxaa8l1i3";
+  };
+  meta = {
+    branch = "4.3";
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.4.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.4.nix
new file mode 100644
index 000000000000..d051d205808b
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.4.nix
@@ -0,0 +1,13 @@
+{stdenv, fetchurl, unzip, findXMLCatalogs}:
+
+import ./generic.nix {
+  inherit stdenv unzip findXMLCatalogs;
+  name = "docbook-xml-4.4";
+  src = fetchurl {
+    url = http://www.docbook.org/xml/4.4/docbook-xml-4.4.zip;
+    sha256 = "141h4zsyc71sfi2zzd89v4bb4qqq9ca1ri9ix2als9f4i3mmkw82";
+  };
+  meta = {
+    branch = "4.4";
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix
new file mode 100644
index 000000000000..156ee653bbe3
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix
@@ -0,0 +1,13 @@
+{stdenv, fetchurl, unzip, findXMLCatalogs}:
+
+import ./generic.nix {
+  inherit stdenv unzip findXMLCatalogs;
+  name = "docbook-xml-4.5";
+  src = fetchurl {
+    url = http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip;
+    sha256 = "1d671lcjckjri28xfbf6dq7y3xnkppa910w1jin8rjc35dx06kjf";
+  };
+  meta = {
+    branch = "4.5";
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/generic.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/generic.nix
new file mode 100644
index 000000000000..41c4b73d3f62
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/generic.nix
@@ -0,0 +1,23 @@
+{ stdenv, unzip, src, name, postInstall ? "true", meta ? {}, findXMLCatalogs }:
+
+stdenv.mkDerivation {
+  inherit src name postInstall;
+
+  nativeBuildInputs = [unzip];
+  propagatedNativeBuildInputs = [ findXMLCatalogs ];
+
+  unpackPhase = ''
+    mkdir -p $out/xml/dtd/docbook
+    cd $out/xml/dtd/docbook
+    unpackFile $src
+  '';
+
+  installPhase = ''
+    find . -type f -exec chmod -x {} \;
+    runHook postInstall
+  '';
+
+  meta = meta // {
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix
new file mode 100644
index 000000000000..54ef5225d2f1
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, libxml2 }:
+
+stdenv.mkDerivation {
+  name = "xhtml1-20020801";
+
+  src = fetchurl {
+    url = http://www.w3.org/TR/xhtml1/xhtml1.tgz;
+    sha256 = "0rr0d89i0z75qvjbm8il93bippx09hbmjwy0y2sj44n9np69x3hl";
+  };
+
+  nativeBuildInputs = [ libxml2 ];
+
+  installPhase =
+    ''
+      mkdir -p $out/xml/dtd/xhtml1
+      cp DTD/*.ent DTD/*.dtd $out/xml/dtd/xhtml1
+
+      # Generate an XML catalog.
+      cat=$out/xml/dtd/xhtml1/catalog.xml
+      xmlcatalog --noout --create $cat
+      grep PUBLIC DTD/*.soc | while read x; do
+          eval a=($x)
+          xmlcatalog --noout --add public "''${a[1]}" "''${a[2]}" $cat 
+      done
+    ''; # */
+
+  meta = {
+    homepage = http://www.w3.org/TR/xhtml1/;
+    description = "DTDs for XHTML 1.0, the Extensible HyperText Markup Language";
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix b/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix
new file mode 100644
index 000000000000..ef7b1f93d74e
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix
@@ -0,0 +1,66 @@
+{ lib, stdenv, fetchurl, fetchpatch, findXMLCatalogs, writeScriptBin, ruby, bash }:
+
+let
+
+  common = { pname, sha256, patches ? [] }: let self = stdenv.mkDerivation rec {
+    name = "${pname}-1.79.1";
+
+    src = fetchurl {
+      url = "mirror://sourceforge/docbook/${name}.tar.bz2";
+      inherit sha256;
+    };
+
+    inherit patches;
+
+    propagatedBuildInputs = [ findXMLCatalogs ];
+
+    dontBuild = true;
+
+    installPhase = ''
+      dst=$out/share/xml/${pname}
+      mkdir -p $dst
+      rm -rf RELEASE* README* INSTALL TODO NEWS* BUGS install.sh svn* tools log Makefile tests extensions webhelp
+      mv * $dst/
+
+      # Backwards compatibility. Will remove eventually.
+      mkdir -p $out/xml/xsl
+      ln -s $dst $out/xml/xsl/docbook
+    '';
+
+    passthru.dbtoepub = writeScriptBin "dbtoepub"
+      ''
+        #!${bash}/bin/bash
+        exec -a dbtoepub ${ruby}/bin/ruby ${self}/share/xml/${pname}/epub/bin/dbtoepub "$@"
+      '';
+
+    meta = {
+      homepage = http://wiki.docbook.org/topic/DocBookXslStylesheets;
+      description = "XSL stylesheets for transforming DocBook documents into HTML and various other formats";
+      maintainers = [ lib.maintainers.eelco ];
+      platforms = lib.platforms.all;
+    };
+  }; in self;
+
+in {
+
+  docbook_xsl = common {
+    pname = "docbook-xsl";
+    sha256 = "0s59lihif2fr7rznckxr2kfyrvkirv76r1zvidp9b5mj28p4apvj";
+
+    patches = [(fetchpatch {
+      name = "potential-infinite-template-recursion.patch";
+      url = "https://src.fedoraproject.org/cgit/rpms/docbook-style-xsl.git/"
+          + "plain/docbook-style-xsl-non-recursive-string-subst.patch?id=bf9e5d16fd";
+      sha256 = "1pfb468bsj3j879ip0950waih0r1s6rzfbm2p70glbz0g3903p7h";
+      stripLen = "1";
+    })];
+
+  };
+
+  docbook_xsl_ns = common {
+    pname = "docbook-xsl-ns";
+    sha256 = "170ggf5dgjar65kkn5n33kvjr3pdinpj66nnxfx8b2avw0k91jin";
+
+    patches = [ ./docbook-xsl-ns-infinite.patch ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/docbook-xsl-ns-infinite.patch b/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/docbook-xsl-ns-infinite.patch
new file mode 100644
index 000000000000..5729f9b43c80
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/docbook-xsl-ns-infinite.patch
@@ -0,0 +1,30 @@
+Description: Remove infinite recursion
+Attribute: docbook5_xsl
+Version: 1.79.1
+URL: https://github.com/NixOS/nixpkgs/issues/39090
+diff -ru a/lib/lib.xsl b/lib/lib.xsl
+--- a/lib/lib.xsl	2015-12-26 15:15:37.000000000 -0800
++++ b/lib/lib.xsl	2018-03-22 11:52:45.311949264 -0700
+@@ -11,8 +11,10 @@
+ 
+      ******************************************************************** -->
+ <xsl:stylesheet exclude-result-prefixes="d"
+-                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:d="http://docbook.org/ns/docbook"
+-version="1.0">
++                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
++                xmlns:d="http://docbook.org/ns/docbook"
++                xmlns:str="http://exslt.org/strings"
++                version="1.0">
+ 
+ <xsl:template name="dot.count">
+   <!-- Returns the number of "." characters in a string -->
+@@ -58,6 +61,9 @@
+   <xsl:param name="replacement"/>
+ 
+   <xsl:choose>
++    <xsl:when test="function-available('str:replace')">
++      <xsl:value-of select="str:replace($string, string($target), string($replacement))"/>
++    </xsl:when>
+     <xsl:when test="contains($string, $target)">
+       <xsl:variable name="rest">
+         <xsl:call-template name="string.subst">
diff --git a/nixpkgs/pkgs/data/soundfonts/fluid/default.nix b/nixpkgs/pkgs/data/soundfonts/fluid/default.nix
new file mode 100644
index 000000000000..7debe119aa1c
--- /dev/null
+++ b/nixpkgs/pkgs/data/soundfonts/fluid/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "Fluid-3";
+
+  src = fetchurl {
+    url = "http://www.musescore.org/download/fluid-soundfont.tar.gz";
+    sha256 = "1f96bi0y6rms255yr8dfk436azvwk66c99j6p43iavyq8jg7c5f8";
+  };
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    install -Dm644 "FluidR3 GM2-2.SF2" $out/share/soundfonts/FluidR3_GM2-2.sf2
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Frank Wen's pro-quality GM/GS soundfont";
+    homepage = http://www.hammersound.net/;
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/ant-theme/default.nix b/nixpkgs/pkgs/data/themes/ant-theme/default.nix
new file mode 100644
index 000000000000..8c4c865ef4ae
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/ant-theme/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "ant-theme";
+  version = "1.2.0";
+
+  src = fetchurl {
+    url = "https://github.com/EliverLara/Ant/releases/download/v${version}/Ant.tar";
+    sha256 = "15751pnb94g2wi6y932l3d7ksaz18402zbzp3l7ryy0lqwjnqvkj";
+  };
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes/Ant
+    cp -a * $out/share/themes/Ant
+    rm -r $out/share/themes/Ant/{Art,LICENSE,README.md,gtk-2.0/render-assets.sh}
+    runHook postInstall
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1fzy7bq5v9fzjpfxplvk0nwjgamcva83462gkz01lhr1mipb92h1";
+
+  meta = with stdenv.lib; {
+    description = "A flat and light theme with a modern look";
+    homepage = https://github.com/EliverLara/Ant;
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = [
+      maintainers.pbogdan
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/matcha/default.nix b/nixpkgs/pkgs/data/themes/matcha/default.nix
new file mode 100644
index 000000000000..edb1113a6960
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/matcha/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, gdk_pixbuf, librsvg, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  name = "matcha-${version}";
+  version = "2018-12-24";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = "matcha";
+    rev = version;
+    sha256 = "178y5s5jfprkw8y6clqb8ss4kvfswivfrh6cn67fk4z7wg72i3yc";
+  };
+
+  buildInputs = [ gdk_pixbuf librsvg ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    patchShebangs .
+    mkdir -p $out/share/themes
+    name= ./Install -d $out/share/themes
+    install -D -t $out/share/gtksourceview-3.0/styles src/extra/gedit/matcha.xml
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A stylish Design theme for GTK based desktop environments";
+    homepage = https://vinceliuice.github.io/theme-matcha;
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/materia-theme/default.nix b/nixpkgs/pkgs/data/themes/materia-theme/default.nix
new file mode 100644
index 000000000000..f081078d3afd
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/materia-theme/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, gnome3, libxml2, gtk-engine-murrine, gdk_pixbuf, librsvg, bc }:
+
+stdenv.mkDerivation rec {
+  name = "materia-theme-${version}";
+  version = "20181125";
+
+  src = fetchFromGitHub {
+    owner = "nana-4";
+    repo = "materia-theme";
+    rev = "v${version}";
+    sha256 = "17gsgll2m534lwvpffqisdmhhmn0da419wnpq39wv5cjnmk0q3by";
+  };
+
+  nativeBuildInputs = [ gnome3.glib libxml2 bc ];
+
+  buildInputs = [ gnome3.gnome-themes-extra gdk_pixbuf librsvg ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    patchShebangs install.sh
+    sed -i install.sh \
+      -e "s|if .*which gnome-shell.*;|if true;|" \
+      -e "s|CURRENT_GS_VERSION=.*$|CURRENT_GS_VERSION=${stdenv.lib.versions.majorMinor gnome3.gnome-shell.version}|"
+    ./install.sh --dest $out/share/themes
+    rm $out/share/themes/*/COPYING
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A Material Design theme for GNOME/GTK+ based desktop environments";
+    homepage = https://github.com/nana-4/materia-theme;
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = [ maintainers.mounium ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/nordic-polar/default.nix b/nixpkgs/pkgs/data/themes/nordic-polar/default.nix
new file mode 100644
index 000000000000..305f59529479
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/nordic-polar/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  name = "nordic-polar-${version}";
+  version = "1.3.0";
+
+  srcs = [
+    (fetchurl {
+      url = "https://github.com/EliverLara/Nordic-Polar/releases/download/v${version}/Nordic-Polar.tar.xz";
+      sha256 = "1c5zgymkwd89fr680c49siwbkhfbay56iq9vlyqkj1dp0xnc528s";
+    })
+    (fetchurl {
+      url = "https://github.com/EliverLara/Nordic-Polar/releases/download/v${version}/Nordic-Polar-standard-buttons.tar.xz";
+      sha256 = "0nxzcgqzc42qvnhafranz6rwanqb4wzf9ychm5m4yrlp3ngw38p4";
+    })
+  ];
+
+  sourceRoot = ".";
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    mkdir -p $out/share/themes
+    cp -a Nordic-Polar* $out/share/themes
+    rm $out/share/themes/*/{LICENSE,README.md}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Gtk theme created using the awesome Nord color pallete";
+    homepage = https://github.com/EliverLara/Nordic-Polar;
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/plano/default.nix b/nixpkgs/pkgs/data/themes/plano/default.nix
new file mode 100644
index 000000000000..e878943ff626
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/plano/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, gdk_pixbuf, gtk_engines, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  name = "plano-theme-${version}";
+  version = "3.30-2";
+
+  src = fetchFromGitHub {
+    owner = "lassekongo83";
+    repo = "plano-theme";
+    rev = "v${version}";
+    sha256 = "06yagpb0dpb8nzh3lvs607rzg6y5l6skl4mjcmbxayapsqka45hj";
+  };
+
+  buildInputs = [ gdk_pixbuf gtk_engines ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    install -dm 755 $out/share/themes/Plano
+    cp -a * $out/share/themes/Plano/
+    rm $out/share/themes/Plano/LICENSE
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Flat theme for GNOME & Xfce4";
+    homepage = https://github.com/lassekongo83/plano-theme;
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/plata/default.nix b/nixpkgs/pkgs/data/themes/plata/default.nix
new file mode 100644
index 000000000000..d839d4a3dd80
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/plata/default.nix
@@ -0,0 +1,80 @@
+{ stdenv, fetchFromGitLab, autoreconfHook, pkgconfig, parallel
+, sassc, inkscape, libxml2, gnome2, gdk_pixbuf, librsvg, gtk-engine-murrine
+, cinnamonSupport ? true
+, gnomeFlashbackSupport ? true
+, gnomeShellSupport ? true
+, mateSupport ? true
+, openboxSupport ? true
+, xfceSupport ? true
+, gtkNextSupport ? false
+, plankSupport ? false
+, telegramSupport ? false
+, tweetdeckSupport ? false
+, selectionColor ? null # Primary color for 'selected-items' (Default: #3F51B5 = Indigo500)
+, accentColor ? null # Secondary color for notifications and OSDs (Default: #7986CB = Indigo300)
+, suggestionColor ? null # Secondary color for 'suggested' buttons (Default: #673AB7 = DPurple500)
+, destructionColor ? null # Tertiary color for 'destructive' buttons (Default: #F44336 = Red500)
+}:
+
+stdenv.mkDerivation rec {
+  name = "plata-theme-${version}";
+  version = "0.4.9";
+
+  src = fetchFromGitLab {
+    owner = "tista500";
+    repo = "plata-theme";
+    rev = version;
+    sha256 = "0kj04nj265rgkbbhzhz9f7q6z5yr1dxmcrnq1b5ldha3xqrq2pv9";
+  };
+
+  preferLocalBuild = true;
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkgconfig
+    parallel
+    sassc
+    inkscape
+    libxml2
+    gnome2.glib.dev
+  ];
+
+  buildInputs = [
+    gdk_pixbuf
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  postPatch = "patchShebangs .";
+
+  configureFlags =
+    let
+      inherit (stdenv.lib) enableFeature optional;
+      withOptional = value: feat: optional (value != null) "--with-${feat}=${value}";
+    in [
+      "--enable-parallel"
+      (enableFeature cinnamonSupport "cinnamon")
+      (enableFeature gnomeFlashbackSupport "flashback")
+      (enableFeature gnomeShellSupport "gnome")
+      (enableFeature mateSupport "mate")
+      (enableFeature openboxSupport "openbox")
+      (enableFeature xfceSupport "xfce")
+      (enableFeature gtkNextSupport "gtk_next")
+      (enableFeature plankSupport "plank")
+      (enableFeature telegramSupport "telegram")
+      (enableFeature tweetdeckSupport "tweetdeck")
+    ]
+    ++ (withOptional selectionColor "selection_color")
+    ++ (withOptional accentColor "accent_color")
+    ++ (withOptional suggestionColor "suggestion_color")
+    ++ (withOptional destructionColor "destruction_color");
+
+  meta = with stdenv.lib; {
+    description = "A Gtk+ theme based on Material Design Refresh";
+    homepage = https://gitlab.com/tista500/plata-theme;
+    license = with licenses; [ gpl2 cc-by-sa-40 ];
+    platforms = platforms.linux;
+    maintainers = [ maintainers.tadfisher ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/shades-of-gray/default.nix b/nixpkgs/pkgs/data/themes/shades-of-gray/default.nix
new file mode 100644
index 000000000000..64cc2be59987
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/shades-of-gray/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, gtk_engines, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  name = "shades-of-gray-theme-${version}";
+  version = "1.1.3";
+
+  src = fetchFromGitHub {
+    owner = "WernerFP";
+    repo = "Shades-of-gray-theme";
+    rev = version;
+    sha256 = "14p1s1pmzqnn9j9vwqfxfd4i045p356a6d9rwzzs0gx3c6ibqx3a";
+  };
+
+  buildInputs = [ gtk_engines ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    mkdir -p $out/share/themes
+    cp -a Shades-of-gray* $out/share/themes/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A flat dark GTK-theme with ergonomic contrasts";
+    homepage = https://github.com/WernerFP/Shades-of-gray-theme;
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}