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/0xproto/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/3270font/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/agave/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/aileron/default.nix32
-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/alice/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/alkalami/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/amiri/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/andagii/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/andika/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/ankacoder/condensed.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/ankacoder/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/annapurna-sil/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/anonymous-pro/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/arkpandora/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/arphic/default.nix76
-rw-r--r--nixpkgs/pkgs/data/fonts/atkinson-hyperlegible/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/aurulent-sans/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/azeret-mono/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/b612/default.nix44
-rw-r--r--nixpkgs/pkgs/data/fonts/babelstone-han/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/baekmuk-ttf/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/bakoma-ttf/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/barlow/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/behdad-fonts/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/blackout/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/borg-sans-mono/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/bqn386/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/bront/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/cabin/default.nix42
-rw-r--r--nixpkgs/pkgs/data/fonts/caladea/cambria-alias.conf18
-rw-r--r--nixpkgs/pkgs/data/fonts/caladea/default.nix42
-rw-r--r--nixpkgs/pkgs/data/fonts/camingo-code/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/cantarell-fonts/default.nix57
-rw-r--r--nixpkgs/pkgs/data/fonts/cardo/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/carlito/calibri-alias.conf18
-rw-r--r--nixpkgs/pkgs/data/fonts/carlito/default.nix38
-rw-r--r--nixpkgs/pkgs/data/fonts/cascadia-code/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/catamaran/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/ccsymbols/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/charis-sil/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/cherry/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/chonburi/default.nix41
-rw-r--r--nixpkgs/pkgs/data/fonts/chunk/default.nix38
-rw-r--r--nixpkgs/pkgs/data/fonts/clearlyU/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/cm-unicode/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/cnstrokeorder/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/comfortaa/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/comic-mono/comic-mono-weight.conf14
-rw-r--r--nixpkgs/pkgs/data/fonts/comic-mono/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/comic-neue/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf18
-rw-r--r--nixpkgs/pkgs/data/fonts/comic-relief/default.nix45
-rw-r--r--nixpkgs/pkgs/data/fonts/commit-mono/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/cooper-hewitt/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/courier-prime/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/cozette/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/creep/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/crimson-pro/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/crimson/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/culmus/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/curie/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/d2coding/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/dancing-script/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/dejavu-fonts/default.nix65
-rw-r--r--nixpkgs/pkgs/data/fonts/dina/default.nix78
-rw-r--r--nixpkgs/pkgs/data/fonts/dm-sans/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/dosemu-fonts/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/dosis/default.nix41
-rw-r--r--nixpkgs/pkgs/data/fonts/dotcolon-fonts/default.nix49
-rw-r--r--nixpkgs/pkgs/data/fonts/doulos-sil/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/eb-garamond/default.nix28
-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/edwin/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/efont-unicode/default.nix54
-rw-r--r--nixpkgs/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix38
-rw-r--r--nixpkgs/pkgs/data/fonts/emojione/default.nix50
-rw-r--r--nixpkgs/pkgs/data/fonts/encode-sans/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/envypn-font/default.nix50
-rw-r--r--nixpkgs/pkgs/data/fonts/et-book/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/eunomia/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/ezra-sil/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/f1_8/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/f5_6/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/fa_1/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/fantasque-sans-mono/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/fanwood/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/ferrum/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/fg-virgil/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/fira-code/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/fira-code/symbols.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/fira-go/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/fixedsys-excelsior/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/font-awesome/default.nix54
-rw-r--r--nixpkgs/pkgs/data/fonts/fraunces/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/freefont-ttf/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/galatia-sil/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/gandom-fonts/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/garamond-libre/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/gdouros/default.nix46
-rw-r--r--nixpkgs/pkgs/data/fonts/gelasio/default.nix38
-rw-r--r--nixpkgs/pkgs/data/fonts/gentium-book-basic/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/gentium/default.nix45
-rw-r--r--nixpkgs/pkgs/data/fonts/glasstty-ttf/default.nix18
-rw-r--r--nixpkgs/pkgs/data/fonts/go-font/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/gohufont/default.nix69
-rw-r--r--nixpkgs/pkgs/data/fonts/google-fonts/default.nix70
-rw-r--r--nixpkgs/pkgs/data/fonts/goudy-bookletter-1911/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/gubbi/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/gyre/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/hack/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/hackgen/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/hackgen/nerdfont.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/hanazono/default.nix42
-rw-r--r--nixpkgs/pkgs/data/fonts/hannom/default.nix38
-rw-r--r--nixpkgs/pkgs/data/fonts/hasklig/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/helvetica-neue-lt-std/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/hermit/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/hubot-sans/default.nix42
-rw-r--r--nixpkgs/pkgs/data/fonts/hyperscrypt/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/i-dot-ming/default.nix49
-rw-r--r--nixpkgs/pkgs/data/fonts/ia-writer-duospace/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/ibm-plex/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/inconsolata/default.nix25
-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.nix40
-rw-r--r--nixpkgs/pkgs/data/fonts/intel-one-mono/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/inter/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/bin.nix47
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/comfy.nix76
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/default.nix145
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/node.nix17
-rwxr-xr-xnixpkgs/pkgs/data/fonts/iosevka/update-bin.sh28
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/variants.nix93
-rw-r--r--nixpkgs/pkgs/data/fonts/ipaexfont/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/ipafont/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/ir-standard-fonts/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/iwona/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/jost/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/joypixels/default.nix113
-rw-r--r--nixpkgs/pkgs/data/fonts/julia-mono/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/junction/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/junicode/default.nix51
-rw-r--r--nixpkgs/pkgs/data/fonts/junicode/test-vf.tex46
-rw-r--r--nixpkgs/pkgs/data/fonts/junicode/test.tex46
-rw-r--r--nixpkgs/pkgs/data/fonts/junicode/tests.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/junicode/tex-font-path.patch166
-rw-r--r--nixpkgs/pkgs/data/fonts/kacst/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/kanit/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/kanji-stroke-order-font/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/kawkab-mono/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/khmeros/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/knewave/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/kochi-substitute-naga10/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/kochi-substitute/default.nix48
-rw-r--r--nixpkgs/pkgs/data/fonts/kode-mono/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/kreative-square-fonts/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/lalezar-fonts/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/lao/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/last-resort/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/lato/default.nix45
-rw-r--r--nixpkgs/pkgs/data/fonts/league-gothic/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/league-of-moveable-type/default.nix62
-rw-r--r--nixpkgs/pkgs/data/fonts/league-script-number-one/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/league-spartan/default.nix40
-rw-r--r--nixpkgs/pkgs/data/fonts/lexend/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/liberastika/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/liberation-fonts/default.nix69
-rw-r--r--nixpkgs/pkgs/data/fonts/liberation-sans-narrow/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/libertine/default.nix54
-rw-r--r--nixpkgs/pkgs/data/fonts/libertinus/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/libre-baskerville/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/libre-bodoni/default.nix41
-rw-r--r--nixpkgs/pkgs/data/fonts/libre-caslon/default.nix46
-rw-r--r--nixpkgs/pkgs/data/fonts/libre-franklin/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/linden-hill/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/line-awesome/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/linearicons-free/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/linja-pi-pu-lukin/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/linja-sike/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/lklug-sinhala/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/lmmath/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/lmodern/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/lohit-fonts/default.nix63
-rw-r--r--nixpkgs/pkgs/data/fonts/luculent/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/lxgw-wenkai/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/manrope/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/maple-font/default.nix77
-rw-r--r--nixpkgs/pkgs/data/fonts/marathi-cursive/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/martian-mono/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/material-design-icons/default.nix45
-rw-r--r--nixpkgs/pkgs/data/fonts/material-icons/default.nix38
-rw-r--r--nixpkgs/pkgs/data/fonts/material-symbols/default.nix45
-rw-r--r--nixpkgs/pkgs/data/fonts/medio/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/melete/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.nix45
-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.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/mona-sans/default.nix41
-rw-r--r--nixpkgs/pkgs/data/fonts/monocraft/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/monoid/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/mononoki/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/montserrat/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/mph-2b-damase/default.nix21
-rw-r--r--nixpkgs/pkgs/data/fonts/mplus-outline-fonts/default.nix61
-rw-r--r--nixpkgs/pkgs/data/fonts/mro-unicode/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/myrica/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/nacelle/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/nafees/default.nix62
-rw-r--r--nixpkgs/pkgs/data/fonts/nahid-fonts/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/nanum-gothic-coding/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/nanum/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/nasin-nanpa/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/national-park/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/navilu/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/nerdfonts/default.nix72
-rw-r--r--nixpkgs/pkgs/data/fonts/nerdfonts/shas.nix69
-rwxr-xr-xnixpkgs/pkgs/data/fonts/nerdfonts/update.sh26
-rw-r--r--nixpkgs/pkgs/data/fonts/nerdfonts/version.nix1
-rw-r--r--nixpkgs/pkgs/data/fonts/nika-fonts/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/norwester/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/ocr-a/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/office-code-pro/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/oldsindhi/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/oldstandard/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/open-dyslexic/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/open-fonts/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/open-sans/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/openmoji/build.patch77
-rw-r--r--nixpkgs/pkgs/data/fonts/openmoji/default.nix88
-rw-r--r--nixpkgs/pkgs/data/fonts/orbitron/default.nix48
-rw-r--r--nixpkgs/pkgs/data/fonts/ostrich-sans/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/overpass/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/oxygenfonts/default.nix53
-rw-r--r--nixpkgs/pkgs/data/fonts/parastoo-fonts/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/pecita/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/penna/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/poly/default.nix50
-rw-r--r--nixpkgs/pkgs/data/fonts/powerline-fonts/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/powerline-symbols/default.nix18
-rw-r--r--nixpkgs/pkgs/data/fonts/pretendard/default.nix58
-rw-r--r--nixpkgs/pkgs/data/fonts/prociono/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/profont/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/proggyfonts/default.nix44
-rw-r--r--nixpkgs/pkgs/data/fonts/public-sans/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/quattrocento-sans/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/quattrocento/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/quivira/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/raleway/default.nix40
-rw-r--r--nixpkgs/pkgs/data/fonts/recursive/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/redhat-official/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/rhodium-libre/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/ricty/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/rictydiminished-with-firacode/default.nix49
-rw-r--r--nixpkgs/pkgs/data/fonts/roboto-mono/default.nix88
-rw-r--r--nixpkgs/pkgs/data/fonts/roboto-serif/default.nix42
-rw-r--r--nixpkgs/pkgs/data/fonts/roboto-slab/default.nix41
-rw-r--r--nixpkgs/pkgs/data/fonts/roboto/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/rounded-mgenplus/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/route159/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/rubik/default.nix103
-rw-r--r--nixpkgs/pkgs/data/fonts/ruwudu/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/sahel-fonts/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/samim-fonts/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/sampradaya/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/sarabun/default.nix41
-rw-r--r--nixpkgs/pkgs/data/fonts/scheherazade/default.nix54
-rw-r--r--nixpkgs/pkgs/data/fonts/scientifica/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/seshat/default.nix42
-rw-r--r--nixpkgs/pkgs/data/fonts/shabnam-fonts/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/shrikhand/default.nix29
-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/sil-abyssinica/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/sil-padauk/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/sitelen-seli-kiwen/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/smc-chilanka/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/smiley-sans/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/sniglet/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/sorts-mill-goudy/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/source-code-pro/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/source-han-code-jp/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/source-han/default.nix133
-rw-r--r--nixpkgs/pkgs/data/fonts/source-sans-pro/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/source-sans/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/source-serif-pro/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/source-serif/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/spleen/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/stix-otf/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/stix-two/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/sudo/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/tai-languages/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/takao/default.nix28
-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.nix41
-rw-r--r--nixpkgs/pkgs/data/fonts/tenderness/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/terminus-font-ttf/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/terminus-font/SOURCE_DATE_EPOCH-for-otb.patch83
-rw-r--r--nixpkgs/pkgs/data/fonts/terminus-font/default.nix49
-rw-r--r--nixpkgs/pkgs/data/fonts/termsyn/default.nix26
-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/the-neue-black/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/theano/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/tibetan-machine/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/times-newer-roman/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/tipa/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/tlwg/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/tt2020/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/ttf-bitstream-vera/default.nix21
-rw-r--r--nixpkgs/pkgs/data/fonts/ttf-envy-code-r/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/ttf-tw-moe/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix42
-rw-r--r--nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix116
-rw-r--r--nixpkgs/pkgs/data/fonts/u001/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/ubuntu-font-family/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix61
-rw-r--r--nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/undefined-medium/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/unfonts-core/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/uni-vga/default.nix56
-rw-r--r--nixpkgs/pkgs/data/fonts/unifont/default.nix53
-rw-r--r--nixpkgs/pkgs/data/fonts/unifont_upper/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/unscii/default.nix71
-rw-r--r--nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix89
-rw-r--r--nixpkgs/pkgs/data/fonts/uw-ttyp0/determinism.patch13
-rw-r--r--nixpkgs/pkgs/data/fonts/vazir-code-font/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/vazir-fonts/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/vdrsymbols/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/vegur/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/victor-mono/default.nix38
-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-cht/default.nix41
-rw-r--r--nixpkgs/pkgs/data/fonts/vista-fonts-cht/no-op.conf9
-rw-r--r--nixpkgs/pkgs/data/fonts/vista-fonts/default.nix42
-rw-r--r--nixpkgs/pkgs/data/fonts/vista-fonts/no-op.conf9
-rw-r--r--nixpkgs/pkgs/data/fonts/vollkorn/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/weather-icons/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/work-sans/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/wqy-microhei/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/wqy-zenhei/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/xits-math/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/xkcd-font/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/yanone-kaffeesatz/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/zilla-slab/default.nix39
360 files changed, 13683 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/data/fonts/0xproto/default.nix b/nixpkgs/pkgs/data/fonts/0xproto/default.nix
new file mode 100644
index 000000000000..9b7fd3959362
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/0xproto/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, stdenvNoCC
+, fetchzip
+}:
+stdenvNoCC.mkDerivation rec {
+  pname = "0xproto";
+  version = "2.100";
+
+  src = let
+    underscoreVersion = builtins.replaceStrings ["."] ["_"] version;
+  in
+    fetchzip {
+      url = "https://github.com/0xType/0xProto/releases/download/${version}/0xProto_${underscoreVersion}.zip";
+      hash = "sha256-hUQGCsktnun9924+k6ECQuQ1Ddl/qGmtuLWERh/vDpc=";
+    };
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm644 -t $out/share/fonts/opentype/ *.otf
+    install -Dm644 -t $out/share/fonts/truetype/ *.ttf
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Free and Open-source font for programming";
+    homepage = "https://github.com/0xType/0xProto";
+    license = licenses.ofl;
+    maintainers = [ maintainers.edswordsmith ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/3270font/default.nix b/nixpkgs/pkgs/data/fonts/3270font/default.nix
new file mode 100644
index 000000000000..56ee110a4b35
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/3270font/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "3270font";
+  version = "3.0.1";
+
+  src = fetchzip {
+    url = "https://github.com/rbanffy/3270font/releases/download/v${version}/3270_fonts_d916271.zip";
+    sha256 = "sha256-Zi6Lp5+sqfjIaHmnaaemaw3i+hXq9mqIsK/81lTkwfM=";
+    stripRoot = false;
+  };
+
+  dontPatch = true;
+  dontConfigure = true;
+  dontBuild = true;
+  doCheck = false;
+  dontFixup = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 -t $out/share/fonts/opentype/ *.otf
+    install -Dm644 -t $out/share/fonts/truetype/ *.ttf
+
+    runHook postInstall
+  '';
+
+  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 = [ ];
+    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..d2ecda3a1118
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/agave/default.nix
@@ -0,0 +1,37 @@
+{ lib, fetchurl, stdenv }:
+
+let
+  pname = "agave";
+  version = "37";
+
+  mkAg = name: hash: fetchurl {
+    url = "https://github.com/agarick/agave/releases/download/v${version}/Agave-${name}.ttf";
+    sha256 = hash;
+    name = "Agave-${name}.ttf";
+  };
+  # There are slashed variants, but with same name so only bundle the default versions for now:
+  fonts = [
+    (mkAg "Regular" "sha256-vX1VhEgqy9rQ7hPmAgBGxKyIs2QSAYqZC/mL/2BIOrA=")
+    (mkAg "Bold" "sha256-Ax/l/RKyc03law0ThiLac/7HHV4+YxibKzcZnjZs6VI=")
+  ];
+
+in stdenv.mkDerivation {
+  inherit pname version;
+  srcs = fonts;
+  sourceRoot = ".";
+
+  dontUnpack = true;
+
+  installPhase = ''
+    install -D $srcs -t $out/share/fonts/truetype/
+  '';
+
+  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..fa92d9296069
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/aileron/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "102";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "aileron";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-Ht48gwJZrn0djo1yl6jHZ4+0b710FVwStiC1Zk5YXME=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
+    description = "Helvetica font in nine weights";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars minijackson ];
+    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..03efbff4ebf5
--- /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 = "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/alice/default.nix b/nixpkgs/pkgs/data/fonts/alice/default.nix
new file mode 100644
index 000000000000..985ba09926f4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/alice/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchzip }:
+
+stdenv.mkDerivation (attrs: {
+  pname = "Alice";
+  version = "2.003";
+
+  outputs = [ "out" "woff2" ];
+
+  src = fetchzip {
+    url = with attrs; "https://github.com/cyrealtype/${pname}/releases/download/v${version}/${pname}-v${version}.zip";
+    stripRoot = false;
+    hash = "sha256-p+tE3DECfJyBIPyafGZ8jDYQ1lPb+iAnEwLyaUy7DW0=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/truetype fonts/ttf/*.ttf
+    install -m444 -Dt $out/share/fonts/opentype fonts/otf/*.otf
+    install -m444 -Dt $woff2/share/fonts/woff2 fonts/webfonts/*.woff2
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Open-source font by Ksenia Erulevich";
+    homepage = "https://github.com/cyrealtype/Alice";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ncfavier ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/alkalami/default.nix b/nixpkgs/pkgs/data/fonts/alkalami/default.nix
new file mode 100644
index 000000000000..b9dfd27e5796
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/alkalami/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "alkalami";
+  version = "3.000";
+
+  src = fetchzip {
+    url = "https://software.sil.org/downloads/r/alkalami/Alkalami-${version}.zip";
+    hash = "sha256-ra664VbUKc8XpULCWhLMVnc1mW4pqZvbvwuBvRQRhcY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/{doc/${pname},fonts/truetype}
+    mv *.ttf $out/share/fonts/truetype/
+    mv *.txt documentation $out/share/doc/${pname}/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://software.sil.org/alkalami/";
+    description = "Font for Arabic-based writing systems in the Kano region of Nigeria and in Niger";
+    license = licenses.ofl;
+    maintainers = [ maintainers.vbgl ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/amiri/default.nix b/nixpkgs/pkgs/data/fonts/amiri/default.nix
new file mode 100644
index 000000000000..de65e7fb18b7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/amiri/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "amiri";
+  version = "1.000";
+
+  src = fetchzip {
+    url = "https://github.com/alif-type/amiri/releases/download/${version}/Amiri-${version}.zip";
+    hash = "sha256-WXxKLYIIKe01WWZrI1aLOv65wRgn7aqHl6Codf4foVw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    mv *.ttf $out/share/fonts/truetype/
+    mkdir -p $out/share/doc/${pname}-${version}
+    mv {*.html,*.txt,*.md} $out/share/doc/${pname}-${version}/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "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..22b686684f98
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/andagii/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "andagii";
+  version = "1.0.2";
+
+  src = fetchzip {
+    url = "http://www.i18nguy.com/unicode/andagii.zip";
+    curlOpts = "--user-agent 'Mozilla/5.0'";
+    hash = "sha256-U7wC55G8jIvMMyPcEiJQ700A7nkWdgWK1LM0F/wgDCg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp -v ANDAGII_.TTF $out/share/fonts/truetype/andagii.ttf
+
+    runHook postInstall
+  '';
+
+  # 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 ];
+    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..897c4ab3c5d1
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/andika/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "andika";
+  version = "6.200";
+
+  src = fetchzip {
+    url = "https://software.sil.org/downloads/r/andika/Andika-${version}.zip";
+    hash = "sha256-Ge+Yq3+1IJ+mXhjw7Vtpu5DIWiMfwOdEH/S1RSzYh3A=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 OFL.txt OFL-FAQ.txt README.txt FONTLOG.txt -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://software.sil.org/andika";
+    description = "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..676c3cf85602
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ankacoder/condensed.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "ankacoder-condensed";
+  version = "1.100";
+
+  src = fetchzip {
+    url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/anka-coder-fonts/AnkaCoderCondensed.${version}.zip";
+    stripRoot = false;
+    hash = "sha256-NHrkV4Sb7i+DC4e4lToEYzah3pI+sKyYf2rGbhWj7iY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  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..c363f025bfd2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ankacoder/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "ankacoder";
+  version = "1.100";
+
+  src = fetchzip {
+    url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/anka-coder-fonts/AnkaCoder.${version}.zip";
+    stripRoot = false;
+    hash = "sha256-14ItaSQ/fO/WDq0O4SXGWnZgiM0kayJrWQgsKb7bsyY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  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/annapurna-sil/default.nix b/nixpkgs/pkgs/data/fonts/annapurna-sil/default.nix
new file mode 100644
index 000000000000..606b0f0161c2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/annapurna-sil/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "annapurna-sil";
+  version = "2.000";
+
+  src = fetchzip {
+    url = "https://software.sil.org/downloads/r/annapurna/AnnapurnaSIL-${version}.zip";
+    hash = "sha256-tvh1E9uGCikJgjmbn28gD7rUgBdKjtvdwgoRIeccGq8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 OFL.txt OFL-FAQ.txt README.txt FONTLOG.txt -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://software.sil.org/annapurna";
+    description = "Unicode-based font family with broad support for writing systems that use the Devanagari script";
+    longDescription = ''
+      Annapurna SIL is a Unicode-based font family with broad support for writing systems that use the Devanagari script. Inspired by traditional calligraphic forms, the design is intended to be highly readable, reasonably compact, and visually attractive.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.kmein ];
+  };
+}
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..f498e2780b3c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/anonymous-pro/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "anonymouspro";
+  version = "1.002";
+
+  src = fetchzip {
+    url = "https://www.marksimonson.com/assets/content/fonts/AnonymousPro-${lib.replaceStrings ["."] ["_"] version}.zip";
+    hash = "sha256-FhyzV4By8XKN9EyukAknzml/7lUuV6Evnt6Ht3H6TUU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 *.txt -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
+
+  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 ];
+    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..81a175b944b8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/arkpandora/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "arkpandora";
+  version = "2.04";
+
+  src = fetchurl {
+    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"
+    ];
+    hash = "sha256-ofyVPJjQD8w+8WgETF2UcJlfbSsKQgBsH3ob+yjvrpo=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Font, metrically identical to Arial and Times New Roman";
+    license = lib.licenses.bitstreamVera;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/arphic/default.nix b/nixpkgs/pkgs/data/fonts/arphic/default.nix
new file mode 100644
index 000000000000..ed55855e4347
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/arphic/default.nix
@@ -0,0 +1,76 @@
+{ lib, stdenvNoCC, fetchurl, mkfontdir, mkfontscale }:
+
+let
+  version = "0.2.20080216.2";
+in
+{
+  arphic-ukai = stdenvNoCC.mkDerivation rec {
+    pname = "arphic-ukai";
+    inherit version;
+
+    src = fetchurl {
+      url = "mirror://ubuntu/pool/main/f/fonts-${pname}/fonts-${pname}_${version}.orig.tar.bz2";
+      hash = "sha256-tJaNc1GfT4dH6FVI+4XSG2Zdob8bqQCnxJmXbmqK49I=";
+    };
+
+    nativeBuildInputs = [
+      mkfontscale
+      mkfontdir
+    ];
+
+    installPhase = ''
+      runHook preInstall
+
+      install -D -v ukai.ttc $out/share/fonts/truetype/arphic-ukai.ttc
+      cd $out/share/fonts
+      mkfontdir
+      mkfontscale
+
+      runHook postInstall
+    '';
+
+    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 = stdenvNoCC.mkDerivation rec {
+    pname = "arphic-uming";
+    inherit version;
+
+    src = fetchurl {
+      url = "mirror://ubuntu/pool/main/f/fonts-${pname}/fonts-${pname}_${version}.orig.tar.bz2";
+      hash = "sha256-48GeBOp6VltKz/bx5CSAhNLhB1LjBb991sdugIYNwds=";
+    };
+
+    nativeBuildInputs = [
+      mkfontscale
+      mkfontdir
+    ];
+
+    installPhase = ''
+      runHook preInstall
+
+      install -D -v uming.ttc $out/share/fonts/truetype/arphic-uming.ttc
+      cd $out/share/fonts
+      mkfontdir
+      mkfontscale
+
+      runHook postInstall
+    '';
+
+    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/atkinson-hyperlegible/default.nix b/nixpkgs/pkgs/data/fonts/atkinson-hyperlegible/default.nix
new file mode 100644
index 000000000000..e8b09cfb637c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/atkinson-hyperlegible/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation {
+  pname = "atkinson-hyperlegible";
+  version = "unstable-2021-04-29";
+
+  src = fetchFromGitHub {
+    owner = "googlefonts";
+    repo = "atkinson-hyperlegible";
+    rev = "1cb311624b2ddf88e9e37873999d165a8cd28b46";
+    hash = "sha256-RN4m5gyY2OiPzRXgFVQ3pq6JdkPcMxV4fRlX2EK+gOM=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 -t $out/share/fonts/opentype fonts/otf/*
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Typeface designed to offer greater legibility and readability for low vision readers";
+    homepage = "https://brailleinstitute.org/freefont";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ zhaofengli ];
+  };
+}
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..f1ee19b3b157
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/aurulent-sans/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "aurulent-sans";
+  version = "0.1";
+
+  src = fetchFromGitHub {
+    owner = "deepfire";
+    repo = "hartke-aurulent-sans";
+    rev = "${pname}-${version}";
+    hash = "sha256-M/duhgqxXZJq5su9FrsGjZdm+wtO5B5meoDomde+GwY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.otf -t $out/share/fonts
+
+    runHook postInstall
+  '';
+
+  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/azeret-mono/default.nix b/nixpkgs/pkgs/data/fonts/azeret-mono/default.nix
new file mode 100644
index 000000000000..dfaf98c965d2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/azeret-mono/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation {
+  pname = "azeret-mono";
+  version = "1.0";
+
+  src = fetchFromGitHub {
+    owner = "displaay";
+    repo = "Azeret";
+    rev = "3d45a6c3e094f08bfc70551b525bd2037cac51ba";
+    hash = "sha256-WC5a2O+/hdX+lLz81obcmq64wYpX48ZxsYPEaZUbFaY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 fonts/ttf/*.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Azeret Mono";
+    longDescription = ''
+      The story of the typeface began with a draft that was driven by an exploration of OCR fonts, past and futuristic operating systems, various interfaces and the nineties. The final result is more based on a desire to achieve an appearance of the typeface that could serve in operating systems. Thus the overall character is a conjunction of everything described with details that evoke a specific personality.
+
+      Azeret is a sans-serif typeface with a mono-linear character. Don’t go looking for too much contrast in the strokes! The circular parts of the letters do not have a smooth connection to the stems. The x-height is higher than usual and thus the ascenders and descenders are short. Alternates are also available which open the possibility of creating different moods. A number of them hint at a nineties aesthetic.
+
+      The monospaced sub-family is available for free and is also on Google Fonts. If you would like to explore Azeret more you can do it on our micro-site which we developed with Martin Ehrlich.
+
+      Designer: Martin Vácha, Daniel Quisek
+      Production: Renegade Fonts (Jan Charvát, Zuzana Konečná)
+    '';
+    homepage = "https://displaay.net/typeface/azeret/azeret-mono/";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ _21eleven ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/b612/default.nix b/nixpkgs/pkgs/data/fonts/b612/default.nix
new file mode 100644
index 000000000000..b78f3a9e85bf
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/b612/default.nix
@@ -0,0 +1,44 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "b612";
+  version = "1.008";
+
+  src = fetchFromGitHub {
+    owner = "polarsys";
+    repo = "b612";
+    rev = version;
+    hash = "sha256-uyBC8UNOwztCHXhR9XZuWDwrty0eClbo0E+gI1PmjEg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    mv fonts/ttf/*.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://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..6dfad42d2086
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/babelstone-han/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation {
+  pname = "babelstone-han";
+  version = "13.0.3";
+
+  src = fetchzip {
+    # upstream download links are unversioned, so hash changes
+    url = "https://web.archive.org/web/20200210125314/https://www.babelstone.co.uk/Fonts/Download/BabelStoneHan.zip";
+    hash = "sha256-LLhNtHu2hh5DY2XVSrLuVzzR6OtMdSSHetyA0k1IFs0=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Unicode CJK font with over 36000 Han characters";
+    homepage = "https://www.babelstone.co.uk/Fonts/Han.html";
+
+    license = licenses.arphicpl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ 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..3777f69fa567
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/baekmuk-ttf/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "baekmuk-ttf";
+  version = "2.2";
+
+  src = fetchurl {
+    url = "http://kldp.net/baekmuk/release/865-${pname}-${version}.tar.gz";
+    hash = "sha256-CKt9/7VdWIfMlCzjcPXjO3VqVfu06vC5DyRAcOjVGII=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts        ttf/*.ttf
+    install -m444 -Dt $out/share/doc/${pname}-${version}  COPYRIGHT*
+
+    runHook postInstall
+  '';
+
+  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..1d305674e6aa
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/bakoma-ttf/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "bakoma-ttf";
+  version = "2.2";
+
+  src = fetchurl {
+    name = "${pname}.tar.bz2";
+    url = "http://tarballs.nixos.org/sha256/1j1y3cq6ys30m734axc0brdm2q9n2as4h32jws15r7w5fwr991km";
+    hash = "sha256-dYaUMneFn1yC5lIMSLQSNmFRW16AdUXGqWBobzAbPsg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp ttf/*.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  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..ebdebb825384
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/barlow/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "barlow";
+  version = "1.422";
+
+  src = fetchzip {
+    url = "https://tribby.com/fonts/barlow/download/barlow-${version}.zip";
+    stripRoot = false;
+    hash = "sha256-aHAGPEgBkH41r7HR0D74OGCa7ta7Uo8Mgq4YVtYOwU8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 fonts/otf/*.otf -t $out/share/fonts/opentype
+    install -Dm644 fonts/ttf/*.ttf fonts/gx/*.ttf -t $out/share/fonts/truetype
+    install -Dm644 fonts/eot/*.eot -t $out/share/fonts/eot
+    install -Dm644 fonts/woff/*.woff -t $out/share/fonts/woff
+    install -Dm644 fonts/woff2/*.woff2 -t $out/share/fonts/woff2
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Grotesk variable font superfamily";
+    homepage = "https://tribby.com/fonts/barlow/";
+    license = licenses.ofl;
+    maintainers = [ ];
+    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..f7305e9de987
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/behdad-fonts/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "behdad-fonts";
+  version = "0.0.3";
+
+  src = fetchFromGitHub {
+    owner = "font-store";
+    repo = "BehdadFont";
+    rev = "v${version}";
+    hash = "sha256-gKfzxo3/bCMKXl2d6SP07ahIiNrUyrk/SN5XLND2lWY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/behrad-fonts {} \;
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/font-store/BehdadFont";
+    description = "Persian/Arabic Open Source Font";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/blackout/default.nix b/nixpkgs/pkgs/data/fonts/blackout/default.nix
new file mode 100644
index 000000000000..2a69a5e2dbf9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/blackout/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "blackout";
+  version = "2014-07-29";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "4864cfc1749590e9f78549c6e57116fe98480c0f";
+    hash = "sha256-UmJVmtuPQYW/w+mdnJw9Ql4R1xf/07l+/Ky1wX9WKqw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/*.ttf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Bad-ass, unholy-mother-shut-your-mouth stencil sans-serif";
+    longDescription = ''
+      Eats holes for breakfast lunch and dinner. Inspired by filling in
+      sans-serif newspaper headlines. Continually updated with coffee and
+      music. Makes your work louder than the next person’s.
+
+      Comes in three styles: Midnight (solid), 2AM (reversed), & Sunrise
+      (stroked).
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/blackout";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/borg-sans-mono/default.nix b/nixpkgs/pkgs/data/fonts/borg-sans-mono/default.nix
new file mode 100644
index 000000000000..8037e5dc645f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/borg-sans-mono/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation {
+  pname = "borg-sans-mono";
+  version = "0.2.0";
+
+  src = fetchzip {
+    # https://github.com/marnen/borg-sans-mono/issues/19
+    url = "https://github.com/marnen/borg-sans-mono/files/107663/BorgSansMono.ttf.zip";
+    hash = "sha256-nn7TGeVm45t7QI8+eEREBTFg9aShYYKtdEYEwQwO2fQ=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Droid Sans Mono Slashed + Hasklig-style ligatures";
+    homepage = "https://github.com/marnen/borg-sans-mono";
+    license = licenses.asl20;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ atila ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/bqn386/default.nix b/nixpkgs/pkgs/data/fonts/bqn386/default.nix
new file mode 100644
index 000000000000..35c59a39f37c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/bqn386/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation {
+  pname = "bqn386";
+  version = "unstable-2022-05-16";
+
+  src = fetchFromGitHub {
+    owner = "dzaima";
+    repo = "BQN386";
+    rev = "81e18d1eb8cb6b66df9e311b3b63ec086d910d18";
+    hash = "sha256-f0MbrxdkEiOqod41U07BvdDFDbFCqJuGyDIcx2Y24D0=";
+  };
+
+  outputs = [ "out" "woff2" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm444 -t $out/share/fonts/truetype *.ttf
+    install -Dm444 -t $woff2/share/fonts/woff2 *.woff2
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "APL and BQN font extending on APL386";
+    homepage = "https://dzaima.github.io/BQN386/";
+    license = lib.licenses.unlicense;
+    maintainers = with lib.maintainers; [ skykanin ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/bront/default.nix b/nixpkgs/pkgs/data/fonts/bront/default.nix
new file mode 100644
index 000000000000..36e6adb380df
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/bront/default.nix
@@ -0,0 +1,26 @@
+{ stdenvNoCC, lib, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation {
+  pname = "bront_fonts";
+  version = "unstable-2015-06-28";
+
+  src = fetchFromGitHub {
+    owner = "chrismwendt";
+    repo = "bront";
+    rev = "aef23d9a11416655a8351230edb3c2377061c077";
+    sha256 = "1sx2gv19pgdyccb38sx3qnwszksmva7pqa1c8m35s6cipgjhhgb4";
+  };
+
+  installPhase = ''
+    install -m444 -Dt $out/share/fonts/truetype *Bront.ttf
+  '';
+
+  meta = with lib; {
+    description = "Bront Fonts";
+    longDescription = "Ubuntu Mono Bront and DejaVu Sans Mono Bront fonts.";
+    homepage = "https://github.com/chrismwendt/bront";
+    license = with licenses; [ bitstreamVera ufl ];
+    platforms = platforms.all;
+    maintainers = [ maintainers.grburst ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/cabin/default.nix b/nixpkgs/pkgs/data/fonts/cabin/default.nix
new file mode 100644
index 000000000000..0c6327d1e542
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cabin/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "cabin";
+  version = "1.005";
+
+  src = fetchFromGitHub {
+    owner = "impallari";
+    repo = "Cabin";
+    rev = "982839c790e9dc57c343972aa34c51ed3b3677fd";
+    hash = "sha256-9l4QcwCot340Bq41ER68HSZGQ9h0opyzgG3DG/fVZ5s=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/opentype fonts/OTF/*.otf
+    install -m444 -Dt $out/share/doc/${pname}-${version} README.md FONTLOG.txt
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "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..b97dae690d9c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/caladea/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "caladea";
+  version = "20130214";
+
+  src = fetchurl {
+    url = "https://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/crosextrafonts-${version}.tar.gz";
+    hash = "sha256-xI0cL9YTycBslZw02nuDiAWeJAjSuxmEXcPtNfduTQk=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    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
+
+    runHook postInstall
+  '';
+
+  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 = "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..6bb3f02d7b1f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/camingo-code/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "camingo-code";
+  version = "1.0";
+
+  src = fetchzip {
+    url = "https://github.com/chrissimpkins/codeface/releases/download/font-collection/codeface-fonts.zip";
+    hash = "sha256-oo5pWDq6h0bmyGvfF9Bkh7WyjKX4dG8uclfIsWLhDw8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 camingo-code/*.ttf -t $out/share/fonts/truetype
+    install -Dm644 camingo-code/*.txt -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.myfonts.com/fonts/jan-fromm/camingo-code/";
+    description = "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..e1c18695db1e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cantarell-fonts/default.nix
@@ -0,0 +1,57 @@
+{ stdenv
+, lib
+, fetchurl
+, meson
+, ninja
+, python3
+, gettext
+, appstream-glib
+, gnome
+}:
+
+stdenv.mkDerivation rec {
+  pname = "cantarell-fonts";
+  version = "0.303.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "+UY6BlnGPlfjgf3XU88ZKSJTlcW0kTWYlCR2GDBTBBE=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    python3
+    python3.pkgs.psautohint
+    python3.pkgs.cffsubr
+    python3.pkgs.statmake
+    python3.pkgs.ufo2ft
+    python3.pkgs.setuptools
+    python3.pkgs.ufolib2
+    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 = "XeqHVdTQ7PTzxkjwfzS/BTR7+k/M69sfUKdRXGOTmZE=";
+
+  passthru = {
+    updateScript = gnome.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/cardo/default.nix b/nixpkgs/pkgs/data/fonts/cardo/default.nix
new file mode 100644
index 000000000000..c862ea7ce889
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cardo/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation {
+  pname = "cardo";
+  version = "1.04";
+
+  src = fetchzip {
+    url = "https://scholarsfonts.net/cardo104.zip";
+    stripRoot = false;
+    hash = "sha256-NU6/H5f0JBlVo3L3uUcl7IvNxPMXD8UQY9k5o2YA5Vo=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    mv *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Cardo is a large Unicode font specifically designed for the needs of classicists, Biblical scholars, medievalists, and linguists";
+    longDescription = ''
+      Cardo is a large Unicode font specifically designed for the needs of
+      classicists, Biblical scholars, medievalists, and linguists. It also
+      works well for general typesetting in situations where a high-quality Old
+      Style font is appropriate. Its large character set supports many modern
+      languages as well as those needed by scholars. Cardo also contains
+      features that are required for high-quality typography such as ligatures,
+      text figures (also known as old style numerals), true small capitals and
+      a variety of punctuation and space characters.
+    '';
+    homepage = "http://scholarsfonts.net/cardofnt.html";
+    license = licenses.ofl;
+    maintainers = with lib.maintainers; [ kmein ];
+    platforms = platforms.all;
+  };
+}
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..a83d8a547a15
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/carlito/default.nix
@@ -0,0 +1,38 @@
+{ lib, fetchurl, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "carlito";
+  version = "20130920";
+
+  src = fetchurl {
+    url = "https://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/crosextrafonts-carlito-${version}.tar.gz";
+    sha256 = "sha256-S9ErbLwyHBzxbaduLFhcklzpVqCAZ65vbGTv9sz9r1o=";
+  };
+
+  installPhase = ''
+    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
+  '';
+
+  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 = "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 upon his Lato font.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ ];
+
+    # 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..e4f92ebe71b3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "cascadia-code";
+  version = "2404.23";
+
+  src = fetchzip {
+    url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaCode-${version}.zip";
+    stripRoot = false;
+    hash = "sha256-Z2AzBeNiM6mc1OHCJRv0rUvH8WRygyQGSOvwbAISYHE=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 otf/static/*.otf -t $out/share/fonts/opentype
+    install -Dm644 ttf/static/*.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  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";
+    changelog = "https://github.com/microsoft/cascadia-code/raw/v${version}/FONTLOG.txt";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ ryanccn ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/catamaran/default.nix b/nixpkgs/pkgs/data/fonts/catamaran/default.nix
new file mode 100644
index 000000000000..253f458bc4b6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/catamaran/default.nix
@@ -0,0 +1,43 @@
+{
+  stdenvNoCC,
+  lib,
+  fetchzip,
+}:
+stdenvNoCC.mkDerivation rec {
+  pname = "catamaran";
+  version = "0-unstable-2024-03-02";
+
+  src = fetchzip {
+    url = "https://www.1001fonts.com/download/catamaran.zip";
+    stripRoot = false;
+    hash = "sha256-9s11lZSS4pYJZwl8Uk7qtdwfZ2bkoZkSIf1MkQlv7H4=";
+  };
+
+  stripRoot = false;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    mv *.ttf $out/share/fonts/truetype/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://fonts.google.com/specimen/Catamaran";
+    description = "A stylish sans-serif Tamil and Latin typeface";
+    longDescription = ''
+      Catamaran is a Unicode-compliant Latin and Tamil text type family designed for the digital age.
+      The Tamil is monolinear and was designed alongside the sans serif Latin and Devanagari family Palanquin.
+
+      It currently comprises of 9 text weights, making it a versatile family that strikes a balance between typographic conventions and that bit of sparkle.
+      (A catamaran is a multihulled vessel consisting of two parallel hulls of equal size.
+      The catamaran concept is a relative newcomer for Western boat designers, been used since time immemorial among the Dravidian people, in South India.)
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [wyred50];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/ccsymbols/default.nix b/nixpkgs/pkgs/data/fonts/ccsymbols/default.nix
new file mode 100644
index 000000000000..f31dc65a8a56
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ccsymbols/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenvNoCC, fetchurl, unzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "ccsymbols";
+  version = "2020-04-19";
+
+  src = fetchurl {
+    url = "https://www.ctrl.blog/file/${version}_cc-symbols.zip";
+    hash = "sha256-hkARhb8T6VgGAybYkVuPuebjhuk1dwiBJ1bZMwvYpMY=";
+  };
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [ unzip ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 CCSymbols.* -t $out/share/fonts/ccsymbols
+
+    runHook postInstall
+  '';
+
+  passthru = { inherit pname version; };
+
+  meta = with lib; {
+    description = "Creative Commons symbol font";
+    homepage = "https://www.ctrl.blog/entry/creative-commons-unicode-fallback-font.html";
+    maintainers = with maintainers; [ qyliss ];
+    license = licenses.publicDomain;
+    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..a75fabb9ae35
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/charis-sil/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "charis-sil";
+  version = "6.200";
+
+  src = fetchzip {
+    url = "https://software.sil.org/downloads/r/charis/CharisSIL-${version}.zip";
+    hash = "sha256-q451lec/l13Uanmr8K/C55Cr3avRvqQUkPK/ZZ1kgHo=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 OFL.txt OFL-FAQ.txt README.txt FONTLOG.txt -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://software.sil.org/charis";
+    description = "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..2e9577751551
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cherry/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, xorg }:
+
+stdenv.mkDerivation rec {
+  pname = "cherry";
+  version = "1.4";
+
+  src = fetchFromGitHub {
+    owner = "turquoise-hexagon";
+    repo = pname;
+    rev = version;
+    sha256 = "13zkxwp6r6kcxv4x459vwscr0n0sik4a3kcz5xnmlpvcdnbxi586";
+  };
+
+  nativeBuildInputs = [ xorg.fonttosfnt xorg.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/chonburi/default.nix b/nixpkgs/pkgs/data/fonts/chonburi/default.nix
new file mode 100644
index 000000000000..e3c4cddd7cae
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/chonburi/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "chonburi";
+  version = "unstable-2021-09-15";
+
+  src = fetchFromGitHub {
+    owner = "cadsondemak";
+    repo = pname;
+    rev = "daf26bf77d82fba50eaa3aa3fad905cb9f6b5e28";
+    sha256 = "sha256-oC7ZCfNOyvGtqT9+Ap/CfCHzdWNzeCuac2dJ9fctgB8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/doc/chonburi $out/share/fonts/{opentype,truetype}
+
+    cp $src/OFL.txt $src/BRIEF.md $out/share/doc/chonburi
+    cp $src/fonts/*.otf $out/share/fonts/opentype
+    cp $src/fonts/*.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://cadsondemak.github.io/chonburi/";
+    description = "Didonic Thai and Latin display typeface";
+    longDescription = ''
+      The objective of this project is to create a Thai and Latin Display
+      typeface. Chonburi is a display typeface with high contrast in a Didone
+      style. This single-weight typeface provides advance typographical support
+      with features such as discretionary ligature. This font can be extended
+      the family to other weights including both narrow and extended version. It
+      is also ready to be matched with other non-Latin script.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.toastal ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/chunk/default.nix b/nixpkgs/pkgs/data/fonts/chunk/default.nix
new file mode 100644
index 000000000000..5e92ae35b0a2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/chunk/default.nix
@@ -0,0 +1,38 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "chunk";
+  version = "2021-03-03";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "12a243f3fb7c7a68844901023f7d95d6eaf14104";
+    hash = "sha256-NMkRvrUgy9yzOT3a1rN6Ch/p8Cr902CwL4G0w7jVm1E=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/*.ttf
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Ultra-bold, ultra-awesome slab serif typeface";
+    longDescription = ''
+      Chunk is an ultra-bold slab serif typeface that is reminiscent of old
+      American Western woodcuts, broadsides, and newspaper headlines. Used
+      mainly for display, the fat block lettering is unreserved yet refined for
+      contemporary use.
+
+      In 2014, a new textured style was created by Tyler Finck called Chunk
+      Five Print. It contains the same glyphs as the original.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/chunk";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/clearlyU/default.nix b/nixpkgs/pkgs/data/fonts/clearlyU/default.nix
new file mode 100644
index 000000000000..c0824cf7d40e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/clearlyU/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchurl, xorg, 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 = [ xorg.fonttosfnt xorg.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 = "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..fc59baa5f9d2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cm-unicode/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "cm-unicode";
+  version = "0.7.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/cm-unicode/cm-unicode/${version}/${pname}-${version}-otf.tar.xz";
+    hash = "sha256-VIp+vk1IYbEHW15wMrfGVOPqg1zBZDpgFx+jlypOHCg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/opentype *.otf
+    install -m444 -Dt $out/share/doc/${pname}-${version}    README FontLog.txt
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://cm-unicode.sourceforge.io/";
+    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..66803b1b63ff
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cnstrokeorder/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "cnstrokeorder";
+  version = "0.0.4.7";
+
+  src = fetchurl {
+    url = "http://rtega.be/chmn/CNstrokeorder-${version}.ttf";
+    hash = "sha256-YYtOcUvt1V0DwAs/vf9KltcmYCFJNirvwjGyOK4JpIY=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D $src $out/share/fonts/truetype/CNstrokeorder-${version}.ttf
+
+    runHook postInstall
+  '';
+
+  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..defdd9b86bba
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/comfortaa/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "comfortaa";
+  version = "unstable-2021-07-29";
+
+  src = fetchFromGitHub {
+    owner = "googlefonts";
+    repo = pname;
+    rev = "2a87ac6f6ea3495150bfa00d0c0fb53dd0a2f11b";
+    postFetch = ''
+      # Remove the OTF fonts as they are not needed and cause a hash mismatch
+      rm -rf $out/fonts/{OTF,otf}
+    '';
+    hash = "sha256-4ZBRaQyYlnt9l4NgBHezuCnR3rKTJ37L41RTbGAhd0M=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype $out/share/doc/comfortaa
+    cp fonts/TTF/*.ttf $out/share/fonts/truetype
+    cp FONTLOG.txt README.md $out/share/doc/comfortaa
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://aajohan.deviantart.com/art/Comfortaa-font-105395949";
+    description = "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-mono/comic-mono-weight.conf b/nixpkgs/pkgs/data/fonts/comic-mono/comic-mono-weight.conf
new file mode 100644
index 000000000000..97cfa3d83fdf
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/comic-mono/comic-mono-weight.conf
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
+<fontconfig>
+    <!-- Fix missing/incorrect font weight data in Comic Mono. -->
+
+    <match target="scan">
+        <test name="fullname">
+            <string>Comic Mono</string>
+        </test>
+        <edit name="weight">
+            <const>book</const>
+        </edit>
+    </match>
+</fontconfig>
diff --git a/nixpkgs/pkgs/data/fonts/comic-mono/default.nix b/nixpkgs/pkgs/data/fonts/comic-mono/default.nix
new file mode 100644
index 000000000000..b635c1379489
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/comic-mono/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation {
+  pname = "comic-mono-font";
+  version = "2020-12-28";
+
+  src = fetchFromGitHub {
+    owner = "dtinth";
+    repo = "comic-mono-font";
+    rev = "9a96d04cdd2919964169192e7d9de5012ef66de4";
+    hash = "sha256-q8NxrluWuH23FfRlntIS0MDdl3TkkGE7umcU2plS6eU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts
+    cp *.ttf $out/share/fonts
+
+    mkdir -p $out/etc/fonts/conf.d
+    ln -s ${./comic-mono-weight.conf} $out/etc/fonts/conf.d/30-comic-mono.conf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Legible monospace font that looks like Comic Sans";
+    longDescription = ''
+      A legible monospace font... the very typeface you’ve been trained to
+      recognize since childhood. This font is a fork of Shannon Miwa’s Comic
+      Shanns (version 1).
+    '';
+    homepage = "https://dtinth.github.io/comic-mono-font/";
+
+    license = licenses.mit;
+    maintainers = with maintainers; [ an-empty-string totoroot ];
+    platforms = platforms.all;
+  };
+}
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..66eb4087efaa
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/comic-neue/default.nix
@@ -0,0 +1,39 @@
+{ 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
+  };
+
+  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 = "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..fe1c1b512812
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/comic-relief/default.nix
@@ -0,0 +1,45 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "comic-relief";
+  version = "1.1";
+
+  src = fetchzip {
+    url = "https://fontlibrary.org/assets/downloads/comic-relief/45c456b6db2aaf2f7f69ac66b5ac7239/comic-relief.zip";
+    stripRoot = false;
+    hash = "sha256-lvkMfaQvLMZ8F0Q5JnpmMsIAkR+XfihoHIoS4z5QEvA=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/etc/fonts/conf.d
+    mkdir -p $out/share/doc/${pname}-${version}
+    mkdir -p $out/share/fonts/truetype
+    cp -v ${./comic-sans-ms-alias.conf}     $out/etc/fonts/conf.d/30-comic-sans-ms.conf
+    cp *.ttf      -d $out/share/fonts/truetype
+    cp FONTLOG.txt -d $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://fontlibrary.org/en/font/comic-relief";
+    description = "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/commit-mono/default.nix b/nixpkgs/pkgs/data/fonts/commit-mono/default.nix
new file mode 100644
index 000000000000..0d952d17cbaf
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/commit-mono/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, stdenvNoCC
+, fetchzip
+}:
+stdenvNoCC.mkDerivation rec {
+  pname = "commit-mono";
+  version = "1.143";
+
+  src = fetchzip {
+    url = "https://github.com/eigilnikolajsen/commit-mono/releases/download/v${version}/CommitMono-${version}.zip";
+    hash = "sha256-JTyPgWfbWq+lXQU/rgnyvPG6+V3f+FB5QUkd+I1oFKE=";
+    stripRoot = false;
+  };
+
+  dontConfigure = true;
+  dontPatch = true;
+  dontBuild = true;
+  dontFixup = true;
+  doCheck = false;
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm644 CommitMono-${version}/*.otf             -t $out/share/fonts/opentype
+    install -Dm644 CommitMono-${version}/ttfautohint/*.ttf -t $out/share/fonts/truetype
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Anonymous and neutral programming typeface focused on creating a better reading experience";
+    homepage = "https://commitmono.com/";
+    license = licenses.ofl;
+    maintainers = [ maintainers.yoavlavi ];
+    platforms = platforms.all;
+  };
+}
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..743c1ed8a6b8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cooper-hewitt/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "cooper-hewitt";
+  version = "unstable-2014-06-09";
+
+  src = fetchzip {
+    url = "https://web.archive.org/web/20221004145117/https://www.cooperhewitt.org/wp-content/uploads/fonts/CooperHewitt-OTF-public.zip";
+    hash = "sha256-bTlEXQeYNNspvnNdvQhJn6CNBrcSKYWuNWF/N6+3Vb0=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/opentype
+    mv *.otf $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.cooperhewitt.org/open-source-at-cooper-hewitt/cooper-hewitt-the-typeface-by-chester-jenkins/";
+    description = "Contemporary sans serif, with characters composed of modified-geometric curves and arches";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/courier-prime/default.nix b/nixpkgs/pkgs/data/fonts/courier-prime/default.nix
new file mode 100644
index 000000000000..1226966d5e6c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/courier-prime/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "courier-prime";
+  version = "unstable-2019-12-05";
+
+  src = fetchzip {
+    url = "https://github.com/quoteunquoteapps/CourierPrime/archive/7f6d46a766acd9391d899090de467c53fd9c9cb0/${pname}-${version}.zip";
+    hash = "sha256-pMFZpytNtgoZrBj2Gj8SgJ0Lab8uVY5aQtcO2lFbHj4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/truetype fonts/ttf/*.ttf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Monospaced font designed specifically for screenplays";
+    homepage = "https://github.com/quoteunquoteapps/CourierPrime";
+    license = licenses.ofl;
+    maintainers = [ maintainers.austinbutler ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/cozette/default.nix b/nixpkgs/pkgs/data/fonts/cozette/default.nix
new file mode 100644
index 000000000000..815024778772
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cozette/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "cozette";
+  version = "1.24.1";
+
+  src = fetchzip {
+    url = "https://github.com/slavfox/Cozette/releases/download/v.${version}/CozetteFonts-v-${builtins.replaceStrings ["."] ["-"] version}.zip";
+    hash = "sha256-G3/m0g3pdPHUlSLnJhGIFem6UOyEf1VxjOvz/0E9Vr0=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 *.otf -t $out/share/fonts/opentype
+    install -Dm644 *.bdf -t $out/share/fonts/misc
+    install -Dm644 *.otb -t $out/share/fonts/misc
+    install -Dm644 *.woff -t $out/share/fonts/woff
+    install -Dm644 *.woff2 -t $out/share/fonts/woff2
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Bitmap programming font optimized for coziness";
+    homepage = "https://github.com/slavfox/cozette";
+    changelog = "https://github.com/slavfox/Cozette/blob/v.${version}/CHANGELOG.md";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ brettlyons ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/creep/default.nix b/nixpkgs/pkgs/data/fonts/creep/default.nix
new file mode 100644
index 000000000000..1c3f6ab49141
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/creep/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchFromGitHub, libfaketime
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "creep";
+  version = "0.31";
+
+  src = fetchFromGitHub {
+    owner = "romeovs";
+    repo = pname;
+    rev = version;
+    sha256 = "0zs21kznh1q883jfdgz74bb63i4lxlv98hj3ipp0wvsi6zw0vs8n";
+  };
+
+  nativeBuildInputs = [ libfaketime xorg.fonttosfnt xorg.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 = "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-pro/default.nix b/nixpkgs/pkgs/data/fonts/crimson-pro/default.nix
new file mode 100644
index 000000000000..7b302b61eb91
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/crimson-pro/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+  pname = "crimson-pro";
+  version = "unstable-2022-08-30";
+
+  outputs = [ "out" "woff2" ];
+
+  src = fetchFromGitHub {
+    owner = "Fonthausen";
+    repo = "CrimsonPro";
+    rev = "24e8f7bf59ec45d77c67879ad80d97e5f94c787b";
+    hash = "sha256-3zFB1AMcC7eNEVA2Mx1OE8rLN9zPzexZ3FtER9wH5ss=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/truetype fonts/ttf/*.ttf
+    install -m444 -Dt $out/share/fonts/opentype fonts/otf/*.otf
+    install -m444 -Dt $woff2/share/fonts/woff2 fonts/webfonts/*.woff2
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/Fonthausen/CrimsonPro";
+    description = "Professionally produced redesign of Crimson by Jacques Le Bailly";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ncfavier ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/crimson/default.nix b/nixpkgs/pkgs/data/fonts/crimson/default.nix
new file mode 100644
index 000000000000..82c9c9ace6c7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/crimson/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "crimson";
+  version = "2014.10";
+
+  src = fetchFromGitHub {
+    owner = "skosch";
+    repo = "Crimson";
+    rev = "fonts-october2014";
+    hash = "sha256-Wp9L77q93TRmrAr0P4iH9gm0tqFY0X/xSsuFcd19aAE=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/opentype "Desktop Fonts/OTF/"*.otf
+    install -m444 -Dt $out/share/doc/${pname}-${version}    README.md
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/skosch/Crimson";
+    description = "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..28a7f4385a01
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/culmus/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "culmus";
+  version = "0.133";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/${pname}/${pname}/${version}/${pname}-${version}.tar.gz";
+    hash = "sha256-wMaHN0LQdUT2us8q1S65yzkpdNVkJ5ONwd+8g5nGTQU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    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
+
+    runHook postInstall
+  '';
+
+  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..ba7d43055f95
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/curie/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "curie";
+  version = "1.0";
+
+  src = fetchurl {
+    url = "https://github.com/NerdyPepper/curie/releases/download/v${version}/curie-v${version}.tar.gz";
+    hash = "sha256-B89GNbOmm3lY/cRWQJEFu/5morCM/WrRQb/m6covbt8=";
+  };
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/misc
+    install *.otb $out/share/fonts/misc
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Upscaled version of scientifica";
+    homepage = "https://github.com/NerdyPepper/curie";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ moni ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/d2coding/default.nix b/nixpkgs/pkgs/data/fonts/d2coding/default.nix
new file mode 100644
index 000000000000..be6f0809ed97
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/d2coding/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "d2codingfont";
+  version = "1.3.2";
+
+  src = fetchzip {
+    url = "https://github.com/naver/${pname}/releases/download/VER${version}/D2Coding-Ver${version}-20180524.zip";
+    stripRoot = false;
+    hash = "sha256-iC6iaUSVg4zt3wVFJUU4HEeswuKDOTFsAxq/0gRiOCA=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 */*-all.ttc -t $out/share/fonts/truetype/
+
+    runHook postInstall
+  '';
+
+  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 version 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/dancing-script/default.nix b/nixpkgs/pkgs/data/fonts/dancing-script/default.nix
new file mode 100644
index 000000000000..796069195990
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dancing-script/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation {
+  pname = "dancing-script";
+  version = "2.0";
+
+  src = fetchFromGitHub {
+    owner = "impallari";
+    repo = "DancingScript";
+    rev = "f7f54bc1b8836601dae8696666bfacd306f77e34";
+    hash = "sha256-B9oAZFPH3dG/Nt5FfKfFVJYtfUKGK0AXNkQHRC7IgdU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/truetype fonts/ttf/*.ttf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Dancing Script";
+    longDescription = "A lively casual script where the letters bounce and change size slightly.";
+    homepage = "https://github.com/impallari/DancingScript";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ wdavidw ];
+  };
+}
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..1fdb20ff3ced
--- /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 = "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 = "https://dejavu-fonts.github.io/";
+
+    # 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..37bf08611f35
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dina/default.nix
@@ -0,0 +1,78 @@
+{ lib, stdenv, fetchzip, fontforge
+, bdftopcf, xorg
+}:
+
+stdenv.mkDerivation {
+  pname = "dina-font";
+  version = "2.92";
+
+  outputs = [ "out" "bdf" ];
+
+  src = fetchzip {
+    url = "https://www.dcmembers.com/jibsen/download/61/?wpdmdl=61";
+    hash = "sha256-JK+vnOyhAbwT825S+WKbQuWgRrfZZHfyhaMQ/6ljO8s=";
+    extension = "zip";
+    stripRoot = false;
+  };
+
+  nativeBuildInputs =
+    [ fontforge bdftopcf xorg.mkfontscale xorg.fonttosfnt ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    newName() {
+      local name=''${1##*/}
+      test "''${name:5:1}" = i && _it=Italic || _it=
+      case ''${name:6:3} in
+          400) _weight=Medium ;;
+          700) _weight=Bold ;;
+      esac
+      _pt=''${1%.bdf}
+      _pt=''${_pt#*-}
+      echo "Dina$_weight$_it$_pt"
+    }
+
+    # Re-encode the provided BDF files from CP1252 to Unicode as fonttosfnt does
+    # not support the former.
+    # We could generate the PCF and OTB files with fontforge directly, but that
+    # results in incorrect spacing in various places.
+    for f in BDF/*.bdf; do
+      basename=''${f##*/} basename=''${basename%.*}
+      fontforge -lang=ff -c "Open(\"$f\"); Reencode(\"win\", 1); Reencode(\"unicode\"); Generate(\"$basename.bdf\")"
+      mv "$basename"-*.bdf "$basename".bdf # remove the superfluous added size suffix
+    done
+
+    for f in *.bdf; do
+        name=$(newName "$f")
+        bdftopcf -t -o "$name.pcf" "$f"
+        fonttosfnt -v -o "$name.otb" "$f"
+    done
+    gzip -n -9 *.pcf
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    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"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "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.dcmembers.com/jibsen/download/61/";
+    license = licenses.free;
+    maintainers = with maintainers; [ prikhi ncfavier ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/dm-sans/default.nix b/nixpkgs/pkgs/data/fonts/dm-sans/default.nix
new file mode 100644
index 000000000000..e8d51945254d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dm-sans/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "dm-sans";
+  version = "1.002";
+
+  src = fetchzip {
+    url = "https://github.com/googlefonts/dm-fonts/releases/download/v${version}/DeepMindSans_v${version}.zip";
+    stripRoot = false;
+    hash = "sha256-RSHHxiCac18qqF+hW5M3BbBcra4AQpNLLlUmhiWj9f8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    mv *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Geometric sans-serif typeface";
+    homepage = "https://github.com/googlefonts/dm-fonts";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ gilice ];
+  };
+}
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..7de0e6d06027
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dosemu-fonts/default.nix
@@ -0,0 +1,36 @@
+{ lib, 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";
+    license = lib.licenses.gpl2Only;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/dosis/default.nix b/nixpkgs/pkgs/data/fonts/dosis/default.nix
new file mode 100644
index 000000000000..5a9470a43ec8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dosis/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "dosis";
+  version = "1.007";
+
+  src = fetchFromGitHub {
+    owner = "impallari";
+    repo = "Dosis";
+    rev = "12df1e13e58768f20e0d48ff15651b703f9dd9dc";
+    hash = "sha256-rZ49uNBlI+NWkiZykpyXzOonXlbVB6Vf6a/8A56Plj4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    find . -name '*.otf' -exec install -m444 -Dt $out/share/fonts/opentype {} \;
+    install -m444 -Dt $out/share/doc/${pname}-${version} README.md FONTLOG.txt
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "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/dotcolon-fonts/default.nix b/nixpkgs/pkgs/data/fonts/dotcolon-fonts/default.nix
new file mode 100644
index 000000000000..fcd439ce30c7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dotcolon-fonts/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, symlinkJoin
+, aileron
+, vegur
+, f5_6
+, tenderness
+, medio
+, ferrum
+, seshat
+, penna
+, eunomia
+, route159
+, f1_8
+, nacelle
+, melete
+, fa_1
+}:
+
+symlinkJoin {
+  name = "dotcolon-fonts";
+
+  paths = [
+    aileron
+    vegur
+    f5_6
+    tenderness
+    medio
+    ferrum
+    seshat
+    penna
+    eunomia
+    route159
+    f1_8
+    nacelle
+    melete
+    fa_1
+  ];
+
+  meta = {
+    description = "Font Collection by Sora Sagano";
+
+    homepage = "https://dotcolon.net/";
+
+    license = with lib.licenses; [ cc0 ofl ];
+
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+}
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..d4a21382bbfa
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/doulos-sil/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "doulos-sil";
+  version = "6.200";
+
+  src = fetchzip {
+    url = "https://software.sil.org/downloads/r/doulos/DoulosSIL-${version}.zip";
+    hash = "sha256-kpbXJVAEQLr5HMFaE+8OgAYrMGQoetgMi0CcPn4a3Xw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 OFL.txt OFL-FAQ.txt README.txt FONTLOG.txt -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://software.sil.org/doulos";
+    description = "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..7a57d9308cf9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/eb-garamond/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "eb-garamond";
+  version = "0.016";
+
+  src = fetchzip {
+    url = "https://bitbucket.org/georgd/eb-garamond/downloads/EBGaramond-${version}.zip";
+    hash = "sha256-P2VCLcqcMBBoTDJyRLP9vlHI+jE0EqPjPziN2MJbgEg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 otf/*.otf                                 -t $out/share/fonts/opentype
+    install -Dm644 Changes README.markdown README.xelualatex -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
+
+  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..beb89d49fc36
--- /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 = "0b4kjdk0h0hx446swi0wzawia0mf16qh9b6v4h4nqg8qx0p2sd3c";
+  };
+
+  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..fa4d13693b12
--- /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 =
+      "https://language.moe.gov.tw/001/Upload/Files/site_content/M0001/eduSong_Unicode.zip";
+    hash = "sha256-pIG1EbFGf2O2AzM4+HCCvGPodBBwUt7ozpb+BpPk5Kw=";
+  };
+
+  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 =
+      "https://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/edwin/default.nix b/nixpkgs/pkgs/data/fonts/edwin/default.nix
new file mode 100644
index 000000000000..58a2ed3e3ec6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/edwin/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "edwin";
+  version = "0.54";
+
+  src = fetchurl {
+    url = "https://github.com/MuseScoreFonts/Edwin/archive/refs/tags/v${version}.tar.gz";
+    hash = "sha256-F6BzwnrsaELegdo6Bdju1OG+RI9zKnn4tIASR3q6zYk=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/opentype
+    install *.otf $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Text font for musical scores";
+    homepage = "https://github.com/MuseScoreFonts/Edwin";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ moni ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/efont-unicode/default.nix b/nixpkgs/pkgs/data/fonts/efont-unicode/default.nix
new file mode 100644
index 000000000000..cc41646a1263
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/efont-unicode/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenv, fetchurl, libfaketime, xorg }:
+
+stdenv.mkDerivation rec {
+  pname = "efont-unicode";
+  version = "0.4.2";
+
+  src = fetchurl {
+    url = "http://openlab.ring.gr.jp/efont/dist/unicode-bdf/${pname}-bdf-${version}.tar.bz2";
+    sha256 = "sha256-fT7SsYlV3dCQrf0IZfiNI1grj3ngDgr8IkWdg+f9m3M=";
+  };
+
+  nativeBuildInputs = with xorg;
+    [ libfaketime bdftopcf fonttosfnt mkfontscale ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    # convert bdf fonts to pcf
+    for f in *.bdf; do
+        bdftopcf -t -o "''${f%.bdf}.pcf" "$f"
+    done
+    gzip -n -9 *.pcf
+
+    # convert bdf fonts to otb
+    for f in *.bdf; do
+        faketime -f "1970-01-01 00:00:01" \
+        fonttosfnt -v -m 2 -o "''${f%.bdf}.otb" "$f"
+    done
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    dir=share/fonts/misc
+    install -D -m 644 -t "$out/$dir" *.otb *.pcf.gz
+    install -D -m 644 -t "$bdf/$dir" *.bdf
+    mkfontdir "$out/$dir"
+    mkfontdir "$bdf/$dir"
+
+    runHook postInstall
+  '';
+
+  outputs = [ "out" "bdf" ];
+
+  meta = with lib; {
+    description = "/efont/ Unicode bitmap font";
+    homepage = "http://openlab.ring.gr.jp/efont/unicode/";
+    license = licenses.bsd3;
+    platforms = platforms.all;
+    maintainers = [ maintainers.ncfavier ];
+  };
+}
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..256084a320fc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "emacs-all-the-icons-fonts";
+  version = "5.0.0";
+
+  src = fetchzip {
+    url = "https://github.com/domtronn/all-the-icons.el/archive/${version}.zip";
+    hash = "sha256-70ysVxOey6NLlCwhEYhxpxO6uuarMFDpg3Efh+3bj1M=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 fonts/*.ttf -t $out/share/fonts/all-the-icons
+
+    runHook postInstall
+  '';
+
+  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..ec48dc9ee009
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/encode-sans/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "encode-sans";
+  version = "1.002";
+
+  src = fetchzip {
+    url = "https://github.com/impallari/Encode-Sans/archive/11162b46892d20f55bd42a00b48cbf06b5871f75.zip";
+    hash = "sha256-TPAUc5msAUgJZHibjgYaS2TOuzKFy0rje9ZQTXE6s+w=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf                 -t $out/share/fonts/truetype
+    install -Dm644 README.md FONTLOG.txt -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "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 = "https://github.com/impallari/Encode-Sans";
+    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..fc69e398e44d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/envypn-font/default.nix
@@ -0,0 +1,50 @@
+{ lib, stdenv, fetchurl, libfaketime
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "envypn-font";
+  version = "1.7.1";
+
+  src = fetchurl {
+    url = "https://ywstd.fr/files/p/envypn-font/envypn-font-${version}.tar.gz";
+    sha256 = "bda67b6bc6d5d871a4d46565d4126729dfb8a0de9611dae6c68132a7b7db1270";
+  };
+
+  nativeBuildInputs = [ libfaketime xorg.fonttosfnt xorg.mkfontscale ];
+
+  unpackPhase = ''
+    tar -xzf $src --strip-components=1
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    # 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
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m 644 -t "$out/share/fonts/misc" *.otb *.pcf.gz
+    mkfontdir "$out/share/fonts/misc"
+
+    runHook postInstall
+  '';
+
+  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;
+    maintainers = with maintainers; [ erdnaxe ];
+  };
+}
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..6dfa369d606d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/et-book/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "et-book";
+  version = "unstable-2015-10-05";
+
+  src = fetchFromGitHub {
+    owner = "edwardtufte";
+    repo = pname;
+    rev = "7e8f02dadcc23ba42b491b39e5bdf16e7b383031";
+    hash = "sha256-B6ryC9ibNop08TJC/w9LSHHwqV/81EezXsTUJFq8xpo=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp -t $out/share/fonts/truetype source/4-ttf/*.ttf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "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..d51c797d2800
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/eunomia/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "200";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "eunomia";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-Rd2EakaTWjzoEV00tHTgg/bXgJUFfPjCyQUWi7QhFG4=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/eunomia/";
+    description = "Futuristic decorative font";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars minijackson ];
+    license = licenses.ofl;
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/ezra-sil/default.nix b/nixpkgs/pkgs/data/fonts/ezra-sil/default.nix
new file mode 100644
index 000000000000..7b628bd4bbc0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ezra-sil/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "ezra-sil";
+  version = "2.51";
+
+  src = fetchzip {
+    url = "https://software.sil.org/downloads/r/ezra/EzraSIL-${version}.zip";
+    hash = "sha256-hGOHjvFVFLwyVkcoUz+7rQekCdn4oEOB+L16XRpthJM=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 OFL-FAQ.txt README.txt FONTLOG.txt -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://software.sil.org/ezra";
+    description = "Typeface fashioned after the square letter forms of the typography of the Biblia Hebraica Stuttgartensia (BHS)";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.kmein ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/f1_8/default.nix b/nixpkgs/pkgs/data/fonts/f1_8/default.nix
new file mode 100644
index 000000000000..7020e43f1035
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/f1_8/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+let
+  majorVersion = "1";
+  minorVersion = "101";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "f1_8";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://note.com/api/v2/attachments/download/d83b2c4ec63d7826acaa76725d261ff4";
+    hash = "sha256-pe1G8WeFAo+KYjjsNwn0JmtXFn9QugE1SeGwaqnl1F0=";
+    stripRoot = false;
+    extension = "zip";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
+    description = "Weighted decorative font";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ minijackson ];
+    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..9ba404f4b38f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/f5_6/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "110";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "f5_6";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-FeCU+mzR0iO5tixI72XUnhvpGj+WRfKyT3mhBtud3uE=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
+    description = "Weighted decorative font";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars minijackson ];
+    license = licenses.ofl;
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/fa_1/default.nix b/nixpkgs/pkgs/data/fonts/fa_1/default.nix
new file mode 100644
index 000000000000..11302b9c6f6e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fa_1/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "100";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "fa_1";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-BPJ+wZMYXY/yg5oEgBc5YnswA6A7w6V0gdv+cac0qdc=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
+    description = "Weighted decorative font";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ minijackson ];
+    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..9d594a7f7580
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fantasque-sans-mono/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "fantasque-sans-mono";
+  version = "1.8.0";
+
+  src = fetchzip {
+    url = "https://github.com/belluzj/fantasque-sans/releases/download/v${version}/FantasqueSansMono-Normal.zip";
+    stripRoot = false;
+    hash = "sha256-MNXZoDPi24xXHXGVADH16a3vZmFhwX0Htz02+46hWFc=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 OTF/*.otf -t $out/share/fonts/opentype
+    install -Dm644 README.md -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/belluzj/fantasque-sans";
+    description = "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/fanwood/default.nix b/nixpkgs/pkgs/data/fonts/fanwood/default.nix
new file mode 100644
index 000000000000..01e2e7da79f1
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fanwood/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "fanwood";
+  version = "2011-05-11";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "cbaaed9704e7d37d3dcdbdf0b472e9efd0e39432";
+    hash = "sha256-OroFhhb4RxPHkx+/8PtFnxs1GQVXMPiYTd+2vnRbIjg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Serif based on the work of a famous Czech-American type designer of yesteryear";
+    longDescription = ''
+      Based on work of a famous Czech-American type designer of yesteryear. The
+      package includes roman and italic.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/fanwood";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/ferrum/default.nix b/nixpkgs/pkgs/data/fonts/ferrum/default.nix
new file mode 100644
index 000000000000..8d90a9328f24
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ferrum/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "200";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "ferrum";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-NDJwgFWZgyhMkGRWlY55l2omEw6ju3e3dHCEsWNzQIc=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
+    description = "Decorative font";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars minijackson ];
+    license = licenses.cc0;
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/fg-virgil/default.nix b/nixpkgs/pkgs/data/fonts/fg-virgil/default.nix
new file mode 100644
index 000000000000..d7c04d9b9e88
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fg-virgil/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "fg-virgil";
+  version = "0.17.3";
+
+  src = fetchFromGitHub {
+    owner = "excalidraw";
+    repo = "excalidraw";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-j8fT17RkgMQAAS4KsC2+uItT8Z300SZWnLkyo4XI1WY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m 444 public/Virgil.woff2 -t $out/share/fonts/woff2
+    install -D -m 444 public/FG_Virgil.woff2 -t $out/share/fonts/woff2
+    install -D -m 444 public/FG_Virgil.ttf -t $out/share/fonts/ttf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = "https://github.com/excalidraw/virgil";
+    description = "Font that powers Excalidraw";
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [ drupol ];
+    license = lib.licenses.ofl;
+  };
+})
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..553a2d580988
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fira-code/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenvNoCC, fetchzip, useVariableFont ? true }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "fira-code";
+  version = "6.2";
+
+  src = fetchzip {
+    url = "https://github.com/tonsky/FiraCode/releases/download/${finalAttrs.version}/Fira_Code_v${finalAttrs.version}.zip";
+    stripRoot = false;
+    hash = "sha256-UHOwZL9WpCHk6vZaqI/XfkZogKgycs5lWg1p0XdQt0A=";
+  };
+
+  # only extract the variable font because everything else is a duplicate
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 -t $out/share/fonts/truetype ${if useVariableFont then "variable_ttf/*-VF.ttf" else "ttf/*.ttf"}
+
+    runHook postInstall
+  '';
+
+  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..b31885b3714b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fira-code/symbols.nix
@@ -0,0 +1,31 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation {
+  pname = "fira-code-symbols";
+  version = "20160811";
+
+  src = fetchzip {
+    url = "https://github.com/tonsky/FiraCode/files/412440/FiraCode-Regular-Symbol.zip";
+    hash = "sha256-7y51blEn0Osf8azytK08zJgtfVX/CIWQkiOoRzYKIa4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  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 = [ ];
+    homepage = "https://github.com/tonsky/FiraCode/issues/211#issuecomment-239058632";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/fira-go/default.nix b/nixpkgs/pkgs/data/fonts/fira-go/default.nix
new file mode 100644
index 000000000000..a850d7d2e97c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fira-go/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation {
+  pname = "fira-go";
+  version = "1.001";
+
+  src = fetchzip {
+    url = "https://github.com/bBoxType/FiraGo/archive/9882ba0851f88ab904dc237f250db1d45641f45d.zip";
+    hash = "sha256-WwgPg7OLrXBjR6oHG5061RO3HeNkj2Izs6ktwIxVw9o=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/opentype
+    mv Fonts/FiraGO_OTF_1001/{Roman,Italic}/*.otf \
+      $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://bboxtype.com/typefaces/FiraGO";
+    description = ''
+      Font with the same glyph set as Fira Sans 4.3 and additionally
+      supports Arabic, Devenagari, Georgian, Hebrew and Thai
+    '';
+    license = licenses.ofl;
+    maintainers = [ maintainers.loicreynier ];
+    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..dec1ea062bbc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fixedsys-excelsior/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "fixedsys-excelsior";
+  version = "3.00";
+
+  src = fetchurl {
+    url = "https://raw.githubusercontent.com/chrissimpkins/codeface/master/fonts/fixed-sys-excelsior/FSEX300.ttf";
+    hash = "sha256-buDzVzvF4z6TthbvYoL0m8DiJ6Map1Osdu0uPz0CBW0=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -D $src $out/share/fonts/truetype/${pname}-${version}.ttf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = "http://www.fixedsysexcelsior.com/";
+    description = "Pan-unicode version of Fixedsys, a classic DOS font";
+    platforms = lib.platforms.all;
+    license = lib.licenses.publicDomain;
+    maintainers = [ lib.maintainers.picnoir ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/font-awesome/default.nix b/nixpkgs/pkgs/data/fonts/font-awesome/default.nix
new file mode 100644
index 000000000000..8705a07d2593
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/font-awesome/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+let
+  font-awesome = { version, hash, rev ? version }: stdenvNoCC.mkDerivation {
+    pname = "font-awesome";
+    inherit version;
+
+    src = fetchFromGitHub {
+      owner = "FortAwesome";
+      repo = "Font-Awesome";
+      inherit rev hash;
+    };
+
+    installPhase = ''
+      runHook preInstall
+
+      install -m444 -Dt $out/share/fonts/opentype {fonts,otfs}/*.otf
+
+      runHook postInstall
+    '';
+
+    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 = "https://fontawesome.com/";
+      license = licenses.ofl;
+      platforms = platforms.all;
+      maintainers = with maintainers; [ abaldeau johnazoidberg ];
+    };
+  };
+in
+{
+  # Keeping version 4 and 5 because version 6 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
+  # https://fontawesome.com/v6/docs/web/setup/upgrade/
+  v4 = font-awesome {
+    version = "4.7.0";
+    rev = "v4.7.0";
+    hash = "sha256-LL9zWFC+76wH74nqKszPQf2ZDfXq8BiH6tuiK43wYHA=";
+  };
+  v5 = font-awesome {
+    version = "5.15.4";
+    hash = "sha256-gd23ZplNY56sm1lfkU3kPXUOmNmY5SRnT0qlQZRNuBo=";
+  };
+  v6 = font-awesome {
+    version = "6.5.2";
+    hash = "sha256-kUa/L/Krxb5v8SmtACCSC6CI3qTTOTr4Ss/FMRBlKuw=";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/fraunces/default.nix b/nixpkgs/pkgs/data/fonts/fraunces/default.nix
new file mode 100644
index 000000000000..d74e84a570d3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fraunces/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "fraunces";
+  version = "1.000";
+
+  src = fetchzip {
+    url = "https://github.com/undercasetype/Fraunces/releases/download/${version}/UnderCaseType_Fraunces_${version}.zip";
+    hash = "sha256-hu2G4Fs2I3TMEy/EBFnc88Pv3c8Mpc5rm3OwVvol7gQ=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 */static/otf/*.otf -t $out/share/fonts/opentype
+    install -Dm644 */static/ttf/*.ttf */*.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Display, “Old Style” soft-serif typeface inspired by early 20th century typefaces";
+    homepage = "https://github.com/undercasetype/Fraunces";
+    license = licenses.ofl;
+    maintainers = [ ];
+    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..4bf50d338587
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/freefont-ttf/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "freefont-ttf";
+  version = "20120503";
+
+  src = fetchzip {
+    url = "mirror://gnu/freefont/freefont-ttf-${version}.zip";
+    hash = "sha256-K3kVHGcDTxQ7N7XqSdwRObriVkBoBYPKHbyYrYvm7VU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    mv *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  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/galatia-sil/default.nix b/nixpkgs/pkgs/data/fonts/galatia-sil/default.nix
new file mode 100644
index 000000000000..70881399d593
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/galatia-sil/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "galatia-sil";
+  version = "2.1";
+
+  src = fetchzip {
+    url = "https://software.sil.org/downloads/r/galatia/GalatiaSIL-${version}.zip";
+    hash = "sha256-7kXnTC5vpUOjcT40oNW6e32zFGejlWJq1J+p+5DiAos=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 $downloadedFile *.ttf -t $out/share/fonts/truetype
+    install -Dm644 $downloadedFile OFL.txt OFL-FAQ.txt FONTLOG.txt -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://software.sil.org/galatia";
+    description = "Font designed to support Biblical Polytonic Greek";
+    longDescription = ''
+      Galatia SIL, designed to support Biblical Polytonic Greek, is a Unicode 3.1 font released under the SIL Open Font License. The font supports precomposed characters rather than decomposed characters. Thus, you must use a keyboard that outputs NFC encoding (precomposed).
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.kmein ];
+  };
+}
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..5d128448f1c7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gandom-fonts/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "gandom-fonts";
+  version = "0.8";
+
+  src = fetchFromGitHub {
+    owner = "rastikerdar";
+    repo = "gandom-font";
+    rev = "v${version}";
+    hash = "sha256-nez8T0TtRLyXxIIR69LrVGde5ThCvA0fLXkYLyYQRV8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/gandom-fonts {} \;
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/gandom-font";
+    description = "Persian (Farsi) Font - فونت (قلم) فارسی گندم";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/garamond-libre/default.nix b/nixpkgs/pkgs/data/fonts/garamond-libre/default.nix
new file mode 100644
index 000000000000..bd16afaf1895
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/garamond-libre/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "garamond-libre";
+  version = "1.4";
+
+  src = fetchzip {
+    url = "https://github.com/dbenjaminmiller/garamond-libre/releases/download/${version}/garamond-libre_${version}.zip";
+    stripRoot = false;
+    hash = "sha256-cD/JMICtb6MPIUcWs2VOTHnb/05ma0/KKtPyR4oJlIc=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/dbenjaminmiller/garamond-libre";
+    description = "Garamond Libre font family";
+    maintainers = with maintainers; [ drupol ];
+    license = licenses.x11;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/gdouros/default.nix b/nixpkgs/pkgs/data/fonts/gdouros/default.nix
new file mode 100644
index 000000000000..c12e3f8e9fd3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gdouros/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+let
+  fonts = {
+    aegan     = { version = "13.00"; file = "Aegean.zip";       hash = "sha256-3HmCqCMZLN6zF1N/EirQOPnHKTGHoc4aHKoZxFYTB34="; description = "Aegean"; };
+    aegyptus  = { version = "13.00"; file = "Aegyptus.zip";     hash = "sha256-SSAK707xhpsUTq8tSBcrzNGunCYad58amtCqAWuevnY="; description = "Egyptian Hieroglyphs, Coptic, Meroitic"; };
+    akkadian  = { version = "13.00"; file = "Akkadian.zip";     hash = "sha256-wXiDYyfujAs6fklOCqXq7Ms7wP5RbPlpNVwkUy7CV4k="; description = "Sumero-Akkadian Cuneiform"; };
+    assyrian  = { version = "13.00"; file = "Assyrian.zip";     hash = "sha256-CZj1sc89OexQ0INb7pbEu5GfE/w2E5JmhjT8cosoLSg="; description = "Neo-Assyrian in Unicode with OpenType"; };
+    eemusic   = { version = "13.00"; file = "EEMusic.zip";      hash = "sha256-LxOcQOPEImw0wosxJotbOJRbe0qlK5dR+kazuhm99Kg="; description = "Byzantine Musical Notation in Unicode with OpenType"; };
+    maya      = { version = "13.00"; file = "Maya%20Hieroglyphs.zip"; hash = "sha256-PAwF1lGqm6XVf4NQCA8AFLGU40N0Xsn5Q8x9ikHJDhY="; description = "Maya Hieroglyphs"; };
+    symbola   = { version = "13.00"; file = "Symbola.zip";      hash = "sha256-TsHWmzkEyMa8JOZDyjvk7PDhm239oH/FNllizNFf398="; description = "Basic Latin, Greek, Cyrillic and many Symbol blocks of Unicode"; };
+    textfonts = { version = "13.00"; file = "Textfonts.zip";    hash = "sha256-7S3NiiyDvyYoDrLPt2z3P9bEEFOEZACv2sIHG1Tn6yI="; description = "Aroania, Anaktoria, Alexander, Avdira and Asea"; };
+    unidings  = { version = "13.00"; file = "Unidings.zip";     hash = "sha256-WUY+Ylphep6WuzqLQ3Owv+vK5Yuu/aAkn4GOFXL0uQY="; description = "Glyphs and Icons for blocks of The Unicode Standard"; };
+  };
+
+  mkpkg = pname: { version, file, hash, description }: stdenvNoCC.mkDerivation rec {
+    inherit pname version;
+
+    src = fetchzip {
+      url = "https://dn-works.com/wp-content/uploads/2020/UFAS-Fonts/${file}";
+      stripRoot = false;
+      inherit hash;
+    };
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/share/{fonts/opentype,doc/${pname}}
+      mv *.otf                -t "$out/share/fonts/opentype"
+      mv *.{odt,ods,pdf,xlsx}       -t "$out/share/doc/${pname}"  || true  # install docs if any
+
+      runHook postInstall
+    '';
+
+    meta = {
+      inherit description;
+      # see https://dn-works.com/wp-content/uploads/2020/UFAS-Docs/License.pdf
+      # quite draconian: non-commercial, no modifications,
+      # no redistribution, "a single instantiation and no
+      # network installation"
+      license = lib.licenses.unfree;
+      homepage = "https://dn-works.com/ufas/";
+    };
+  };
+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..9f62d7464185
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gelasio/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation {
+  pname = "gelasio";
+  version = "unstable-2022-06-09";
+
+  src = fetchFromGitHub {
+    owner = "SorkinType";
+    repo = "Gelasio";
+    rev = "a75c6d30a35f74cdbaea1813bdbcdb64bb11d3d5";
+    hash = "sha256-ncm0lSDPPPREdxTx3dGl6OGBn4FGAjFTlQpA6oDCdMI=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp fonts/ttf/*.ttf $out/share/fonts/truetype/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "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..c9541b307ff0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gentium-book-basic/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "gentium-book-basic";
+  version = "1.102";
+
+  src = fetchzip {
+    url = "http://software.sil.org/downloads/r/gentium/GentiumBasic_${lib.versions.major version}${lib.versions.minor version}.zip";
+    hash = "sha256-oCmpl95MJRfCV25cg/4cf8AwQWnoymXasSss1ziOPoE=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf                       -t $out/share/fonts/truetype
+    install -Dm644 FONTLOG.txt GENTIUM-FAQ.txt -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://software.sil.org/gentium/";
+    description = "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..e9d8435db26d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gentium/default.nix
@@ -0,0 +1,45 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "gentium";
+  version = "6.200";
+
+  src = fetchzip {
+    url = "http://software.sil.org/downloads/r/gentium/GentiumPlus-${version}.zip";
+    hash = "sha256-gpVOtmF4Kp3y1Rm00c4o3WQEskO7mY1Z5SVaYHI0hzg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 FONTLOG.txt README.txt -t $out/share/doc/${pname}-${version}
+    cp -r documentation $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://software.sil.org/gentium/";
+    description = "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/glasstty-ttf/default.nix b/nixpkgs/pkgs/data/fonts/glasstty-ttf/default.nix
new file mode 100644
index 000000000000..1c64c3227c51
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/glasstty-ttf/default.nix
@@ -0,0 +1,18 @@
+{ runCommand, fetchurl, lib }:
+runCommand "glasstty-ttf" {
+  src = fetchurl {
+    url = "https://github.com/svofski/glasstty/raw/2c47ac1a0065f8b12d9732257993833d8227e3e5/Glass_TTY_VT220.ttf";
+    sha256 = "sha256-2NYJaSWNr1Seuqdd7nLjA7tAMs/SAvl3uAe3uDoLLO4=";
+  };
+  meta = with lib; {
+    maintainers = [ maintainers.pkharvey ];
+    homepage = "https://github.com/svofski/glasstty";
+    license = licenses.unlicense;
+    platforms = platforms.all;
+    description = "TrueType VT220 font";
+  };
+}
+''
+  mkdir -p $out/share/fonts/truetype
+  cp $src $out/share/fonts/truetype/Glass_TTY_VT220.ttf
+''
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..db96e3183e26
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/go-font/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "go-font";
+  version = "2.010";
+
+  src = fetchzip {
+    url = "https://go.googlesource.com/image/+archive/41969df76e82aeec85fa3821b1e24955ea993001/font/gofont/ttfs.tar.gz";
+    stripRoot = false;
+    hash = "sha256-rdzt51wY4b7HEr7W/0Ar/FB0zMyf+nKLsOT+CRSEP3o=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    mkdir -p $out/share/doc/go-font
+    mv *.ttf $out/share/fonts/truetype
+    mv README $out/share/doc/go-font/LICENSE
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://blog.golang.org/go-fonts";
+    description = "Go font family";
+    changelog = "https://go.googlesource.com/image/+log/refs/heads/master/font/gofont";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ sternenseemann ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/gohufont/default.nix b/nixpkgs/pkgs/data/fonts/gohufont/default.nix
new file mode 100644
index 000000000000..6892742de799
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gohufont/default.nix
@@ -0,0 +1,69 @@
+{ lib, stdenv, fetchFromGitHub
+, xorg, bdf2psf, bdftopcf
+, libfaketime
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gohufont";
+  version = "2.1";
+
+  src = fetchFromGitHub {
+    owner  = "hchargois";
+    repo   = "gohufont";
+    rev    = "cc36b8c9fed7141763e55dcee0a97abffcf08224";
+    sha256 = "1hmp11mrr01b29phw0xyj4h9b92qz19cf56ssf6c47c5j2c4xmbv";
+  };
+
+  nativeBuildInputs =
+    [ xorg.mkfontscale bdf2psf bdftopcf
+      xorg.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; [ 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..bb3fc3ab0c1d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/google-fonts/default.nix
@@ -0,0 +1,70 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, fonts ? []
+}:
+
+stdenvNoCC.mkDerivation {
+  pname = "google-fonts";
+  version = "unstable-2023-10-20";
+
+  # Adobe Blank is split out in a separate output,
+  # because it causes crashes with `libfontconfig`.
+  # It has an absurd number of symbols
+  outputs = [ "out" "adobeBlank" ];
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "fonts";
+    rev = "990be3ed8f77e31c26bf07b148d6a74b8e6241cf";
+    sha256 = "sha256-ffLXzaniHkWxGQpvlJpiO6/SAdbI3FONgTaq8Xu+WY0=";
+  };
+
+  postPatch = ''
+    # 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 \
+      ofl/*_todelist \
+      axisregistry/tests/data
+
+    if find . -name "*.ttf" | sed 's|.*/||' | sort | uniq -c | sort -n | grep -v '^.*1 '; then
+      echo "error: duplicate font names"
+      exit 1
+    fi
+  '';
+
+  dontBuild = true;
+
+  # The font files are in the fonts directory and use three naming schemes:
+  # FamilyName-StyleName.ttf, FamilyName[param1,param2,...].ttf, and
+  # FamilyName.ttf. This installs all fonts if fonts is empty and otherwise
+  # only the specified fonts by FamilyName.
+  fonts = map (font: builtins.replaceStrings [" "] [""] font) fonts;
+  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
+  '' + (if fonts == [] then ''
+    find . -name '*.ttf' -exec install -m 444 -Dt $dest '{}' +
+  '' else ''
+    for font in $fonts; do
+      find . \( -name "$font-*.ttf" -o -name "$font[*.ttf" -o -name "$font.ttf" \) -exec install -m 444 -Dt $dest '{}' +
+    done
+  '');
+
+  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 ];
+    sourceProvenance = [ sourceTypes.binaryBytecode ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/goudy-bookletter-1911/default.nix b/nixpkgs/pkgs/data/fonts/goudy-bookletter-1911/default.nix
new file mode 100644
index 000000000000..5f0880ca036f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/goudy-bookletter-1911/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "goudy-bookletter-1911";
+  version = "2011-05-11";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "85ff5b834b4f63feb36fd2053949c19660580e48";
+    hash = "sha256-11axs1+SRQj+1lYTq2LYf1I65WrrvB/UnAgZkHPP1N8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Public domain font based on Frederic Goudy’s Kennerley Oldstyle";
+    homepage = "https://www.theleagueofmoveabletype.com/goudy-bookletter-1911";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/gubbi/default.nix b/nixpkgs/pkgs/data/fonts/gubbi/default.nix
new file mode 100644
index 000000000000..0b6b42493fe3
--- /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 = "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..254766d1de28
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gyre/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "gyre-fonts";
+  version = "2.005";
+
+  src = fetchzip {
+    url = "http://www.gust.org.pl/projects/e-foundry/tex-gyre/whole/tg-${version}otf.zip";
+    stripRoot = false;
+    hash = "sha256-+6IufuFf+IoLXoZEPlfHUNgRhKrQNBEZ1OwPD9/uOjg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp *.otf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  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..a503ade5d239
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hack/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "hack-font";
+  version = "3.003";
+
+  src = fetchzip {
+    url = "https://github.com/chrissimpkins/Hack/releases/download/v${version}/Hack-v${version}-ttf.zip";
+    hash = "sha256-SxF4kYp9aL/9L9EUniquFadzWt/+PcvhUQOIOvCrFRM=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "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/hackgen/default.nix b/nixpkgs/pkgs/data/fonts/hackgen/default.nix
new file mode 100644
index 000000000000..d3f83f5800fd
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hackgen/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "hackgen-font";
+  version = "2.9.0";
+
+  src = fetchzip {
+    url = "https://github.com/yuru7/HackGen/releases/download/v${version}/HackGen_v${version}.zip";
+    hash = "sha256-Ah2oVP8nzFiYA76kMPa9+YHQwFxq4i1muwkcmC7TzOk=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/hackgen
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Composite font of Hack and GenJyuu-Goghic";
+    homepage = "https://github.com/yuru7/HackGen";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ natsukium ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/hackgen/nerdfont.nix b/nixpkgs/pkgs/data/fonts/hackgen/nerdfont.nix
new file mode 100644
index 000000000000..9e06496163aa
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hackgen/nerdfont.nix
@@ -0,0 +1,27 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "hackgen-nf-font";
+  version = "2.9.0";
+
+  src = fetchzip {
+    url = "https://github.com/yuru7/HackGen/releases/download/v${version}/HackGen_NF_v${version}.zip";
+    hash = "sha256-Lh4WQJjeP4JuR8jSXpRNSrjRsNPmNXSx5AItNYMJL2A=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/hackgen-nf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Composite font of Hack, GenJyuu-Gothic and nerd-fonts";
+    homepage = "https://github.com/yuru7/HackGen";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ natsukium ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/hanazono/default.nix b/nixpkgs/pkgs/data/fonts/hanazono/default.nix
new file mode 100644
index 000000000000..f6dd5baa60c2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hanazono/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "hanazono";
+  version = "20170904";
+
+  src = fetchzip {
+    url = "mirror://osdn/hanazono-font/68253/hanazono-${version}.zip";
+    stripRoot = false;
+    hash = "sha256-qd0q4wQnHBGLT7C+UQIiOHnxCnRCscMZcj3P5RRxD1U=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 *.txt -t $out/share/doc/hanazono
+
+    runHook postInstall
+  '';
+
+  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/hannom/default.nix b/nixpkgs/pkgs/data/fonts/hannom/default.nix
new file mode 100644
index 000000000000..d91de86c532b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hannom/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "hannom";
+  version = "2005";
+
+  src = fetchzip {
+    url = "mirror://sourceforge/vietunicode/hannom/hannom%20v${version}/hannomH.zip";
+    stripRoot = false;
+    hash = "sha256-Oh8V72tYvVA6Sk0f9UTIkRQYjdUbEB/fmCSaRYfyoP8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    mv *.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "UNICODE Han Nom Font Set";
+    longDescription = ''
+      The true type fonts HAN NOM A and HAN NOM B have been developed by Chan
+      Nguyen Do Quoc Bao (Germany), To Minh Tam (USA) and Ni sinh Thien Vien Vien
+      Chieu (Vietnam). Their work got started in 2001, completed in 2003, and
+      publicized in 2005. These two true type fonts can be used with WIN-2000 or
+      WIN-XP and Office XP or Office 2003 to display Han and Nom characters with
+      code points by the Unicode Standard. Two sets of true type fonts are
+      available with high and low resolutions.
+    '';
+    homepage = "https://vietunicode.sourceforge.net/fonts/fonts_hannom.html";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ wegank ];
+    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..5868452c5793
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hasklig/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "hasklig";
+  version = "1.1";
+
+  src = fetchzip {
+    url = "https://github.com/i-tu/Hasklig/releases/download/${version}/Hasklig-${version}.zip";
+    stripRoot = false;
+    hash = "sha256-jsPQtjuegMePt4tB1dZ9mq15LSxXBYwtakbq4od/sko=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/opentype *.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/i-tu/Hasklig";
+    description = "Font with ligatures for Haskell code based off Source Code Pro";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ davidrusu ];
+  };
+}
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..61dc6ba14e29
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/helvetica-neue-lt-std/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation {
+  name = "helvetica-neue-lt-std";
+  version = "2014.08.16"; # date of most recent file in distribution
+
+  src = fetchzip {
+    url = "https://web.archive.org/web/20190823153624/http://ephifonts.com/downloads/helvetica-neue-lt-std.zip";
+    stripRoot = false;
+    hash = "sha256-ytoTTrnwN1lMw/gTxS4DRAq+tV5WzB2xHP4vVxLZ1ZI=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 'Helvetica Neue LT Std'/*.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://web.archive.org/web/20190926040940/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 = licenses.unfree;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/hermit/default.nix b/nixpkgs/pkgs/data/fonts/hermit/default.nix
new file mode 100644
index 000000000000..3ff770522d9e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hermit/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "hermit";
+  version = "2.0";
+
+  src = fetchzip {
+    url = "https://pcaro.es/d/otf-${pname}-${version}.tar.gz";
+    stripRoot = false;
+    hash = "sha256-RYXZ2yJ8BIxsgeEwhXz7g0NnWG3kMPZoJaOLMUQyWWQ=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/opentype *.otf
+
+    runHook postInstall
+  '';
+
+  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/hubot-sans/default.nix b/nixpkgs/pkgs/data/fonts/hubot-sans/default.nix
new file mode 100644
index 000000000000..3711aeb028d1
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hubot-sans/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, fetchzip
+, stdenvNoCC
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "hubot-sans";
+  version = "1.0.1";
+
+  src = fetchzip {
+    url = "https://github.com/github/hubot-sans/releases/download/v${finalAttrs.version}/Hubot-Sans.zip";
+    hash = "sha256-EWTyoGNqyZcqlF1H1Tdcodc8muHIo8C9gbSPAjiogRk=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 Hubot\ Sans/TTF/*.ttf -t $out/share/fonts/truetype/
+    install -Dm644 Hubot\ Sans/OTF/*.otf -t $out/share/fonts/opentype/
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Variable font from GitHub";
+    homepage = "https://github.com/github/hubot-sans";
+    changelog = "https://github.com/github/hubot-sans/releases/tag/v${finalAttrs.version}";
+    license = lib.licenses.ofl;
+    longDescription = ''
+      Hubot Sans is Mona Sans’s robotic sidekick. The typeface is designed with
+      more geometric accents to lend a technical and idiosyncratic feel—perfect
+      for headers and pull-quotes. Made together with Degarism.
+
+      Hubot Sans is a variable font. Variable fonts enable different variations
+      of a typeface to be incorporated into one single file, and are supported
+      by all major browsers.
+    '';
+    maintainers = with lib.maintainers; [ drupol ];
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/hyperscrypt/default.nix b/nixpkgs/pkgs/data/fonts/hyperscrypt/default.nix
new file mode 100644
index 000000000000..a55702fbf2e5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hyperscrypt/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "hyperscrypt";
+  version = "1.1";
+
+  src = fetchzip {
+    url = "https://gitlab.com/StudioTriple/Hyper-Scrypt/-/archive/${version}/Hyper-Scrypt-${version}.zip";
+    hash = "sha256-ONlAB9C/GYK6KmOaiHCYErkS6OlQ3TUnoumNDHGZnes=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 fonts/HyperScrypt_Web/*.ttf -t $out/share/fonts/truetype/
+    install -Dm644 fonts/HyperScrypt_Web/*.otf fonts/*.otf -t $out/share/fonts/opentype/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://velvetyne.fr/fonts/hyper-scrypt/";
+    description = "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/i-dot-ming/default.nix b/nixpkgs/pkgs/data/fonts/i-dot-ming/default.nix
new file mode 100644
index 000000000000..bd09d6efaeb7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/i-dot-ming/default.nix
@@ -0,0 +1,49 @@
+{ lib, stdenvNoCC, fetchurl, writeScript }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "i.ming";
+  version = "8.00";
+
+  src = fetchurl {
+    url = "https://raw.githubusercontent.com/ichitenfont/I.Ming/${version}/${version}/I.Ming-${version}.ttf";
+    hash = "sha256-6345629OdKz6lTnD3Vjtp6DzsYy0ojaL0naXGrtdZvw=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -DT -m444 $src $out/share/fonts/truetype/I.Ming/I.Ming.ttf
+
+    runHook postInstall
+  '';
+
+  passthru = {
+    updateScript = writeScript "updater" ''
+      #!/usr/bin/env nix-shell
+      #!nix-shell -i bash -p curl gnused
+      set -e
+      version=$(curl -i -s https://github.com/ichitenfont/I.Ming/releases/latest | sed -n -E 's|^location.*releases/tag/([0-9.]+).*$|\1|p')
+      if [[ $version != ${version} ]]; then
+        tmp=$(mktemp -d)
+        curl -Lo $tmp/I.Ming.ttf https://raw.githubusercontent.com/ichitenfont/I.Ming/$version/$version/I.Ming-$version.ttf
+        install -DT -m444 $tmp/I.Ming.ttf $tmp/share/fonts/truetype/I.Ming/I.Ming.ttf
+        rm $tmp/I.Ming.ttf
+        hash=$(nix hash path --type sha256 --base32 --sri $tmp)
+        sed -i -E \
+          -e "s/version = \"[0-9.]+\"/version = \"$version\"/" \
+          -e "s|hash = \".*\"|hash = \"$hash\"|" \
+          pkgs/data/fonts/i-dot-ming/default.nix
+      fi
+    '';
+  };
+
+  meta = with lib; {
+    description = "Open source Pan-CJK serif typeface";
+    homepage = "https://github.com/ichitenfont/I.Ming";
+    license = licenses.ipa;
+    platforms = platforms.all;
+    maintainers = [ maintainers.linsui ];
+  };
+}
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..dc0471b65fb8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ia-writer-duospace/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation {
+  pname = "ia-writer-duospace";
+  version = "unstable-2018-07-21";
+
+  src = fetchFromGitHub {
+    owner = "iaolo";
+    repo = "iA-Fonts";
+    rev = "55edf60f544078ab1e14987bc67e9029a200e0eb";
+    hash = "sha256-/ifzOScILLuFkjFIgpy0ArCcelgealbpypKvZ46xApU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/opentype
+    cp "iA Writer Duospace/OTF (Mac)/"*.otf $out/share/fonts/opentype/
+
+    runHook postInstall
+  '';
+
+  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 = [ ];
+  };
+}
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..a6c7b4d29535
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ibm-plex/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "ibm-plex";
+  version = "6.4.0";
+
+  src = fetchzip {
+    url = "https://github.com/IBM/plex/releases/download/v${version}/OpenType.zip";
+    hash = "sha256-/aR3bu03VxenSPed6EqrGoPjWCcKT//MVtb9OC8tSRs=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 */*.otf IBM-Plex-Sans-JP/unhinted/* -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "IBM Plex Typeface";
+    homepage = "https://www.ibm.com/plex/";
+    changelog = "https://github.com/IBM/plex/raw/v${version}/CHANGELOG.md";
+    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..79431995a496
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/inconsolata/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+  pname = "inconsolata";
+  version = "3.001";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "fonts";
+    rev = "0f203e3740b5eb77e0b179dff1e5869482676782";
+    sha256 = "sha256-Q8eUJ0mkoB245Ifz5ulxx61x4+AqKhG0uqhWF2nSLpw=";
+  };
+
+  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 = "Monospace font for both screen and print";
+    maintainers = with maintainers; [ appsforartists mikoim raskin ];
+    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..a5ffc2ec33a5
--- /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;
+
+      postFetch = ''
+        # 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..1ca1ce2f9098
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/inriafonts/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "inriafonts";
+  version = "1.200";
+
+  src = fetchFromGitHub {
+    owner = "BlackFoundry";
+    repo = "InriaFonts";
+    rev = "v${version}";
+    hash = "sha256-CMKkwGuUEVYavnFi15FCk7Xloyk97w+LhAZ6mpIv5xg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/truetype fonts/*/TTF/*.ttf
+    install -m444 -Dt $out/share/fonts/opentype fonts/*/OTF/*.otf
+
+    runHook postInstall
+  '';
+
+  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/intel-one-mono/default.nix b/nixpkgs/pkgs/data/fonts/intel-one-mono/default.nix
new file mode 100644
index 000000000000..f9876e8f0a25
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/intel-one-mono/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenvNoCC, fetchurl, unzip }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "intel-one-mono";
+  version = "1.3.0";
+
+  srcs = [
+    (fetchurl {
+      url = "https://github.com/intel/intel-one-mono/releases/download/V${finalAttrs.version}/otf.zip";
+      hash = "sha256-iZIfkXH+GplVwES4LaQBIaCWs7OKmEto9J2SpzvagSs=";
+    })
+    (fetchurl {
+      url = "https://github.com/intel/intel-one-mono/releases/download/V${finalAttrs.version}/ttf.zip";
+      hash = "sha256-EeUTEMuoTHKmuO5Uj0jjiDRF9t7jxbIy45nTWozlgfc=";
+    })
+  ];
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [
+    unzip
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm644 -t $out/share/fonts/truetype/ ttf/*.ttf
+    install -Dm644 -t $out/share/fonts/opentype/ otf/*.otf
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Intel One Mono, an expressive monospaced font family that’s built with clarity, legibility, and the needs of developers in mind";
+    homepage = "https://github.com/intel/intel-one-mono";
+    changelog = "https://github.com/intel/intel-one-mono/releases/tag/V${finalAttrs.version}";
+    license = licenses.ofl;
+    maintainers = [ maintainers.simoneruffini ];
+    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..2bed6db734bb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/inter/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "inter";
+  version = "4.0";
+
+  src = fetchzip {
+    url = "https://github.com/rsms/inter/releases/download/v${version}/Inter-${version}.zip";
+    stripRoot = false;
+    hash = "sha256-hFK7xFJt69n+98+juWgMvt+zeB9nDkc8nsR8vohrFIc=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp Inter.ttc InterVariable*.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://rsms.me/inter/";
+    description = "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..6e12c918cfb9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iosevka/bin.nix
@@ -0,0 +1,47 @@
+{ stdenv
+, lib
+, fetchurl
+, iosevka
+, unzip
+, variant ? ""
+}:
+
+let
+  name =
+    if lib.hasPrefix "SGr-" variant then variant
+    else "Iosevka" + variant;
+
+  variantHashes = import ./variants.nix;
+  validVariants = map (lib.removePrefix "Iosevka")
+    (builtins.attrNames (builtins.removeAttrs variantHashes [ "Iosevka" ]));
+in
+stdenv.mkDerivation rec {
+  pname = "${name}-bin";
+  version = "30.1.1";
+
+  src = fetchurl {
+    url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/PkgTTC-${name}-${version}.zip";
+    sha256 = variantHashes.${name} or (throw ''
+      No such variant "${variant}" for package iosevka-bin.
+      Valid variants are: ${lib.concatStringsSep ", " validVariants}.
+    '');
+  };
+
+  nativeBuildInputs = [ unzip ];
+
+  dontInstall = true;
+
+  unpackPhase = ''
+    mkdir -p $out/share/fonts
+    unzip -d $out/share/fonts/truetype $src
+  '';
+
+  meta = {
+    inherit (iosevka.meta) homepage downloadPage description license platforms;
+    maintainers = with lib.maintainers; [
+      montchr
+    ];
+  };
+
+  passthru.updateScript = ./update-bin.sh;
+}
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/comfy.nix b/nixpkgs/pkgs/data/fonts/iosevka/comfy.nix
new file mode 100644
index 000000000000..63dfca58d544
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iosevka/comfy.nix
@@ -0,0 +1,76 @@
+{ lib, iosevka, fetchFromGitHub, buildNpmPackage }:
+
+let
+  sets = [
+    # Family                  | Shapes | Spacing | Style      | Ligatures |
+    # ------------------------+--------+---------+------------+-----------|
+    "comfy" #                 | Sans   | Compact | Monospaced | Yes       |
+    "comfy-fixed" #           | Sans   | Compact | Monospaced | No        |
+    "comfy-duo" #             | Sans   | Compact | Duospaced  | Yes       |
+    # ------------------------+--------+---------+------------+-----------|
+    "comfy-motion" #          | Slab   | Compact | Monospaced | Yes       |
+    "comfy-motion-fixed" #    | Slab   | Compact | Monospaced | No        |
+    "comfy-motion-duo" #      | Slab   | Compact | Duospaced  | Yes       |
+    # ------------------------+--------+---------+------------+-----------|
+    "comfy-wide" #            | Sans   | Wide    | Monospaced | Yes       |
+    "comfy-wide-fixed" #      | Sans   | Wide    | Monospaced | No        |
+    "comfy-wide-duo" #        | Sans   | Wide    | Duospaced  | Yes       |
+    # ------------------------+--------+---------+------------+-----------|
+    "comfy-wide-motion" #     | Slab   | Wide    | Monospaced | Yes       |
+    "comfy-wide-motion-fixed" # Slab   | Wide    | Monospaced | No        |
+    "comfy-wide-motion-duo" # | Slab   | Wide    | Duospaced  | Yes       |
+  ];
+  version = "1.4.0";
+  src = fetchFromGitHub {
+    owner = "protesilaos";
+    repo = "iosevka-comfy";
+    rev = version;
+    sha256 = "sha256-kfEEJ6F1/dsG9CSLWcr0QOOnQxHPgPgb4QhgFrHTklE=";
+  };
+  privateBuildPlan = src.outPath + "/private-build-plans.toml";
+  makeIosevkaFont = set:
+    let superBuildNpmPackage = buildNpmPackage; in
+    (iosevka.override {
+      inherit set privateBuildPlan;
+      buildNpmPackage = args: superBuildNpmPackage
+        (args // {
+          pname = "iosevka-${set}";
+          inherit version;
+
+          src = fetchFromGitHub {
+            owner = "be5invis";
+            repo = "iosevka";
+            rev = "f6e57fbf0b1242ad3069d45c815d79b9d68871a2";
+            hash = "sha256-cS3SCKzUjVXF+n0Rt5eBLzieATB7W+hwEbzh6OQrMo4=";
+          };
+
+          npmDepsHash = "sha256-c+ltdh5e3+idclYfqp0Xh9IUwoj7XYP1uzJG6+a5gFU=";
+
+          installPhase = ''
+            runHook preInstall
+            fontdir="$out/share/fonts/truetype"
+            install -d "$fontdir"
+            install "dist/$pname/ttf"/* "$fontdir"
+            runHook postInstall
+          '';
+
+          meta = with lib; {
+            inherit (src.meta) homepage;
+            description = ''
+              Customised build of the Iosevka typeface, with a consistent
+              rounded style and overrides for almost all individual glyphs
+              in both roman (upright) and italic (slanted) variants.
+            '';
+            license = licenses.ofl;
+            platforms = iosevka.meta.platforms;
+            maintainers = [ maintainers.DamienCassou ];
+          };
+        });
+    });
+in
+builtins.listToAttrs (builtins.map
+  (set: {
+    name = set;
+    value = makeIosevkaFont set;
+  })
+  sets)
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/default.nix b/nixpkgs/pkgs/data/fonts/iosevka/default.nix
new file mode 100644
index 000000000000..2377636d7741
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iosevka/default.nix
@@ -0,0 +1,145 @@
+{ stdenv
+, lib
+, buildNpmPackage
+, fetchFromGitHub
+, darwin
+, 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;
+
+buildNpmPackage rec {
+  pname = "Iosevka${toString set}";
+  version = "30.2.0";
+
+  src = fetchFromGitHub {
+    owner = "be5invis";
+    repo = "iosevka";
+    rev = "v${version}";
+    hash = "sha256-L08xBKZHFFByemEa4GgwQRr+wRCocuT/RO+hV/S+hFA=";
+  };
+
+  npmDepsHash = "sha256-oRV6QVcJiVKvUtfrewTtnmlIMDaGknn0lEHdcNM3V2g=";
+
+  nativeBuildInputs = [
+    remarshal
+    ttfautohint-nox
+  ] ++ lib.optionals stdenv.isDarwin [
+    # libtool
+    darwin.cctools
+  ];
+
+  buildPlan =
+    if builtins.isAttrs privateBuildPlan then
+      builtins.toJSON { buildPlans.${pname} = privateBuildPlan; }
+    else
+      privateBuildPlan;
+
+  inherit extraParameters;
+  passAsFile = [ "extraParameters" ] ++ lib.optionals
+    (
+      !(builtins.isString privateBuildPlan
+        && lib.hasPrefix builtins.storeDir privateBuildPlan)
+    ) [ "buildPlan" ];
+
+  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
+    && (!lib.hasPrefix builtins.storeDir privateBuildPlan)) ''
+          cp "$buildPlanPath" private-build-plans.toml
+        ''}
+      ${lib.optionalString (builtins.isString privateBuildPlan
+    && (lib.hasPrefix builtins.storeDir privateBuildPlan)) ''
+          cp "$buildPlan" private-build-plans.toml
+        ''}
+      ${lib.optionalString (extraParameters != null) ''
+        echo -e "\n" >> params/parameters.toml
+        cat "$extraParametersPath" >> params/parameters.toml
+      ''}
+      runHook postConfigure
+  '';
+
+  buildPhase = ''
+    export HOME=$TMPDIR
+    runHook preBuild
+    npm run build --no-update-notifier --targets ttf::$pname -- --jCmd=$NIX_BUILD_CORES --verbose=9
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    fontdir="$out/share/fonts/truetype"
+    install -d "$fontdir"
+    install "dist/$pname/TTF"/* "$fontdir"
+    runHook postInstall
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    homepage = "https://typeof.net/Iosevka/";
+    downloadPage = "https://github.com/be5invis/Iosevka/releases";
+    description = "Versatile typeface for code, from code";
+    longDescription = ''
+      Iosevka is an open-source, sans-serif + slab-serif, monospace +
+      quasi‑proportional typeface family, designed for writing code, using in
+      terminals, and preparing technical documents.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [
+      ttuegel
+      rileyinman
+      AluisioASG
+      lunik1
+    ];
+  };
+}
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..bfa50e1a6e52
--- /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("PkgTTC"))'); do
+        printf '  %s = "%s";\n' \
+            $(echo "$asset" | sed -r "s/^PkgTTC-(.*)-$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/variants.nix b/nixpkgs/pkgs/data/fonts/iosevka/variants.nix
new file mode 100644
index 000000000000..a3933935ad07
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iosevka/variants.nix
@@ -0,0 +1,93 @@
+# This file was autogenerated. DO NOT EDIT!
+{
+  Iosevka = "0ymq4p5chaczhns24n4xal44ppay566pg95zkkkq51ck52f3zf44";
+  IosevkaAile = "1v35phx8ki3yjg43s0fk8snpyc59pa8kg26q56hayxsfrj1dsmck";
+  IosevkaCurly = "0d7sp0w7ryh8wwz4hxyhwimhw3ly668ygm4jcwf2amd3r4xxis5k";
+  IosevkaCurlySlab = "1lajfma7jdwi453jgd3pq1vdgz5zn3f01j502dfiaskqzfan89cb";
+  IosevkaEtoile = "0agg1gg3ymljln8msfask398w58p1wyy5bnzxc0pmmc7ivdajmh4";
+  IosevkaSlab = "1rfzij1p3rybxrq461h3ykpq41hqrgaiwjd7x36dzm4bcm7mga9q";
+  IosevkaSS01 = "0qhzmk8c0npisxqwn2qicxlad2awmnnvik91daidnndwhw4ylq8y";
+  IosevkaSS02 = "15ipbca4c15vs7n62463asl58xshwsrqirhbp23gpr4ixmx2vrmy";
+  IosevkaSS03 = "0nw7jx2smkn8aihcmwkmcqlzs0dhm54qmxrm9102vlsf61dawkpj";
+  IosevkaSS04 = "1bk18a712xjngmv28fzkw6fs560k928b3ahp9w7cvq1xvji5g3qb";
+  IosevkaSS05 = "1xgrbfg1am48j3ps7bnjryyy0pjnx6ahz75zaqwf35cwjb3f5wvf";
+  IosevkaSS06 = "1wk1scyz34dc3dcq1af2c3nla1lh56zbgzx1xinf8qwypb6m01dw";
+  IosevkaSS07 = "1z8gg8h2kbgq7d4lglfl4awbkmzxpjwcqa1xrxxpcpmxa04ppcfq";
+  IosevkaSS08 = "1wid8y6wavxff7b62cxm00y93mjfc3zzjd76g4vgrb7r7ql9kd06";
+  IosevkaSS09 = "06hwzhg4qb8cha7zl32pwzbcnzg1dv8432aq7hzfa0jq2jmvpxax";
+  IosevkaSS10 = "1p8s2lfvr50pacs941gwxp211j4fn9rzxxvprz03swqklvwadir7";
+  IosevkaSS11 = "15izq605ggr2lnc8lljk6lvwkdc87ilx53zw5j7cfdfq8bc6fv6k";
+  IosevkaSS12 = "1xnbap1cm125pdg9x8dbc5lm691fr244k5vblj9mqhaqvbq9pqjs";
+  IosevkaSS13 = "1l98yjgq4zbxnq5xwhlql9m864n2ha0d46xk0b5w32srnaq09ipb";
+  IosevkaSS14 = "0rmd6gc624k3kls98wlz3v407xdq7cynjb06p9zhwxwfy3l9wpwl";
+  IosevkaSS15 = "04qnx6lgp1g3vnwsgbxibjjia2fip1vhf5854kp9dx37qi8qzf7g";
+  IosevkaSS16 = "13xx1s5gv1gly3pnc5rq6zx93rhllmga3k9ik3p86h3kd1valsvb";
+  IosevkaSS17 = "00rc87a09j2v7f1s4spisqgrmlhf67gvvjy14dbmlv7s434z7ap2";
+  IosevkaSS18 = "1fdpsqya1gn939v6b7iwj1sjpskbbxr5ypf0l5rvldxfqisx7zj4";
+  SGr-Iosevka = "0raiapwifmf02560ibic8g47mal8w91wfdcivh8yh7g2ldf5hchr";
+  SGr-IosevkaCurly = "1sg9prv501sa9iy9j4664qsp99d47lmfwn5hqms51kijliplfyfy";
+  SGr-IosevkaCurlySlab = "1g216l92khl22w7833pmwaphvr94zjing3sx8ldnj4py26nvvfqp";
+  SGr-IosevkaFixed = "0f0jk2fhqb4ch5gm6ndip04brchrz20kvs9ja4yarkmild3j1vmg";
+  SGr-IosevkaFixedCurly = "10ayxf5v2yyclpb2gnd06jgkbqvqy0sq5n8vmkjmjb6fx5v0yl7f";
+  SGr-IosevkaFixedCurlySlab = "14iyjj2i29bp084yi7ja1xxh3cl95xiyj29jcwgd6ndzv3xf8ir8";
+  SGr-IosevkaFixedSlab = "0zvm0qy7bjlj9c3gqzip3ldg9lnm3003fdd1s4ks2zvaz6xwk9sy";
+  SGr-IosevkaFixedSS01 = "09npaina3c9rsg84rlm1hadqd64v8i1rjcgbi6d8y5xs01dwn6jg";
+  SGr-IosevkaFixedSS02 = "0r67l52pk1wlqdmfn2wbjkcd4szmpj4d24jcgy5b83gjr3hgmcr4";
+  SGr-IosevkaFixedSS03 = "1dpj0hv1qghwhxqsymvk0xjhjnwxd9av23hr90bi5h10k7rx3nqy";
+  SGr-IosevkaFixedSS04 = "1ffpj0g0jh72x12ibw6mrfkgh87jzhbz4ak15c0yh21rz3bya71a";
+  SGr-IosevkaFixedSS05 = "1q6gw659p5fwgbqb20lzw89px8b0k2p65iasway0a4rihb7am18x";
+  SGr-IosevkaFixedSS06 = "0axqqhlk0811yxnk34kq8a1ayl4cpykjqd7ma9z52y8a1kgdilx2";
+  SGr-IosevkaFixedSS07 = "1jcwwp3w2j1chnn92r2whrq15ka3hfzw96w4ffppwk715s1kc63h";
+  SGr-IosevkaFixedSS08 = "0f5xyr8dgbmgw21z9g12admbj4037lgid9agl6djiavljdn3xwlz";
+  SGr-IosevkaFixedSS09 = "09xi1rrddivsqr2ddw3g10v2y4ybvbwa7p05jl7hz6kwgr1qrqwd";
+  SGr-IosevkaFixedSS10 = "0m6qwkb7svjgskc391dri8vciydzjgx1s91bbsax8gy18mqh3vd7";
+  SGr-IosevkaFixedSS11 = "1l04gmzdpccz1xmjqgn0jhpwxvq1axyqnrmkyafd116q4qszbayf";
+  SGr-IosevkaFixedSS12 = "1i5jx8cffsl1zpjxvyb3m73r82vfh71z4s4dzg55svzh4lkkdfyc";
+  SGr-IosevkaFixedSS13 = "013d0a2kli353vxlrrs5mgwdf1fipv3vsv626izp6whfxfg6pk6h";
+  SGr-IosevkaFixedSS14 = "07n4hkrayr5chy46pa0d86srfaprm8kw56x86wndqj2blk5ydvh6";
+  SGr-IosevkaFixedSS15 = "16lglz0ri7ww68whf8q009qq6kzaygy6lhbps5lmags34jhc9fa5";
+  SGr-IosevkaFixedSS16 = "15j5b2w54bsq8mbi6swq6vd2xvvnnd0j0c3d4dcp4kbhr766841q";
+  SGr-IosevkaFixedSS17 = "14j3miv97mk6hg3q7mafqc57m7z5sg6k7gap53v367793gkz6096";
+  SGr-IosevkaFixedSS18 = "1iylhw0c05gdp48rx8417khs0yih0q917xx8k81bh5xdg0idyjim";
+  SGr-IosevkaSlab = "1wyasyf0ydvh2q0akqvn7bzl66m7kyf2v9p3ry0lgcwv0flrwrpi";
+  SGr-IosevkaSS01 = "1hs0pvamx149l2drvciqnwry75165sq2nvl7g0f4jazclfb4af3c";
+  SGr-IosevkaSS02 = "05pl8asc5zqm1x4lcj00al27da1m301g96zyijsfxx2vybpw53jd";
+  SGr-IosevkaSS03 = "0c60585ss53mzb0swf08r54673a426wq8mamxgnc733yinbsffwx";
+  SGr-IosevkaSS04 = "0yml0y535kl2bid1qflkx3rrq2rq81nxpba18kk7xpscsg04ghjn";
+  SGr-IosevkaSS05 = "03hxlchn96m0ll47rn8lg092c776b1v99pcrsmrlx3x8gslpdlka";
+  SGr-IosevkaSS06 = "04cnymhvm5wi0hb956afi7029acqfqr0djhc1blhpkmldz8pzsn6";
+  SGr-IosevkaSS07 = "1v4khps1z16k59snwxffwwn1y1yj2mp8k4fjkrxli7lb5mrn8lwl";
+  SGr-IosevkaSS08 = "0pvy39fs5carcb0mh3ak8f5hkfjyk2pkmj7nfcaxdgkcgkys2ixn";
+  SGr-IosevkaSS09 = "0cibn02752b2nfjgg12lb10hgigz3a4zcrsc76bh0r9dsgjphscn";
+  SGr-IosevkaSS10 = "165snqk5livrkhpwcssb5b221f6gwwirm5rlsmx8d72y7rlc2vb0";
+  SGr-IosevkaSS11 = "0czb0gxd2cq329123zcmz9axkfpza43kqhn6bi1rq8dgjh4qn0fx";
+  SGr-IosevkaSS12 = "1ycqxpjm5k421a9iwiziab3j69frdgjiz7cwx1k7djqyshqn98k0";
+  SGr-IosevkaSS13 = "18wiv124c868h7qaw6qvdy8xhgh4grfhqri8q2mi8zj5gadkh5yb";
+  SGr-IosevkaSS14 = "1y2cfivf1zg03c2dn9xg5i29zmi4j3mj5diz3kyd68ih4csrzyla";
+  SGr-IosevkaSS15 = "0ghg5f2ay6i2fzbw4xq28hcpbvwjzqvi1pz2nfvd2i2n61960xpr";
+  SGr-IosevkaSS16 = "1132nf2xlsab8mhl5k1fvg8j9j6s1iy1avh5mj7jjb1z2i03z3fb";
+  SGr-IosevkaSS17 = "155vfg5p114vdl722mqdfap3cm25wxydmhldd88n488yr3yviicv";
+  SGr-IosevkaSS18 = "1y76pzsz5gfm0jjw8fa11aajf3zk188xr5fvsf3v89zdzk1ixzgj";
+  SGr-IosevkaTerm = "0rkyy77cdcpf74kw59kbz3l7fs0xl2l0m2zwv8nl4i1x4dbxjj9x";
+  SGr-IosevkaTermCurly = "09r4ag6madsc8889y1r12wk2763pjginrrykrj7w41j11bcvra39";
+  SGr-IosevkaTermCurlySlab = "0bjm43znavfjni7bmi48g4j90v6fp7fg62h32wjvfcpldhycqw8m";
+  SGr-IosevkaTermSlab = "0p4wvgp0nw70gdjn00dqh6vwwsl2fxcl11hf41s0hzr6cj8j0s93";
+  SGr-IosevkaTermSS01 = "1m8n32qs5jlcbfvzjnhm9lafdc1vg2cjya3hb7sphgiiqqjdgkf1";
+  SGr-IosevkaTermSS02 = "14fznvapw4pi3djhfr512pmmlb2air03jkik7d8rw8h69nnragb7";
+  SGr-IosevkaTermSS03 = "14386dbd8yah6j74cp4pddp9cjwi175wg4mq62mi0pxkm1fla578";
+  SGr-IosevkaTermSS04 = "038c4bkcfn8pd18dikipfbv7mqvils3v4fdrhyfmf83770qvkrf0";
+  SGr-IosevkaTermSS05 = "10k49rgwiymbzys8sswfr5ryn1547i1hrg8phb71lbzwxhc4z5m3";
+  SGr-IosevkaTermSS06 = "1pxyydwqbv1f51pdg36pvz5pj45nw28yc0vadj2q3617f2jb2n2h";
+  SGr-IosevkaTermSS07 = "1p1aqqa5h4m6r97q00qf32myfli2fm7lg692aqw45baxxw8sn52l";
+  SGr-IosevkaTermSS08 = "0r7hxaigz66cfgvci88hl0g55177kz3sbb8lji47h1v5r4xhzfl3";
+  SGr-IosevkaTermSS09 = "1ah9kbw9zc0nzfnsyxkbv7wnlaaywyvlkmdv5bfi3ds06w2kjphk";
+  SGr-IosevkaTermSS10 = "08b1l13g4j55sh10pfa6p7z72cvk4r694lml1m9vl4h4ail8w1ml";
+  SGr-IosevkaTermSS11 = "1bqa6d95ga9309m2vr3xzyrhf92dhw3hd3n5awpxip2mfr2k1fbp";
+  SGr-IosevkaTermSS12 = "00949ajl9xzpq7q045wb4hm8hfl94zpyp3fdjx0im7v4k2akzkjp";
+  SGr-IosevkaTermSS13 = "1cdwxb3bykxkr3ifprmh4pwc33cbyrn26d2h1hix9xsjw5nw99c6";
+  SGr-IosevkaTermSS14 = "1k0gwla5xkn8z70m36mhlhs7zm1sj7q33j68mb2wm783lapbll7v";
+  SGr-IosevkaTermSS15 = "1gjac767vi97qs8hqdklzqqb75dz0yx0z9pjr2lribfv0dvxvhss";
+  SGr-IosevkaTermSS16 = "0f738zydh51gvs68f0csax36bf2pi94pqbp0yjjqyrpx5c9m4pq0";
+  SGr-IosevkaTermSS17 = "1rmdb0nbdy47q8v3b7mpb1df5x9yfv7ijs26xwv64aas75hjf8vk";
+  SGr-IosevkaTermSS18 = "0jyidsr9aaccrc9bs7k8m5rj11p6vsxdrl2mslgc2bfwcarg89cm";
+}
diff --git a/nixpkgs/pkgs/data/fonts/ipaexfont/default.nix b/nixpkgs/pkgs/data/fonts/ipaexfont/default.nix
new file mode 100644
index 000000000000..986eab13a257
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ipaexfont/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation {
+  pname = "ipaexfont";
+  version = "004.01";
+
+  src = fetchzip {
+    url = "https://moji.or.jp/wp-content/ipafont/IPAexfont/IPAexfont00401.zip";
+    hash = "sha256-/87qJIb+v4qrtDy+ApfXxh59reOk+6RhGqFN98mc+8Q=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  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 = "https://moji.or.jp/ipafont/";
+    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..8a1f91da34fb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ipafont/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation {
+  pname = "ipafont";
+  version = "003.03";
+
+  src = fetchzip {
+    url = "https://moji.or.jp/wp-content/ipafont/IPAfont/IPAfont00303.zip";
+    hash = "sha256-EzUNKuDNHr0NIXiqX09w99wtz1r2pZurR/izdgzTcAs=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  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 = "https://moji.or.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..d59c111c96b7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ir-standard-fonts/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "ir-standard-fonts";
+  version = "20170121";
+
+  src = fetchFromGitHub {
+    owner = "molaeiali";
+    repo = pname;
+    rev = version;
+    hash = "sha256-o1d8SBX3nf7g6Gh4OP+JRS+LNrHTQOIiHhW3VNCkDV0=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/ir-standard-fonts {} \;
+
+    runHook postInstall
+  '';
+
+  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 = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/iwona/default.nix b/nixpkgs/pkgs/data/fonts/iwona/default.nix
new file mode 100644
index 000000000000..6a40b20b28e0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iwona/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenvNoCC, texlive }:
+
+stdenvNoCC.mkDerivation rec {
+  inherit (src) pname version;
+
+  src = texlive.pkgs.iwona;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 fonts/opentype/nowacki/iwona/*.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Two-element sans-serif typeface, created by Małgorzata Budyta";
+    homepage = "https://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 = src.meta.license;
+    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..326659519862
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "jetbrains-mono";
+  version = "2.304";
+
+  src = fetchzip {
+    url = "https://github.com/JetBrains/JetBrainsMono/releases/download/v${version}/JetBrainsMono-${version}.zip";
+    sha256 = "sha256-rv5A3F1zdcUJkmw09st1YxmEIkIoYJaMYGyZjic8jfc=";
+    stripRoot = false;
+  };
+
+  dontPatch = true;
+  dontConfigure = true;
+  dontBuild = true;
+  doCheck = false;
+  dontFixup = true;
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm644 -t $out/share/fonts/truetype/ fonts/ttf/*.ttf
+    install -Dm644 -t $out/share/fonts/truetype/ fonts/variable/*.ttf
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Typeface made for developers";
+    homepage = "https://jetbrains.com/mono/";
+    changelog = "https://github.com/JetBrains/JetBrainsMono/blob/v${version}/Changelog.md";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ vinnymeller ];
+    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..c8577e5e171e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/jost/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "jost";
+  version = "3.5";
+
+  src = fetchzip {
+    url = "https://github.com/indestructible-type/Jost/releases/download/${version}/Jost.zip";
+    hash = "sha256-ne81bMhmTzNZ/GGIzb7nCYh19vNLK+hJ3cP/zDxtiGM=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 fonts/otf/*.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/indestructible-type/Jost";
+    description = "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..29e4eb118888
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/joypixels/default.nix
@@ -0,0 +1,113 @@
+{ 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";
+    fullName = "JoyPixels Free License Agreement";
+    url = "https://cdn.joypixels.com/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.allowUnfreePredicate = pkg:
+        builtins.elem (lib.getName pkg) [
+          "joypixels"
+        ];
+      nixpkgs.config.joypixels.acceptLicense = true;
+
+    config.nix:
+      allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
+        "joypixels"
+      ];
+      joypixels.acceptLicense = true;
+
+    [1]: ${joypixels-free-license.url}
+    [2]: ${joypixels-license-appendix.url}
+  '';
+
+in
+
+stdenv.mkDerivation rec {
+  pname = "joypixels";
+  version = "8.0.0";
+
+  src = assert !acceptLicense -> throwLicense;
+    with systemSpecific; fetchurl {
+      name = fontFile;
+      url = "https://cdn.joypixels.com/distributions/${systemTag}/font/${version}/${fontFile}";
+      sha256 = {
+        darwin = "0kj4nck6k91avhan9iy3n8hhk47xr44rd1lzljjx3w2yzw1w9zvv";
+      }.${kernel.name} or "1bkyclgmvl6ppbdvidc5xr1g6f215slf0glnh5p6fsfbxc5h95bw";
+    };
+
+  dontUnpack = true;
+
+  installPhase = with systemSpecific; ''
+    runHook preInstall
+
+    install -Dm644 $src $out/share/fonts/truetype/${fontFile}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Finest emoji you can use legally (formerly EmojiOne)";
+    longDescription = ''
+      Updated for 2023! JoyPixels 8.0 includes 3,702 originally crafted icon
+      designs and is 100% Unicode 15.0 compatible. We offer the largest
+      selection of files ranging from png, svg, iconjar, and fonts (sprites
+      available upon request).
+    '';
+    homepage = "https://www.joypixels.com/fonts";
+    hydraPlatforms = []; # Just a binary file download, nothing to cache.
+    license =
+      let
+        free-license = joypixels-free-license;
+        appendix = joypixels-license-appendix;
+      in with systemSpecific; {
+        spdxId = "LicenseRef-JoyPixels-Free-with-${capitalized}-Appendix";
+        fullName = "${free-license.fullName} with ${appendix.fullName}";
+        url = free-license.url;
+        appendixUrl = appendix.url;
+        free = false;
+      };
+    maintainers = with maintainers; [ toonn jtojnar ];
+    # Not quite accurate since it's a font, not a program, but clearly
+    # indicates we're not actually building it from source.
+    sourceProvenance = [ sourceTypes.binaryNativeCode ];
+  };
+}
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..748c043ad62f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/julia-mono/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "JuliaMono-ttf";
+  version = "0.055";
+
+  src = fetchzip {
+    url = "https://github.com/cormullion/juliamono/releases/download/v${version}/${pname}.tar.gz";
+    stripRoot = false;
+    hash = "sha256-bE7XjVzleSo5hjc7Azcl8R4OgJzsj1U21UOuXrBkulA=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    mv *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "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://juliamono.netlify.app/";
+    license = licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/junction/default.nix b/nixpkgs/pkgs/data/fonts/junction/default.nix
new file mode 100644
index 000000000000..b629477f6144
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/junction/default.nix
@@ -0,0 +1,34 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "junction";
+  version = "2014-05-29";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "fb73260e86dd301b383cf6cc9ca8e726ef806535";
+    hash = "sha256-Zqh23HPWGed+JkADYjYdsVNRxqJDvC9xhnqAqWZ3Eu8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Junction is a a humanist sans-serif font";
+    longDescription = ''
+      Junction is a a humanist sans-serif, and the first open-source type
+      project started by The League of Moveable Type. It has been updated
+      (2014) to include additional weights (light/bold) and expanded
+      international support.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/junction";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/junicode/default.nix b/nixpkgs/pkgs/data/fonts/junicode/default.nix
new file mode 100644
index 000000000000..c3d5fffb5a8e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/junicode/default.nix
@@ -0,0 +1,51 @@
+{ lib, stdenvNoCC, fetchzip, texlive, callPackage }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "junicode";
+  version = "2.208";
+
+  src = fetchzip {
+    url = "https://github.com/psb1558/Junicode-font/releases/download/v${version}/Junicode_${version}.zip";
+    hash = "sha256-uzPzZ6b/CxdcoXSsxf2Cfs9/MpcGn7pQfdwL37pbvXg=";
+  };
+
+  outputs = [ "out" "doc" "tex" ];
+
+  patches = [ ./tex-font-path.patch ];
+
+  postPatch = ''
+    substituteInPlace TeX/junicode.sty \
+      --replace '@@@opentype_path@@@' "$out/share/fonts/opentype/" \
+      --replace '@@@truetype_path@@@' "$out/share/fonts/truetype/"
+    substituteInPlace TeX/junicodevf.sty \
+      --replace '@@@truetype_path@@@' "$out/share/fonts/truetype/"
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm 444 -t $out/share/fonts/truetype TTF/*.ttf VAR/*.ttf
+    install -Dm 444 -t $out/share/fonts/opentype OTF/*.otf
+    install -Dm 444 -t $out/share/fonts/woff2 WOFF2/*.woff2
+
+    install -Dm 444 -t $doc/share/doc/${pname}-${version} docs/*.pdf
+
+    install -Dm 444 -t $tex/tex/latex/junicode TeX/junicode.sty
+    install -Dm 444 -t $tex/tex/latex/junicodevf TeX/junicodevf.{sty,lua}
+
+    runHook postInstall
+  '';
+
+  passthru = {
+    tlDeps = with texlive; [ xkeyval fontspec ];
+
+    tests = callPackage ./tests.nix { };
+  };
+
+  meta = {
+    homepage = "https://github.com/psb1558/Junicode-font";
+    description = "Unicode font for medievalists";
+    maintainers = with lib.maintainers; [ ivan-timokhin ];
+    license = lib.licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/junicode/test-vf.tex b/nixpkgs/pkgs/data/fonts/junicode/test-vf.tex
new file mode 100644
index 000000000000..a23437b40efd
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/junicode/test-vf.tex
@@ -0,0 +1,46 @@
+\documentclass{article}
+
+\usepackage{junicodevf}
+
+\begin{document}
+\begin{enumerate}
+\item {\jBold Bold}
+\item {\jBoldItalic BoldItalic}
+\item {\jCond Cond}
+\item {\jCondItalic CondItalic}
+\item {\jCondLight CondLight}
+\item {\jCondLightItalic CondLightItalic}
+\item {\jCondMedium CondMedium}
+\item {\jCondMediumItalic CondMediumItalic}
+\item {\jExp Exp}
+\item {\jExpItalic ExpItalic}
+\item {\jExpBold ExpBold}
+\item {\jExpBoldItalic ExpBoldItalic}
+\item {\jExpMedium ExpMedium}
+\item {\jExpMediumItalic ExpMediumItalic}
+\item {\jExpSmbold ExpSmbold}
+\item {\jExpSmboldItalic ExpSmboldItalic}
+\item {\jItalic Italic}
+\item {\jLight Light}
+\item {\jLightItalic LightItalic}
+\item {\jMedium Medium}
+\item {\jMediumItalic MediumItalic}
+\item {\jRegular Regular}
+\item {\jSmbold Smbold}
+\item {\jSmboldItalic SmboldItalic}
+\item {\jSmCond SmCond}
+\item {\jSmCondItalic SmCondItalic}
+\item {\jSmCondLight SmCondLight}
+\item {\jSmCondLightItalic SmCondLightItalic}
+\item {\jSmCondMedium SmCondMedium}
+\item {\jSmCondMediumItalic SmCondMediumItalic}
+\item {\jSmExp SmExp}
+\item {\jSmExpItalic SmExpItalic}
+\item {\jSmExpBold SmExpBold}
+\item {\jSmExpBoldItalic SmExpBoldItalic}
+\item {\jSmExpMedium SmExpMedium}
+\item {\jSmExpMediumItalic SmExpMediumItalic}
+\item {\jSmExpSmbold SmExpSmbold}
+\item {\jSmExpSmboldItalic SmExpSmboldItalic}
+\end{enumerate}
+\end{document}
diff --git a/nixpkgs/pkgs/data/fonts/junicode/test.tex b/nixpkgs/pkgs/data/fonts/junicode/test.tex
new file mode 100644
index 000000000000..d82f40f1279f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/junicode/test.tex
@@ -0,0 +1,46 @@
+\documentclass{article}
+
+\usepackage[fonttype=@fonttype@]{junicode}
+
+\begin{document}
+\begin{enumerate}
+\item {\jBold Bold}
+\item {\jBoldItalic BoldItalic}
+\item {\jCond Cond}
+\item {\jCondItalic CondItalic}
+\item {\jCondLight CondLight}
+\item {\jCondLightItalic CondLightItalic}
+\item {\jCondMedium CondMedium}
+\item {\jCondMediumItalic CondMediumItalic}
+\item {\jExp Exp}
+\item {\jExpItalic ExpItalic}
+\item {\jExpBold ExpBold}
+\item {\jExpBoldItalic ExpBoldItalic}
+\item {\jExpMedium ExpMedium}
+\item {\jExpMediumItalic ExpMediumItalic}
+\item {\jExpSmBold ExpSmBold}
+\item {\jExpSmBoldItalic ExpSmBoldItalic}
+\item {\jItalic Italic}
+\item {\jLight Light}
+\item {\jLightItalic LightItalic}
+\item {\jMedium Medium}
+\item {\jMediumItalic MediumItalic}
+\item {\jRegular Regular}
+\item {\jSmBold SmBold}
+\item {\jSmBoldItalic SmBoldItalic}
+\item {\jSmCond SmCond}
+\item {\jSmCondItalic SmCondItalic}
+\item {\jSmCondLight SmCondLight}
+\item {\jSmCondLightItalic SmCondLightItalic}
+\item {\jSmCondMedium SmCondMedium}
+\item {\jSmCondMediumItalic SmCondMediumItalic}
+\item {\jSmExp SmExp}
+\item {\jSmExpItalic SmExpItalic}
+\item {\jSmExpBold SmExpBold}
+\item {\jSmExpBoldItalic SmExpBoldItalic}
+\item {\jSmExpMedium SmExpMedium}
+\item {\jSmExpMediumItalic SmExpMediumItalic}
+\item {\jSmExpSmBold SmExpSmBold}
+\item {\jSmExpSmBoldItalic SmExpSmBoldItalic}
+\end{enumerate}
+\end{document}
diff --git a/nixpkgs/pkgs/data/fonts/junicode/tests.nix b/nixpkgs/pkgs/data/fonts/junicode/tests.nix
new file mode 100644
index 000000000000..831e60796d12
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/junicode/tests.nix
@@ -0,0 +1,34 @@
+{ lib, runCommand, junicode, texliveBasic }:
+let
+  texliveWithJunicode = texliveBasic.withPackages (p: [ p.xetex junicode ]);
+
+  texTest = { package, tex, fonttype, file }:
+    lib.attrsets.nameValuePair "${package}-${tex}-${fonttype}" (
+      runCommand "${package}-test-${tex}-${fonttype}.pdf"
+        {
+          nativeBuildInputs = [ texliveWithJunicode ];
+          inherit tex fonttype file;
+        } ''
+        substituteAll $file test.tex
+        HOME=$PWD $tex test.tex
+        cp test.pdf $out
+      '');
+in
+builtins.listToAttrs (
+  lib.mapCartesianProduct texTest
+    {
+      tex = [ "xelatex" "lualatex" ];
+      fonttype = [ "ttf" "otf" ];
+      package = [ "junicode" ];
+      file = [ ./test.tex ];
+    }
+  ++
+  [
+    (texTest {
+      package = "junicodevf";
+      fonttype = "ttf";
+      tex = "lualatex";
+      file = ./test-vf.tex;
+    })
+  ]
+)
diff --git a/nixpkgs/pkgs/data/fonts/junicode/tex-font-path.patch b/nixpkgs/pkgs/data/fonts/junicode/tex-font-path.patch
new file mode 100644
index 000000000000..13b311b39ce6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/junicode/tex-font-path.patch
@@ -0,0 +1,166 @@
+Upstream style file relies on font files being present on the system
+globally.  This is not quite how Nix usually does thing, so this patch
+changes the style file to instead look fonts up in hardcoded
+locations, which are later patched up to refer to the package outputs,
+thus ensuring the style always uses the fonts packaged with it.
+
+diff --git a/TeX/junicode.sty b/TeX/junicode.sty
+index 83bd45d..8fe671c 100644
+--- a/TeX/junicode.sty
++++ b/TeX/junicode.sty
+@@ -208,7 +208,14 @@
+ 
+ \RequirePackage{fontspec}
+ \defaultfontfeatures{Ligatures=TeX, Extension=.\junicode@fonttype}
+-\defaultfontfeatures{Ligatures=TeX}
++
++\def\junicode@fonttype@otf{otf}
++
++\ifx\junicode@fonttype\junicode@fonttype@otf
++  \def\junicode@fontpath{@@@opentype_path@@@}
++\else
++  \def\junicode@fontpath{@@@truetype_path@@@}
++\fi
+ 
+ \ifxetex
+ \typeout{\junicode@regstylename}
+@@ -219,6 +226,7 @@
+    ItalicFont =        *-\junicode@italstylename,
+    BoldFont =          *-\junicode@boldstylename,
+    BoldItalicFont =    *-\junicode@boldstylename Italic,
++   Path =              \junicode@fontpath,
+   ]{Junicode}
+ \fi
+ \ifluatex
+@@ -230,6 +238,7 @@
+    ItalicFont =        *-\junicode@italstylename,
+    BoldFont =          *-\junicode@boldstylename,
+    BoldItalicFont =    *-\junicode@boldstylename Italic,
++   Path =              \junicode@fontpath,
+   ]{Junicode}
+ \fi
+ 
+@@ -242,6 +251,7 @@
+         #3
+         Numbers =           {\junicode@figurealign,\junicode@figurestyle},
+         SmallCapsFeatures = {Letters=SmallCaps},
++        Path =              \junicode@fontpath,
+     ]
+ }
+ \fi
+@@ -252,6 +262,7 @@
+         #3
+         Numbers =           {\junicode@figurealign,\junicode@figurestyle},
+         SmallCapsFeatures = {Letters=SmallCaps},
++        Path =              \junicode@fontpath,
+     ]
+ }
+ \fi
+diff --git a/TeX/junicodevf.lua b/TeX/junicodevf.lua
+index 7148668..acebe82 100644
+--- a/TeX/junicodevf.lua
++++ b/TeX/junicodevf.lua
+@@ -148,7 +148,7 @@ function mkfontcommands()
+          romfontcmd = "jRegular"
+          italfontcmd = "jItalic"
+       end
+-      tex.print("\\junicodevf@newfont{\\" .. romfontcmd .. "}{JunicodeVF}{\\" .. defcmd .. "}{\\" .. defsizecmd .. "}")
++      tex.print("\\junicodevf@newfont{\\" .. romfontcmd .. "}{JunicodeVF-Roman}{\\" .. defcmd .. "}{\\" .. defsizecmd .. "}")
+       tex.print("\\junicodevf@newfont{\\" .. italfontcmd .. "}{JunicodeVF-Italic}{\\" .. defcmd .. "}{\\" .. defsizecmd .. "}")
+    end
+ end
+diff --git a/TeX/junicodevf.sty b/TeX/junicodevf.sty
+index c01ccaf..07a99ad 100644
+--- a/TeX/junicodevf.sty
++++ b/TeX/junicodevf.sty
+@@ -168,11 +168,13 @@ mkwidthcommands(wdindex, adjustment)}}
+ 
+ % DECLARE THE FONTS
+ 
+-\setmainfont{Junicode VF}[
+-    ItalicFont =         {*-Italic},
+-    BoldFont =           {*},
+-    BoldItalicFont =     {*-Italic},
++\setmainfont{JunicodeVF-Roman}[
++    ItalicFont =         {JunicodeVF-Italic},
++    BoldFont =           {JunicodeVF-Roman},
++    BoldItalicFont =     {JunicodeVF-Italic},
+     Renderer =           HarfBuzz,
++    Extension =          .ttf,
++    Path =               @@@truetype_path@@@,
+     Numbers =            {\junicodevf@figurealign,\junicodevf@figurestyle},
+     \MainDef,
+     UprightFeatures =    {\MainRegDef
+@@ -188,6 +190,8 @@ mkwidthcommands(wdindex, adjustment)}}
+ \newcommand*{\junicodevf@newfont}[4]{
+     \setfontface#1{#2}[
+         Renderer =          HarfBuzz,
++        Extension =          .ttf,
++        Path =               @@@truetype_path@@@,
+         Numbers =           {\junicodevf@figurealign,\junicodevf@figurestyle},
+         SmallCapsFont =     {*},
+         SmallCapsFeatures = {Letters=SmallCaps},
+@@ -200,43 +204,59 @@ mkwidthcommands(wdindex, adjustment)}}
+ 
+ % ENLARGED FACES
+ 
+-\setfontface\EnlargedOne{JunicodeVF}[
++\setfontface\EnlargedOne{JunicodeVF-Roman}[
+     Renderer = HarfBuzz,
++    Extension = .ttf,
++    Path = @@@truetype_path@@@,
+     \ENLAOneSizeDef
+ ]
+ 
+ \setfontface\EnlargedOneItalic{JunicodeVF-Italic}[
+     Renderer = HarfBuzz,
++    Extension = .ttf,
++    Path = @@@truetype_path@@@,
+     \ENLAOneSizeDef
+ ]
+ 
+-\setfontface\EnlargedTwo{JunicodeVF}[
++\setfontface\EnlargedTwo{JunicodeVF-Roman}[
+     Renderer = HarfBuzz,
++    Extension = .ttf,
++    Path = @@@truetype_path@@@,
+     \ENLATwoSizeDef
+ ]
+ 
+ \setfontface\EnlargedTwoItalic{JunicodeVF-Italic}[
+     Renderer = HarfBuzz,
++    Extension = .ttf,
++    Path = @@@truetype_path@@@,
+     \ENLATwoSizeDef
+ ]
+ 
+-\setfontface\EnlargedThree{JunicodeVF}[
++\setfontface\EnlargedThree{JunicodeVF-Roman}[
+     Renderer = HarfBuzz,
++    Extension = .ttf,
++    Path = @@@truetype_path@@@,
+     \ENLAThreeSizeDef
+ ]
+ 
+ \setfontface\EnlargedThreeItalic{JunicodeVF-Italic}[
+     Renderer = HarfBuzz,
++    Extension = .ttf,
++    Path = @@@truetype_path@@@,
+     \ENLAThreeSizeDef
+ ]
+ 
+-\setfontface\EnlargedFour{JunicodeVF}[
++\setfontface\EnlargedFour{JunicodeVF-Roman}[
+     Renderer = HarfBuzz,
++    Extension = .ttf,
++    Path = @@@truetype_path@@@,
+     \ENLAFourSizeDef
+ ]
+ 
+ \setfontface\EnlargedFourItalic{JunicodeVF-Italic}[
+     Renderer = HarfBuzz,
++    Extension = .ttf,
++    Path = @@@truetype_path@@@,
+     \ENLAFourSizeDef
+ ]
+ 
diff --git a/nixpkgs/pkgs/data/fonts/kacst/default.nix b/nixpkgs/pkgs/data/fonts/kacst/default.nix
new file mode 100644
index 000000000000..aa5ed8b547da
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kacst/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "kacst";
+  version = "2.01";
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/f/fonts-${pname}/fonts-${pname}_${version}+mry.orig.tar.bz2";
+    hash = "sha256-byiZzpYiMU6kJs+NSISfHPFzAnJtc8toNIbV/fKiMzg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts
+    cp -R kacst $out/share/fonts
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "KACST Latin-Arabic TrueType fonts";
+    license = licenses.gpl2Only;
+    maintainers = with lib.maintainers; [ serge ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/kanit/default.nix b/nixpkgs/pkgs/data/fonts/kanit/default.nix
new file mode 100644
index 000000000000..88eb8740ee19
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kanit/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "kanit";
+  version = "unstable-2020-06-16";
+
+  src = fetchFromGitHub {
+    owner = "cadsondemak";
+    repo = pname;
+    rev = "467dfe842185681d8042cd608b8291199dd37cda";
+    sha256 = "0p0klb0376r8ki4ap2j99j7jcsq6wgb7m1hf3j1dkncwm7ikmg3h";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/doc/kanit/css/ $out/share/fonts/{opentype,truetype}
+
+    cp $src/OFL.txt $src/documentation/{BRIEF.md,features.html} $out/share/doc/kanit
+    cp $src/documentation/css/fonts.css $out/share/doc/kanit/css
+    cp $src/fonts/otf/*.otf $out/share/fonts/opentype
+    cp $src/fonts/ttf/*.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://cadsondemak.github.io/kanit/";
+    description = "Loopless Thai and sans serif Latin typeface for contemporary and futuristic uses";
+    longDescription = ''
+      Kanit means mathematics in Thai, and the Kanit typeface family is a formal
+      Loopless Thai and Sans Latin design. It is a combination of concepts,
+      mixing a Humanist Sans Serif motif with the curves of Capsulated Geometric
+      styles that makes it suitable for various uses, contemporary and
+      futuristic. A notable detail is that the stroke terminals have flat angles,
+      which allows the design to enjoy decreased spacing between letters while
+      preserving readability and legibility at smaller point sizes.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.toastal ];
+  };
+}
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..7d7d025bbb76
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kanji-stroke-order-font/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchzip }:
+
+let
+  font = "kanji-stroke-order";
+  version = "4.004";
+in
+stdenv.mkDerivation {
+  pname = "${font}-font";
+  inherit version;
+
+  src = fetchzip {
+    # https://github.com/NixOS/nixpkgs/issues/60157
+    url = "https://drive.google.com/uc?export=download&id=1snpD-IQmT6fGGQjEePHdDzE2aiwuKrz4#${font}.zip";
+    hash = "sha256-wQpurDS6APnpNMbMHofwW/UKeBF8FXeiCVx4wAOeRoE=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/${font}
+    install -Dm644 *.txt -t $out/share/doc/${font}
+    install -Dm644 *.pdf -t $out/share/doc/${font}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Font containing stroke order diagrams for over 6500 kanji, 180 kana and other characters";
+    homepage = "https://www.nihilist.org.uk/";
+
+    license = [ licenses.bsd3 ];
+    maintainers = with maintainers; [ ptrhlm stephen-huan ];
+    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..60e455dae6ca
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kawkab-mono/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation {
+  pname = "kawkab-mono";
+  version = "20151015";
+
+  src = fetchzip {
+    url = "http://makkuk.com/kawkab-mono/downloads/kawkab-mono-0.1.zip";
+    stripRoot = false;
+    hash = "sha256-arZTzXj7Ba5G4WF3eZVGNaONhOsYVPih9iBgsN/lg14=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Arab fixed-width font";
+    homepage = "https://makkuk.com/kawkab-mono/";
+    license = lib.licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/khmeros/default.nix b/nixpkgs/pkgs/data/fonts/khmeros/default.nix
new file mode 100644
index 000000000000..5df7c3637be8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/khmeros/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "khmeros";
+  version = "5.0";
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/f/fonts-${pname}/fonts-${pname}_${version}.orig.tar.xz";
+    hash = "sha256-gBcM9YHSuhbxvwfQTvywH/5kN921GOyvGtkROcmcBiw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts
+    cp *.ttf $out/share/fonts
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "KhmerOS Unicode fonts for the Khmer language";
+    homepage = "http://www.khmeros.info/";
+    license = licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ serge ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/knewave/default.nix b/nixpkgs/pkgs/data/fonts/knewave/default.nix
new file mode 100644
index 000000000000..27def2271802
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/knewave/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "knewave";
+  version = "2012-07-30";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "f335d5ff1f12e4acf97d4208e1c37b4d386e57fb";
+    hash = "sha256-SaJU2GlxU7V3iJNQzFKg1YugaPsiJuSZpC8NCqtWyz0=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/*.ttf
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = " A bold, painted face for the rocker within";
+    longDescription = ''
+      Knewave is bold, painted face. Get it? Git it.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/knewave";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
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..ae216a789707
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kochi-substitute-naga10/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "kochi-substitute-naga10";
+  version = "20030809";
+
+  src = fetchzip {
+    url = "mirror://osdn/efont/5411/kochi-substitute-${version}.tar.bz2";
+    stripRoot = false;
+    hash = "sha256-dRJAxeVGYcNjLWqJJ+9Z2FW3BHrgyGRzlgM2x5YG3AM=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    mv */kochi-gothic-subst.ttf $out/share/fonts/truetype/kochi-gothic-subst-naga10.ttf
+    mv */kochi-mincho-subst.ttf $out/share/fonts/truetype/kochi-mincho-subst-naga10.ttf
+
+    runHook postInstall
+  '';
+
+  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/kode-mono/default.nix b/nixpkgs/pkgs/data/fonts/kode-mono/default.nix
new file mode 100644
index 000000000000..3b1563c19657
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kode-mono/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "kode-mono";
+  version = "1.206";
+
+  src = fetchzip {
+    url = "https://github.com/isaozler/kode-mono/releases/download/${finalAttrs.version}/kode-mono-fonts.zip";
+    hash = "sha256-0EZTlSqGCavSwjpKcEFv2L/bkKLE2jLyBWPSnmxQ3ww=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm644 kode-mono-fonts/fonts/ttf/*.ttf      -t $out/share/fonts/truetype/
+    install -Dm644 kode-mono-fonts/fonts/variable/*.ttf -t $out/share/fonts/truetype/
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Custom-designed typeface explicitly created for the developer community";
+    homepage = "https://kodemono.com/";
+    changelog = "https://github.com/isaozler/kode-mono/blob/main/CHANGELOG.md";
+    license = licenses.ofl;
+    maintainers = [ maintainers.isaozler ];
+    platforms = platforms.all;
+  };
+})
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..f6a0023bd11f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kreative-square-fonts/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation {
+  pname = "kreative-square-fonts";
+  version = "unstable-2021-01-29";
+
+  src = fetchFromGitHub {
+    owner = "kreativekorp";
+    repo = "open-relay";
+    rev = "084f05af3602307499981651eca56851bec01fca";
+    hash = "sha256-+ihosENczaGal3BGDIaJ/de0pf8txdtelSYMxPok6ww=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm444 -t $out/share/fonts/truetype/ KreativeSquare/KreativeSquare.ttf
+    install -Dm444 -t $out/share/fonts/truetype/ KreativeSquare/KreativeSquareSM.ttf
+
+    runHook postInstall
+  '';
+
+  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..e08f638eed38
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lalezar-fonts/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation {
+  pname = "lalezar-fonts";
+  version = "unstable-2017-02-28";
+
+  src = fetchFromGitHub {
+    owner = "BornaIz";
+    repo = "Lalezar";
+    rev = "238701c4241f207e92515f845a199be9131c1109";
+    hash = "sha256-95z58ABTx53aREXRpj9xgclX9kuGiQiiKBwqwnF6f8g=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/lalezar-fonts
+    cp -v $( find . -name '*.ttf') $out/share/fonts/lalezar-fonts
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/BornaIz/Lalezar";
+    description = "Multi-script display typeface for popular culture";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/lao/default.nix b/nixpkgs/pkgs/data/fonts/lao/default.nix
new file mode 100644
index 000000000000..d7d5d3ddd4b1
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lao/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "lao";
+  version = "0.0.20060226";
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/f/fonts-${pname}/fonts-${pname}_${version}.orig.tar.xz";
+    hash = "sha256-DlgdyfhxxzVkNIL+NGsQ+PRlNkCuG3v2OahkIEYx60o=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts
+    cp Phetsarath_OT.ttf $out/share/fonts
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "TrueType font for Lao language";
+    license = licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ serge ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/last-resort/default.nix b/nixpkgs/pkgs/data/fonts/last-resort/default.nix
new file mode 100644
index 000000000000..4ca067360520
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/last-resort/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "last-resort";
+  version = "15.100";
+
+  src = fetchurl {
+    url = "https://github.com/unicode-org/last-resort-font/releases/download/${version}/LastResortHE-Regular.ttf";
+    hash = "sha256-dPk6j7Orh1bg6GyzwsB4P9oQvepvl51YF4abpyhOVso=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m 0644 $src $out/share/fonts/truetype/LastResortHE-Regular.ttf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Fallback font of last resort";
+    homepage = "https://github.com/unicode-org/last-resort-font";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/lato/default.nix b/nixpkgs/pkgs/data/fonts/lato/default.nix
new file mode 100644
index 000000000000..ff1cc62bee0e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lato/default.nix
@@ -0,0 +1,45 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation {
+  pname = "lato";
+  version = "2.0";
+
+  src = fetchzip {
+    url = "https://www.latofonts.com/download/Lato2OFL.zip";
+    stripRoot = false;
+    hash = "sha256-n1TsqigCQIGqyGLGTjLtjHuBf/iCwRlnqh21IHfAuXI=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 Lato2OFL/*.ttf -t $out/share/fonts/lato
+
+    runHook postInstall
+  '';
+
+  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-gothic/default.nix b/nixpkgs/pkgs/data/fonts/league-gothic/default.nix
new file mode 100644
index 000000000000..c119dc3f562f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/league-gothic/default.nix
@@ -0,0 +1,39 @@
+{ lib, fetchzip, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "league-gothic";
+  version = "1.601";
+
+  src = fetchzip {
+    url = "https://github.com/theleagueof/league-gothic/releases/download/${finalAttrs.version}/LeagueGothic-${finalAttrs.version}.tar.xz";
+    hash = "sha256-emkXKyQw4R0Zgg02oJsvBkqV0jmczP0tF0K2IKqJHMA=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/static/TTF/*.ttf
+    install -D -m444 -t $out/share/fonts/opentype $src/static/OTF/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Revival of an old classic, Alternate Gothic #1";
+    longDescription = ''
+      League Gothic is a revival of an old classic, and one of our favorite
+      typefaces, Alternate Gothic #1. It was originally designed by Morris
+      Fuller Benton for the American Type Founders Company in 1903. The company
+      went bankrupt in 1993, and since the original typeface was created before
+      1923, the typeface is in the public domain.
+
+      We decided to make our own version, and contribute it to the Open Source
+      Type Movement. Thanks to a commission from the fine & patient folks over
+      at WND.com, it’s been revised & updated with contributions from Micah
+      Rich, Tyler Finck, and Dannci, who contributed extra glyphs.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/league-gothic";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
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..236a2e39ed10
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/league-of-moveable-type/default.nix
@@ -0,0 +1,62 @@
+{ lib
+, symlinkJoin
+, the-neue-black
+, blackout
+, chunk
+, fanwood
+, goudy-bookletter-1911
+, junction-font
+, knewave
+, league-gothic
+, league-script-number-one
+, league-spartan
+, linden-hill
+, orbitron
+, ostrich-sans
+, prociono
+, raleway
+, sniglet
+, sorts-mill-goudy
+}:
+
+symlinkJoin {
+  name = "league-of-moveable-type";
+
+  paths = [
+    the-neue-black
+    blackout
+    chunk
+    fanwood
+    goudy-bookletter-1911
+    junction-font
+    knewave
+    league-gothic
+    league-script-number-one
+    league-spartan
+    linden-hill
+    orbitron
+    ostrich-sans
+    prociono
+    raleway
+    sniglet
+    sorts-mill-goudy
+  ];
+
+  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 minijackson ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/league-script-number-one/default.nix b/nixpkgs/pkgs/data/fonts/league-script-number-one/default.nix
new file mode 100644
index 000000000000..19f44bfd5b4a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/league-script-number-one/default.nix
@@ -0,0 +1,35 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "league-script-number-one";
+  version = "2011-05-25";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "225add0b37cf8268759ba4572e02630d9fb54ecf";
+    hash = "sha256-Z3Zrp0Os3On0tESVical1Qh6wY1H2Hc0OPTlkbtsrCI=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Modern, coquettish script font";
+    longDescription = ''
+      This ain’t no Lucinda. League Script #1 is a modern, coquettish script
+      font that sits somewhere between your high school girlfriend’s love notes
+      and handwritten letters from the ’20s. Designed exclusively for the
+      League of Moveable Type, it includes ligatures and will act as the
+      framework for future script designs.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/league-script";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/league-spartan/default.nix b/nixpkgs/pkgs/data/fonts/league-spartan/default.nix
new file mode 100644
index 000000000000..10691f10c8e0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/league-spartan/default.nix
@@ -0,0 +1,40 @@
+{ lib, fetchzip, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "league-spartan";
+  version = "2.220";
+
+  src = fetchzip {
+    url = "https://github.com/theleagueof/league-spartan/releases/download/${finalAttrs.version}/LeagueSpartan-${finalAttrs.version}.tar.xz";
+    hash = "sha256-dkvWRYli8vk+E0DkZ2NWCJKfSfdo4jEcGo0puQpFVVc=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/static/TTF/*.ttf
+    install -D -m444 -t $out/share/fonts/opentype $src/static/OTF/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Fantastic new revival of ATF's classic Spartan, a geometric sans-serif that has no problem kicking its enemies in the chest";
+    longDescription = ''
+      A new classic, this is a bold, modern, geometric sans-serif that has no
+      problem kicking its enemies in the chest.
+
+      Taking a strong influence from ATF's classic Spartan family, we're
+      starting our own family out with a single strong weight. We've put a few
+      unique touches into a beautiful, historical typeface, and made sure to
+      include an extensive characterset – currently totaling over 300 glyphs.
+
+      Over time, the open-source license will allow us expand League Spartan
+      into a full family, with multiple weights and styles, and we're starting
+      by releasing our first Bold style for this exciting, modern classic now.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/league-spartan";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/lexend/default.nix b/nixpkgs/pkgs/data/fonts/lexend/default.nix
new file mode 100644
index 000000000000..91eb497e901b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lexend/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "lexend";
+  version = "0.pre+date=2022-09-22";
+
+  src = fetchFromGitHub {
+    owner = "googlefonts";
+    repo = pname;
+    rev = "cd26b9c2538d758138c20c3d2f10362ed613854b";
+    sha256 = "ZKogntyJ/44GBZmFwbtw5Ujw5Gnvv0tVB59ciKqR4c8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    cd fonts
+    for f in *; do
+      install -D -t $out/share/fonts/truetype/lexend/$f $f/ttf/*
+      install -D -t $out/share/fonts/variable/lexend/$f $f/variable/*
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.lexend.com";
+    description = "Variable font family designed to aid in reading proficiency";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fufexan ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/liberastika/default.nix b/nixpkgs/pkgs/data/fonts/liberastika/default.nix
new file mode 100644
index 000000000000..7c716c1a354b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/liberastika/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "liberastika";
+  version = "1.1.5";
+
+  src = fetchzip {
+    url = "mirror://sourceforge/project/lib-ka/liberastika-ttf-${version}.zip";
+    stripRoot = false;
+    hash = "sha256-woUpOmxhj6eEw7PKJ8EyRcs3ORj0gCZhxHP5a5dy5z0=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Liberation Sans fork with improved cyrillic support";
+    homepage = "https://sourceforge.net/projects/lib-ka/";
+
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = [ ];
+  };
+}
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..0160ebfdc450
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/liberation-fonts/default.nix
@@ -0,0 +1,69 @@
+{ lib, stdenv, fetchFromGitHub, fontforge, python3 }:
+let
+  inherit (python3.pkgs) fonttools;
+
+  commonNativeBuildInputs = [ fontforge python3 ];
+  common =
+    { version, repo, sha256, docsToInstall, 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 {} \;
+
+          for i in ${toString docsToInstall}; do
+            # not all docs exist in all versions
+            install -m444 -Dt $out/share/doc/${pname}-${version} $i || true
+          done
+        '';
+
+        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";
+    docsToInstall = [ "AUTHORS" "ChangeLog" "COPYING" "License.txt" "README" ];
+    nativeBuildInputs = commonNativeBuildInputs;
+    sha256 = "1ffl10mf78hx598sy9qr5m6q2b8n3mpnsj73bwixnd4985gsz56v";
+  };
+  liberation_ttf_v2 = common {
+    repo = "liberation-fonts";
+    version = "2.1.5";
+    docsToInstall = [ "AUTHORS" "ChangeLog" "LICENSE" "README.md" ];
+    nativeBuildInputs = commonNativeBuildInputs ++ [ fonttools ];
+    postPatch = ''
+      substituteInPlace scripts/setisFixedPitch-fonttools.py --replace \
+        'font = ttLib.TTFont(fontfile)' \
+        'font = ttLib.TTFont(fontfile, recalcTimestamp=False)'
+    '';
+    sha256 = "Wg1uoD2k/69Wn6XU+7wHqf2KO/bt4y7pwgmG7+IUh4Q=";
+  };
+}
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..e24096e74f4e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libertine/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenv, fetchurl, fontforge }:
+
+stdenv.mkDerivation {
+  pname = "linux-libertine";
+  version = "5.3.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/linuxlibertine/5.3.0/LinLibertineSRC_5.3.0_2012_07_02.tgz";
+    hash = "sha256-G+xDYKJvHPMzwnktkg9cpNTv9E9d5QFgDjReuKH57HQ=";
+  };
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [ fontforge ];
+
+  dontConfigure = true;
+
+  buildPhase = ''
+    runHook preBuild
+    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
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    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
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Linux Libertine Fonts";
+    homepage = "http://linuxlibertine.sf.net";
+    maintainers = with maintainers; [ erdnaxe ];
+    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..4d942c7e2b97
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libertinus/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "libertinus";
+  version = "7.040";
+
+  src = fetchurl {
+    url = "https://github.com/alerque/libertinus/releases/download/v${version}/Libertinus-${version}.tar.xz";
+    hash = "sha256-f+nwInItHBzGfcLCihELO7VbrjV1GWFg0kIsiTM7OFA=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m644 -Dt $out/share/fonts/opentype static/OTF/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Libertinus font family";
+    longDescription = ''
+      The Libertinus font project began as a fork of the Linux Libertine and
+      Linux Biolinum fonts. The original impetus was to add an OpenType math
+      companion to the Libertine font families. Over time it grew into to a
+      full-fledged fork addressing many of the bugs in the Libertine fonts.
+    '';
+    homepage = "https://github.com/alerque/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..0be599e281e9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libre-baskerville/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "libre-baskerville";
+  version = "1.000";
+
+  src = fetchFromGitHub {
+    owner = "impallari";
+    repo = "Libre-Baskerville";
+    rev = "2fba7c8e0a8f53f86efd3d81bc4c63674b0c613f";
+    hash = "sha256-1EXi1hxFpc7pFsLbEj1xs9LqjeIf3XBol/8HdKNROUU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/truetype *.ttf
+    install -m444 -Dt $out/share/doc/${pname}-${version} README.md FONTLOG.txt
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "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..cd55c10d2e64
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libre-bodoni/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "libre-bodoni";
+  version = "2.000";
+
+  src = fetchFromGitHub {
+    owner = "impallari";
+    repo = "Libre-Bodoni";
+    rev = "995a40e8d6b95411d660cbc5bb3f726ffd080c7d";
+    hash = "sha256-yfqVeT/JiAT+fsqkXUxqlz4sEEFwEJUdvFTAzuqejtk=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/opentype */v2000\ -\ initial\ glyphs\ migration/OTF/*.otf
+    install -m444 -Dt $out/share/doc/${pname}-${version} README.md FONTLOG.txt
+
+    runHook postInstall
+  '';
+
+  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..c9b008881600
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libre-franklin/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "libre-franklin";
+  version = "1.014";
+
+  src = fetchFromGitHub {
+    owner = "impallari";
+    repo = "Libre-Franklin";
+    rev = "006293f34c47bd752fdcf91807510bc3f91a0bd3";
+    hash = "sha256-GR1KHiQ1lTOmU8eAPR2pxUlMpWiW2EDMG78VDjELxDU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/opentype */OTF/*.otf
+    install -m444 -Dt $out/share/doc/${pname}-${version} README.md FONTLOG.txt
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "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/linden-hill/default.nix b/nixpkgs/pkgs/data/fonts/linden-hill/default.nix
new file mode 100644
index 000000000000..60f59ac67897
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/linden-hill/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "linden-hill";
+  version = "2011-05-25";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "a3f7ae6c4cac1b7e5ce5269e1fcc6a2fbb9e31ee";
+    hash = "sha256-EjXcLjzVQeOJgLxGua8t0oMc+APOsONGGpG6VJVCgFw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Digital version of Frederic Goudy’s Deepdene";
+    longDescription = ''
+      Linden Hill is a digital version of Frederic Goudy’s Deepdene. The
+      package includes roman and italic.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/linden-hill";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
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/linearicons-free/default.nix b/nixpkgs/pkgs/data/fonts/linearicons-free/default.nix
new file mode 100644
index 000000000000..9b310a38d5ac
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/linearicons-free/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchzip, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "linearicons-free";
+  version = "1.0.0";
+
+  src = fetchzip {
+    url = "https://cdn.linearicons.com/free/${finalAttrs.version}/Linearicons-Free-v${finalAttrs.version}.zip";
+    hash = "sha256-0Gb0CRdgzSnpeN+x8TrH5TCrAA57+jsBWZ4FgJ8cm08=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/Desktop\ Font/Linearicons-Free.ttf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Crisp Line Icons by Perxis";
+    longDescription = ''
+      See cheat sheet here: https://linearicons.com/free#cheat-sheet
+    '';
+    homepage = "https://linearicons.com/free";
+    license = lib.licenses.cc-by-sa-40;
+    maintainers = [ lib.maintainers.CardboardTurkey ];
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/linja-pi-pu-lukin/default.nix b/nixpkgs/pkgs/data/fonts/linja-pi-pu-lukin/default.nix
new file mode 100644
index 000000000000..3f320a612335
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/linja-pi-pu-lukin/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation {
+  pname = "linja-pi-pu-lukin";
+  version = "unstable-2021-10-29";
+
+  src = fetchurl {
+    url = "https://web.archive.org/web/20211029000000/https://jansa-tp.github.io/linja-pi-pu-lukin/PuLukin.otf";
+    hash = "sha256-Mf7P9fLGiG7L555Q3wRaI/PRv/TIs0njLq2IzIbc5Wo=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D $src $out/share/fonts/opentype/linja-pi-pu-lukin.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Sitelen pona font resembling the style found in Toki Pona: The Language of Good (lipu pu), by jan Sa";
+    homepage = "https://jansa-tp.github.io/linja-pi-pu-lukin/";
+    license = licenses.unfree; # license is unspecified in repository
+    platforms = platforms.all;
+    maintainers = with maintainers; [ somasis ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/linja-sike/default.nix b/nixpkgs/pkgs/data/fonts/linja-sike/default.nix
new file mode 100644
index 000000000000..c5fed186c67c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/linja-sike/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchurl }:
+
+fetchurl {
+  pname = "linja-sike";
+  version = "5.0";
+
+  url = "https://wyub.github.io/tokipona/linja-sike-5.otf";
+
+  downloadToTemp = true;
+  recursiveHash = true;
+  postFetch = ''
+    install -D $downloadedFile $out/share/fonts/opentype/linja-sike.otf
+  '';
+
+  sha256 = "sha256-LkjG1Oao/LqKwI+eRZPzShTh7lz5DkooltXm7vxZC9w=";
+
+  meta = with lib; {
+    description = "Extensive sitelen pona font by lipamanka";
+    homepage = "https://docs.google.com/document/d/1d8kUIAVlB-JNgK3LWr_zVCuUOZTh2hF7CfC6xQgxsBs/edit?usp=sharing";
+    downloadPage = "https://wyub.github.io/tokipona/linjasike";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ somasis ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/lklug-sinhala/default.nix b/nixpkgs/pkgs/data/fonts/lklug-sinhala/default.nix
new file mode 100644
index 000000000000..817dbbb25312
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lklug-sinhala/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "lklug-sinhala";
+  version = "0.6";
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/f/fonts-${pname}/fonts-${pname}_${version}.orig.tar.xz";
+    hash = "sha256-oPCCa01PMQcCK5fEILgXjrGzoDg+UvxkqK6AgeQaKio=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Unicode Sinhala font by Lanka Linux User Group";
+    homepage = "http://www.lug.lk/fonts/lklug";
+    license = licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ serge ];
+    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..b2b468e2bb41
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lmmath/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "lmmath";
+  version = "1.959";
+
+  src = fetchzip {
+    url = "http://www.gust.org.pl/projects/e-foundry/lm-math/download/latinmodern-math-1959.zip";
+    hash = "sha256-et/WMhfZZYgP0S7ZmI6MZK5owv9bSoMBXFX6yGSng5Y=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/opentype/
+    mkdir -p $out/share/doc/latinmodern-math-${version}/
+    cp otf/*.otf $out/share/fonts/opentype/
+    cp doc/*.txt $out/share/doc/latinmodern-math-${version}/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "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..85aa7060ea05
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lmodern/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "lmodern";
+  version = "2.005";
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/l/${pname}/${pname}_${version}.orig.tar.gz";
+    hash = "sha256-xlUuZt6rjW0pX4t6PKWAHkkv3PisGCj7ZwatZPAUNxk=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/texmf-dist/
+    mkdir -p $out/share/fonts/
+
+    cp -r * $out/texmf-dist/
+    cp -r fonts/{opentype,type1} $out/share/fonts/
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Latin Modern font";
+  };
+}
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..53bccc4a40a7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lohit-fonts/default.nix
@@ -0,0 +1,63 @@
+{ lib, stdenvNoCC, fetchurl }:
+let
+  fonts = {
+    assamese        = { label = "Assamese";          version = "2.91.5"; hash = "sha256-Oo/hHHFg/Nu3eaZLMdBclY90lKU2AMFUclyXHxGaAgg="; };
+    bengali         = { label = "Bengali";           version = "2.91.5"; hash = "sha256-QGf94TdQS2c9+wSSDK4Mknw5ubCGTuvg0xoNaJdirBc="; };
+    devanagari      = { label = "Devanagari script"; version = "2.95.4"; hash = "sha256-6CbOCqOei5eO1zwNQZvB+fFDkqxvJnK82z+zmClhRAE="; };
+    gujarati        = { label = "Gujarati";          version = "2.92.4"; hash = "sha256-BpwibF0/HXDvXpDEek0fj73cxo2QC1hSfQ49Q/ZOZg8="; };
+    gurmukhi        = { label = "Gurmukhi script";   version = "2.91.2"; hash = "sha256-5iLFW2FEE5LBqoALi+3sUjwC0ADntsp259TP+bYwR9g="; }; # renamed from Punjabi
+    kannada         = { label = "Kannada";           version = "2.5.4" ; hash = "sha256-7y2u0tBdNYCeY7Y+aqhxXP7Qv6GglJeVO1wvM9CzyIQ="; };
+    malayalam       = { label = "Malayalam";         version = "2.92.2"; hash = "sha256-SzM38vuAlP9OMC8kUuHQylmH8TUjCeg1y/Zcu2I2bjA="; };
+    marathi         = { label = "Marathi";           version = "2.94.2"; hash = "sha256-jK1Gwcr5gqzRNkbIxs4V/OYgUlUEpU0OYzKDTkiMlqM="; };
+    nepali          = { label = "Nepali";            version = "2.94.2"; hash = "sha256-OX1ekxeSbVGOrdbZ3Jvu4nii0zkgbuij10JIzqRcFx4="; };
+    odia            = { label = "Odia";              version = "2.91.2"; hash = "sha256-3/eczBGGZj4QPs7KY0as9zk5HaBfhgz6YgU0qmwpVcA="; }; # renamed from Oriya
+    tamil-classical = { label = "Classical Tamil";   version = "2.5.4" ; hash = "sha256-6SsddTCEUHMoF7X4+i7eXimmMuktfFAl8uz95RwM+yg="; };
+    tamil           = { label = "Tamil";             version = "2.91.3"; hash = "sha256-8lcNw87o9lhQsKwCqwBSfx7rhcrH/eEqac7EsA9/w/E="; };
+    telugu          = { label = "Telugu";            version = "2.5.5" ; hash = "sha256-cZh93NfEB+5S1JeEowtBMJ0nbZsFGpbEp2WAtzxrA8A="; };
+  };
+  gplfonts = {
+    # GPL fonts removed from later releases
+    kashmiri        = { label = "Kashmiri";          version = "2.4.3" ; hash = "sha256-6T2QaWnt3+e5nr4vbk44FouqmeWKzia1lSf8S/bvqCs="; };
+    konkani         = { label = "Konkani";           version = "2.4.3" ; hash = "sha256-hVy2rxrUTPDeNnugi3Bk7z0JqGmk4/yeUsAoI/4R7A8="; };
+    maithili        = { label = "Maithili";          version = "2.4.3" ; hash = "sha256-ikDcpJqdizAYRpgoebzqxOEeodJ6C3fO2rsqGzC0HCs="; };
+    sindhi          = { label = "Sindhi";            version = "2.4.3" ; hash = "sha256-wU3B9fh+8E1bFBMnakzmajY7eNKzed9+eYL5AOxyNQI="; };
+  };
+
+  mkpkg = license: pname: {label, version, hash}: stdenvNoCC.mkDerivation {
+    inherit pname version;
+
+    src = fetchurl {
+      url = "https://releases.pagure.org/lohit/lohit-${pname}-ttf-${version}.tar.gz";
+      inherit hash;
+    };
+
+    installPhase = ''
+      runHook preInstall
+
+      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-${pname}"
+      cp -v ChangeLog* COPYRIGHT* "$out/share/doc/lohit-${pname}/"
+
+      runHook postInstall
+    '';
+
+    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..1347af957e46
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/luculent/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "luculent";
+  version = "2.0.0";
+
+  src = fetchurl {
+    url = "http://www.eastfarthing.com/${pname}/${pname}.tar.xz";
+    hash = "sha256-6NxLnTBnvHmTUTFa2wW0AuKPEbCqzaWQyiFVnF0sBqU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  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/lxgw-wenkai/default.nix b/nixpkgs/pkgs/data/fonts/lxgw-wenkai/default.nix
new file mode 100644
index 000000000000..8c18f3ed1bba
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lxgw-wenkai/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "lxgw-wenkai";
+  version = "1.330";
+
+  src = fetchurl {
+    url = "https://github.com/lxgw/LxgwWenKai/releases/download/v${version}/${pname}-v${version}.tar.gz";
+    hash = "sha256-CscUUcyLsk/S70tT2uGRqLiF8fa4KxC9pVrOziWJ/fI=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    mv *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://lxgw.github.io/";
+    description = "Open-source Chinese font derived from Fontworks' Klee One";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ elliot ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/manrope/default.nix b/nixpkgs/pkgs/data/fonts/manrope/default.nix
new file mode 100644
index 000000000000..e42d7879af74
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/manrope/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "manrope";
+  version = "4.505";
+
+  src = fetchFromGitHub {
+    owner = "sharanda";
+    repo = pname;
+    rev = "d79b66b10608610692d59f4107791d249d244416"; # no tags in repo
+    hash = "sha256-dxnCOkPUEG0knSekolx2+SGJR81vRK0wUrbzGH4KGD0=";
+  };
+
+  dontPatch = true;
+  dontConfigure = true;
+  dontBuild = true;
+  doCheck = false;
+  dontFixup = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 fonts/otf/*.otf -t $out/share/fonts/opentype
+    install -Dm644 fonts/ttf/*.ttf fonts/variable/*.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Open-source modern sans-serif font family";
+    homepage = "https://www.gent.media/manrope";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/maple-font/default.nix b/nixpkgs/pkgs/data/fonts/maple-font/default.nix
new file mode 100644
index 000000000000..a90a1e830171
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/maple-font/default.nix
@@ -0,0 +1,77 @@
+{ lib
+, stdenv
+, unzip
+, fetchurl
+}:
+
+let
+  maple-font = { pname, sha256, desc }:
+    stdenv.mkDerivation rec{
+      inherit pname;
+      version = "6.4";
+      src = fetchurl {
+        url = "https://github.com/subframe7536/Maple-font/releases/download/v${version}/${pname}.zip";
+        inherit sha256;
+      };
+
+      # Work around the "unpacker appears to have produced no directories"
+      # case that happens when the archive doesn't have a subdirectory.
+      sourceRoot = ".";
+      nativeBuildInputs = [ unzip ];
+      installPhase = ''
+        find . -name '*.ttf'    -exec install -Dt $out/share/fonts/truetype {} \;
+        find . -name '*.otf'    -exec install -Dt $out/share/fonts/opentype {} \;
+        find . -name '*.woff2'  -exec install -Dt $out/share/fonts/woff2 {} \;
+      '';
+
+      meta = with lib; {
+        homepage = "https://github.com/subframe7536/Maple-font";
+        description = ''
+          Open source ${desc} font with round corner and ligatures for IDE and command line
+        '';
+        license = licenses.ofl;
+        platforms = platforms.all;
+        maintainers = with maintainers; [ oluceps ];
+      };
+    };
+
+in
+{
+  Mono = maple-font {
+    pname = "MapleMono-ttf";
+    sha256 = "sha256-a06JLIP5aVb9SeEz6kw+LqKy0ydCgaUlPDFWA2Y0G8Q=";
+    desc = "monospace TrueType";
+  };
+
+  NF = maple-font {
+    pname = "MapleMono-NF";
+    sha256 = "sha256-fy+hdUYZDW5nkMVirhkmys3tIkWezPDrlpNxnRMl4WU=";
+    desc = "Nerd Font";
+  };
+
+  SC-NF = maple-font {
+    pname = "MapleMono-SC-NF";
+    sha256 = "sha256-SbXWkrpLJUrq+Jt1h3GBP9md5TbYpPchdiR0oEDMAgY=";
+    desc = "Nerd Font SC";
+  };
+
+  opentype = maple-font {
+    pname = "MapleMono-otf";
+    sha256 = "sha256-fwfFlNbaWXFCjcno7NK3dZqAzsHLh9rdGkSq26xc9qw=";
+    desc = "OpenType";
+  };
+
+  woff2 = maple-font {
+    pname = "MapleMono-woff2";
+    sha256 = "sha256-4akpZGGth4yZjI5wjO3ZXrXcWNxb7/6YChU7T5fNVKs=";
+    desc = "WOFF2.0";
+  };
+
+  autohint = maple-font {
+    pname = "MapleMono-ttf-autohint";
+    sha256 = "sha256-rSYIC42Bt+KFgxhwRhXS4sbh4etKYkCOo5nP2J2BHt4=";
+    desc = "ttf autohint";
+  };
+}
+
+
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..4da56b2251c5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/marathi-cursive/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "marathi-cursive";
+  version = "2.1";
+
+  src = fetchurl {
+    url = "https://github.com/MihailJP/MarathiCursive/releases/download/v${version}/MarathiCursive-${version}.tar.xz";
+    hash = "sha256-C/z8ALV9bht0SaYqACO5ulSVCk1d6wBwvpVC4ZLgtek=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/marathi-cursive *.otf *.ttf
+    install -m444 -Dt $out/share/doc/${pname}-${version} README *.txt
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/MihailJP/MarathiCursive";
+    description = "Modi script font with Graphite and OpenType support";
+    maintainers = with maintainers; [ mathnerd314 ];
+    license = licenses.mplus;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/martian-mono/default.nix b/nixpkgs/pkgs/data/fonts/martian-mono/default.nix
new file mode 100644
index 000000000000..4cfeb61cdac5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/martian-mono/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "martian-mono";
+  version = "1.0.0";
+
+  src = fetchzip {
+    url = "https://github.com/evilmartians/mono/releases/download/v${version}/martian-mono-${version}-otf.zip";
+    sha256 = "sha256-hC08IHWqg+x3qoEf4EL98ZbGeqdwjnMpDovEiWrWPpI=";
+    stripRoot = false;
+  };
+
+  dontPatch = true;
+  dontConfigure = true;
+  dontBuild = true;
+  doCheck = false;
+  dontFixup = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 -t $out/share/fonts/opentype/ *.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Free and open-source monospaced font from Evil Martians";
+    homepage = "https://github.com/evilmartians/mono";
+    changelog = "https://github.com/evilmartians/mono/raw/v${version}/Changelog.md";
+    license = licenses.ofl;
+    maintainers = [ ];
+    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..0dfb560e3581
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/material-design-icons/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, fetchFromGitHub
+, stdenvNoCC
+, nix-update-script
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "material-design-icons";
+  version = "7.4.47";
+
+  src = fetchFromGitHub {
+    owner = "Templarian";
+    repo = "MaterialDesign-Webfont";
+    rev = "v${version}";
+    sha256 = "sha256-7t3i3nPJZ/tRslLBfY+9kXH8TR145GC2hPFYJeMHRL8=";
+    sparseCheckout = [ "fonts" ];
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    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/"
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = with lib; {
+    description = "7000+ 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 = licenses.asl20;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ vlaci dixslyf ];
+  };
+}
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..993e25ba2cd3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/material-icons/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenvNoCC, fetchFromGitHub, nix-update-script }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "material-icons";
+  version = "4.0.0";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "material-design-icons";
+    rev = finalAttrs.version;
+    hash = "sha256-wX7UejIYUxXOnrH2WZYku9ljv4ZAlvgk8EEJJHOCCjE=";
+  };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp font/*.ttf $out/share/fonts/truetype
+
+    mkdir -p $out/share/fonts/opentype
+    cp font/*.otf $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  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/material-symbols/default.nix b/nixpkgs/pkgs/data/fonts/material-symbols/default.nix
new file mode 100644
index 000000000000..8af5fa9d0d24
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/material-symbols/default.nix
@@ -0,0 +1,45 @@
+{
+  lib,
+  stdenvNoCC,
+  fetchFromGitHub,
+  rename,
+  unstableGitUpdater,
+}:
+stdenvNoCC.mkDerivation {
+  pname = "material-symbols";
+  version = "4.0.0-unstable-2024-05-17";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "material-design-icons";
+    rev = "ace1af08508a6562ef05055a606cf44ea583ce3b";
+    hash = "sha256-d5lojgYCXCcvcSfLWfcSKFsBGKB6Si/XreRqpkEKsa0=";
+    sparseCheckout = [ "variablefont" ];
+  };
+
+  nativeBuildInputs = [ rename ];
+
+  installPhase = ''
+    runHook preInstall
+
+    rename 's/\[FILL,GRAD,opsz,wght\]//g' variablefont/*
+    install -Dm755 variablefont/*.ttf -t $out/share/fonts/TTF
+    install -Dm755 variablefont/*.woff2 -t $out/share/fonts/woff2
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = unstableGitUpdater { };
+
+  meta = {
+    description = "Material Symbols icons by Google";
+    homepage = "https://fonts.google.com/icons";
+    downloadPage = "https://github.com/google/material-design-icons";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [
+      fufexan
+      luftmensch-luftmensch
+    ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/medio/default.nix b/nixpkgs/pkgs/data/fonts/medio/default.nix
new file mode 100644
index 000000000000..5adcad008662
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/medio/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "200";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "medio";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-S+CcwD4zGVk7cIFD6K4NnpE/0mrJq4RnDJC576rhcLQ=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${finalAttrs.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 minijackson ];
+    license = licenses.cc0;
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/melete/default.nix b/nixpkgs/pkgs/data/fonts/melete/default.nix
new file mode 100644
index 000000000000..480ed2a468c1
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/melete/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "200";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "melete";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-y1xtNM1Oy92gOvbr9J71XNxb1JeTzOgxKms3G2YHK00=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
+    description = "Headline typeface that could be used as a movie title";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ minijackson ];
+    license = licenses.ofl;
+  };
+})
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..f658f7943eb2
--- /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 = "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..0712248dc5ac
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/meslo-lg/default.nix
@@ -0,0 +1,45 @@
+{ 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 = ".";
+
+  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 = "Customized version of Apple’s Menlo-Regular font";
+    homepage = "https://github.com/andreberg/Meslo-Font/";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ ];
+    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..51dacaba366c
--- /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 = "unstable-2023-04-03";
+
+  src = fetchFromGitHub {
+    owner = "romkatv";
+    repo = "powerlevel10k-media";
+    rev = "145eb9fbc2f42ee408dacd9b22d8e6e0e553f83d";
+    sha256 = "sha256-8xwVOlOP1SresbReNh1ce2Eu12KdIwdJSg6LKM+k2ng=";
+  };
+
+  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..5c5212189e20
--- /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 = "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..76c4afc706e6
--- /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 = "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..59597120c100
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/mno16/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "mno16";
+  version = "1.0";
+
+  src = fetchzip {
+    url = "https://github.com/sevmeyer/${pname}/releases/download/${version}/${pname}-${version}.zip";
+    stripRoot = false;
+    hash = "sha256-xJQ9V7GlGUTEeYhqYFl/SemS6iqV0eW85YOn/tLgA+M=";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp fonts/*.ttf $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/mona-sans/default.nix b/nixpkgs/pkgs/data/fonts/mona-sans/default.nix
new file mode 100644
index 000000000000..c8be0b40a041
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/mona-sans/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "mona-sans";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    rev = "v${finalAttrs.version}";
+    owner = "github";
+    repo = "mona-sans";
+    sha256 = "sha256-XvqLFzlgIqx9aZH2SEAtwMiuWgUiDi/gHGSpfreUHuk=";
+  };
+
+  installPhase = ''
+    install -D -m444 -t $out/share/fonts/opentype fonts/otf/*.otf
+    install -D -m444 -t $out/share/fonts/truetype fonts/ttf/*.ttf fonts/variable/*.ttf
+  '';
+
+  meta = {
+    description = "Variable font from GitHub";
+    homepage = "https://github.com/mona-sans";
+    changelog = "https://github.com/github/mona-sans/releases/tag/v${finalAttrs.version}";
+    license = lib.licenses.ofl;
+    longDescription = ''
+      A strong and versatile typeface, designed together with Degarism and
+      inspired by industrial-era grotesques. Mona Sans works well across
+      product, web, and print. Made to work well together with Mona Sans's
+      sidekick, Hubot Sans.
+
+      Mona Sans is a variable font. Variable fonts enable different variations
+      of a typeface to be incorporated into one single file, and are supported
+      by all major browsers, allowing for performance benefits and granular
+      design control of the typeface's weight, width, and slant.
+    '';
+    maintainers = with lib.maintainers; [ drupol ];
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/monocraft/default.nix b/nixpkgs/pkgs/data/fonts/monocraft/default.nix
new file mode 100644
index 000000000000..88680682a7c9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/monocraft/default.nix
@@ -0,0 +1,39 @@
+{ stdenvNoCC, lib, fetchurl }:
+
+let
+  version = "3.0";
+  relArtifact = name: hash: fetchurl {
+    inherit name hash;
+    url = "https://github.com/IdreesInc/Monocraft/releases/download/v${version}/${name}";
+  };
+in
+stdenvNoCC.mkDerivation {
+  pname = "monocraft";
+  inherit version;
+
+  srcs = [
+    (relArtifact "Monocraft.otf" "sha256-PA1W+gOUStGw7cDmtEbG+B6M+sAYr8cft+Ckxj5LciU=")
+    (relArtifact "Monocraft.ttf" "sha256-S4j5v2bTJbhujT3Bt8daNN1YGYYP8zVPf9XXjuR64+o=")
+    (relArtifact "Monocraft-no-ligatures.ttf" "sha256-MuHfoP+dsXe+ODN4vWFIj50jwOxYyIiS0dd1tzVxHts=")
+    (relArtifact "Monocraft-nerd-fonts-patched.ttf" "sha256-QxMp8UwcRjWySNHWoNeX2sX9teZ4+tCFj+DG41azsXw=")
+  ];
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    find $srcs -name '*.otf' -exec install -Dm644 --target $out/share/fonts/opentype {} +
+    find $srcs -name '*.ttf' -exec install -Dm644 --target $out/share/fonts/truetype {} +
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Programming font based on the typeface used in Minecraft";
+    homepage = "https://github.com/IdreesInc/Monocraft";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ zhaofengli ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/monoid/default.nix b/nixpkgs/pkgs/data/fonts/monoid/default.nix
new file mode 100644
index 000000000000..fab91ae4e20b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/monoid/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv, fetchFromGitHub, python39 }:
+
+stdenv.mkDerivation {
+  pname = "monoid";
+  version = "2020-10-26";
+
+  src = fetchFromGitHub {
+    owner = "larsenwork";
+    repo = "monoid";
+    rev = "0673c8d6728df093faee9f183b6dfa62939df8c0";
+    sha256 = "sha256-u2jwVOC9QM2JHsdAVBuEpqqdiBAVs+IWnpp48A5Xk28=";
+  };
+
+  nativeBuildInputs = [
+    (python39.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..5c4d3c79adcb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/mononoki/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "mononoki";
+  version = "1.6";
+
+  src = fetchzip {
+    url = "https://github.com/madmalik/mononoki/releases/download/${version}/mononoki.zip";
+    stripRoot = false;
+    hash = "sha256-HQM9rzIJXLOScPEXZu0MzRlblLfbVVNJ+YvpONxXuwQ=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/mononoki
+    cp * $out/share/fonts/mononoki
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/madmalik/mononoki";
+    description = "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..60ee2ee97f67
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/montserrat/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "montserrat";
+  version = "7.222";
+
+  src = fetchFromGitHub {
+    owner = "JulietaUla";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-eVCRn2OtNI5NuYZBQy06HKnMMXhPPnFxI8m8kguZjg0=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/{otf,ttf,woff,woff2}
+
+    mv fonts/otf/*.otf $out/share/fonts/otf
+    mv fonts/ttf/*.ttf $out/share/fonts/ttf
+    mv fonts/webfonts/*.woff $out/share/fonts/woff
+    mv fonts/webfonts/*.woff2 $out/share/fonts/woff2
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "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..d5623d907bee
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/mph-2b-damase/default.nix
@@ -0,0 +1,21 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "mph-2b-damase";
+  version = "2";
+
+  src = fetchzip {
+    url = "https://web.archive.org/web/20160322114946/http://www.wazu.jp/downloads/damase_v.2.zip";
+    hash = "sha256-4x78D+c3ZBxfhTQQ4+gyxvrsuztHF2ItXLh4uA0PxvU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  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..401295dda1b3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/mplus-outline-fonts/default.nix
@@ -0,0 +1,61 @@
+{ lib, stdenvNoCC, fetchurl, fetchFromGitHub }:
+
+let pname = "mplus-outline-fonts";
+in
+{
+  osdnRelease = stdenvNoCC.mkDerivation {
+    pname = "${pname}-osdn";
+    version = "063a";
+
+    src = fetchurl {
+      url = "mirror://osdn/mplus-fonts/62344/mplus-TESTFLIGHT-063a.tar.xz";
+      hash = "sha256-ROuXO0tq/1dN5FTbEF3cI+Z0nCKUc0vZyx4Nc05M3Xk=";
+    };
+
+    installPhase = ''
+      runHook preInstall
+
+      install -m444 -Dt $out/share/fonts/truetype/${pname} *.ttf
+
+      runHook postInstall
+    '';
+
+    meta = with lib; {
+      description = "M+ Outline Fonts (legacy OSDN release)";
+      homepage = "https://mplus-fonts.osdn.jp";
+      maintainers = with maintainers; [ uakci ];
+      platforms = platforms.all;
+      license = licenses.mplus;
+    };
+  };
+
+  githubRelease = stdenvNoCC.mkDerivation {
+    pname = "${pname}-github";
+    version = "unstable-2022-05-19";
+
+    src = fetchFromGitHub {
+      owner = "coz-m";
+      repo = "MPLUS_FONTS";
+      rev = "336fec4e9e7c1e61bd22b82e6364686121cf3932";
+      hash = "sha256-jzDDUs1dKjqNjsMeTA2/4vm+akIisnOuE2mPQS7IDSA=";
+    };
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/share/fonts/{truetype,opentype}/${pname}
+      mv fonts/ttf/* $out/share/fonts/truetype/${pname}
+      mv fonts/otf/* $out/share/fonts/opentype/${pname}
+
+      runHook postInstall
+    '';
+
+    meta = with lib; {
+      description = "M+ Outline Fonts (GitHub release)";
+      homepage = "https://mplusfonts.github.io";
+      maintainers = with maintainers; [ uakci ];
+      platforms = platforms.all;
+      license = licenses.ofl;
+    };
+  };
+}
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..9a522c1c2a36
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/mro-unicode/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation {
+  pname = "mro-unicode";
+  version = "unstable-2013-05-25";
+
+  src = fetchurl {
+    url = "https://github.com/phjamr/MroUnicode/raw/f297de070f7eba721a47c850e08efc119d3bfbe8/MroUnicode-Regular.ttf";
+    hash = "sha256-hcQmTuRWxaU5KEMXg/O0b1olE8YxXWz0PAlqAJknR/0=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 $src $out/share/fonts/truetype/MroUnicode-Regular.ttf
+
+    runHook postInstall
+  '';
+
+  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..5d8aa43a5b21
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/myrica/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation {
+  pname = "myrica";
+  version = "2.011.20160403";
+
+  src = fetchFromGitHub {
+    owner = "tomokuni";
+    repo = "Myrica";
+    # commit does not exist on any branch on the target repository
+    rev = "b737107723bfddd917210f979ccc32ab3eb6dc20";
+    hash = "sha256-kx+adbN2DsO81KJFt+FGAPZN+1NpE9xiagKZ4KyaJV0=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp product/*.TTC $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  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/nacelle/default.nix b/nixpkgs/pkgs/data/fonts/nacelle/default.nix
new file mode 100644
index 000000000000..c1ae48dc54a5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nacelle/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+let
+  majorVersion = "1";
+  minorVersion = "00";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "nacelle";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-e4QsPiyfWEAYHWdwR3CkGc2UzuA3hZPYYlWtIubY0Oo=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
+    description = "Improved version of the Aileron font";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ minijackson ];
+    license = licenses.ofl;
+  };
+})
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..069bf877bf74
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nahid-fonts/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "nahid-fonts";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "rastikerdar";
+    repo = "nahid-font";
+    rev = "v${version}";
+    hash = "sha256-r8/W0/pJV6OX954spIITvW7M6lIbZRpbsvEHErnXglg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/nahid-fonts {} \;
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/nahid-font";
+    description = "Persian (Farsi) Font - قلم (فونت) فارسی ناهید";
+    license = licenses.free;
+    platforms = platforms.all;
+    maintainers = [ ];
+  };
+}
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..74741f6a7d2d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nanum-gothic-coding/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "nanum-gothic-coding";
+  version = "2.5";
+
+  src = fetchzip {
+    url = "https://github.com/naver/nanumfont/releases/download/VER${version}/NanumGothicCoding-${version}.zip";
+    stripRoot = false;
+    hash = "sha256-jHbbCMUxn54iQMKdAWI3r8CDxi+5LLJh8ucQzq2Ukdc=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/NanumGothicCoding
+    cp *.ttf $out/share/fonts/NanumGothicCoding
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Contemporary monospaced sans-serif typeface with a warm touch";
+    homepage = "https://github.com/naver/nanumfont";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/nanum/default.nix b/nixpkgs/pkgs/data/fonts/nanum/default.nix
new file mode 100644
index 000000000000..64575a131029
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nanum/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "nanum";
+  version = "20200506";
+
+  src = fetchurl {
+    url = "mirror://ubuntu/pool/universe/f/fonts-${pname}/fonts-${pname}_${version}.orig.tar.xz";
+    hash = "sha256-FXgDdIGYFRJQo898sDrvhE5AjpyYhJ3YieGRhGqsrUs=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts
+    cp *.ttf $out/share/fonts
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Nanum Korean font set";
+    homepage = "https://hangeul.naver.com/font";
+    license = licenses.ofl;
+    maintainers = with lib.maintainers; [ serge ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/nasin-nanpa/default.nix b/nixpkgs/pkgs/data/fonts/nasin-nanpa/default.nix
new file mode 100644
index 000000000000..339c89dd9b0b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nasin-nanpa/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "nasin-nanpa";
+  version = "3.1.0";
+
+  src = fetchurl {
+    url = "https://github.com/ETBCOR/nasin-nanpa/releases/download/n${version}/nasin-nanpa-${version}.otf";
+    hash = "sha256-remTvvOt7kpvTdq9H8tFI2yU+BtqePXlDDLQv/jtETU=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/opentype
+    cp $src $out/share/fonts/opentype/nasin-nanpa.otf
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/ETBCOR/nasin-nanpa";
+    description = "UCSUR OpenType monospaced font for the Toki Pona writing system, Sitelen Pona";
+    longDescription = ''
+      ni li nasin pi sitelen pona.
+      sitelen ale pi nasin ni li sama mute weka.
+      sitelen pi nasin ni li lon nasin UCSUR kin.
+    '';
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ somasis ];
+  };
+}
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..4970e0d5920f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/national-park/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "national-park-typeface";
+  version = "206464";
+
+  src = fetchzip {
+    url = "https://files.cargocollective.com/c${version}/NationalPark.zip";
+    stripRoot = false;
+    hash = "sha256-VUboZZVJfKupnoHXo3RxetEEYimrr1DxghVZaaWnnw4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.otf -t $out/share/fonts/opentype/
+
+    runHook postInstall
+  '';
+
+  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..8aaf36e60ed1
--- /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 = "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..b2576d0fca46
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix
@@ -0,0 +1,72 @@
+{ stdenv
+, fetchurl
+, lib
+# 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}.tar.xz";
+      sha256 = fSha;
+    })
+  ) selectedFontsShas;
+in
+
+stdenv.mkDerivation (finalAttrs: {
+  inherit version;
+  inherit srcs;
+  pname = "nerdfonts";
+  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.*
+    ''}
+  '';
+  passthru.updateScript = ./update.sh;
+
+  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..b7ad0b67aa1b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nerdfonts/shas.nix
@@ -0,0 +1,69 @@
+{
+  "0xProto" = "09q4ipl3vvav3jbs0s14fqmd2wk70mc7i8mmplpj20jwcicm05ng";
+  "3270" = "0zcj5xhylyqxpwn6dzp28kh8xybhh4y9lva3smcqs7iklhbf8s31";
+  "Agave" = "1xxylrjb0zbq3kj14fx5d3lpb7abl0br6mkj961i391qyqlx01y3";
+  "AnonymousPro" = "1lq9wkf8c153jkjmhnddih12y9xd4gabbkgac0vx9j98hmy7yjqy";
+  "Arimo" = "1f7zljmljrp1dxkrhkyz8zh9ddv7l7m9br6gaygzxr26bq0vrwr0";
+  "AurulentSansMono" = "0wlwwgp1w7rqvqx66dkqwhz5flw75620fj9fb795hakpkjiya6yp";
+  "BigBlueTerminal" = "115cxnll1iyj75f5wi7b7pi5hgfa3b5kbx269alm9183h284lb23";
+  "BitstreamVeraSansMono" = "1s6jpg0vrdwgi9qyn0mbcy8r7h1lqw8z6q39wiin61szfn642a2k";
+  "CascadiaCode" = "1sg6czl3km7yi70vdcyb0ff1xkq1p4nalj0yh164gan3psp9mxss";
+  "CascadiaMono" = "0rrknf86kdwyjpnryp5870nmnq2sxjda8pgs93z23lh7hw758wln";
+  "CodeNewRoman" = "0p1wkmpzcrxw8qv5lf9fwsxqpjglhwim83amf7i8mmxdx1drzlj5";
+  "ComicShannsMono" = "1p35nmzl51mn2mk0g9fdcawvssv4v7bklxxmdx99357ihnlka26w";
+  "CommitMono" = "0jjzi98i28s3z2x8v7rakcdhgdf7jxzagj8snrylw2mvwn7mlgqp";
+  "Cousine" = "1ccq3sp8fqbi0njm9w2p6cf5r7avpan5fklwzpx4mknwbdqlrwdq";
+  "D2Coding" = "1c0chgbsmzlgq0vinbcz7ydkdhnram8cif8zx8kkpha31abna5n0";
+  "DaddyTimeMono" = "1nz4g26a4dx7ng5nv6bc4hg474inan1c00c86mdlmvl2vgmx6zbf";
+  "DejaVuSansMono" = "12x18i15723hxc1l6ng92m77wycjk0d6r15j34n1zsww5r6xwjxr";
+  "DroidSansMono" = "1mqd1qqbs9dxwmi98i4xw88c68l1bww1sqlsmxmn86368rjh14fk";
+  "EnvyCodeR" = "197g4jaljcb1yncn9rvh17n077p7bq0v59lvb9vqkq3lms5lzjni";
+  "FantasqueSansMono" = "079mk8xrri4r1d5k1w5fv1hb0hp3w499csirkd6yriss35sbhv9d";
+  "FiraCode" = "1i1vw65f00n6vjinyqr1bq5ni5r6g8cjinrfl5zhlqm0gagv5x6y";
+  "FiraMono" = "1i9bfxblx568wsjq7ks1kyyfn9k36i4r2an4n45mb46swc94n8n0";
+  "GeistMono" = "0wvc9hqkh7ap3ysklcin8k72706l72p2wyqv3bg5brzcmwcpy90g";
+  "Go-Mono" = "0j6rr0r7418f8a5bmxbagpmcf7bas2n53f0hg835zp2ikx9cx924";
+  "Gohu" = "0h8hjiqs3f6xwn7g4wg12xim65ybw2546nlf5p9ip4ymr7x17dks";
+  "Hack" = "1wxmd4jr4p11cfhzs5chyh649vps6sdz4bq28204npkd7wzh5fc9";
+  "Hasklig" = "1nja4r8sn67g3gn85xhb1h7p1pi96wl0hpg5b5gyd1z5llbgzc2g";
+  "HeavyData" = "1a3a1pixv97wlnai24zb8dhkzxb2llcarhjkfrgd4syhn37sdf7n";
+  "Hermit" = "1bh18rzwma7gzrx3ybw8g2s9k5xv7wx8ybnyas3qaxb03fpjqm93";
+  "iA-Writer" = "0vsppg62l35zhzlsa0fwczv09pk1nhrag9xhcaadipd962dv7c45";
+  "IBMPlexMono" = "0hd04z17l2p21hij4a0gmwnlfxs7s8qqh08zf4pzqld10557gqlp";
+  "Inconsolata" = "1xy3h05zy49h91k7fqk8934p1f776w46i0bh510addg12w8mm7rc";
+  "InconsolataGo" = "0hcvh3s2rnnir03pszfmmwhbdsapx1b516phhjhb4wl0dqma9q39";
+  "InconsolataLGC" = "0bfwhzbz422kfdv9ppr83cc2aqqdn7g49f73zipl4yp5636gi5ks";
+  "IntelOneMono" = "0388390dlcprxhxxl57gy8rllwk8wsd92b5xwnqwb5f394gbc5m0";
+  "Iosevka" = "0dzkcn277jxiqrrqkyigw6jgd4lp9411r28rkpkwx6js6px27q8v";
+  "IosevkaTerm" = "1xccqkydkhmhq8akk23kkypqzcc2svyicxv9gblwzwbndjrfgmdm";
+  "IosevkaTermSlab" = "1svig63li8mjj2dkgiawgb82gpk8vkrkhih5cp0a6174bh4gycii";
+  "JetBrainsMono" = "01j0rkgrix7mdp9fx0y8zzk1kh40yfcp932p0r5y666aq4mq5y3c";
+  "Lekton" = "00cm8ni3cnmgzwj1ypvpcy8gvnlz31la51j411dpsdqsclbcp0i2";
+  "LiberationMono" = "1941pgw723a6my44g6idi56a88qvsi8lj3wl7slpr5l3pmfda2lx";
+  "Lilex" = "0qz23h6a77i4n8nmhb7hc56mkiwn3pj1s6dbl2v53fvypwghswm2";
+  "MartianMono" = "0zfcvi150yn274i41n66zr20hqgqb0r5v75q21bbgqvaysl4wj32";
+  "Meslo" = "1sjrsr7i3diz4h7wkrl8va7b40g4m1432dz6bpbm2nmp89aszg8s";
+  "Monaspace" = "0il36cm37pc6ndp96j32j0fqpqvwyv2xm3jr7d3zxwax1lcfilp5";
+  "Monofur" = "10gzx2r5a5f5jl192c6cwsil5k57aslmryfnilkv4g8417xmn0zb";
+  "Monoid" = "1fhsb326lc093ckrq2kz4vhr3ibrgp8y0mwa3qwdbapldxazz9f7";
+  "Mononoki" = "18zp94dnv6kp8l58151dybjf2w1gi99nh1rw098hkrf52gfrfdpb";
+  "MPlus" = "0x7yvpkn32x50y9zpdpjrp1gvwwp4fsmjbqbnfzy14xhi03p0q2w";
+  "NerdFontsSymbolsOnly" = "0y4r1rid5sjd9ihi6nkwy0sja792aghg21bpl3ri029b9pifx8xp";
+  "Noto" = "0vq9lgf4j6pi7pw3bfgfzkcdixnhikf4yys8fr0qql7mkwhj3rjb";
+  "OpenDyslexic" = "1yl1fm4pfjvxq411m6f8nycqjnpnhkllmlx16wjrjfqpaf63mm4n";
+  "Overpass" = "1plcn2qx2b08va65zagn1ybkh850157ii7x20nnrhp0h5f4rddzw";
+  "ProFont" = "11c3shv09dssjbjwa44y64dwq7dxn3gs23bfgvhkv51vshsx0fzy";
+  "ProggyClean" = "1l822wqrz7xmgnw535i9vl9gwjl4h037hi3xl0g4907kcdxwan0s";
+  "Recursive" = "1fngqsl1shbfbb1wcx77di42g65lm9f5fcw93m8dcvdzk5lxpxz5";
+  "RobotoMono" = "0g6yvz4vpfcylnshhyhwy5llz61n8m0a0vp4jgjhiir5svcd9krw";
+  "ShareTechMono" = "0mxsywg4gns31yzh1256y7pkbh0m6n3rf8gbb55mxw219ngskkyv";
+  "SourceCodePro" = "088vi947kavk1pkvbl68kv7nz84yvfkj725n2zn7ypq354kkm92n";
+  "SpaceMono" = "0f4kcm4i3y11mpxb9anmn8759zpv3lvril4shp3d4mfc0k3dgfdn";
+  "Terminus" = "04kzc594sb5vk8fd3ww9ip7jsy4vi6wmxdf6vzsvb2fgd98ck335";
+  "Tinos" = "14c31qv3ik0in44k98zjn398cffwgq8z7d5lx7sk6iv12hikrd11";
+  "Ubuntu" = "1bgk4hx26qn5ylsydsy9655isz05ir7154pv8dy4x5rpr144s9ba";
+  "UbuntuMono" = "15kkgx6i4f7zn6fdaw2dqqw3hcpl3pi4cy4g5jx67af8qlhqarrb";
+  "UbuntuSans" = "0jj4v198zshwhns5swrh02h2np3wgnv8lacn8b7jhmcd575cgy1y";
+  "VictorMono" = "03rh7rc6a934sgd1bs7h7y1swqwbv3g7zi624k6hd8v1m3f0j6xa";
+  "ZedMono" = "0yhb9fp7ahw8niki1njzk8pbl0iy53pgf7gx5yfc2ass9vjwky9d";
+}
diff --git a/nixpkgs/pkgs/data/fonts/nerdfonts/update.sh b/nixpkgs/pkgs/data/fonts/nerdfonts/update.sh
new file mode 100755
index 000000000000..03acd617e6f0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nerdfonts/update.sh
@@ -0,0 +1,26 @@
+#!/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-new.nix"
+if diff -q "$dirname/version-new.nix" "$dirname/version.nix"; then
+    echo No new version available, current: $version
+    exit 0
+else
+    echo Updated to version "$version"
+    mv "$dirname/version-new.nix" "$dirname/version.nix"
+fi
+
+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[] | select(.name | test("xz")) | .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..038707f5b9ec
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nerdfonts/version.nix
@@ -0,0 +1 @@
+"3.2.1"
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..f5076f3c93cb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nika-fonts/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "nika-fonts";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "font-store";
+    repo = "NikaFont";
+    rev = "v${version}";
+    hash = "sha256-jDemm8IyjhoCOg4Bfsp0tzUR7m+JaswL5d7Kug+asJk=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/nika-fonts {} \;
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/font-store/NikaFont/";
+    description = "Persian/Arabic Open Source Font";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/norwester/default.nix b/nixpkgs/pkgs/data/fonts/norwester/default.nix
new file mode 100644
index 000000000000..2efbf45fd3d1
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/norwester/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "norwester";
+  version = "1.2";
+
+  src = fetchzip {
+    url = "http://jamiewilson.io/norwester/assets/norwester.zip";
+    stripRoot = false;
+    hash = "sha256-Ak/nobrQE/XYGWs/IhlZlTp74ff+s4adUR6Sht5Yf8g=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/opentype
+    cp ${pname}-v${version}/${pname}.otf $out/share/fonts/opentype/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://jamiewilson.io/norwester";
+    description = "Condensed geometric sans serif by Jamie Wilson";
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ocr-a/default.nix b/nixpkgs/pkgs/data/fonts/ocr-a/default.nix
new file mode 100644
index 000000000000..216b960994d7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ocr-a/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "OCR-A";
+  version = "1.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/ocr-a-font/OCR-A/${version}/OCRA.ttf";
+    sha256 = "0kpmjjxwzm84z8maz6lq9sk1b0xv1zkvl28lwj7i0m2xf04qixd0";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    install -D -m 0644 $src $out/share/fonts/truetype/OCRA.ttf
+  '';
+
+  meta = with lib; {
+    description = "ANSI OCR font from the '60s. CYBER";
+    homepage = "https://sourceforge.net/projects/ocr-a-font/";
+    license = licenses.publicDomain;
+    maintainers = with maintainers; [ V ];
+  };
+}
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..5a7d74404544
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/office-code-pro/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "office-code-pro";
+  version = "1.004";
+
+  src = fetchFromGitHub {
+    owner = "nathco";
+    repo = "Office-Code-Pro";
+    rev = version;
+    hash = "sha256-qzKTXYswkithZUJT0a3IifCq4RJFeKciZAPhYr2U1X4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m644 -Dt $out/share/doc/${pname}-${version} README.md
+    install -m444 -Dt $out/share/fonts/opentype 'Fonts/Office Code Pro/OTF/'*.otf 'Fonts/Office Code Pro D/OTF/'*.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "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..88692d914564
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/oldsindhi/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "oldsindhi";
+  version = "1.0";
+
+  src = fetchurl {
+    url = "https://github.com/MihailJP/${pname}/releases/download/v${version}/OldSindhi-${version}.tar.xz";
+    hash = "sha256-jOcl+mo6CJ9Lnn3nAUiXXHCJssovVgLoPrbGxj4uzQs=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/truetype *.ttf
+    install -m444 -Dt $out/share/doc/${pname}-${version} README *.txt
+
+    runHook postInstall
+  '';
+
+  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..b85d9694613f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/oldstandard/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "oldstandard";
+  version = "2.2";
+
+  src = fetchzip {
+    url = "https://github.com/akryukov/oldstand/releases/download/v${version}/${pname}-${version}.otf.zip";
+    stripRoot = false;
+    hash = "sha256-cDB5KJm87DK+GczZ3Nmn4l5ejqViswVbwrJ9XbhEh8I=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/opentype *.otf
+    install -m444 -Dt $out/share/doc/${pname}-${version}    FONTLOG.txt
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/akryukov/oldstand";
+    description = "Attempt to revive a specific type of Modern style of serif typefaces";
+    maintainers = with maintainers; [ raskin ];
+    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..bcfc9fda2b2d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/open-dyslexic/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+let version = "0.91.12"; in
+stdenvNoCC.mkDerivation {
+  pname = "open-dyslexic";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "antijingoist";
+    repo = "opendyslexic";
+    rev = "v${version}";
+    hash = "sha256-a8hh8NGt5djj9EC7ChO3SnnjuYMOryzbHWTK4gC/vIw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 compiled/*.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://opendyslexic.org/";
+    description = "Font created to increase readability for readers with dyslexia";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.rycee ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/open-fonts/default.nix b/nixpkgs/pkgs/data/fonts/open-fonts/default.nix
new file mode 100644
index 000000000000..a6f2db7542dc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/open-fonts/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "open-fonts";
+  version = "0.7.0";
+
+  src = fetchurl {
+    url = "https://github.com/kiwi0fruit/open-fonts/releases/download/${version}/open-fonts.tar.xz";
+    hash = "sha256-NJKbdrvgZz9G7mjAJYzN7rU/fo2xRFZA2BbQ+A56iPw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    install *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Collection of beautiful free and open source fonts";
+    homepage = "https://github.com/kiwi0fruit/open-fonts";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ moni ];
+  };
+}
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..4883cd818b1c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/open-sans/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenvNoCC, fetchFromGitLab }:
+
+stdenvNoCC.mkDerivation {
+  pname = "open-sans";
+  version = "1.11";
+
+  src = fetchFromGitLab {
+    domain = "salsa.debian.org";
+    owner = "fonts-team";
+    repo = "fonts-open-sans";
+    rev = "debian/1.11-1";
+    hash = "sha256-gkq5RPa83dND91q1hiA9Qokq1iA8gLQ8XvCNWe+e8Bw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  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 = with maintainers; [ ] ++ teams.pantheon.members;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/openmoji/build.patch b/nixpkgs/pkgs/data/fonts/openmoji/build.patch
new file mode 100644
index 000000000000..ddc9b554caf0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/openmoji/build.patch
@@ -0,0 +1,77 @@
+diff --git a/helpers/generate-fonts-runner.sh b/helpers/generate-fonts-runner.sh
+index 21267e50f..873b5c664 100755
+--- a/helpers/generate-fonts-runner.sh
++++ b/helpers/generate-fonts-runner.sh
+@@ -25,10 +25,10 @@ mkdir -p "$build_dir"
+ 
+ # Change these to enable/disable formats
+ # Remember to update font/README.md accordingly
+-methods_black=(glyf)
+-methods_color=(cbdt glyf_colr_0 glyf_colr_1 sbix picosvgz untouchedsvgz)
++#methods_black=(glyf)
++#methods_color=(cbdt glyf_colr_0 glyf_colr_1 sbix picosvgz untouchedsvgz)
+ 
+-saturations=(black color)
++#saturations=(black color)
+ for saturation in "${saturations[@]}"; do
+     case "$saturation" in
+     black)
+@@ -43,6 +43,7 @@ for saturation in "${saturations[@]}"; do
+     mkdir -p "$build_dir/$saturation"
+ 
+     for method in "${methods[@]}"; do
++        if [ -z "$method" ]; then continue; fi
+         cat >"$build_dir/$saturation/OpenMoji-$saturation-$method.toml" <<-EOF
+ output_file = "$build_dir/$saturation/OpenMoji-$saturation-$method.ttf"
+ color_format = "$method"
+@@ -55,10 +56,7 @@ default = 400
+ 
+ [master.regular]
+ style_name = "Regular"
+-
+-# To quickly check build reverse comments below
+-srcs = ["/mnt/$saturation/svg/*.svg"]
+-# srcs = ["/mnt/$saturation/svg/1F923.svg", "/mnt/$saturation/svg/1F1E9-1F1F0.svg"]
++srcs = ["$(pwd)/$saturation/svg/*.svg"]
+ 
+ [master.regular.position]
+ wght = 400
+@@ -71,7 +69,7 @@ EOF
+     for method in "${methods[@]}"; do
+         # Generate XML for font
+         sed "s/Color/${saturation^}/;" \
+-            /mnt/data/OpenMoji-Color.ttx \
++            data/OpenMoji-Color.ttx \
+             > "$build_dir/$saturation/OpenMoji-$saturation-$method.ttx"
+ 
+         # Add version to XML
+@@ -89,25 +87,21 @@ EOF
+ 
+         # Compress with WOFF2
+         woff2_compress "$build_dir/fonts/OpenMoji-$saturation-$method/OpenMoji-$saturation-$method.ttf"
+-
+-        # Generate font demo
+-        /mnt/helpers/generate-font-demo.js "OpenMoji-$saturation-$method.woff2" "$build_dir/fonts/OpenMoji-$saturation-$method"
+     done
+ done
+ 
+-for colr_version in 0 1; do
++for colr_version in "${maximumColorVersions[@]}"; do
++    if [ -z "$colr_version" ]; then continue; fi
+     # Make TTF with both COLR and SVG font data in it
+     mkdir -p "$build_dir/fonts/OpenMoji-color-colr${colr_version}_svg"
+ 
+-    maximum_color \
++    maximum_color --build_dir="$build_dir/color" \
+         "$build_dir/fonts/OpenMoji-color-glyf_colr_${colr_version}/OpenMoji-color-glyf_colr_${colr_version}.ttf"\
+         --output_file "$build_dir/fonts/OpenMoji-color-colr${colr_version}_svg/OpenMoji-color-colr${colr_version}_svg.ttf"
+ 
+     woff2_compress "$build_dir/fonts/OpenMoji-color-colr${colr_version}_svg/OpenMoji-color-colr${colr_version}_svg.ttf"
+ 
+-    /mnt/helpers/generate-font-demo.js\
+-        "OpenMoji-color-colr${colr_version}_svg.woff2"\
+-        "$build_dir/fonts/OpenMoji-color-colr${colr_version}_svg"
++    rm -rf "$build_dir/fonts/OpenMoji-color-glyf_colr_${colr_version}"
+ done
+ 
+ echo "Done building fonts!"
diff --git a/nixpkgs/pkgs/data/fonts/openmoji/default.nix b/nixpkgs/pkgs/data/fonts/openmoji/default.nix
new file mode 100644
index 000000000000..3f19bbe91f33
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/openmoji/default.nix
@@ -0,0 +1,88 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, nanoemoji
+, python3Packages
+, woff2
+, xmlstarlet
+  # available color formats: ["cbdt" "glyf_colr_0" "glyf_colr_1" "sbix" "picosvgz" "untouchedsvgz"]
+  # available black formats: ["glyf"]
+, fontFormats ? [ "glyf" "cbdt" "glyf_colr_0" "glyf_colr_1" ]
+  # when at least one of the glyf_colr_0/1 formats is specified, whether to build maximum color fonts
+  # "none" to not build any, "svg" to build colr+svg, "bitmap" to build cbdt+colr+svg fonts
+, buildMaximumColorFonts ? "bitmap"
+}:
+let
+  # all available methods
+  methods = {
+    black = [ "glyf" ];
+    color = [ "cbdt" "glyf_colr_0" "glyf_colr_1" "sbix" "picosvgz" "untouchedsvgz" ];
+  };
+in
+
+assert lib.asserts.assertEachOneOf "fontFormats" fontFormats (methods.black ++ methods.color);
+assert lib.asserts.assertOneOf "buildMaximumColorFonts" buildMaximumColorFonts [ "none" "bitmap" "svg" ];
+
+stdenvNoCC.mkDerivation rec {
+  pname = "openmoji";
+  version = "15.0.0";
+
+  src = fetchFromGitHub {
+    owner = "hfg-gmuend";
+    repo = pname;
+    rev = version;
+    hash = "sha256-659ONkHU45Z2789ay0yLero9j5nFWhslpJad++4oNN8=";
+  };
+
+  patches = [
+    # fix paths and variables for nix build and skip generating font demos
+    ./build.patch
+  ];
+
+  nativeBuildInputs = [
+    nanoemoji
+    python3Packages.fonttools
+    woff2
+    xmlstarlet
+  ];
+
+  methods_black = builtins.filter (m: builtins.elem m fontFormats) methods.black;
+  methods_color = builtins.filter (m: builtins.elem m fontFormats) methods.color;
+  saturations = lib.optional (methods_black != [ ]) "black" ++ lib.optional (methods_color != [ ]) "color";
+  maximumColorVersions = lib.optionals (buildMaximumColorFonts != "none") (
+    lib.optional (builtins.elem "glyf_colr_0" fontFormats) "0"
+    ++ lib.optional (builtins.elem "glyf_colr_1" fontFormats) "1"
+  );
+
+  postPatch = lib.optionalString (buildMaximumColorFonts == "bitmap") ''
+    substituteInPlace helpers/generate-fonts-runner.sh \
+      --replace 'maximum_color' 'maximum_color --bitmaps'
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    bash helpers/generate-fonts-runner.sh "$(pwd)/build" "${version}"
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype $out/share/fonts/woff2
+    cp build/fonts/*/*.ttf $out/share/fonts/truetype/
+    cp build/fonts/*/*.woff2 $out/share/fonts/woff2/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    license = licenses.cc-by-sa-40;
+    maintainers = with maintainers; [ _999eagle fgaz ];
+    platforms = platforms.all;
+    homepage = "https://openmoji.org/";
+    downloadPage = "https://github.com/hfg-gmuend/openmoji/releases";
+    description = "Open-source emojis for designers, developers and everyone else";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/orbitron/default.nix b/nixpkgs/pkgs/data/fonts/orbitron/default.nix
new file mode 100644
index 000000000000..7e6897552060
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/orbitron/default.nix
@@ -0,0 +1,48 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "orbitron";
+  version = "2011-05-25";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "13e6a5222aa6818d81c9acd27edd701a2d744152";
+    hash = "sha256-zjNPVrDUxcQbrsg1/8fFa6Wenu1yuG/XDfKA7NVZ0rA=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/*.ttf
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  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 = with lib.maintainers; [ leenaars minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/ostrich-sans/default.nix b/nixpkgs/pkgs/data/fonts/ostrich-sans/default.nix
new file mode 100644
index 000000000000..e4f6c3bae2f6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ostrich-sans/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "ostrich-sans";
+  version = "2014-04-18";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "a949d40d0576d12ba26e2a45e19c91fd0228c964";
+    hash = "sha256-vvTNtl+fO2zWooH1EvCmO/dPYYgCkj8Ckg5xfg1gtnw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Gorgeous modern sans-serif with a very long neck";
+    longDescription = ''
+      A gorgeous modern sans-serif with a very long neck. With a whole slew of
+      styles & weights.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/ostrich-sans";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/overpass/default.nix b/nixpkgs/pkgs/data/fonts/overpass/default.nix
new file mode 100644
index 000000000000..521c08c85cea
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/overpass/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "overpass";
+  version = "3.0.5";
+
+  src = fetchzip {
+    url = "https://github.com/RedHatOfficial/Overpass/releases/download/v${version}/overpass-${version}.zip";
+    hash = "sha256-8AWT0/DELfNWXtZOejC90DbUSOtyGt9tSkcSuO7HP2o=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 */*/*.otf -t $out/share/fonts/opentype
+    install -Dm644 */*/*.ttf -t $out/share/fonts/truetype
+    install -Dm644 *.md  -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
+
+  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..32d9273d6390
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/oxygenfonts/default.nix
@@ -0,0 +1,53 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "oxygenfonts";
+  version = "20160824";
+
+  src = fetchFromGitHub {
+    owner = "vernnobile";
+    repo = "oxygenFont";
+    rev = "62db0ebe3488c936406685485071a54e3d18473b";
+    hash = "sha256-0LKq8nChkDAb6U1sOUyga/DvzpDmIjoRn+2PB9rok4w=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp */Oxygen-Sans.ttf */Oxygen-Sans-Bold.ttf */OxygenMono-Regular.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  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..214a9ca58d77
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/parastoo-fonts/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "parastoo-fonts";
+  version = "2.0.1";
+
+  src = fetchFromGitHub {
+    owner = "rastikerdar";
+    repo = "parastoo-font";
+    rev = "v${version}";
+    hash = "sha256-E94B9R2h227D49dscCBsprmb7w0GrQ+2tWOWRf8FH30=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/parastoo-fonts {} \;
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/parastoo-font";
+    description = "Persian (Farsi) Font - فونت ( قلم ) فارسی پرستو";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ ];
+  };
+}
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..91132642b2a7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix
@@ -0,0 +1,37 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "paratype-pt-mono";
+  version = "2.005";
+
+  src = fetchzip {
+    urls = [
+      "https://company.paratype.com/system/attachments/631/original/ptmono.zip"
+      "http://rus.paratype.ru/system/attachments/631/original/ptmono.zip"
+    ];
+    stripRoot = false;
+    hash = "sha256-mfDAu/KGelC6wZpUCrUrLVZKo+XiKNBqcpMI8tH2tMw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 *.txt -t $out/share/doc/paratype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://www.paratype.ru/public/";
+    description = "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..90d90a56d454
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix
@@ -0,0 +1,37 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "paratype-pt-sans";
+  version = "2.005";
+
+  src = fetchzip {
+    urls = [
+      "https://company.paratype.com/system/attachments/629/original/ptsans.zip"
+      "http://rus.paratype.ru/system/attachments/629/original/ptsans.zip"
+    ];
+    stripRoot = false;
+    hash = "sha256-34TqYXtWzkAstaGQBhJy+/hVk5tg6ZvHZ/kvUroWVLs=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 *.txt -t $out/share/doc/paratype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://www.paratype.ru/public/";
+    description = "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..4430d94cd7f1
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix
@@ -0,0 +1,37 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "paratype-pt-serif";
+  version = "2.005";
+
+  src = fetchzip {
+    urls = [
+      "https://company.paratype.com/system/attachments/634/original/ptserif.zip"
+      "http://rus.paratype.ru/system/attachments/634/original/ptserif.zip"
+    ];
+    stripRoot = false;
+    hash = "sha256-4L3t5NEHmj975fn8eBAkRUO1OL0xseNp9g7k7tt/O2c=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 *.txt -t $out/share/doc/paratype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://www.paratype.ru/public/";
+    description = "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..568363889ff2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/pecita/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation {
+  pname = "pecita";
+  version = "5.4";
+
+  src = fetchurl {
+    url = "http://pecita.eu/b/Pecita.otf";
+    hash = "sha256-D9IZ+p4UFHUNt9me7D4vv0x6rMK9IaViKPliCEyX6t4=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/opentype
+    cp -v $src $out/share/fonts/opentype/Pecita.otf
+
+    runHook postInstall
+  '';
+
+  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..e1a7fc181ddc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/penna/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "100";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "penna";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-fmCJnEaoUGdW9JK3J7JSm5D4qOMRW7qVKPgVE7uCH5w=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${finalAttrs.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 minijackson ];
+    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..ea2da0fe2ecf
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/powerline-fonts/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation {
+  pname = "powerline-fonts";
+  version = "unstable-2018-11-11";
+
+  src = fetchFromGitHub {
+    owner = "powerline";
+    repo = "fonts";
+    rev = "e80e3eba9091dac0655a0a77472e10f53e754bb0";
+    hash = "sha256-GGfON6Z/0czCUAGxnqtndgDnaZGONFTU9/Hu4BGDHlk=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    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   {} \;
+
+    runHook postInstall
+  '';
+
+  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..f8b9935d6439
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/powerline-symbols/default.nix
@@ -0,0 +1,18 @@
+{ lib, runCommand, powerline }:
+
+let
+  inherit (powerline) version;
+in runCommand "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/pretendard/default.nix b/nixpkgs/pkgs/data/fonts/pretendard/default.nix
new file mode 100644
index 000000000000..b01b298879cf
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/pretendard/default.nix
@@ -0,0 +1,58 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+let
+  version = "1.3.9";
+
+  mkPretendard = { pname, typeface, hash }:
+    stdenvNoCC.mkDerivation {
+      inherit pname version;
+
+      src = fetchzip {
+        url = "https://github.com/orioncactus/pretendard/releases/download/v${version}/${typeface}-${version}.zip";
+        stripRoot = false;
+        inherit hash;
+      };
+
+      installPhase = ''
+        runHook preInstall
+
+        install -Dm644 public/static/*.otf -t $out/share/fonts/opentype
+
+        runHook postInstall
+      '';
+
+      meta = with lib; {
+        homepage = "https://github.com/orioncactus/pretendard";
+        description = "Alternative font to system-ui for all platforms";
+        license = licenses.ofl;
+        platforms = platforms.all;
+        maintainers = with maintainers; [ sudosubin ];
+      };
+    };
+
+in
+{
+  pretendard = mkPretendard {
+    pname = "pretendard";
+    typeface = "Pretendard";
+    hash = "sha256-n7RQApffpL/8ojHcZbdxyanl9Tlc8HP8kxLFBdArUfY=";
+  };
+
+  pretendard-gov = mkPretendard {
+    pname = "pretendard-gov";
+    typeface = "PretendardGOV";
+    hash = "sha256-qoDUBOmrk6WPKQgnapThfKC01xWup+HN82hcoIjEe0M=";
+  };
+
+  pretendard-jp = mkPretendard {
+    pname = "pretendard-jp";
+    typeface = "PretendardJP";
+    hash = "sha256-1nTk1LPoRSfSDgDuGWkcs6RRIY4ZOqDBPMsxezMos6Q=";
+  };
+
+  pretendard-std = mkPretendard {
+    pname = "pretendard-std";
+    typeface = "PretendardStd";
+    hash = "sha256-gkYqqxSICmSIrBuPRzBaOlGGM/rJU1z7FiFvu9RhK5s=";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/prociono/default.nix b/nixpkgs/pkgs/data/fonts/prociono/default.nix
new file mode 100644
index 000000000000..5d6ef71821e8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/prociono/default.nix
@@ -0,0 +1,34 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "prociono";
+  version = "2011-05-25";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "f9d9680de6d6f0c13939f23c9dd14cd7853cf844";
+    hash = "sha256-gC5E0Z0O2cnthoBEu+UOQLsr3/a/3/JPIx3WCPsXXtk=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/*.ttf
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Roman serif with blackletter elements";
+    longDescription = ''
+      "Prociono" (pro-tsee-O-no) is an Esperanto word meaning either the star
+      Procyon or the animal species known as the raccoon. It is a roman serif
+      with blackletter elements.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/prociono";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/profont/default.nix b/nixpkgs/pkgs/data/fonts/profont/default.nix
new file mode 100644
index 000000000000..a617d61cc98f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/profont/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv, fetchzip, xorg }:
+
+stdenv.mkDerivation {
+  pname = "profont";
+  version = "2019-11";
+
+  # Note: stripRoot doesn't work because the archive
+  # contains 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 = [ xorg.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 = "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..919cdf2a3dce
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/proggyfonts/default.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv, fetchurl, mkfontscale }:
+
+stdenv.mkDerivation rec {
+  pname = "proggyfonts";
+  version = "0.1";
+
+  src = fetchurl {
+    url = "https://web.archive.org/web/20150801042353/http://kaictl.net/software/proggyfonts-${version}.tar.gz";
+    hash = "sha256-SsLzZdR5icVJNbr5rcCPbagPPtWghbqs2Jxmrtufsa4=";
+  };
+
+  nativeBuildInputs = [ mkfontscale ];
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    # 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"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.upperbounds.net";
+    description = "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..18e1b66e0ec5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/public-sans/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "public-sans";
+  version = "2.001";
+
+  src = fetchzip {
+    url = "https://github.com/uswds/public-sans/releases/download/v${version}/public-sans-v${version}.zip";
+    stripRoot = false;
+    hash = "sha256-XFs/UMXI/kdrW+53t8Mj26+Rn5p+LQ6KW2K2/ShoIag=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 */*/*.otf -t $out/share/fonts/opentype
+    install -Dm644 */*/*.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Strong, neutral, principles-driven, open source typeface for text or display";
+    homepage = "https://public-sans.digital.gov/";
+    changelog = "https://github.com/uswds/public-sans/raw/v${version}/FONTLOG.txt";
+    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..ce702c1c5993
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/quattrocento-sans/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "quattrocento-sans";
+  version = "2.0";
+
+  src = fetchzip {
+    url = "https://web.archive.org/web/20170709124317/http://www.impallari.com/media/releases/quattrocento-sans-v${version}.zip";
+    stripRoot = false;
+    hash = "sha256-L3aFZmaA94B9APxsp8bSBpocIlK3Ehvj/RFXVcW2nso=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 */*/QuattrocentoSans*.otf -t $out/share/fonts/opentype
+    install -Dm644 */FONTLOG.txt             -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://www.impallari.com/quattrocentosans/";
+    description = "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..14618cb2ef39
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/quattrocento/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "quattrocento";
+  version = "1.1";
+
+  src = fetchzip {
+    url = "https://web.archive.org/web/20170707001804/http://www.impallari.com/media/releases/quattrocento-v${version}.zip";
+    hash = "sha256-ntY6Wl6TI8F7SShMyD8mdOxVg4oz9kvJ7vKTyGdPLtE=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 */*.otf     -t $out/share/fonts/opentype
+    install -Dm644 FONTLOG.txt -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://www.impallari.com/quattrocento/";
+    description = "Classic, elegant, sober and strong serif typeface";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.rycee ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/quivira/default.nix b/nixpkgs/pkgs/data/fonts/quivira/default.nix
new file mode 100644
index 000000000000..db01e2b7d150
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/quivira/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchurl }:
+let
+  pname = "quivira";
+  version = "4.1";
+in fetchurl {
+  name = "${pname}-${version}";
+  url = "http://www.quivira-font.com/files/Quivira.otf";
+
+  # Download the source file to a temporary directory so that $out can be a
+  # directory with the expected structure.
+  downloadToTemp = true;
+  # recursiveHash needs to be true because $out is going to be a directory.
+  recursiveHash = true;
+  postFetch = ''
+    install -D $downloadedFile $out/share/fonts/opentype/Quivira.otf
+  '';
+
+  sha256 = "Hhl+0Oc5DDohOpBbEARMunMYCpr6nn4X6RgpQeEksNo=";
+  meta = {
+    description = "Free Unicode font in the OpenType format which is supported by every usual office program or printer";
+    homepage = "http://www.quivira-font.com/";
+    license = lib.licenses.publicDomain;
+    maintainers = [ lib.maintainers.nosewings ];
+    # From the homepage: "If you try to install Quivira on a Mac,
+    # you will get an error message about the 'post table
+    # usability'."
+    platforms = lib.filter (platform: !lib.hasInfix "darwin" platform) lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/raleway/default.nix b/nixpkgs/pkgs/data/fonts/raleway/default.nix
new file mode 100644
index 000000000000..c8a91165f30a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/raleway/default.nix
@@ -0,0 +1,40 @@
+{ lib, fetchzip, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "raleway";
+  version = "4.101";
+
+  src = fetchzip {
+    url = "https://github.com/theleagueof/raleway/releases/download/${finalAttrs.version}/Raleway-${finalAttrs.version}.tar.xz";
+    hash = "sha256-itNHIMoRjiaqYAJoDNetkCquv47VAfel8MAzwsd//Ww=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/static/TTF/*.ttf
+    install -D -m444 -t $out/share/fonts/opentype $src/static/OTF/*.otf
+
+    runHook postInstall
+  '';
+
+  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, and
+      most recently — a variable version.
+
+      It 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://www.theleagueofmoveabletype.com/raleway";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/recursive/default.nix b/nixpkgs/pkgs/data/fonts/recursive/default.nix
new file mode 100644
index 000000000000..c01bd294ea37
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/recursive/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "recursive";
+  version = "1.085";
+
+  src = fetchzip {
+    url = "https://github.com/arrowtype/recursive/releases/download/v${version}/ArrowType-Recursive-${version}.zip";
+    sha256 = "sha256-hnGnKnRoQN8vFStW8TjLrrTL1dWsthUEWxfaGF0b0vM=";
+  };
+
+  installPhase = ''
+    install -D -t $out/share/fonts/opentype/ $(find $src -type f -name '*.otf')
+    install -D -t $out/share/fonts/truetype/ $(find $src -type f -name '*.ttf')
+  '';
+
+
+  meta = with lib; {
+    homepage = "https://recursive.design/";
+    description = "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..76782d510509
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/redhat-official/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "redhat-official";
+  version = "4.0.3";
+
+  src = fetchFromGitHub {
+    owner = "RedHatOfficial";
+    repo = "RedHatFont";
+    rev = version;
+    hash = "sha256-r43KtMIedNitb5Arg8fTGB3hrRZoA8oUHVEL24k4LeQ=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    for kind in mono proportional; do
+      install -m444 -Dt $out/share/fonts/opentype fonts/$kind/static/otf/*.otf
+      install -m444 -Dt $out/share/fonts/truetype fonts/$kind/static/ttf/*.ttf
+    done
+
+    runHook postInstall
+  '';
+
+  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..114061db1b23
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/rhodium-libre/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "RhodiumLibre";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "DunwichType";
+    repo = pname;
+    rev = version;
+    hash = "sha256-YCQvUdjEAj4G71WCRCM0+NwiqRqwt1Ggeg9jb/oWEsY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm444 -t $out/share/fonts/opentype/ RhodiumLibre-Regular.otf
+    install -Dm444 -t $out/share/fonts/truetype/ RhodiumLibre-Regular.ttf
+
+    runHook postInstall
+  '';
+
+  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 = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ricty/default.nix b/nixpkgs/pkgs/data/fonts/ricty/default.nix
new file mode 100644
index 000000000000..7c1c6d358736
--- /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 = "https://rictyfonts.github.io/files/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 = "High-quality Japanese font based on Inconsolata and Migu 1M";
+    homepage = "https://rictyfonts.github.io";
+    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..ad1b45061880
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/rictydiminished-with-firacode/default.nix
@@ -0,0 +1,49 @@
+{ lib, stdenv, fetchFromGitHub, fontforge, python3 }:
+
+stdenv.mkDerivation rec {
+  pname = "rictydiminished-with-firacode";
+  version = "1.2.2";
+
+  src = fetchFromGitHub {
+    owner = "hakatashi";
+    repo = "RictyDiminished-with-FiraCode";
+    rev = version;
+    sha256 = "sha256-twh3yLAM4MUjWzSDNmo8gNIRf01hieXeOS334sNdFk4=";
+    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 = "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..5d7cc57a4b43
--- /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-serif/default.nix b/nixpkgs/pkgs/data/fonts/roboto-serif/default.nix
new file mode 100644
index 000000000000..ba8aa7a831e0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/roboto-serif/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenvNoCC
+, fetchurl
+, unzip
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "roboto-serif";
+  version = "1.008";
+
+  src = fetchurl {
+    url = "https://github.com/googlefonts/roboto-serif/releases/download/v${version}/RobotoSerifFonts-v${version}.zip";
+    hash = "sha256-Nm9DcxL0CgA51nGeZJPWSCipgqwnNPlhj0wHyGhLaYQ=";
+  };
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [
+    unzip
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 variable/*.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "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.
+    '';
+    homepage = "https://github.com/googlefonts/roboto-serif";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ wegank ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/roboto-slab/default.nix b/nixpkgs/pkgs/data/fonts/roboto-slab/default.nix
new file mode 100644
index 000000000000..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..b9e287945a4c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/roboto/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "roboto";
+  version = "2.138";
+
+  src = fetchzip {
+    url = "https://github.com/google/roboto/releases/download/v${version}/roboto-unhinted.zip";
+    stripRoot = false;
+    hash = "sha256-ue3PUZinBpcYgSho1Zrw1KHl7gc/GlN1GhWFk6g5QXE=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = "https://github.com/google/roboto";
+    description = "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..b314fd45eef8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/rounded-mgenplus/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenvNoCC, fetchurl, p7zip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "rounded-mgenplus";
+  version = "20150602";
+
+  src = fetchurl {
+    url = "https://osdn.jp/downloads/users/8/8598/${pname}-${version}.7z";
+    hash = "sha256-7OpnZJc9k5NiOPHAbtJGMQvsMg9j81DCvbfo0f7uJcw=";
+  };
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [ p7zip ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m 444 -D -t $out/share/fonts/${pname} ${pname}-*.ttf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "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..efaf1d6ff242
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/route159/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+let
+  majorVersion = "1";
+  minorVersion = "10";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "route159";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-1InyBW1LGbp/IU/ql9mvT14W3MTxJdWThFwRH6VHpTU=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
+    description = "Weighted sans serif font";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars minijackson ];
+    license = licenses.ofl;
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/rubik/default.nix b/nixpkgs/pkgs/data/fonts/rubik/default.nix
new file mode 100644
index 000000000000..d77753f515de
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/rubik/default.nix
@@ -0,0 +1,103 @@
+{ stdenv, lib, fetchurl }:
+let
+  # Latest commit touching the rubik tree
+  commit = "054aa9d546cd6308f8ff7139b332490e0967aebe";
+in
+stdenv.mkDerivation {
+  pname = "rubik";
+  version = "2.200";
+
+  srcs = [
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-Black.ttf";
+      sha256 = "0h4mxqz0b5as7g964bv98aanaghp4wgs2g5wnf7apxnd2fng14dn";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-BlackItalic.ttf";
+      sha256 = "0x8j3fwavkf1jf7s97ncvs0jk463v1fyajcxqxvv7lpk55sjnbpy";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-Bold.ttf";
+      sha256 = "0prjqdbdpnhwr66gjw9mc1590gmjl7fir8wnanzch6arvngmxaj9";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-BoldItalic.ttf";
+      sha256 = "1zyl55fkjr61k6yfvgi0cr2iz4s0kkv3mkjpdmpla9jnk10rd8lm";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-ExtraBold.ttf";
+      sha256 = "0vi01lc2dadgmw5z26nkfzn7vl3lsd0flhqqfp40nn8jvpdkb2mq";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-ExtraBoldItalic.ttf";
+      sha256 = "0ldcszzzrc44gldflman7kcfk38x77grjb3zjvxjvgn875ggwabk";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-Italic.ttf";
+      sha256 = "09x7fh6ad4w6027410vhkvisgy8vqm2mzdsc19z3szlrxi0gl0rx";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-Light.ttf";
+      sha256 = "19a6k0pprcra6nxk3l0k6wkg9g0qn5h1v71rw2m8im64kyjx4qpf";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-LightItalic.ttf";
+      sha256 = "0r9hbh9xnbp0584vjiiq72583j1ai3dw93gfy823c736y6bk0j2m";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-Medium.ttf";
+      sha256 = "01nky9la4qjd80dy200j8l7zl0r2h9zw90k7aghzlb5abk4i3zvf";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-MediumItalic.ttf";
+      sha256 = "1i81x9h2cr65bj85z5b2mki59532nvlbh92wb84zfhfdz97s30cq";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-Regular.ttf";
+      sha256 = "1vk4n6yc4x1vlwfrp26jhagyl5l86jwa4lalccc320crrwqfc521";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-SemiBold.ttf";
+      sha256 = "0blmy1ywsf9hr1a66cl12bjn32i072w6ncvsir0s5smm2c0gksvb";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-SemiBoldItalic.ttf";
+      sha256 = "1sj22d3jrlxl6ka0naf5nby3k0i7pzadk5b8xgdhcslwijwiib3y";
+    })
+  ];
+
+  sourceRoot = ".";
+
+  unpackCmd = ''
+    ttfName=$(basename $(stripHash $curSrc))
+    cp $curSrc ./$ttfName
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp -a *.ttf $out/share/fonts/truetype/
+  '';
+
+  meta = with lib; {
+    homepage = "https://fonts.google.com/specimen/Rubik";
+    description = "Rubik Font - is a 5 weight Roman + Italic family";
+    longDescription = ''
+      The Rubik Fonts project was initiated as part of the Chrome CubeLab
+      project.
+
+      Rubik is a 5 weight Roman + Italic family.
+
+      Rubik supports the Latin, Cyrillic and Hebrew scripts. The Latin and Cyrillic
+      were designed by Philipp Hubert and Sebastian Fischer at Hubert Fischer.
+
+      The Hebrew was initially designed by Philipp and Sebastian, and then revised by
+      type designer and Hebrew native reader Meir Sadan to adjust proportions,
+      spacing and other design details.
+
+      Cyrillic was initially designed by Philipp and Sebastian, and then revised and
+      expanded by Cyreal Fonts Team (Alexei Vanyashin and Nikita Kanarev). Existing
+      glyphs were improved, and glyph set was expanded to GF Cyrillic Plus.
+    '';
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ruwudu/default.nix b/nixpkgs/pkgs/data/fonts/ruwudu/default.nix
new file mode 100644
index 000000000000..025c0a2ece43
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ruwudu/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "ruwudu";
+  version = "3.000";
+
+  src = fetchzip {
+    url = "https://software.sil.org/downloads/r/ruwudu/Ruwudu-${version}.zip";
+    hash = "sha256-HuuH6AWD5gym73zSsuQdQD901J6r3PkUmUTtnRxYRyg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/{doc/${pname},fonts/truetype}
+    mv *.ttf $out/share/fonts/truetype/
+    mv *.txt documentation $out/share/doc/${pname}/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://software.sil.org/ruwudu/";
+    description = "Arabic script font for a style of writing used in Niger, West Africa";
+    license = licenses.ofl;
+    maintainers = [ maintainers.vbgl ];
+    platforms = platforms.all;
+  };
+}
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..7fc48704e798
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sahel-fonts/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "sahel-fonts";
+  version = "3.4.0";
+
+  src = fetchFromGitHub {
+    owner = "rastikerdar";
+    repo = "sahel-font";
+    rev = "v${version}";
+    hash = "sha256-U4tIICXZFK9pk7zdzRwBPIPYFUlYXPSebnItUJUgGJY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/sahel-fonts {} \;
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/sahel-font";
+    description = "Persian (farsi) Font - فونت (قلم) فارسی ساحل";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ ];
+  };
+}
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..2f36075bad93
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/samim-fonts/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "samim-fonts";
+  version = "4.0.5";
+
+  src = fetchFromGitHub {
+    owner = "rastikerdar";
+    repo = "samim-font";
+    rev = "v${version}";
+    hash = "sha256-DVBMsNOVAVwzlZ3cDus/3CSsC05bLZalQ2KeueEvwXs=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/samim-fonts {} \;
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/samim-font";
+    description = "Persian (Farsi) Font - فونت (قلم) فارسی صمیم";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/sampradaya/default.nix b/nixpkgs/pkgs/data/fonts/sampradaya/default.nix
new file mode 100644
index 000000000000..8c0545d2c7fe
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sampradaya/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "sampradaya";
+  version = "0.5.0";
+
+  src = fetchurl {
+    url = "https://github.com/deepestblue/sampradaya/releases/download/v${version}/Sampradaya.ttf";
+    hash = "sha256-ygKMNzHvbLR2A5HHrfY2C9ZUg0yng+JL3cyg6sBKqeQ=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 $src $out/share/fonts/truetype/Sampradaya.ttf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/deepestblue/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/sarabun/default.nix b/nixpkgs/pkgs/data/fonts/sarabun/default.nix
new file mode 100644
index 000000000000..3e4fa018e712
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sarabun/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "sarabun";
+  version = "unstable-2018-08-24";
+
+  src = fetchFromGitHub {
+    owner = "cadsondemak";
+    repo = pname;
+    rev = "854cdbc6afa002ff8c2ce6aa7b86f99c7f71c9eb";
+    sha256 = "jcSQ72WK0GucZPgG7IQKrKzCOEbGgbQVl21RIKSF6A0=";
+  };
+
+  outputs = [ "out" "doc" ];
+
+  buildPhase = ''
+    mkdir -p $doc/${pname} $out/share/fonts/truetype
+
+    cp -r $src/OFL.txt $src/docs/* $doc/${pname}
+    cp $src/fonts/*.ttf $out/share/fonts/truetype
+  '';
+
+  meta = {
+    homepage = "https://cadsondemak.github.io/${pname}/";
+    description = "Slightly-condensed looped Thai and sans serif Latin typeface for communications";
+    longDescription = ''
+      The most popular typeface from the 13 fonts from SIPA Thailand’s National
+      fonts project. Sarabun was designed by Suppakit Chalermlarp to be a
+      serious text face. Great choice for a long reading formal text. This font
+      was selected by the royal Thai government to be the official typeface for
+      documentation purpose. It was also adopted by many private organizations
+      to be used as a communication font. Sarabun has a slightly condensed
+      proportion which fits perfectly with Thai legibility. It also carries a
+      neutral Thai traditional loop design which can easily fit in with any
+      occasion. Probably one of the most today’s familiar Thai loop typefaces.
+    '';
+    license = lib.licenses.ofl;
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [ toastal ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/scheherazade/default.nix b/nixpkgs/pkgs/data/fonts/scheherazade/default.nix
new file mode 100644
index 000000000000..81adc546e444
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/scheherazade/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenvNoCC, fetchzip, version ? "4.000" }:
+
+let
+  new = lib.versionAtLeast version "3.000";
+  hash = {
+    "2.100" = "sha256-d2UyOOOnmE1afCwyIrM1bL3lQC7XRwh03hzetk/4V30=";
+    "3.300" = "sha256-LaaA6DWAE2dcwVVX4go9cJaiuwI6efYbPk82ym3W3IY=";
+    "4.000" = "sha256-FhgHlHCfojIl3Y11EDYhNTmLYwQ60OrwnA9nbZbZGJE=";
+  }."${version}";
+  pname = "scheherazade${lib.optionalString new "-new"}";
+in
+stdenvNoCC.mkDerivation rec {
+  inherit pname version;
+
+  src = fetchzip {
+    url = "http://software.sil.org/downloads/r/scheherazade/Scheherazade${lib.optionalString new "New"}-${version}.zip";
+    inherit hash;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 FONTLOG.txt README.txt -t $out/share/doc
+    cp -r documentation $out/share/doc/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://software.sil.org/scheherazade/";
+    description = "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 "14.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..1b57c9f286d3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/scientifica/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "scientifica";
+  version = "2.3";
+
+  src = fetchurl {
+    url = "https://github.com/NerdyPepper/scientifica/releases/download/v${version}/scientifica.tar";
+    hash = "sha256-8IV4aaDoRsbxddy4U90fEZ6henUhjmO38HNtWo4ein8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    mkdir -p $out/share/fonts/misc
+    install ttf/*.ttf $out/share/fonts/truetype
+    install otb/*.otb $out/share/fonts/misc
+    install bdf/*.bdf $out/share/fonts/misc
+
+    runHook postInstall
+  '';
+
+  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; [ moni ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/seshat/default.nix b/nixpkgs/pkgs/data/fonts/seshat/default.nix
new file mode 100644
index 000000000000..e86b0539c927
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/seshat/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "100";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "seshat";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-XgprDhzAbcTzZw2QOwpCnzusYheYmSlM+ApU+Y0wO2Q=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${finalAttrs.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 minijackson ];
+    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..fd8f146eb355
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/shabnam-fonts/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "shabnam-fonts";
+  version = "5.0.1";
+
+  src = fetchFromGitHub {
+    owner = "rastikerdar";
+    repo = "shabnam-font";
+    rev = "v${version}";
+    hash = "sha256-H03GTKRVPiwU4edkr4x5upW4JCy6320Lo+cKK9FRMQs=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/shabnam-fonts {} \;
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/shabnam-font";
+    description = "Persian (Farsi) Font - فونت (قلم) فارسی شبنم";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/shrikhand/default.nix b/nixpkgs/pkgs/data/fonts/shrikhand/default.nix
new file mode 100644
index 000000000000..ce3423003dbd
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/shrikhand/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation {
+  pname = "shrikhand";
+  version = "unstable-2016-03-03";
+
+  src = fetchurl {
+    url = "https://github.com/jonpinhorn/shrikhand/raw/c11c9b0720fba977fad7cb4f339ebacdba1d1394/build/Shrikhand-Regular.ttf";
+    hash = "sha256-wHP1Bwu5Yw3a+RwDOHrmthsnuvwyCV4l6ma5EjA6EMA=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m644 $src $out/share/fonts/truetype/Shrikhand-Regular.ttf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://jonpinhorn.github.io/shrikhand/";
+    description = "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..0ae5914eb131
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/siji/default.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv, fetchFromGitHub, libfaketime, xorg }:
+
+stdenv.mkDerivation rec {
+  pname = "siji";
+  version = "2016-05-13";
+
+  src = fetchFromGitHub {
+    owner = "stark";
+    repo = "siji";
+    rev = "3cbb7fe938c33aaadbb657803ea5946e5157d6e2";
+    sha256 = "1408g4nxwdd682vjqpmgv0cp0bfnzzzwls62cjs9zrds16xa9dpf";
+  };
+
+  nativeBuildInputs = [ libfaketime xorg.fonttosfnt xorg.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 = "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/sil-abyssinica/default.nix b/nixpkgs/pkgs/data/fonts/sil-abyssinica/default.nix
new file mode 100644
index 000000000000..d0571fae0bfd
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sil-abyssinica/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "sil-abyssinica";
+  version = "2.201";
+
+  src = fetchzip {
+    url = "https://software.sil.org/downloads/r/abyssinica/AbyssinicaSIL-${version}.zip";
+    hash = "sha256-DJWp3T9uBLnztSq9r5YCSWaBjIK/0Aljg1IiU0FLrdE=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/{fonts/truetype,doc/${pname}-${version}}
+    mv *.ttf $out/share/fonts/truetype/
+    mv *.txt documentation $out/share/doc/${pname}-${version}/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Unicode font for Ethiopian and Erythrean scripts (Amharic et al.)";
+    homepage = "https://software.sil.org/abyssinica/";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ serge ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/sil-padauk/default.nix b/nixpkgs/pkgs/data/fonts/sil-padauk/default.nix
new file mode 100644
index 000000000000..f3df1d1febe2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sil-padauk/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "sil-padauk";
+  version = "5.001";
+
+  src = fetchzip {
+    url = "https://software.sil.org/downloads/r/padauk/Padauk-${version}.zip";
+    hash = "sha256-rLzuDUd+idjTN0xQxblXQ9V2rQtJPN2EtWGmTRY1R7U=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    mv *.ttf $out/share/fonts/truetype/
+    mkdir -p $out/share/doc/${pname}-${version}
+    mv *.txt documentation/ $out/share/doc/${pname}-${version}/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Unicode-based font family with broad support for writing systems that use the Myanmar script";
+    homepage = "https://software.sil.org/padauk";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ serge ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/sitelen-seli-kiwen/default.nix b/nixpkgs/pkgs/data/fonts/sitelen-seli-kiwen/default.nix
new file mode 100644
index 000000000000..363ce2da5961
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sitelen-seli-kiwen/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation {
+  pname = "sitelen-seli-kiwen";
+  version = "unstable-2022-06-28";
+
+  src = fetchzip {
+    url = "https://raw.githubusercontent.com/kreativekorp/sitelen-seli-kiwen/69132c99873894746c9710707aaeb2cea2609709/sitelenselikiwen.zip";
+    stripRoot = false;
+    hash = "sha256-viOLAj9Rn60bcQkkDHVuKHCE8KPnIz/L0hIJhum1SSQ=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/{opentype,truetype}
+    mv *.eot $out/share/fonts/opentype/
+    mv *.ttf $out/share/fonts/truetype/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Handwritten sitelen pona font supporting UCSUR";
+    homepage = "https://www.kreativekorp.com/software/fonts/sitelenselikiwen/";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ somasis ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/smc-chilanka/default.nix b/nixpkgs/pkgs/data/fonts/smc-chilanka/default.nix
new file mode 100644
index 000000000000..f5e5ee2cb5d8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/smc-chilanka/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenvNoCC, fetchFromGitLab, python3Packages, gnumake, truetype ? false }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "chilanka";
+  version = "1.7";
+
+  src = fetchFromGitLab {
+    group = "smc";
+    owner = "fonts";
+    repo = "chilanka";
+    rev = "Version${version}";
+    hash = "sha256-VvotRUQks8vUqJOcYHqy6cuwaAKYg4OqtiAjaBIdBRk=";
+  };
+
+  nativeBuildInputs = [ gnumake python3Packages.fontmake ];
+
+  buildFlags = [ "otf" ] ++ lib.optional truetype "ttf";
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm444 -t $out/share/fonts/opentype build/*.otf
+    ${lib.optionalString truetype "install -Dm444 -t $out/share/fonts/truetype build/*.ttf"}
+
+    install -Dm444 -t $out/etc/fonts/conf.d *.conf
+
+    install -Dm644 -t $out/share/doc/${pname}-${version} OFL.txt FONTLOG.md
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://smc.org.in/fonts/chilanka";
+    description = "Chilanka Malayalam Typeface";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ adtya ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/smiley-sans/default.nix b/nixpkgs/pkgs/data/fonts/smiley-sans/default.nix
new file mode 100644
index 000000000000..7a863c3d10d7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/smiley-sans/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenvNoCC, fetchzip, nix-update-script }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "smiley-sans";
+  version = "2.0.1";
+
+  src = fetchzip {
+    url = "https://github.com/atelier-anchor/smiley-sans/releases/download/v${version}/smiley-sans-v${version}.zip";
+    sha256 = "sha256-p6DwX5MBPemAfV99L9ayLkEWro31ip4tf+wBQr8mkbs=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm644 -t $out/share/fonts/opentype *.otf
+    install -Dm644 -t $out/share/fonts/truetype *.ttf
+    install -Dm644 -t $out/share/fonts/woff2 *.woff2
+    runHook postInstall
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = with lib; {
+    description = "Condensed and oblique Chinese typeface seeking a visual balance between the humanist and the geometric";
+    homepage = "https://atelier-anchor.com/typefaces/smiley-sans/";
+    changelog = "https://github.com/atelier-anchor/smiley-sans/blob/main/CHANGELOG.md";
+    license = licenses.ofl;
+    maintainers = [];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/sniglet/default.nix b/nixpkgs/pkgs/data/fonts/sniglet/default.nix
new file mode 100644
index 000000000000..70cfd227d045
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sniglet/default.nix
@@ -0,0 +1,33 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "sniglet";
+  version = "2011-05-25";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "5c6b0860bdd0d8c4f16222e4de3918c384db17c4";
+    hash = "sha256-fLT2hZT9o1Ka30EB/6oWwmalhVJ+swXLRFG99yRWd2c=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/*.ttf
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Fun rounded display face that’s great for headlines";
+    longDescription = ''
+      A rounded display face that’s great for headlines. It comes with a full
+      character set, so you can type in Icelandic or even French!
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/sniglet";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/sorts-mill-goudy/default.nix b/nixpkgs/pkgs/data/fonts/sorts-mill-goudy/default.nix
new file mode 100644
index 000000000000..55acaafb43af
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sorts-mill-goudy/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "sorts-mill-goudy";
+  version = "2011-05-25";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "06072890c7b05f274215a24f17449655ccb2c8af";
+    hash = "sha256-NEfLBJatUmdUL5gJEimJHZfOd1OtI7pxTN97eWMODyM=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/*.ttf
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "‘revival’ of Goudy Oldstyle and Italic";
+    longDescription = ''
+      A 'revival' of Goudy Oldstyle and Italic, with features including small
+      capitals (in the roman only), oldstyle and lining figures, superscripts
+      and subscripts, fractions, ligatures, class-based kerning, case-sensitive
+      forms, and capital spacing. There is support for many languages using
+      latin scripts.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/sorts-mill-goudy";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
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..4d3f5155929b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-code-pro/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "source-code-pro";
+  version = "2.042";
+
+  src = fetchzip {
+    url = "https://github.com/adobe-fonts/source-code-pro/releases/download/${version}R-u%2F1.062R-i%2F1.026R-vf/OTF-source-code-pro-${version}R-u_1.062R-i.zip";
+    stripRoot = false;
+    hash = "sha256-+BnfmD+AjObSoVxPvFAqbnMD2j5qf2YmbXGQtXoaiy0=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 OTF/*.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Monospaced font family for user interface and 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..5c00f564320b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-han-code-jp/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "source-han-code-jp";
+  version = "2.012";
+
+  src = fetchzip {
+    url = "https://github.com/adobe-fonts/${pname}/archive/${version}R.zip";
+    hash = "sha256-ljO/1/CaE9Yj+AN5xxlIr30/nV/axGQPO0fGACAZGCQ=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm444 OTF/*.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "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..2f177160da99
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-han/default.nix
@@ -0,0 +1,133 @@
+{ lib
+, stdenvNoCC
+, fetchurl
+, unzip
+}:
+
+let
+  makeSuperOTC =
+    { family
+    , description
+    , rev
+    , hash
+    , zip ? ""
+    , prefix ? ""
+    }:
+    let
+      Family =
+        lib.toUpper (lib.substring 0 1 family) +
+        lib.substring 1 (lib.stringLength family) family;
+    in
+    stdenvNoCC.mkDerivation rec {
+      pname = "source-han-${family}";
+      version = lib.removeSuffix "R" rev;
+
+      src = fetchurl {
+        url = "https://github.com/adobe-fonts/source-han-${family}/releases/download/${rev}/${prefix}SourceHan${Family}.ttc${zip}";
+        inherit hash;
+      };
+
+      nativeBuildInputs = lib.optionals (zip == ".zip") [ unzip ];
+
+      unpackPhase = lib.optionalString (zip == "") ''
+        cp $src SourceHan${Family}.ttc${zip}
+      '' + lib.optionalString (zip == ".zip") ''
+        unzip $src
+      '';
+
+      installPhase = ''
+        runHook preInstall
+
+        install -Dm444 *.ttc -t $out/share/fonts/opentype/${pname}
+
+        runHook postInstall
+      '';
+
+      meta = {
+        description = "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 ];
+      };
+    };
+
+  makeVariable =
+    { family
+    , version
+    , hash
+    , format
+    }:
+    let
+      Family =
+        lib.toUpper (lib.substring 0 1 family) +
+        lib.substring 1 (lib.stringLength family) family;
+    in
+    fetchurl {
+      pname = "source-han-${family}-vf-${format}";
+      inherit version hash;
+      url = "https://raw.githubusercontent.com/adobe-fonts/source-han-${family}/${version}R/Variable/OTC/SourceHan${Family}-VF.${format}.ttc";
+      recursiveHash = true;
+      downloadToTemp = true;
+      postFetch = "install -Dm444 $downloadedFile $out/share/fonts/variable/SourceHan${Family}-VF.${format}.ttc";
+
+      meta = {
+        description = "Open source Pan-CJK ${Family} typeface";
+        homepage = "https://github.com/adobe-fonts/source-han-${family}";
+        license = lib.licenses.ofl;
+        maintainers = with lib.maintainers; [ taku0 emily ];
+      };
+    };
+in
+{
+  sans = makeSuperOTC {
+    family = "sans";
+    description = "sans-serif";
+    rev = "2.004R";
+    hash = "sha256-b1kRiprdpaf+Tp5rtTgwn34dPFQR+anTKvMqeVAbfk8=";
+    zip = ".zip";
+  };
+
+  serif = makeSuperOTC {
+    family = "serif";
+    description = "serif";
+    rev = "2.001R";
+    hash = "sha256-ULdrtPLtzsgfZEHWkr4ebC/FSROHBWJJVD+PzdIJ6Og=";
+    zip = ".zip";
+    prefix = "01_";
+  };
+
+  mono = makeSuperOTC {
+    family = "mono";
+    description = "monospaced";
+    rev = "1.002";
+    hash = "sha256-DBkkSN6QhI8R64M2h2iDqaNtxluJZeSJYAz8x6ZzWME=";
+  };
+
+  sans-vf-otf = makeVariable {
+    family = "sans";
+    version = "2.004";
+    hash = "sha256-V7PE09c7h4RDS8Ij4PSI36Gy+LM+PVDi73Rcs+4DfHo=";
+    format = "otf";
+  };
+
+  sans-vf-ttf = makeVariable {
+    family = "sans";
+    version = "2.004";
+    hash = "sha256-mXTG/d30gUxzxkJpaH4vOawRXMSxxTXlHCvHEsfGqbc=";
+    format = "ttf";
+  };
+
+  serif-vf-otf = makeVariable {
+    family = "serif";
+    version = "2.002";
+    hash = "sha256-8sD4bU6w7HBm4vBuPAjcjpxN2rtEJugAw+X0bAOcmjA=";
+    format = "otf";
+  };
+
+  serif-vf-ttf = makeVariable {
+    family = "serif";
+    version = "2.002";
+    hash = "sha256-dmTZFRsD55WCOg2+sqd8bkmTSnSNn5xUYf0PgzIvzww=";
+    format = "ttf";
+  };
+}
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..2a2d2c70f289
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-sans-pro/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+# Source Sans Pro got renamed to Source Sans 3 (see
+# https://github.com/adobe-fonts/source-sans/issues/192). This is the
+# last version named "Pro". It is useful for backward compatibility
+# with older documents/templates/etc.
+
+stdenvNoCC.mkDerivation rec {
+  name = "source-sans-pro-${version}";
+  version = "3.006";
+
+  src = fetchzip {
+    url = "https://github.com/adobe-fonts/source-sans/archive/${version}R.zip";
+    hash = "sha256-1Savijgq3INuUN89MR0t748HOuGseXVw5Kd4hYwuVas=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm444 OTF/*.otf -t $out/share/fonts/opentype
+    install -Dm444 TTF/*.ttf -t $out/share/fonts/truetype
+    install -Dm444 VAR/*.otf -t $out/share/fonts/variable
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://adobe-fonts.github.io/source-sans/";
+    description = "Sans serif font family for user interface environments";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ttuegel ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/source-sans/default.nix b/nixpkgs/pkgs/data/fonts/source-sans/default.nix
new file mode 100644
index 000000000000..a3e2d4309066
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-sans/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "source-sans";
+  version = "3.052";
+
+  src = fetchzip {
+    url = "https://github.com/adobe-fonts/source-sans/archive/${version}R.zip";
+    hash = "sha256-yzbYy/ZS1GGlgJW+ARVWF4tjFqmMq7x+YqSQnojtQBs=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm444 OTF/*.otf -t $out/share/fonts/opentype
+    install -Dm444 TTF/*.ttf -t $out/share/fonts/truetype
+    install -Dm444 VF/*.otf -t $out/share/fonts/variable
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://adobe-fonts.github.io/source-sans/";
+    description = "Sans serif font family for user interface environments";
+    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..698694faf507
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-serif-pro/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+# Source Serif Pro got renamed to Source Serif 4 (see
+# https://github.com/adobe-fonts/source-serif/issues/77). This is the
+# last version named "Pro". It is useful for backward compatibility
+# with older documents/templates/etc.
+
+stdenvNoCC.mkDerivation rec {
+  pname = "source-serif-pro";
+  version = "3.001";
+
+  src = fetchzip {
+    url = "https://github.com/adobe-fonts/source-serif/releases/download/${version}R/source-serif-pro-${version}R.zip";
+    hash = "sha256-chXoaPOACtQ7wz/etElXuIJH/yvUsP03WlxeCfqWF/w=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm444 OTF/*.otf -t $out/share/fonts/opentype
+    install -Dm444 TTF/*.ttf -t $out/share/fonts/truetype
+    install -Dm444 VAR/*.otf -t $out/share/fonts/variable
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://adobe-fonts.github.io/source-serif/";
+    description = "Typeface for setting text in many sizes, weights, and languages. Designed to complement Source Sans";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ttuegel ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/source-serif/default.nix b/nixpkgs/pkgs/data/fonts/source-serif/default.nix
new file mode 100644
index 000000000000..dd129b10faab
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-serif/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "source-serif";
+  version = "4.005";
+
+  src = fetchzip {
+    url = "https://github.com/adobe-fonts/source-serif/archive/refs/tags/${version}R.zip";
+    hash = "sha256-djeRJWcKqirkHus52JSeZJXeB7yMTnUXpkPxyzgRC04=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm444 OTF/*.otf -t $out/share/fonts/opentype
+    install -Dm444 TTF/*.ttf -t $out/share/fonts/truetype
+    install -Dm444 VAR/*.otf -t $out/share/fonts/variable
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://adobe-fonts.github.io/source-serif/";
+    description = "Typeface for setting text in many sizes, weights, and languages. Designed to complement Source Sans";
+    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..ef9e2956b924
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/spleen/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenvNoCC, fetchurl, xorg }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "spleen";
+  version = "2.1.0";
+
+  src = fetchurl {
+    url = "https://github.com/fcambus/spleen/releases/download/${version}/spleen-${version}.tar.gz";
+    hash = "sha256-i0fFbxpuuFj7z540UwVXQEsC+7NFXjjmT7hEc/0MNy8=";
+  };
+
+  nativeBuildInputs = [ xorg.mkfontscale ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    d="$out/share/fonts/misc"
+    install -D -m 644 *.{pcf,bdf,otf} -t "$d"
+    install -D -m 644 *.psfu -t "$out/share/consolefonts"
+    install -m644 fonts.alias-spleen $d/fonts.alias
+
+    # create fonts.dir so NixOS xorg module adds to fp
+    mkfontdir "$d"
+
+    runHook postInstall
+  '';
+
+  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..c5505b7a7948
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/stix-otf/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "stix-otf";
+  version = "1.1.1";
+
+  src = fetchzip {
+    url = "https://sources.debian.org/src/fonts-stix/1.1.1-4.1/STIXv${version}-word.zip";
+    stripRoot = false;
+    hash = "sha256-M3STue+RPHi8JgZZupV0dVLZYKBiFutbBOlanuKkD08=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 Fonts/STIX-Word/*.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  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..86ceb388f86a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/stix-two/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "stix-two";
+  version = "2.13";
+
+  src = fetchzip {
+    url = "https://github.com/stipub/stixfonts/raw/v${version}/zipfiles/STIX${builtins.replaceStrings [ "." ] [ "_" ] version}-all.zip";
+    stripRoot = false;
+    hash = "sha256-hfQmrw7HjlhQSA0rVTs84i3j3iMVR0k7tCRBcB6hEpU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 */*.otf -t $out/share/fonts/opentype
+    install -Dm644 */*.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  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..5678855ab80a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sudo/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "sudo-font";
+  version = "1.2";
+
+  src = fetchzip {
+    url = "https://github.com/jenskutilek/sudo-font/releases/download/v${version}/sudo.zip";
+    hash = "sha256-8ucMeKbnrYtk2/ZeYxzp8MA4Ss952/opD8GpB01Ze/I=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Font for programmers and command line users";
+    homepage = "https://www.kutilek.de/sudo-font/";
+    changelog = "https://github.com/jenskutilek/sudo-font/raw/v${version}/sudo/FONTLOG.txt";
+    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..4e4c689b6ac6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tai-languages/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+{
+  tai-ahom = stdenvNoCC.mkDerivation rec {
+    pname = "tai-ahom";
+    version = "unstable-2015-07-06";
+
+    src = fetchurl {
+      url = "https://github.com/enabling-languages/tai-languages/raw/b57a3ea4589af69bb8e87c6c4bb7cd367b52f0b7/ahom/.fonts/ttf/.original/AhomUnicode_FromMartin.ttf";
+      hash = "sha256-U1vcVf/VgXhvK1f2Iw2JKkd2EzJgz7KbHAwnUanX8n4=";
+    };
+
+    dontUnpack = true;
+
+    installPhase = ''
+      runHook preInstall
+
+      install -Dm644 $src $out/share/fonts/truetype/AhomUnicode.ttf
+
+      runHook postInstall
+    '';
+
+    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/takao/default.nix b/nixpkgs/pkgs/data/fonts/takao/default.nix
new file mode 100644
index 000000000000..353287d4d77b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/takao/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "takao";
+  version = "00303.01";
+
+  src = fetchurl {
+    url = "mirror://ubuntu/pool/universe/f/fonts-${pname}/fonts-${pname}_${version}.orig.tar.gz";
+    hash = "sha256-0wjHNv1yStp0q9D0WfwjgUYoUKcCrXA5jFO8PEVgq5k=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts
+    cp *.ttf $out/share/fonts
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Japanese TrueType Gothic, P Gothic, Mincho, P Mincho fonts";
+    homepage = "https://launchpad.net/takao-fonts";
+    license = licenses.ipa;
+    maintainers = with lib.maintainers; [ serge ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/tamsyn/default.nix b/nixpkgs/pkgs/data/fonts/tamsyn/default.nix
new file mode 100644
index 000000000000..f99624f4a483
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tamsyn/default.nix
@@ -0,0 +1,50 @@
+{ lib, stdenv, fetchurl, fontforge, xorg }:
+
+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 xorg.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 = "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..e8706c1971c6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tamzen/default.nix
@@ -0,0 +1,37 @@
+{ fetchFromGitHub, xorg, lib, stdenv }:
+
+stdenv.mkDerivation rec {
+  pname = "tamzen-font";
+  version = "1.11.6";
+
+  src = fetchFromGitHub {
+    owner = "sunaku";
+    repo = "tamzen-font";
+    rev = "Tamzen-${version}";
+    sha256 = "sha256-W5Wqsm5rpzzcbJl2lv6ORAznaAwLcmJ2S6Qo2zIoq9I=";
+  };
+
+  nativeBuildInputs = [ xorg.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 programmatically 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..ecafc9572bd1
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tempora-lgc/default.nix
@@ -0,0 +1,41 @@
+{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;
+  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..9149c081d493
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tenderness/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "601";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "tenderness";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-bwJKW+rY7/r2pBCSA6HYlaRMsI/U8UdW2vV4tmYuJww=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
+    description = "Serif font designed by Sora Sagano with old-style figures";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars minijackson ];
+    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..eb6d139b33a9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/terminus-font-ttf/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "terminus-font-ttf";
+  version = "4.49.3";
+
+  src = fetchzip {
+    url = "https://files.ax86.net/terminus-ttf/files/${version}/terminus-ttf-${version}.zip";
+    hash = "sha256-dK7MH4I1RhsIGzcnRA+7f3P5oi9B63RA+uASVDNtxNI=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    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"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Clean fixed width TTF font";
+    longDescription = ''
+      Monospaced bitmap font designed for long work with computers
+      (TTF version, mainly for Java applications)
+    '';
+    homepage = "https://files.ax86.net/terminus-ttf";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/terminus-font/SOURCE_DATE_EPOCH-for-otb.patch b/nixpkgs/pkgs/data/fonts/terminus-font/SOURCE_DATE_EPOCH-for-otb.patch
new file mode 100644
index 000000000000..6154b8014759
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/terminus-font/SOURCE_DATE_EPOCH-for-otb.patch
@@ -0,0 +1,83 @@
+From 2f935030ddb834426da1180b768e6b1e71d0824a Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Sat, 9 Oct 2021 10:17:05 +0100
+Subject: [PATCH] terminus-font: bin/otb1cli.py: add support for
+ SOURCE_DATE_EPOCH
+
+NixOS (and a few other distributions) strive for bit-reproducible
+builds. terminus-font-4.49.1 fails reproducibility test due to
+timestamp embedding into .otb files. diffoscope says that two
+consecutive builds differ at file creation timestamp:
+
+ $ diffoscope '...-terminus-font-4.49.1' '...-terminus-font-4.49.1.check'
+ - ...-terminus-font-4.49.1/share/fonts/terminus/ter-u12b.otb
+ + ...-terminus-font-4.49.1.check/share/fonts/terminus/ter-u12b.otb
+  showttf {}
+ @@ -1,32 +1,32 @@
+  version=1, numtables=12, searchRange=128 entrySel=3 rangeshift=64
+  File Checksum =b1b0afba (should be 0xb1b0afba), diff=0
+  EBDT checksum=5263c696 actual=5263c696 diff=0 offset=204 len=23056
+  EBLC checksum=350f1222 actual=350f1222 diff=0 offset=23260 len=84
+  OS/2 checksum=8b4939dd actual=8b4939dd diff=0 offset=23344 len=96
+  cmap checksum=da4e56f3 actual=da4e56f3 diff=0 offset=23440 len=1220
+  glyf checksum=00000000 actual=00000000 diff=0 offset=24660 len=0
+ -head checksum=1cb1374e actual=9db28c18 diff=8103bb56 offset=24660 len=54
+ +head checksum=1cb528c7 actual=9dae9a9f diff=811bb258 offset=24660 len=54
+  hhea checksum=055706a2 actual=055706a2 diff=0 offset=24716 len=36
+  hmtx checksum=98000000 actual=98000000 diff=0 offset=24752 len=5424
+  loca checksum=00000000 actual=00000000 diff=0 offset=30176 len=2714
+  maxp checksum=058e0003 actual=058e0003 diff=0 offset=32892 len=32
+  name checksum=208d345e actual=208d345e diff=0 offset=32924 len=448
+  post checksum=ffd80056 actual=ffd80056 diff=0 offset=33372 len=32
+
+  HEAD table (at 24660)
+       Version=1
+       fontRevision=1
+ -     checksumAdj=810154ca
+ +     checksumAdj=80f971d8
+       magicNumber=5f0f3cf5 (0x5f0f3cf5, diff=0)
+       flags=20b baseline_at_0 lsb_at_0 ppem_to_int
+       unitsPerEm=1024
+       create[0]=0
+ -      create[1]=dd831dec
+ -     File created: Wed Oct  6 09:33:32 2021
+ +      create[1]=dd870f65
+ +     File created: Sat Oct  9 09:20:37 2021
+
+The change uses SOURCE_DATE_EPOCH environment variable to override
+on-disk timestamps:
+    https://reproducible-builds.org/docs/source-date-epoch/
+---
+ bin/otb1cli.py | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/bin/otb1cli.py b/bin/otb1cli.py
+index 92ab07b..847b570 100644
+--- a/bin/otb1cli.py
++++ b/bin/otb1cli.py
+@@ -17,6 +17,7 @@
+ #
+ 
+ from datetime import datetime, timezone
++import os
+ 
+ import fnutil
+ import fncli
+@@ -81,8 +82,12 @@ def main_program(nonopt, parsed):
+ 			try:
+ 				stat = ifs.fstat()
+ 				if stat:
+-					parsed.created = datetime.fromtimestamp(stat.st_ctime, timezone.utc)
+-					parsed.modified = datetime.fromtimestamp(stat.st_mtime, timezone.utc)
++					# Allow deterministic builds when SOURCE_DATE_EPOCH is set:
++					#  https://reproducible-builds.org/docs/source-date-epoch/
++					ct = int(os.environ.get('SOURCE_DATE_EPOCH', stat.st_ctime))
++					mt = int(os.environ.get('SOURCE_DATE_EPOCH', stat.st_mtime))
++					parsed.created = datetime.fromtimestamp(ct, timezone.utc)
++					parsed.modified = datetime.fromtimestamp(mt, timezone.utc)
+ 			except Exception as ex:
+ 				fnutil.warning(ifs.location(), str(ex))
+ 
+-- 
+2.33.0
+
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..760993dcd8cf
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/terminus-font/default.nix
@@ -0,0 +1,49 @@
+{ lib, stdenv, fetchurl, python3
+, bdftopcf, xorg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "terminus-font";
+  version = "4.49.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/${pname}/${pname}-${lib.versions.majorMinor version}/${pname}-${version}.tar.gz";
+    sha256 = "0yggffiplk22lgqklfmd2c0rw8gwchynjh5kz4bz8yv2h6vw2qfr";
+  };
+
+  patches = [ ./SOURCE_DATE_EPOCH-for-otb.patch ];
+
+  nativeBuildInputs =
+    [ python3 bdftopcf xorg.mkfontscale ];
+
+  enableParallelBuilding = true;
+
+  postPatch = ''
+    substituteInPlace Makefile --replace 'fc-cache' '#fc-cache'
+    substituteInPlace Makefile --replace 'gzip'     'gzip -n'
+  '';
+
+  installTargets = [ "install" "install-otb" "fontdir" ];
+  # fontdir depends on the previous two targets, but this is not known
+  # to make, so we need to disable parallelism:
+  enableParallelInstalling = false;
+
+  meta = with lib; {
+    description = "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 = "https://terminus-font.sourceforge.net/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ astsmtl ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/termsyn/default.nix b/nixpkgs/pkgs/data/fonts/termsyn/default.nix
new file mode 100644
index 000000000000..50450a04e2d8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/termsyn/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchurl, mkfontscale }:
+
+stdenv.mkDerivation rec {
+  pname = "termsyn";
+  version = "1.8.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/termsyn/termsyn-${version}.tar.gz";
+    sha256 = "15vsmc3nmzl0pkgdpr2993da7p38fiw2rvcg01pwldzmpqrmkpn6";
+  };
+
+  nativeBuildInputs = [ mkfontscale ];
+
+  installPhase = ''
+    install -m 644 -D *.pcf -t "$out/share/fonts"
+    install -m 644 -D *.psfu -t "$out/share/kbd/consolefonts"
+    mkfontdir "$out/share/fonts"
+  '';
+
+  meta = with lib; {
+    description = "Monospaced font based on terminus and tamsyn";
+    homepage = "https://sourceforge.net/projects/termsyn/";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ sophrosyne ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/tewi/default.nix b/nixpkgs/pkgs/data/fonts/tewi/default.nix
new file mode 100644
index 000000000000..d8906a2284da
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tewi/default.nix
@@ -0,0 +1,59 @@
+{ lib, stdenv, fetchFromGitHub, python3
+, bdftopcf, xorg
+, libfaketime,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "tewi-font";
+  version = "2.0.2";
+
+  src = fetchFromGitHub {
+    owner  = "lucy";
+    repo   = pname;
+    rev    = version;
+    sha256 = "1axv9bv10xlcmgfyjh3z5kn5fkg3m6n1kskcs5hvlmyb6m1zk91j";
+  };
+
+  nativeBuildInputs =
+    [ python3 bdftopcf xorg.mkfontscale
+      libfaketime xorg.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 = "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..c0ec9ee75202
--- /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; [ ];
+      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/the-neue-black/default.nix b/nixpkgs/pkgs/data/fonts/the-neue-black/default.nix
new file mode 100644
index 000000000000..3288925464fe
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/the-neue-black/default.nix
@@ -0,0 +1,33 @@
+{ lib, fetchzip, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "the-neue-black";
+  version = "1.007";
+
+  src = fetchzip {
+    url = "https://github.com/theleagueof/the-neue-black/releases/download/${finalAttrs.version}/TheNeueBlack-${finalAttrs.version}.tar.xz";
+    hash = "sha256-AsB6w1000xdl+pOPDXqqzQhru1T/VD0hIJ4gFec7mU4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/static/TTF/*.ttf
+    install -D -m444 -t $out/share/fonts/opentype $src/static/OTF/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Tré Seals’ first open-source font, a typeface based on the Chicago Freedom Movement";
+    longDescription = ''
+      The open-source release of The Neue Black is in partnership with designer
+      Tré Seals of Vocal Type Co. The Neue Black is a display sans serif with a
+      robust character set that has over 25 ligatures and various inktrap
+      alternates.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/the-neue-black";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/theano/default.nix b/nixpkgs/pkgs/data/fonts/theano/default.nix
new file mode 100644
index 000000000000..08f7c805eda4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/theano/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "theano";
+  version = "2.0";
+
+  src = fetchzip {
+    url = "https://github.com/akryukov/theano/releases/download/v${version}/theano-${version}.otf.zip";
+    stripRoot = false;
+    hash = "sha256-9wnwHcRHB+AToOvGwZSXvHkQ8hqMd7Sdl26Ty/IwbPw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/opentype
+    mkdir -p $out/share/doc/${pname}-${version}
+    cp *.otf $out/share/fonts/opentype
+    cp *.txt $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/akryukov/theano";
+    description = "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/tibetan-machine/default.nix b/nixpkgs/pkgs/data/fonts/tibetan-machine/default.nix
new file mode 100644
index 000000000000..4731bfcd365d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tibetan-machine/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "tibetan-machine";
+  version = "1.901b";
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/f/fonts-${pname}/fonts-${pname}_${version}.orig.tar.bz2";
+    hash = "sha256-c/1Sgv7xKHpsJGjY9ZY2qOJHShGHL1robvphFNJOt5w=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts
+    cp *.ttf $out/share/fonts
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Tibetan Machine - an OpenType Tibetan, Dzongkha and Ladakhi font";
+    license = licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ serge ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/times-newer-roman/default.nix b/nixpkgs/pkgs/data/fonts/times-newer-roman/default.nix
new file mode 100644
index 000000000000..6f856558cb4a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/times-newer-roman/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation {
+  pname = "times-newer-roman";
+  version = "unstable-2018-09-11";
+
+  src = fetchzip {
+    url = "https://web.archive.org/web/20210609022835/https://timesnewerroman.com/assets/TimesNewerRoman.zip";
+    stripRoot = false;
+    hash = "sha256-wO4rxyJNQyhRLpswCYKXdeiXy5G+iWyxulYCHZb60QM=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/opentype
+    cp *.otf $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Font that looks just like Times New Roman, except each character is 5-10% wider";
+    homepage = "https://timesnewerroman.com/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ ];
+    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..a0cc7106afe6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tipa/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "tipa";
+  version = "1.3";
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/t/tipa/${pname}_${version}.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";
+    license = lib.licenses.lppl13c;
+  };
+}
+
+
diff --git a/nixpkgs/pkgs/data/fonts/tlwg/default.nix b/nixpkgs/pkgs/data/fonts/tlwg/default.nix
new file mode 100644
index 000000000000..a9216ad0d356
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tlwg/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, autoconf-archive, fontforge }:
+
+stdenv.mkDerivation rec {
+  pname = "tlwg";
+  version = "0.7.3";
+
+  src = fetchFromGitHub {
+    owner = "tlwg";
+    repo = "fonts-tlwg";
+    rev = "v${version}";
+    sha256 = "hWiH5KJnYTdcrm+Kzn9HUQry8ry3SKzjA6/0536kCLQ=";
+  };
+
+  nativeBuildInputs = [ autoreconfHook autoconf-archive ];
+
+  buildInputs = [ fontforge ];
+
+  meta = with lib; {
+    description = "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..a427c4cf14b8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tt2020/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "TT2020";
+  version = "0.2.1";
+
+  src = fetchFromGitHub {
+    owner = "ctrlcctrlv";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-eAJzaookHcQ/7QNq/HUKA/O2liyKynJNdo6QuZ1Bv6k=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 -t $out/share/fonts/truetype dist/*.ttf
+    install -Dm644 -t $out/share/fonts/woff2 dist/*.woff2
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "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..e71888969f61
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ttf-bitstream-vera/default.nix
@@ -0,0 +1,21 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "ttf-bitstream-vera";
+  version = "1.10";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
+    hash = "sha256-21sn33u7MYA269t1rNPpjxvW62YI+3CmfUeM0kPReNw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/truetype *.ttf
+
+    runHook postInstall
+  '';
+
+  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..673d946a1e9a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ttf-envy-code-r/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "ttf-envy-code-r";
+  version = "PR7";
+
+  src = fetchzip {
+    url = "http://download.damieng.com/fonts/original/EnvyCodeR-${version}.zip";
+    hash = "sha256-pJqC/sbNjxEwbVf2CVoXMBI5zvT3DqzRlKSqFT8I2sM=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 *.txt -t $out/share/doc/${pname}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://damieng.com/blog/tag/envy-code-r";
+    description = "Free scalable coding font by DamienG";
+    license = licenses.unfree;
+    maintainers = [ ];
+  };
+}
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..85b2ec1ce787
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ttf-tw-moe/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "ttf-tw-moe";
+  version = "2020-11-14";
+
+  src = fetchzip {
+    url = "https://github.com/Jiehong/TW-fonts/archive/${version}.zip";
+    hash = "sha256-9gy8xO93ViIPmpg1du0DbXVCR2FowourLH8nP9d6HK0=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  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..a6e65ce68955
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "twemoji-color-font";
+  version = "14.0.2";
+
+  # 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${finalAttrs.version}/TwitterColorEmoji-SVGinOT-Linux-${finalAttrs.version}.tar.gz";
+    sha256 = "sha256-aCbiHqCNxd8myIeuTlYEaYfg9JCd+MAsc94FcUoDU8E=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    install -Dm755 TwitterColorEmoji-SVGinOT.ttf $out/share/fonts/truetype/TwitterColorEmoji-SVGinOT.ttf
+    install -Dm644 fontconfig/46-twemoji-color.conf $out/etc/fonts/conf.d/46-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..69aae92d966a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix
@@ -0,0 +1,116 @@
+# 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-color-emoji
+}:
+
+let
+  version = "15.0.2";
+
+  twemojiSrc = fetchFromGitHub {
+    name = "twemoji";
+    owner = "jdecked";
+    repo = "twemoji";
+    rev = "v${version}";
+    hash = "sha256-FLOqXDpSFyClBlG5u3IRL0EKeu1mckCfRizJh++IWxo=";
+  };
+
+  pythonEnv =
+    python3.withPackages (ps: with ps; [ fonttools nototools ]);
+
+in
+stdenv.mkDerivation rec {
+  pname = "twitter-color-emoji";
+  inherit version;
+
+  srcs = [
+    noto-fonts-color-emoji.src
+    twemojiSrc
+  ];
+
+  sourceRoot = noto-fonts-color-emoji.src.name;
+
+  postUnpack = ''
+    chmod -R +w ${twemojiSrc.name}
+    mv ${twemojiSrc.name} ${noto-fonts-color-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-color-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 Twitter's Twemoji emoji set
+      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://github.com/jdecked/twemoji";
+    # 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; [ emily ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/u001/default.nix b/nixpkgs/pkgs/data/fonts/u001/default.nix
new file mode 100644
index 000000000000..0a1a552ed9cd
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/u001/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "u001";
+  version = "unstable-2016-08-01"; # date in the zip file, actual creation date unknown
+
+  src = fetchzip {
+    urls = [
+      "https://fontlibrary.org/assets/downloads/u001/3ea00b3c0c8fa6ce4373e5766fafd651/u001.zip"
+      "https://web.archive.org/web/20220830085803/https://fontlibrary.org/assets/downloads/u001/3ea00b3c0c8fa6ce4373e5766fafd651/u001.zip"
+    ];
+    hash = "sha256-7H32pfr0g68XP5B48VUY99e6fbd7rhH6fEnCKNXWEkU=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    TTF_DIR=$out/share/fonts/truetype
+
+    mkdir -p $TTF_DIR
+
+    # We’ll adjust the nonstandard naming convention here
+    cp u001-reg.ttf $TTF_DIR/U001-Regular.ttf
+    cp u001-ita.ttf $TTF_DIR/U001-Italic.ttf
+    cp u001-bol.ttf $TTF_DIR/U001-Bold.ttf
+    cp u001-bolita.ttf $TTF_DIR/U001-BoldItalic.ttf
+    cp u001con-reg.ttf $TTF_DIR/U001Condensed-Regular.ttf
+    cp u001con-ita.ttf $TTF_DIR/U001Condensed-Italic.ttf
+    cp u001con-bol.ttf $TTF_DIR/U001Condensed-Bold.ttf
+    cp u001con-bolita.ttf $TTF_DIR/U001Condensed-BoldItalic.ttf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Univers-like typeface that comes with GhostPDL made by URW++";
+    homepage = "https://fontlibrary.org/en/font/u001";
+    license = licenses.aladdin;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ toastal ];
+  };
+}
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..671ba8b4b48d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ubuntu-font-family/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "ubuntu-font-family";
+  version = "0.83";
+
+  src = fetchzip {
+    url = "https://assets.ubuntu.com/v1/fad7939b-ubuntu-font-family-${version}.zip";
+    hash = "sha256-FAg1xn8Gcbwmuvqtg9SquSet4oTT9nqE+Izeq7ZMVcA=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/ubuntu
+    mv *.ttf $out/share/fonts/ubuntu
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    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 = licenses.ufl;
+    platforms = platforms.all;
+    maintainers = [ 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..e9d78dd03a7c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix
@@ -0,0 +1,61 @@
+{ lib, stdenv, fetchurl, bdftopcf
+, libfaketime, xorg
+}:
+
+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 xorg.fonttosfnt
+      xorg.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..4a1dfa00916a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "ultimate-oldschool-pc-font-pack";
+  version = "2.2";
+
+  src = fetchzip {
+    url = "https://int10h.org/oldschool-pc-fonts/download/oldschool_pc_font_pack_v${version}_linux.zip";
+    stripRoot = false;
+    hash = "sha256-54U8tZzvivTSOgmGesj9QbIgkSTm9w4quMhsuEc0Xy4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp */*.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Ultimate Oldschool PC Font Pack (TTF Fonts)";
+    homepage = "https://int10h.org/oldschool-pc-fonts/";
+    changelog = "https://int10h.org/oldschool-pc-fonts/readme/#history";
+    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..8dd3cc71ac27
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/undefined-medium/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "undefined-medium";
+  version = "1.3";
+
+  src = fetchzip {
+    url = "https://github.com/andirueckel/undefined-medium/archive/v1.3.zip";
+    hash = "sha256-cVdk6a0xijAQ/18W5jalqRS7IiPufMJW27Scns+nbEY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 fonts/otf/*.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://undefined-medium.com/";
+    description = "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;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/unfonts-core/default.nix b/nixpkgs/pkgs/data/fonts/unfonts-core/default.nix
new file mode 100644
index 000000000000..5756a948f698
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/unfonts-core/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "unfonts-core";
+  version = "1.0.2-080608";
+
+  src = fetchurl {
+    url = "https://kldp.net/unfonts/release/2607-un-fonts-core-${version}.tar.gz";
+    hash = "sha256-OwpydPmqt+jw8ZOMAacOFYF2bVG0lLoUVoPzesVXkY4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/truetype *.ttf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://kldp.net/unfonts/";
+    description = "Korean Hangul typeface collection";
+    longDescription = ''
+      The Un-fonts come from the HLaTeX as type1 fonts in 1998 by Koaunghi Un, he made type1 fonts to use with Korean TeX (HLaTeX) in the late 1990's and released it under the GPL license.
+
+      They were converted to TrueType with the FontForge (PfaEdit) by Won-kyu Park in 2003.
+    '';
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = [ maintainers.ehmry ];
+  };
+}
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..1239b1238831
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/uni-vga/default.nix
@@ -0,0 +1,56 @@
+{ lib, stdenv, fetchurl, perl, kbd, bdftopcf
+, libfaketime, xorg
+}:
+
+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
+      xorg.fonttosfnt xorg.mkfontscale
+    ] ++ lib.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
+  '' + lib.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"
+
+  '' + lib.optionalString stdenv.isLinux ''
+    # install psf (for linux virtual terminal)
+    install -m 644 -D *.psf.gz -t "$out/share/consolefonts"
+  '';
+
+  outputs = [ "out" "bdf" ];
+
+  meta = with lib; {
+    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..0868abcdd58c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/unifont/default.nix
@@ -0,0 +1,53 @@
+{ lib, stdenv, fetchurl, xorg
+, libfaketime
+}:
+
+stdenv.mkDerivation rec {
+  pname = "unifont";
+  version = "15.1.05";
+
+  otf = fetchurl {
+    url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.otf";
+    hash = "sha256-e2K1CsuxhmidwwxEbOQ2e4fXlInpkHuDJV+fvg3PueE=";
+  };
+
+  pcf = fetchurl {
+    url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.pcf.gz";
+    hash = "sha256-zpc9Z4XXvma/tXRYOvAAQIpjyYS+1XPiaLZF4xYPTbw=";
+  };
+
+  nativeBuildInputs = [ libfaketime xorg.fonttosfnt xorg.mkfontscale ];
+
+  dontUnpack = true;
+
+  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 otf fonts
+      install -m 644 -D ${pcf} $out/share/fonts/unifont.pcf.gz
+      install -m 644 -D ${otf} $out/share/fonts/opentype/unifont.otf
+      cd "$out/share/fonts"
+      mkfontdir
+      mkfontscale
+    '';
+
+  meta = with lib; {
+    description = "Unicode font for Base Multilingual Plane";
+    homepage = "https://unifoundry.com/unifont/";
+
+    # Basically GPL2+ with font exception.
+    license = "https://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..058e4e4191c4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/unifont_upper/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "unifont_upper";
+  version = "15.1.05";
+
+  src = fetchurl {
+    url = "mirror://gnu/unifont/unifont-${version}/${pname}-${version}.otf";
+    hash = "sha256-A/Z/+IMNUH/3Ir3ewf/U2xqkkpZDUDKO+dlnRYt+7U0=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 $src $out/share/fonts/opentype/unifont_upper.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Unicode font for glyphs above the Unicode Basic Multilingual Plane";
+    homepage = "https://unifoundry.com/unifont/";
+
+    # Basically GPL2+ with font exception.
+    license = "https://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..1b723cd313da
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/unscii/default.nix
@@ -0,0 +1,71 @@
+{ lib, stdenv, fetchurl, perl, bdftopcf
+, fontforge, SDL, SDL_image, mkfontscale
+}:
+
+let
+  perlenv = perl.withPackages (p: with p; [
+    TextCharWidth
+  ]);
+in
+stdenv.mkDerivation rec {
+  pname = "unscii";
+  version = "2.1";
+
+  src = fetchurl {
+    url = "http://viznut.fi/${pname}/${pname}-${version}-src.tar.gz";
+    sha256 = "0msvqrq7x36p76a2n5bzkadh95z954ayqa08wxd017g4jpa1a4jd";
+  };
+
+  nativeBuildInputs =
+    [ perlenv
+      bdftopcf fontforge SDL SDL_image
+      mkfontscale
+    ];
+
+  # Fixes shebang -> wrapper problem on Darwin
+  postPatch = ''
+    for perltool in *.pl; do
+      substituteInPlace Makefile \
+        --replace "./$perltool" "${perlenv}/bin/perl ./$perltool"
+    done
+  '';
+
+  makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
+
+  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 = {
+    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://viznut.fi/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..f8006516e276
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix
@@ -0,0 +1,89 @@
+{ lib, stdenv, fetchurl, perl
+, bdftopcf, bdf2psf, xorg
+, 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 xorg.fonttosfnt xorg.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-code-font/default.nix b/nixpkgs/pkgs/data/fonts/vazir-code-font/default.nix
new file mode 100644
index 000000000000..6c76f4c6d503
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vazir-code-font/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "vazir-code-font";
+  version = "1.1.2";
+
+  src = fetchFromGitHub {
+    owner = "rastikerdar";
+    repo = "vazir-code-font";
+    rev = "v${version}";
+    hash = "sha256-iBojse3eHr4ucZtPfpkN+mmO6sEExY8WcAallyPgMsI=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/truetype {} \;
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/vazir-code-font";
+    description = "Persian (farsi) Monospaced Font for coding";
+    license = licenses.publicDomain;
+    platforms = platforms.all;
+    maintainers = [ maintainers.dearrude ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/vazir-fonts/default.nix b/nixpkgs/pkgs/data/fonts/vazir-fonts/default.nix
new file mode 100644
index 000000000000..11b991306a0a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vazir-fonts/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "vazir-fonts";
+  version = "33.003";
+
+  src = fetchFromGitHub {
+    owner = "rastikerdar";
+    repo = "vazir-font";
+    rev = "v${version}";
+    hash = "sha256-C1UtfrRFzz0uv/hj8e7huXe4sNd5h7ozVhirWEAyXGg=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/truetype {} \;
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/vazir-font";
+    description = "Persian (Farsi) Font - قلم (فونت) فارسی وزیر";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/vdrsymbols/default.nix b/nixpkgs/pkgs/data/fonts/vdrsymbols/default.nix
new file mode 100644
index 000000000000..fd7aba9ec063
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vdrsymbols/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "vdrsymbols";
+  version = "20100612";
+
+  src = fetchurl {
+    url = "http://andreas.vdr-developer.org/fonts/download/${pname}-ttf-${version}.tgz";
+    hash = "sha256-YxB+JcDkta5are+OQyP/WKDL0vllgn0m26bU9mQ3C/Q=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm444 -t "$out/share/fonts/truetype" *.ttf
+
+    runHook postInstall
+  '';
+
+  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 = with licenses; [ bitstreamVera publicDomain ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/vegur/default.nix b/nixpkgs/pkgs/data/fonts/vegur/default.nix
new file mode 100644
index 000000000000..b161ad4e3e35
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vegur/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "701";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "vegur";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-sGb3mEb3g15ZiVCxEfAanly8zMUopLOOjw8W4qbXLPA=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/vegur/";
+    description = "Humanist sans serif font";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ minijackson 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..a855cf8b80bb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/victor-mono/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "victor-mono";
+  version = "1.5.6";
+
+  # 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.
+  src = fetchzip {
+    url = "https://github.com/rubjo/victor-mono/raw/v${version}/public/VictorMonoAll.zip";
+    stripRoot = false;
+    hash = "sha256-PnCCU7PO+XcxUk445sU5xVl8XqdSPJighjtDTqI6qiw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out/share/fonts/"
+
+    mv OTF $out/share/fonts/opentype
+    mv TTF $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Free programming font with cursive italics and ligatures";
+    homepage = "https://rubjo.github.io/victor-mono";
+    license = licenses.ofl;
+    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..66274c667a04
--- /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 = "https://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-cht/default.nix b/nixpkgs/pkgs/data/fonts/vista-fonts-cht/default.nix
new file mode 100644
index 000000000000..78271e2f1e93
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vista-fonts-cht/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenvNoCC, fetchurl, cabextract }:
+
+stdenvNoCC.mkDerivation {
+  pname = "vista-fonts-cht";
+  version = "1";
+
+  src = fetchurl {
+    url = "https://download.microsoft.com/download/7/6/b/76bd7a77-be02-47f3-8472-fa1de7eda62f/VistaFont_CHT.EXE";
+    sha256 = "sha256-fSnbbxlMPzbhFSQyKxQaS5paiWji8njK7tS8Eppsj6g=";
+  };
+
+  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-msjhenghei.conf \
+      --subst-var-by fontname "Microsoft JhengHei"
+  '';
+
+
+  meta = with lib; {
+    description = "TrueType fonts from Microsoft Windows Vista For Traditional Chinese (Microsoft JhengHei)";
+    homepage = "https://www.microsoft.com/typography/fonts/family.aspx";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ atkinschang ];
+
+    # Set a non-zero priority to allow easy overriding of the
+    # fontconfig configuration files.
+    priority = 5;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/vista-fonts-cht/no-op.conf b/nixpkgs/pkgs/data/fonts/vista-fonts-cht/no-op.conf
new file mode 100644
index 000000000000..3f8a9b9b5444
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vista-fonts-cht/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/vista-fonts/default.nix b/nixpkgs/pkgs/data/fonts/vista-fonts/default.nix
new file mode 100644
index 000000000000..fa8308b8c972
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vista-fonts/default.nix
@@ -0,0 +1,42 @@
+{ 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
+    cabextract --lowercase --filter '*.TTC' ppviewer.cab
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf *.ttc $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..466d16b086a4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vollkorn/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "vollkorn";
+  version = "4.105";
+
+  src = fetchzip {
+    url = "http://vollkorn-typeface.com/download/vollkorn-${builtins.replaceStrings ["."] ["-"] version}.zip";
+    stripRoot = false;
+    hash = "sha256-oG79GgCwCavbMFAPakza08IPmt13Gwujrkc/NKTai7g=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -pv $out/share/{doc/${pname}-${version},fonts/{opentype,truetype,WOFF,WOFF2}}
+    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
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://vollkorn-typeface.com/";
+    description = "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..00f9cebac121
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/weather-icons/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "weather-icons";
+  version = "2.0.12";
+
+  src = fetchzip {
+    url = "https://github.com/erikflowers/weather-icons/archive/refs/tags/${version}.zip";
+    hash = "sha256-0ZFH2awUo4BkTpK1OsWZ4YKczJHo+HHM6ezGBJAmT+U=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 _docs/font-source/weathericons-regular.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  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..071c6bafb182
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/work-sans/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "work-sans";
+  version = "2.010";
+
+  src = fetchzip {
+    url = "https://github.com/weiweihuanghuang/Work-Sans/archive/refs/tags/v${version}.zip";
+    hash = "sha256-cedcx3CpcPZk3jxxIs5Bz78dxZNtOemvXnUBO6zl2dw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 fonts/variable/*.ttf fonts/static/TTF/*.ttf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Grotesque sans";
+    homepage = "https://weiweihuanghuang.github.io/Work-Sans/";
+    license = licenses.ofl;
+    maintainers = [ ];
+    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..ced2c4a3a41d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/wqy-microhei/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "wqy-microhei";
+  version = "0.2.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/wqy/${pname}-${version}-beta.tar.gz";
+    hash = "sha256-KAKsgCOqNqZupudEWFTjoHjTd///QhaTQb0jeHH3IT4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 wqy-microhei.ttc $out/share/fonts/wqy-microhei.ttc
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "(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..50ab5d81a305
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/wqy-zenhei/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "wqy-zenhei";
+  version = "0.9.45";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/wqy/${pname}-${version}.tar.gz";
+    hash = "sha256-5LfjBkdb+UJ9F1dXjw5FKJMMhMROqj8WfUxC8RDuddY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttc -t $out/share/fonts/
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "(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..003ddcc7da90
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/xkcd-font/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "xkcd-font";
+  version = "unstable-2017-08-24";
+
+  src = fetchFromGitHub {
+    owner = "ipython";
+    repo = pname;
+    rev = "5632fde618845dba5c22f14adc7b52bf6c52d46d";
+    hash = "sha256-1DgSx2L+OpXuPVSXbbl/hcZUyBK9ikPyGWuk6wNzlwc=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm444 -t $out/share/fonts/opentype/ xkcd/build/xkcd.otf
+    install -Dm444 -t $out/share/fonts/truetype/ xkcd-script/font/xkcd-script.ttf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Xkcd font";
+    homepage = "https://github.com/ipython/xkcd-font";
+    license = licenses.cc-by-nc-30;
+    platforms = platforms.all;
+    maintainers = [ ];
+  };
+}
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..8fced0b73a63
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/yanone-kaffeesatz/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "yanone-kaffeesatz";
+  version = "2004";
+
+  src = fetchzip {
+    url = "https://yanone.de/2015/data/UIdownloads/Yanone%20Kaffeesatz.zip";
+    stripRoot = false;
+    hash = "sha256-8yAB73UJ77/c8/VLqiFeT1KtoBQzOh+vWrI+JA2dCoY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "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..886362d78e99
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/zilla-slab/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "zilla-slab";
+  version = "1.002";
+
+  src = fetchzip {
+    url = "https://github.com/mozilla/zilla-slab/releases/download/v${version}/Zilla-Slab-Fonts-v${version}.zip";
+    stripRoot = false;
+    hash = "sha256-yOHu+dSWlyI7w1N1teED9R1Fphso2bKAlYDC1KdqBCc=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp -v zilla-slab/ttf/*.ttf $out/share/fonts/truetype/
+
+    runHook postInstall
+  '';
+
+  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;
+  };
+}