about summary refs log tree commit diff
path: root/nixpkgs/pkgs/data/fonts
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/data/fonts')
-rw-r--r--nixpkgs/pkgs/data/fonts/3270font/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/agave/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/aileron/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/alegreya-sans/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/alegreya/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/amiri/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/ankacoder/condensed.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/ankacoder/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/anonymous-pro/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/arkpandora/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/arphic/default.nix55
-rw-r--r--nixpkgs/pkgs/data/fonts/aurulent-sans/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/b612/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/babelstone-han/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/baekmuk-ttf/default.nix20
-rw-r--r--nixpkgs/pkgs/data/fonts/bakoma-ttf/default.nix20
-rw-r--r--nixpkgs/pkgs/data/fonts/barlow/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/behdad-fonts/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/cabin/default.nix37
-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.nix22
-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/cascadia-code/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/charis-sil/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/cherry/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/clearlyU/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/cm-unicode/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/cnstrokeorder/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/comfortaa/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/comic-neue/default.nix41
-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/cooper-hewitt/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/corefonts/default.nix73
-rw-r--r--nixpkgs/pkgs/data/fonts/corefonts/no-op.conf9
-rw-r--r--nixpkgs/pkgs/data/fonts/cozette/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/creep/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/crimson/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/culmus/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/curie/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/d2coding/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/dejavu-fonts/default.nix65
-rw-r--r--nixpkgs/pkgs/data/fonts/dina/default.nix64
-rw-r--r--nixpkgs/pkgs/data/fonts/dosemu-fonts/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/dosis/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/doulos-sil/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/eb-garamond/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/edukai/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/eduli/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/edusong/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/emojione/default.nix50
-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.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/ferrum/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/fira-code/default.nix30
-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.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/fixedsys-excelsior/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/font-awesome-5/default.nix45
-rw-r--r--nixpkgs/pkgs/data/fonts/fraunces/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/freefont-ttf/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/gandom-fonts/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/gdouros/default.nix38
-rw-r--r--nixpkgs/pkgs/data/fonts/gelasio/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/gentium-book-basic/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/gentium/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/go-font/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/gohufont/default.nix69
-rw-r--r--nixpkgs/pkgs/data/fonts/google-fonts/default.nix52
-rw-r--r--nixpkgs/pkgs/data/fonts/gubbi/default.nix29
-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.nix38
-rw-r--r--nixpkgs/pkgs/data/fonts/hasklig/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/helvetica-neue-lt-std/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/hermit/default.nix25
-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.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/inconsolata/default.nix19
-rw-r--r--nixpkgs/pkgs/data/fonts/inconsolata/lgc.nix52
-rw-r--r--nixpkgs/pkgs/data/fonts/input-fonts/default.nix98
-rw-r--r--nixpkgs/pkgs/data/fonts/inriafonts/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/inter/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/bin.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/default.nix139
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/node.nix17
-rwxr-xr-xnixpkgs/pkgs/data/fonts/iosevka/update-bin.sh28
-rwxr-xr-xnixpkgs/pkgs/data/fonts/iosevka/update-default.sh21
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/variants.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/ipaexfont/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/ipafont/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/ir-standard-fonts/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/iwona/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/jost/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/joypixels/default.nix103
-rw-r--r--nixpkgs/pkgs/data/fonts/julia-mono/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/junicode/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/kanji-stroke-order-font/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/kawkab-mono/default.nix22
-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/kreative-square-fonts/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/lalezar-fonts/default.nix26
-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-fonts/default.nix68
-rw-r--r--nixpkgs/pkgs/data/fonts/liberation-sans-narrow/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/libertine/default.nix47
-rw-r--r--nixpkgs/pkgs/data/fonts/libertinus/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/libre-baskerville/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/libre-bodoni/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/libre-caslon/default.nix46
-rw-r--r--nixpkgs/pkgs/data/fonts/libre-franklin/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/line-awesome/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/lmmath/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/lmodern/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/lobster-two/default.nix80
-rw-r--r--nixpkgs/pkgs/data/fonts/lohit-fonts/default.nix60
-rw-r--r--nixpkgs/pkgs/data/fonts/luculent/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/manrope/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/marathi-cursive/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/material-design-icons/default.nix36
-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/merriweather-sans/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/merriweather/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/meslo-lg/default.nix46
-rw-r--r--nixpkgs/pkgs/data/fonts/meslo-lgs-nf/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/migmix/default.nix42
-rw-r--r--nixpkgs/pkgs/data/fonts/migu/default.nix42
-rw-r--r--nixpkgs/pkgs/data/fonts/mno16/default.nix21
-rw-r--r--nixpkgs/pkgs/data/fonts/monoid/default.nix49
-rw-r--r--nixpkgs/pkgs/data/fonts/mononoki/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/montserrat/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/mph-2b-damase/default.nix17
-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.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/nafees/default.nix62
-rw-r--r--nixpkgs/pkgs/data/fonts/nahid-fonts/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/nanum-gothic-coding/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/national-park/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/navilu/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/nerdfonts/default.nix75
-rw-r--r--nixpkgs/pkgs/data/fonts/nerdfonts/shas.nix52
-rwxr-xr-xnixpkgs/pkgs/data/fonts/nerdfonts/update.sh21
-rw-r--r--nixpkgs/pkgs/data/fonts/nerdfonts/version.nix1
-rw-r--r--nixpkgs/pkgs/data/fonts/nika-fonts/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/norwester/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/noto-fonts/default.nix190
-rw-r--r--nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix78
-rw-r--r--nixpkgs/pkgs/data/fonts/office-code-pro/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/oldsindhi/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/oldstandard/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/open-dyslexic/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/open-sans/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/orbitron/default.nix45
-rw-r--r--nixpkgs/pkgs/data/fonts/overpass/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/oxygenfonts/default.nix48
-rw-r--r--nixpkgs/pkgs/data/fonts/parastoo-fonts/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/pecita/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/penna/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/poly/default.nix50
-rw-r--r--nixpkgs/pkgs/data/fonts/powerline-fonts/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/powerline-symbols/default.nix18
-rw-r--r--nixpkgs/pkgs/data/fonts/profont/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/proggyfonts/default.nix41
-rw-r--r--nixpkgs/pkgs/data/fonts/public-sans/default.nix28
-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.nix42
-rw-r--r--nixpkgs/pkgs/data/fonts/recursive/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/redhat-official/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/rhodium-libre/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/ricty/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/rictydiminished-with-firacode/default.nix48
-rw-r--r--nixpkgs/pkgs/data/fonts/roboto-mono/default.nix88
-rw-r--r--nixpkgs/pkgs/data/fonts/roboto-slab/default.nix41
-rw-r--r--nixpkgs/pkgs/data/fonts/roboto/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/rounded-mgenplus/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/route159/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/sahel-fonts/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/samim-fonts/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/sampradaya/default.nix19
-rw-r--r--nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/scheherazade/default.nix49
-rw-r--r--nixpkgs/pkgs/data/fonts/scientifica/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/seshat/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/shabnam-fonts/default.nix26
-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.nix44
-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/default.nix55
-rw-r--r--nixpkgs/pkgs/data/fonts/source-sans-pro/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/source-serif-pro/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/spleen/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/stix-otf/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/stix-two/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/sudo/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/tai-languages/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/tamsyn/default.nix50
-rw-r--r--nixpkgs/pkgs/data/fonts/tamzen/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/tempora-lgc/default.nix42
-rw-r--r--nixpkgs/pkgs/data/fonts/tenderness/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/terminus-font-ttf/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/terminus-font/default.nix62
-rw-r--r--nixpkgs/pkgs/data/fonts/tewi/default.nix59
-rw-r--r--nixpkgs/pkgs/data/fonts/tex-gyre-math/default.nix67
-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.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/tlwg/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/tt2020/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.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/ttf-tw-moe/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix42
-rw-r--r--nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix117
-rw-r--r--nixpkgs/pkgs/data/fonts/ubuntu-font-family/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix61
-rw-r--r--nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/undefined-medium/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/uni-vga/default.nix58
-rw-r--r--nixpkgs/pkgs/data/fonts/unifont/default.nix53
-rw-r--r--nixpkgs/pkgs/data/fonts/unifont_upper/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/unscii/default.nix55
-rw-r--r--nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix90
-rw-r--r--nixpkgs/pkgs/data/fonts/uw-ttyp0/determinism.patch13
-rwxr-xr-xnixpkgs/pkgs/data/fonts/vazir-fonts/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/vdrsymbols/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/vegur/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/victor-mono/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/vista-fonts-chs/default.nix42
-rw-r--r--nixpkgs/pkgs/data/fonts/vista-fonts-chs/no-op.conf9
-rw-r--r--nixpkgs/pkgs/data/fonts/vista-fonts/default.nix41
-rw-r--r--nixpkgs/pkgs/data/fonts/vista-fonts/no-op.conf9
-rw-r--r--nixpkgs/pkgs/data/fonts/vollkorn/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/weather-icons/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/work-sans/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.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/xkcd-font/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/yanone-kaffeesatz/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/zilla-slab/default.nix33
266 files changed, 9308 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/data/fonts/3270font/default.nix b/nixpkgs/pkgs/data/fonts/3270font/default.nix
new file mode 100644
index 000000000000..d737c9383f15
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/3270font/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+let
+  version = "2.3.0";
+in
+fetchzip {
+  name = "3270font-${version}";
+
+  url = "https://github.com/rbanffy/3270font/releases/download/v${version}/3270_fonts_fd00815.zip";
+
+  sha256 = "0ny2jcsfa1kfzkm979dfzqv756ijm5xirm02ln7a4kwhxxsm5xr1";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.afm -d $out/share/fonts/type1
+  '';
+
+  meta = with lib; {
+    description = "Monospaced font based on IBM 3270 terminals";
+    homepage = "https://github.com/rbanffy/3270font";
+    changelog = "https://github.com/rbanffy/3270font/blob/v${version}/CHANGELOG.md";
+    license = [ licenses.bsd3 licenses.ofl ];
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/agave/default.nix b/nixpkgs/pkgs/data/fonts/agave/default.nix
new file mode 100644
index 000000000000..39ef6e34aaae
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/agave/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchurl }:
+
+let
+  pname = "agave";
+  version = "35";
+in fetchurl {
+  name = "${pname}-${version}";
+  url = "https://github.com/agarick/agave/releases/download/v${version}/Agave-Regular.ttf";
+
+  downloadToTemp = true;
+  recursiveHash = true;
+  postFetch = ''
+    install -D $downloadedFile $out/share/fonts/truetype/Agave-Regular.ttf
+  '';
+
+  sha256 = "10shwsl1illdafnc352j439lklrxksip1vlh4jc934cr9qf4c1fz";
+
+  meta = with lib; {
+    description = "truetype monospaced typeface designed for X environments";
+    homepage = "https://b.agaric.net/page/agave";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dtzWill ];
+    platforms = platforms.all;
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/aileron/default.nix b/nixpkgs/pkgs/data/fonts/aileron/default.nix
new file mode 100644
index 000000000000..4961a5e7449d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/aileron/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "102";
+  pname = "aileron";
+in
+
+fetchzip {
+  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 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/alegreya-sans/default.nix b/nixpkgs/pkgs/data/fonts/alegreya-sans/default.nix
new file mode 100644
index 000000000000..cc0cd6cac9b9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/alegreya-sans/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "alegreya-sans";
+  version = "2.008";
+
+  src = fetchFromGitHub {
+    owner = "huertatipografica";
+    repo = "Alegreya-Sans";
+    rev = "v${version}";
+    sha256 = "0xz5lq9fh0pj02ifazhddzh792qkxkz1z6ylj26d93wshc90jl5g";
+  };
+
+  installPhase = ''
+    install -D -m 444 fonts/otf/* -t $out/share/fonts/otf
+    install -D -m 444 fonts/ttf/* -t $out/share/fonts/ttf
+    install -D -m 444 fonts/webfonts/*.woff -t $out/share/fonts/woff
+    install -D -m 444 fonts/webfonts/*.woff2 -t $out/share/fonts/woff2
+  '';
+
+  meta = with lib; {
+    description = "Humanist sans serif family with a calligraphic feeling";
+    longDescription = ''
+Alegreya Sans is a humanist sans serif family with a calligraphic feeling that conveys a dynamic and varied rhythm. This gives a pleasant feeling to readers of long texts.
+
+The family follows humanist proportions and principles, just like the serif version of the family, Alegreya. It achieves a ludic and harmonious paragraph through elements carefully designed in an atmosphere of diversity. The italics bring a strong emphasis to the roman styles, and each have seven weights to bring you a wide typographic palette.
+
+Alegreya Sans supports expert latin, greek and cyrillic character sets and provides advanced typography OpenType features such as small caps, dynamic ligatures and fractions, four set of figures, super and subscript characters, ordinals, localized accent forms for spanish, catalan, guaraní, dutch, turkish, romanian, serbian among others.
+
+The Alegreya type system is a "super family", originally intended for literature, and includes sans and serif sister families.
+    '';
+    homepage = "https://www.huertatipografica.com/en/fonts/alegreya-sans-ht";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ Thra11 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/alegreya/default.nix b/nixpkgs/pkgs/data/fonts/alegreya/default.nix
new file mode 100644
index 000000000000..b2ec1de0cc89
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/alegreya/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "alegreya";
+  version = "2.008";
+
+  src = fetchFromGitHub {
+    owner = "huertatipografica";
+    repo = "Alegreya";
+    rev = "v${version}";
+    sha256 = "1m5xr95y6qxxv2ryvhfck39d6q5hxsr51f530fshg53x48l2mpwr";
+  };
+
+  installPhase = ''
+    install -D -m 444 fonts/otf/* -t $out/share/fonts/otf
+    install -D -m 444 fonts/ttf/* -t $out/share/fonts/ttf
+    install -D -m 444 fonts/webfonts/*.woff -t $out/share/fonts/woff
+    install -D -m 444 fonts/webfonts/*.woff2 -t $out/share/fonts/woff2
+  '';
+
+  meta = with lib; {
+    description = "An elegant and versatile font family for comfortable reading";
+    longDescription = ''
+Alegreya is a typeface originally intended for literature. Among its crowning characteristics, it conveys a dynamic and varied rhythm which facilitates the reading of long texts. Also, it provides freshness to the page while referring to the calligraphic letter, not as a literal interpretation, but rather in a contemporary typographic language.
+
+The italic has just as much care and attention to detail in the design as the roman. The bold weights are strong, and the Black weights are really experimental for the genre. There is also a Small Caps sister family.
+
+Not only does Alegreya provide great performance, but also achieves a strong and harmonious text by means of elements designed in an atmosphere of diversity.
+
+The Alegreya type system is a "super family", originally intended for literature, and includes serif and sans serif sister families.
+
+It supports expert latin, greek and cyrillic character sets and provides advanced typography OpenType features such as small caps, dynamic ligatures and fractions, four set of figures, super and subscript characters, ordinals, localized accent forms for spanish, catalan, guaraní, dutch, turkish, romanian, serbian among others.
+
+Alegreya was chosen at the ATypI Letter2 competition in September 2011, and one of the top 14 text type systems. It was also selected in the 2nd Bienal Iberoamericana de Diseño, competition held in Madrid in 2010 and Tipos Latinos.
+
+Designed by Juan Pablo del Peral for Huerta Tipográfica.
+    '';
+    homepage = "https://www.huertatipografica.com/en/fonts/alegreya-ht-pro";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ Thra11 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/amiri/default.nix b/nixpkgs/pkgs/data/fonts/amiri/default.nix
new file mode 100644
index 000000000000..9867b84757aa
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/amiri/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  version = "0.113";
+
+in fetchzip rec {
+  name = "Amiri-${version}";
+
+  url = "https://github.com/alif-type/amiri/releases/download/${version}/${name}.zip";
+
+  sha256 = "0v5xm4spyww8wy6j9kpb01ixrakw7wp6jng4xnh220iy6yqcxm7v";
+
+  postFetch = ''
+    unzip $downloadedFile
+    install -m444 -Dt $out/share/fonts/truetype ${name}/*.ttf
+    install -m444 -Dt $out/share/doc/${name}    ${name}/{*.txt,*.pdf}
+  '';
+
+  meta = with lib; {
+    description = "A classical Arabic typeface in Naskh style";
+    homepage = "https://www.amirifont.org/";
+    license = licenses.ofl;
+    maintainers = [ maintainers.vbgl ];
+    platforms = platforms.all;
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/andagii/default.nix b/nixpkgs/pkgs/data/fonts/andagii/default.nix
new file mode 100644
index 000000000000..700680a54b27
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/andagii/default.nix
@@ -0,0 +1,27 @@
+{ lib, 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 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..5fa2f1b27108
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/andika/default.nix
@@ -0,0 +1,31 @@
+{ lib, 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 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/ankacoder/condensed.nix b/nixpkgs/pkgs/data/fonts/ankacoder/condensed.nix
new file mode 100644
index 000000000000..655c780129d8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ankacoder/condensed.nix
@@ -0,0 +1,24 @@
+{ lib, fetchzip }:
+
+let version = "1.100"; in
+fetchzip {
+  name = "ankacoder-condensed-${version}";
+  url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/anka-coder-fonts/AnkaCoderCondensed.${version}.zip";
+
+  postFetch = ''
+    unzip $downloadedFile
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+  '';
+
+  sha256 = "0i80zpr2y9368rg2i6x8jv0g7d03kdyr5h7w9yz7pjd7i9xd8439";
+
+  meta = with lib; {
+    description = "Anka/Coder Condensed font";
+    homepage = "https://code.google.com/archive/p/anka-coder-fonts";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ dtzWill ];
+    platforms = platforms.all;
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/ankacoder/default.nix b/nixpkgs/pkgs/data/fonts/ankacoder/default.nix
new file mode 100644
index 000000000000..fbf587c7c6ca
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ankacoder/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchzip }:
+
+let version = "1.100"; in
+fetchzip {
+  name = "ankacoder-${version}";
+  url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/anka-coder-fonts/AnkaCoder.${version}.zip";
+
+  postFetch = ''
+    unzip $downloadedFile
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+  '';
+
+  sha256 = "1jqx9micfmiarqh9xp330gl96v3vxbwzz9cmg2vi845n9md4im85";
+
+  meta = with lib; {
+    description = "Anka/Coder fonts";
+    homepage = "https://code.google.com/archive/p/anka-coder-fonts";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ dtzWill ];
+    platforms = platforms.all;
+  };
+}
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..0f8289fe18aa
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/anonymous-pro/default.nix
@@ -0,0 +1,30 @@
+{ lib, 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 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..827d7b0a5a44
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/arkpandora/default.nix
@@ -0,0 +1,25 @@
+{ 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";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/arphic/default.nix b/nixpkgs/pkgs/data/fonts/arphic/default.nix
new file mode 100644
index 000000000000..714af585d255
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/arphic/default.nix
@@ -0,0 +1,55 @@
+{ lib, 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 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 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..50f456373c69
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/aurulent-sans/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchFromGitHub }:
+
+fetchFromGitHub rec {
+  name = "aurulent-sans-0.1";
+  owner = "deepfire";
+  repo = "hartke-aurulent-sans";
+  rev = name;
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    tar xf $downloadedFile -C $out/share/fonts --strip=1
+  '';
+  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 lib.maintainers; [ deepfire ];
+    license = lib.licenses.ofl;
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/b612/default.nix b/nixpkgs/pkgs/data/fonts/b612/default.nix
new file mode 100644
index 000000000000..bf97ff30c6d6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/b612/default.nix
@@ -0,0 +1,39 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "1.008";
+  pname = "b612";
+in fetchFromGitHub {
+  name = "${pname}-font-${version}";
+  owner = "polarsys";
+  repo = "b612";
+  rev = version;
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    mkdir -p $out/share/fonts/truetype/${pname}
+    cp fonts/ttf/*.ttf $out/share/fonts/truetype/${pname}
+  '';
+  sha256 = "0r3lana1q9w3siv8czb3p9rrb5d9svp628yfbvvmnj7qvjrmfsiq";
+
+  meta = with lib; {
+    homepage = "http://b612-font.com/";
+    description = "Highly legible font family for use on aircraft cockpit screens";
+    longDescription = ''
+      B612 is the result of a research project initiated by Airbus. The font
+      was designed by Nicolas Chauveau and Thomas Paillot (intactile DESIGN) with the
+      support of Jean‑Luc Vinot (ENAC). Prior research by Jean‑Luc Vinot (DGAC/DSNA)
+      and Sylvie Athènes (Université de Toulouse III). The challenge for the
+      "Aeronautical Font" was to improve the display of information on the cockpit
+      screens, in particular in terms of legibility and comfort of reading, and to
+      optimize the overall homogeneity of the cockpit.
+
+      Intactile DESIGN was hired to work on the design of eight typographic
+      variants of the font. This one, baptized B612 in reference to the
+      imaginary asteroid of the aviator Saint‑Exupéry, benefited from a complete
+      hinting on all the characters.
+      '';
+    license = with licenses; [ ofl epl10 bsd3 ] ;
+    maintainers = with maintainers; [ leenaars ];
+    platforms = 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..7f2898db9f1a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/babelstone-han/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchzip }:
+
+let
+  version = "13.0.3";
+in fetchzip {
+  name = "babelstone-han-${version}";
+
+  # upstream download links are unversioned, so hash changes
+  url = "https://web.archive.org/web/20200210125314/https://www.babelstone.co.uk/Fonts/Download/BabelStoneHan.zip";
+  postFetch = ''
+    mkdir -p $out/share/fonts/truetype
+    unzip $downloadedFile '*.ttf' -d $out/share/fonts/truetype
+  '';
+  sha256 = "018isk3hbzsihzrxavgjbn485ngzvlm96npqx9y7zpkxsssslc4w";
+
+  meta = with lib; {
+    description = "Unicode CJK font with over 36000 Han characters";
+    homepage = "https://www.babelstone.co.uk/Fonts/Han.html";
+
+    license = licenses.free;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ volth emily ];
+  };
+}
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..92f7401b32da
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/baekmuk-ttf/default.nix
@@ -0,0 +1,20 @@
+{ 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
+    install -m444 -Dt $out/share/fonts        ttf/*.ttf
+    install -m444 -Dt $out/share/doc/${name}  COPYRIGHT*
+  '';
+  sha256 = "1jgsvack1l14q8lbcv4qhgbswi30mf045k37rl772hzcmx0r206g";
+
+  meta = {
+    description = "Korean font";
+    homepage = "http://kldp.net/projects/baekmuk/";
+    license = "BSD-like";
+  };
+}
+
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..a8c01b41e676
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/bakoma-ttf/default.nix
@@ -0,0 +1,20 @@
+{ 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/";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/barlow/default.nix b/nixpkgs/pkgs/data/fonts/barlow/default.nix
new file mode 100644
index 000000000000..e9257260ea2c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/barlow/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchzip }:
+let
+  version = "1.422";
+in
+fetchzip rec {
+  name = "barlow-${version}";
+
+  url = "https://tribby.com/fonts/barlow/download/barlow-${version}.zip";
+
+  sha256 = "08ld4c3zq4d1px07lc64i7l8848zsc61ddy3654w2sh0hx5sm5ld";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.eot -d $out/share/fonts/eot
+    unzip -j $downloadedFile \*.woff -d $out/share/fonts/woff
+    unzip -j $downloadedFile \*.woff2 -d $out/share/fonts/woff2
+  '';
+
+  meta = with lib; {
+    description = "A grotesk variable font superfamily";
+    homepage = "https://tribby.com/fonts/barlow/";
+    license = licenses.ofl;
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/behdad-fonts/default.nix b/nixpkgs/pkgs/data/fonts/behdad-fonts/default.nix
new file mode 100644
index 000000000000..d5d0b2a3c1dd
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/behdad-fonts/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "behdad-fonts";
+  version = "0.0.3";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "font-store";
+  repo = "BehdadFont";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/behrad-fonts {} \;
+  '';
+  sha256 = "0c57232462cv1jrfn0m2bl7jzcfkacirrdd2qimrc8iqhkz0ajfz";
+
+  meta = with lib; {
+    homepage = "https://github.com/font-store/BehdadFont";
+    description = "A Persian/Arabic Open Source Font";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.linarcx ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/cabin/default.nix b/nixpkgs/pkgs/data/fonts/cabin/default.nix
new file mode 100644
index 000000000000..e68d429db2e8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cabin/default.nix
@@ -0,0 +1,37 @@
+{ lib, fetchFromGitHub }:
+
+fetchFromGitHub rec {
+  name = "cabin-1.005";
+
+  owner = "impallari";
+  repo = "Cabin";
+  rev = "982839c790e9dc57c343972aa34c51ed3b3677fd";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -m444 -Dt $out/share/fonts/opentype fonts/OTF/*.otf
+    install -m444 -Dt $out/share/doc/${name}    README.md FONTLOG.txt
+  '';
+
+  sha256 = "1bl7h217m695jn4rbniialfk573aa44fslp2rjxnhkicakpcm44h";
+
+  meta = with 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..78452961e8e9
--- /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 "urn:fontconfig: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..14a8de1b0d9e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/caladea/default.nix
@@ -0,0 +1,37 @@
+{ lib, fetchzip }:
+
+let
+  version = "20130214";
+in fetchzip {
+  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 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..3db1f6728185
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/camingo-code/default.nix
@@ -0,0 +1,22 @@
+{ lib, 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
+    install -m444 -Dt $out/share/fonts/truetype fonts/camingo-code/*.ttf
+    install -m444 -Dt $out/share/doc/${name}    fonts/camingo-code/*.txt
+  '';
+  sha256 = "16iqjwwa7pnswvcc4w8nglkd0m0fz50qsz96i1kcpqip3nwwvw7y";
+
+  meta = with 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..5129cf271886
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cantarell-fonts/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv, fetchurl, meson, ninja, gettext, appstream-glib, gnome3 }:
+
+let
+  pname = "cantarell-fonts";
+  version = "0.111";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
+    sha256 = "05hpnhihwm9sxlq1qn993g03pwkmpjbn0dvnba71r1gfjv0jp2w5";
+  };
+
+  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 = "12ps2gjv1lmzbmkv16vgjmaahl3ayadpniyrx0z31sqn443r57hq";
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
+  meta = {
+    description = "Default typeface used in the user interface of GNOME since version 3.0";
+    platforms = lib.platforms.all;
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
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..bbffff23721f
--- /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 "urn:fontconfig: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..1de2e9afc0f9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/carlito/default.nix
@@ -0,0 +1,39 @@
+{ lib, fetchzip }:
+
+let
+  version = "20130920";
+in fetchzip {
+  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 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/cascadia-code/default.nix b/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix
new file mode 100644
index 000000000000..e09ad70f1468
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+let
+  version = "2102.25";
+in
+fetchzip {
+  name = "cascadia-code-${version}";
+
+  url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaCode-${version}.zip";
+
+  sha256 = "14qhawcf1jmv68zdfbi2zfqdw4cf8fpk7plxzphmkqsp7hlw9pzx";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    description = "Monospaced font that includes programming ligatures and is designed to enhance the modern look and feel of the Windows Terminal";
+    homepage = "https://github.com/microsoft/cascadia-code";
+    license = licenses.ofl;
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
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..44b40c72b58f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/charis-sil/default.nix
@@ -0,0 +1,31 @@
+{ lib, 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 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/cherry/default.nix b/nixpkgs/pkgs/data/fonts/cherry/default.nix
new file mode 100644
index 000000000000..53d9149091e8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cherry/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, fonttosfnt, mkfontdir }:
+
+stdenv.mkDerivation rec {
+  pname = "cherry";
+  version = "1.4";
+
+  src = fetchFromGitHub {
+    owner = "turquoise-hexagon";
+    repo = pname;
+    rev = version;
+    sha256 = "13zkxwp6r6kcxv4x459vwscr0n0sik4a3kcz5xnmlpvcdnbxi586";
+  };
+
+  nativeBuildInputs = [ fonttosfnt mkfontdir ];
+
+  buildPhase = ''
+    patchShebangs make.sh
+    ./make.sh
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/misc
+    cp *.otb $out/share/fonts/misc
+
+    # create fonts.dir so NixOS xorg module adds to fp
+    mkfontdir $out/share/fonts/misc
+  '';
+
+  meta = with lib; {
+    description = "cherry font";
+    homepage = "https://github.com/turquoise-hexagon/cherry";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dtzWill ];
+    platforms = platforms.all;
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/clearlyU/default.nix b/nixpkgs/pkgs/data/fonts/clearlyU/default.nix
new file mode 100644
index 000000000000..5c97d3b71344
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/clearlyU/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchurl, fonttosfnt, mkfontscale, libfaketime }:
+
+stdenv.mkDerivation rec {
+  pname = "clearlyU";
+  version = "12-1.9";
+
+  src = fetchurl {
+    url = "https://www.math.nmsu.edu/~mleisher/Software/cu/cu${version}.tgz";
+    sha256 = "1xn14jbv3m1khy7ydvad9ydkn7yygdbhjy9wm1v000jzjwr3lv21";
+  };
+
+  nativeBuildInputs = [ fonttosfnt mkfontscale libfaketime ];
+
+  buildPhase = ''
+    # convert bdf fonts to otb
+    for i in *.bdf; do
+      name=$(basename "$i" .bdf)
+      faketime -f "1970-01-01 00:00:01" fonttosfnt -g 2 -m 2 -v -o "$name.otb" "$i"
+    done
+  '';
+
+  installPhase = ''
+    # install otb and bdf fonts
+    fontDir="$out/share/fonts"
+    install -m 644 -D *.bdf *.otb -t "$fontDir"
+    mkfontdir "$fontDir"
+  '';
+
+  meta = with lib; {
+    description = "A Unicode font";
+    license = licenses.mit;
+    maintainers = [ maintainers.raskin ];
+  };
+}
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..d7437c3231d6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cm-unicode/default.nix
@@ -0,0 +1,25 @@
+{ lib, 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
+    install -m444 -Dt $out/share/fonts/opentype *.otf
+    install -m444 -Dt $out/share/doc/${name}    README FontLog.txt
+  '';
+
+  sha256 = "1rzz7yhqq3lljyqxbg46jfzfd09qgpgx865lijr4sgc94riy1ypn";
+
+  meta = with 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/cnstrokeorder/default.nix b/nixpkgs/pkgs/data/fonts/cnstrokeorder/default.nix
new file mode 100644
index 000000000000..965bf119f6e7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cnstrokeorder/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchurl }:
+
+let
+  version = "0.0.4.7";
+in fetchurl {
+  name = "cnstrokeorder-${version}";
+
+  url = "http://rtega.be/chmn/CNstrokeorder-${version}.ttf";
+
+  recursiveHash = true;
+  downloadToTemp = true;
+
+  postFetch = ''
+    install -D $downloadedFile $out/share/fonts/truetype/CNstrokeorder-${version}.ttf
+  '';
+
+  sha256 = "0cizgfdgbq9av5c8234mysr2q54iw9pkxrmq5ga8gv32hxhl5bx4";
+
+  meta = with lib; {
+    description = "Chinese font that shows stroke order for HSK 1-4";
+    homepage = "http://rtega.be/chmn/index.php?subpage=68";
+    license = [ licenses.arphicpl ];
+    maintainers = with maintainers; [ johnazoidberg ];
+    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..525c2920dbe6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/comfortaa/default.nix
@@ -0,0 +1,23 @@
+{ lib, 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 -j $downloadedFile \*.ttf                        -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*/FONTLOG.txt \*/donate.html -d $out/share/doc/${name}
+  '';
+  sha256 = "0z7xr0cnn6ghwivrm5b5awq9bzhnay3y99qq6dkdgfkfdsaz0n9h";
+
+  meta = with 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..df618aea8110
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/comic-neue/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+  pname = "comic-neue";
+  version = "2.51";
+
+  src = fetchzip {
+    url = "http://comicneue.com/${pname}-${version}.zip";
+    sha256 = "sha256-DjRZtFnJOtZnxhfpgU5ihZFAonRK608/BQztCAExIU0=";
+    stripRoot = false; # because it comes with a __MACOSX directory
+  };
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  installPhase = ''
+    mkdir -pv $out/share/{doc/${pname}-${version},fonts/{opentype,truetype,WOFF,WOFF2}}
+    cp -v ${pname}-${version}/{FONTLOG,OFL-FAQ,OFL}.txt $out/share/doc/
+    cp -v ${pname}-${version}/Booklet-ComicNeue.pdf $out/share/doc/
+    cp -v ${pname}-${version}/OTF/ComicNeue-Angular/*.otf $out/share/fonts/opentype
+    cp -v ${pname}-${version}/OTF/ComicNeue/*.otf $out/share/fonts/opentype
+    cp -v ${pname}-${version}/TTF/ComicNeue-Angular/*.ttf $out/share/fonts/truetype
+    cp -v ${pname}-${version}/TTF/ComicNeue/*.ttf $out/share/fonts/truetype
+    cp -v ${pname}-${version}/WebFonts/*.woff $out/share/fonts/WOFF
+    cp -v ${pname}-${version}/WebFonts/*.woff2 $out/share/fonts/WOFF2
+  '';
+
+  meta = with lib; {
+    homepage = "http://comicneue.com/";
+    description = "A casual type face: Make your lemonade stand look like a fortune 500 company";
+    longDescription = ''
+      ComicNeue is inspired by Comic Sans but more regular. It 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..e1362ec4f5f7
--- /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 "urn:fontconfig: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..1f5ce7f642fa
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/comic-relief/default.nix
@@ -0,0 +1,40 @@
+{ lib, 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 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/cooper-hewitt/default.nix b/nixpkgs/pkgs/data/fonts/cooper-hewitt/default.nix
new file mode 100644
index 000000000000..8783b1121738
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cooper-hewitt/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "cooper-hewitt-2014-06-09";
+
+  url = "https://www.cooperhewitt.org/wp-content/uploads/fonts/CooperHewitt-OTF-public.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype/
+  '';
+
+  sha256 = "01iwqmjvqkc6fmc2r0486vk06s6f51n9wxzl1pf9z48n0igj4gqd";
+
+  meta = with lib; {
+    homepage = "https://www.cooperhewitt.org/open-source-at-cooper-hewitt/cooper-hewitt-the-typeface-by-chester-jenkins/";
+    description = "A contemporary sans serif, with characters composed of modified-geometric curves and arches";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/corefonts/default.nix b/nixpkgs/pkgs/data/fonts/corefonts/default.nix
new file mode 100644
index 000000000000..c37d3251a9dc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/corefonts/default.nix
@@ -0,0 +1,73 @@
+{ lib, 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
+
+    install -m444 -Dt $out/share/fonts/truetype *.ttf
+
+    # Also put the EULA there to be on the safe side.
+    cp ${eula} $out/share/fonts/truetype/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 = "089d2m9bvaacj36qdq77pcazji0sbbr796shic3k52cpxkjnzbwh";
+
+  meta = with 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..3f8a9b9b5444
--- /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 "urn:fontconfig: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/cozette/default.nix b/nixpkgs/pkgs/data/fonts/cozette/default.nix
new file mode 100644
index 000000000000..3550facfc114
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cozette/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.8.3";
+in
+fetchzip rec {
+  name = "Cozette-${version}";
+
+  url = "https://github.com/slavfox/Cozette/releases/download/v.${version}/CozetteFonts.zip";
+
+  sha256 = "1nc4zk6n7cbv9vwlhpm3ady5lc4d4ic1klyywwfg27w8j0jv57hx";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.bdf -d $out/share/fonts/misc
+    unzip -j $downloadedFile \*.otb -d $out/share/fonts/misc
+  '';
+
+  meta = with lib; {
+    description = "A bitmap programming font optimized for coziness";
+    homepage = "https://github.com/slavfox/cozette";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ brettlyons marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/creep/default.nix b/nixpkgs/pkgs/data/fonts/creep/default.nix
new file mode 100644
index 000000000000..d4748544af55
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/creep/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchFromGitHub, libfaketime
+, fonttosfnt, mkfontscale
+}:
+
+stdenv.mkDerivation rec {
+  pname = "creep";
+  version = "0.31";
+
+  src = fetchFromGitHub {
+    owner = "romeovs";
+    repo = pname;
+    rev = version;
+    sha256 = "0zs21kznh1q883jfdgz74bb63i4lxlv98hj3ipp0wvsi6zw0vs8n";
+  };
+
+  nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];
+
+  buildPhase = ''
+    faketime -f "1970-01-01 00:00:01" fonttosfnt -g 2 -m 2 -o creep.otb creep.bdf
+  '';
+
+  installPhase = ''
+    install -D -m644 creep.otb creep.bdf -t "$out/share/fonts/misc/"
+    mkfontdir "$out/share/fonts/misc"
+  '';
+
+  meta = with lib; {
+    description = "A pretty sweet 4px wide pixel font";
+    homepage = "https://github.com/romeovs/creep";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ buffet ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/crimson/default.nix b/nixpkgs/pkgs/data/fonts/crimson/default.nix
new file mode 100644
index 000000000000..b8ff43a11288
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/crimson/default.nix
@@ -0,0 +1,25 @@
+{ lib, 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
+    install -m444 -Dt $out/share/fonts/opentype "Desktop Fonts/OTF/"*.otf
+    install -m444 -Dt $out/share/doc/${name}    README.md
+  '';
+
+  sha256 = "0mg65f0ydyfmb43jqr1f34njpd10w8npw15cbb7z0nxmy4nkl842";
+
+  meta = with 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..00c472d7fe34
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/culmus/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchzip }:
+
+let
+  version = "0.133";
+in fetchzip {
+  name = "culmus-${version}";
+  url = "mirror://sourceforge/culmus/culmus/${version}/culmus-${version}.tar.gz";
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    mkdir -p $out/share/fonts/{truetype,type1}
+    cp -v *.pfa $out/share/fonts/type1/
+    cp -v *.afm $out/share/fonts/type1/
+    cp -v fonts.scale-type1 $out/share/fonts/type1/fonts.scale
+    cp -v *.ttf $out/share/fonts/truetype/
+    cp -v *.otf $out/share/fonts/truetype/
+    cp -v fonts.scale-ttf $out/share/fonts/truetype/fonts.scale
+  '';
+  sha256 = "0zqqjcrqmbd4389hqz2dwymkkcxjrq9ylyriiv3gbmzl6l1ffk3g";
+
+  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 = lib.platforms.all;
+    license = lib.licenses.gpl2;
+    homepage = "http://culmus.sourceforge.net/";
+    downloadPage = "http://culmus.sourceforge.net/download.html";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/curie/default.nix b/nixpkgs/pkgs/data/fonts/curie/default.nix
new file mode 100644
index 000000000000..fd21d1964a21
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/curie/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchurl }:
+
+let
+  version = "1.0";
+in fetchurl rec {
+  name = "curie-${version}";
+
+  url = "https://github.com/NerdyPepper/curie/releases/download/v${version}/curie-v${version}.tar.gz";
+
+  downloadToTemp = true;
+
+  recursiveHash = true;
+
+  sha256 = "sha256-twPAzsbTveYW0rQd7FYZz5AMZgvPbNmn5c7Nfzn7B0A=";
+
+  postFetch = ''
+    tar xzf $downloadedFile
+    mkdir -p $out/share/fonts/misc
+    install *.otb $out/share/fonts/misc
+  '';
+
+  meta = with lib; {
+    description = "An upscaled version of scientifica";
+    homepage = "https://github.com/NerdyPepper/curie";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/d2coding/default.nix b/nixpkgs/pkgs/data/fonts/d2coding/default.nix
new file mode 100644
index 000000000000..25d92fc0f9ee
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/d2coding/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.3.2";
+  pname = "d2codingfont";
+
+in fetchzip {
+  name = "${pname}-${version}";
+  url = "https://github.com/naver/${pname}/releases/download/VER${version}/D2Coding-Ver${version}-20180524.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*-all.ttc -d $out/share/fonts/truetype/
+  '';
+
+  sha256 = "1812r82530wzfki7k9cm35fy6k2lvis7j6w0w8svc784949m1wwj";
+
+  meta = with lib; {
+    description = "Monospace font with support for Korean and latin characters";
+    longDescription = ''
+      D2Coding is a monospace font developed by a Korean IT Company called Naver.
+      Font is good for displaying both Korean characters and latin characters,
+      as sometimes these two languages could share some similar strokes.
+      Since verion 1.3, D2Coding font is officially supported by the font
+      creator, with symbols for Powerline.
+    '';
+    homepage = "https://github.com/naver/d2codingfont";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
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..aed90b103b4e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dejavu-fonts/default.nix
@@ -0,0 +1,65 @@
+{ fetchFromGitHub, lib, 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 = lib.licenses.free;
+
+    platforms = lib.platforms.all;
+  };
+
+  full-ttf = stdenv.mkDerivation {
+    pname = "dejavu-fonts-full";
+    inherit version;
+    nativeBuildInputs = [fontforge perl perlPackages.IOString perlPackages.FontTTF];
+
+    src = fetchFromGitHub {
+      owner = "dejavu-fonts";
+      repo = "dejavu-fonts";
+      rev = "version_${lib.replaceStrings ["."] ["_"] version}";
+      sha256 = "1xknlg2h287dx34v2n5r33bpcl4biqf0cv7nak657rjki7s0k4bk";
+    };
+
+    buildFlags = [ "full-ttf" ];
+
+    preBuild = "patchShebangs scripts";
+
+    installPhase = "install -m444 -Dt $out/share/fonts/truetype build/*.ttf";
+
+    inherit meta;
+  };
+
+  minimal = stdenv.mkDerivation {
+    pname = "dejavu-fonts-minimal";
+    inherit version;
+    buildCommand = ''
+      install -m444 -Dt $out/share/fonts/truetype ${full-ttf}/share/fonts/truetype/DejaVuSans.ttf
+    '';
+    inherit meta;
+  };
+in stdenv.mkDerivation {
+  pname = "dejavu-fonts";
+  inherit version;
+  buildCommand = ''
+    install -m444 -Dt $out/share/fonts/truetype ${full-ttf}/share/fonts/truetype/*.ttf
+    ln -s --relative --force --target-directory=$out/share/fonts/truetype ${minimal}/share/fonts/truetype/DejaVuSans.ttf
+  '';
+  inherit meta;
+
+  passthru = { inherit minimal full-ttf; };
+}
diff --git a/nixpkgs/pkgs/data/fonts/dina/default.nix b/nixpkgs/pkgs/data/fonts/dina/default.nix
new file mode 100644
index 000000000000..2a770222ed10
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dina/default.nix
@@ -0,0 +1,64 @@
+{ lib, stdenv, fetchurl, unzip
+, bdftopcf, mkfontscale, fontforge
+}:
+
+stdenv.mkDerivation {
+  pname = "dina-font";
+  version = "2.92";
+
+  src = fetchurl {
+    url = "http://www.donationcoder.com/Software/Jibz/Dina/downloads/Dina.zip";
+    sha256 = "1kq86lbxxgik82aywwhawmj80vsbz3hfhdyhicnlv9km7yjvnl8z";
+  };
+
+  nativeBuildInputs =
+    [ unzip bdftopcf mkfontscale fontforge ];
+
+  patchPhase = "sed -i 's/microsoft-cp1252/ISO8859-1/' *.bdf";
+
+  buildPhase = ''
+    newName() {
+      test "''${1:5:1}" = i && _it=Italic || _it=
+      case ''${1:6:3} in
+        400) test -z $it && _weight=Medium ;;
+        700) _weight=Bold ;;
+      esac
+      _pt=''${1%.bdf}
+      _pt=''${_pt#*-}
+      echo "Dina$_weight$_it$_pt"
+    }
+
+    # convert bdf fonts to pcf
+    for i in *.bdf; do
+      bdftopcf -t -o $(newName "$i").pcf "$i"
+    done
+    gzip -n -9 *.pcf
+
+    # convert bdf fonts to otb
+    for i in *.bdf; do
+      fontforge -lang=ff -c "Open(\"$i\"); Generate(\"$(newName $i).otb\")"
+    done
+  '';
+
+  installPhase = ''
+    install -D -m 644 -t "$out/share/fonts/misc" *.pcf.gz *.otb
+    install -D -m 644 -t "$bdf/share/fonts/misc" *.bdf
+    mkfontdir "$out/share/fonts/misc"
+    mkfontdir "$bdf/share/fonts/misc"
+  '';
+
+  outputs = [ "out" "bdf" ];
+
+  meta = with lib; {
+    description = "A monospace bitmap font aimed at programmers";
+    longDescription = ''
+      Dina is a monospace bitmap font, primarily aimed at programmers. It is
+      relatively compact to allow a lot of code on screen, while (hopefully)
+      clear enough to remain readable even at high resolutions.
+    '';
+    homepage = "https://www.donationcoder.com/Software/Jibz/Dina/";
+    downloadPage = "https://www.donationcoder.com/Software/Jibz/Dina/";
+    license = licenses.free;
+    maintainers = [ maintainers.prikhi ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/dosemu-fonts/default.nix b/nixpkgs/pkgs/data/fonts/dosemu-fonts/default.nix
new file mode 100644
index 000000000000..81a1b5649b36
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dosemu-fonts/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, bdftopcf, mkfontdir, mkfontscale }:
+
+stdenv.mkDerivation rec {
+  pname = "dosemu-fonts";
+  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";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/dosis/default.nix b/nixpkgs/pkgs/data/fonts/dosis/default.nix
new file mode 100644
index 000000000000..918996c5f644
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dosis/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub }:
+
+fetchFromGitHub rec {
+  name = "dosis-1.007";
+
+  owner = "impallari";
+  repo = "Dosis";
+  rev = "12df1e13e58768f20e0d48ff15651b703f9dd9dc";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.otf' -exec install -m444 -Dt $out/share/fonts/opentype {} \;
+    install -m444 -Dt $out/share/doc/${name} README.md FONTLOG.txt
+  '';
+
+  sha256 = "0vz25w45i8flfvppymr5h83pa2n1r37da20v7691p44018fdsdny";
+
+  meta = with 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..3de4cfc0cae3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/doulos-sil/default.nix
@@ -0,0 +1,31 @@
+{ lib, 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 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/eb-garamond/default.nix b/nixpkgs/pkgs/data/fonts/eb-garamond/default.nix
new file mode 100644
index 000000000000..869d889ef3cc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/eb-garamond/default.nix
@@ -0,0 +1,25 @@
+{ lib, 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 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/edukai/default.nix b/nixpkgs/pkgs/data/fonts/edukai/default.nix
new file mode 100644
index 000000000000..d5b9e25c2eb5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/edukai/default.nix
@@ -0,0 +1,33 @@
+{ stdenvNoCC, lib, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "edukai";
+  version = "4.0";
+
+  src = fetchzip {
+    name = "${pname}-${version}";
+    url =
+      "http://language.moe.gov.tw/001/Upload/Files/site_content/M0001/edukai-4.0.zip";
+    sha256 = "10m9srvbazvg9gc43943dc89rjzcfc8mm4lx9gb5hnplrn22zrcn";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/
+    mv *.ttf $out/share/fonts/
+  '';
+
+  meta = {
+    description =
+      "The MOE Standard Kai Font, a Chinese font by the Ministry of Education, ROC (Taiwan)";
+    longDescription = ''
+      The MOE Standard Kai Font is a kai (regular srcipt) font
+      provided by
+      the Midistry of Education, Republic of China (Taiwan).
+      It currently includes 13,076 Chinese characters.
+    '';
+    homepage =
+      "http://language.moe.gov.tw/result.aspx?classify_sn=23&subclassify_sn=436&content_sn=47";
+    license = lib.licenses.cc-by-nd-30;
+    maintainers = with lib.maintainers; [ ShamrockLee ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/eduli/default.nix b/nixpkgs/pkgs/data/fonts/eduli/default.nix
new file mode 100644
index 000000000000..7ff2ad4446c5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/eduli/default.nix
@@ -0,0 +1,36 @@
+{ stdenvNoCC, lib, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "eduli";
+  version = "3.0";
+
+  src = fetchzip {
+    name = "${pname}-${version}";
+    url =
+      "http://language.moe.gov.tw/001/Upload/Files/site_content/M0001/MoeLI-3.0.zip";
+    sha256 = "0vpmm2qb429npng0aqkafwgs7cjibq8a3f7bbn9hysbm2lndwxwd";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/
+    for name in *.ttf; do
+      mv "$name" "$out/share/fonts/$(echo $name | sed -r 's/(.*)\(.*\)\.ttf/\1.ttf/')"
+    done
+  '';
+
+  meta = {
+    description =
+      "The MOE Li Font, a clerical Chinese font by the Ministry of Education, ROC (Taiwan)";
+    longDescription = ''
+      The MOE Li Font is a li (clerical srcipt) font
+      provided by
+      the Midistry of Education, Republic of China (Taiwan).
+      It currently includes 4,808 Chinese characters.
+      The clerical script (lishu) is an archaic style of Chinese calligraphy.
+    '';
+    homepage =
+      "http://language.moe.gov.tw/result.aspx?classify_sn=23&subclassify_sn=436&content_sn=49";
+    license = lib.licenses.cc-by-nd-30;
+    maintainers = with lib.maintainers; [ ShamrockLee ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/edusong/default.nix b/nixpkgs/pkgs/data/fonts/edusong/default.nix
new file mode 100644
index 000000000000..bf7d39aa20c5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/edusong/default.nix
@@ -0,0 +1,32 @@
+{ stdenvNoCC, lib, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "edusong";
+  version = "1.0"; # The upstream doesn't provide the version
+
+  src = fetchzip {
+    name = "${pname}-${version}";
+    url =
+      "http://language.moe.gov.tw/001/Upload/Files/site_content/M0001/eduSong_Unicode.zip";
+    sha256 = "1b74wj9hdzlnrvldwlkh21sfhqxwh9qghf1k0fv66zs6n48vb0d4";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/
+    mv *.ttf $out/share/fonts/
+  '';
+
+  meta = {
+    description =
+      "The MOE Standard Song Font, a Chinese font by the Ministry of Education, ROC (Taiwan)";
+    longDescription = ''
+      The MOE Standard Song Font is a Chinese Song font provided by
+      the Midistry of Education, Republic of China (Taiwan).
+      Song or Ming is a category of CKJ typefaces in print.
+    '';
+    homepage =
+      "http://language.moe.gov.tw/result.aspx?classify_sn=23&subclassify_sn=436&content_sn=48";
+    license = lib.licenses.cc-by-nd-30;
+    maintainers = with lib.maintainers; [ ShamrockLee ];
+  };
+}
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..e9c646d32d08
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix
@@ -0,0 +1,35 @@
+{ lib, fetchzip }:
+
+let
+  version = "3.2.0";
+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 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..629e46fe7971
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/emojione/default.nix
@@ -0,0 +1,50 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, inkscape, imagemagick, potrace, svgo, scfbuild }:
+
+stdenv.mkDerivation rec {
+  pname = "emojione";
+  version = "1.4";
+
+  src = fetchFromGitHub {
+    owner = "eosrei";
+    repo = "emojione-color-font";
+    rev = "v${version}";
+    sha256 = "1781kxfbhnvylypbkwxc3mx6hi0gcjisfjr9cf0jdz4d1zkf09b3";
+  };
+
+  patches = [
+    # Fix build with Inkscape 1.0
+    # https://github.com/eosrei/twemoji-color-font/pull/82
+    (fetchpatch {
+      url = "https://github.com/eosrei/twemoji-color-font/commit/208ad63c2ceb38c528b5237abeb2b85ceedc1d37.patch";
+      sha256 = "7tDWIkpcdir1V6skgXSM3r0FwHy0F6PyJ07OPRsSStA=";
+      postFetch = ''
+        substituteInPlace $out \
+          --replace "inkscape --without-gui" "inkscape --export-png" \
+          --replace TWEMOJI EMOJIONE \
+          --replace "the assets" "the emojione assets" \
+          --replace twemoji emojione
+      '';
+    })
+  ];
+
+  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 lib; {
+    description = "Open source emoji set";
+    homepage = "http://emojione.com/";
+    license = licenses.cc-by-40;
+    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..c6bb23b43266
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/encode-sans/default.nix
@@ -0,0 +1,31 @@
+{ lib, 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 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..dbfb85f881fc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/envypn-font/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, fetchurl, libfaketime
+, fonttosfnt, mkfontscale
+}:
+
+stdenv.mkDerivation {
+  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 = [ libfaketime fonttosfnt mkfontscale ];
+
+  unpackPhase = ''
+    tar -xzf $src --strip-components=1
+  '';
+
+  buildPhase = ''
+    # convert pcf fonts to otb
+    for i in *e.pcf.gz; do
+      faketime -f "1970-01-01 00:00:01" \
+      fonttosfnt -v -o "$(basename "$i" .pcf.gz)".otb "$i"
+    done
+  '';
+
+  installPhase = ''
+    install -D -m 644 -t "$out/share/fonts/misc" *.otb *.pcf.gz
+    mkfontdir "$out/share/fonts/misc"
+  '';
+
+  meta = with lib; {
+    description = ''
+      Readable bitmap font inspired by Envy Code R
+    '';
+    homepage = "http://ywstd.fr/p/pj/#envypn";
+    license = licenses.miros;
+    platforms = platforms.all;
+  };
+}
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..c410826b2fb5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/et-book/default.nix
@@ -0,0 +1,22 @@
+{ lib, 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 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..272649582c35
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/eunomia/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "200";
+  pname = "eunomia";
+in
+
+fetchzip {
+  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 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..112111faa3d7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/f5_6/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "110";
+  pname = "f5_6";
+in
+
+fetchzip {
+  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 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..e8068d7faead
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fantasque-sans-mono/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.8.0";
+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 = "07y2w6xzkbaj6vr95fvvnmwq1pw9jib4z02xf8937dx812yic9ni";
+
+  meta = with 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..3f122d22daf5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ferrum/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "200";
+  pname = "ferrum";
+in
+
+fetchzip {
+  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 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..d5c5d0e000a5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fira-code/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchzip }:
+
+let
+  version = "5.2";
+in fetchzip {
+  name = "fira-code-${version}";
+
+  url = "https://github.com/tonsky/FiraCode/releases/download/${version}/Fira_Code_v${version}.zip";
+
+  # only extract the variable font because everything else is a duplicate
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile '*-VF.ttf' -d $out/share/fonts/truetype
+  '';
+
+  sha256 = "1wbfjgvr9m5azl5w49y0hpqzgcraw6spd1wnxgxlzfx57x6gcw0k";
+
+  meta = with 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..e226c351a333
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fira-code/symbols.nix
@@ -0,0 +1,26 @@
+{ lib, 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 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..2aef2fc4b05f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fira-mono/default.nix
@@ -0,0 +1,28 @@
+{ lib, 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 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..039c5099b56e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fira/default.nix
@@ -0,0 +1,35 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "4.202";
+in fetchFromGitHub {
+  name = "fira-${version}";
+
+  owner = "mozilla";
+  repo = "Fira";
+  rev = version;
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    mkdir -p $out/share/fonts/opentype
+    cp otf/*.otf $out/share/fonts/opentype
+  '';
+
+  sha256 = "1iwxbp7kw5kghh5nbycb05zby7p2ib61mywva3h6giv2wd4lpxnz";
+
+  meta = with 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..8bdbc2d4c4f0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fixedsys-excelsior/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchurl } :
+
+let
+  major = "3";
+  minor = "00";
+  version = "${major}.${minor}";
+in fetchurl rec {
+  name = "fixedsys-excelsior-${version}";
+
+  urls = [
+    "http://www.fixedsysexcelsior.com/fonts/FSEX300.ttf"
+    "https://raw.githubusercontent.com/chrissimpkins/codeface/master/fonts/fixed-sys-excelsior/FSEX300.ttf"
+    "http://tarballs.nixos.org/sha256/6ee0f3573bc5e33e93b616ef6282f49bc0e227a31aa753ac76ed2e3f3d02056d"
+  ];
+  downloadToTemp = true;
+  recursiveHash = true;
+  postFetch = ''
+    install -m444 -D $downloadedFile $out/share/fonts/truetype/${name}.ttf
+  '';
+
+  sha256 = "32d6f07f1ff08c764357f8478892b2ba5ade23427af99759f34a0ba24bcd2e37";
+
+  meta = {
+    description = "Pan-unicode version of Fixedsys, a classic DOS font";
+    homepage = "http://www.fixedsysexcelsior.com/";
+    platforms = lib.platforms.all;
+    license = lib.licenses.publicDomain;
+    maintainers = [ lib.maintainers.ninjatrappeur ];
+  };
+}
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..bcf02f1328e6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/font-awesome-5/default.nix
@@ -0,0 +1,45 @@
+{ lib, fetchFromGitHub }:
+let
+  font-awesome = { version, sha256, rev ? version}: fetchFromGitHub {
+    name = "font-awesome-${version}";
+
+
+    owner = "FortAwesome";
+    repo = "Font-Awesome";
+    inherit rev;
+
+    postFetch = ''
+      tar xf $downloadedFile --strip=1
+      install -m444 -Dt $out/share/fonts/opentype {fonts,otfs}/*.otf
+    '';
+
+    inherit sha256;
+
+    meta = with 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 johnazoidberg ];
+    };
+  };
+in {
+  # Keeping version 4 because version 5 is incompatible for some icons. That
+  # means that projects which depend on it need to actively convert the
+  # symbols. See:
+  # https://github.com/greshake/i3status-rust/issues/130
+  # https://fontawesome.com/how-to-use/on-the-web/setup/upgrading-from-version-4
+  v4 = font-awesome {
+    version = "4.7.0";
+    rev = "v4.7.0";
+    sha256 = "1j8i32dq6rrlv3kf2hnq81iqks06kczaxjks7nw3zyq1231winm9";
+  };
+  v5 = font-awesome {
+    version = "5.10.2";
+    sha256 = "0bg28zn2lhrcyj7mbavphkvw3hrbnjsnn84305ax93nj3qd0d4hx";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/fraunces/default.nix b/nixpkgs/pkgs/data/fonts/fraunces/default.nix
new file mode 100644
index 000000000000..d5879d6c2bc4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fraunces/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+let
+  version = "1.000";
+in
+fetchzip {
+  name = "fraunces-${version}";
+
+  url = "https://github.com/undercasetype/Fraunces/releases/download/${version}/UnderCaseType_Fraunces_${version}.zip";
+
+  sha256 = "0qgl140qkn9p87x7pk60fd3lj206y5h0fq2xkcj2qiv3sxbqxwqb";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    description = "A display, “Old Style” soft-serif typeface inspired by early 20th century typefaces";
+    homepage = "https://github.com/undercasetype/Fraunces";
+    license = licenses.ofl;
+    maintainers = [ maintainers.marsam ];
+    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..5934ec3589ac
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/freefont-ttf/default.nix
@@ -0,0 +1,27 @@
+{ lib, 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 = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.all;
+    maintainers = [];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/gandom-fonts/default.nix b/nixpkgs/pkgs/data/fonts/gandom-fonts/default.nix
new file mode 100644
index 000000000000..54e0020ae687
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gandom-fonts/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "gandom-fonts";
+  version = "0.6";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "rastikerdar";
+  repo = "gandom-font";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/gandom-fonts {} \;
+  '';
+  sha256 = "0zsq6s9ziyb5jz0v8aj00dlxd1aly0ibxgszd05dfvykmgz051lc";
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/gandom-font";
+    description = "A Persian (Farsi) Font - فونت (قلم) فارسی گندم";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.linarcx ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/gdouros/default.nix b/nixpkgs/pkgs/data/fonts/gdouros/default.nix
new file mode 100644
index 000000000000..eb6635ec3a38
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gdouros/default.nix
@@ -0,0 +1,38 @@
+{ fetchzip, lib }:
+
+let
+  fonts = {
+    aegan     = { version = "10.00"; file = "Aegean.zip";       sha256 = "0k47nhzw4vx771ch3xx8mf6xx5vx0hg0cif5jdlmdaz4h2c3rawz"; description = "Aegean"; };
+    aegyptus  = { version =  "8.00"; file = "Aegyptus.zip";     sha256 = "13h2pi641k9vxgqi9l11mjya10ym9ln54wrkwxx6gxq63zy7y5mj"; description = "Egyptian Hieroglyphs, Coptic, Meroitic"; };
+    akkadian  = { version =  "7.18"; file = "Akkadian.zip";     sha256 = "1bplcvszbdrk85kqipn9lzhr62647wjibz1p8crzjvsw6f9ymxy3"; description = "Sumero-Akkadian Cuneiform"; };
+    assyrian  = { version =  "2.00"; file = "AssyrianFont.zip"; sha256 = "0vdvb24vsnmwzd6bw14akqg0hbvsk8avgnbwk9fkybn1f801475k"; description = "Neo-Assyrian in Unicode with OpenType"; };
+    eemusic   = { version =  "2.00"; file = "EEMusic.zip";      sha256 = "1y9jf105a2b689m7hdjmhhr7z5j0qd2w6dmb3iic9bwaczlrjy7j"; description = "Byzantine Musical Notation in Unicode with OpenType"; };
+    maya      = { version =  "4.18"; file = "Maya.zip";         sha256 = "08z2ch0z2c43fjfg5m4yp3l1dp0cbk7lv5i7wzsr3cr9kr59wpi9"; description = "Maya Hieroglyphs"; };
+    symbola   = { version = "12.00"; file = "Symbola.zip";      sha256 = "1i3xra33xkj32vxs55xs2afrqyc822nk25669x78px5g5qd8gypm"; description = "Basic Latin, Greek, Cyrillic and many Symbol blocks of Unicode"; };
+    textfonts = { version =  "9.00"; file = "Textfonts.zip";    sha256 = "0wzxz4j4fgk81b88d58715n1wvq2mqmpjpk4g5hi3vk77y2zxc4d"; description = "Aroania, Anaktoria, Alexander, Avdira and Asea"; };
+    unidings  = { version =  "9.19"; file = "Unidings.zip";     sha256 = "1bybzgdqhmq75hb12n3pjrsdcpw1a6sgryx464s68jlq4zi44g78"; description = "Glyphs and Icons for blocks of The Unicode Standard"; };
+  };
+
+  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;
+      # see http://users.teilar.gr/~g1951d/License.pdf
+      # quite draconian: non-commercial, no modifications,
+      # no redistribution, "a single instantiation and no
+      # network installation"
+      license = lib.licenses.unfree;
+      homepage = "http://users.teilar.gr/~g1951d/";
+    };
+  };
+in
+  lib.mapAttrs mkpkg fonts
diff --git a/nixpkgs/pkgs/data/fonts/gelasio/default.nix b/nixpkgs/pkgs/data/fonts/gelasio/default.nix
new file mode 100644
index 000000000000..c8cf655a18cf
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gelasio/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "unstable-2018-08-12";
+in fetchFromGitHub {
+  name = "gelasio-${version}";
+  owner = "SorkinType";
+  repo = "Gelasio";
+  rev = "5bced461d54bcf8e900bb3ba69455af35b0d2ff1";
+  sha256 = "0dfskz2vpwsmd88rxqsxf0f01g4f2hm6073afcm424x5gc297n39";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype/
+  '';
+
+  meta = with lib; {
+    description = "a font which is metric-compatible with Microsoft's Georgia";
+    longDescription = ''
+      Gelasio is an original typeface which is metrics compatible with Microsoft's
+      Georgia in its Regular, Bold, Italic and Bold Italic weights. Interpolated
+      Medium, medium Italic, SemiBold and SemiBold Italic have now been added as well.
+    '';
+    homepage = "https://github.com/SorkinType/Gelasio";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ colemickens ];
+  };
+}
+
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..2e14795ebd14
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gentium-book-basic/default.nix
@@ -0,0 +1,27 @@
+{ lib, 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 -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 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..3622e1c3b3c7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gentium/default.nix
@@ -0,0 +1,43 @@
+{ lib, 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 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..ed17dfc9054c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/go-font/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchgit }:
+
+let
+  version = "2017-03-30";
+in (fetchgit {
+  name = "go-font-${version}";
+  url = "https://go.googlesource.com/image";
+  rev = "f03a046406d4d7fbfd4ed29f554da8f6114049fc";
+
+  postFetch = ''
+    mv $out/* .
+    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
+  '';
+
+  sha256 = "1488426ya2nzmwjas947fx9h5wzxrp9wasn8nkjqf0y0mpd4f1xz";
+}) // {
+  meta = with lib; {
+    homepage = "https://blog.golang.org/go-fonts";
+    description = "The Go font family";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ sternenseemann ];
+    platforms = 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..f28e3d5ba619
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gohufont/default.nix
@@ -0,0 +1,69 @@
+{ lib, stdenv, fetchurl, fetchFromGitHub
+, mkfontscale, bdf2psf, bdftopcf
+, fonttosfnt, libfaketime
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gohufont";
+  version = "2.1";
+
+  src = fetchFromGitHub {
+    owner  = "hchargois";
+    repo   = "gohufont";
+    rev    = "cc36b8c9fed7141763e55dcee0a97abffcf08224";
+    sha256 = "1hmp11mrr01b29phw0xyj4h9b92qz19cf56ssf6c47c5j2c4xmbv";
+  };
+
+  nativeBuildInputs =
+    [ mkfontscale bdf2psf bdftopcf
+      fonttosfnt libfaketime
+    ];
+
+  buildPhase = ''
+    # convert bdf fonts to psf
+    build=$(pwd)
+    mkdir psf
+    cd ${bdf2psf}/share/bdf2psf
+    for i in $src/*.bdf; do
+      name=$(basename $i .bdf)
+      bdf2psf \
+        --fb "$i" standard.equivalents \
+        ascii.set+useful.set+linux.set 512 \
+        "$build/psf/$name.psf"
+    done
+    cd $build
+
+    # convert bdf fonts to pcf
+    for i in *.bdf $src/hidpi/*.bdf; do
+        name=$(basename $i .bdf)
+        bdftopcf -o "$name.pcf" "$i"
+    done
+
+    # convert unicode bdf fonts to otb
+    for i in *-uni*.bdf $src/hidpi/*-uni*.bdf; do
+        name=$(basename $i .bdf)
+        faketime -f "1970-01-01 00:00:01" \
+        fonttosfnt -v -o "$name.otb" "$i"
+    done
+  '';
+
+  installPhase = ''
+    # install the psf fonts (for the virtual console)
+    fontDir="$out/share/consolefonts"
+    install -D -m 644 -t "$fontDir" psf/*.psf
+
+    # install the pcf and otb fonts (for X11,GTK applications)
+    fontDir="$out/share/fonts/misc"
+    install -D -m 644 -t "$fontDir" *.pcf *.otb
+    mkfontdir "$fontDir"
+  '';
+
+  meta = with lib; {
+    description = ''
+      A monospace bitmap font well suited for programming and terminal use
+    '';
+    homepage    = "https://font.gohu.org/";
+    license     = licenses.wtfpl;
+    maintainers = with maintainers; [ epitrochoid rnhmjoj ];
+  };
+}
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..210902a0e71e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/google-fonts/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, stdenv
+, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+  pname = "google-fonts";
+  version = "unstable-2021-01-19";
+
+  outputs = [ "out" "adobeBlank" ];
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "fonts";
+    rev = "a3a831f0fe44cd58465c6937ea06873728f2ba0d";
+    sha256 = "19abx2bj7mkysv2ihr43m3kpyf6kv6v2qjlm1skxc82rb72xqhix";
+  };
+
+  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/cabincondensed \
+           ofl/signikanegative \
+           ofl/signikanegativesc
+
+    if find . -name "*.ttf" | sed 's|.*/||' | sort | uniq -c | sort -n | grep -v '^.*1 '; then
+      echo "error: duplicate font names"
+      exit 1
+    fi
+  '';
+
+  installPhase = ''
+    adobeBlankDest=$adobeBlank/share/fonts/truetype
+    install -m 444 -Dt $adobeBlankDest ofl/adobeblank/AdobeBlank-Regular.ttf
+    rm -r ofl/adobeblank
+    dest=$out/share/fonts/truetype
+    find . -name '*.ttf' -exec install -m 444 -Dt $dest '{}' +
+  '';
+
+  meta = with 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/gubbi/default.nix b/nixpkgs/pkgs/data/fonts/gubbi/default.nix
new file mode 100644
index 000000000000..9ae46d089925
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gubbi/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub, fontforge }:
+
+stdenv.mkDerivation rec {
+  pname = "gubbi-font";
+  version = "1.3";
+
+  src = fetchFromGitHub {
+    owner = "aravindavk";
+    repo = "gubbi";
+    rev = "v${version}";
+    sha256 = "10w9i3pmjvs1b3xclrgn4q5a95ss4ipldbxbqrys2dmfivx7i994";
+  };
+
+  nativeBuildInputs = [ fontforge ];
+
+  dontConfigure = true;
+
+  preBuild = "patchShebangs generate.pe";
+
+  installPhase = "install -Dm444 -t $out/share/fonts/truetype/ Gubbi.ttf";
+
+  meta = with lib; {
+    inherit (src.meta) homepage;
+    description = "A Kannada font";
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ehmry ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/gyre/default.nix b/nixpkgs/pkgs/data/fonts/gyre/default.nix
new file mode 100644
index 000000000000..91a8aaf3c301
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gyre/default.nix
@@ -0,0 +1,32 @@
+{ lib, 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 = lib.licenses.lppl13c;
+    platforms = lib.platforms.all;
+    maintainers = with 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..0427cf36429f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hack/default.nix
@@ -0,0 +1,40 @@
+{ lib, fetchzip }:
+
+let
+  version = "3.003";
+in fetchzip {
+  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 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..29c982ed8aea
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hanazono/default.nix
@@ -0,0 +1,38 @@
+{ lib, fetchzip }:
+
+let
+  version = "20170904";
+in fetchzip {
+  name = "hanazono-${version}";
+
+  url = "mirror://osdn/hanazono-font/68253/hanazono-${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/hanazono
+  '';
+
+  sha256 = "0qiyd1vk3w8kqmwc6xi5d390wdr4ln8xhfbx3n8r1hhad9iz14p6";
+
+  meta = with lib; {
+    description = "Japanese Mincho-typeface TrueType font";
+    homepage = "https://fonts.jp/hanazono/";
+    longDescription = ''
+      Hanazono Mincho typeface is a Japanese TrueType font that developed with a
+      support of Grant-in-Aid for Publication of Scientific Research Results
+      from Japan Society for the Promotion of Science and the International
+      Research Institute for Zen Buddhism (IRIZ), Hanazono University. also with
+      volunteers who work together on glyphwiki.org.
+    '';
+
+    # 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..d9deef80c0d7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hasklig/default.nix
@@ -0,0 +1,24 @@
+{ lib, 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
+    install -m444 -Dt $out/share/fonts/opentype *.otf
+  '';
+
+  sha256 = "0xxyx0nkapviqaqmf3b610nq17k20afirvc72l32pfspsbxz8ybq";
+
+  meta = with 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..275b0d8f8711
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/helvetica-neue-lt-std/default.nix
@@ -0,0 +1,35 @@
+{ lib, fetchzip }:
+
+let
+  version = "2013.06.07"; # date of most recent file in distribution
+in fetchzip {
+  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 = lib.licenses.unfree;
+    maintainers = [ lib.maintainers.romildo ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/hermit/default.nix b/nixpkgs/pkgs/data/fonts/hermit/default.nix
new file mode 100644
index 000000000000..3ff5dd368292
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hermit/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  pname = "hermit";
+  version = "2.0";
+in fetchzip rec {
+  name = "${pname}-${version}";
+
+  url = "https://pcaro.es/d/otf-${name}.tar.gz";
+
+  postFetch = ''
+    tar xf $downloadedFile
+    install -m444 -Dt $out/share/fonts/opentype *.otf
+  '';
+  sha256 = "127hnpxicqya7v1wmzxxqafq3aj1n33i4j5ncflbw6gj5g3bizwl";
+
+  meta = with lib; {
+    description = "monospace font designed to be clear, pragmatic and very readable";
+    homepage = "https://pcaro.es/p/hermit";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ dtzWill ];
+    platforms = 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..09bcc2464ba4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hyperscrypt/default.nix
@@ -0,0 +1,40 @@
+{ fetchzip, lib }:
+
+let
+  version = "1.1";
+  pname = "HyperScrypt";
+in
+
+fetchzip {
+  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 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..6da80a1bf830
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ia-writer-duospace/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "20180721";
+in fetchFromGitHub {
+  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..cd33a834acc5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ibm-plex/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "5.1.3";
+
+in fetchzip {
+  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 "OpenType/*/*.otf" -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "0w07fkhav2lqdyki7ipnkpji5ngwarlhsyliy0ip7cd29x24ys5h";
+
+  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..530bb0380d23
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/inconsolata/default.nix
@@ -0,0 +1,19 @@
+{ lib, stdenv, google-fonts }:
+
+stdenv.mkDerivation {
+  pname = "inconsolata";
+
+  inherit (google-fonts) src version;
+
+  installPhase = ''
+    install -m644 --target $out/share/fonts/truetype/inconsolata -D $src/ofl/inconsolata/static/*.ttf
+  '';
+
+  meta = with lib; {
+    homepage = "https://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..945fafcfcc52
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/inconsolata/lgc.nix
@@ -0,0 +1,52 @@
+{lib, stdenv, fetchFromGitHub, fontforge}:
+
+stdenv.mkDerivation rec {
+  pname = "inconsolata-lgc";
+  version = "1.3";
+
+  src = fetchFromGitHub {
+    owner = "MihailJP";
+    repo = "Inconsolata-LGC";
+    rev = "8adfef7a7316fcd2e9a5857054c7cdb2babeb35d";
+    sha256 = "0dqjj3mlc28s8ljnph6l086b4j9r5dly4fldq59crycwys72zzai";
+  };
+
+  nativeBuildInputs = [ fontforge ];
+
+  installPhase = ''
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/truetype {} \;
+    find . -name '*.otf' -exec install -m444 -Dt $out/share/fonts/opentype {} \;
+    install -m444 -Dt $out/share/doc/${pname}-${version} LICENSE README
+  '';
+
+  meta = with 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 ];
+  };
+}
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..36a18c1f8f1c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/input-fonts/default.nix
@@ -0,0 +1,98 @@
+{ lib
+, stdenv
+, fetchzip
+, python3
+, config
+, acceptLicense ? config.input-fonts.acceptLicense or false
+}:
+
+let
+
+  throwLicense = throw ''
+    Input is available free of charge for private/unpublished usage. This includes things like your personal coding app or for composing plain text documents.
+    To use it, you need to agree to its license: https://input.djr.com/license/
+
+    You can express acceptance by setting acceptLicense to true in your
+    configuration. Note that this is not a free license so it requires allowing
+    unfree licenses.
+
+    configuration.nix:
+      nixpkgs.config.allowUnfree = true;
+      nixpkgs.config.input-fonts.acceptLicense = true;
+
+    config.nix:
+      allowUnfree = true;
+      input-fonts.acceptLicense = true;
+
+    If you would like to support this project, consider purchasing a license at <http://input.djr.com/buy>.
+  '';
+
+  releaseDate = "2015-06-24";
+
+in
+
+stdenv.mkDerivation rec {
+  pname = "input-fonts";
+  version = "1.2";
+
+  src =
+    assert !acceptLicense -> throwLicense;
+    fetchzip {
+      name = "input-fonts-${version}";
+      # Add .zip parameter so that zip unpackCmd can match it.
+      url = "https://input.djr.com/build/?fontSelection=whole&a=0&g=0&i=0&l=0&zero=0&asterisk=0&braces=0&preset=default&line-height=1.2&accept=I+do&email=&.zip";
+      sha256 = "BESZ4Bjgm2hvQ7oPpMvYSlE8EqvQjqHZtXWIovqyIzA=";
+      stripRoot = false;
+
+      extraPostFetch = ''
+        # Reset the timestamp to release date for determinism.
+        PATH=${lib.makeBinPath [ python3.pkgs.fonttools ]}:$PATH
+        for ttf_file in $out/Input_Fonts/*/*/*.ttf; do
+          ttx_file=$(dirname "$ttf_file")/$(basename "$ttf_file" .ttf).ttx
+          ttx "$ttf_file"
+          rm "$ttf_file"
+          touch -m -t ${builtins.replaceStrings [ "-" ] [ "" ] releaseDate}0000 "$ttx_file"
+          ttx --recalc-timestamp "$ttx_file"
+          rm "$ttx_file"
+        done
+      '';
+    };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    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/
+
+    runHook postInstall
+  '';
+
+  meta = with 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 = "https://input.djr.com/";
+    license = licenses.unfree;
+    maintainers = with maintainers; [
+      jtojnar
+      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..d8127b851274
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/inriafonts/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "inriafonts";
+  version = "1.200";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "BlackFoundry";
+  repo = "InriaFonts";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -m444 -Dt $out/share/fonts/truetype fonts/*/TTF/*.ttf
+    install -m444 -Dt $out/share/fonts/opentype fonts/*/OTF/*.otf
+  '';
+  sha256 = "0wrwcyycyzvgvgnlmwi1ncdvwb8f6bbclynd1105rsyxgrz5dd70";
+
+  meta = with 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/default.nix b/nixpkgs/pkgs/data/fonts/inter/default.nix
new file mode 100644
index 000000000000..ed8e9eb13a63
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/inter/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "3.15";
+in fetchzip {
+  name = "inter-${version}";
+
+  url = "https://github.com/rsms/inter/releases/download/v${version}/Inter-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "0dnxczy2avc47wq5fc3psd1zbxbsjz5w24rkh5ynrfgw6n0753n0";
+
+  meta = with lib; {
+    homepage = "https://rsms.me/inter/";
+    description = "A typeface specially designed for user interfaces";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ demize dtzWill ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/bin.nix b/nixpkgs/pkgs/data/fonts/iosevka/bin.nix
new file mode 100644
index 000000000000..26d67ba170e1
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iosevka/bin.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, fetchurl, iosevka, unzip
+, variant ? ""
+}:
+
+let
+  name = "iosevka" + lib.optionalString (variant != "") "-" + variant;
+
+  variantHashes = import ./variants.nix;
+  validVariants = map (lib.removePrefix "iosevka-")
+    (builtins.attrNames (builtins.removeAttrs variantHashes [ "iosevka" ]));
+in stdenv.mkDerivation rec {
+  pname = "${name}-bin";
+  version = "5.0.5";
+
+  src = fetchurl {
+    url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/ttc-${name}-${version}.zip";
+    sha256 = variantHashes.${name} or (throw ''
+      No such variant "${variant}" for package iosevka-bin.
+      Valid variants are: ${lib.concatStringsSep ", " validVariants}.
+    '');
+  };
+
+  nativeBuildInputs = [ unzip ];
+
+  phases = [ "unpackPhase" ];
+
+  unpackPhase = ''
+    mkdir -p $out/share/fonts
+    unzip -d $out/share/fonts/truetype $src
+  '';
+
+  meta = iosevka.meta // {
+    maintainers = with lib.maintainers; [
+      cstrahan
+    ];
+  };
+
+  passthru.updateScript = ./update-bin.sh;
+}
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/default.nix b/nixpkgs/pkgs/data/fonts/iosevka/default.nix
new file mode 100644
index 000000000000..04e5b48bd0bd
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iosevka/default.nix
@@ -0,0 +1,139 @@
+{ stdenv, lib, nodejs, nodePackages, remarshal
+, ttfautohint-nox
+  # Custom font set options.
+  # See https://typeof.net/Iosevka/customizer
+  # Can be a raw TOML string, or a Nix attrset.
+
+  # Ex:
+  # privateBuildPlan = ''
+  #   [buildPlans.iosevka-custom]
+  #   family = "Iosevka Custom"
+  #   spacing = "normal"
+  #   serifs = "sans"
+  #
+  #   [buildPlans.iosevka-custom.variants.design]
+  #   capital-j = "serifless"
+  #
+  #   [buildPlans.iosevka-custom.variants.italic]
+  #   i = "tailed"
+  # '';
+
+  # Or:
+  # privateBuildPlan = {
+  #   family = "Iosevka Custom";
+  #   spacing = "normal";
+  #   serifs = "sans";
+  #
+  #   variants = {
+  #     design.capital-j = "serifless";
+  #     italic.i = "tailed";
+  #   };
+  # }
+, privateBuildPlan ? null
+  # Extra parameters. Can be used for ligature mapping.
+  # It must be a raw TOML string.
+
+  # Ex:
+  # extraParameters = ''
+  #   [[iosevka.compLig]]
+  #   unicode = 57808 # 0xe1d0
+  #   featureTag = 'XHS0'
+  #   sequence = "+>"
+  # '';
+, extraParameters ? null
+  # Custom font set name. Required if any custom settings above.
+, set ? null }:
+
+assert (privateBuildPlan != null) -> set != null;
+assert (extraParameters != null) -> set != null;
+
+let
+  # We don't know the attribute name for the Iosevka package as it
+  # changes not when our update script is run (which in turn updates
+  # node-packages.json, but when node-packages/generate.sh is run
+  # (which updates node-packages.nix).
+  #
+  # Doing it this way ensures that the package can always be built,
+  # although possibly an older version than ioseva-bin.
+  nodeIosevka = (
+    lib.findSingle
+      (drv: drv ? packageName && drv.packageName == "iosevka")
+      (throw "no 'iosevka' package found in nodePackages")
+      (throw "multiple 'iosevka' packages found in nodePackages")
+      (lib.attrValues nodePackages)
+  ).override (drv: { dontNpmInstall = true; });
+in
+stdenv.mkDerivation rec {
+  pname = if set != null then "iosevka-${set}" else "iosevka";
+  inherit (nodeIosevka) version src;
+
+  nativeBuildInputs = [
+    nodejs
+    nodeIosevka
+    remarshal
+    ttfautohint-nox
+  ];
+
+  buildPlan =
+    if builtins.isAttrs privateBuildPlan
+      then builtins.toJSON { buildPlans.${pname} = privateBuildPlan; }
+    else privateBuildPlan;
+
+  inherit extraParameters;
+  passAsFile = [ "buildPlan" "extraParameters" ];
+
+  configurePhase = ''
+    runHook preConfigure
+    ${lib.optionalString (builtins.isAttrs privateBuildPlan) ''
+      remarshal -i "$buildPlanPath" -o private-build-plans.toml -if json -of toml
+    ''}
+    ${lib.optionalString (builtins.isString privateBuildPlan) ''
+      cp "$buildPlanPath" private-build-plans.toml
+    ''}
+    ${lib.optionalString (extraParameters != null) ''
+      echo -e "\n" >> params/parameters.toml
+      cat "$extraParametersPath" >> params/parameters.toml
+    ''}
+    ln -s ${nodeIosevka}/lib/node_modules/iosevka/node_modules .
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+    npm run build --no-update-notifier -- --jCmd=$NIX_BUILD_CORES ttf::$pname >/dev/null
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    fontdir="$out/share/fonts/truetype"
+    install -d "$fontdir"
+    install "dist/$pname/ttf"/* "$fontdir"
+    runHook postInstall
+  '';
+
+  enableParallelBuilding = true;
+
+  passthru = {
+    updateScript = ./update-default.sh;
+  };
+
+  meta = with 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
+      babariviere
+      rileyinman
+      AluisioASG
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/node.nix b/nixpkgs/pkgs/data/fonts/iosevka/node.nix
new file mode 100644
index 000000000000..0983d3e127be
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iosevka/node.nix
@@ -0,0 +1,17 @@
+# This file has been generated by node2nix 1.7.0. Do not edit!
+
+{pkgs ? import <nixpkgs> {
+    inherit system;
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-8_x"}:
+
+let
+  nodeEnv = import ../../../development/node-packages/node-env.nix {
+    inherit (pkgs) stdenv python2 utillinux runCommand writeTextFile;
+    inherit nodejs;
+    libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
+  };
+in
+import ./node-packages.nix {
+  inherit (pkgs) fetchurl fetchgit;
+  inherit nodeEnv;
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/update-bin.sh b/nixpkgs/pkgs/data/fonts/iosevka/update-bin.sh
new file mode 100755
index 000000000000..a402f152d8a1
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iosevka/update-bin.sh
@@ -0,0 +1,28 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p curl jq
+
+set -euo pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+release=$(curl -s https://api.github.com/repos/be5invis/Iosevka/releases/latest)
+
+oldVersion=$(nix-instantiate --eval -E 'with import ../../../.. {}; lib.getVersion iosevka-bin' | tr -d '"')
+version=$(echo "$release" | jq -r .tag_name | tr -d v)
+
+if test "$oldVersion" = "$version"; then
+	echo "New version same as old version, nothing to do." >&2
+	exit 0
+fi
+
+sed -i "s/$oldVersion/$version/" bin.nix
+
+{
+	echo '# This file was autogenerated. DO NOT EDIT!'
+	echo '{'
+	for asset in $(echo "$release" | jq -r '.assets[].name | select(startswith("ttc"))'); do
+		printf '  %s = "%s";\n' \
+			$(echo "$asset" | sed -r "s/^ttc-(.*)-$version.zip$/\1/") \
+			$(nix-prefetch-url "https://github.com/be5invis/Iosevka/releases/download/v$version/$asset")
+	done
+	echo '}'
+} >variants.nix
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/update-default.sh b/nixpkgs/pkgs/data/fonts/iosevka/update-default.sh
new file mode 100755
index 000000000000..208ea6101ac2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iosevka/update-default.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p common-updater-scripts coreutils gawk replace
+set -euo pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+nixpkgs=../../../..
+repo=https://github.com/be5invis/Iosevka
+
+# Discover the latest version.
+current_version=$(nix-instantiate "$nixpkgs" --eval --strict -A iosevka.version | tr -d '"')
+new_version=$(list-git-tags "$repo" | sort --reverse --version-sort | awk 'match($0, /^v([0-9.]+)$/, m) { print m[1]; exit; }')
+if [[ "$new_version" == "$current_version" ]]; then
+    echo "iosevka: no update found"
+    exit
+fi
+
+# Update the source package in nodePackages.
+current_source="$repo/archive/v$current_version.tar.gz"
+new_source="$repo/archive/v$new_version.tar.gz"
+replace-literal -ef "$current_source" "$new_source" ../../../development/node-packages/node-packages.json
+echo "iosevka: $current_version -> $new_version (after nodePackages update)"
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/variants.nix b/nixpkgs/pkgs/data/fonts/iosevka/variants.nix
new file mode 100644
index 000000000000..6c31d3edb742
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iosevka/variants.nix
@@ -0,0 +1,26 @@
+# This file was autogenerated. DO NOT EDIT!
+{
+  iosevka = "1fva80sxdcmsl8y3m23ndif3ff54if37g1xqpda1f13yrbd9ii8q";
+  iosevka-aile = "0fy58yd17k8k41j5f48572d4vad3zz7c2mbc6vsiii9abfkwwalr";
+  iosevka-curly = "1lxw8na3qvc5g04prczl7qprdkvd0zf91ybmv276dnkq27abnjn4";
+  iosevka-curly-slab = "19b6xr5vjnb20j34x2ynfji63qibczn0mm2j76d01py304839bws";
+  iosevka-etoile = "0fhcn69idb6w8abpmmvpdp9c08zdhy0zwn8nbyy9jcznwj8vwb7m";
+  iosevka-slab = "0jlm3l13p9c965zx6z4df65lzxzj9yjjvpwlnx94ipayinxa1iff";
+  iosevka-ss01 = "1i6bvslpxj87p3xi198l486ba40ixicdkmj29vcb1d7w1hhr6wnm";
+  iosevka-ss02 = "1raczi1ja4barvjg5cp3j96kyph4aj8qlp9i10q7835sy29q3285";
+  iosevka-ss03 = "0cn9hi5w9rx8xhbh9a75c7s9pxa3dkqfhd24lbp72hwfgv5nk1v0";
+  iosevka-ss04 = "0v8fvif71604vyqanphq9mmlmx4xy0y2bykvplhrj1zmrj6v2ing";
+  iosevka-ss05 = "1fh99av3ml2zhjvdif02r2f82n4hsswpgd2i42d964swjdplxdga";
+  iosevka-ss06 = "0b0kl49djpc77qpmr1g2nzrg0q477xkjiqxb2i33pkrjsxn4vhn7";
+  iosevka-ss07 = "1d2by3najsambqxyzapnmd200hah39jq0mqdalidb2kjh5lx9n6k";
+  iosevka-ss08 = "05m03zn9pfl1khvl9xvgmlaygh1ni67lj2pc8zjgqydyls1vmxl4";
+  iosevka-ss09 = "1hzglj7sclg6h4jc9ibb1777apl11885w1gpscv81b8n1h0qhnb7";
+  iosevka-ss10 = "1fr52sclgp10k0lh86scjn3aylvsfnr7msg7jfsr3bkg61f5x1da";
+  iosevka-ss11 = "1cmdjmlqvhn3qvqdfflwa4wgza364jn9gbj5vq8rsd6qili175ix";
+  iosevka-ss12 = "0bk56hh9894z59rpkk5s9hhmkz1b2gmvfys46frijg3am54xh03q";
+  iosevka-ss13 = "1kgxlxz1cdkzrfbnkavscf48im9lwiya9rcqlaa10k0ssas28br5";
+  iosevka-ss14 = "06djgn86r2yy3ll2ask5mr9qhqibqzr7v95db5dzxcbz7hrmaaxf";
+  iosevka-ss15 = "0qcld7h38c7cif518sa84x50igxjkh38ckav9qhhv7ls1n5h0jpm";
+  iosevka-ss16 = "0qa6h8qx60rajbpp0v4wxia5n3yinp2nvwy2dsi1270prra7r49x";
+  iosevka-ss17 = "1s04vlkll42am6w3lcka518zv2dlrwwnykdid0sp81najwmq0fk3";
+}
diff --git a/nixpkgs/pkgs/data/fonts/ipaexfont/default.nix b/nixpkgs/pkgs/data/fonts/ipaexfont/default.nix
new file mode 100644
index 000000000000..ef914d144843
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ipaexfont/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "ipaexfont-003.01";
+
+  url = "http://web.archive.org/web/20160616003021/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 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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ipafont/default.nix b/nixpkgs/pkgs/data/fonts/ipafont/default.nix
new file mode 100644
index 000000000000..eec28db883a8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ipafont/default.nix
@@ -0,0 +1,26 @@
+{ lib, 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 = lib.licenses.ipa;
+    maintainers = [ lib.maintainers.auntie ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ir-standard-fonts/default.nix b/nixpkgs/pkgs/data/fonts/ir-standard-fonts/default.nix
new file mode 100644
index 000000000000..25ec1e5d11da
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ir-standard-fonts/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "ir-standard-fonts";
+  version = "unstable-2017-01-21";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "morealaz";
+  repo = pname;
+  rev = "d36727d6c38c23c01b3074565667a2fe231fe18f";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/ir-standard-fonts {} \;
+  '';
+  sha256 = "0i2vzhwk77pm6fx5z5gxl026z9f35rhh3cvl003mry2lcg1x5rhp";
+
+  meta = with lib; {
+    homepage = "https://github.com/morealaz/ir-standard-fonts";
+    description = "Iran Supreme Council of Information and Communication Technology (SCICT) standard Persian fonts series";
+    # License information is unavailable.
+    license = licenses.unfree;
+    platforms = platforms.all;
+    maintainers = [ maintainers.linarcx ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/iwona/default.nix b/nixpkgs/pkgs/data/fonts/iwona/default.nix
new file mode 100644
index 000000000000..7333c5abe358
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iwona/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "0_995";
+in fetchzip {
+  name = "iwona-${version}";
+  url = "http://jmn.pl/pliki/Iwona-otf-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype
+    unzip -j $downloadedFile *.otf -d $out/share/fonts/opentype
+  '';
+  sha256 = "1dcpn13bd31dw7ir0s722bv3nk136dy6qsab0kznjbzfqd7agswa";
+
+  meta = with 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/jetbrains-mono/default.nix b/nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix
new file mode 100644
index 000000000000..0ba7fd835c3c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchzip }:
+
+let
+  version = "2.225";
+in
+fetchzip {
+  name = "JetBrainsMono-${version}";
+
+  url = "https://github.com/JetBrains/JetBrainsMono/releases/download/v${version}/JetBrainsMono-${version}.zip";
+
+  sha256 = "1k8xmjaingz50626hd73hqbp196kg3zndiy0aqb88z5cw9nd0fva";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    description = "A typeface made for developers";
+    homepage = "https://jetbrains.com/mono/";
+    changelog = "https://github.com/JetBrains/JetBrainsMono/blob/v${version}/Changelog.md";
+    license = licenses.ofl;
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/jost/default.nix b/nixpkgs/pkgs/data/fonts/jost/default.nix
new file mode 100644
index 000000000000..457cb0d03c99
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/jost/default.nix
@@ -0,0 +1,22 @@
+{lib, fetchzip}:
+
+let
+  version = "3.5";
+in fetchzip {
+  name = "jost-${version}";
+  url = "https://github.com/indestructible-type/Jost/releases/download/${version}/Jost.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256="0l78vhmbsyfmrva5wc76pskhxqryyg8q5xddpj9g5wqsddy525dq";
+
+  meta = with lib; {
+    homepage = "https://github.com/indestructible-type/Jost";
+    description = "A sans serif font by Indestructible Type";
+    license = licenses.ofl;
+    maintainers = [ maintainers.ar1a ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/joypixels/default.nix b/nixpkgs/pkgs/data/fonts/joypixels/default.nix
new file mode 100644
index 000000000000..146b832af9c7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/joypixels/default.nix
@@ -0,0 +1,103 @@
+{ lib, stdenv
+, fetchurl
+, config
+, acceptLicense ? config.joypixels.acceptLicense or false
+}:
+
+let
+  inherit (stdenv.hostPlatform.parsed) kernel;
+
+  systemSpecific = {
+    darwin = rec {
+      systemTag =  "nix-darwin";
+      capitalized = systemTag;
+      fontFile = "JoyPixels-SBIX.ttf";
+    };
+  }.${kernel.name} or rec {
+    systemTag = "nixos";
+    capitalized = "NixOS";
+    fontFile = "joypixels-android.ttf";
+  };
+
+  joypixels-free-license = with systemSpecific; {
+    spdxId = "LicenseRef-JoyPixels-Free-6.0";
+    fullName = "JoyPixels Free License Agreement 6.0";
+    url = "https://cdn.joypixels.com/distributions/${systemTag}/license/free-license.pdf";
+    free = false;
+  };
+
+  joypixels-license-appendix = with systemSpecific; {
+    spdxId = "LicenseRef-JoyPixels-NixOS-Appendix";
+    fullName = "JoyPixels ${capitalized} License Appendix";
+    url = "https://cdn.joypixels.com/distributions/${systemTag}/appendix/joypixels-license-appendix.pdf";
+    free = false;
+  };
+
+  throwLicense = throw ''
+    Use of the JoyPixels font requires acceptance of the license.
+      - ${joypixels-free-license.fullName} [1]
+      - ${joypixels-license-appendix.fullName} [2]
+
+    You can express acceptance by setting acceptLicense to true in your
+    configuration. Note that this is not a free license so it requires allowing
+    unfree licenses.
+
+    configuration.nix:
+      nixpkgs.config.allowUnfree = true;
+      nixpkgs.config.joypixels.acceptLicense = true;
+
+    config.nix:
+      allowUnfree = true;
+      joypixels.acceptLicense = true;
+
+    [1]: ${joypixels-free-license.url}
+    [2]: ${joypixels-license-appendix.url}
+  '';
+
+in
+
+stdenv.mkDerivation rec {
+  pname = "joypixels";
+  version = "6.5.0";
+
+  src = assert !acceptLicense -> throwLicense;
+    with systemSpecific; fetchurl {
+      name = fontFile;
+      url = "https://cdn.joypixels.com/distributions/${systemTag}/font/${version}/${fontFile}";
+      sha256 = {
+        darwin = "034bwxy6ljvhx9zlm6jkb8vw222sg79sjwlcjfql51rk6zkmv4wx";
+      }.${kernel.name} or "1v6hz0qhbnzayxhs5j9qfa2ggn7nak53ij7kr06m93wcmlnnln86";
+    };
+
+  dontUnpack = true;
+
+  installPhase = with systemSpecific; ''
+    runHook preInstall
+
+    install -Dm644 $src $out/share/fonts/truetype/${fontFile}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "The finest emoji you can use legally (formerly EmojiOne)";
+    longDescription = ''
+      Updated for 2021! JoyPixels 6.5 includes 3,559 originally crafted icon
+      designs and is 100% Unicode 13.1 compatible. We offer the largest
+      selection of files ranging from png, svg, iconjar, sprites, and fonts.
+    '';
+    homepage = "https://www.joypixels.com/fonts";
+    license =
+      let
+        free-license = joypixels-free-license;
+        appendix = joypixels-license-appendix;
+      in with systemSpecific; {
+        spdxId = "LicenseRef-JoyPixels-Free-6.0-with-${capitalized}-Appendix";
+        fullName = "${free-license.fullName} with ${appendix.fullName}";
+        url = free-license.url;
+        appendixUrl = appendix.url;
+        free = false;
+      };
+    maintainers = with maintainers; [ toonn jtojnar ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/julia-mono/default.nix b/nixpkgs/pkgs/data/fonts/julia-mono/default.nix
new file mode 100644
index 000000000000..77083268b0c8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/julia-mono/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchzip }:
+
+let
+  version = "0.035";
+
+in fetchzip {
+  name = "JuliaMono-${version}";
+  url = "https://github.com/cormullion/juliamono/releases/download/v${version}/JuliaMono.zip";
+  sha256 = "sha256:17w8rn37wadxnmakhd6mpmqdx14dsrc3qym4k9b47albl1a34i1j";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    description = "A monospaced font for scientific and technical computing";
+    longDescription = ''
+      JuliaMono is a monospaced typeface designed for use in text editing environments that require a wide range of specialist and technical Unicode characters. It was intended as a fun experiment to be presented at the 2020 JuliaCon conference in Lisbon, Portugal (which of course didn’t physically happen in Lisbon, but online).
+    '';
+    maintainers = with maintainers; [ suhr ];
+    platforms = with platforms; all;
+    homepage = "https://cormullion.github.io/pages/2020-07-26-JuliaMono/";
+    license = licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/junicode/default.nix b/nixpkgs/pkgs/data/fonts/junicode/default.nix
new file mode 100644
index 000000000000..19502cdf78fd
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/junicode/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchzip }:
+
+let
+  pname = "junicode";
+  version = "1.002";
+in fetchzip {
+  name = "${pname}-${version}";
+
+  url = "mirror://sourceforge/junicode/junicode/junicode-${version}/junicode-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/junicode-ttf
+  '';
+
+  sha256 = "1n170gw41lr0zr5958z5cgpg6i1aa7kj7iq9s6gdh1cqq7hhgd08";
+
+  meta = {
+    homepage = "http://junicode.sourceforge.net/";
+    description = "A Unicode font for medievalists";
+    maintainers = with lib.maintainers; [ ivan-timokhin ];
+    license = lib.licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/kanji-stroke-order-font/default.nix b/nixpkgs/pkgs/data/fonts/kanji-stroke-order-font/default.nix
new file mode 100644
index 000000000000..80c97024ac36
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kanji-stroke-order-font/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchurl }:
+
+let
+  version = "4.003";
+  debianVersion = "dfsg-1";
+in stdenv.mkDerivation {
+  name = "kanji-stroke-order-font-${version}";
+
+  src = fetchurl {
+    url = "https://salsa.debian.org/fonts-team/fonts-kanjistrokeorders/-/archive/debian/${version}_${debianVersion}/fonts-kanjistrokeorders-debian-${version}_${debianVersion}.tar.bz2";
+    sha256 = "1a8hxzkrfjz0h5gl9h0panzzsn7cldlklxryyzmpam23g32q6bg1";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/kanji-stroke-order $out/share/doc/kanji-stroke-order
+    cp *.ttf $out/share/fonts/kanji-stroke-order
+    cp *.txt $out/share/doc/kanji-stroke-order
+  '';
+
+  meta = with lib; {
+    description = "Font containing stroke order diagrams for over 6500 kanji, 180 kana and other characters";
+    homepage = "https://sites.google.com/site/nihilistorguk/";
+
+    license = [ licenses.bsd3 ];
+    maintainers = with maintainers; [ ptrhlm ];
+    platforms = platforms.all;
+  };
+}
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..1e07123badc3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kawkab-mono/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  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 = lib.licenses.ofl;
+  };
+}
+
+
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..1b63223f0bf6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kochi-substitute-naga10/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchzip }:
+
+let version = "20030809";
+in
+fetchzip {
+  name = "kochi-substitute-naga10-${version}";
+
+  url = "mirror://osdn/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 = "https://osdn.net/projects/efont/";
+    license = lib.licenses.unfreeRedistributable;
+    maintainers = [ 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..071db9b13dfb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kochi-substitute/default.nix
@@ -0,0 +1,48 @@
+{ lib, stdenv, fetchurl, dpkg }:
+
+let version = "20030809";
+in
+stdenv.mkDerivation {
+  pname = "kochi-substitute";
+  inherit 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 = "https://osdn.net/projects/efont/";
+    license = lib.licenses.wadalab;
+    maintainers = [ lib.maintainers.auntie ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/kreative-square-fonts/default.nix b/nixpkgs/pkgs/data/fonts/kreative-square-fonts/default.nix
new file mode 100644
index 000000000000..c9e51319733f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kreative-square-fonts/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "kreative-square-fonts";
+  version = "unstable-2021-01-29";
+in
+fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "kreativekorp";
+  repo = "open-relay";
+  rev = "084f05af3602307499981651eca56851bec01fca";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -Dm444 -t $out/share/fonts/truetype/ KreativeSquare/KreativeSquare.ttf
+    install -Dm444 -t $out/share/fonts/truetype/ KreativeSquare/KreativeSquareSM.ttf
+  '';
+  sha256 = "15vvbbzv6b3jh7lxg77viycdd7yf3y8lxy54vs3rsrsxwncg0pak";
+
+  meta = with lib; {
+    description = "Fullwidth scalable monospace font designed specifically to support pseudographics, semigraphics, and private use characters";
+    homepage = "https://www.kreativekorp.com/software/fonts/ksquare.shtml";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.linus ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/lalezar-fonts/default.nix b/nixpkgs/pkgs/data/fonts/lalezar-fonts/default.nix
new file mode 100644
index 000000000000..01e9d209a317
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lalezar-fonts/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "lalezar-fonts";
+  version = "unstable-2017-02-28";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "BornaIz";
+  repo = "Lalezar";
+  rev = "238701c4241f207e92515f845a199be9131c1109";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    mkdir -p $out/share/fonts/lalezar-fonts
+    cp -v $( find . -name '*.ttf') $out/share/fonts/lalezar-fonts
+  '';
+  sha256 = "0jmwhr2dqgj3vn0v26jh6c0id6n3wd6as3bq39xa870zlk7v307b";
+
+  meta = with lib; {
+    homepage = "https://github.com/BornaIz/Lalezar";
+    description = "A multi-script display typeface for popular culture";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.linarcx ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/lato/default.nix b/nixpkgs/pkgs/data/fonts/lato/default.nix
new file mode 100644
index 000000000000..76effcf97cd0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lato/default.nix
@@ -0,0 +1,39 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "lato-2.0";
+
+  url = "https://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 lib; {
+    homepage = "https://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..f6855dc99d66
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/league-of-moveable-type/default.nix
@@ -0,0 +1,51 @@
+{lib, 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 = lib.licenses.ofl;
+
+    platforms = lib.platforms.all;
+    maintainers = with 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..c42bc9f75632
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/liberastika/default.nix
@@ -0,0 +1,27 @@
+{ lib, 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 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-fonts/default.nix b/nixpkgs/pkgs/data/fonts/liberation-fonts/default.nix
new file mode 100644
index 000000000000..04ee3781b6bb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/liberation-fonts/default.nix
@@ -0,0 +1,68 @@
+{ lib, stdenv, fetchFromGitHub, fontforge, python3 }:
+let
+  inherit (python3.pkgs) fonttools;
+
+  commonNativeBuildInputs = [ fontforge python3 ];
+  common =
+    { version, repo, sha256, nativeBuildInputs, postPatch ? null }:
+      stdenv.mkDerivation rec {
+        pname = "liberation-fonts";
+        inherit version;
+
+        src = fetchFromGitHub {
+          owner = "liberationfonts";
+          rev = version;
+          inherit repo sha256;
+        };
+
+        inherit nativeBuildInputs postPatch;
+
+        installPhase = ''
+          find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/truetype {} \;
+
+          install -m444 -Dt $out/share/doc/${pname}-${version} AUTHORS     || true
+          install -m444 -Dt $out/share/doc/${pname}-${version} ChangeLog   || true
+          install -m444 -Dt $out/share/doc/${pname}-${version} COPYING     || true
+          install -m444 -Dt $out/share/doc/${pname}-${version} License.txt || true
+          install -m444 -Dt $out/share/doc/${pname}-${version} README      || true
+        '';
+
+        meta = with 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 = with maintainers; [ raskin ];
+        };
+      };
+in
+{
+  liberation_ttf_v1 = common {
+    repo = "liberation-1.7-fonts";
+    version = "1.07.5";
+    nativeBuildInputs = commonNativeBuildInputs ;
+    sha256 = "1ffl10mf78hx598sy9qr5m6q2b8n3mpnsj73bwixnd4985gsz56v";
+  };
+  liberation_ttf_v2 = common {
+    repo = "liberation-fonts";
+    version = "2.1.0";
+    nativeBuildInputs = commonNativeBuildInputs ++ [ fonttools ];
+    postPatch = ''
+      substituteInPlace scripts/setisFixedPitch-fonttools.py --replace \
+        'font = ttLib.TTFont(fontfile)' \
+        'font = ttLib.TTFont(fontfile, recalcTimestamp=False)'
+    '';
+    sha256 = "03xpzaas264x5n6qisxkhc68pkpn32m7y78qdm3rdkxdwi8mv8mz";
+  };
+}
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..281bfa4c42b0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/liberation-sans-narrow/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchFromGitHub, fontforge, python3Packages, python3 }:
+
+stdenv.mkDerivation rec {
+  pname = "liberation-sans-narrow";
+  version = "1.07.6";
+
+  src = fetchFromGitHub {
+    owner = "liberationfonts";
+    repo = pname;
+    rev = version;
+    sha256 = "1qw554jbdnqkg6pjjl4cqkgsalq3398kzvww2naw30vykcz752bm";
+  };
+
+  buildInputs = [ fontforge python3Packages.fonttools python3 ];
+
+  installPhase = ''
+    find . -name '*Narrow*.ttf' -exec install -m444 -Dt $out/share/fonts/truetype {} \;
+    install -m444 -Dt $out/doc/${pname}-${version} AUTHORS ChangeLog COPYING License.txt README.rst
+  '';
+
+  meta = with 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..2120c5965e2f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libertine/default.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, fetchurl, fontforge }:
+
+stdenv.mkDerivation {
+  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 = ''
+    install -m444 -Dt $out/share/fonts/opentype/public *.otf
+    install -m444 -Dt $out/share/fonts/truetype/public *.ttf
+    install -m444 -Dt $out/share/fonts/type1/public    *.pfb
+    install -m444 -Dt $out/share/texmf/fonts/enc       *.enc
+    install -m444 -Dt $out/share/texmf/fonts/map       *.map
+  '';
+
+  meta = with lib; {
+    description = "Linux Libertine Fonts";
+    homepage = "http://linuxlibertine.sf.net";
+    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..7d95b6a26ff3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libertinus/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "6.9";
+in fetchFromGitHub rec {
+  name = "libertinus-${version}";
+
+  owner  = "alif-type";
+  repo   = "libertinus";
+  rev    = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -m444 -Dt $out/share/fonts/opentype *.otf
+    install -m444 -Dt $out/share/doc/${name}    *.txt
+  '';
+  sha256 = "0765a7w0askkhrjmjk638gcm9h6fcm1jpaza8iw9afr3sz1s0xlq";
+
+  meta = with 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/alif-type/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..a4be7b5b3e6b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libre-baskerville/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchFromGitHub }:
+
+fetchFromGitHub rec {
+  name = "libre-baskerville-1.000";
+
+  owner = "impallari";
+  repo = "Libre-Baskerville";
+  rev = "2fba7c8e0a8f53f86efd3d81bc4c63674b0c613f";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -m444 -Dt $out/share/fonts/truetype *.ttf
+    install -m444 -Dt $out/share/doc/${name}    README.md FONTLOG.txt
+  '';
+
+  sha256 = "1kpji85d1mgwq8b4fh1isznrhsrv32la3wf058rwjmhx5a3l7yaj";
+
+  meta = with 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..63bbf8eba724
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libre-bodoni/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub }:
+
+fetchFromGitHub rec {
+  name = "libre-bodoni-2.000";
+
+  owner = "impallari";
+  repo = "Libre-Bodoni";
+  rev = "995a40e8d6b95411d660cbc5bb3f726ffd080c7d";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -m444 -Dt $out/share/fonts/opentype */v2000\ -\ initial\ glyphs\ migration/OTF/*.otf
+    install -m444 -Dt $out/share/doc/${name}    README.md FONTLOG.txt
+  '';
+
+  sha256 = "0my0i5a7f0d27m6dcdirjmlcnswqqfp8gl3ccxa5f2wkn3qlzkvz";
+
+  meta = with 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..d89d4c41c0f3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libre-caslon/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "libre-caslon";
+  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/${pname}-${version}
+    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/${pname}-${version}
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "05aajwny99yqzn1nnq1blx6h7rl54x056y12hyawfbigkzxhscns";
+
+  meta = with 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..b41ae8878cc2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libre-franklin/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchFromGitHub }:
+
+fetchFromGitHub rec {
+  name = "libre-franklin-1.014";
+
+  owner = "impallari";
+  repo = "Libre-Franklin";
+  rev = "006293f34c47bd752fdcf91807510bc3f91a0bd3";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -m444 -Dt $out/share/fonts/opentype */OTF/*.otf
+    install -m444 -Dt $out/share/doc/${name}    README.md FONTLOG.txt
+  '';
+
+  sha256 = "0aq280m01pbirkzga432340aknf2m5ggalw0yddf40sqz7falykf";
+
+  meta = with 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/line-awesome/default.nix b/nixpkgs/pkgs/data/fonts/line-awesome/default.nix
new file mode 100644
index 000000000000..d9f7818dd2f7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/line-awesome/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+  pname = "line-awesome";
+  version = "1.3.0";
+
+  src = fetchurl {
+    url =
+      "https://maxst.icons8.com/vue-static/landings/line-awesome/line-awesome/${version}/line-awesome-${version}.zip";
+    sha256 = "07qkz8s1wjh5xwqlq1b4lpihr1zah3kh6bnqvfwvncld8l9wjqfk";
+  };
+
+  nativeBuildInputs = [ unzip ];
+
+  sourceRoot = "${version}/fonts";
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    mkdir -p $out/share/fonts/woff
+    mkdir -p $out/share/fonts/woff2
+    cp *.ttf $out/share/fonts/truetype
+    cp *.woff $out/share/fonts/woff
+    cp *.woff2 $out/share/fonts/woff2
+  '';
+
+  meta = with lib; {
+    description = "Replace Font Awesome with modern line icons";
+    longDescription = ''
+      This package includes only the TTF, WOFF and WOFF2 fonts. For full CSS etc. see the project website.
+    '';
+    homepage = "https://icons8.com/line-awesome";
+    license = licenses.mit;
+    maintainers = with maintainers; [ puzzlewolf ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/lmmath/default.nix b/nixpkgs/pkgs/data/fonts/lmmath/default.nix
new file mode 100644
index 000000000000..0530141317b8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lmmath/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.959";
+in fetchzip rec {
+  name = "lmmath-${version}";
+
+  url = "http://www.gust.org.pl/projects/e-foundry/lm-math/download/latinmodern-math-1959.zip";
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype/
+    mkdir -p $out/share/doc/latinmodern-math-${version}/
+    unzip -j $downloadedFile "*/otf/*.otf" -d $out/share/fonts/opentype/
+    unzip -j $downloadedFile "*/doc/*.txt" -d $out/share/doc/latinmodern-math-${version}/
+  '';
+  sha256 = "05k145bxgxjh7i9gx1ahigxfpc2v2vwzsy2mc41jvvg51kjr8fnn";
+
+  meta = with 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..53fc456d7583
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lmodern/default.nix
@@ -0,0 +1,26 @@
+{ 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";
+  };
+}
+
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..fb1595fe2fc7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lobster-two/default.nix
@@ -0,0 +1,80 @@
+{lib, 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 {
+    pname = "lobstertwo";
+    version = "1.006";
+
+    phases = ["installPhase"];
+
+    installPhase = ''
+      mkdir -p $out/share/fonts/opentype
+      mkdir -p $out/share/doc/${pname}-${version}
+      cp -v ${fontlog.file} $out/share/doc/${pname}-${version}/${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 lib; {
+      homepage = "https://github.com/librefonts/lobstertwo";
+      description = "Script font with many ligatures";
+      license = licenses.ofl;
+      platforms = platforms.all;
+      maintainers = [maintainers.rycee];
+      broken = true; # googlecode.com RIP; can be built from sources
+    };
+  }
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..64ae831767bb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lohit-fonts/default.nix
@@ -0,0 +1,60 @@
+{ 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;
+    };
+  };
+
+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/luculent/default.nix b/nixpkgs/pkgs/data/fonts/luculent/default.nix
new file mode 100644
index 000000000000..9d61931db365
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/luculent/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchzip }:
+
+let version = "2.0.0"; in
+fetchzip {
+  name = "luculent-${version}";
+  url =  "http://www.eastfarthing.com/luculent/luculent.tar.xz";
+
+  postFetch = ''
+    tar -xJf $downloadedFile --strip-components=1
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+  '';
+
+  sha256 = "1m3g64galwna1xjxb1fczmfplm6c1fn3ra1ln7f0vkm0ah5m4lbv";
+
+  meta = with lib; {
+    description = "luculent font";
+    homepage = "http://www.eastfarthing.com/luculent/";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ dtzWill ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/manrope/default.nix b/nixpkgs/pkgs/data/fonts/manrope/default.nix
new file mode 100644
index 000000000000..9bf4f32caeb2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/manrope/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "manrope";
+  version = "3";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "sharanda";
+  repo = pname;
+  rev = "3bd68c0c325861e32704470a90dfc1868a5c37e9";
+  sha256 = "1h4chkfbp75hrrqqarf28ld4yb7hfrr7q4w5yz96ivg94lbwlnld";
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -Dm644 -t $out/share/fonts/opentype "desktop font"/*
+  '';
+  meta = with lib; {
+    description = "Open-source modern sans-serif font family";
+    homepage = "https://github.com/sharanda/manrope";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
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..8c228fd91a75
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/marathi-cursive/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "2.0";
+in fetchzip rec {
+  name = "marathi-cursive-${version}";
+
+  url = "https://github.com/MihailJP/MarathiCursive/releases/download/v${version}/MarathiCursive-${version}.tar.xz";
+
+  postFetch = ''
+    tar -xJf $downloadedFile --strip-components=1
+    install -m444 -Dt $out/share/fonts/marathi-cursive *.otf *.ttf
+    install -m444 -Dt $out/share/doc/${name} README *.txt
+  '';
+
+  sha256 = "17pj60ajnjghxhxka8a046mz6vfwr79wnby7xd6pg5hgncin2hgg";
+
+  meta = with 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-design-icons/default.nix b/nixpkgs/pkgs/data/fonts/material-design-icons/default.nix
new file mode 100644
index 000000000000..1bf5c6aa4820
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/material-design-icons/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "5.3.45";
+in fetchFromGitHub {
+  name = "material-design-icons-${version}";
+  owner  = "Templarian";
+  repo   = "MaterialDesign-Webfont";
+  rev    = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    mkdir -p $out/share/fonts/{eot,truetype,woff,woff2}
+    cp fonts/*.eot $out/share/fonts/eot/
+    cp fonts/*.ttf $out/share/fonts/truetype/
+    cp fonts/*.woff $out/share/fonts/woff/
+    cp fonts/*.woff2 $out/share/fonts/woff2/
+  '';
+  sha256 = "1nwha6dbj97ybiwlf69la57l3ibmwgnzs0nr104bfqnqxjs471sx";
+
+  meta = with lib; {
+    description = "4600+ Material Design Icons from the Community";
+    longDescription = ''
+      Material Design Icons' growing icon collection allows designers and
+      developers targeting various platforms to download icons in the format,
+      color and size they need for any project.
+    '';
+    homepage = "https://materialdesignicons.com";
+    license = with licenses; [
+      asl20  # for icons from: https://github.com/google/material-design-icons
+      ofl
+    ];
+    platforms = platforms.all;
+    maintainers = with maintainers; [ vlaci ];
+  };
+}
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..656be1b153eb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/material-icons/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "3.0.1";
+in fetchFromGitHub {
+  name = "material-icons-${version}";
+
+  owner  = "google";
+  repo   = "material-design-icons";
+  rev    = version;
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    mkdir -p $out/share/fonts/truetype
+    cp iconfont/*.ttf $out/share/fonts/truetype
+  '';
+  sha256 = "1syy6v941lb8nqxhdf7mfx28v05lwrfnq53r3c1ym13x05l9kchp";
+
+  meta = with 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..c94046f085f9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/medio/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "200";
+  pname = "medio";
+in
+
+fetchzip {
+  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 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/merriweather-sans/default.nix b/nixpkgs/pkgs/data/fonts/merriweather-sans/default.nix
new file mode 100644
index 000000000000..397f42236b52
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/merriweather-sans/default.nix
@@ -0,0 +1,34 @@
+{ stdenvNoCC
+, lib
+, fetchFromGitHub
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "merriweather-sans";
+  version = "1.008";
+
+  src = fetchFromGitHub {
+    owner = "SorkinType";
+    repo = "Merriweather-Sans";
+    rev = "8a1b078e3aeec6aecc856c3422898816af9b9dc7";
+    sha256 = "1f6a64bv4b4b1v3g2pgrzxcys8rk12wq6wfxamgzligcq5fxaffd";
+  };
+
+  # TODO: it would be nice to build this from scratch, but lots of
+  # Python dependencies to package (fontmake, gftools)
+
+  installPhase = ''
+    install -m444 -Dt $out/share/fonts/truetype/${pname} fonts/ttfs/*.ttf
+    install -m444 -Dt $out/share/fonts/woff/${pname} fonts/woff/*.woff
+    install -m444 -Dt $out/share/fonts/woff2/${pname} fonts/woff2/*.woff2
+    # TODO: install variable version?
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/SorkinType/Merriweather-Sans";
+    description = "Merriweather Sans is a low-contrast semi-condensed sans-serif text typeface family designed to be pleasant to read at very small sizes";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ emily ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/merriweather/default.nix b/nixpkgs/pkgs/data/fonts/merriweather/default.nix
new file mode 100644
index 000000000000..d1b3359df26e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/merriweather/default.nix
@@ -0,0 +1,35 @@
+{ stdenvNoCC
+, lib
+, fetchFromGitHub
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "merriweather";
+  version = "2.005";
+
+  src = fetchFromGitHub {
+    owner = "SorkinType";
+    repo = "Merriweather";
+    rev = "4fd88c9299009d1c1d201e7da3ff75cf1de5153a";
+    sha256 = "1ndycja2jzhcfbqbm0p6ka2zl1i1pdbkf0crw2lp3pi4k89wlm29";
+  };
+
+  # TODO: it would be nice to build this from scratch, but lots of
+  # Python dependencies to package (fontmake, gftools)
+
+  installPhase = ''
+    install -m444 -Dt $out/share/fonts/opentype/${pname} fonts/otf/*.otf
+    install -m444 -Dt $out/share/fonts/truetype/${pname} fonts/ttfs/*.ttf
+    install -m444 -Dt $out/share/fonts/woff/${pname} fonts/woff/*.woff
+    install -m444 -Dt $out/share/fonts/woff2/${pname} fonts/woff2/*.woff2
+    # TODO: install variable version?
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/SorkinType/Merriweather";
+    description = "A text face designed to be pleasant to read on screens";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ emily ];
+  };
+}
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..7083b9e00313
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/meslo-lg/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+  version = "1.2.1";
+
+  pname = "meslo-lg";
+
+  meslo-lg = fetchurl {
+    url="https://github.com/andreberg/Meslo-Font/blob/master/dist/v${version}/Meslo%20LG%20v${version}.zip?raw=true";
+    name="${pname}-${version}";
+    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="${pname}-${version}-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 = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ balajisivaraman ];
+    platforms = with lib.platforms; all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/meslo-lgs-nf/default.nix b/nixpkgs/pkgs/data/fonts/meslo-lgs-nf/default.nix
new file mode 100644
index 000000000000..305bd69f2dae
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/meslo-lgs-nf/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "meslo-lgs-nf";
+  version = "2020-03-22";
+
+  src = fetchFromGitHub {
+    owner = "romkatv";
+    repo = "powerlevel10k-media";
+    rev = "32c7d40239c93507277f14522be90b5750f442c9";
+    sha256 = "10hq4whai1rqj495w4n80p0y21am8rihm4rc40xq7241d6dzilrd";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp $src/*.ttf $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    description = "Meslo Nerd Font patched for Powerlevel10k";
+    homepage = "https://github.com/romkatv/powerlevel10k-media";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bbigras ];
+    platforms = 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..bcc0666f035d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/migmix/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+  pname = "migmix";
+  version = "20150712";
+
+  srcs = [
+    (fetchzip {
+      url = "mirror://osdn/mix-mplus-ipa/63544/migmix-1p-${version}.zip";
+      sha256 = "0wp44axcalaak04nj3dgpx0vk13nqa3ihx2vjv4acsgv83x8ciph";
+    })
+    (fetchzip {
+      url = "mirror://osdn/mix-mplus-ipa/63544/migmix-2p-${version}.zip";
+      sha256 = "0y7s3rbxrp5bv56qgihk8b847lqgibfhn2wlkzx7z655fbzdgxw9";
+    })
+    (fetchzip {
+      url = "mirror://osdn/mix-mplus-ipa/63544/migmix-1m-${version}.zip";
+      sha256 = "1sfym0chy8ilyd9sr3mjc0bf63vc33p05ynpdc11miivxn4qsshx";
+    })
+    (fetchzip {
+      url = "mirror://osdn/mix-mplus-ipa/63544/migmix-2m-${version}.zip";
+      sha256 = "0hg04rvm39fh4my4akmv4rhfc14s3ipz2aw718h505k9hppkhkch";
+    })
+  ];
+
+  dontUnpack = true;
+
+  installPhase = ''
+    find $srcs -name '*.ttf' -exec install -m644 -Dt $out/share/fonts/truetype/migmix {} \;
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1fhh8wg6lxwrnsg9rl4ihffl0bsp1wqa5gps9fx60kr6j9wpvmbg";
+
+  meta = with 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;
+    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..09992ef5ec8c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/migu/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+  pname = "migu";
+  version = "20150712";
+
+  srcs = [
+    (fetchzip {
+      url = "mirror://osdn/mix-mplus-ipa/63545/migu-1p-${version}.zip";
+      sha256 = "04wpbk5xbbcv2rzac8yzj4ww7sk2hy2rg8zs96yxc5vzj9q7svf6";
+    })
+    (fetchzip {
+      url = "mirror://osdn/mix-mplus-ipa/63545/migu-1c-${version}.zip";
+      sha256 = "1k7ymix14ac5fb44bjvbaaf24784zzpyc1jj2280c0zdnpxksyk6";
+    })
+    (fetchzip {
+      url = "mirror://osdn/mix-mplus-ipa/63545/migu-1m-${version}.zip";
+      sha256 = "07r8id83v92hym21vrqmfsfxb646v8258001pkjhgfnfg1yvw8lm";
+    })
+    (fetchzip {
+      url = "mirror://osdn/mix-mplus-ipa/63545/migu-2m-${version}.zip";
+      sha256 = "1pvzbrawh43589j8rfxk86y1acjbgzzdy5wllvdkpm1qnx28zwc2";
+    })
+  ];
+
+  dontUnpack = true;
+
+  installPhase = ''
+    find $srcs -name '*.ttf' | xargs install -m644 --target $out/share/fonts/truetype/migu -D
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "0nbpn21cxdd6gsgr3fadzjsnz84f2swpf81wmscmjgvd56ngndzh";
+
+  meta = with 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;
+    maintainers = [ maintainers.mikoim ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/mno16/default.nix b/nixpkgs/pkgs/data/fonts/mno16/default.nix
new file mode 100644
index 000000000000..eeb53904fe11
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/mno16/default.nix
@@ -0,0 +1,21 @@
+{ lib, fetchzip }:
+
+let
+  pname = "mno16";
+  version = "1.0";
+in fetchzip rec {
+  name = "${pname}-${version}";
+  url = "https://github.com/sevmeyer/${pname}/releases/download/${version}/${name}.zip";
+  sha256 = "1x06nl281fcjk6g1p4cgrgxakmwcci6vvasskaygsqlzxd8ig87w";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype/
+  '';
+
+  meta = with lib; {
+    description = "minimalist monospaced font";
+    homepage = "https://sev.dev/fonts/mno16";
+    license = licenses.cc0;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/monoid/default.nix b/nixpkgs/pkgs/data/fonts/monoid/default.nix
new file mode 100644
index 000000000000..77ef87152acf
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/monoid/default.nix
@@ -0,0 +1,49 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, python3 }:
+
+stdenv.mkDerivation {
+  pname = "monoid";
+  version = "2018-06-03";
+
+  src = fetchFromGitHub {
+    owner = "larsenwork";
+    repo = "monoid";
+    rev = "a331c7c5f402c449f623e0d0895bd2fd8dc30ccf";
+    sha256 = "sha256-RV6lxv5CjywTMcuPMj6rdjLKrap7zLJ7niaNeF//U1Y=";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/larsenwork/monoid/pull/233/commits/f84f2ed61301ee84dadd16351314394f22ebed2f.patch";
+      sha256 = "sha256-CxfFHlR7TB64pvrfzVfUDkPwuRO2UdGOhXwW98c+oQU=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    (python3.withPackages (pp: with pp; [
+      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 = ''
+    install -m444 -Dt $out/share/fonts/truetype _release/*
+    install -m444 -Dt $out/share/doc            Readme.md
+  '';
+
+  meta = with 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..195c39c0e817
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/mononoki/default.nix
@@ -0,0 +1,23 @@
+{ lib, 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 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..41135122f054
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/montserrat/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "montserrat";
+  version = "7.210";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "JulietaUla";
+  repo = pname;
+  rev = "v${version}";
+  sha256 = "sha256-C6T0Iz1rFC+EsKFJRil2jGTMQ4X7wR80E3eORL5qi0U=";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip 1
+    install -Dm 444 fonts/otf/*.otf -t $out/share/fonts/otf
+    install -Dm 444 fonts/ttf/*.ttf -t $out/share/fonts/ttf
+    install -Dm 444 fonts/webfonts/*.woff -t $out/share/fonts/woff
+    install -Dm 444 fonts/webfonts/*.woff2 -t $out/share/fonts/woff2
+  '';
+
+  meta = with lib; {
+    description = "A geometric sans serif font with extended latin support (Regular, Alternates, Subrayada)";
+    homepage = "https://www.fontspace.com/julieta-ulanovsky/montserrat";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ scolobb jk ];
+  };
+}
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..10a8dc38d954
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/mph-2b-damase/default.nix
@@ -0,0 +1,17 @@
+{ 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 = {
+  };
+}
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..75e8899e664a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/mplus-outline-fonts/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "063a";
+in fetchzip {
+  name = "mplus-${version}";
+
+  url = "mirror://osdn/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 = "1khbkch2r96ppifc93bmy1v047pgciyhfmcjb98ggncp5ix885xz";
+
+  meta = with lib; {
+    description = "M+ Outline Fonts";
+    homepage = "https://mplus-fonts.osdn.jp/about-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..9f4eda63d0fa
--- /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/f297de070f7eba721a47c850e08efc119d3bfbe8/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..c36292eb0014
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/myrica/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub }:
+
+fetchFromGitHub {
+  name = "myrica-2.011.20160403";
+
+  owner = "tomokuni";
+  repo = "Myrica";
+  # commit does not exist on any branch on the target repository
+  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..e23528aefe80
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nafees/default.nix
@@ -0,0 +1,62 @@
+{lib, stdenv, fetchurl, unzip}:
+
+stdenv.mkDerivation {
+  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 = lib.platforms.all;
+    maintainers = with lib.maintainers; [ bergey ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/nahid-fonts/default.nix b/nixpkgs/pkgs/data/fonts/nahid-fonts/default.nix
new file mode 100644
index 000000000000..0e08bebea092
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nahid-fonts/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "nahid-fonts";
+  version = "0.3.0";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "rastikerdar";
+  repo = "nahid-font";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/nahid-fonts {} \;
+  '';
+  sha256 = "0df169sibq14j2mj727sq86c00jm1nz8565v85hkvh4zgz2plb7c";
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/nahid-font";
+    description = "A Persian (Farsi) Font - قلم (فونت) فارسی ناهید";
+    license = licenses.free;
+    platforms = platforms.all;
+    maintainers = [ maintainers.linarcx ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/nanum-gothic-coding/default.nix b/nixpkgs/pkgs/data/fonts/nanum-gothic-coding/default.nix
new file mode 100644
index 000000000000..4785c1386a62
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nanum-gothic-coding/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "VER2.5";
+  fullName = "NanumGothicCoding-2.5";
+
+in fetchzip {
+  name = "nanum-gothic-coding";
+  url = "https://github.com/naver/nanumfont/releases/download/${version}/${fullName}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/NanumGothicCoding
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/NanumGothicCoding
+  '';
+
+  sha256 = "0b3pkhd6xn6393zi0dhj3ah08w1y1ji9fl6584bi0c8lanamf2pc";
+
+  meta = with lib; {
+    description = "A contemporary monospaced sans-serif typeface with a warm touch";
+    homepage = "https://github.com/naver/nanumfont";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ linarcx ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/national-park/default.nix b/nixpkgs/pkgs/data/fonts/national-park/default.nix
new file mode 100644
index 000000000000..8ed251de53d5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/national-park/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchzip }:
+
+let
+  pname = "national-park-typeface";
+  version = "206464";
+in fetchzip {
+  name = "${pname}-${version}";
+  url = "https://files.cargocollective.com/c${version}/NationalPark.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile National\*.otf -d $out/share/fonts/opentype/
+  '';
+
+  sha256 = "044gh4xcasp8i9ny6z4nmns1am2pk5krc4ann2afq35v9bnl2q5d";
+
+  meta = with lib; {
+    description = ''Typeface designed to mimic the national park service
+    signs that are carved using a router bit'';
+    homepage = "https://nationalparktypeface.com/";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/navilu/default.nix b/nixpkgs/pkgs/data/fonts/navilu/default.nix
new file mode 100644
index 000000000000..afd9f85741c3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/navilu/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitHub, fontforge }:
+
+stdenv.mkDerivation rec {
+  pname = "navilu-font";
+  version = "1.2";
+
+  src = fetchFromGitHub {
+    owner = "aravindavk";
+    repo = "Navilu";
+    rev = "v${version}";
+    sha256 = "1vm6n04siaa0zf6jzp5s2gzgr2qxs3vdnmcmg4dcy07py2kd2fla";
+  };
+
+  nativeBuildInputs = [ fontforge ];
+
+  dontConfigure = true;
+
+  preBuild = "patchShebangs generate.pe";
+
+  installPhase = "install -Dm444 -t $out/share/fonts/truetype/ Navilu.ttf";
+
+  meta = with lib; src.meta // {
+    description = "A Kannada handwriting font";
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ehmry ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix b/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix
new file mode 100644
index 000000000000..ceb0cb8b03af
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix
@@ -0,0 +1,75 @@
+{ stdenv
+, fetchurl
+, lib
+, unzip
+# To select only certain fonts, put a list of strings to `fonts`: every key in
+# ./shas.nix is an optional font
+, fonts ? []
+# Whether to enable Windows font variants, their internal font name is limited
+# to 31 characters
+, enableWindowsFonts ? false
+}:
+
+let
+  # both of these files are generated via ./update.sh
+  version = import ./version.nix;
+  fontsShas = import ./shas.nix;
+  knownFonts = builtins.attrNames fontsShas;
+  selectedFonts = if (fonts == []) then
+    knownFonts
+  else
+    let unknown = lib.subtractLists knownFonts fonts; in
+    if (unknown != []) then
+      throw "Unknown font(s): ${lib.concatStringsSep " " unknown}"
+    else
+      fonts
+  ;
+  selectedFontsShas = lib.attrsets.genAttrs selectedFonts (
+    fName:
+    fontsShas."${fName}"
+  );
+  srcs = lib.attrsets.mapAttrsToList (
+    fName:
+    fSha:
+    (fetchurl {
+      url = "https://github.com/ryanoasis/nerd-fonts/releases/download/v${version}/${fName}.zip";
+      sha256 = fSha;
+    })
+  ) selectedFontsShas;
+in
+
+stdenv.mkDerivation rec {
+  inherit version;
+  inherit srcs;
+  pname = "nerdfonts";
+  nativeBuildInputs = [
+    unzip
+  ];
+  sourceRoot = ".";
+  buildPhase = ''
+    echo "selected fonts are ${toString selectedFonts}"
+    ls *.otf *.ttf
+  '';
+  installPhase = ''
+    find -name \*.otf -exec mkdir -p $out/share/fonts/opentype/NerdFonts \; -exec mv {} $out/share/fonts/opentype/NerdFonts \;
+    find -name \*.ttf -exec mkdir -p $out/share/fonts/truetype/NerdFonts \; -exec mv {} $out/share/fonts/truetype/NerdFonts \;
+    ${lib.optionalString (! enableWindowsFonts) ''
+      rm -rfv $out/share/fonts/opentype/NerdFonts/*Windows\ Compatible.*
+      rm -rfv $out/share/fonts/truetype/NerdFonts/*Windows\ Compatible.*
+    ''}
+  '';
+
+  meta = with lib; {
+    description = "Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts";
+    longDescription = ''
+      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://nerdfonts.com/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar ];
+    hydraPlatforms = []; # 'Output limit exceeded' on Hydra
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/nerdfonts/shas.nix b/nixpkgs/pkgs/data/fonts/nerdfonts/shas.nix
new file mode 100644
index 000000000000..4194e57532dc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nerdfonts/shas.nix
@@ -0,0 +1,52 @@
+{
+  "3270" = "1k71zsijasn6013c58pgf52xw3h9gkqdjlsa177wlldz8qxb16xk";
+  "Agave" = "0jgm31wvmckb71qc9l0nj3sg4zq2vw67piaxr6h8zkakcl2mysha";
+  "AnonymousPro" = "0s3n8rrr9kfqd8gxjxksp7p8bc3q7qhcrpyq8090dksvmbcks6xm";
+  "Arimo" = "1k7ldfx6dmy9sigzsvi9qwms510nddw634g8xrn0vwnw6d7infk8";
+  "AurulentSansMono" = "0q35948dai8qc7gfvas8sfn5s7b64b2y4f9psz6xslrv7nw8lcaz";
+  "BigBlueTerminal" = "0ymw2m2xjsx77brm79aws26icwcf2a1d7q3p3ipsd25g4cgqcd2v";
+  "BitstreamVeraSansMono" = "1n2298g1fn8jb1fbvw74289n7nnmjddn7zxh88gnl58pwz8ra5dk";
+  "CascadiaCode" = "1q4l5a7b7ab6h1bs5pq734r9pp3fw9b59gdk1g4hyn2w61h0kdcj";
+  "CodeNewRoman" = "1mgxawj3pblaxy0y9w0hzlfgipiskmc5p028m82zh1wyaplmh2pa";
+  "Cousine" = "0jr0gxrsba3dhchp53vd67qq2pgfnvmvcwbv99l1700p539bcvy1";
+  "DaddyTimeMono" = "1n6vwykz084fxgylayizxc210f4ms2ijfws5b2hvl2kqmy2q6jk4";
+  "DejaVuSansMono" = "03qfrkzmhnn8dwgx4qhiigbz4dxs3957hydlr0j8vxl89j8c9g1z";
+  "DroidSansMono" = "187cbcn4a2whrl8dag1ix6j1v3jgv5z2jdfw1w1z9llm1znvpp7z";
+  "FantasqueSansMono" = "147h15k3ni0w6chxkrah2fk4klhdhq8y1d3nbx763h9ia3mnggv6";
+  "FiraCode" = "1rx7zrkq0584k6hrh6dx30xrnz5nq379xyw73pfd4gxaxnh9mpi1";
+  "FiraMono" = "0f2daidakhmbbd5ph6985rghjmr87k7xzmmmf9n851dxvfyndsgl";
+  "Go-Mono" = "1bzh3pgyn87j27kw7x5h02rqzhh21pm6d0zhxd5iqi5qq5mj0nvm";
+  "Gohu" = "1rlkprjg9nz1s69s4ancmxii6l907qachl116gngbj8gjv3g1x21";
+  "Hack" = "052mav170lwxkgzg3hij4zvnmfwyrddn45gn07a33gpzzicjx1bh";
+  "Hasklig" = "0vyb0z0m04pn8477d6a711vjwb3nhvpn5fxfwnz37av9jmz3i9vk";
+  "HeavyData" = "065rhq7z52dp211inw3vszwc5zrd5s0w1kmgnrh68bxc0js0xqyb";
+  "Hermit" = "1ij9pjr517jxk3dlsrzmnqivsfq5i5ai6pd8hznmrkb3360cn7sm";
+  "iA-Writer" = "0clksrxw6xcv5c1pbd8rl2rc3r15iak1qv8v6bn0j2mccjcss64z";
+  "IBMPlexMono" = "0xkfkpnkkrvjfiv624l7lpmfji107y7645w6ah47ijyg47yxkmsg";
+  "Inconsolata" = "14gbwc0k3d1j496w6pv9kry1pglswzd0armsdb0g1mqgzfdf1ci1";
+  "InconsolataGo" = "0c6yhx242d82dalyjas42qniy0jagqs47cfsfarwmzar6zg3lj5m";
+  "InconsolataLGC" = "1746nl1rz4hscfgbmd8642wq3z1wizvfjb50y3yyjsc1ixc1f0pd";
+  "Iosevka" = "1qqd4xh98vxb99rh2a2qv9gjclilhaw84pyqdpbx225qhvw9xlkb";
+  "JetBrainsMono" = "1kc8fyk1aczxkmn8dzv1gy6xfi2jywgahd8np576v2dn8kx16844";
+  "Lekton" = "0mny5j9bns9104wg2wmabdw0sl80c7i3dzp4j5mxh8jybx929d3i";
+  "LiberationMono" = "19bpm893assmmnfvlvhz8df54c9pr2kfv2b6anlr4g64hliy1c1h";
+  "Meslo" = "08zm8nqskhrqkw80wl460zbvsrvs5fp2njlcv867phpqna9hyqzh";
+  "Monofur" = "0f5khqgdxi4g0qm5n48r1sk4pd2wlk987d8yxwks2mcsqa6fraqj";
+  "Monoid" = "0m7i82jfiwqmi9lhv8lmq2n723ihn0isxi5559478qbdy5b104dd";
+  "Mononoki" = "074avnvfl260pcrli4h5bc55yqr4mgd54paf80qcnh101qsz325w";
+  "MPlus" = "03mrfhzfmmqjfl7fa81v1ih3fdr3q2k439w6pjbd2zvl806l92yq";
+  "Noto" = "1jmycnf4fflijs730vbyj258kajkxv0j42655a7hvpapym7z940z";
+  "OpenDyslexic" = "0ma62xg6cy8l4chfhqvm64zzhx3mrzdj6gxwnvx8plqy3j4dn3by";
+  "Overpass" = "1xs2z3ch7dd32zb5l1axzd78hyskimqglcjcrb7n4ic85qm55xxm";
+  "ProFont" = "0ck4rprj0w29pv3qm4n1zg6cdq76m3kaag0ka4q1qqcnhga67zr7";
+  "ProggyClean" = "0sk3gk6zj61nbv94xv6z8y67sr5blg9n079d8srv7bbw9dv96i8g";
+  "RobotoMono" = "1nhbr9zc0cz81pdj95rrb56bwdkmmbqmk429nf60j35pkcqmvk8x";
+  "ShareTechMono" = "1h79myy0my3jyrvqcrgfdsjqrwwm5fdy2nmzp3ynyi769p7z1dwr";
+  "SourceCodePro" = "06cnsdmm84kzjlwwcmhwpj7pyfqinqpmww1c13i21l611fg6hwd7";
+  "SpaceMono" = "1xmmf2gdsa3ycl3pgpr3zr919qh702wjvc5k4hsdivvs2lzfdgmk";
+  "Terminus" = "0g2ybs225fwxmvwfnanc32jc2lfnag3agmliv1vrb5mxyqzm53gj";
+  "Tinos" = "077n4k6yh4qbirfkl02zqn3057kymspr10zcbfkf4ldvifa36pjd";
+  "Ubuntu" = "1lzdrgb8vk5dwicxhvkgbain5phf88g3zgv5ya2ihh052xsl3qih";
+  "UbuntuMono" = "0wa8ri7f3g8vwd194q812qh8nzplnmhl5ak0yhgilmm44s46ad0h";
+  "VictorMono" = "18z92kwggfqwrd5m09yda55hcb4b159278lps6f9hr8icwki6v9q";
+}
diff --git a/nixpkgs/pkgs/data/fonts/nerdfonts/update.sh b/nixpkgs/pkgs/data/fonts/nerdfonts/update.sh
new file mode 100755
index 000000000000..b4c4aaa7cf2b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nerdfonts/update.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p nix-prefetch jq
+
+latest_release=$(curl --silent https://api.github.com/repos/ryanoasis/nerd-fonts/releases/latest)
+version=$(jq -r '.tag_name' <<<"$latest_release")
+
+dirname="$(dirname "$0")"
+echo \""${version#v}"\" >"$dirname/version.nix"
+
+echo Using version "$version"
+
+printf '{\n' > "$dirname/shas.nix"
+
+while
+  read -r name
+  read -r url
+do
+    printf '  "%s" = "%s";\n' "${name%.*}" "$(nix-prefetch-url "$url")" >>"$dirname/shas.nix"
+done < <(jq -r '.assets[] | .name, .browser_download_url' <<<"$latest_release")
+
+printf '}\n' >> "$dirname/shas.nix"
diff --git a/nixpkgs/pkgs/data/fonts/nerdfonts/version.nix b/nixpkgs/pkgs/data/fonts/nerdfonts/version.nix
new file mode 100644
index 000000000000..8320adbf0258
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nerdfonts/version.nix
@@ -0,0 +1 @@
+"2.1.0"
diff --git a/nixpkgs/pkgs/data/fonts/nika-fonts/default.nix b/nixpkgs/pkgs/data/fonts/nika-fonts/default.nix
new file mode 100644
index 000000000000..5db9bb2a9518
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nika-fonts/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "nika-fonts";
+  version = "1.0.0";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "font-store";
+  repo = "NikaFont";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/nika-fonts {} \;
+  '';
+  sha256 = "1x34b2dqn1dymi1vmj5vrjcy2z8s0f3rr6cniyrz85plvid6x40i";
+
+  meta = with lib; {
+    homepage = "https://github.com/font-store/NikaFont/";
+    description = "Persian/Arabic Open Source Font";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.linarcx ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/norwester/default.nix b/nixpkgs/pkgs/data/fonts/norwester/default.nix
new file mode 100644
index 000000000000..d4e4cf1ee0fe
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/norwester/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.2";
+  pname = "norwester";
+in fetchzip {
+  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 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..a2f96a5e980f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
@@ -0,0 +1,190 @@
+{ stdenv
+, stdenvNoCC
+, lib
+, fetchFromGitHub
+, fetchurl
+, fetchzip
+, cairo
+, python3
+, pkg-config
+, pngquant
+, which
+, imagemagick
+, zopfli
+}:
+
+let
+  mkNoto = { pname, weights }:
+    stdenvNoCC.mkDerivation {
+      inherit pname;
+      version = "2020-01-23";
+
+      src = fetchFromGitHub {
+        owner = "googlefonts";
+        repo = "noto-fonts";
+        rev = "f4726a2ec36169abd02a6d8abe67c8ff0236f6d8";
+        sha256 = "0zc1r7zph62qmvzxqfflsprazjf6x1qnwc2ma27kyzh6v36gaykw";
+      };
+
+      installPhase = ''
+        # We copy in reverse preference order -- unhinted first, then
+        # hinted -- to get the "best" version of each font while
+        # maintaining maximum coverage.
+        #
+        # TODO: install OpenType, variable versions?
+        local out_ttf=$out/share/fonts/truetype/noto
+        install -m444 -Dt $out_ttf phaseIII_only/unhinted/ttf/*/*-${weights}.ttf
+        install -m444 -Dt $out_ttf phaseIII_only/hinted/ttf/*/*-${weights}.ttf
+        install -m444 -Dt $out_ttf unhinted/*/*-${weights}.ttf
+        install -m444 -Dt $out_ttf hinted/*/*-${weights}.ttf
+      '';
+
+      meta = with lib; {
+        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.ofl;
+        platforms = platforms.all;
+        maintainers = with maintainers; [ mathnerd314 emily ];
+      };
+    };
+in
+
+{
+  noto-fonts = mkNoto {
+    pname = "noto-fonts";
+    weights = "{Regular,Bold,Light,Italic,BoldItalic,LightItalic}";
+  };
+
+  noto-fonts-extra = mkNoto {
+    pname = "noto-fonts-extra";
+    weights = "{Black,Condensed,Extra,Medium,Semi,Thin}*";
+  };
+
+  noto-fonts-cjk = stdenvNoCC.mkDerivation rec {
+    pname = "noto-fonts-cjk";
+    version = "2.001";
+
+    src = fetchzip {
+      url = "https://raw.githubusercontent.com/googlefonts/noto-cjk/NotoSansV${version}/NotoSansCJK.ttc.zip";
+      # __MACOSX...
+      stripRoot = false;
+      sha256 = "0ik4z2b15i0pghskgfm3adzb0h35fr4gyzvz3bq49hhkhn9h85vi";
+    };
+
+    buildCommand = ''
+      install -m444 -Dt $out/share/fonts/opentype/noto-cjk $src/*.ttc
+    '';
+
+    meta = with lib; {
+      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 emily ];
+    };
+  };
+
+  noto-fonts-emoji = let
+    version = "2020-09-16-unicode13_1";
+    emojiPythonEnv =
+      python3.withPackages (p: with p; [ fonttools nototools ]);
+  in stdenv.mkDerivation {
+    pname = "noto-fonts-emoji";
+    version = builtins.replaceStrings [ "_" ] [ "." ] version;
+
+    src = fetchFromGitHub {
+      owner = "googlefonts";
+      repo = "noto-emoji";
+      rev = "v${version}";
+      sha256 = "0659336dp0l2nkac153jpcb9yvp0p3dx1crcyxjd14i8cqkfi2hh";
+    };
+
+    nativeBuildInputs = [
+      cairo
+      imagemagick
+      zopfli
+      pngquant
+      which
+      pkg-config
+      emojiPythonEnv
+    ];
+
+    postPatch = ''
+      patchShebangs *.py
+      patchShebangs third_party/color_emoji/*.py
+      # remove check for virtualenv, since we handle
+      # python requirements using python.withPackages
+      sed -i '/ifndef VIRTUAL_ENV/,+2d' Makefile
+
+      # Make the build verbose so it won't get culled by Hydra thinking that
+      # it somehow got stuck doing nothing.
+      sed -i 's;\t@;\t;' Makefile
+    '';
+
+    enableParallelBuilding = true;
+
+    installPhase = ''
+      mkdir -p $out/share/fonts/noto
+      cp NotoColorEmoji.ttf fonts/NotoEmoji-Regular.ttf $out/share/fonts/noto
+    '';
+
+    meta = with lib; {
+      inherit version;
+      description = "Color and Black-and-White emoji fonts";
+      homepage = "https://github.com/googlefonts/noto-emoji";
+      license = with licenses; [ ofl asl20 ];
+      platforms = platforms.all;
+      maintainers = with maintainers; [ mathnerd314 ];
+    };
+  };
+
+  noto-fonts-emoji-blob-bin = stdenv.mkDerivation rec {
+    pname = "noto-fonts-emoji-blob-bin";
+    version = "2019-06-14-Emoji-12";
+
+    src = fetchurl {
+      url = "https://github.com/C1710/blobmoji/releases/download/v${version}/Blobmoji.ttf";
+      sha256 = "0snvymglmvpnfgsriw2cnnqm0f4llav0jvzir6mpd17mqqhhabbh";
+    };
+
+    dontUnpack = true;
+
+    installPhase = ''
+      install -D $src $out/share/fonts/blobmoji/Blobmoji.ttf
+    '';
+
+    meta = with lib; {
+      description = "Noto Emoji with extended Blob support";
+      homepage = "https://github.com/C1710/blobmoji";
+      license = with licenses; [ ofl asl20 ];
+      platforms = platforms.all;
+      maintainers = with maintainers; [ rileyinman ];
+    };
+  };
+}
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..c43ff3a313f2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix
@@ -0,0 +1,78 @@
+{ fetchFromGitHub, lib, buildPythonPackage, pythonOlder
+, afdko, appdirs, attrs, black, booleanoperations, brotlipy, click
+, defcon, fontmath, fontparts, fontpens, fonttools, lxml
+, mutatormath, pathspec, psautohint, pyclipper, pytz, regex, scour
+, toml, typed-ast, ufonormalizer, ufoprocessor, unicodedata2, zopfli
+, pillow, six, bash, setuptools_scm }:
+
+buildPythonPackage rec {
+  pname = "nototools";
+  version = "0.2.13";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "googlefonts";
+    repo = "nototools";
+    rev = "v${version}";
+    sha256 = "0ggp65xgkf9y7jamncm65lkm84wapsa47abf133pcb702875v8jz";
+  };
+
+  postPatch = ''
+    sed -i 's/use_scm_version=.*,/version="${version}",/' setup.py
+  '';
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [
+    afdko
+    appdirs
+    attrs
+    black
+    booleanoperations
+    brotlipy
+    click
+    defcon
+    fontmath
+    fontparts
+    fontpens
+    fonttools
+    lxml
+    mutatormath
+    pathspec
+    psautohint
+    pyclipper
+    pytz
+    regex
+    scour
+    toml
+    typed-ast
+    ufonormalizer
+    ufoprocessor
+    unicodedata2
+    zopfli
+  ];
+
+  checkInputs = [
+    pillow
+    six
+    bash
+  ];
+
+  checkPhase = ''
+    patchShebangs tests/
+    cd tests
+    rm gpos_diff_test.py # needs ttxn?
+    ./run_tests
+  '';
+
+  postInstall = ''
+    cp -r third_party $out
+  '';
+
+  meta = {
+    description = "Noto fonts support tools and scripts plus web site generation";
+    license = lib.licenses.asl20;
+    homepage = "https://github.com/googlefonts/nototools";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/office-code-pro/default.nix b/nixpkgs/pkgs/data/fonts/office-code-pro/default.nix
new file mode 100644
index 000000000000..0513baf48680
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/office-code-pro/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "office-code-pro";
+  version = "1.004";
+in fetchFromGitHub rec {
+  name = "${pname}-${version}";
+
+  owner = "nathco";
+  repo = "Office-Code-Pro";
+  rev = version;
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -m644 -Dt $out/share/doc/${name} README.md
+    install -m444 -Dt $out/share/fonts/opentype 'Fonts/Office Code Pro/OTF/'*.otf 'Fonts/Office Code Pro D/OTF/'*.otf
+  '';
+  sha256 = "1bagwcaicn6q8qkqazz6wb3x30y4apmkga0mkv8fh6890hfhywr9";
+
+  meta = with lib; {
+    description = "A customized version of Source Code Pro";
+    longDescription = ''
+      Office Code Pro is a customized version of Source Code Pro, the monospaced
+      sans serif originally created by Paul D. Hunt for Adobe Systems
+      Incorporated. The customizations were made specifically for text editors
+      and coding environments, but are still very usable in other applications.
+    '';
+    homepage = "https://github.com/nathco/Office-Code-Pro";
+    license = licenses.ofl;
+    maintainers = [ maintainers.AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/oldsindhi/default.nix b/nixpkgs/pkgs/data/fonts/oldsindhi/default.nix
new file mode 100644
index 000000000000..e0e783fd80a5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/oldsindhi/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.0";
+in fetchzip rec {
+  name = "oldsindhi-${version}";
+
+  url = "https://github.com/MihailJP/oldsindhi/releases/download/v${version}/OldSindhi-${version}.tar.xz";
+
+  postFetch = ''
+    tar -xJf $downloadedFile --strip-components=1
+    install -m444 -Dt $out/share/fonts/truetype *.ttf
+    install -m444 -Dt $out/share/doc/${name} README *.txt
+  '';
+
+  sha256 = "03c483vbrwz2fpdfbys42fmik9788zxfmjmc4fgq4s2d0mraa0j1";
+
+  meta = with lib; {
+    homepage = "https://github.com/MihailJP/oldsindhi";
+    description = "Free Sindhi Khudabadi font";
+    maintainers = with maintainers; [ mathnerd314 ];
+    license = with licenses; [mit ofl];
+    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..5284ec7e119f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/oldstandard/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "2.2";
+in fetchzip rec {
+  name = "oldstandard-${version}";
+
+  url = "https://github.com/akryukov/oldstand/releases/download/v${version}/${name}.otf.zip";
+
+  postFetch = ''
+    unzip $downloadedFile
+    install -m444 -Dt $out/share/fonts/opentype *.otf
+    install -m444 -Dt $out/share/doc/${name}    FONTLOG.txt
+  '';
+
+  sha256 = "1qwfsyp51grr56jcnkkmnrnl3r20pmhp9zh9g88kp64m026cah6n";
+
+  meta = with 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..f22ce9f882f8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/open-dyslexic/default.nix
@@ -0,0 +1,25 @@
+{ lib, 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 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..ecca50537f1d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/open-sans/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchFromGitLab }:
+
+let
+  pname = "open-sans";
+  version = "1.11";
+in fetchFromGitLab {
+  name = "${pname}-${version}";
+
+  domain = "salsa.debian.org";
+  owner = "fonts-team";
+  repo = "fonts-open-sans";
+  rev = "debian/1.11-1";
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+  '';
+  sha256 = "146ginwx18z624z582lrnhil8jvi9bjg6843265bgxxrfmf75vhp";
+
+  meta = with 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..f4a0a9600a15
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/orbitron/default.nix
@@ -0,0 +1,45 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "20110526";
+in fetchFromGitHub {
+  name = "orbitron-${version}";
+
+  owner = "theleagueof";
+  repo = "orbitron";
+  rev = "13e6a52";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -m444 -Dt $out/share/fonts/opentype/orbitron *.otf
+    install -m444 -Dt $out/share/fonts/ttf/orbitron      *.ttf
+  '';
+
+  sha256 = "1y9yzvpqs2v3ssnqk2iiglrh8amgsscnk8vmfgnqgqi9f4dhdvnv";
+
+  meta = with 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..1d0cf04d7569
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/overpass/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchzip }:
+
+let
+  version = "3.0.4";
+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 = "13b4yam0nycclccxidzj2fa3nwms5qji7gfkixdnl4ybf0f56b64";
+
+  meta = with lib; {
+    homepage = "https://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..e34e49d98147
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/oxygenfonts/default.nix
@@ -0,0 +1,48 @@
+{ lib, fetchFromGitHub }:
+
+fetchFromGitHub {
+  name = "oxygenfonts-20160824";
+
+  owner = "vernnobile";
+  repo = "oxygenFont";
+  rev = "62db0ebe3488c936406685485071a54e3d18473b";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    mkdir -p $out/share/fonts/truetype
+    cp */Oxygen-Sans.ttf */Oxygen-Sans-Bold.ttf */OxygenMono-Regular.ttf $out/share/fonts/truetype
+  '';
+
+  sha256 = "17m86p1s7a7d90zqjsr46h5bpmas4vxsgj7kd0j5c8cb7lw92jyf";
+
+  meta = with 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/parastoo-fonts/default.nix b/nixpkgs/pkgs/data/fonts/parastoo-fonts/default.nix
new file mode 100644
index 000000000000..7c713576a21c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/parastoo-fonts/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "parastoo-fonts";
+  version = "1.0.0-alpha5";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "rastikerdar";
+  repo = "parastoo-font";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/parastoo-fonts {} \;
+  '';
+  sha256 = "10jbii6rskcy4akjl5yfcqv4mfwk3nqnx36l6sbxks43va9l04f4";
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/parastoo-font";
+    description = "A Persian (Farsi) Font - فونت ( قلم ) فارسی پرستو";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.linarcx ];
+  };
+}
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..4dd6093922cc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix
@@ -0,0 +1,32 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "paratype-pt-mono";
+
+  urls = [
+    "https://company.paratype.com/system/attachments/631/original/ptmono.zip"
+    "http://rus.paratype.ru/system/attachments/631/original/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 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..8b47dd9ee1fb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix
@@ -0,0 +1,32 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "paratype-pt-sans";
+
+  urls = [
+    "https://company.paratype.com/system/attachments/629/original/ptsans.zip"
+    "http://rus.paratype.ru/system/attachments/629/original/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 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..a4142f757fcc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix
@@ -0,0 +1,32 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "paratype-pt-serif";
+
+  urls = [
+    "https://company.paratype.com/system/attachments/634/original/ptserif.zip"
+    "http://rus.paratype.ru/system/attachments/634/original/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 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..f0bdbc3ea004
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/pecita/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchurl }:
+
+let
+  version = "5.4";
+in
+
+fetchurl {
+  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 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..784f9d2573ef
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/penna/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "10";
+  pname = "penna";
+in
+
+fetchzip {
+  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 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..50dfb5020354
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/poly/default.nix
@@ -0,0 +1,50 @@
+{ lib, 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 = ".";
+
+  dontUnpack = 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 = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ relrod ];
+  };
+}
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..3a2ae92c1e5a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/powerline-fonts/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchFromGitHub }:
+
+fetchFromGitHub {
+  name = "powerline-fonts-2018-11-11";
+
+  owner = "powerline";
+  repo = "fonts";
+  rev = "e80e3eba9091dac0655a0a77472e10f53e754bb0";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.otf'    -exec install -Dt $out/share/fonts/opentype {} \;
+    find . -name '*.ttf'    -exec install -Dt $out/share/fonts/truetype {} \;
+    find . -name '*.bdf'    -exec install -Dt $out/share/fonts/bdf      {} \;
+    find . -name '*.pcf.gz' -exec install -Dt $out/share/fonts/pcf      {} \;
+    find . -name '*.psf.gz' -exec install -Dt $out/share/consolefonts   {} \;
+  '';
+
+  sha256 = "0r8p4z3db17f5p8jr7sv80nglmjxhg83ncfvwg1dszldswr0dhvr";
+
+  meta = with 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/powerline-symbols/default.nix b/nixpkgs/pkgs/data/fonts/powerline-symbols/default.nix
new file mode 100644
index 000000000000..69e3bb59df69
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/powerline-symbols/default.nix
@@ -0,0 +1,18 @@
+{ lib, runCommandNoCC, powerline }:
+
+let
+  inherit (powerline) version;
+in runCommandNoCC "powerline-symbols-${version}" {
+  meta = {
+    inherit (powerline.meta) license;
+    priority = (powerline.meta.priority or 0) + 1;
+    maintainers = with lib.maintainers; [ midchildan ];
+  };
+} ''
+  install -Dm644 \
+    ${powerline.src}/font/PowerlineSymbols.otf \
+    $out/share/fonts/OTF/PowerlineSymbols.otf
+  install -Dm644 \
+    ${powerline.src}/font/10-powerline-symbols.conf \
+    $out/etc/fonts/conf.d/10-powerline-symbols.conf
+''
diff --git a/nixpkgs/pkgs/data/fonts/profont/default.nix b/nixpkgs/pkgs/data/fonts/profont/default.nix
new file mode 100644
index 000000000000..3570bf7bf91a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/profont/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv, fetchzip, mkfontscale }:
+
+stdenv.mkDerivation {
+  pname = "profont";
+  version = "2019-11";
+
+  # Note: stripRoot doesn't work because the archive
+  # constains the metadata directory `__MACOSX`.
+  src = fetchzip {
+    url = "https://tobiasjung.name/downloadfile.php?file=profont-x11.zip";
+    sha256 = "12dbm87wvcpmn7nzgzwlk45cybp091diara8blqm6129ps27z6kb";
+    stripRoot = false;
+  } + /profont-x11;
+
+  srcOtb = fetchzip {
+    url = "https://tobiasjung.name/downloadfile.php?file=profont-otb.zip";
+    sha256 = "18rfhfqrsj3510by0w1a7ak5as6r2cxh8xv02xc1y30mfa6g24x6";
+    stripRoot = false;
+  } + /profont-otb;
+
+  dontBuild = true;
+
+  nativeBuildInputs = [ mkfontscale ];
+
+  installPhase = ''
+    mkdir -p "$out/share/fonts/misc"
+    for f in *.pcf; do
+      gzip -n -9 -c "$f" > "$out/share/fonts/misc/$f.gz"
+    done
+    install -D -m 644 LICENSE -t "$out/share/doc/$pname"
+    install -D -m 644 "$srcOtb/profontn.otb" -t $out/share/fonts/misc
+    mkfontdir "$out/share/fonts/misc"
+  '';
+
+  meta = with lib; {
+    homepage = "https://tobiasjung.name/profont/";
+    description = "A monospaced font created to be a most readable font for programming";
+    maintainers = with maintainers; [ myrl ];
+    license = licenses.mit;
+    platforms = platforms.all;
+  };
+
+}
diff --git a/nixpkgs/pkgs/data/fonts/proggyfonts/default.nix b/nixpkgs/pkgs/data/fonts/proggyfonts/default.nix
new file mode 100644
index 000000000000..81ecb7354095
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/proggyfonts/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchurl, mkfontscale }:
+
+stdenv.mkDerivation {
+  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 = [ mkfontscale ];
+
+  installPhase =
+    ''
+      # compress pcf fonts
+      mkdir -p $out/share/fonts/misc
+      rm Speedy.pcf # duplicated as Speedy11.pcf
+      for f in *.pcf; do
+        gzip -n -9 -c "$f" > $out/share/fonts/misc/"$f".gz
+      done
+
+      install -D -m 644 *.bdf -t "$out/share/fonts/misc"
+      install -D -m 644 *.ttf -t "$out/share/fonts/truetype"
+      install -D -m 644 Licence.txt -t "$out/share/doc/$name"
+
+      mkfontscale "$out/share/fonts/truetype"
+      mkfontdir   "$out/share/fonts/misc"
+    '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1x196rp3wqjd7m57bgp5kfy5jmj97qncxi1vwibs925ji7dqzfgf";
+
+  meta = with 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/public-sans/default.nix b/nixpkgs/pkgs/data/fonts/public-sans/default.nix
new file mode 100644
index 000000000000..7d7a81ec7e73
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/public-sans/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.008";
+in fetchzip {
+  name = "public-sans-${version}";
+
+  url = "https://github.com/uswds/public-sans/releases/download/v${version}/public-sans-v${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile binaries/otf/\*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile binaries/variable/\*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile binaries/webfonts/\*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile binaries/webfonts/\*.woff -d $out/share/fonts/woff
+    unzip -j $downloadedFile binaries/webfonts/\*.woff2 -d $out/share/fonts/woff2
+  '';
+
+  sha256 = "1s4xmliri3r1gcn1ws3wa6davj6giliqjdbcv0bh9ryg3dfpjz74";
+
+  meta = with lib; {
+    description = "A strong, neutral, principles-driven, open source typeface for text or display";
+    homepage = "https://public-sans.digital.gov/";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ dtzWill ];
+    platforms = platforms.all;
+  };
+}
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..ed0411ceb9f6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/quattrocento-sans/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "2.0";
+in fetchzip rec {
+  name = "quattrocento-sans-${version}";
+
+  url = "http://web.archive.org/web/20170709124317/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 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..3d11321cd4b2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/quattrocento/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.1";
+in fetchzip rec {
+  name = "quattrocento-${version}";
+
+  url = "http://web.archive.org/web/20170707001804/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 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..ddded71a6fa2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/raleway/default.nix
@@ -0,0 +1,42 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "2016-08-30";
+in fetchFromGitHub {
+  name = "raleway-${version}";
+
+  owner = "impallari";
+  repo = "Raleway";
+  rev = "fa27f47b087fc093c6ae11cfdeb3999ac602929a";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name "*-Original.otf" -exec install -Dt $out/share/fonts/opentype {} \;
+    cp *.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 = lib.licenses.ofl;
+
+    maintainers = with lib.maintainers; [ Profpatsch ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/recursive/default.nix b/nixpkgs/pkgs/data/fonts/recursive/default.nix
new file mode 100644
index 000000000000..88c80574e8fc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/recursive/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.077";
+in
+fetchzip {
+  name = "recursive-${version}";
+
+  url = "https://github.com/arrowtype/recursive/releases/download/v${version}/ArrowType-Recursive-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  sha256 = "sha256-deztulQ33TIMevEQOP5OS8tmf6UjXT8IiVpRjkdismY=";
+
+  meta = with lib; {
+    homepage = "https://recursive.design/";
+    description = "A variable font family for code & UI";
+    license = licenses.ofl;
+    maintainers = [ maintainers.eadwu ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/redhat-official/default.nix b/nixpkgs/pkgs/data/fonts/redhat-official/default.nix
new file mode 100644
index 000000000000..37ca9db9fa0b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/redhat-official/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchFromGitHub }:
+let
+  version = "2.3.2";
+in
+fetchFromGitHub {
+  name = "redhat-official-${version}";
+
+  owner = "RedHatOfficial";
+  repo = "RedHatFont";
+  rev = version;
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -m444 -Dt $out/share/fonts/opentype OTF/*.otf
+    install -m444 -Dt $out/share/fonts/truetype TTF/*.ttf
+  '';
+
+  sha256 = "1afvxmgif61hb17g8inmxvq30vkzwh30mydlqpf0zgvaaz8qdwmv";
+
+  meta = with lib; {
+    homepage = "https://github.com/RedHatOfficial/RedHatFont";
+    description = "Red Hat's Open Source Fonts - Red Hat Display and Red Hat Text";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/rhodium-libre/default.nix b/nixpkgs/pkgs/data/fonts/rhodium-libre/default.nix
new file mode 100644
index 000000000000..fc89d6525922
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/rhodium-libre/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "RhodiumLibre";
+  version = "1.2.0";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "DunwichType";
+  repo = pname;
+  rev = version;
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -Dm444 -t $out/share/fonts/opentype/ RhodiumLibre-Regular.otf
+    install -Dm444 -t $out/share/fonts/truetype/ RhodiumLibre-Regular.ttf
+  '';
+
+  sha256 = "04ax6bri5vsji465806p8d7zbdf12r5bpvcm9nb8isfqm81ggj0r";
+
+  meta = with lib; {
+    description = "F/OSS/Libre font for Latin and Devanagari";
+    homepage = "https://github.com/DunwichType/RhodiumLibre";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ricty/default.nix b/nixpkgs/pkgs/data/fonts/ricty/default.nix
new file mode 100644
index 000000000000..435cdb7d163b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ricty/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchurl, google-fonts, migu, fontforge, which }:
+
+stdenv.mkDerivation rec {
+  pname = "ricty";
+  version = "4.1.1";
+
+  src = fetchurl {
+      url = "http://www.yusa.lab.uec.ac.jp/~yusa/ricty/ricty_generator-${version}.sh";
+      sha256 = "03fngb8f5hl7ifigdm5yljhs4z2x80cq8y8kna86d07ghknhzgw6";
+  };
+
+  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 lib; {
+    description = "A high-quality Japanese font based on Inconsolata and Migu 1M";
+    homepage = "http://www.yusa.lab.uec.ac.jp/~yusa/ricty.html";
+    license = licenses.unfree;
+    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..ceed83070040
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/rictydiminished-with-firacode/default.nix
@@ -0,0 +1,48 @@
+{ lib, stdenv, fetchgit, fontforge, python3 }:
+
+stdenv.mkDerivation rec {
+  pname = "rictydiminished-with-firacode";
+  version = "1.2.2";
+
+  src = fetchgit {
+    url = "https://github.com/hakatashi/RictyDiminished-with-FiraCode.git";
+    rev = version;
+    sha256 = "0khnbp1y5xrd77gfb2b19mzi3ll07im3d0rlbciwbq0cn347f25p";
+    fetchSubmodules = true;
+  };
+
+  postPatch = ''
+    # Make builds more reproducible
+    substituteInPlace apply-feature.py --replace \
+      'ricty = ttLib.TTFont(options.in_font)' \
+      'ricty = ttLib.TTFont(options.in_font, recalcTimestamp=False)'
+    substituteInPlace build.py --replace \
+      'datetime.date.today()' \
+      'datetime.date.fromtimestamp(float(os.environ["SOURCE_DATE_EPOCH"]))'
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/rictydiminished-with-firacode *.ttf
+
+    runHook postInstall
+  '';
+
+  nativeBuildInputs = [
+    (python3.withPackages (ps: [
+      ps.jinja2
+      ps.fonttools
+      ps.fontforge
+    ]))
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/hakatashi/RictyDiminished-with-FiraCode";
+    description = "The best Japanese programming font meets the awesome ligatures of Firacode";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ mt-caret ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/roboto-mono/default.nix b/nixpkgs/pkgs/data/fonts/roboto-mono/default.nix
new file mode 100644
index 000000000000..fd3372123c60
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/roboto-mono/default.nix
@@ -0,0 +1,88 @@
+{ lib, stdenv, fetchurl }:
+
+let
+  # Latest commit touching the robotomono tree
+  commit = "5338537ef835a3d9ccf8faf386399f13a30605e2";
+in
+stdenv.mkDerivation {
+  pname = "roboto-mono";
+  version = "2.002-20190125";
+
+  srcs = [
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-Regular.ttf";
+      sha256 = "1f96r4by67hzqpr4p2wkrfnpj9b7x9qrmwns0312w2l2rnp2qajx";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-Bold.ttf";
+      sha256 = "10wg4dchdq4s89r9pd4h8y5l1bf8mix32pksph2wafyr3815kfnm";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-Italic.ttf";
+      sha256 = "1cayhm3wj36q748xd0zdgrhm4pz7wnrskrlf7khxx2s41m3win5b";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-BoldItalic.ttf";
+      sha256 = "04238dxizdlhnnnyzhnqckxf8ciwlnwyzxby6qgpyg232abx0n2z";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-Medium.ttf";
+      sha256 = "00rh49d0dbycbkjgd2883w7iqzd6hcry08ycjipsvk091p5nq6qy";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-MediumItalic.ttf";
+      sha256 = "0fxl6lblj7anhqmhplnpvjwckjh4g8m6r9jykxdrvpl5hk8mr65b";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-Light.ttf";
+      sha256 = "1h8rbc2p70fabkplsafzah1wcwy92qc1wzkmc1cnb4yq28gxah4a";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-LightItalic.ttf";
+      sha256 = "08y2qngwy61mc22f8i00gshgmcf7hwmfxh1f4j824svy4n16zhsc";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-Thin.ttf";
+      sha256 = "0fmij9zlfjiyf0vb8n8gvrwi35l830zpmkbhcy1xgx0m8za6mmmy";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-ThinItalic.ttf";
+      sha256 = "0mpwdhjnsk8311nw8fqzy1b7v0wzb4pw639ply1j38a0vibrsmn7";
+    })
+  ];
+
+  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 = "0fkx2z97k29n1392bf76iwdyz44yp86hmqah7ai6bikzlia38qa0";
+
+  meta = with lib; {
+    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 = licenses.asl20;
+    platforms = platforms.all;
+    maintainers = [ maintainers.romildo ];
+  };
+}
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..dc37c8258564
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/roboto-slab/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+  pname = "roboto-slab";
+  version = "2.000";
+
+  src = fetchFromGitHub {
+    owner = "googlefonts";
+    repo = "robotoslab";
+    rev = "baeeba45e0c3ccdcfb6a70dc564785941aafef5d";
+    sha256 = "1v6z0a2xgwgf9dyj62sriy8ckwpbwlxkki6gfax1f4h4livvzpdn";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp -a fonts/static/*.ttf $out/share/fonts/truetype/
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "0g663npi5lkvwcqafd4cjrm90ph0nv1lig7d19xzfymnj47qpj8x";
+
+  meta = with lib; {
+    homepage = "https://www.google.com/fonts/specimen/Roboto+Slab";
+    description = "Roboto Slab Typeface by Google";
+    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 = licenses.asl20;
+    platforms = platforms.all;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/roboto/default.nix b/nixpkgs/pkgs/data/fonts/roboto/default.nix
new file mode 100644
index 000000000000..fe13fdf89d1e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/roboto/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchzip }:
+
+let
+  version = "2.138";
+in fetchzip {
+  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 = lib.licenses.asl20;
+    platforms = lib.platforms.all;
+    maintainers = [ 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..eccbddd1851d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/rounded-mgenplus/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchzip, p7zip }:
+
+let
+  pname = "rounded-mgenplus";
+  version = "20150602";
+in fetchzip rec {
+  name = "${pname}-${version}";
+
+  url = "https://osdn.jp/downloads/users/8/8598/${name}.7z";
+  postFetch = ''
+    ${p7zip}/bin/7z x $downloadedFile
+    install -m 444 -D -t $out/share/fonts/${pname} ${pname}-*.ttf
+  '';
+  sha256 = "0vwdknagdrl5dqwpb1x5lxkbfgvbx8dpg7cb6yamgz71831l05v1";
+
+  meta = with 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..cbc89c550b3c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/route159/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  majorVersion = "1";
+  minorVersion = "10";
+  pname = "route159";
+in
+
+fetchzip {
+  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 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/sahel-fonts/default.nix b/nixpkgs/pkgs/data/fonts/sahel-fonts/default.nix
new file mode 100644
index 000000000000..ff86338c26d4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sahel-fonts/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "sahel-fonts";
+  version = "1.0.0-alpha22";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "rastikerdar";
+  repo = "sahel-font";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/sahel-fonts {} \;
+  '';
+  sha256 = "0vj8ydv50rjanb0favd7rh4r9rv5fl39vqwvzkpgfdcdawn0xjm7";
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/sahel-font";
+    description = "A Persian (farsi) Font - فونت (قلم) فارسی ساحل";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.linarcx ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/samim-fonts/default.nix b/nixpkgs/pkgs/data/fonts/samim-fonts/default.nix
new file mode 100644
index 000000000000..e10249a1afd9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/samim-fonts/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "samim-fonts";
+  version = "3.1.0";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "rastikerdar";
+  repo = "samim-font";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/samim-fonts {} \;
+  '';
+  sha256 = "0mmhncqg48dp0d7l725dv909zswbkk22dlqzcdfh6k6cgk2gn08q";
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/samim-font";
+    description = "A Persian (Farsi) Font - فونت (قلم) فارسی صمیم";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.linarcx ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/sampradaya/default.nix b/nixpkgs/pkgs/data/fonts/sampradaya/default.nix
new file mode 100644
index 000000000000..749abb71dbd4
--- /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..9fce696b6e86
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchurl, libarchive }:
+
+let
+  version = "0.12.11";
+in fetchurl {
+  name = "sarasa-gothic-${version}";
+
+  url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${version}/sarasa-gothic-ttc-${version}.7z";
+  sha256 = "0vcp8583by7pfqinq8p2jx2bn4dqq816x4bxgv05k0kb9ziwj7aj";
+
+  recursiveHash = true;
+  downloadToTemp = true;
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    ${libarchive}/bin/bsdtar -xf $downloadedFile -C $out/share/fonts
+  '';
+
+  meta = with 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..8639d29066c3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/scheherazade/default.nix
@@ -0,0 +1,49 @@
+{ lib, fetchzip, version ? "3.000" }:
+
+let
+  new = lib.versionAtLeast version "3.000";
+  sha256 = {
+    "2.100" = "1g5f5f9gzamkq3kqyf7vbzvl4rdj3wmjf6chdrbxksrm3rnb926z";
+    "3.000" = "12sd2mjqb80ijc73y7p0iw6j3wy9i60a3aar3ywrxz4khpya48jw";
+  }."${version}";
+
+in fetchzip rec {
+  name = "scheherazade${lib.optionalString new "-new"}-${version}";
+
+  url = "http://software.sil.org/downloads/r/scheherazade/Scheherazade${lib.optionalString new "New"}-${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
+  '';
+
+  inherit sha256;
+
+  meta = with lib; {
+    homepage = "https://software.sil.org/scheherazade/";
+    description = "A font designed in a similar style to traditional Naskh typefaces";
+    longDescription = ''
+
+      Scheherazade${lib.optionalString new " New"}, 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 ${if new then "13.0" else "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/scientifica/default.nix b/nixpkgs/pkgs/data/fonts/scientifica/default.nix
new file mode 100644
index 000000000000..d8eda3e92326
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/scientifica/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchurl }:
+
+let
+  version = "2.2";
+in fetchurl rec {
+  name = "scientifica-${version}";
+
+  url = "https://github.com/NerdyPepper/scientifica/releases/download/v${version}/scientifica.tar";
+
+  downloadToTemp = true;
+
+  recursiveHash = true;
+
+  sha256 = "sha256-mkZnuW+CB20t6MEpEeQR1CWkIUtqgVwrKN4sezQRaB4=";
+
+  postFetch = ''
+    tar xf $downloadedFile
+    mkdir -p $out/share/fonts/truetype
+    mkdir -p $out/share/fonts/misc
+    install scientifica/ttf/*.ttf $out/share/fonts/truetype
+    install scientifica/otb/*.otb $out/share/fonts/misc
+    install scientifica/bdf/*.bdf $out/share/fonts/misc
+  '';
+
+  meta = with lib; {
+    description = "Tall and condensed bitmap font for geeks";
+    homepage = "https://github.com/NerdyPepper/scientifica";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/seshat/default.nix b/nixpkgs/pkgs/data/fonts/seshat/default.nix
new file mode 100644
index 000000000000..71483a04cbb7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/seshat/default.nix
@@ -0,0 +1,37 @@
+{ lib,  fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "100";
+  pname = "seshat";
+in
+
+fetchzip {
+  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 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/shabnam-fonts/default.nix b/nixpkgs/pkgs/data/fonts/shabnam-fonts/default.nix
new file mode 100644
index 000000000000..5cf54697fdf6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/shabnam-fonts/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "shabnam-fonts";
+  version = "4.0.0";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "rastikerdar";
+  repo = "shabnam-font";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/shabnam-fonts {} \;
+  '';
+  sha256 = "0wfyaaj2pq2knz12l7rsc4wc703cbz0r8gkcya5x69p0aixch8ba";
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/shabnam-font";
+    description = "A Persian (Farsi) Font - فونت (قلم) فارسی شبنم";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.linarcx ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/shrikhand/default.nix b/nixpkgs/pkgs/data/fonts/shrikhand/default.nix
new file mode 100644
index 000000000000..684f3d0395e9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/shrikhand/default.nix
@@ -0,0 +1,21 @@
+{ lib, 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 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..ae5f0bb0fb93
--- /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..adc6a79f10f4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/siji/default.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv, fetchFromGitHub, libfaketime, fonttosfnt, mkfontscale }:
+
+stdenv.mkDerivation rec {
+  name = "siji-${version}";
+  version = "2016-05-13";
+
+  src = fetchFromGitHub {
+    owner = "stark";
+    repo = "siji";
+    rev = "3cbb7fe938c33aaadbb657803ea5946e5157d6e2";
+    sha256 = "1408g4nxwdd682vjqpmgv0cp0bfnzzzwls62cjs9zrds16xa9dpf";
+  };
+
+  nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];
+
+  buildPhase = ''
+    # compress pcf fonts
+    gzip -n -9 pcf/*
+
+    # convert bdf fonts to otb
+    for i in bdf/*; do
+        name=$(basename $i .bdf)
+        faketime -f "1970-01-01 00:00:01" \
+        fonttosfnt -v -o "$name.otb" "$i"
+    done
+  '';
+
+  postInstall = ''
+    install -m 644 -D *.otb pcf/* -t "$out/share/fonts/misc"
+    install -m 644 -D bdf/* -t "$bdf/share/fonts/misc"
+    mkfontdir "$out/share/fonts/misc"
+    mkfontdir "$bdf/share/fonts/misc"
+  '';
+
+  outputs = [ "out" "bdf" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/stark/siji";
+    description = "An iconic bitmap font based on Stlarch with additional glyphs";
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = [ 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..c9518b78a65a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-code-pro/default.nix
@@ -0,0 +1,24 @@
+{ lib, 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 lib.maintainers; [ relrod ];
+    platforms = with lib.platforms; all;
+    homepage = "https://adobe-fonts.github.io/source-code-pro/";
+    license = 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..5960e4fb6ea4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-han-code-jp/default.nix
@@ -0,0 +1,25 @@
+{ lib, 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 lib.maintainers; [ mt-caret ];
+    platforms = with lib.platforms; all;
+    homepage = "https://blogs.adobe.com/CCJKType/2015/06/source-han-code-jp.html";
+    license = lib.licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/source-han/default.nix b/nixpkgs/pkgs/data/fonts/source-han/default.nix
new file mode 100644
index 000000000000..28ec08f63b6d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-han/default.nix
@@ -0,0 +1,55 @@
+{ stdenvNoCC
+, lib
+, fetchzip
+, fetchurl
+}:
+
+let
+  makePackage = { family, description, rev, sha256 }: let
+    Family =
+      lib.toUpper (lib.substring 0 1 family) +
+      lib.substring 1 (lib.stringLength family) family;
+
+    ttc = fetchurl {
+      url = "https://github.com/adobe-fonts/source-han-${family}/releases/download/${rev}/SourceHan${Family}.ttc";
+      inherit sha256;
+    };
+  in stdenvNoCC.mkDerivation {
+    pname = "source-han-${family}";
+    version = lib.removeSuffix "R" rev;
+
+    buildCommand = ''
+      mkdir -p $out/share/fonts/opentype/source-han-${family}
+      ln -s ${ttc} $out/share/fonts/opentype/source-han-${family}/SourceHan${Family}.ttc
+    '';
+
+    meta = {
+      description = "An open source Pan-CJK ${description} typeface";
+      homepage = "https://github.com/adobe-fonts/source-han-${family}";
+      license = lib.licenses.ofl;
+      maintainers = with lib.maintainers; [ taku0 emily ];
+    };
+  };
+in
+{
+  sans = makePackage {
+    family = "sans";
+    description = "sans-serif";
+    rev = "2.001R";
+    sha256 = "101p8q0sagf1sd1yzwdrmmxvkqq7j0b8hi0ywsfck9w56r4zx54y";
+  };
+
+  serif = makePackage {
+    family = "serif";
+    description = "serif";
+    rev = "1.001R";
+    sha256 = "1d968h30qvvwy3s77m9y3f1glq8zlr6bnfw00yinqa18l97n7k45";
+  };
+
+  mono = makePackage {
+    family = "mono";
+    description = "monospaced";
+    rev = "1.002";
+    sha256 = "1haqffkcgz0cc24y8rc9bg36v8x9hdl8fdl3xc8qz14hvr42868c";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/source-sans-pro/default.nix b/nixpkgs/pkgs/data/fonts/source-sans-pro/default.nix
new file mode 100644
index 000000000000..7d5c7679ad8c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-sans-pro/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchzip }:
+
+let
+  version = "3.006";
+in fetchzip {
+  name = "source-sans-pro-${version}";
+
+  url = "https://github.com/adobe-fonts/source-sans-pro/releases/download/${version}R/source-sans-pro-${version}R.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/{opentype,truetype,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 = "11jd50cqiq2s0z39rclg73iiw2j5yzgs1glfs9psw5wbbisgysmr";
+
+  meta = with lib; {
+    homepage = "https://adobe-fonts.github.io/source-sans-pro/";
+    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..86a45b80efd7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-serif-pro/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  version = "3.000";
+in fetchzip {
+  name = "source-serif-pro-${version}";
+
+  url = "https://github.com/adobe-fonts/source-serif-pro/releases/download/${version}R/source-serif-pro-${version}R.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/{opentype,truetype,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 = "06yp8y79mqk02qzp81h8zkmzqqlhicgrkwmzkd0bm338xh8grsiz";
+
+  meta = with lib; {
+    homepage = "https://adobe-fonts.github.io/source-serif-pro/";
+    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/spleen/default.nix b/nixpkgs/pkgs/data/fonts/spleen/default.nix
new file mode 100644
index 000000000000..4dea9253c02d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/spleen/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchurl, mkfontscale }:
+
+let
+  pname = "spleen";
+  version = "1.9.0";
+in fetchurl {
+  name = "${pname}-${version}";
+  url = "https://github.com/fcambus/spleen/releases/download/${version}/spleen-${version}.tar.gz";
+
+  downloadToTemp = true;
+  recursiveHash = true;
+  postFetch = ''
+    tar xvf $downloadedFile --strip=1
+    d="$out/share/fonts/misc"
+    install -D -m 644 *.{pcf,bdf,otf} -t "$d"
+    install -D -m 644 *.psfu -t "$out/share/consolefonts"
+    install -m644 fonts.alias-spleen $d/fonts.alias
+
+    # create fonts.dir so NixOS xorg module adds to fp
+    ${mkfontscale}/bin/mkfontdir "$d"
+  '';
+  sha256 = "sha256-hNPbYiU+v7kCYKVyOn+uc5cSlu9bWsC4CwFvfH6StWM=";
+
+  meta = with lib; {
+    description = "Monospaced bitmap fonts";
+    homepage = "https://www.cambus.net/spleen-monospaced-bitmap-fonts";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
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..894fd22c36f9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/stix-otf/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.1.1";
+in fetchzip {
+  name = "stix-otf-${version}";
+
+  url = "http://ftp.fi.muni.cz/pub/linux/gentoo/distfiles/STIXv${version}-word.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "04d4qxq3i9fyapsmxk6d9v1xirjam8c74fyxs6n24d3gf2945zmw";
+
+  meta = with 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..53c4143842d9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/stix-two/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+let
+  version = "2.12";
+in
+fetchzip {
+  name = "stix-two-${version}";
+
+  url = "https://github.com/stipub/stixfonts/raw/v${version}/zipfiles/STIX${builtins.replaceStrings [ "." ] [ "_" ] version}-all.zip";
+
+  sha256 = "1a6v8p5zbjlv1gfhph0rzkvnmvxf4n1y0mdrdgng01yyl1nngrn9";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    homepage = "https://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/sudo/default.nix b/nixpkgs/pkgs/data/fonts/sudo/default.nix
new file mode 100644
index 000000000000..f21fdb184161
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sudo/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchzip }:
+
+let
+  version = "0.52";
+in fetchzip {
+  name = "sudo-font-${version}";
+  url = "https://github.com/jenskutilek/sudo-font/releases/download/v${version}/sudo.zip";
+  sha256 = "1j5p7apclyy5gfj2kklmgcncdsp5iik4gd6mdl29anzijknd0kja";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype/
+    unzip -j $downloadedFile \*.woff -d $out/share/fonts/woff/
+    unzip -j $downloadedFile \*.woff2 -d $out/share/fonts/woff2/
+  '';
+  meta = with lib; {
+    description = "Font for programmers and command line users";
+    homepage = "https://www.kutilek.de/sudo-font/";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ dtzWill ];
+    platforms = platforms.all;
+  };
+}
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..71ca170afb1d
--- /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/tamsyn/default.nix b/nixpkgs/pkgs/data/fonts/tamsyn/default.nix
new file mode 100644
index 000000000000..6f0886e1d971
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tamsyn/default.nix
@@ -0,0 +1,50 @@
+{ lib, stdenv, fetchurl, fontforge, mkfontscale }:
+
+let
+  version = "1.11";
+in stdenv.mkDerivation {
+  pname = "tamsyn-font";
+  inherit version;
+
+  src = fetchurl {
+    url = "http://www.fial.com/~scott/tamsyn-font/download/tamsyn-font-${version}.tar.gz";
+    sha256 = "0kpjzdj8sv5871b8827mjgj9dswk75h94jj5iia2bds18ih1pglp";
+   };
+
+  nativeBuildInputs = [ fontforge mkfontscale ];
+
+  unpackPhase = ''
+    tar -xzf $src --strip-components=1
+  '';
+
+  postBuild = ''
+    # convert pcf fonts to otb
+    for i in *.pcf; do
+      name=$(basename "$i" .pcf)
+      fontforge -lang=ff -c "Open(\"$i\"); Generate(\"$name.otb\")"
+    done
+
+    # compress pcf fonts
+    gzip -n -9 *.pcf
+  '';
+
+  installPhase = ''
+    install -m 644 -D *.otb *.pcf.gz -t "$out/share/fonts/misc"
+    install -m 644 -D *.psf.gz -t "$out/share/consolefonts"
+    mkfontdir "$out/share/fonts/misc"
+  '';
+
+  meta = with lib; {
+    description = "A monospace bitmap font aimed at programmers";
+    longDescription = ''Tamsyn is a monospace bitmap font, primarily aimed at
+    programmers. It was derived from Gilles Boccon-Gibod's MonteCarlo. Tamsyn
+    font was further inspired by Gohufont, Terminus, Dina, Proggy, Fixedsys, and
+    Consolas.
+    '';
+    homepage = "http://www.fial.com/~scott/tamsyn-font/";
+    downloadPage = "http://www.fial.com/~scott/tamsyn-font/download";
+    license = licenses.free;
+    maintainers = [ maintainers.rps ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/tamzen/default.nix b/nixpkgs/pkgs/data/fonts/tamzen/default.nix
new file mode 100644
index 000000000000..80212a14aebf
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tamzen/default.nix
@@ -0,0 +1,37 @@
+{ fetchFromGitHub, mkfontscale, lib, stdenv }:
+
+stdenv.mkDerivation rec {
+  pname = "tamzen-font";
+  version = "1.11.5";
+
+  src = fetchFromGitHub {
+    owner = "sunaku";
+    repo = "tamzen-font";
+    rev = "Tamzen-${version}";
+    sha256 = "00x5fipzqimglvshhqwycdhaqslbvn3rl06jnswhyxfvz16ymj7s";
+  };
+
+  nativeBuildInputs = [ mkfontscale ];
+
+  installPhase = ''
+    install -m 644 -D otb/*.otb pcf/*.pcf -t "$out/share/fonts/misc"
+    install -m 644 -D psf/*.psf -t "$out/share/consolefonts"
+    mkfontdir "$out/share/fonts/misc"
+  '';
+
+  meta = with lib; {
+    description = "Bitmapped programming font based on Tamsyn";
+    longDescription = ''
+    Tamzen is a monospace bitmap font. It is programatically forked
+    from Tamsyn version 1.11, which backports glyphs from older
+    versions while deleting deliberately empty glyphs to allow
+    secondary/fallback fonts to provide real glyphs at those codepoints.
+    Tamzen also has fonts that additionally provide the Powerline
+    symbols.
+    '';
+    homepage = "https://github.com/sunaku/tamzen-font";
+    license = licenses.free;
+    maintainers = with maintainers; [ wishfort36 ];
+  };
+}
+
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..6bcceff16d22
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tempora-lgc/default.nix
@@ -0,0 +1,42 @@
+{lib, 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 = lib.licenses.gpl2 ;
+    maintainers = [lib.maintainers.raskin];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/tenderness/default.nix b/nixpkgs/pkgs/data/fonts/tenderness/default.nix
new file mode 100644
index 000000000000..09ea566e7382
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tenderness/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "601";
+  pname = "tenderness";
+in
+
+fetchzip {
+  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 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..f9d25a0128ef
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/terminus-font-ttf/default.nix
@@ -0,0 +1,33 @@
+{ lib, fetchzip }:
+
+let
+  version = "4.47.0";
+in fetchzip {
+  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 = "1mnx3vlnl0r15yzsa4zb9qqab4hpi603gdwhlbw960wg03i3xn8z";
+
+  meta = with 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 ];
+  };
+}
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..fca357706a60
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/terminus-font/default.nix
@@ -0,0 +1,62 @@
+{ lib, stdenv, fetchurl, python3
+, libfaketime, fonttosfnt
+, bdftopcf, mkfontscale
+}:
+
+stdenv.mkDerivation rec {
+  pname = "terminus-font";
+  version = "4.48"; # set here for use in URL below
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/${pname}/${pname}-${version}/${pname}-${version}.tar.gz";
+    sha256 = "1bwlkj39rqbyq57v5yssayav6hzv1n11b9ml2s0dpiyfsn6rqy9l";
+  };
+
+  nativeBuildInputs =
+    [ python3 bdftopcf libfaketime
+      fonttosfnt mkfontscale
+    ];
+
+  enableParallelBuilding = true;
+
+  postPatch = ''
+    substituteInPlace Makefile --replace 'fc-cache' '#fc-cache'
+    substituteInPlace Makefile --replace 'gzip'     'gzip -n'
+  '';
+
+  postBuild = ''
+    # convert unicode bdf fonts to otb
+    for i in *.bdf; do
+      name=$(basename $i .bdf)
+      faketime -f "1970-01-01 00:00:01" \
+      fonttosfnt -v -o "$name.otb" "$i"
+    done
+  '';
+
+  postInstall = ''
+    # install otb fonts (for GTK applications)
+    install -m 644 -D *.otb -t "$out/share/fonts/misc";
+    mkfontdir "$out/share/fonts/misc"
+  '';
+
+  installTargets = [ "install" "fontdir" ];
+
+  meta = with 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://terminus-font.sourceforge.net/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ astsmtl ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/tewi/default.nix b/nixpkgs/pkgs/data/fonts/tewi/default.nix
new file mode 100644
index 000000000000..1cf31b5affe7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tewi/default.nix
@@ -0,0 +1,59 @@
+{ lib, stdenv, fetchFromGitHub, python3
+, bdftopcf, mkfontscale
+, libfaketime, fonttosfnt
+}:
+
+stdenv.mkDerivation rec {
+  pname = "tewi-font";
+  version = "2.0.2";
+
+  src = fetchFromGitHub {
+    owner  = "lucy";
+    repo   = pname;
+    rev    = version;
+    sha256 = "1axv9bv10xlcmgfyjh3z5kn5fkg3m6n1kskcs5hvlmyb6m1zk91j";
+  };
+
+  nativeBuildInputs =
+    [ python3 bdftopcf mkfontscale
+      libfaketime fonttosfnt
+    ];
+
+  postPatch = ''
+    # make gzip deterministic
+    sed 's/gzip -9/gzip -9 -n/g' -i Makefile
+
+    # fix python not found
+    patchShebangs scripts/merge
+  '';
+
+  postBuild = ''
+    # convert bdf fonts to otb
+    for i in *.bdf; do
+      name=$(basename "$i" .bdf)
+      faketime -f "1970-01-01 00:00:01" \
+      fonttosfnt -v -o "$name.otb" "$i"
+    done
+  '';
+
+  installPhase = ''
+    fontDir="$out/share/fonts/misc"
+    install -m 644 -D *.otb out/* -t "$fontDir"
+    mkfontdir "$fontDir"
+  '';
+
+  meta = with 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 ];
+  };
+}
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..95038d3f9cfe
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tex-gyre-math/default.nix
@@ -0,0 +1,67 @@
+{ lib, 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: {displayName, version, sha256, outputHash}:
+    let dotless_version = builtins.replaceStrings ["."] [""] version; in
+    stdenv.mkDerivation rec {
+      name = "tex-gyre-${variant}-math-${version}";
+      inherit version;
+
+      src = fetchzip {
+        url = "http://www.gust.org.pl/projects/e-foundry/tg-math/download/texgyre${variant}-math-${dotless_version}.zip";
+        inherit sha256;
+      };
+
+      installPhase = ''
+        install -m444 -Dt $out/share/fonts/opentype opentype/*.otf
+        install -m444 -Dt $out/share/doc/${name}    doc/*.txt
+      '';
+
+      outputHashAlgo = "sha256";
+      outputHashMode = "recursive";
+      inherit outputHash;
+
+      meta = with lib; {
+        longDescription = ''
+          TeX Gyre ${displayName} Math is a math companion for the TeX Gyre
+          ${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
+  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..6ce5bd207862
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tex-gyre/default.nix
@@ -0,0 +1,84 @@
+{ lib, 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";
+    inherit outputHash;
+
+    meta = with 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 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..360d32f3e625
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/theano/default.nix
@@ -0,0 +1,26 @@
+{ lib, 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 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..6cebe2120fec
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tipa/default.nix
@@ -0,0 +1,28 @@
+{ 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";
+  };
+}
+
+
diff --git a/nixpkgs/pkgs/data/fonts/tlwg/default.nix b/nixpkgs/pkgs/data/fonts/tlwg/default.nix
new file mode 100644
index 000000000000..9c03bbb162f5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tlwg/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, fontforge }:
+
+stdenv.mkDerivation rec {
+  pname = "tlwg";
+  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 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 ];
+    maintainers = [ maintainers.yrashk ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/tt2020/default.nix b/nixpkgs/pkgs/data/fonts/tt2020/default.nix
new file mode 100644
index 000000000000..c92e86032733
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tt2020/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "TT2020";
+  version = "2020-01-05";
+in
+fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "ctrlcctrlv";
+  repo = pname;
+  rev = "2b418fab5f99f72a18b3b2e7e2745ac4e03aa612";
+  sha256 = "1z0nizvs0gp0xl7pn6xcjvsysxhnfm7aqfamplkyvya3fxvhncds";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -Dm644 -t $out/share/fonts/truetype dist/*.ttf
+    install -Dm644 -t $out/share/fonts/woff2 dist/*.woff2
+  '';
+
+  meta = with lib; {
+    description = "An advanced, open source, hyperrealistic, multilingual typewriter font for a new decade";
+    homepage = "https://ctrlcctrlv.github.io/TT2020";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ sikmir ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ttf-bitstream-vera/default.nix b/nixpkgs/pkgs/data/fonts/ttf-bitstream-vera/default.nix
new file mode 100644
index 000000000000..95e4ce2a52ab
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ttf-bitstream-vera/default.nix
@@ -0,0 +1,20 @@
+{ lib, fetchzip }:
+let
+  pname = "ttf-bitstream-vera";
+  version = "1.10";
+in
+fetchzip rec {
+  name = "${pname}-${version}";
+
+  url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.bz2";
+
+  postFetch = ''
+    tar -xjf $downloadedFile --strip-components=1
+    install -m444 -Dt $out/share/fonts/truetype *.ttf
+  '';
+
+  sha256 = "179hal4yi3367jg8rsvqx6h2w4s0kn9zzrv8c47sslyg28g39s4m";
+
+  meta = {
+  };
+}
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..4da4aa1823b7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ttf-envy-code-r/default.nix
@@ -0,0 +1,25 @@
+{ lib, 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 lib; {
+    homepage = "https://damieng.com/blog/tag/envy-code-r";
+    description = "Free scalable coding font by DamienG";
+    license = licenses.unfree;
+    maintainers = [ maintainers.lyt ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ttf-tw-moe/default.nix b/nixpkgs/pkgs/data/fonts/ttf-tw-moe/default.nix
new file mode 100644
index 000000000000..bf52d07c52e9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ttf-tw-moe/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchzip }:
+let
+  version = "2020-11-14";
+in
+fetchzip {
+  name = "ttf-tw-moe";
+
+  url = "https://github.com/Jiehong/TW-fonts/archive/${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile TW-fonts-${version}/\*.ttf -d $out/share/fonts/truetype
+  '';
+
+  sha256 = "1jd3gjjfa4vadp6d499n0irz5b22z611kd7q5qgqf6s2fwbxfhiz";
+
+  meta = with lib; {
+    homepage = "http://www.moe.gov.tw/";
+    description = "Set of KAI and SONG fonts from the Ministry of Education of Taiwan";
+    version = version;
+    longDescription = ''
+      Installs 2 TTF fonts: MOESongUN and TW-MOE-Std-Kai.
+      Both are provided by the Ministry of Education of Taiwan; each character's shape
+      closely follows the official recommendation, and can be used as for teaching purposes.
+    '';
+    license = licenses.cc-by-nd-30;
+    maintainers = [ maintainers.jiehong ];
+    platforms = platforms.all;
+  };
+}
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..a2fde6813b78
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "twemoji-color-font";
+  version = "13.0.1";
+
+  # We fetch the prebuilt font because building it takes 1.5 hours on hydra.
+  # Relevant issue: https://github.com/NixOS/nixpkgs/issues/97871
+  src = fetchurl {
+    url = "https://github.com/eosrei/twemoji-color-font/releases/download/v${version}/TwitterColorEmoji-SVGinOT-Linux-${version}.tar.gz";
+    sha256 = "1mn2cb6a3v0q8i81s9a8bk49nbwxq91n6ki7827i7rhjkncb0mbn";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    install -Dm755 TwitterColorEmoji-SVGinOT.ttf $out/share/fonts/truetype/TwitterColorEmoji-SVGinOT.ttf
+    install -Dm644 fontconfig/56-twemoji-color.conf $out/etc/fonts/conf.d/56-twemoji-color.conf
+  '';
+
+  meta = with lib; {
+    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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix b/nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix
new file mode 100644
index 000000000000..6cceee558a94
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix
@@ -0,0 +1,117 @@
+# Based upon https://src.fedoraproject.org/rpms/twitter-twemoji-fonts
+# The main difference is that we use “Twitter Color Emoji” name (which is recognized by upstream fontconfig)
+
+{ lib, stdenv
+, fetchFromGitHub
+, cairo
+, imagemagick
+, pkg-config
+, pngquant
+, python3
+, which
+, zopfli
+, noto-fonts-emoji
+}:
+
+let
+  version = "13.0.2";
+
+  twemojiSrc = fetchFromGitHub {
+    name = "twemoji";
+    owner = "twitter";
+    repo = "twemoji";
+    rev = "v${version}";
+    sha256 = "069pyq09jfzwp3xla8vmhbyyam32x2iyp0s29xcxlkj22p99bg6d";
+  };
+
+  pythonEnv =
+    python3.withPackages (p: [ p.fonttools p.nototools ]);
+
+in
+stdenv.mkDerivation rec {
+  pname = "twitter-color-emoji";
+  inherit version;
+
+  srcs = [
+    noto-fonts-emoji.src
+    twemojiSrc
+  ];
+
+  sourceRoot = noto-fonts-emoji.src.name;
+
+  postUnpack = ''
+    chmod -R +w ${twemojiSrc.name}
+    mv ${twemojiSrc.name} ${noto-fonts-emoji.src.name}
+  '';
+
+  nativeBuildInputs = [
+    cairo
+    imagemagick
+    pkg-config
+    pngquant
+    pythonEnv
+    which
+    zopfli
+  ];
+
+  postPatch = let
+    templateSubstitutions = lib.concatStringsSep "; " [
+      "s#Noto Color Emoji#Twitter Color Emoji#"
+      "s#NotoColorEmoji#TwitterColorEmoji#"
+      ''s#Copyright .* Google Inc\.#Twitter, Inc and other contributors.#''
+      "s# Version .*# ${version}#"
+      "s#.*is a trademark.*##"
+      ''s#Google, Inc\.#Twitter, Inc and other contributors#''
+      "s#http://www.google.com/get/noto/#https://twemoji.twitter.com/#"
+      "s#.*is licensed under.*#      Creative Commons Attribution 4.0 International#"
+      "s#http://scripts.sil.org/OFL#http://creativecommons.org/licenses/by/4.0/#"
+    ];
+  in ''
+    ${noto-fonts-emoji.postPatch}
+
+    sed '${templateSubstitutions}' NotoColorEmoji.tmpl.ttx.tmpl > TwitterColorEmoji.tmpl.ttx.tmpl
+    pushd ${twemojiSrc.name}/assets/72x72/
+    for png in *.png; do
+        mv $png emoji_u''${png//-/_}
+    done
+    popd
+  '';
+
+  makeFlags = [
+    "EMOJI=TwitterColorEmoji"
+    "EMOJI_SRC_DIR=${twemojiSrc.name}/assets/72x72"
+    "BODY_DIMENSIONS=76x72"
+    # twemoji contains some codepoints noto doesn't like
+    "BYPASS_SEQUENCE_CHECK=True"
+  ];
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    install -Dm644 TwitterColorEmoji.ttf $out/share/fonts/truetype/TwitterColorEmoji.ttf
+  '';
+
+  meta = with lib; {
+    description = "Color emoji font with a flat visual style, designed and used by Twitter";
+    longDescription = ''
+      A bitmap color emoji font built from the Twitter Emoji for
+      Everyone artwork with support for ZWJ, skin tone diversity and country
+      flags.
+
+      This font uses Google’s CBDT format making it work on Android and Linux graphical stack.
+    '';
+    homepage = "https://twemoji.twitter.com/";
+    # In noto-emoji-fonts source
+    ## noto-emoji code is in ASL 2.0 license
+    ## Emoji fonts are under OFL license
+    ### third_party color-emoji code is in ASL 2.0 license
+    ### third_party region-flags code is in Public Domain license
+    # In twemoji source
+    ## Artwork is Creative Commons Attribution 4.0 International
+    ## Non-artwork is MIT
+    # In Fedora twitter-twemoji-fonts source
+    ## spec files are MIT: https://fedoraproject.org/wiki/Licensing:Main#License_of_Fedora_SPEC_Files
+    license = with licenses; [ asl20 ofl cc-by-40 mit ];
+    maintainers = with maintainers; [ jtojnar emily ];
+  };
+}
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..0f1d5b5a4cc0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ubuntu-font-family/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "ubuntu-font-family-0.83";
+
+  url = "https://assets.ubuntu.com/v1/fad7939b-ubuntu-font-family-0.83.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 = lib.licenses.free;
+    platforms = lib.platforms.all;
+    maintainers = [ 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..7bb9930ccfca
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix
@@ -0,0 +1,61 @@
+{ lib, stdenv, fetchurl, bdftopcf
+, libfaketime, fonttosfnt, mkfontscale
+}:
+
+stdenv.mkDerivation {
+  pname = "ucs-fonts";
+  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 =
+    [ bdftopcf libfaketime fonttosfnt
+      mkfontscale
+    ];
+
+  buildPhase = ''
+    for i in *.bdf; do
+      name=$(basename "$i" .bdf)
+
+      # generate pcf fonts (for X11 applications)
+      bdftopcf -t "$i" | gzip -n -9 -c > "$name.pcf.gz"
+
+      # generate otb fonts (for GTK applications)
+      faketime -f "1970-01-01 00:00:01" \
+      fonttosfnt -v -o "$name.otb" "$i"
+    done
+  '';
+
+  installPhase = ''
+    install -m 644 -D *.otb *.pcf.gz -t "$out/share/fonts/misc"
+    install -m 644 -D *.bdf -t "$bdf/share/fonts/misc"
+
+    mkfontdir "$out/share/fonts/misc"
+    mkfontdir "$bdf/share/fonts/misc"
+  '';
+
+  outputs = [ "out" "bdf" ];
+
+  meta = with lib; {
+    homepage = "https://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html";
+    description = "Unicode bitmap fonts";
+    license = licenses.publicDomain;
+    maintainers = [ maintainers.raskin ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix b/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
new file mode 100644
index 000000000000..b1da06ccd8b4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchzip }:
+
+let
+  version = "2.0";
+in
+fetchzip {
+  name = "ultimate-oldschool-pc-font-pack-${version}";
+  url = "https://int10h.org/oldschool-pc-fonts/download/oldschool_pc_font_pack_v${version}_ttf.zip";
+  sha256 = "0z0fw6ni7iq806y4m83xrfx46r14xxxql09ch2gxjqi062awqyh8";
+
+  postFetch= ''
+    mkdir -p $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    description = "The Ultimate Oldschool PC Font Pack (TTF Fonts)";
+    homepage = "https://int10h.org/oldschool-pc-fonts/";
+    license = licenses.cc-by-sa-40;
+    maintainers = [ maintainers.endgame ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/undefined-medium/default.nix b/nixpkgs/pkgs/data/fonts/undefined-medium/default.nix
new file mode 100644
index 000000000000..4c13a297c6f6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/undefined-medium/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+fetchzip rec {
+  name = "undefined-medium-1.0";
+
+  url = "https://github.com/andirueckel/undefined-medium/archive/v1.0.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile ${name}/fonts/otf/\*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "1wa04jzbffshwcxm705yb5wja8wakn8j7fvim1mlih2z1sqw0njk";
+
+  meta = with lib; {
+    homepage = "https://undefined-medium.com/";
+    description = "A pixel grid-based monospace typeface";
+    longDescription = ''
+      undefined medium is a free and open-source pixel grid-based
+      monospace typeface suitable for programming, writing, and
+      whatever else you can think of … it’s pretty undefined.
+    '';
+    license = licenses.ofl;
+    maintainers = [ maintainers.rycee ];
+    platforms = platforms.all;
+  };
+}
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..56ba36b1eb41
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/uni-vga/default.nix
@@ -0,0 +1,58 @@
+{ lib, stdenv, fetchurl, perl, kbd, bdftopcf
+, libfaketime, fonttosfnt, mkfontscale
+}:
+
+with lib;
+
+stdenv.mkDerivation {
+  name = "uni-vga";
+
+  src = fetchurl {
+    url = "http://www.inp.nsk.su/~bolkhov/files/fonts/univga/uni-vga.tgz";
+    sha256 = "05sns8h5yspa7xkl81ri7y1yxf5icgsnl497f3xnaryhx11s2rv6";
+  };
+
+  nativeBuildInputs =
+    [ bdftopcf libfaketime
+      fonttosfnt mkfontscale
+    ] ++ optionals stdenv.isLinux [ perl kbd ];
+
+  postPatch = "patchShebangs .";
+
+  buildPhase = ''
+    # convert font to compressed pcf
+    bdftopcf u_vga16.bdf | gzip -c -9 -n  > u_vga16.pcf.gz
+
+    # convert bdf font to otb
+    faketime -f "1970-01-01 00:00:01" \
+    fonttosfnt -v -o u_vga16.otb u_vga16.bdf
+  '' + optionalString stdenv.isLinux ''
+    # convert font to compressed psf
+    ./bdf2psf.pl -s UniCyrX.sfm u_vga16.bdf \
+      | psfaddtable - UniCyrX.sfm - \
+      | gzip -c -9 -n > u_vga16.psf.gz
+  '';
+
+  installPhase = ''
+    # install pcf and otb (for X11 and GTK applications)
+    install -m 644 -D *.otb *.pcf.gz -t "$out/share/fonts"
+    mkfontdir "$out/share/fonts"
+
+    # install bdf font
+    install -m 644 -D *.bdf -t "$bdf/share/fonts"
+    mkfontdir "$bdf/share/fonts"
+
+  '' + optionalString stdenv.isLinux ''
+    # install psf (for linux virtual terminal)
+    install -m 644 -D *.psf.gz -t "$out/share/consolefonts"
+  '';
+
+  outputs = [ "out" "bdf" ];
+
+  meta = {
+    description = "Unicode VGA font";
+    maintainers = [ maintainers.ftrvxmtrx ];
+    homepage = "http://www.inp.nsk.su/~bolkhov/files/fonts/univga/";
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/unifont/default.nix b/nixpkgs/pkgs/data/fonts/unifont/default.nix
new file mode 100644
index 000000000000..507faae53e35
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/unifont/default.nix
@@ -0,0 +1,53 @@
+{ lib, stdenv, fetchurl, mkfontscale
+, libfaketime, fonttosfnt
+}:
+
+stdenv.mkDerivation rec {
+  pname = "unifont";
+  version = "13.0.05";
+
+  ttf = fetchurl {
+    url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.ttf";
+    sha256 = "0ff7zbyqi45q0171rl9ckj6lpfhcj8a9850d8j89m7wbwky32isf";
+  };
+
+  pcf = fetchurl {
+    url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.pcf.gz";
+    sha256 = "16n666p6rs6l4r8grh67gy4ls33qfnbb5xk7cksywzjwdh42js0r";
+  };
+
+  nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];
+
+  phases = [ "buildPhase" "installPhase" ];
+
+  buildPhase =
+    ''
+      # convert pcf font to otb
+      faketime -f "1970-01-01 00:00:01" \
+      fonttosfnt -g 2 -m 2 -v -o "unifont.otb" "${pcf}"
+    '';
+
+  installPhase =
+    ''
+      # install otb fonts
+      install -m 644 -D unifont.otb "$out/share/fonts/unifont.otb"
+      mkfontdir "$out/share/fonts"
+
+      # install pcf and ttf fonts
+      install -m 644 -D ${pcf} $out/share/fonts/unifont.pcf.gz
+      install -m 644 -D ${ttf} $out/share/fonts/truetype/unifont.ttf
+      cd "$out/share/fonts"
+      mkfontdir
+      mkfontscale
+    '';
+
+  meta = with 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..04480aaeec72
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/unifont_upper/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchzip }:
+
+let
+  version = "13.0.05";
+in fetchzip rec {
+  name = "unifont_upper-${version}";
+
+  url = "mirror://gnu/unifont/unifont-${version}/${name}.ttf";
+
+  postFetch = "install -Dm644 $downloadedFile $out/share/fonts/truetype/unifont_upper.ttf";
+
+  sha256 = "1cpi44fzsiq3yqg38763awgri1ma46421c3v8167bsxzsx7vzlkp";
+
+  meta = with 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..066a4d4d9221
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/unscii/default.nix
@@ -0,0 +1,55 @@
+{ lib, stdenv, fetchurl, perl, bdftopcf
+, fontforge, SDL, SDL_image, mkfontscale
+}:
+
+stdenv.mkDerivation rec {
+  pname = "unscii";
+  version = "1.1";
+
+  src = fetchurl {
+    url = "http://pelulamu.net/${pname}/${pname}-${version}-src.tar.gz";
+    sha256 = "0qcxcnqz2nlwfzlrn115kkp3n8dd7593h762vxs6vfqm13i39lq1";
+  };
+
+  nativeBuildInputs =
+    [ (perl.withPackages (p: [ p.TextCharWidth ]))
+      bdftopcf fontforge SDL SDL_image
+      mkfontscale
+    ];
+
+  preConfigure = ''
+    patchShebangs .
+  '';
+
+  postBuild = ''
+    # compress pcf fonts
+    gzip -9 -n *.pcf
+  '';
+
+  installPhase = ''
+    # install fonts for use in X11 and GTK applications
+    install -m444 -Dt "$out/share/fonts/misc"     *.pcf.gz
+    install -m444 -Dt "$out/share/fonts/opentype" *.otf
+    mkfontdir   "$out/share/fonts/misc"
+    mkfontscale "$out/share/fonts/opentype"
+
+    # install other formats in $extra
+    install -m444 -Dt "$extra/share/fonts/truetype" *.ttf
+    install -m444 -Dt "$extra/share/fonts/svg"      *.svg
+    install -m444 -Dt "$extra/share/fonts/web"      *.woff
+    install -m444 -Dt "$extra/share/fonts/misc"     *.hex
+    mkfontscale "$extra"/share/fonts/*
+  '';
+
+  outputs = [ "out" "extra" ];
+
+  meta = {
+    inherit version;
+    description = "Bitmapped character-art-friendly Unicode fonts";
+    # Basically GPL2+ with font exception — because of the Unifont-augmented
+    # version. The reduced version is public domain.
+    license = "http://unifoundry.com/LICENSE.txt";
+    maintainers = [ lib.maintainers.raskin ];
+    homepage = "http://pelulamu.net/unscii/";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix b/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix
new file mode 100644
index 000000000000..a3c3f7b68aa7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix
@@ -0,0 +1,90 @@
+{ lib, stdenv, fetchurl, perl
+, bdftopcf, bdf2psf, mkfontdir
+, fonttosfnt
+, targetsDat  ? null
+, variantsDat ? null
+}:
+
+stdenv.mkDerivation rec {
+  pname = "uw-ttyp0";
+  version = "1.3";
+
+  src = fetchurl {
+    url = "https://people.mpi-inf.mpg.de/~uwe/misc/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "1vp053bwv8sr40p3pn4sjaiq570zp7knh99z9ynk30v7ml4cz2i8";
+  };
+
+  # remove for version >1.3
+  patches = [ ./determinism.patch ];
+
+  nativeBuildInputs = [ perl bdftopcf bdf2psf fonttosfnt mkfontdir ];
+
+  # configure sizes, encodings and variants
+  preConfigure =
+    (if targetsDat == null
+      then ''
+        cat << EOF > TARGETS.dat
+        SIZES = 11 12 13 14 15 16 17 18 22 \
+        11b 12b 13b 14b 15b 16b 17b 18b 22b 15i 16i 17i 18i
+        ENCODINGS = uni
+        EOF
+      ''
+      else ''cp "${targetsDat}" TARGETS.dat'') +
+    (if variantsDat == null
+      then ''
+        cat << EOF > VARIANTS.dat
+        COPYTO AccStress PApostropheAscii
+        COPYTO PAmComma AccGraveAscii
+        COPYTO Digit0Slashed Digit0
+        EOF
+      ''
+      else ''cp "${variantsDat}" VARIANTS.dat'');
+
+  postBuild = ''
+    # convert bdf fonts to psf
+    build=$(pwd)
+    mkdir {psf,otb}
+    cd ${bdf2psf}/share/bdf2psf
+    for i in $build/genbdf/*.bdf; do
+      name="$(basename $i .bdf)"
+      bdf2psf \
+        --fb "$i" standard.equivalents \
+        ascii.set+useful.set+linux.set 512 \
+        "$build/psf/$name.psf"
+    done
+    cd -
+
+    # convert unicode bdf fonts to otb
+    for i in $build/genbdf/*-uni.bdf; do
+      name="$(basename $i .bdf)"
+      fonttosfnt -v -o "$build/otb/$name.otb" "$i"
+    done
+  '';
+
+  postInstall = ''
+    # install psf fonts
+    fontDir="$out/share/consolefonts"
+    install -m 644 -D psf/*.psf -t "$fontDir"
+
+    # install otb fonts
+    fontDir="$out/share/fonts/X11/misc"
+    install -m 644 -D otb/*.otb -t "$fontDir"
+    mkfontdir "$fontDir"
+  '';
+
+  # Nix with multiple outputs adds several flags
+  # that the ./configure script doesn't understand.
+  configurePhase = ''
+    runHook preConfigure
+    ./configure --prefix="$out"
+    runHook postConfigure
+  '';
+
+  meta = with lib; {
+    description = "Monospace bitmap screen fonts for X11";
+    homepage = "https://people.mpi-inf.mpg.de/~uwe/misc/uw-ttyp0/";
+    license = with licenses; [ free mit ];
+    maintainers = with maintainers; [ rnhmjoj ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/data/fonts/uw-ttyp0/determinism.patch b/nixpkgs/pkgs/data/fonts/uw-ttyp0/determinism.patch
new file mode 100644
index 000000000000..8546ad35933f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/uw-ttyp0/determinism.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile.in b/Makefile.in
+index b9736cd..5740412 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -76,7 +76,7 @@ bdf : $(bdf)
+ 
+ genpcf/%.pcf.gz : genbdf/%.bdf
+ 	$(BDFTOPCF) $< > $(@:.pcf.gz=.pcf)
+-	gzip -9 -f $(@:.pcf.gz=.pcf)
++	gzip -n -9 -f $(@:.pcf.gz=.pcf)
+ 
+ genbdf/t0-11-uni.bdf : bdf/t0-11.bdf bdf/t0-12.bdf VARIANTS.dat mgl/unicode.mgl
+ 	$(MKSHALLOW) bdf/t0-12.bdf | cat - bdf/t0-11.bdf | $(BDFMANGLE) - VARIANTS.dat mgl/unicode.mgl > $@
diff --git a/nixpkgs/pkgs/data/fonts/vazir-fonts/default.nix b/nixpkgs/pkgs/data/fonts/vazir-fonts/default.nix
new file mode 100755
index 000000000000..a41013fd490c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vazir-fonts/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "vazir-fonts";
+  version = "22.1.0";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "rastikerdar";
+  repo = "vazir-font";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/truetype {} \;
+  '';
+  sha256 = "1nh3pyyw3082aizdwgyihh4z122z7kzp45ry7lzdhq9lshkpzglc";
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/vazir-font";
+    description = "A Persian (Farsi) Font - قلم (فونت) فارسی وزیر";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.linarcx ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/vdrsymbols/default.nix b/nixpkgs/pkgs/data/fonts/vdrsymbols/default.nix
new file mode 100644
index 000000000000..4b280df56441
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vdrsymbols/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  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 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..2f03dac3914b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vegur/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPackages, fetchzip }:
+
+let
+  version = "0.701";
+in fetchzip {
+  name = "vegur-font-${version}";
+
+  # Upstream doesn't version their URLs.
+  # http://dotcolon.net/font/vegur/ → http://dotcolon.net/DL/font/vegur.zip
+  url = "http://download.opensuse.org/repositories/M17N:/fonts/SLE_12_SP3/src/dotcolon-vegur-fonts-0.701-1.4.src.rpm";
+
+  postFetch = ''
+    ${buildPackages.rpmextract}/bin/rpmextract $downloadedFile
+    unzip vegur.zip
+    install -m444 -Dt $out/share/fonts/Vegur *.otf
+  '';
+  sha256 = "0iisi2scq72lyj7pc1f36fhfjnm676n5byl4zaavhbxpdrbc6d1v";
+
+  meta = with 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/victor-mono/default.nix b/nixpkgs/pkgs/data/fonts/victor-mono/default.nix
new file mode 100644
index 000000000000..940c0d76c46a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/victor-mono/default.nix
@@ -0,0 +1,39 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "victor-mono";
+  version = "1.4.1";
+in fetchFromGitHub rec {
+  name = "${pname}-${version}";
+
+  owner = "rubjo";
+  repo = pname;
+  rev = "v${version}";
+
+  # Upstream prefers we download from the website,
+  # but we really insist on a more versioned resource.
+  # Happily, tagged releases on github contain the same
+  # file `VictorMonoAll.zip` as from the website,
+  # so we extract it from the tagged release.
+  # Both methods produce the same file, but this way
+  # we can safely reason about what version it is.
+  postFetch = ''
+    tar xvf $downloadedFile --strip-components=2 ${pname}-${version}/public/VictorMonoAll.zip
+
+    mkdir -p $out/share/fonts/{true,open}type/${pname}
+
+    unzip -j VictorMonoAll.zip \*.ttf -d $out/share/fonts/truetype/${pname}
+    unzip -j VictorMonoAll.zip \*.otf -d $out/share/fonts/opentype/${pname}
+  '';
+
+  sha256 = "1g3jjrqd2fiw2hdifhff2fn20p5a0xfma3964f67ibdyri976zq5";
+
+  meta = with lib; {
+    description = "Free programming font with cursive italics and ligatures";
+    homepage = "https://rubjo.github.io/victor-mono";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ jpotier dtzWill ];
+    platforms = platforms.all;
+  };
+}
+
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..7c5d9dbba6ea
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vista-fonts-chs/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenvNoCC, fetchurl, cabextract }:
+
+stdenvNoCC.mkDerivation {
+  pname = "vista-fonts-chs";
+  version = "1";
+
+  src = fetchurl {
+    url = "http://web.archive.org/web/20161221192937if_/http://download.microsoft.com/download/d/6/e/d6e2ff26-5821-4f35-a18b-78c963b1535d/VistaFont_CHS.EXE";
+    # Alternative mirror:
+    # http://www.eeo.cn/download/font/VistaFont_CHS.EXE
+    sha256 = "1qwm30b8aq9piyqv07hv8b5bac9ms40rsdf8pwix5dyk8020i8xi";
+  };
+
+  nativeBuildInputs = [ cabextract ];
+
+  unpackPhase = ''
+    cabextract --lowercase --filter '*.TTF' $src
+  '';
+
+  installPhase = ''
+    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"
+  '';
+
+  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 = lib.licenses.unfree;
+    maintainers = [ lib.maintainers.ChengCat ];
+
+    # Set a non-zero priority to allow easy overriding of the
+    # fontconfig configuration files.
+    priority = 5;
+    platforms = 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..20d1b49d1580
--- /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 "urn:fontconfig: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..ca2ae302b3ee
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vista-fonts/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenvNoCC, fetchurl, cabextract }:
+
+stdenvNoCC.mkDerivation {
+  pname = "vista-fonts";
+  version = "1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/mscorefonts2/cabs/PowerPointViewer.exe";
+    sha256 = "07vhjdw8iip7gxk6wvp4myhvbn9619g10j9qvpbzz4ihima57ry4";
+  };
+
+  nativeBuildInputs = [ cabextract ];
+
+  unpackPhase = ''
+    cabextract --lowercase --filter ppviewer.cab $src
+    cabextract --lowercase --filter '*.TTF' ppviewer.cab
+  '';
+
+  installPhase = ''
+    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
+  '';
+
+  meta = {
+    description = "Some TrueType fonts from Microsoft Windows Vista (Calibri, Cambria, Candara, Consolas, Constantia, Corbel)";
+    homepage = "http://www.microsoft.com/typography/ClearTypeFonts.mspx";
+    license = 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;
+  };
+}
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..3f8a9b9b5444
--- /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 "urn:fontconfig: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/vollkorn/default.nix b/nixpkgs/pkgs/data/fonts/vollkorn/default.nix
new file mode 100644
index 000000000000..6c5836da5b05
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vollkorn/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchzip }:
+let
+  pname = "vollkorn";
+  version = "4.105";
+in
+fetchzip {
+  name = "${pname}-${version}";
+  url = "http://vollkorn-typeface.com/download/vollkorn-${builtins.replaceStrings ["."] ["-"] version}.zip";
+  sha256 = "0srff2nqs7353mqcpmvaq156lamfh621py4h1771n0l9ix2c8mss";
+  stripRoot = false;
+
+  postFetch = ''
+    mkdir -pv $out/share/{doc/${pname}-${version},fonts/{opentype,truetype,WOFF,WOFF2}}
+    unzip $downloadedFile
+    cp -v {Fontlog,OFL-FAQ,OFL}.txt $out/share/doc/${pname}-${version}/
+    cp -v PS-OTF/*.otf $out/share/fonts/opentype
+    cp -v TTF/*.ttf $out/share/fonts/truetype
+    cp -v WOFF/*.woff $out/share/fonts/WOFF
+    cp -v WOFF2/*.woff2 $out/share/fonts/WOFF2
+  '';
+
+  meta = with lib; {
+    homepage = "http://vollkorn-typeface.com/";
+    description = "The free and healthy typeface for bread and butter use";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.schmittlauch ];
+  };
+}
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..cf45152178ec
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/weather-icons/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchzip }:
+
+let
+  version = "2.0.10";
+in fetchzip {
+  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 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/work-sans/default.nix b/nixpkgs/pkgs/data/fonts/work-sans/default.nix
new file mode 100644
index 000000000000..16a0e9ac021a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/work-sans/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "1.6";
+in fetchFromGitHub {
+  name = "work-sans-${version}";
+
+  owner = "weiweihuanghuang";
+  repo = "Work-Sans";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -m444 -Dt $out/share/fonts/opentype/ fonts/desktop/*.otf
+    install -m444 -Dt $out/share/fonts/truetype/ fonts/webfonts/ttf/*.ttf
+    install -m444 -Dt $out/share/fonts/woff/     fonts/webfonts/woff/*.woff
+    install -m444 -Dt $out/share/fonts/woff2/    fonts/webfonts/woff2/*.woff2
+  '';
+
+  sha256 = "01kjidk6zv80rqxapcdwhd9wxzrjfc6lj4gkf6dwa4sskw5x3b8a";
+
+  meta = with lib; {
+    description = "A grotesque sans";
+    homepage = "https://weiweihuanghuang.github.io/Work-Sans/";
+    license = licenses.ofl;
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
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..f7d3b0333c5e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/wqy-microhei/default.nix
@@ -0,0 +1,23 @@
+{ lib, 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 = lib.licenses.asl20;
+    maintainers = [ lib.maintainers.pkmx ];
+    platforms = 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..5d461d0f5b00
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/wqy-zenhei/default.nix
@@ -0,0 +1,25 @@
+{ lib, 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 = lib.licenses.gpl2; # with font embedding exceptions
+    maintainers = [ lib.maintainers.pkmx ];
+    platforms = 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..9e3c013f44de
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/xits-math/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub, python3Packages}:
+
+stdenv.mkDerivation rec {
+  pname = "xits-math";
+  version = "1.302";
+
+  src = fetchFromGitHub {
+    owner = "alif-type";
+    repo = "xits";
+    rev = "v${version}";
+    sha256 = "1x3r505dylz9rz8dj98h5n9d0zixyxmvvhnjnms9qxdrz9bxy9g1";
+  };
+
+  nativeBuildInputs = (with python3Packages; [ python fonttools fontforge ]);
+
+  postPatch = ''
+    rm *.otf
+  '';
+
+  installPhase = ''
+    install -m444 -Dt $out/share/fonts/opentype *.otf
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/alif-type/xits";
+    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/xkcd-font/default.nix b/nixpkgs/pkgs/data/fonts/xkcd-font/default.nix
new file mode 100644
index 000000000000..af740e408981
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/xkcd-font/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "xkcd-font";
+  version = "unstable-2017-08-24";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "ipython";
+  repo = pname;
+  rev = "5632fde618845dba5c22f14adc7b52bf6c52d46d";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -Dm444 -t $out/share/fonts/opentype/ xkcd/build/xkcd.otf
+    install -Dm444 -t $out/share/fonts/truetype/ xkcd-script/font/xkcd-script.ttf
+  '';
+  sha256 = "0xhwa53aiz20763jb9nvbr2zq9k6jl69p07dc4b0apwrrwz0jfr1";
+
+  meta = with lib; {
+    description = "The xkcd font";
+    homepage = "https://github.com/ipython/xkcd-font";
+    license = licenses.cc-by-nc-30;
+    platforms = platforms.all;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/yanone-kaffeesatz/default.nix b/nixpkgs/pkgs/data/fonts/yanone-kaffeesatz/default.nix
new file mode 100644
index 000000000000..bd610938154d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/yanone-kaffeesatz/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "yanone-kaffeesatz-2004";
+
+  url = "https://yanone.de/2015/data/UIdownloads/Yanone%20Kaffeesatz.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "190c4wx7avy3kp98lsyml7kc0jw7csf5n79af2ypbkhsadfsy8di";
+
+  meta = {
+    description = "The free font classic";
+    maintainers = with lib.maintainers; [ mt-caret ];
+    platforms = with lib.platforms; all;
+    homepage = "https://yanone.de/fonts/kaffeesatz/";
+    license = lib.licenses.ofl;
+  };
+}
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..a244c04a65cd
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/zilla-slab/default.nix
@@ -0,0 +1,33 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.002";
+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 = "1b1ys28hyjcl4qwbnsyi6527nj01g3d6id9jl23fv6f8fjm4ph0f";
+
+  meta = with 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;
+  };
+}