about summary refs log tree commit diff
path: root/nixpkgs/pkgs/data
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/data')
-rw-r--r--nixpkgs/pkgs/data/documentation/anarchism/default.nix43
-rw-r--r--nixpkgs/pkgs/data/documentation/bgnet/default.nix35
-rw-r--r--nixpkgs/pkgs/data/documentation/execline-man-pages/default.nix9
-rw-r--r--nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix41
-rw-r--r--nixpkgs/pkgs/data/documentation/linux-manual/default.nix40
-rw-r--r--nixpkgs/pkgs/data/documentation/man-pages-posix/default.nix27
-rw-r--r--nixpkgs/pkgs/data/documentation/man-pages/default.nix32
-rw-r--r--nixpkgs/pkgs/data/documentation/mustache-spec/default.nix42
-rw-r--r--nixpkgs/pkgs/data/documentation/rnrs/builder.sh12
-rw-r--r--nixpkgs/pkgs/data/documentation/rnrs/common.nix30
-rw-r--r--nixpkgs/pkgs/data/documentation/rnrs/r3rs.nix7
-rw-r--r--nixpkgs/pkgs/data/documentation/rnrs/r4rs.nix7
-rw-r--r--nixpkgs/pkgs/data/documentation/rnrs/r5rs.nix7
-rw-r--r--nixpkgs/pkgs/data/documentation/s6-man-pages/default.nix9
-rw-r--r--nixpkgs/pkgs/data/documentation/s6-networking-man-pages/default.nix9
-rw-r--r--nixpkgs/pkgs/data/documentation/scheme-manpages/default.nix28
-rw-r--r--nixpkgs/pkgs/data/documentation/std-man-pages/default.nix24
-rw-r--r--nixpkgs/pkgs/data/documentation/stdman/default.nix34
-rw-r--r--nixpkgs/pkgs/data/documentation/zeal/default.nix44
-rw-r--r--nixpkgs/pkgs/data/fonts/3270font/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/agave/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/aileron/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/alegreya-sans/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/alegreya/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/amiri/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/andagii/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/andika/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/ankacoder/condensed.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/ankacoder/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/anonymous-pro/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/arkpandora/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/arphic/default.nix55
-rw-r--r--nixpkgs/pkgs/data/fonts/atkinson-hyperlegible/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/aurulent-sans/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/b612/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/babelstone-han/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/baekmuk-ttf/default.nix20
-rw-r--r--nixpkgs/pkgs/data/fonts/bakoma-ttf/default.nix20
-rw-r--r--nixpkgs/pkgs/data/fonts/barlow/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/behdad-fonts/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/bront/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/cabin/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/caladea/cambria-alias.conf18
-rw-r--r--nixpkgs/pkgs/data/fonts/caladea/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/camingo-code/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/cantarell-fonts/default.nix57
-rw-r--r--nixpkgs/pkgs/data/fonts/carlito/calibri-alias.conf18
-rw-r--r--nixpkgs/pkgs/data/fonts/carlito/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/cascadia-code/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/charis-sil/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/cherry/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/chonburi/default.nix41
-rw-r--r--nixpkgs/pkgs/data/fonts/clearlyU/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/cm-unicode/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/cnstrokeorder/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/comfortaa/default.nix28
-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.nix40
-rw-r--r--nixpkgs/pkgs/data/fonts/cooper-hewitt/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/corefonts/default.nix74
-rw-r--r--nixpkgs/pkgs/data/fonts/corefonts/no-op.conf9
-rw-r--r--nixpkgs/pkgs/data/fonts/courier-prime/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/cozette/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/creep/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/crimson/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/culmus/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/curie/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/d2coding/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/dejavu-fonts/default.nix65
-rw-r--r--nixpkgs/pkgs/data/fonts/dina/default.nix70
-rw-r--r--nixpkgs/pkgs/data/fonts/dosemu-fonts/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/dosis/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/doulos-sil/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/eb-garamond/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/edukai/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/eduli/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/edusong/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/edwin/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/efont-unicode/default.nix54
-rw-r--r--nixpkgs/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/emojione/default.nix50
-rw-r--r--nixpkgs/pkgs/data/fonts/encode-sans/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/envypn-font/default.nix40
-rw-r--r--nixpkgs/pkgs/data/fonts/et-book/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/eunomia/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/f5_6/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/fantasque-sans-mono/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/ferrum/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/fira-code/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/fira-code/symbols.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/fira-mono/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/fira/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/fixedsys-excelsior/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/font-awesome-5/default.nix45
-rw-r--r--nixpkgs/pkgs/data/fonts/fraunces/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/freefont-ttf/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/gandom-fonts/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/gdouros/default.nix38
-rw-r--r--nixpkgs/pkgs/data/fonts/gelasio/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/gentium-book-basic/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/gentium/default.nix51
-rw-r--r--nixpkgs/pkgs/data/fonts/go-font/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/gohufont/default.nix69
-rw-r--r--nixpkgs/pkgs/data/fonts/google-fonts/default.nix50
-rw-r--r--nixpkgs/pkgs/data/fonts/gubbi/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/gyre/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/hack/default.nix40
-rw-r--r--nixpkgs/pkgs/data/fonts/hanazono/default.nix38
-rw-r--r--nixpkgs/pkgs/data/fonts/hannom/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/hasklig/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/helvetica-neue-lt-std/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/hermit/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/hyperscrypt/default.nix40
-rw-r--r--nixpkgs/pkgs/data/fonts/i-dot-ming/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/ia-writer-duospace/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/ibm-plex/default.nix26
-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.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/inter/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/bin.nix40
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/default.nix139
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/node.nix17
-rwxr-xr-xnixpkgs/pkgs/data/fonts/iosevka/update-bin.sh28
-rwxr-xr-xnixpkgs/pkgs/data/fonts/iosevka/update-default.sh21
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/variants.nix95
-rw-r--r--nixpkgs/pkgs/data/fonts/ipaexfont/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/ipafont/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/ir-standard-fonts/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/iwona/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/jost/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/joypixels/default.nix103
-rw-r--r--nixpkgs/pkgs/data/fonts/julia-mono/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/junicode/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/kanit/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/kanji-stroke-order-font/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/kawkab-mono/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/kochi-substitute-naga10/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/kochi-substitute/default.nix48
-rw-r--r--nixpkgs/pkgs/data/fonts/kreative-square-fonts/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/lalezar-fonts/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/last-resort/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/lato/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/league-of-moveable-type/default.nix51
-rw-r--r--nixpkgs/pkgs/data/fonts/league-of-moveable-type/fonts.nix82
-rw-r--r--nixpkgs/pkgs/data/fonts/league-of-moveable-type/update.sh25
-rw-r--r--nixpkgs/pkgs/data/fonts/liberastika/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/liberation-fonts/default.nix68
-rw-r--r--nixpkgs/pkgs/data/fonts/liberation-sans-narrow/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/libertine/default.nix47
-rw-r--r--nixpkgs/pkgs/data/fonts/libertinus/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/libre-baskerville/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/libre-bodoni/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/libre-caslon/default.nix46
-rw-r--r--nixpkgs/pkgs/data/fonts/libre-franklin/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/line-awesome/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/lmmath/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/lmodern/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/lohit-fonts/default.nix60
-rw-r--r--nixpkgs/pkgs/data/fonts/luculent/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/manrope/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/marathi-cursive/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/material-design-icons/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/material-icons/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/medio/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/merriweather-sans/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/merriweather/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/meslo-lg/default.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.nix21
-rw-r--r--nixpkgs/pkgs/data/fonts/monoid/default.nix49
-rw-r--r--nixpkgs/pkgs/data/fonts/mononoki/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/montserrat/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/mph-2b-damase/default.nix17
-rw-r--r--nixpkgs/pkgs/data/fonts/mplus-outline-fonts/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/mro-unicode/default.nix19
-rw-r--r--nixpkgs/pkgs/data/fonts/myrica/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/nafees/default.nix62
-rw-r--r--nixpkgs/pkgs/data/fonts/nahid-fonts/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/nanum-gothic-coding/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/national-park/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/navilu/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/nerdfonts/default.nix75
-rw-r--r--nixpkgs/pkgs/data/fonts/nerdfonts/shas.nix52
-rwxr-xr-xnixpkgs/pkgs/data/fonts/nerdfonts/update.sh21
-rw-r--r--nixpkgs/pkgs/data/fonts/nerdfonts/version.nix1
-rw-r--r--nixpkgs/pkgs/data/fonts/nika-fonts/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/norwester/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/noto-fonts/default.nix215
-rw-r--r--nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix78
-rw-r--r--nixpkgs/pkgs/data/fonts/ocr-a/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/office-code-pro/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/oldsindhi/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/oldstandard/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/open-dyslexic/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/open-fonts/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/open-sans/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/openmoji/default.nix58
-rw-r--r--nixpkgs/pkgs/data/fonts/orbitron/default.nix45
-rw-r--r--nixpkgs/pkgs/data/fonts/overpass/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/oxygenfonts/default.nix48
-rw-r--r--nixpkgs/pkgs/data/fonts/parastoo-fonts/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/pecita/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/penna/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/poly/default.nix50
-rw-r--r--nixpkgs/pkgs/data/fonts/powerline-fonts/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/powerline-symbols/default.nix18
-rw-r--r--nixpkgs/pkgs/data/fonts/profont/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/proggyfonts/default.nix41
-rw-r--r--nixpkgs/pkgs/data/fonts/public-sans/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/quattrocento-sans/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/quattrocento/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/raleway/default.nix42
-rw-r--r--nixpkgs/pkgs/data/fonts/recursive/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/redhat-official/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/rhodium-libre/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/ricty/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/rictydiminished-with-firacode/default.nix48
-rw-r--r--nixpkgs/pkgs/data/fonts/roboto-mono/default.nix88
-rw-r--r--nixpkgs/pkgs/data/fonts/roboto-slab/default.nix41
-rw-r--r--nixpkgs/pkgs/data/fonts/roboto/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/rounded-mgenplus/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/route159/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/rubik/default.nix103
-rw-r--r--nixpkgs/pkgs/data/fonts/sahel-fonts/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/samim-fonts/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/sampradaya/default.nix19
-rw-r--r--nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/scheherazade/default.nix50
-rw-r--r--nixpkgs/pkgs/data/fonts/scientifica/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/seshat/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/shabnam-fonts/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/shrikhand/default.nix21
-rw-r--r--nixpkgs/pkgs/data/fonts/signwriting/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/siji/default.nix44
-rw-r--r--nixpkgs/pkgs/data/fonts/source-code-pro/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/source-han-code-jp/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/source-han/default.nix66
-rw-r--r--nixpkgs/pkgs/data/fonts/source-sans/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/source-serif/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/spleen/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/stix-otf/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/stix-two/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/sudo/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/tai-languages/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/tamsyn/default.nix50
-rw-r--r--nixpkgs/pkgs/data/fonts/tamzen/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/tempora-lgc/default.nix41
-rw-r--r--nixpkgs/pkgs/data/fonts/tenderness/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/terminus-font-ttf/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/terminus-font/SOURCE_DATE_EPOCH-for-otb.patch83
-rw-r--r--nixpkgs/pkgs/data/fonts/terminus-font/default.nix46
-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/theano/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/times-newer-roman/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/tipa/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/tlwg/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/tt2020/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/ttf-bitstream-vera/default.nix20
-rw-r--r--nixpkgs/pkgs/data/fonts/ttf-envy-code-r/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/ttf-tw-moe/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix42
-rw-r--r--nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix117
-rw-r--r--nixpkgs/pkgs/data/fonts/ubuntu-font-family/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix61
-rw-r--r--nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/undefined-medium/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/unfonts-core/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/uni-vga/default.nix58
-rw-r--r--nixpkgs/pkgs/data/fonts/unifont/default.nix53
-rw-r--r--nixpkgs/pkgs/data/fonts/unifont_upper/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/unscii/default.nix71
-rw-r--r--nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix90
-rw-r--r--nixpkgs/pkgs/data/fonts/uw-ttyp0/determinism.patch13
-rw-r--r--nixpkgs/pkgs/data/fonts/vazir-code-font/default.nix26
-rwxr-xr-xnixpkgs/pkgs/data/fonts/vazir-fonts/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/vdrsymbols/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/vegur/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/victor-mono/default.nix33
-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.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/weather-icons/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/work-sans/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/wqy-microhei/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/wqy-zenhei/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/xits-math/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/xkcd-font/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/yanone-kaffeesatz/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/zilla-slab/default.nix33
-rw-r--r--nixpkgs/pkgs/data/icons/arc-icon-theme/default.nix38
-rw-r--r--nixpkgs/pkgs/data/icons/beauty-line-icon-theme/default.nix39
-rw-r--r--nixpkgs/pkgs/data/icons/bibata-cursors/default.nix54
-rw-r--r--nixpkgs/pkgs/data/icons/bibata-cursors/extra.nix54
-rw-r--r--nixpkgs/pkgs/data/icons/bibata-cursors/translucent.nix26
-rw-r--r--nixpkgs/pkgs/data/icons/capitaine-cursors/default.nix57
-rw-r--r--nixpkgs/pkgs/data/icons/comixcursors/default.nix125
-rw-r--r--nixpkgs/pkgs/data/icons/comixcursors/makefile-shell-var.patch11
-rw-r--r--nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix47
-rw-r--r--nixpkgs/pkgs/data/icons/faba-icon-theme/default.nix41
-rw-r--r--nixpkgs/pkgs/data/icons/faba-mono-icons/default.nix42
-rw-r--r--nixpkgs/pkgs/data/icons/flat-remix-icon-theme/default.nix43
-rw-r--r--nixpkgs/pkgs/data/icons/gnome-icon-theme/default.nix34
-rw-r--r--nixpkgs/pkgs/data/icons/gruvbox-dark-icons-gtk/default.nix34
-rw-r--r--nixpkgs/pkgs/data/icons/hicolor-icon-theme/default.nix18
-rw-r--r--nixpkgs/pkgs/data/icons/hicolor-icon-theme/setup-hook.sh53
-rw-r--r--nixpkgs/pkgs/data/icons/humanity-icon-theme/default.nix44
-rw-r--r--nixpkgs/pkgs/data/icons/iconpack-jade/default.nix36
-rw-r--r--nixpkgs/pkgs/data/icons/iconpack-obsidian/default.nix38
-rw-r--r--nixpkgs/pkgs/data/icons/iso-flags/default.nix45
-rw-r--r--nixpkgs/pkgs/data/icons/kora-icon-theme/default.nix46
-rw-r--r--nixpkgs/pkgs/data/icons/la-capitaine-icon-theme/default.nix52
-rw-r--r--nixpkgs/pkgs/data/icons/luna-icons/default.nix53
-rw-r--r--nixpkgs/pkgs/data/icons/maia-icon-theme/default.nix53
-rw-r--r--nixpkgs/pkgs/data/icons/moka-icon-theme/default.nix50
-rw-r--r--nixpkgs/pkgs/data/icons/nordzy-cursor-theme/default.nix37
-rw-r--r--nixpkgs/pkgs/data/icons/nordzy-icon-theme/default.nix54
-rw-r--r--nixpkgs/pkgs/data/icons/numix-cursor-theme/default.nix33
-rw-r--r--nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix45
-rw-r--r--nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix45
-rw-r--r--nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix41
-rw-r--r--nixpkgs/pkgs/data/icons/oranchelo-icon-theme/default.nix37
-rw-r--r--nixpkgs/pkgs/data/icons/paper-icon-theme/default.nix49
-rw-r--r--nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix44
-rw-r--r--nixpkgs/pkgs/data/icons/papirus-maia-icon-theme/default.nix45
-rw-r--r--nixpkgs/pkgs/data/icons/phinger-cursors/default.nix28
-rw-r--r--nixpkgs/pkgs/data/icons/pop-icon-theme/default.nix42
-rw-r--r--nixpkgs/pkgs/data/icons/qogir-icon-theme/default.nix46
-rw-r--r--nixpkgs/pkgs/data/icons/quintom-cursor-theme/default.nix28
-rw-r--r--nixpkgs/pkgs/data/icons/tango-icon-theme/default.nix31
-rw-r--r--nixpkgs/pkgs/data/icons/tango-icon-theme/rsvg-convert.patch34
-rw-r--r--nixpkgs/pkgs/data/icons/tela-circle-icon-theme/default.nix65
-rw-r--r--nixpkgs/pkgs/data/icons/tela-icon-theme/default.nix43
-rw-r--r--nixpkgs/pkgs/data/icons/vanilla-dmz/default.nix49
-rw-r--r--nixpkgs/pkgs/data/icons/vimix-icon-theme/default.nix59
-rw-r--r--nixpkgs/pkgs/data/icons/whitesur-icon-theme/default.nix52
-rw-r--r--nixpkgs/pkgs/data/icons/zafiro-icons/default.nix42
-rw-r--r--nixpkgs/pkgs/data/machine-learning/mnist/default.nix45
-rw-r--r--nixpkgs/pkgs/data/misc/adapta-backgrounds/default.nix25
-rw-r--r--nixpkgs/pkgs/data/misc/brise/default.nix41
-rw-r--r--nixpkgs/pkgs/data/misc/brise/fetchPackages.nix130
-rw-r--r--nixpkgs/pkgs/data/misc/cacert/default.nix207
-rw-r--r--nixpkgs/pkgs/data/misc/cacert/setup-hook.sh7
-rw-r--r--nixpkgs/pkgs/data/misc/cacert/test-cert-file.crt13
-rwxr-xr-xnixpkgs/pkgs/data/misc/cacert/update.sh42
-rw-r--r--nixpkgs/pkgs/data/misc/cldr-emoji-annotation/default.nix27
-rw-r--r--nixpkgs/pkgs/data/misc/combinatorial_designs/default.nix31
-rw-r--r--nixpkgs/pkgs/data/misc/common-licenses/default.nix28
-rw-r--r--nixpkgs/pkgs/data/misc/conway_polynomials/default.nix41
-rw-r--r--nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix39
-rw-r--r--nixpkgs/pkgs/data/misc/dns-root-data/default.nix35
-rw-r--r--nixpkgs/pkgs/data/misc/dns-root-data/root.ds1
-rw-r--r--nixpkgs/pkgs/data/misc/dns-root-data/root.key1
-rwxr-xr-xnixpkgs/pkgs/data/misc/dns-root-data/update-root-key.sh10
-rw-r--r--nixpkgs/pkgs/data/misc/elliptic_curves/default.nix50
-rw-r--r--nixpkgs/pkgs/data/misc/fedora-backgrounds/default.nix34
-rw-r--r--nixpkgs/pkgs/data/misc/fedora-backgrounds/f33-fix-xfce-path.patch15
-rw-r--r--nixpkgs/pkgs/data/misc/fedora-backgrounds/f34-fix-xfce-path.patch13
-rw-r--r--nixpkgs/pkgs/data/misc/fedora-backgrounds/generic.nix43
-rw-r--r--nixpkgs/pkgs/data/misc/freepats/default.nix24
-rw-r--r--nixpkgs/pkgs/data/misc/geolite-legacy/default.nix34
-rw-r--r--nixpkgs/pkgs/data/misc/graphs/default.nix25
-rw-r--r--nixpkgs/pkgs/data/misc/hackage/default.nix10
-rw-r--r--nixpkgs/pkgs/data/misc/hackage/pin.json6
-rw-r--r--nixpkgs/pkgs/data/misc/iana-etc/default.nix27
-rw-r--r--nixpkgs/pkgs/data/misc/libkkc-data/default.nix23
-rw-r--r--nixpkgs/pkgs/data/misc/mailcap/default.nix30
-rw-r--r--nixpkgs/pkgs/data/misc/media-player-info/default.nix31
-rw-r--r--nixpkgs/pkgs/data/misc/miscfiles/default.nix18
-rw-r--r--nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix30
-rw-r--r--nixpkgs/pkgs/data/misc/nixos-artwork/default.nix5
-rw-r--r--nixpkgs/pkgs/data/misc/nixos-artwork/grub2-theme.nix5
-rw-r--r--nixpkgs/pkgs/data/misc/nixos-artwork/icons.nix25
-rw-r--r--nixpkgs/pkgs/data/misc/nixos-artwork/wallpapers.nix159
-rw-r--r--nixpkgs/pkgs/data/misc/osinfo-db/default.nix25
-rw-r--r--nixpkgs/pkgs/data/misc/pari-galdata/default.nix26
-rw-r--r--nixpkgs/pkgs/data/misc/pari-seadata-small/default.nix26
-rw-r--r--nixpkgs/pkgs/data/misc/polytopes_db/default.nix25
-rw-r--r--nixpkgs/pkgs/data/misc/poppler-data/default.nix30
-rw-r--r--nixpkgs/pkgs/data/misc/publicsuffix-list/default.nix25
-rw-r--r--nixpkgs/pkgs/data/misc/rime-data/default.nix66
-rw-r--r--nixpkgs/pkgs/data/misc/rime-data/fetchSchema.nix137
-rwxr-xr-xnixpkgs/pkgs/data/misc/rime-data/generateFetchSchema.sh43
-rw-r--r--nixpkgs/pkgs/data/misc/scowl/default.nix111
-rw-r--r--nixpkgs/pkgs/data/misc/shared-desktop-ontologies/default.nix25
-rw-r--r--nixpkgs/pkgs/data/misc/shared-mime-info/default.nix55
-rw-r--r--nixpkgs/pkgs/data/misc/sound-theme-freedesktop/default.nix21
-rw-r--r--nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix29
-rw-r--r--nixpkgs/pkgs/data/misc/tzdata/default.nix78
-rw-r--r--nixpkgs/pkgs/data/misc/tzdata/tzdata-setup-hook.sh5
-rw-r--r--nixpkgs/pkgs/data/misc/unicode-character-database/default.nix38
-rw-r--r--nixpkgs/pkgs/data/misc/unicode-emoji/default.nix58
-rw-r--r--nixpkgs/pkgs/data/misc/unihan-database/default.nix38
-rw-r--r--nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix35
-rw-r--r--nixpkgs/pkgs/data/misc/v2ray-geoip/default.nix28
-rwxr-xr-xnixpkgs/pkgs/data/misc/v2ray-geoip/update.sh6
-rw-r--r--nixpkgs/pkgs/data/misc/wireless-regdb/default.nix26
-rw-r--r--nixpkgs/pkgs/data/misc/xorg-rgb/default.nix22
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/docbook-5.0/default.nix36
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/3.1.nix37
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/4.1.nix37
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/default.nix25
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/docbook-ebnf.cat2
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix27
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix13
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix13
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.4.nix13
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix13
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/generic.nix23
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix32
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/catalog-legacy-uris.patch10
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix87
-rw-r--r--nixpkgs/pkgs/data/soundfonts/fluid/default.nix24
-rw-r--r--nixpkgs/pkgs/data/themes/adapta-kde/default.nix28
-rw-r--r--nixpkgs/pkgs/data/themes/adapta/default.nix49
-rw-r--r--nixpkgs/pkgs/data/themes/adementary/default.nix36
-rw-r--r--nixpkgs/pkgs/data/themes/adwaita-qt/default.nix57
-rw-r--r--nixpkgs/pkgs/data/themes/albatross/default.nix27
-rw-r--r--nixpkgs/pkgs/data/themes/amber/default.nix27
-rw-r--r--nixpkgs/pkgs/data/themes/ant-theme/ant-bloody.nix34
-rw-r--r--nixpkgs/pkgs/data/themes/ant-theme/ant-nebula.nix34
-rw-r--r--nixpkgs/pkgs/data/themes/ant-theme/ant.nix34
-rw-r--r--nixpkgs/pkgs/data/themes/arc-kde/default.nix28
-rw-r--r--nixpkgs/pkgs/data/themes/arc/default.nix65
-rw-r--r--nixpkgs/pkgs/data/themes/artim-dark/default.nix35
-rw-r--r--nixpkgs/pkgs/data/themes/ayu-theme-gtk/default.nix68
-rw-r--r--nixpkgs/pkgs/data/themes/blackbird/default.nix25
-rw-r--r--nixpkgs/pkgs/data/themes/canta/default.nix65
-rw-r--r--nixpkgs/pkgs/data/themes/clearlooks-phenix/default.nix33
-rw-r--r--nixpkgs/pkgs/data/themes/dracula-theme/default.nix48
-rw-r--r--nixpkgs/pkgs/data/themes/e17gtk/default.nix27
-rw-r--r--nixpkgs/pkgs/data/themes/equilux-theme/default.nix39
-rw-r--r--nixpkgs/pkgs/data/themes/flat-remix-gnome/default.nix44
-rw-r--r--nixpkgs/pkgs/data/themes/flat-remix-gtk/default.nix33
-rw-r--r--nixpkgs/pkgs/data/themes/gnome-breeze/default.nix25
-rw-r--r--nixpkgs/pkgs/data/themes/graphite-gtk-theme/default.nix95
-rw-r--r--nixpkgs/pkgs/data/themes/graphite-kde-theme/default.nix41
-rw-r--r--nixpkgs/pkgs/data/themes/greybird/default.nix37
-rw-r--r--nixpkgs/pkgs/data/themes/gruvbox-dark-gtk/default.nix27
-rw-r--r--nixpkgs/pkgs/data/themes/gtk-theme-framework/default.nix36
-rw-r--r--nixpkgs/pkgs/data/themes/jade1/default.nix30
-rw-r--r--nixpkgs/pkgs/data/themes/juno/default.nix45
-rw-r--r--nixpkgs/pkgs/data/themes/kde-gruvbox/default.nix32
-rw-r--r--nixpkgs/pkgs/data/themes/kde2/default.nix30
-rw-r--r--nixpkgs/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix38
-rw-r--r--nixpkgs/pkgs/data/themes/kwin-decorations/sierra-breeze-enhanced/default.nix38
-rw-r--r--nixpkgs/pkgs/data/themes/layan-gtk-theme/default.nix38
-rw-r--r--nixpkgs/pkgs/data/themes/lightly-qt/default.nix42
-rw-r--r--nixpkgs/pkgs/data/themes/lounge/default.nix35
-rw-r--r--nixpkgs/pkgs/data/themes/marwaita-manjaro/default.nix47
-rw-r--r--nixpkgs/pkgs/data/themes/marwaita-peppermint/default.nix47
-rw-r--r--nixpkgs/pkgs/data/themes/marwaita-pop_os/default.nix47
-rw-r--r--nixpkgs/pkgs/data/themes/marwaita-ubuntu/default.nix46
-rw-r--r--nixpkgs/pkgs/data/themes/marwaita/default.nix47
-rw-r--r--nixpkgs/pkgs/data/themes/matcha/default.nix36
-rw-r--r--nixpkgs/pkgs/data/themes/materia-kde/default.nix23
-rw-r--r--nixpkgs/pkgs/data/themes/materia-theme/default.nix47
-rw-r--r--nixpkgs/pkgs/data/themes/material-kwin-decoration/default.nix53
-rw-r--r--nixpkgs/pkgs/data/themes/mojave/default.nix124
-rw-r--r--nixpkgs/pkgs/data/themes/nordic/default.nix125
-rw-r--r--nixpkgs/pkgs/data/themes/numix-solarized/default.nix47
-rw-r--r--nixpkgs/pkgs/data/themes/numix-sx/default.nix30
-rw-r--r--nixpkgs/pkgs/data/themes/numix/default.nix32
-rw-r--r--nixpkgs/pkgs/data/themes/obsidian2/default.nix30
-rw-r--r--nixpkgs/pkgs/data/themes/onestepback/default.nix39
-rw-r--r--nixpkgs/pkgs/data/themes/openzone/default.nix24
-rw-r--r--nixpkgs/pkgs/data/themes/orchis-theme/default.nix60
-rw-r--r--nixpkgs/pkgs/data/themes/orion/default.nix26
-rw-r--r--nixpkgs/pkgs/data/themes/paper-gtk/default.nix31
-rw-r--r--nixpkgs/pkgs/data/themes/pitch-black/default.nix30
-rw-r--r--nixpkgs/pkgs/data/themes/plano/default.nix46
-rw-r--r--nixpkgs/pkgs/data/themes/plata/default.nix88
-rw-r--r--nixpkgs/pkgs/data/themes/pop-gtk/default.nix65
-rw-r--r--nixpkgs/pkgs/data/themes/qogir/default.nix54
-rw-r--r--nixpkgs/pkgs/data/themes/qtcurve/default.nix69
-rw-r--r--nixpkgs/pkgs/data/themes/rose-pine-gtk/default.nix44
-rw-r--r--nixpkgs/pkgs/data/themes/shades-of-gray/default.nix30
-rw-r--r--nixpkgs/pkgs/data/themes/sierra/default.nix74
-rw-r--r--nixpkgs/pkgs/data/themes/skeu/default.nix46
-rw-r--r--nixpkgs/pkgs/data/themes/snowblind/default.nix30
-rw-r--r--nixpkgs/pkgs/data/themes/solarc/default.nix31
-rw-r--r--nixpkgs/pkgs/data/themes/stilo/default.nix27
-rw-r--r--nixpkgs/pkgs/data/themes/sweet/default.nix51
-rw-r--r--nixpkgs/pkgs/data/themes/ubuntu-themes/default.nix77
-rw-r--r--nixpkgs/pkgs/data/themes/venta/default.nix47
-rw-r--r--nixpkgs/pkgs/data/themes/vertex/default.nix37
-rw-r--r--nixpkgs/pkgs/data/themes/vimix/default.nix48
-rw-r--r--nixpkgs/pkgs/data/themes/whitesur/default.nix63
-rw-r--r--nixpkgs/pkgs/data/themes/yaru-remix/default.nix28
-rw-r--r--nixpkgs/pkgs/data/themes/yaru/default.nix47
-rw-r--r--nixpkgs/pkgs/data/themes/zuki/default.nix27
506 files changed, 18860 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/data/documentation/anarchism/default.nix b/nixpkgs/pkgs/data/documentation/anarchism/default.nix
new file mode 100644
index 000000000000..b9cedffa1948
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/anarchism/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv, fetchFromGitLab, xdg-utils }:
+
+stdenv.mkDerivation rec {
+  pname = "anarchism";
+  version = "15.3-1";
+
+  src = fetchFromGitLab {
+    domain = "salsa.debian.org";
+    owner = "debian";
+    repo = pname;
+    rev = "debian/${version}";
+    sha256 = "04ylk0y5b3jml2awmyz7m1hnymni8y1n83m0k6ychdh0px8frhm5";
+  };
+
+  postPatch = ''
+    substituteInPlace debian/anarchism.desktop \
+      --replace "/usr/bin/xdg-open" "${xdg-utils}/bin/xdg-open"
+    substituteInPlace debian/anarchism.desktop \
+      --replace "file:///usr" "file://$out"
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/doc/anarchism $out/share/applications $out/share/icons/hicolor/scalable/apps
+    cp -r {html,markdown} $out/share/doc/anarchism
+    cp debian/anarchism.svg $out/share/icons/hicolor/scalable/apps
+    cp debian/anarchism.desktop $out/share/applications
+  '';
+
+  meta = with lib; {
+    homepage = "http://www.anarchistfaq.org/";
+    changelog = "http://anarchism.pageabode.com/afaq/new.html";
+    description = "Exhaustive exploration of Anarchist theory and practice";
+    longDescription = ''
+      The Anarchist FAQ is an excellent source of information regarding Anarchist
+      (libertarian socialist) theory and practice. It covers all major topics,
+      from the basics of Anarchism to very specific discussions of politics,
+      social organization, and economics.
+    '';
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ davidak ];
+    platforms = with platforms; all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/documentation/bgnet/default.nix b/nixpkgs/pkgs/data/documentation/bgnet/default.nix
new file mode 100644
index 000000000000..a69a2d7a64f9
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/bgnet/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchFromGitHub, python3, pandoc }:
+
+stdenv.mkDerivation {
+  pname = "bgnet";
+  # to be found in the Makefile
+  version = "3.1.2";
+
+  src = fetchFromGitHub {
+    owner = "beejjorgensen";
+    repo = "bgnet";
+    rev = "782a785a35d43c355951b8151628d7c64e4d0346";
+    sha256 = "19w0r3zr71ydd29amqwn8q3npgrpy5kkshyshyji2hw5hky6iy92";
+  };
+
+  buildPhase = ''
+    # build scripts need some love
+    patchShebangs bin/preproc
+
+    make -C src bgnet.html
+  '';
+
+  installPhase = ''
+    install -Dm644 src/bgnet.html $out/share/doc/bgnet/html/index.html
+  '';
+
+  nativeBuildInputs = [ python3 pandoc ];
+
+  meta = {
+    description = "Beej’s Guide to Network Programming";
+    homepage = "https://beej.us/guide/bgnet/";
+    license = lib.licenses.unfree;
+
+    maintainers = with lib.maintainers; [ Profpatsch ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/documentation/execline-man-pages/default.nix b/nixpkgs/pkgs/data/documentation/execline-man-pages/default.nix
new file mode 100644
index 000000000000..ed4389cad6c9
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/execline-man-pages/default.nix
@@ -0,0 +1,9 @@
+{ lib, buildManPages }:
+
+buildManPages {
+  pname = "execline-man-pages";
+  version = "2.8.1.0.3";
+  sha256 = "1n7c75lmyrjzzcbwjl6fxhfs4k29qlr66r1q35799h942cn4li7v";
+  description = "Port of the documentation for the execline suite to mdoc";
+  maintainers = [ lib.maintainers.sternenseemann ];
+}
diff --git a/nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix b/nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix
new file mode 100644
index 000000000000..23dfd975bf74
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv
+, fetchurl
+, gettext
+, gnome
+, itstool
+, libxml2
+, yelp-tools
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-user-docs";
+  version = "41.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-user-docs/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "0xcIld06i7EXyfFIoLs/tJDRr3ExxEFod7G7/sWROVo=";
+  };
+
+  nativeBuildInputs = [
+    gettext
+    itstool
+    libxml2
+    yelp-tools
+  ];
+
+  enableParallelBuilding = true;
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+    };
+  };
+
+  meta = with lib; {
+    description = "User and system administration help for the GNOME desktop";
+    homepage = "https://help.gnome.org/users/gnome-help/";
+    license = licenses.cc-by-30;
+    maintainers = teams.gnome.members;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/documentation/linux-manual/default.nix b/nixpkgs/pkgs/data/documentation/linux-manual/default.nix
new file mode 100644
index 000000000000..27690f9b99cd
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/linux-manual/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, fetchurl, perl, linuxPackages_latest }:
+
+stdenv.mkDerivation rec {
+  pname = "linux-manual";
+  inherit (linuxPackages_latest.kernel) version src;
+
+  nativeBuildInputs = [ perl ];
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  postPatch = ''
+    patchShebangs --build \
+      scripts/kernel-doc \
+      scripts/split-man.pl
+  '';
+
+  installPhase = ''
+    mandir=$out/share/man/man9
+    mkdir -p $mandir
+
+    KBUILD_BUILD_TIMESTAMP=$(stat -c %Y Makefile) \
+    grep -F -l -Z \
+      --exclude-dir Documentation \
+      --exclude-dir tools \
+      -R '/**' \
+      | xargs -0 -n 256 -P $NIX_BUILD_CORES \
+        $SHELL -c '{ scripts/kernel-doc -man "$@" || :; } \
+          | scripts/split-man.pl '$mandir kernel-doc
+
+    test -f $mandir/kmalloc.9
+  '';
+
+  meta = with lib; {
+    homepage = "https://kernel.org/";
+    description = "Linux kernel API manual pages";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ mvs ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/documentation/man-pages-posix/default.nix b/nixpkgs/pkgs/data/documentation/man-pages-posix/default.nix
new file mode 100644
index 000000000000..1d9ddda377b9
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/man-pages-posix/default.nix
@@ -0,0 +1,27 @@
+{lib, stdenv, fetchurl}:
+
+let
+  year = "2017";
+  minor = "a";
+in
+
+stdenv.mkDerivation rec {
+  pname = "man-pages-posix";
+  version = "${year}${minor}";
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/docs/man-pages/man-pages-posix/${pname}-${year}-${minor}.tar.xz";
+    sha256 = "ce67bb25b5048b20dad772e405a83f4bc70faf051afa289361c81f9660318bc3";
+  };
+
+  makeFlags = [
+    "MANDIR=${placeholder "out"}/share/man"
+  ];
+
+  meta = {
+    description = "POSIX man-pages (0p, 1p, 3p)";
+    homepage = "https://www.kernel.org/doc/man-pages/";
+    platforms = lib.platforms.unix;
+    maintainers = [ lib.maintainers.sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/documentation/man-pages/default.nix b/nixpkgs/pkgs/data/documentation/man-pages/default.nix
new file mode 100644
index 000000000000..60a7e3f229f5
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/man-pages/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "man-pages";
+  version = "5.13";
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/docs/man-pages/${pname}-${version}.tar.xz";
+    sha256 = "sha256-YU2uPv59/UgJhnY6KiqBeSFQMqWkUmwL5eiZol8Ja4s=";
+  };
+
+  makeFlags = [ "prefix=$(out)" ];
+  postInstall = ''
+    # conflict with shadow-utils
+    rm $out/share/man/man5/passwd.5 \
+       $out/share/man/man3/getspnam.3
+
+    # The manpath executable looks up manpages from PATH. And this package won't
+    # appear in PATH unless it has a /bin folder
+    mkdir -p $out/bin
+  '';
+  outputDocdev = "out";
+
+  meta = with lib; {
+    description = "Linux development manual pages";
+    homepage = "https://www.kernel.org/doc/man-pages/";
+    repositories.git = "https://git.kernel.org/pub/scm/docs/man-pages/man-pages";
+    license = licenses.gpl2Plus;
+    platforms = with platforms; unix;
+    priority = 30; # if a package comes with its own man page, prefer it
+  };
+}
diff --git a/nixpkgs/pkgs/data/documentation/mustache-spec/default.nix b/nixpkgs/pkgs/data/documentation/mustache-spec/default.nix
new file mode 100644
index 000000000000..ce611c192f66
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/mustache-spec/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "mustache-spec";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "mustache";
+    repo = "mustache";
+    rev = "v${version}";
+    sha256 = "03xrfyjzm5ss6zkdlpl9ypwzcglspcdcnr3f94vj1rjfqm2rxcjw";
+  };
+
+  configurePhase = "";
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/{man/man5,doc/html}
+    cp man/mustache.5 $out/man/man5
+    cp man/mustache.5.html $out/doc/html
+  '';
+
+  meta = rec {
+    description = "Logic-less templates, specification package";
+    longDescription = ''
+      Inspired by ctemplate and et, Mustache is a framework-agnostic way to
+      render logic-free views.
+
+      Provides the specification as man page and html docs.
+
+      As ctemplates says, "It emphasizes separating logic from presentation: it
+      is impossible to embed application logic in this template language."
+
+      For a list of implementations and tips, see ${homepage}.
+    '';
+
+    homepage = "http://mustache.github.io/";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ Profpatsch ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/documentation/rnrs/builder.sh b/nixpkgs/pkgs/data/documentation/rnrs/builder.sh
new file mode 100644
index 000000000000..6ec5c855abab
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/rnrs/builder.sh
@@ -0,0 +1,12 @@
+source "$stdenv/setup" || exit 1
+
+# XXX: Eventually we could consider building the PDF/PS files as well.
+
+echo "source is \`$src', report name is \`$reportName'"
+
+mkdir -p "$out/share/info" &&					\
+makeinfo -o "$out/share/info/${reportName}.info" "$src"
+
+# XXX: HTML output is apparently broken.
+#mkdir -p "$out/share/doc/${reportName}" &&			\
+#makeinfo -o "$out/share/doc/${reportName}/html" --html --force "$src"
diff --git a/nixpkgs/pkgs/data/documentation/rnrs/common.nix b/nixpkgs/pkgs/data/documentation/rnrs/common.nix
new file mode 100644
index 000000000000..7ba5fe074500
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/rnrs/common.nix
@@ -0,0 +1,30 @@
+{ fetchurl, stdenv, texinfo, revision, sha256 }:
+
+stdenv.mkDerivation rec {
+  name = "r${toString revision}rs";
+  src = fetchurl {
+    url = "http://swiss.csail.mit.edu/ftpdir/scm/${name}.txi";
+    inherit sha256;
+  };
+
+  buildInputs = [ texinfo ];
+
+  # Tell the builder about the name of the report.
+  reportName = name;
+
+  builder = ./builder.sh;
+
+  meta = {
+    description = "Revised^${toString revision} Report on the Algorithmic Language Scheme";
+
+    longDescription = ''
+      This package contains the GNU Info version of the
+      the ${toString revision}th revision of the Report on the
+      Algorithmic Language Scheme.
+    '';
+
+    homepage = "http://swiss.csail.mit.edu/~jaffer/Scheme";
+
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/data/documentation/rnrs/r3rs.nix b/nixpkgs/pkgs/data/documentation/rnrs/r3rs.nix
new file mode 100644
index 000000000000..d252a1680bd7
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/rnrs/r3rs.nix
@@ -0,0 +1,7 @@
+{ fetchurl, stdenv, texinfo }:
+
+import ./common.nix {
+  inherit fetchurl stdenv texinfo;
+  revision = 3;
+  sha256 = "0knrpkr74s8yn4xcqxkqpgxmzdmzrvahh1n1csqc1wwd2rb4vnpr";
+}
diff --git a/nixpkgs/pkgs/data/documentation/rnrs/r4rs.nix b/nixpkgs/pkgs/data/documentation/rnrs/r4rs.nix
new file mode 100644
index 000000000000..1aa6a49f02d2
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/rnrs/r4rs.nix
@@ -0,0 +1,7 @@
+{ fetchurl, stdenv, texinfo }:
+
+import ./common.nix {
+  inherit fetchurl stdenv texinfo;
+  revision = 4;
+  sha256 = "02jgy0lvi5ymkdxwjasg50zl03zmyj8sgnfxxnjnbmif72c0k4p8";
+}
diff --git a/nixpkgs/pkgs/data/documentation/rnrs/r5rs.nix b/nixpkgs/pkgs/data/documentation/rnrs/r5rs.nix
new file mode 100644
index 000000000000..a0fff6507e4b
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/rnrs/r5rs.nix
@@ -0,0 +1,7 @@
+{ fetchurl, stdenv, texinfo }:
+
+import ./common.nix {
+  inherit fetchurl stdenv texinfo;
+  revision = 5;
+  sha256 = "1s2wcslwcgb9j89vjn7qs63qlnsv1481jaw1sgg33fgbgk6a8wrk";
+}
diff --git a/nixpkgs/pkgs/data/documentation/s6-man-pages/default.nix b/nixpkgs/pkgs/data/documentation/s6-man-pages/default.nix
new file mode 100644
index 000000000000..db4d05a91b04
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/s6-man-pages/default.nix
@@ -0,0 +1,9 @@
+{ lib, buildManPages }:
+
+buildManPages {
+  pname = "s6-man-pages";
+  version = "2.11.0.0.5";
+  sha256 = "03gl0vvdaqfb5hs0dfdbs9djxiyq3abcx9vwgkfw22b1rm2fa0r6";
+  description = "Port of the documentation for the s6 supervision suite to mdoc";
+  maintainers = [ lib.maintainers.sternenseemann ];
+}
diff --git a/nixpkgs/pkgs/data/documentation/s6-networking-man-pages/default.nix b/nixpkgs/pkgs/data/documentation/s6-networking-man-pages/default.nix
new file mode 100644
index 000000000000..769f34348b16
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/s6-networking-man-pages/default.nix
@@ -0,0 +1,9 @@
+{ lib, buildManPages }:
+
+buildManPages {
+  pname = "s6-networking-man-pages";
+  version = "2.5.0.0.2";
+  sha256 = "1ix8qrivp9prw0m401d7s9vkxhw16a4sxfhrs7abf9qqhs2zkd1r";
+  description = "Port of the documentation for the s6-networking suite to mdoc";
+  maintainers = [ lib.maintainers.sternenseemann ];
+}
diff --git a/nixpkgs/pkgs/data/documentation/scheme-manpages/default.nix b/nixpkgs/pkgs/data/documentation/scheme-manpages/default.nix
new file mode 100644
index 000000000000..900f28edc8d2
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/scheme-manpages/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "scheme-manpages-unstable";
+  version = "2021-03-11";
+
+  src = fetchFromGitHub {
+    owner = "schemedoc";
+    repo = "manpages";
+    rev = "d0163a4e29d29b2f0beb762be4095775134f5ef9";
+    sha256 = "0a8f7rq458c7985chwn1qb9yxcwyr0hl39r9vlvm5j687hy3igs2";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/share/man
+    cp -r man3/ man7/ $out/share/man/
+  '';
+
+  meta = with lib; {
+    description = "Unix manual pages for R6RS and R7RS";
+    homepage = "https://github.com/schemedoc/manpages";
+    license = licenses.mit;
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/documentation/std-man-pages/default.nix b/nixpkgs/pkgs/data/documentation/std-man-pages/default.nix
new file mode 100644
index 000000000000..a2f9f005eb93
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/std-man-pages/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "std-man-pages-4.4.0";
+
+  src = fetchurl {
+    url = "mirror://gcc/libstdc++/doxygen/libstdc++-man.4.4.0.tar.bz2";
+    sha256 = "0153py77ll759jacq41dp2z2ksr08pdcfic0rwjd6pr84dk89y9v";
+  };
+
+  outputDevdoc = "out";
+
+  installPhase = ''
+    mkdir -p $out/share/man
+    cp -R * $out/share/man
+  '';
+
+  meta = with lib; {
+    description = "GCC C++ STD manual pages";
+    homepage = "https://gcc.gnu.org/";
+    license = with licenses; [ fdl12Plus ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/documentation/stdman/default.nix b/nixpkgs/pkgs/data/documentation/stdman/default.nix
new file mode 100644
index 000000000000..c09c204c55a2
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/stdman/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, curl, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "stdman";
+  version = "2021.12.21";
+
+  src = fetchFromGitHub {
+    owner = "jeaye";
+    repo = "stdman";
+    rev = version;
+    sha256 = "sha256-wOMQzC5w8aDmxNxQ5HK8jMgoow1wXBfHGUwFBw2WiPA=";
+  };
+
+  outputDevdoc = "out";
+
+  preConfigure = "
+    patchShebangs ./configure
+    patchShebangs ./do_install
+  ";
+
+  buildInputs = [ curl ];
+
+  meta = with lib; {
+    description = "Formatted C++17 stdlib man pages (cppreference)";
+    longDescription = "stdman is a tool that parses archived HTML
+      files from cppreference and generates groff-formatted manual
+      pages for Unix-based systems. The goal is to provide excellent
+      formatting for easy readability.";
+    homepage = "https://github.com/jeaye/stdman";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.twey ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/documentation/zeal/default.nix b/nixpkgs/pkgs/data/documentation/zeal/default.nix
new file mode 100644
index 000000000000..8c806b87d4b2
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/zeal/default.nix
@@ -0,0 +1,44 @@
+{ lib, fetchFromGitHub, cmake, extra-cmake-modules, pkg-config
+, qtbase, qtimageformats, qtwebengine, qtx11extras, mkDerivation
+, libarchive, libXdmcp, libpthreadstubs, xcbutilkeysyms  }:
+
+mkDerivation rec {
+  pname = "zeal";
+  version = "0.6.999";
+
+  src = fetchFromGitHub {
+    owner = "zealdocs";
+    repo = "zeal";
+    rev = "1ce0e2e446232e7647c5588c1f603f1dd88e0f67";
+    sha256 = "0gj5qcm7ck8m5zfmiabay2f7wbxldmrkw8m3xi7v9i8y8hx0jkxr";
+  };
+
+  # we only need this if we are using a version that hasn't been released. We
+  # could also match on the "VERSION x.y.z" bit but then it would have to be
+  # updated based on whatever is the latest release, so instead just rewrite the
+  # line.
+  postPatch = ''
+    sed -i CMakeLists.txt \
+      -e 's@^project.*@project(Zeal VERSION ${version})@'
+  '';
+
+  nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ];
+
+  buildInputs = [
+    qtbase qtimageformats qtwebengine qtx11extras
+    libarchive
+    libXdmcp libpthreadstubs xcbutilkeysyms
+  ];
+
+  meta = with lib; {
+    description = "A simple offline API documentation browser";
+    longDescription = ''
+      Zeal is a simple offline API documentation browser inspired by Dash (macOS
+      app), available for Linux and Windows.
+    '';
+    homepage = "https://zealdocs.org/";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ skeidel peterhoeg ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/3270font/default.nix b/nixpkgs/pkgs/data/fonts/3270font/default.nix
new file mode 100644
index 000000000000..914583d97eec
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/3270font/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+let
+  version = "2.3.1";
+in
+fetchzip {
+  name = "3270font-${version}";
+
+  url = "https://github.com/rbanffy/3270font/releases/download/v${version}/3270_fonts_3b8f2fb.zip";
+
+  sha256 = "06n87ydn2ayfhpg8318chmnwmdk3d4mmy65fcgf8frbiv2kpqncs";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.afm -d $out/share/fonts/type1
+  '';
+
+  meta = with lib; {
+    description = "Monospaced font based on IBM 3270 terminals";
+    homepage = "https://github.com/rbanffy/3270font";
+    changelog = "https://github.com/rbanffy/3270font/blob/v${version}/CHANGELOG.md";
+    license = [ licenses.bsd3 licenses.ofl ];
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/agave/default.nix b/nixpkgs/pkgs/data/fonts/agave/default.nix
new file mode 100644
index 000000000000..39ef6e34aaae
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/agave/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchurl }:
+
+let
+  pname = "agave";
+  version = "35";
+in fetchurl {
+  name = "${pname}-${version}";
+  url = "https://github.com/agarick/agave/releases/download/v${version}/Agave-Regular.ttf";
+
+  downloadToTemp = true;
+  recursiveHash = true;
+  postFetch = ''
+    install -D $downloadedFile $out/share/fonts/truetype/Agave-Regular.ttf
+  '';
+
+  sha256 = "10shwsl1illdafnc352j439lklrxksip1vlh4jc934cr9qf4c1fz";
+
+  meta = with lib; {
+    description = "truetype monospaced typeface designed for X environments";
+    homepage = "https://b.agaric.net/page/agave";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dtzWill ];
+    platforms = platforms.all;
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/aileron/default.nix b/nixpkgs/pkgs/data/fonts/aileron/default.nix
new file mode 100644
index 000000000000..4961a5e7449d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/aileron/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "102";
+  pname = "aileron";
+in
+
+fetchzip {
+  name = "${pname}-font-${majorVersion}.${minorVersion}";
+
+  url = "http://dotcolon.net/DL/font/${pname}.zip";
+  sha256 = "04xnzdy9plzd2p02yq367h37m5ygx0w8cpkdv39cc3754ljlsxim";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype/${pname}
+    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${pname}/";
+    description = "A helvetica font in nine weights";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.cc0;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/alegreya-sans/default.nix b/nixpkgs/pkgs/data/fonts/alegreya-sans/default.nix
new file mode 100644
index 000000000000..cc0cd6cac9b9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/alegreya-sans/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "alegreya-sans";
+  version = "2.008";
+
+  src = fetchFromGitHub {
+    owner = "huertatipografica";
+    repo = "Alegreya-Sans";
+    rev = "v${version}";
+    sha256 = "0xz5lq9fh0pj02ifazhddzh792qkxkz1z6ylj26d93wshc90jl5g";
+  };
+
+  installPhase = ''
+    install -D -m 444 fonts/otf/* -t $out/share/fonts/otf
+    install -D -m 444 fonts/ttf/* -t $out/share/fonts/ttf
+    install -D -m 444 fonts/webfonts/*.woff -t $out/share/fonts/woff
+    install -D -m 444 fonts/webfonts/*.woff2 -t $out/share/fonts/woff2
+  '';
+
+  meta = with lib; {
+    description = "Humanist sans serif family with a calligraphic feeling";
+    longDescription = ''
+Alegreya Sans is a humanist sans serif family with a calligraphic feeling that conveys a dynamic and varied rhythm. This gives a pleasant feeling to readers of long texts.
+
+The family follows humanist proportions and principles, just like the serif version of the family, Alegreya. It achieves a ludic and harmonious paragraph through elements carefully designed in an atmosphere of diversity. The italics bring a strong emphasis to the roman styles, and each have seven weights to bring you a wide typographic palette.
+
+Alegreya Sans supports expert latin, greek and cyrillic character sets and provides advanced typography OpenType features such as small caps, dynamic ligatures and fractions, four set of figures, super and subscript characters, ordinals, localized accent forms for spanish, catalan, guaraní, dutch, turkish, romanian, serbian among others.
+
+The Alegreya type system is a "super family", originally intended for literature, and includes sans and serif sister families.
+    '';
+    homepage = "https://www.huertatipografica.com/en/fonts/alegreya-sans-ht";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ Thra11 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/alegreya/default.nix b/nixpkgs/pkgs/data/fonts/alegreya/default.nix
new file mode 100644
index 000000000000..b2ec1de0cc89
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/alegreya/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "alegreya";
+  version = "2.008";
+
+  src = fetchFromGitHub {
+    owner = "huertatipografica";
+    repo = "Alegreya";
+    rev = "v${version}";
+    sha256 = "1m5xr95y6qxxv2ryvhfck39d6q5hxsr51f530fshg53x48l2mpwr";
+  };
+
+  installPhase = ''
+    install -D -m 444 fonts/otf/* -t $out/share/fonts/otf
+    install -D -m 444 fonts/ttf/* -t $out/share/fonts/ttf
+    install -D -m 444 fonts/webfonts/*.woff -t $out/share/fonts/woff
+    install -D -m 444 fonts/webfonts/*.woff2 -t $out/share/fonts/woff2
+  '';
+
+  meta = with lib; {
+    description = "An elegant and versatile font family for comfortable reading";
+    longDescription = ''
+Alegreya is a typeface originally intended for literature. Among its crowning characteristics, it conveys a dynamic and varied rhythm which facilitates the reading of long texts. Also, it provides freshness to the page while referring to the calligraphic letter, not as a literal interpretation, but rather in a contemporary typographic language.
+
+The italic has just as much care and attention to detail in the design as the roman. The bold weights are strong, and the Black weights are really experimental for the genre. There is also a Small Caps sister family.
+
+Not only does Alegreya provide great performance, but also achieves a strong and harmonious text by means of elements designed in an atmosphere of diversity.
+
+The Alegreya type system is a "super family", originally intended for literature, and includes serif and sans serif sister families.
+
+It supports expert latin, greek and cyrillic character sets and provides advanced typography OpenType features such as small caps, dynamic ligatures and fractions, four set of figures, super and subscript characters, ordinals, localized accent forms for spanish, catalan, guaraní, dutch, turkish, romanian, serbian among others.
+
+Alegreya was chosen at the ATypI Letter2 competition in September 2011, and one of the top 14 text type systems. It was also selected in the 2nd Bienal Iberoamericana de Diseño, competition held in Madrid in 2010 and Tipos Latinos.
+
+Designed by Juan Pablo del Peral for Huerta Tipográfica.
+    '';
+    homepage = "https://www.huertatipografica.com/en/fonts/alegreya-ht-pro";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ Thra11 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/amiri/default.nix b/nixpkgs/pkgs/data/fonts/amiri/default.nix
new file mode 100644
index 000000000000..9867b84757aa
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/amiri/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  version = "0.113";
+
+in fetchzip rec {
+  name = "Amiri-${version}";
+
+  url = "https://github.com/alif-type/amiri/releases/download/${version}/${name}.zip";
+
+  sha256 = "0v5xm4spyww8wy6j9kpb01ixrakw7wp6jng4xnh220iy6yqcxm7v";
+
+  postFetch = ''
+    unzip $downloadedFile
+    install -m444 -Dt $out/share/fonts/truetype ${name}/*.ttf
+    install -m444 -Dt $out/share/doc/${name}    ${name}/{*.txt,*.pdf}
+  '';
+
+  meta = with lib; {
+    description = "A classical Arabic typeface in Naskh style";
+    homepage = "https://www.amirifont.org/";
+    license = licenses.ofl;
+    maintainers = [ maintainers.vbgl ];
+    platforms = platforms.all;
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/andagii/default.nix b/nixpkgs/pkgs/data/fonts/andagii/default.nix
new file mode 100644
index 000000000000..6d0b5f483ec4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/andagii/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.0.2";
+in fetchzip {
+  name = "andagii-${version}";
+
+  url = "http://www.i18nguy.com/unicode/andagii.zip";
+  curlOpts = "--user-agent 'Mozilla/5.0'";
+  postFetch = ''
+    unzip $downloadedFile
+    mkdir -p $out/share/fonts/truetype
+    cp -v ANDAGII_.TTF $out/share/fonts/truetype/andagii.ttf
+  '';
+  sha256 = "0j5kf2fmyqgnf5ji6h0h79lq9n9d85hkfrr4ya8hqj4gwvc0smb2";
+
+  # There are multiple claims that the font is GPL, so I include the
+  # package; but I cannot find the original source, so use it on your
+  # own risk Debian claims it is GPL - good enough for me.
+  meta = with lib; {
+    homepage = "http://www.i18nguy.com/unicode/unicode-font.html";
+    description = "Unicode Plane 1 Osmanya script font";
+    maintainers = with maintainers; [ raskin ];
+    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..aaa380098a27
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/andika/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchzip }:
+
+let
+  version = "6.001";
+in
+  fetchzip rec {
+    name = "andika-${version}";
+
+    url = "https://software.sil.org/downloads/r/andika/Andika-${version}.zip";
+
+    postFetch = ''
+      mkdir -p $out/share/{doc,fonts}
+      unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+      unzip -j $downloadedFile \*OFL.txt \*OFL-FAQ.txt \*README.txt \*FONTLOG.txt -d "$out/share/doc/${name}"
+    '';
+
+    sha256 = "sha256-ukPFBLjHQbOosQ1h0ImVlz8HhNNMp0e41SjzUhQaZtc=";
+
+    meta = with lib; {
+      homepage = "https://software.sil.org/andika";
+      description = "A family designed especially for literacy use taking into account the needs of beginning readers";
+      longDescription = ''
+      Andika is a sans serif, Unicode-compliant font designed especially for literacy use, taking into account the needs of beginning readers. The focus is on clear, easy-to-perceive letterforms that will not be readily confused with one another.
+
+      A sans serif font is preferred by some literacy personnel for teaching people to read. Its forms are simpler and less cluttered than those of most serif fonts. For years, literacy workers have had to make do with fonts that were not really suitable for beginning readers and writers. In some cases, literacy specialists have had to tediously assemble letters from a variety of fonts in order to get all of the characters they need for their particular language project, resulting in confusing and unattractive publications. Andika addresses those issues.
+      '';
+      license = licenses.ofl;
+      platforms = platforms.all;
+      maintainers = [ maintainers.f--t ];
+    };
+  }
diff --git a/nixpkgs/pkgs/data/fonts/ankacoder/condensed.nix b/nixpkgs/pkgs/data/fonts/ankacoder/condensed.nix
new file mode 100644
index 000000000000..655c780129d8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ankacoder/condensed.nix
@@ -0,0 +1,24 @@
+{ lib, fetchzip }:
+
+let version = "1.100"; in
+fetchzip {
+  name = "ankacoder-condensed-${version}";
+  url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/anka-coder-fonts/AnkaCoderCondensed.${version}.zip";
+
+  postFetch = ''
+    unzip $downloadedFile
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+  '';
+
+  sha256 = "0i80zpr2y9368rg2i6x8jv0g7d03kdyr5h7w9yz7pjd7i9xd8439";
+
+  meta = with lib; {
+    description = "Anka/Coder Condensed font";
+    homepage = "https://code.google.com/archive/p/anka-coder-fonts";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ dtzWill ];
+    platforms = platforms.all;
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/ankacoder/default.nix b/nixpkgs/pkgs/data/fonts/ankacoder/default.nix
new file mode 100644
index 000000000000..fbf587c7c6ca
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ankacoder/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchzip }:
+
+let version = "1.100"; in
+fetchzip {
+  name = "ankacoder-${version}";
+  url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/anka-coder-fonts/AnkaCoder.${version}.zip";
+
+  postFetch = ''
+    unzip $downloadedFile
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+  '';
+
+  sha256 = "1jqx9micfmiarqh9xp330gl96v3vxbwzz9cmg2vi845n9md4im85";
+
+  meta = with lib; {
+    description = "Anka/Coder fonts";
+    homepage = "https://code.google.com/archive/p/anka-coder-fonts";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ dtzWill ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/anonymous-pro/default.nix b/nixpkgs/pkgs/data/fonts/anonymous-pro/default.nix
new file mode 100644
index 000000000000..cb6ec6d89445
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/anonymous-pro/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.002";
+in fetchzip rec {
+  name = "anonymousPro-${version}";
+
+  url = "http://www.marksimonson.com/assets/content/fonts/AnonymousPro-${version}.zip";
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.ttf                           -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.txt                           -d "$out/share/doc/${name}"
+  '';
+  sha256 = "05rgzag38qc77b31sm5i2vwwrxbrvwzfsqh3slv11skx36pz337f";
+
+  meta = with lib; {
+    homepage = "https://www.marksimonson.com/fonts/view/anonymous-pro";
+    description = "TrueType font set intended for source code";
+    longDescription = ''
+      Anonymous Pro (2009) is a family of four fixed-width fonts
+      designed with coding in mind. Anonymous Pro features an
+      international, Unicode-based character set, with support for
+      most Western and Central European Latin-based languages, plus
+      Greek and Cyrillic. It is designed by Mark Simonson.
+    '';
+    maintainers = with maintainers; [ raskin ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/arkpandora/default.nix b/nixpkgs/pkgs/data/fonts/arkpandora/default.nix
new file mode 100644
index 000000000000..827d7b0a5a44
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/arkpandora/default.nix
@@ -0,0 +1,25 @@
+{ fetchurl }:
+
+let
+  version = "2.04";
+in fetchurl {
+  name = "arkpandora-${version}";
+
+  urls = [
+    "http://distcache.FreeBSD.org/ports-distfiles/ttf-arkpandora-${version}.tgz"
+    "ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ttf-arkpandora-${version}.tgz"
+    "http://www.users.bigpond.net.au/gavindi/ttf-arkpandora-${version}.tgz"
+  ];
+  downloadToTemp = true;
+  recursiveHash = true;
+  postFetch = ''
+    tar -xzvf $downloadedFile --strip-components=1
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+  '';
+  sha256 = "177k0fbs0787al0snkl8w68d2qkg7snnnq6qp28j9s98vaabs04k";
+
+  meta = {
+    description = "Font, metrically identical to Arial and Times New Roman";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/arphic/default.nix b/nixpkgs/pkgs/data/fonts/arphic/default.nix
new file mode 100644
index 000000000000..02e2a2de417b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/arphic/default.nix
@@ -0,0 +1,55 @@
+{ lib, fetchzip, mkfontscale, mkfontdir }:
+
+let
+  version = "0.2.20080216.2";
+in {
+  arphic-ukai = fetchzip {
+    name = "arphic-ukai-${version}";
+
+    url = "mirror://ubuntu/pool/main/f/fonts-arphic-ukai/fonts-arphic-ukai_${version}.orig.tar.bz2";
+
+    postFetch = ''
+      tar -xjvf $downloadedFile --strip-components=1
+      install -D -v ukai.ttc $out/share/fonts/truetype/arphic-ukai.ttc
+      cd $out/share/fonts
+      ${mkfontdir}/bin/mkfontdir
+      ${mkfontscale}/bin/mkfontscale
+    '';
+
+    sha256 = "0xi5ycm7ydzpn7cqxv1kcj9vd70nr9wn8v27hmibyjc25y2qdmzl";
+
+    meta = with lib; {
+      description = "CJK Unicode font Kai style";
+      homepage = "https://www.freedesktop.org/wiki/Software/CJKUnifonts/";
+
+      license = licenses.arphicpl;
+      maintainers = [ maintainers.changlinli ];
+      platforms = platforms.all;
+    };
+  };
+
+  arphic-uming = fetchzip {
+    name = "arphic-uming-${version}";
+
+    url = "mirror://ubuntu/pool/main/f/fonts-arphic-uming/fonts-arphic-uming_${version}.orig.tar.bz2";
+
+    postFetch = ''
+      tar -xjvf $downloadedFile --strip-components=1
+      install -D -v uming.ttc $out/share/fonts/truetype/arphic-uming.ttc
+      cd $out/share/fonts
+      ${mkfontdir}/bin/mkfontdir
+      ${mkfontscale}/bin/mkfontscale
+    '';
+
+    sha256 = "16jybvj1cxamm682caj6nsm6l5c60x9mgchp1l2izrw2rvc8x38d";
+
+    meta = with lib; {
+      description = "CJK Unicode font Ming style";
+      homepage = "https://www.freedesktop.org/wiki/Software/CJKUnifonts/";
+
+      license = licenses.arphicpl;
+      maintainers = [ maintainers.changlinli ];
+      platforms = platforms.all;
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/atkinson-hyperlegible/default.nix b/nixpkgs/pkgs/data/fonts/atkinson-hyperlegible/default.nix
new file mode 100644
index 000000000000..ef7425e12e49
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/atkinson-hyperlegible/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "atkinson-hyperlegible";
+  version = "unstable-2021-04-29";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "googlefonts";
+  repo = "atkinson-hyperlegible";
+  rev = "1cb311624b2ddf88e9e37873999d165a8cd28b46";
+  sha256 = "sha256-urSTqC3rfDRM8IMG+edwKEe7NPiTuDZph3heGHzLDks=";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -Dm644 -t $out/share/fonts/opentype fonts/otf/*
+  '';
+
+  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..50f456373c69
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/aurulent-sans/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchFromGitHub }:
+
+fetchFromGitHub rec {
+  name = "aurulent-sans-0.1";
+  owner = "deepfire";
+  repo = "hartke-aurulent-sans";
+  rev = name;
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    tar xf $downloadedFile -C $out/share/fonts --strip=1
+  '';
+  sha256 = "1l60psfv9x0x9qx9vp1qnhmck7a7kks385m5ycrd3d91irz1j5li";
+
+  meta = {
+    description = "Aurulent Sans";
+    longDescription = "Aurulent Sans is a humanist sans serif intended to be used as an interface font.";
+    homepage = "http://delubrum.org/";
+    maintainers = with lib.maintainers; [ deepfire ];
+    license = lib.licenses.ofl;
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/b612/default.nix b/nixpkgs/pkgs/data/fonts/b612/default.nix
new file mode 100644
index 000000000000..bf97ff30c6d6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/b612/default.nix
@@ -0,0 +1,39 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "1.008";
+  pname = "b612";
+in fetchFromGitHub {
+  name = "${pname}-font-${version}";
+  owner = "polarsys";
+  repo = "b612";
+  rev = version;
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    mkdir -p $out/share/fonts/truetype/${pname}
+    cp fonts/ttf/*.ttf $out/share/fonts/truetype/${pname}
+  '';
+  sha256 = "0r3lana1q9w3siv8czb3p9rrb5d9svp628yfbvvmnj7qvjrmfsiq";
+
+  meta = with lib; {
+    homepage = "http://b612-font.com/";
+    description = "Highly legible font family for use on aircraft cockpit screens";
+    longDescription = ''
+      B612 is the result of a research project initiated by Airbus. The font
+      was designed by Nicolas Chauveau and Thomas Paillot (intactile DESIGN) with the
+      support of Jean‑Luc Vinot (ENAC). Prior research by Jean‑Luc Vinot (DGAC/DSNA)
+      and Sylvie Athènes (Université de Toulouse III). The challenge for the
+      "Aeronautical Font" was to improve the display of information on the cockpit
+      screens, in particular in terms of legibility and comfort of reading, and to
+      optimize the overall homogeneity of the cockpit.
+
+      Intactile DESIGN was hired to work on the design of eight typographic
+      variants of the font. This one, baptized B612 in reference to the
+      imaginary asteroid of the aviator Saint‑Exupéry, benefited from a complete
+      hinting on all the characters.
+      '';
+    license = with licenses; [ ofl epl10 bsd3 ] ;
+    maintainers = with maintainers; [ leenaars ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/babelstone-han/default.nix b/nixpkgs/pkgs/data/fonts/babelstone-han/default.nix
new file mode 100644
index 000000000000..7f2898db9f1a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/babelstone-han/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchzip }:
+
+let
+  version = "13.0.3";
+in fetchzip {
+  name = "babelstone-han-${version}";
+
+  # upstream download links are unversioned, so hash changes
+  url = "https://web.archive.org/web/20200210125314/https://www.babelstone.co.uk/Fonts/Download/BabelStoneHan.zip";
+  postFetch = ''
+    mkdir -p $out/share/fonts/truetype
+    unzip $downloadedFile '*.ttf' -d $out/share/fonts/truetype
+  '';
+  sha256 = "018isk3hbzsihzrxavgjbn485ngzvlm96npqx9y7zpkxsssslc4w";
+
+  meta = with lib; {
+    description = "Unicode CJK font with over 36000 Han characters";
+    homepage = "https://www.babelstone.co.uk/Fonts/Han.html";
+
+    license = licenses.free;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ volth emily ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/baekmuk-ttf/default.nix b/nixpkgs/pkgs/data/fonts/baekmuk-ttf/default.nix
new file mode 100644
index 000000000000..92f7401b32da
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/baekmuk-ttf/default.nix
@@ -0,0 +1,20 @@
+{ fetchzip }:
+
+fetchzip rec {
+  name = "baekmuk-ttf-2.2";
+
+  url = "http://kldp.net/baekmuk/release/865-${name}.tar.gz";
+  postFetch = ''
+    tar -xzvf $downloadedFile --strip-components=1
+    install -m444 -Dt $out/share/fonts        ttf/*.ttf
+    install -m444 -Dt $out/share/doc/${name}  COPYRIGHT*
+  '';
+  sha256 = "1jgsvack1l14q8lbcv4qhgbswi30mf045k37rl772hzcmx0r206g";
+
+  meta = {
+    description = "Korean font";
+    homepage = "http://kldp.net/projects/baekmuk/";
+    license = "BSD-like";
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/bakoma-ttf/default.nix b/nixpkgs/pkgs/data/fonts/bakoma-ttf/default.nix
new file mode 100644
index 000000000000..a8c01b41e676
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/bakoma-ttf/default.nix
@@ -0,0 +1,20 @@
+{ fetchzip }:
+
+fetchzip {
+  name = "bakoma-ttf";
+
+  url = "http://tarballs.nixos.org/sha256/1j1y3cq6ys30m734axc0brdm2q9n2as4h32jws15r7w5fwr991km";
+
+  postFetch = ''
+    tar xjvf $downloadedFile --strip-components=1
+    mkdir -p $out/share/fonts/truetype
+    cp ttf/*.ttf $out/share/fonts/truetype
+  '';
+
+  sha256 = "0g7i723n00cqx2va05z1h6v3a2ar69gqw4hy6pjj7m0ml906rngc";
+
+  meta = {
+    description = "TrueType versions of the Computer Modern and AMS TeX Fonts";
+    homepage = "http://www.ctan.org/tex-archive/fonts/cm/ps-type1/bakoma/ttf/";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/barlow/default.nix b/nixpkgs/pkgs/data/fonts/barlow/default.nix
new file mode 100644
index 000000000000..e9257260ea2c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/barlow/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchzip }:
+let
+  version = "1.422";
+in
+fetchzip rec {
+  name = "barlow-${version}";
+
+  url = "https://tribby.com/fonts/barlow/download/barlow-${version}.zip";
+
+  sha256 = "08ld4c3zq4d1px07lc64i7l8848zsc61ddy3654w2sh0hx5sm5ld";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.eot -d $out/share/fonts/eot
+    unzip -j $downloadedFile \*.woff -d $out/share/fonts/woff
+    unzip -j $downloadedFile \*.woff2 -d $out/share/fonts/woff2
+  '';
+
+  meta = with lib; {
+    description = "A grotesk variable font superfamily";
+    homepage = "https://tribby.com/fonts/barlow/";
+    license = licenses.ofl;
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/behdad-fonts/default.nix b/nixpkgs/pkgs/data/fonts/behdad-fonts/default.nix
new file mode 100644
index 000000000000..be6ed005b166
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/behdad-fonts/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "behdad-fonts";
+  version = "0.0.3";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "font-store";
+  repo = "BehdadFont";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/behrad-fonts {} \;
+  '';
+  sha256 = "0c57232462cv1jrfn0m2bl7jzcfkacirrdd2qimrc8iqhkz0ajfz";
+
+  meta = with lib; {
+    homepage = "https://github.com/font-store/BehdadFont";
+    description = "A Persian/Arabic Open Source Font";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/bront/default.nix b/nixpkgs/pkgs/data/fonts/bront/default.nix
new file mode 100644
index 000000000000..d21c820f127b
--- /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 = licenses.free;
+    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..e68d429db2e8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cabin/default.nix
@@ -0,0 +1,37 @@
+{ lib, fetchFromGitHub }:
+
+fetchFromGitHub rec {
+  name = "cabin-1.005";
+
+  owner = "impallari";
+  repo = "Cabin";
+  rev = "982839c790e9dc57c343972aa34c51ed3b3677fd";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -m444 -Dt $out/share/fonts/opentype fonts/OTF/*.otf
+    install -m444 -Dt $out/share/doc/${name}    README.md FONTLOG.txt
+  '';
+
+  sha256 = "1bl7h217m695jn4rbniialfk573aa44fslp2rjxnhkicakpcm44h";
+
+  meta = with lib; {
+    description = "A humanist sans with 4 weights and true italics";
+    longDescription = ''
+      The Cabin font family is a humanist sans with 4 weights and true italics,
+      inspired by Edward Johnston’s and Eric Gill’s typefaces, with a touch of
+      modernism. Cabin incorporates modern proportions, optical adjustments, and
+      some elements of the geometric sans. It remains true to its roots, but has
+      its own personality.
+
+      The weight distribution is almost monotone, although top and bottom curves
+      are slightly thin. Counters of the b, g, p and q are rounded and optically
+      adjusted. The curved stem endings have a 10 degree angle. E and F have
+      shorter center arms. M is splashed.
+    '';
+    homepage = "http://www.impallari.com/cabin";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ cmfwyp ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/caladea/cambria-alias.conf b/nixpkgs/pkgs/data/fonts/caladea/cambria-alias.conf
new file mode 100644
index 000000000000..78452961e8e9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/caladea/cambria-alias.conf
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
+<fontconfig>
+  <!-- Configure Caladea as a metric-compatible alias for the
+       Microsoft Cambria font family. -->
+  <alias binding="same">
+    <family>Cambria</family>
+    <accept>
+      <family>Caladea</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Caladea</family>
+    <default>
+      <family>Cambria</family>
+    </default>
+  </alias>
+</fontconfig>
diff --git a/nixpkgs/pkgs/data/fonts/caladea/default.nix b/nixpkgs/pkgs/data/fonts/caladea/default.nix
new file mode 100644
index 000000000000..14a8de1b0d9e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/caladea/default.nix
@@ -0,0 +1,37 @@
+{ lib, fetchzip }:
+
+let
+  version = "20130214";
+in fetchzip {
+  name = "caladea-${version}";
+
+  url = "https://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/crosextrafonts-${version}.tar.gz";
+  postFetch = ''
+    tar -xzvf $downloadedFile --strip-components=1
+    mkdir -p $out/etc/fonts/conf.d
+    mkdir -p $out/share/fonts/truetype
+    cp -v *.ttf $out/share/fonts/truetype
+    cp -v ${./cambria-alias.conf} $out/etc/fonts/conf.d/30-cambria.conf
+  '';
+  sha256 = "0kwm42ggr8kvcn3554cpmv90xzam1sdncx7x3zs3bzp88mxrnv1z";
+
+  meta = with lib; {
+    # This font doesn't appear to have any official web site but this
+    # one provides some good information and samples.
+    homepage = "http://openfontlibrary.org/en/font/caladea";
+    description = "A serif font metric-compatible with Microsoft Cambria";
+    longDescription = ''
+      Caladea is a free font that is metric-compatible with the
+      Microsoft Cambria font. Developed by Carolina Giovagnoli and
+      Andrés Torresi at Huerta Tipográfica foundry.
+    '';
+    license = licenses.asl20;
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+
+    # Reduce the priority of this package. The intent is that if you
+    # also install the `vista-fonts` package, then you probably will
+    # not want to install the font alias of this package.
+    priority = 10;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/camingo-code/default.nix b/nixpkgs/pkgs/data/fonts/camingo-code/default.nix
new file mode 100644
index 000000000000..3db1f6728185
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/camingo-code/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.0";
+in fetchzip rec {
+  name = "camingo-code-${version}";
+
+  url = "https://github.com/chrissimpkins/codeface/releases/download/font-collection/codeface-fonts.zip";
+  postFetch = ''
+    unzip $downloadedFile
+    install -m444 -Dt $out/share/fonts/truetype fonts/camingo-code/*.ttf
+    install -m444 -Dt $out/share/doc/${name}    fonts/camingo-code/*.txt
+  '';
+  sha256 = "16iqjwwa7pnswvcc4w8nglkd0m0fz50qsz96i1kcpqip3nwwvw7y";
+
+  meta = with lib; {
+    homepage = "https://www.myfonts.com/fonts/jan-fromm/camingo-code/";
+    description = "A monospaced typeface designed for source-code editors";
+    platforms = platforms.all;
+    license = licenses.cc-by-nd-30;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/cantarell-fonts/default.nix b/nixpkgs/pkgs/data/fonts/cantarell-fonts/default.nix
new file mode 100644
index 000000000000..49b4e6354ca4
--- /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/carlito/calibri-alias.conf b/nixpkgs/pkgs/data/fonts/carlito/calibri-alias.conf
new file mode 100644
index 000000000000..bbffff23721f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/carlito/calibri-alias.conf
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
+<fontconfig>
+  <!-- Configure Carlito as a metric-compatible alias for the
+       Microsoft Calibri font family. -->
+  <alias binding="same">
+    <family>Calibri</family>
+    <accept>
+      <family>Carlito</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Carlito</family>
+    <default>
+      <family>Calibri</family>
+    </default>
+  </alias>
+</fontconfig>
diff --git a/nixpkgs/pkgs/data/fonts/carlito/default.nix b/nixpkgs/pkgs/data/fonts/carlito/default.nix
new file mode 100644
index 000000000000..1de2e9afc0f9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/carlito/default.nix
@@ -0,0 +1,39 @@
+{ lib, fetchzip }:
+
+let
+  version = "20130920";
+in fetchzip {
+  name = "carlito-${version}";
+
+  url = "https://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/crosextrafonts-carlito-${version}.tar.gz";
+
+  postFetch = ''
+    tar -xzvf $downloadedFile --strip-components=1
+    mkdir -p $out/etc/fonts/conf.d
+    mkdir -p $out/share/fonts/truetype
+    cp -v *.ttf $out/share/fonts/truetype
+    cp -v ${./calibri-alias.conf} $out/etc/fonts/conf.d/30-calibri.conf
+  '';
+
+  sha256 = "0d72zy6kdmxgpi63r3yvi3jh1hb7lvlgv8hgd4ag0x10dz18mbzv";
+
+  meta = with lib; {
+    # This font doesn't appear to have any official web site but this
+    # one provides some good information and samples.
+    homepage = "http://openfontlibrary.org/en/font/carlito";
+    description = "A sans-serif font metric-compatible with Microsoft Calibri";
+    longDescription = ''
+      Carlito is a free font that is metric-compatible with the
+      Microsoft Calibri font. The font is designed by Łukasz Dziedzic
+      of the tyPoland foundry and based his Lato font.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+
+    # Reduce the priority of this package. The intent is that if you
+    # also install the `vista-fonts` package, then you probably will
+    # not want to install the font alias of this package.
+    priority = 10;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix b/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix
new file mode 100644
index 000000000000..67ad8682a8e8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchzip }:
+let
+  version = "2111.01";
+in
+fetchzip {
+  name = "cascadia-code-${version}";
+
+  url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaCode-${version}.zip";
+
+  sha256 = "sha256-kUVTQ/oMZztNf22sDbQBpQW0luSc5nr5sxWU5etLDec=";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    description = "Monospaced font that includes programming ligatures and is designed to enhance the modern look and feel of the Windows Terminal";
+    homepage = "https://github.com/microsoft/cascadia-code";
+    changelog = "https://github.com/microsoft/cascadia-code/raw/v${version}/FONTLOG.txt";
+    license = licenses.ofl;
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/charis-sil/default.nix b/nixpkgs/pkgs/data/fonts/charis-sil/default.nix
new file mode 100644
index 000000000000..75f1d89be770
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/charis-sil/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchzip }:
+
+let
+  version = "6.001";
+in
+  fetchzip rec {
+    name = "charis-sil-${version}";
+
+    url = "https://software.sil.org/downloads/r/charis/CharisSIL-${version}.zip";
+
+    postFetch = ''
+      mkdir -p $out/share/{doc,fonts}
+      unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+      unzip -j $downloadedFile \*OFL.txt \*OFL-FAQ.txt \*README.txt \*FONTLOG.txt -d "$out/share/doc/${name}"
+    '';
+
+    sha256 = "sha256-eKSOvYuTMpAnTk4sRiWFUDJrTsF+K5716ALCepaUU08=";
+
+    meta = with lib; {
+      homepage = "https://software.sil.org/charis";
+      description = "A family of highly readable fonts for broad multilingual use";
+      longDescription = ''
+      This Charis SIL font is essentially the same design as the SIL Charis font first released by SIL in 1997. Charis is similar to Bitstream Charter, one of the first fonts designed specifically for laser printers. It is highly readable and holds up well in less-than-ideal reproduction environments. It also has a full set of styles – regular, italic, bold, bold italic. Charis is a serif, proportionally-spaced font optimized for readability in long printed documents.
+
+      The goal for this product was to provide a single Unicode-based font family that would contain a comprehensive inventory of glyphs needed for almost any Roman- or Cyrillic-based writing system, whether used for phonetic or orthographic needs. In addition, there is provision for other characters and symbols useful to linguists. This font makes use of state-of-the-art font technologies to support complex typographic issues, such as the need to position arbitrary combinations of base glyphs and diacritics optimally.
+      '';
+      license = licenses.ofl;
+      platforms = platforms.all;
+      maintainers = [ maintainers.f--t ];
+    };
+  }
diff --git a/nixpkgs/pkgs/data/fonts/cherry/default.nix b/nixpkgs/pkgs/data/fonts/cherry/default.nix
new file mode 100644
index 000000000000..53d9149091e8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cherry/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, fonttosfnt, mkfontdir }:
+
+stdenv.mkDerivation rec {
+  pname = "cherry";
+  version = "1.4";
+
+  src = fetchFromGitHub {
+    owner = "turquoise-hexagon";
+    repo = pname;
+    rev = version;
+    sha256 = "13zkxwp6r6kcxv4x459vwscr0n0sik4a3kcz5xnmlpvcdnbxi586";
+  };
+
+  nativeBuildInputs = [ fonttosfnt mkfontdir ];
+
+  buildPhase = ''
+    patchShebangs make.sh
+    ./make.sh
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/misc
+    cp *.otb $out/share/fonts/misc
+
+    # create fonts.dir so NixOS xorg module adds to fp
+    mkfontdir $out/share/fonts/misc
+  '';
+
+  meta = with lib; {
+    description = "cherry font";
+    homepage = "https://github.com/turquoise-hexagon/cherry";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dtzWill ];
+    platforms = platforms.all;
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/chonburi/default.nix b/nixpkgs/pkgs/data/fonts/chonburi/default.nix
new file mode 100644
index 000000000000..4a14368f1f5f
--- /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 = "A 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/clearlyU/default.nix b/nixpkgs/pkgs/data/fonts/clearlyU/default.nix
new file mode 100644
index 000000000000..5c97d3b71344
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/clearlyU/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchurl, fonttosfnt, mkfontscale, libfaketime }:
+
+stdenv.mkDerivation rec {
+  pname = "clearlyU";
+  version = "12-1.9";
+
+  src = fetchurl {
+    url = "https://www.math.nmsu.edu/~mleisher/Software/cu/cu${version}.tgz";
+    sha256 = "1xn14jbv3m1khy7ydvad9ydkn7yygdbhjy9wm1v000jzjwr3lv21";
+  };
+
+  nativeBuildInputs = [ fonttosfnt mkfontscale libfaketime ];
+
+  buildPhase = ''
+    # convert bdf fonts to otb
+    for i in *.bdf; do
+      name=$(basename "$i" .bdf)
+      faketime -f "1970-01-01 00:00:01" fonttosfnt -g 2 -m 2 -v -o "$name.otb" "$i"
+    done
+  '';
+
+  installPhase = ''
+    # install otb and bdf fonts
+    fontDir="$out/share/fonts"
+    install -m 644 -D *.bdf *.otb -t "$fontDir"
+    mkfontdir "$fontDir"
+  '';
+
+  meta = with lib; {
+    description = "A Unicode font";
+    license = licenses.mit;
+    maintainers = [ maintainers.raskin ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/cm-unicode/default.nix b/nixpkgs/pkgs/data/fonts/cm-unicode/default.nix
new file mode 100644
index 000000000000..3248813c3cb0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cm-unicode/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "0.7.0";
+in fetchzip rec {
+  name = "cm-unicode-${version}";
+
+  url = "mirror://sourceforge/cm-unicode/cm-unicode/${version}/${name}-otf.tar.xz";
+
+  postFetch = ''
+    tar -xJvf $downloadedFile --strip-components=1
+    install -m444 -Dt $out/share/fonts/opentype *.otf
+    install -m444 -Dt $out/share/doc/${name}    README FontLog.txt
+  '';
+
+  sha256 = "1rzz7yhqq3lljyqxbg46jfzfd09qgpgx865lijr4sgc94riy1ypn";
+
+  meta = with lib; {
+    homepage = "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..965bf119f6e7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cnstrokeorder/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchurl }:
+
+let
+  version = "0.0.4.7";
+in fetchurl {
+  name = "cnstrokeorder-${version}";
+
+  url = "http://rtega.be/chmn/CNstrokeorder-${version}.ttf";
+
+  recursiveHash = true;
+  downloadToTemp = true;
+
+  postFetch = ''
+    install -D $downloadedFile $out/share/fonts/truetype/CNstrokeorder-${version}.ttf
+  '';
+
+  sha256 = "0cizgfdgbq9av5c8234mysr2q54iw9pkxrmq5ga8gv32hxhl5bx4";
+
+  meta = with lib; {
+    description = "Chinese font that shows stroke order for HSK 1-4";
+    homepage = "http://rtega.be/chmn/index.php?subpage=68";
+    license = [ licenses.arphicpl ];
+    maintainers = with maintainers; [ johnazoidberg ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/comfortaa/default.nix b/nixpkgs/pkgs/data/fonts/comfortaa/default.nix
new file mode 100644
index 000000000000..fc7ce56f7965
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/comfortaa/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "2021-07-29";
+in fetchFromGitHub rec {
+  name = "comfortaa-${version}";
+
+  owner = "googlefonts";
+  repo = "comfortaa";
+  rev = "2a87ac6f6ea3495150bfa00d0c0fb53dd0a2f11b";
+
+  postFetch = ''
+    tar -xf $downloadedFile --strip=1
+    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
+  '';
+
+  sha256 = "12ad7qy11q49iv9h3l2d7x7y7kf0hxbqhclb92bzwig8dzly9n2k";
+
+  meta = with lib; {
+    homepage = "http://aajohan.deviantart.com/art/Comfortaa-font-105395949";
+    description = "A clean and modern font suitable for headings and logos";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/comic-neue/default.nix b/nixpkgs/pkgs/data/fonts/comic-neue/default.nix
new file mode 100644
index 000000000000..7485d435cb23
--- /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 = "A casual type face: Make your lemonade stand look like a fortune 500 company";
+    longDescription = ''
+      ComicNeue is inspired by Comic Sans but more regular. It was
+      designed by Craig Rozynski. It is available in two variants:
+      Comic Neue and Comic Neue Angular. The former having round and
+      the latter angular terminals. Both variants come in Light,
+      Regular, and Bold weights with Oblique variants.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf b/nixpkgs/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf
new file mode 100644
index 000000000000..e1362ec4f5f7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
+<fontconfig>
+  <!-- Configure Comic Relief as a metric-compatible alias for the
+       Microsoft Comic Sans font family. -->
+  <alias binding="same">
+    <family>Comic Sans MS</family>
+    <accept>
+      <family>Comic Relief</family>
+    </accept>
+  </alias>
+  <alias binding="same">
+    <family>Comic Relief</family>
+    <default>
+      <family>Comic Sans MS</family>
+    </default>
+  </alias>
+</fontconfig>
diff --git a/nixpkgs/pkgs/data/fonts/comic-relief/default.nix b/nixpkgs/pkgs/data/fonts/comic-relief/default.nix
new file mode 100644
index 000000000000..b5a7e8878876
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/comic-relief/default.nix
@@ -0,0 +1,40 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.1";
+in fetchzip rec {
+  name = "comic-relief-${version}";
+
+  url = "https://fontlibrary.org/assets/downloads/comic-relief/45c456b6db2aaf2f7f69ac66b5ac7239/comic-relief.zip";
+
+  postFetch = ''
+    mkdir -p $out/etc/fonts/conf.d
+    mkdir -p $out/share/doc/${name}
+    mkdir -p $out/share/fonts/truetype
+    cp -v ${./comic-sans-ms-alias.conf}     $out/etc/fonts/conf.d/30-comic-sans-ms.conf
+    unzip -j $downloadedFile \*.ttf      -d $out/share/fonts/truetype
+    unzip -j $downloadedFile FONTLOG.txt -d $out/share/doc/${name}
+  '';
+
+  sha256 = "0dz0y7w6mq4hcmmxv6fn4mp6jkln9mzr4s96vsg68wrl5b7k9yff";
+
+  meta = with lib; {
+    homepage = "https://fontlibrary.org/en/font/comic-relief";
+    description = "A font metric-compatible with Microsoft Comic Sans";
+    longDescription = ''
+      Comic Relief is a typeface designed to be metrically equivalent
+      to the popular Comic Sans MS. Comic Relief can be used in place
+      of Comic Sans MS without having to move, resize, or reset any
+      part of the copy. It contains all glyphs and characters
+      available in Comic Sans MS.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+
+    # Reduce the priority of this package. The intent is that if you
+    # also install the `corefonts` package, then you probably will not
+    # want to install the font alias of this package.
+    priority = 10;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/cooper-hewitt/default.nix b/nixpkgs/pkgs/data/fonts/cooper-hewitt/default.nix
new file mode 100644
index 000000000000..8783b1121738
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cooper-hewitt/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "cooper-hewitt-2014-06-09";
+
+  url = "https://www.cooperhewitt.org/wp-content/uploads/fonts/CooperHewitt-OTF-public.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype/
+  '';
+
+  sha256 = "01iwqmjvqkc6fmc2r0486vk06s6f51n9wxzl1pf9z48n0igj4gqd";
+
+  meta = with lib; {
+    homepage = "https://www.cooperhewitt.org/open-source-at-cooper-hewitt/cooper-hewitt-the-typeface-by-chester-jenkins/";
+    description = "A contemporary sans serif, with characters composed of modified-geometric curves and arches";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/corefonts/default.nix b/nixpkgs/pkgs/data/fonts/corefonts/default.nix
new file mode 100644
index 000000000000..4b4772699cd1
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/corefonts/default.nix
@@ -0,0 +1,74 @@
+{ lib, stdenv, fetchurl, cabextract }:
+
+let
+
+  fonts = [
+    {name = "andale";  sha256 = "0w7927hlwayqf3vvanf8f3qp2g1i404jzqvhp1z3mp0sjm1gw905";}
+    {name = "arial";   sha256 = "1xkqyivbyb3z9dcalzidf8m4npzfpls2g0kldyn8g73f2i6plac5";}
+    {name = "arialb";  sha256 = "1a60zqrg63kjnykh5hz7dbpzvx7lyivn3vbrp7jyv9d1nvzz09d4";}
+    {name = "comic";   sha256 = "0ki0rljjc1pxkbsxg515fwx15yc95bdyaksa3pjd89nyxzzg6vcw";}
+    {name = "courie";  sha256 = "111k3waxki9yyxpjwl2qrdkswvsd2dmvhbjmmrwyipam2s31sldv";}
+    {name = "georgi";  sha256 = "0083jcpd837j2c06kp1q8glfjn9k7z6vg3wi137savk0lv6psb1c";}
+    {name = "impact";  sha256 = "1yyc5z7zmm3s418hmrkmc8znc55afsrz5dgxblpn9n81fhxyyqb0";}
+    {name = "times";   sha256 = "1aq7z3l46vwgqljvq9zfgkii6aivy00z1529qbjkspggqrg5jmnv";}
+    {name = "trebuc";  sha256 = "1jfsgz80pvyqvpfpaiz5pd8zwlcn67rg2jgynjwf22sip2dhssas";}
+    {name = "webdin";  sha256 = "0nnp2znmnmx87ijq9zma0vl0hd46npx38p0cc6lgp00hpid5nnb4";}
+    {name = "verdan";  sha256 = "15mdbbfqbyp25a6ynik3rck3m3mg44plwrj79rwncc9nbqjn3jy1";}
+    {name = "wd97vwr"; sha256 = "1lmkh3zb6xv47k0z2mcwk3vk8jff9m845c9igxm14bbvs6k2c4gn";}
+  ];
+
+  eula = fetchurl {
+    url = "http://corefonts.sourceforge.net/eula.htm";
+    sha256 = "1aqbcnl032g2hd7iy56cs022g47scb0jxxp3mm206x1yqc90vs1c";
+  };
+
+in
+
+stdenv.mkDerivation {
+  pname = "corefonts";
+  version = "1";
+
+  exes = map ({name, sha256}: fetchurl {
+    url = "mirror://sourceforge/corefonts/${name}32.exe";
+    inherit sha256;
+  }) fonts;
+
+  nativeBuildInputs = [cabextract];
+
+  buildCommand = ''
+    for i in $exes; do
+        cabextract --lowercase $i
+    done
+
+    cabextract --lowercase viewer1.cab
+
+    install -m444 -Dt $out/share/fonts/truetype *.ttf
+
+    # Also put the EULA there to be on the safe side.
+    cp ${eula} $out/share/fonts/truetype/eula.html
+
+    # Set up no-op font configs to override any aliases set up by
+    # other packages.
+    mkdir -p $out/etc/fonts/conf.d
+    for name in Andale-Mono Arial-Black Arial Comic-Sans-MS \
+                Courier-New Georgia Impact Times-New-Roman \
+                Trebuchet Verdana Webdings ; do
+      substitute ${./no-op.conf} $out/etc/fonts/conf.d/30-''${name,,}.conf \
+        --subst-var-by fontname "''${name//-/ }"
+    done
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "089d2m9bvaacj36qdq77pcazji0sbbr796shic3k52cpxkjnzbwh";
+
+  meta = with lib; {
+    homepage = "http://corefonts.sourceforge.net/";
+    description = "Microsoft's TrueType core fonts for the Web";
+    platforms = platforms.all;
+    license = licenses.unfreeRedistributable;
+    # Set a non-zero priority to allow easy overriding of the
+    # fontconfig configuration files.
+    priority = 5;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/corefonts/no-op.conf b/nixpkgs/pkgs/data/fonts/corefonts/no-op.conf
new file mode 100644
index 000000000000..3f8a9b9b5444
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/corefonts/no-op.conf
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
+<fontconfig>
+  <!-- This configuation is intentionally left empty in order to
+       override any other font package that may wish to set up an
+       alias for the Microsoft @fontname@ font. If you actually do
+       want to have the alias then please change the priority of that
+       package; see the Nix manual page for nix-env for details. -->
+</fontconfig>
diff --git a/nixpkgs/pkgs/data/fonts/courier-prime/default.nix b/nixpkgs/pkgs/data/fonts/courier-prime/default.nix
new file mode 100644
index 000000000000..81788b322cfb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/courier-prime/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchzip }:
+
+let
+  version = "unstable-2019-12-05";
+  repo = "CourierPrime";
+  rev = "7f6d46a766acd9391d899090de467c53fd9c9cb0";
+in fetchzip rec {
+  name = "courier-prime-${version}";
+  url = "https://github.com/quoteunquoteapps/${repo}/archive/${rev}/${name}.zip";
+  sha256 = "1xh4pkksm6zrafhb69q4lq093q6pl245zi9qhqw3x6c1ab718704";
+
+  postFetch = ''
+    unzip $downloadedFile
+    install -m444 -Dt $out/share/fonts/truetype ${repo}-${rev}/fonts/ttf/*.ttf
+  '';
+
+  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..1b0b03383664
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/cozette/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.13.0";
+in
+fetchzip rec {
+  name = "Cozette-${version}";
+
+  url = "https://github.com/slavfox/Cozette/releases/download/v.${version}/CozetteFonts.zip";
+
+  sha256 = "sha256-xp3BCYfNUxCNewg4FfzmJnKp0PARvvnViMVwT25nWdM=";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.bdf -d $out/share/fonts/misc
+    unzip -j $downloadedFile \*.otb -d $out/share/fonts/misc
+  '';
+
+  meta = with lib; {
+    description = "A bitmap programming font optimized for coziness";
+    homepage = "https://github.com/slavfox/cozette";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ brettlyons marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/creep/default.nix b/nixpkgs/pkgs/data/fonts/creep/default.nix
new file mode 100644
index 000000000000..d4748544af55
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/creep/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchFromGitHub, libfaketime
+, fonttosfnt, mkfontscale
+}:
+
+stdenv.mkDerivation rec {
+  pname = "creep";
+  version = "0.31";
+
+  src = fetchFromGitHub {
+    owner = "romeovs";
+    repo = pname;
+    rev = version;
+    sha256 = "0zs21kznh1q883jfdgz74bb63i4lxlv98hj3ipp0wvsi6zw0vs8n";
+  };
+
+  nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];
+
+  buildPhase = ''
+    faketime -f "1970-01-01 00:00:01" fonttosfnt -g 2 -m 2 -o creep.otb creep.bdf
+  '';
+
+  installPhase = ''
+    install -D -m644 creep.otb creep.bdf -t "$out/share/fonts/misc/"
+    mkfontdir "$out/share/fonts/misc"
+  '';
+
+  meta = with lib; {
+    description = "A pretty sweet 4px wide pixel font";
+    homepage = "https://github.com/romeovs/creep";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ buffet ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/crimson/default.nix b/nixpkgs/pkgs/data/fonts/crimson/default.nix
new file mode 100644
index 000000000000..9400ef06cf9a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/crimson/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "2014.10";
+in fetchzip rec {
+  name = "crimson-${version}";
+
+  url = "https://github.com/skosch/Crimson/archive/fonts-october2014.tar.gz";
+
+  postFetch = ''
+    tar -xzvf $downloadedFile --strip-components=1
+    install -m444 -Dt $out/share/fonts/opentype "Desktop Fonts/OTF/"*.otf
+    install -m444 -Dt $out/share/doc/${name}    README.md
+  '';
+
+  sha256 = "0mg65f0ydyfmb43jqr1f34njpd10w8npw15cbb7z0nxmy4nkl842";
+
+  meta = with lib; {
+    homepage = "https://github.com/skosch/Crimson";
+    description = "A font family inspired by beautiful oldstyle typefaces";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/culmus/default.nix b/nixpkgs/pkgs/data/fonts/culmus/default.nix
new file mode 100644
index 000000000000..00c472d7fe34
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/culmus/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchzip }:
+
+let
+  version = "0.133";
+in fetchzip {
+  name = "culmus-${version}";
+  url = "mirror://sourceforge/culmus/culmus/${version}/culmus-${version}.tar.gz";
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    mkdir -p $out/share/fonts/{truetype,type1}
+    cp -v *.pfa $out/share/fonts/type1/
+    cp -v *.afm $out/share/fonts/type1/
+    cp -v fonts.scale-type1 $out/share/fonts/type1/fonts.scale
+    cp -v *.ttf $out/share/fonts/truetype/
+    cp -v *.otf $out/share/fonts/truetype/
+    cp -v fonts.scale-ttf $out/share/fonts/truetype/fonts.scale
+  '';
+  sha256 = "0zqqjcrqmbd4389hqz2dwymkkcxjrq9ylyriiv3gbmzl6l1ffk3g";
+
+  meta = {
+    description = "Culmus Hebrew fonts";
+    longDescription = "The Culmus project aims at providing the Hebrew-speaking GNU/Linux and Unix community with a basic collection of Hebrew fonts for X Windows.";
+    platforms = lib.platforms.all;
+    license = lib.licenses.gpl2;
+    homepage = "http://culmus.sourceforge.net/";
+    downloadPage = "http://culmus.sourceforge.net/download.html";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/curie/default.nix b/nixpkgs/pkgs/data/fonts/curie/default.nix
new file mode 100644
index 000000000000..fd21d1964a21
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/curie/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchurl }:
+
+let
+  version = "1.0";
+in fetchurl rec {
+  name = "curie-${version}";
+
+  url = "https://github.com/NerdyPepper/curie/releases/download/v${version}/curie-v${version}.tar.gz";
+
+  downloadToTemp = true;
+
+  recursiveHash = true;
+
+  sha256 = "sha256-twPAzsbTveYW0rQd7FYZz5AMZgvPbNmn5c7Nfzn7B0A=";
+
+  postFetch = ''
+    tar xzf $downloadedFile
+    mkdir -p $out/share/fonts/misc
+    install *.otb $out/share/fonts/misc
+  '';
+
+  meta = with lib; {
+    description = "An upscaled version of scientifica";
+    homepage = "https://github.com/NerdyPepper/curie";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/d2coding/default.nix b/nixpkgs/pkgs/data/fonts/d2coding/default.nix
new file mode 100644
index 000000000000..25d92fc0f9ee
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/d2coding/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.3.2";
+  pname = "d2codingfont";
+
+in fetchzip {
+  name = "${pname}-${version}";
+  url = "https://github.com/naver/${pname}/releases/download/VER${version}/D2Coding-Ver${version}-20180524.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*-all.ttc -d $out/share/fonts/truetype/
+  '';
+
+  sha256 = "1812r82530wzfki7k9cm35fy6k2lvis7j6w0w8svc784949m1wwj";
+
+  meta = with lib; {
+    description = "Monospace font with support for Korean and latin characters";
+    longDescription = ''
+      D2Coding is a monospace font developed by a Korean IT Company called Naver.
+      Font is good for displaying both Korean characters and latin characters,
+      as sometimes these two languages could share some similar strokes.
+      Since verion 1.3, D2Coding font is officially supported by the font
+      creator, with symbols for Powerline.
+    '';
+    homepage = "https://github.com/naver/d2codingfont";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/dejavu-fonts/default.nix b/nixpkgs/pkgs/data/fonts/dejavu-fonts/default.nix
new file mode 100644
index 000000000000..ba9fed1be282
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dejavu-fonts/default.nix
@@ -0,0 +1,65 @@
+{ fetchFromGitHub, lib, stdenv, fontforge, perl, perlPackages }:
+
+let
+  version = "2.37";
+
+  meta = {
+    description = "A typeface family based on the Bitstream Vera fonts";
+    longDescription = ''
+      The DejaVu fonts are TrueType fonts based on the BitStream Vera fonts,
+      providing more styles and with greater coverage of Unicode.
+
+      This package includes DejaVu Sans, DejaVu Serif, DejaVu Sans Mono, and
+      the TeX Gyre DejaVu Math font.
+    '';
+    homepage = "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..3b5d75acb503
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dina/default.nix
@@ -0,0 +1,70 @@
+{ lib, stdenv, fetchurl, unzip
+, bdftopcf, mkfontscale, fonttosfnt
+}:
+
+stdenv.mkDerivation {
+  pname = "dina-font";
+  version = "2.92";
+
+  outputs = [ "out" "bdf" ];
+
+  src = fetchurl {
+    url = "http://www.donationcoder.com/Software/Jibz/Dina/downloads/Dina.zip";
+    sha256 = "1kq86lbxxgik82aywwhawmj80vsbz3hfhdyhicnlv9km7yjvnl8z";
+  };
+
+  nativeBuildInputs =
+    [ unzip bdftopcf mkfontscale fonttosfnt ];
+
+  postPatch = ''
+    sed -i 's/microsoft-cp1252/ISO8859-1/' *.bdf
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    newName() {
+        test "''${1:5:1}" = i && _it=Italic || _it=
+        case ''${1:6:3} in
+            400) test -z $it && _weight=Medium ;;
+            700) _weight=Bold ;;
+        esac
+        _pt=''${1%.bdf}
+        _pt=''${_pt#*-}
+        echo "Dina$_weight$_it$_pt"
+    }
+
+    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 = "A monospace bitmap font aimed at programmers";
+    longDescription = ''
+      Dina is a monospace bitmap font, primarily aimed at programmers. It is
+      relatively compact to allow a lot of code on screen, while (hopefully)
+      clear enough to remain readable even at high resolutions.
+    '';
+    homepage = "https://www.donationcoder.com/Software/Jibz/Dina/";
+    downloadPage = "https://www.donationcoder.com/Software/Jibz/Dina/";
+    license = licenses.free;
+    maintainers = [ maintainers.prikhi ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/dosemu-fonts/default.nix b/nixpkgs/pkgs/data/fonts/dosemu-fonts/default.nix
new file mode 100644
index 000000000000..81a1b5649b36
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dosemu-fonts/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, bdftopcf, mkfontdir, mkfontscale }:
+
+stdenv.mkDerivation rec {
+  pname = "dosemu-fonts";
+  version = "1.4.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/dosemu/dosemu-${version}.tgz";
+    sha256 = "0l1zwmw42mpakjrzmbygshcg2qzq9mv8lx42738rz3j9hrqzg4pw";
+  };
+
+  buildCommand = ''
+    tar xf "$src" --anchored --wildcards '*/etc/*.bdf' '*/etc/dosemu.alias'
+    fontPath="$out/share/fonts/X11/misc/dosemu"
+    mkdir -p "$fontPath"
+    for i in */etc/*.bdf; do
+      fontOut="$out/share/fonts/X11/misc/dosemu/$(basename "$i" .bdf).pcf.gz"
+      echo -n "Installing font $fontOut..." >&2
+      ${bdftopcf}/bin/bdftopcf $i | gzip -c -9 -n > "$fontOut"
+      echo " done." >&2
+    done
+    cp */etc/dosemu.alias "$fontPath/fonts.alias"
+    cd "$fontPath"
+    ${mkfontdir}/bin/mkfontdir
+    ${mkfontscale}/bin/mkfontscale
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1miqv0ral5vazx721wildjlzvji5r7pbgm39c0cpj5ywafaikxr8";
+
+  meta = {
+    description = "Various fonts from the DOSEmu project";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/dosis/default.nix b/nixpkgs/pkgs/data/fonts/dosis/default.nix
new file mode 100644
index 000000000000..918996c5f644
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dosis/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub }:
+
+fetchFromGitHub rec {
+  name = "dosis-1.007";
+
+  owner = "impallari";
+  repo = "Dosis";
+  rev = "12df1e13e58768f20e0d48ff15651b703f9dd9dc";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.otf' -exec install -m444 -Dt $out/share/fonts/opentype {} \;
+    install -m444 -Dt $out/share/doc/${name} README.md FONTLOG.txt
+  '';
+
+  sha256 = "0vz25w45i8flfvppymr5h83pa2n1r37da20v7691p44018fdsdny";
+
+  meta = with lib; {
+    description = "A very simple, rounded, sans serif family";
+    longDescription = ''
+      Dosis is a very simple, rounded, sans serif family.
+
+      The lighter weights are minimalist. The bolder weights have more
+      personality. The medium weight is nice and balanced. The overall result is
+      a family that's clean and modern, and can express a wide range of
+      voices & feelings.
+
+      It comes in 7 incremental weights: ExtraLight, Light, Book, Medium,
+      Semibold, Bold & ExtraBold
+    '';
+    homepage = "http://www.impallari.com/dosis";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ cmfwyp ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/doulos-sil/default.nix b/nixpkgs/pkgs/data/fonts/doulos-sil/default.nix
new file mode 100644
index 000000000000..a1e686a320ed
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/doulos-sil/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchzip }:
+
+let
+  version = "6.001";
+in
+  fetchzip rec {
+    name = "doulos-sil-${version}";
+
+    url = "https://software.sil.org/downloads/r/doulos/DoulosSIL-${version}.zip";
+
+    postFetch = ''
+      mkdir -p $out/share/{doc,fonts}
+      unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+      unzip -j $downloadedFile \*OFL.txt \*OFL-FAQ.txt \*README.txt \*FONTLOG.txt -d "$out/share/doc/${name}"
+    '';
+
+    sha256 = "sha256-MkeLLT7EAeSuCMxVVxVfajHufxr+xMLIz2hf3wF3U4o=";
+
+    meta = with lib; {
+      homepage = "https://software.sil.org/doulos";
+      description = "A font that provides complete support for the International Phonetic Alphabet";
+      longDescription = ''
+      This Doulos SIL font is essentially the same design as the SIL Doulos font first released by SIL in 1992. The design has been changed from the original in that it has been scaled down to be a better match with contemporary digital fonts, such as Times New Roman®. This current release is a regular typeface, with no bold or italic version available or planned. It is intended for use alongside other Times-like fonts where a range of styles (italic, bold) are not needed. Therefore, just one font is included in the Doulos SIL release: Doulos SIL Regular.
+
+      The goal for this product was to provide a single Unicode-based font family that would contain a comprehensive inventory of glyphs needed for almost any Roman- or Cyrillic-based writing system, whether used for phonetic or orthographic needs. In addition, there is provision for other characters and symbols useful to linguists. This font makes use of state-of-the-art font technologies to support complex typographic issues, such as the need to position arbitrary combinations of base glyphs and diacritics optimally.
+      '';
+      license = licenses.ofl;
+      platforms = platforms.all;
+      maintainers = [ maintainers.f--t ];
+    };
+  }
diff --git a/nixpkgs/pkgs/data/fonts/eb-garamond/default.nix b/nixpkgs/pkgs/data/fonts/eb-garamond/default.nix
new file mode 100644
index 000000000000..869d889ef3cc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/eb-garamond/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "0.016";
+in fetchzip rec {
+  name = "eb-garamond-${version}";
+
+  url = "https://bitbucket.org/georgd/eb-garamond/downloads/EBGaramond-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.otf                                          -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*Changes \*README.markdown \*README.xelualatex -d "$out/share/doc/${name}"
+  '';
+
+  sha256 = "04jq4mpln85zzbla8ybsjw7vn9qr3r0snmk5zykrm24imq7ripv3";
+
+  meta = with lib; {
+    homepage = "http://www.georgduffner.at/ebgaramond/";
+    description = "Digitization of the Garamond shown on the Egenolff-Berner specimen";
+    maintainers = with maintainers; [ relrod rycee ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/edukai/default.nix b/nixpkgs/pkgs/data/fonts/edukai/default.nix
new file mode 100644
index 000000000000..d5b9e25c2eb5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/edukai/default.nix
@@ -0,0 +1,33 @@
+{ stdenvNoCC, lib, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "edukai";
+  version = "4.0";
+
+  src = fetchzip {
+    name = "${pname}-${version}";
+    url =
+      "http://language.moe.gov.tw/001/Upload/Files/site_content/M0001/edukai-4.0.zip";
+    sha256 = "10m9srvbazvg9gc43943dc89rjzcfc8mm4lx9gb5hnplrn22zrcn";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/
+    mv *.ttf $out/share/fonts/
+  '';
+
+  meta = {
+    description =
+      "The MOE Standard Kai Font, a Chinese font by the Ministry of Education, ROC (Taiwan)";
+    longDescription = ''
+      The MOE Standard Kai Font is a kai (regular srcipt) font
+      provided by
+      the Midistry of Education, Republic of China (Taiwan).
+      It currently includes 13,076 Chinese characters.
+    '';
+    homepage =
+      "http://language.moe.gov.tw/result.aspx?classify_sn=23&subclassify_sn=436&content_sn=47";
+    license = lib.licenses.cc-by-nd-30;
+    maintainers = with lib.maintainers; [ ShamrockLee ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/eduli/default.nix b/nixpkgs/pkgs/data/fonts/eduli/default.nix
new file mode 100644
index 000000000000..7ff2ad4446c5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/eduli/default.nix
@@ -0,0 +1,36 @@
+{ stdenvNoCC, lib, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "eduli";
+  version = "3.0";
+
+  src = fetchzip {
+    name = "${pname}-${version}";
+    url =
+      "http://language.moe.gov.tw/001/Upload/Files/site_content/M0001/MoeLI-3.0.zip";
+    sha256 = "0vpmm2qb429npng0aqkafwgs7cjibq8a3f7bbn9hysbm2lndwxwd";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/
+    for name in *.ttf; do
+      mv "$name" "$out/share/fonts/$(echo $name | sed -r 's/(.*)\(.*\)\.ttf/\1.ttf/')"
+    done
+  '';
+
+  meta = {
+    description =
+      "The MOE Li Font, a clerical Chinese font by the Ministry of Education, ROC (Taiwan)";
+    longDescription = ''
+      The MOE Li Font is a li (clerical srcipt) font
+      provided by
+      the Midistry of Education, Republic of China (Taiwan).
+      It currently includes 4,808 Chinese characters.
+      The clerical script (lishu) is an archaic style of Chinese calligraphy.
+    '';
+    homepage =
+      "http://language.moe.gov.tw/result.aspx?classify_sn=23&subclassify_sn=436&content_sn=49";
+    license = lib.licenses.cc-by-nd-30;
+    maintainers = with lib.maintainers; [ ShamrockLee ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/edusong/default.nix b/nixpkgs/pkgs/data/fonts/edusong/default.nix
new file mode 100644
index 000000000000..bf7d39aa20c5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/edusong/default.nix
@@ -0,0 +1,32 @@
+{ stdenvNoCC, lib, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "edusong";
+  version = "1.0"; # The upstream doesn't provide the version
+
+  src = fetchzip {
+    name = "${pname}-${version}";
+    url =
+      "http://language.moe.gov.tw/001/Upload/Files/site_content/M0001/eduSong_Unicode.zip";
+    sha256 = "1b74wj9hdzlnrvldwlkh21sfhqxwh9qghf1k0fv66zs6n48vb0d4";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/
+    mv *.ttf $out/share/fonts/
+  '';
+
+  meta = {
+    description =
+      "The MOE Standard Song Font, a Chinese font by the Ministry of Education, ROC (Taiwan)";
+    longDescription = ''
+      The MOE Standard Song Font is a Chinese Song font provided by
+      the Midistry of Education, Republic of China (Taiwan).
+      Song or Ming is a category of CKJ typefaces in print.
+    '';
+    homepage =
+      "http://language.moe.gov.tw/result.aspx?classify_sn=23&subclassify_sn=436&content_sn=48";
+    license = lib.licenses.cc-by-nd-30;
+    maintainers = with lib.maintainers; [ ShamrockLee ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/edwin/default.nix b/nixpkgs/pkgs/data/fonts/edwin/default.nix
new file mode 100644
index 000000000000..4b1688dbc55e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/edwin/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchurl }:
+
+let
+  version = "0.52";
+in fetchurl {
+  name = "edwin-${version}";
+
+  url = "https://github.com/MuseScoreFonts/Edwin/archive/refs/tags/v${version}.tar.gz";
+
+  downloadToTemp = true;
+
+  recursiveHash = true;
+
+  sha256 = "sha256-e0ADK72ECl+QMvLWtFJfeHBmuEwzr9M+Kqvkd5Z2mmo=";
+
+  postFetch = ''
+    tar xzf $downloadedFile
+    mkdir -p $out/share/fonts/opentype
+    install Edwin-${version}/*.otf $out/share/fonts/opentype
+  '';
+
+  meta = with lib; {
+    description = "A text font for musical scores";
+    homepage = "https://github.com/MuseScoreFonts/Edwin";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
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..f4ea61cbc9eb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/efont-unicode/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenv, fetchzip, libfaketime, xorg }:
+
+stdenv.mkDerivation rec {
+  pname = "efont-unicode";
+  version = "0.4.2";
+
+  src = fetchzip {
+    url = "http://openlab.ring.gr.jp/efont/dist/unicode-bdf/${pname}-bdf-${version}.tar.bz2";
+    sha256 = "0bib3jgikq8s1m96imw4mlgbl5cbq1bs5sqig74s2l2cdfx3jaqc";
+  };
+
+  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 = "The /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..2f7a804ad08d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix
@@ -0,0 +1,35 @@
+{ lib, fetchzip }:
+
+let
+  version = "5.0.0";
+in fetchzip {
+  name = "emacs-all-the-icons-fonts-${version}";
+
+  url = "https://github.com/domtronn/all-the-icons.el/archive/${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/all-the-icons
+  '';
+
+  sha256 = "0vc9bkm4pcc05llcd2c9zr3d88h3zmci0izla5wnw8hg1n0rsrii";
+
+  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..3fd0115ddb48
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/encode-sans/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchzip }:
+
+fetchzip rec {
+  name = "encode-sans-1.002";
+
+  url = "https://github.com/impallari/Encode-Sans/archive/11162b46892d20f55bd42a00b48cbf06b5871f75.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.ttf                    -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*README.md \*FONTLOG.txt -d "$out/share/doc/${name}"
+  '';
+
+  sha256 = "16mx894zqlwrhnp4rflgayxhxppmsj6k7haxdngajhb30rlwf08p";
+
+  meta = with lib; {
+    description = "A versatile sans serif font family";
+    longDescription = ''
+      The Encode Sans family is a versatile workhorse. Featuring a huge range of
+      weights and widths, it's ready for all kind of typographic challenges. It
+      also includes Tabular and Old Style figures, as well as full set of Small
+      Caps and other Open Type features.
+
+      Designed by Pablo Impallari and Andres Torresi.
+    '';
+    homepage = "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..dbfb85f881fc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/envypn-font/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, fetchurl, libfaketime
+, fonttosfnt, mkfontscale
+}:
+
+stdenv.mkDerivation {
+  name = "envypn-font-1.7.1";
+
+  src = fetchurl {
+    url = "https://ywstd.fr/files/p/envypn-font/envypn-font-1.7.1.tar.gz";
+    sha256 = "bda67b6bc6d5d871a4d46565d4126729dfb8a0de9611dae6c68132a7b7db1270";
+  };
+
+  nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];
+
+  unpackPhase = ''
+    tar -xzf $src --strip-components=1
+  '';
+
+  buildPhase = ''
+    # convert pcf fonts to otb
+    for i in *e.pcf.gz; do
+      faketime -f "1970-01-01 00:00:01" \
+      fonttosfnt -v -o "$(basename "$i" .pcf.gz)".otb "$i"
+    done
+  '';
+
+  installPhase = ''
+    install -D -m 644 -t "$out/share/fonts/misc" *.otb *.pcf.gz
+    mkfontdir "$out/share/fonts/misc"
+  '';
+
+  meta = with lib; {
+    description = ''
+      Readable bitmap font inspired by Envy Code R
+    '';
+    homepage = "http://ywstd.fr/p/pj/#envypn";
+    license = licenses.miros;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/et-book/default.nix b/nixpkgs/pkgs/data/fonts/et-book/default.nix
new file mode 100644
index 000000000000..c410826b2fb5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/et-book/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchFromGitHub }:
+
+fetchFromGitHub rec {
+  rev = "7e8f02dadcc23ba42b491b39e5bdf16e7b383031";
+  name = "et-book-${builtins.substring 0 6 rev}";
+  owner = "edwardtufte";
+  repo = "et-book";
+  sha256 = "1bfb1l8k7fzgk2l8cikiyfn5x9m0fiwrnsbc1483p8w3qp58s5n2";
+
+  postFetch = ''
+    tar -xzf $downloadedFile
+    mkdir -p $out/share/fonts/truetype
+    cp -t $out/share/fonts/truetype et-book-${rev}/source/4-ttf/*.ttf
+  '';
+
+  meta = with lib; {
+    description = "The typeface used in Edward Tufte’s books.";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ jethro ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/eunomia/default.nix b/nixpkgs/pkgs/data/fonts/eunomia/default.nix
new file mode 100644
index 000000000000..272649582c35
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/eunomia/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "200";
+  pname = "eunomia";
+in
+
+fetchzip {
+  name = "${pname}-font-${majorVersion}.${minorVersion}";
+
+  url = "http://dotcolon.net/DL/font/${pname}_${majorVersion}${minorVersion}.zip";
+  sha256 = "0lpmczs1d4p9dy4s0dnvv7bl5cd0f6yzyasfrkxij5s86glps38b";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype/${pname}
+    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/eunomia/";
+    description = "A futuristic decorative font";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/f5_6/default.nix b/nixpkgs/pkgs/data/fonts/f5_6/default.nix
new file mode 100644
index 000000000000..112111faa3d7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/f5_6/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "110";
+  pname = "f5_6";
+in
+
+fetchzip {
+  name = "${pname}-font-${majorVersion}.${minorVersion}";
+
+  url = "http://dotcolon.net/DL/font/${pname}_${majorVersion}${minorVersion}.zip";
+  sha256 = "04p6lccd26rhjbpq3ddxi5vkk3lk8lqbpnk8lakjzixp3fgdqpp4";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype/${pname}
+    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${pname}/";
+    description = "A weighted decorative font";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/fantasque-sans-mono/default.nix b/nixpkgs/pkgs/data/fonts/fantasque-sans-mono/default.nix
new file mode 100644
index 000000000000..e8068d7faead
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fantasque-sans-mono/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.8.0";
+in
+
+fetchzip rec {
+  name = "fantasque-sans-mono-${version}";
+
+  url = "https://github.com/belluzj/fantasque-sans/releases/download/v${version}/FantasqueSansMono-Normal.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.otf    -d $out/share/fonts/opentype
+    unzip -j $downloadedFile README.md -d $out/share/doc/${name}
+  '';
+
+  sha256 = "07y2w6xzkbaj6vr95fvvnmwq1pw9jib4z02xf8937dx812yic9ni";
+
+  meta = with lib; {
+    homepage = "https://github.com/belluzj/fantasque-sans";
+    description = "A font family with a great monospaced variant for programmers";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.rycee ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ferrum/default.nix b/nixpkgs/pkgs/data/fonts/ferrum/default.nix
new file mode 100644
index 000000000000..3f122d22daf5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ferrum/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "200";
+  pname = "ferrum";
+in
+
+fetchzip {
+  name = "${pname}-font-${majorVersion}.${minorVersion}";
+
+  url = "http://dotcolon.net/DL/font/${pname}.zip";
+  sha256 = "1w1b3ch7ik4264f05lxms01ls0aargvlx770a9szm682dfmizn8w";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype/${pname}
+    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${pname}/";
+    description = "A decorative font";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.cc0;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/fira-code/default.nix b/nixpkgs/pkgs/data/fonts/fira-code/default.nix
new file mode 100644
index 000000000000..8bdc411a7eb3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fira-code/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchzip }:
+
+let
+  version = "6.2";
+in fetchzip {
+  name = "fira-code-${version}";
+
+  url = "https://github.com/tonsky/FiraCode/releases/download/${version}/Fira_Code_v${version}.zip";
+
+  # only extract the variable font because everything else is a duplicate
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile '*-VF.ttf' -d $out/share/fonts/truetype
+  '';
+
+  sha256 = "0l02ivxz3jbk0rhgaq83cqarqxr07xgp7n27l0fh8fbgxwi52djl";
+
+  meta = with lib; {
+    homepage = "https://github.com/tonsky/FiraCode";
+    description = "Monospace font with programming ligatures";
+    longDescription = ''
+      Fira Code is a monospace font extending the Fira Mono font with
+      a set of ligatures for common programming multi-character
+      combinations.
+    '';
+    license = licenses.ofl;
+    maintainers = [ maintainers.rycee ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/fira-code/symbols.nix b/nixpkgs/pkgs/data/fonts/fira-code/symbols.nix
new file mode 100644
index 000000000000..e226c351a333
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fira-code/symbols.nix
@@ -0,0 +1,26 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "fira-code-symbols-20160811";
+
+  url = "https://github.com/tonsky/FiraCode/files/412440/FiraCode-Regular-Symbol.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "19krsp22rin74ix0i19v4bh1c965g18xkmz1n55h6n6qimisnbkm";
+
+  meta = with lib; {
+    description = "FiraCode unicode ligature glyphs in private use area";
+    longDescription = ''
+      FiraCode uses ligatures, which some editors don’t support.
+      This addition adds them as glyphs to the private unicode use area.
+      See https://github.com/tonsky/FiraCode/issues/211.
+    '';
+    license = licenses.ofl;
+    maintainers = [ maintainers.Profpatsch ];
+    homepage = "https://github.com/tonsky/FiraCode/issues/211#issuecomment-239058632";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/fira-mono/default.nix b/nixpkgs/pkgs/data/fonts/fira-mono/default.nix
new file mode 100644
index 000000000000..2cf1e7addbf6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fira-mono/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchzip }:
+
+let version = "4.202";
+in fetchzip {
+  name = "fira-mono-${version}";
+
+  url = "https://github.com/mozilla/Fira/archive/${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile Fira-${version}/otf/FiraMono\*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "1ci3fxhdwabvfj4nl16pwcgqnh7s2slp8vblribk8zkpx8cbp1dj";
+
+  meta = with lib; {
+    homepage = "https://mozilla.github.io/Fira/";
+    description = "Monospace font for Firefox OS";
+    longDescription = ''
+      Fira Mono is a monospace font designed by Erik Spiekermann,
+      Ralph du Carrois, Anja Meiners and Botio Nikoltchev of Carrois
+      Type Design for Mozilla Firefox OS. Available in Regular,
+      Medium, and Bold.
+    '';
+    license = licenses.ofl;
+    maintainers = [ maintainers.rycee ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/fira/default.nix b/nixpkgs/pkgs/data/fonts/fira/default.nix
new file mode 100644
index 000000000000..039c5099b56e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fira/default.nix
@@ -0,0 +1,35 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "4.202";
+in fetchFromGitHub {
+  name = "fira-${version}";
+
+  owner = "mozilla";
+  repo = "Fira";
+  rev = version;
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    mkdir -p $out/share/fonts/opentype
+    cp otf/*.otf $out/share/fonts/opentype
+  '';
+
+  sha256 = "1iwxbp7kw5kghh5nbycb05zby7p2ib61mywva3h6giv2wd4lpxnz";
+
+  meta = with lib; {
+    homepage = "https://mozilla.github.io/Fira/";
+    description = "Sans-serif font for Firefox OS";
+    longDescription = ''
+      Fira Sans is a sans-serif font designed by Erik Spiekermann,
+      Ralph du Carrois, Anja Meiners and Botio Nikoltchev of Carrois
+      Type Design for Mozilla Firefox OS.  It is closely related to
+      Spiekermann's FF Meta typeface.  Available in Two, Four, Eight,
+      Hair, Thin, Ultra Light, Extra Light, Light, Book, Regular,
+      Medium, Semi Bold, Bold, Extra Bold, Heavy weights with
+      corresponding italic versions.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/fixedsys-excelsior/default.nix b/nixpkgs/pkgs/data/fonts/fixedsys-excelsior/default.nix
new file mode 100644
index 000000000000..8bdbc2d4c4f0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fixedsys-excelsior/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchurl } :
+
+let
+  major = "3";
+  minor = "00";
+  version = "${major}.${minor}";
+in fetchurl rec {
+  name = "fixedsys-excelsior-${version}";
+
+  urls = [
+    "http://www.fixedsysexcelsior.com/fonts/FSEX300.ttf"
+    "https://raw.githubusercontent.com/chrissimpkins/codeface/master/fonts/fixed-sys-excelsior/FSEX300.ttf"
+    "http://tarballs.nixos.org/sha256/6ee0f3573bc5e33e93b616ef6282f49bc0e227a31aa753ac76ed2e3f3d02056d"
+  ];
+  downloadToTemp = true;
+  recursiveHash = true;
+  postFetch = ''
+    install -m444 -D $downloadedFile $out/share/fonts/truetype/${name}.ttf
+  '';
+
+  sha256 = "32d6f07f1ff08c764357f8478892b2ba5ade23427af99759f34a0ba24bcd2e37";
+
+  meta = {
+    description = "Pan-unicode version of Fixedsys, a classic DOS font";
+    homepage = "http://www.fixedsysexcelsior.com/";
+    platforms = lib.platforms.all;
+    license = lib.licenses.publicDomain;
+    maintainers = [ lib.maintainers.ninjatrappeur ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/font-awesome-5/default.nix b/nixpkgs/pkgs/data/fonts/font-awesome-5/default.nix
new file mode 100644
index 000000000000..7f251232ebc1
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/font-awesome-5/default.nix
@@ -0,0 +1,45 @@
+{ lib, fetchFromGitHub }:
+let
+  font-awesome = { version, sha256, rev ? version}: fetchFromGitHub {
+    name = "font-awesome-${version}";
+
+
+    owner = "FortAwesome";
+    repo = "Font-Awesome";
+    inherit rev;
+
+    postFetch = ''
+      tar xf $downloadedFile --strip=1
+      install -m444 -Dt $out/share/fonts/opentype {fonts,otfs}/*.otf
+    '';
+
+    inherit sha256;
+
+    meta = with lib; {
+      description = "Font Awesome - OTF font";
+      longDescription = ''
+        Font Awesome gives you scalable vector icons that can instantly be customized.
+        This package includes only the OTF font. For full CSS etc. see the project website.
+      '';
+      homepage = "http://fortawesome.github.io/Font-Awesome/";
+      license = licenses.ofl;
+      platforms = platforms.all;
+      maintainers = with maintainers; [ abaldeau johnazoidberg ];
+    };
+  };
+in {
+  # Keeping version 4 because version 5 is incompatible for some icons. That
+  # means that projects which depend on it need to actively convert the
+  # symbols. See:
+  # https://github.com/greshake/i3status-rust/issues/130
+  # https://fontawesome.com/how-to-use/on-the-web/setup/upgrading-from-version-4
+  v4 = font-awesome {
+    version = "4.7.0";
+    rev = "v4.7.0";
+    sha256 = "1j8i32dq6rrlv3kf2hnq81iqks06kczaxjks7nw3zyq1231winm9";
+  };
+  v5 = font-awesome {
+    version = "5.15.3";
+    sha256 = "sha256-EDxk/yO3nMmtM/ytrAEgPYSBbep3rA3NrKkiqf3OsU0=";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/fraunces/default.nix b/nixpkgs/pkgs/data/fonts/fraunces/default.nix
new file mode 100644
index 000000000000..d5879d6c2bc4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fraunces/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+let
+  version = "1.000";
+in
+fetchzip {
+  name = "fraunces-${version}";
+
+  url = "https://github.com/undercasetype/Fraunces/releases/download/${version}/UnderCaseType_Fraunces_${version}.zip";
+
+  sha256 = "0qgl140qkn9p87x7pk60fd3lj206y5h0fq2xkcj2qiv3sxbqxwqb";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    description = "A display, “Old Style” soft-serif typeface inspired by early 20th century typefaces";
+    homepage = "https://github.com/undercasetype/Fraunces";
+    license = licenses.ofl;
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/freefont-ttf/default.nix b/nixpkgs/pkgs/data/fonts/freefont-ttf/default.nix
new file mode 100644
index 000000000000..5934ec3589ac
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/freefont-ttf/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+fetchzip rec {
+  name = "freefont-ttf-20120503";
+
+  url = "mirror://gnu/freefont/${name}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  sha256 = "0h0x2hhr7kvjiycf7fv800xxwa6hcpiz54bqx06wsqc7z61iklvd";
+
+  meta = {
+    description = "GNU Free UCS Outline Fonts";
+    longDescription = ''
+      The GNU Freefont project aims to provide a set of free outline
+      (PostScript Type0, TrueType, OpenType...) fonts covering the ISO
+      10646/Unicode UCS (Universal Character Set).
+    '';
+    homepage = "https://www.gnu.org/software/freefont/";
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.all;
+    maintainers = [];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/gandom-fonts/default.nix b/nixpkgs/pkgs/data/fonts/gandom-fonts/default.nix
new file mode 100644
index 000000000000..1b8b3307eb35
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gandom-fonts/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "gandom-fonts";
+  version = "0.8";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "rastikerdar";
+  repo = "gandom-font";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/gandom-fonts {} \;
+  '';
+  sha256 = "sha256-EDS3wwKwe2BIcOCxu7DxkVLCoEoTPP31k5ID51lqn3M=";
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/gandom-font";
+    description = "A Persian (Farsi) Font - فونت (قلم) فارسی گندم";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/gdouros/default.nix b/nixpkgs/pkgs/data/fonts/gdouros/default.nix
new file mode 100644
index 000000000000..a707d6f25a49
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gdouros/default.nix
@@ -0,0 +1,38 @@
+{ fetchzip, lib }:
+
+let
+  fonts = {
+    aegan     = { version = "13.00"; file = "Aegean.zip";       sha256 = "1w4ks341jw12p6zi1fy1hb3kqiqv61yn8i2hr9ybng9n8xdw03li"; description = "Aegean"; };
+    aegyptus  = { version = "13.00"; file = "Aegyptus.zip";     sha256 = "16j8rj3mr2cddag7laxvzpm5w3yk467fwzsk60nq8pnh6ab1v05y"; description = "Egyptian Hieroglyphs, Coptic, Meroitic"; };
+    akkadian  = { version = "13.00"; file = "Akkadian.zip";     sha256 = "1f2v9cjk307c5lw0si9hwjcll5wb9nwwy5im0y16kvpgwh2ccshc"; description = "Sumero-Akkadian Cuneiform"; };
+    assyrian  = { version = "13.00"; file = "Assyrian.zip";     sha256 = "18nx6ayfk3ba6wg1rp37r9fll5ajrwq2mp5w2l3y1q1kk92frkid"; description = "Neo-Assyrian in Unicode with OpenType"; };
+    eemusic   = { version = "13.00"; file = "EEMusic.zip";      sha256 = "1kk5rd3wd7y13z9bqcg1k9idbwad4l3hfmi3lbfk4y1w895vgxk2"; description = "Byzantine Musical Notation in Unicode with OpenType"; };
+    maya      = { version = "13.00"; file = "Maya%20Hieroglyphs.zip"; sha256 = "0fzzrlkd4m2dj2phg97nz782w0afmw0f0ykdvlwyp29j1ak7yyp1"; description = "Maya Hieroglyphs"; };
+    symbola   = { version = "13.00"; file = "Symbola.zip";      sha256 = "04pxh5agvlkyg8mvv2szwshnmzi3n0m7va4xsyq401zbsa147rmi"; description = "Basic Latin, Greek, Cyrillic and many Symbol blocks of Unicode"; };
+    textfonts = { version = "13.00"; file = "Textfonts.zip";    sha256 = "1xp8qlfpvcf5n96zgm07zij3ndlzvqjlii8gx9sbj5aa56rxkdgb"; description = "Aroania, Anaktoria, Alexander, Avdira and Asea"; };
+    unidings  = { version = "13.00"; file = "Unidings.zip";     sha256 = "0cvnxblk9wsr8mxm5lrdpdm456vi7lln7qh53b67npg4baf0as63"; description = "Glyphs and Icons for blocks of The Unicode Standard"; };
+  };
+
+  mkpkg = name_: {version, file, sha256, description}: fetchzip rec {
+    name = "${name_}-${version}";
+    url = "https://dn-works.com/wp-content/uploads/2020/UFAS-Fonts/${file}";
+    postFetch = ''
+      mkdir -p $out/share/{fonts,doc}
+      unzip -j $downloadedFile \*.otf                -d $out/share/fonts/opentype
+      unzip -j $downloadedFile \*.odt \*.pdf \*.xlsx -d "$out/share/doc/${name}"  || true  # unpack docs if any
+      rmdir "$out/share/doc/${name}" $out/share/doc                               || true  # remove dirs if empty
+    '';
+    inherit sha256;
+
+    meta = {
+      inherit description;
+      # see 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..c8cf655a18cf
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gelasio/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "unstable-2018-08-12";
+in fetchFromGitHub {
+  name = "gelasio-${version}";
+  owner = "SorkinType";
+  repo = "Gelasio";
+  rev = "5bced461d54bcf8e900bb3ba69455af35b0d2ff1";
+  sha256 = "0dfskz2vpwsmd88rxqsxf0f01g4f2hm6073afcm424x5gc297n39";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype/
+  '';
+
+  meta = with lib; {
+    description = "a font which is metric-compatible with Microsoft's Georgia";
+    longDescription = ''
+      Gelasio is an original typeface which is metrics compatible with Microsoft's
+      Georgia in its Regular, Bold, Italic and Bold Italic weights. Interpolated
+      Medium, medium Italic, SemiBold and SemiBold Italic have now been added as well.
+    '';
+    homepage = "https://github.com/SorkinType/Gelasio";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ colemickens ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/gentium-book-basic/default.nix b/nixpkgs/pkgs/data/fonts/gentium-book-basic/default.nix
new file mode 100644
index 000000000000..2e14795ebd14
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gentium-book-basic/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  major = "1";
+  minor = "102";
+  version = "${major}.${minor}";
+in fetchzip rec {
+  name = "gentium-book-basic-${version}";
+
+  url = "http://software.sil.org/downloads/r/gentium/GentiumBasic_${major}${minor}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.ttf                            -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*/FONTLOG.txt \*/GENTIUM-FAQ.txt -d $out/share/doc/${name}
+  '';
+
+  sha256 = "0598zr5f7d6ll48pbfbmmkrybhhdks9b2g3m2g67wm40070ffzmd";
+
+  meta = with lib; {
+    homepage = "https://software.sil.org/gentium/";
+    description = "A high-quality typeface family for Latin, Cyrillic, and Greek";
+    maintainers = with maintainers; [ ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/gentium/default.nix b/nixpkgs/pkgs/data/fonts/gentium/default.nix
new file mode 100644
index 000000000000..f64f7b341440
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gentium/default.nix
@@ -0,0 +1,51 @@
+{ lib, fetchzip }:
+
+let
+  version = "6.101";
+in fetchzip rec {
+  name = "gentium-${version}";
+
+  url = "http://software.sil.org/downloads/r/gentium/GentiumPlus-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -l $downloadedFile
+    unzip -j $downloadedFile \*.ttf \
+      -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \
+      \*/FONTLOG.txt \
+      \*/README.txt \
+      -d $out/share/doc/${name}
+    unzip -j $downloadedFile \
+      \*/documentation/\*.html \
+      \*/documentation/\*.txt \
+      -x \*/documentation/source/\* \
+      -d $out/share/doc/${name}/documentation
+  '';
+
+  sha256 = "sha256-+T5aUlqQYDWRp4/4AZzsREHgjAnOeUB6qn1GAI0A5hE=";
+
+  meta = with lib; {
+    homepage = "https://software.sil.org/gentium/";
+    description = "A high-quality typeface family for Latin, Cyrillic, and Greek";
+    longDescription = ''
+      Gentium is a typeface family designed to enable the diverse ethnic groups
+      around the world who use the Latin, Cyrillic and Greek scripts to produce
+      readable, high-quality publications. It supports a wide range of Latin and
+      Cyrillic-based alphabets.
+
+      The design is intended to be highly readable, reasonably compact, and
+      visually attractive. The additional ‘extended’ Latin letters are designed
+      to naturally harmonize with the traditional 26 ones. Diacritics are
+      treated with careful thought and attention to their use. Gentium Plus also
+      supports both polytonic and monotonic Greek.
+
+      This package contains the regular and italic styles for the Gentium Plus
+      font family, along with documentation.
+    '';
+    downloadPage = "https://software.sil.org/gentium/download/";
+    maintainers = with maintainers; [ raskin rycee ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/go-font/default.nix b/nixpkgs/pkgs/data/fonts/go-font/default.nix
new file mode 100644
index 000000000000..ed17dfc9054c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/go-font/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchgit }:
+
+let
+  version = "2017-03-30";
+in (fetchgit {
+  name = "go-font-${version}";
+  url = "https://go.googlesource.com/image";
+  rev = "f03a046406d4d7fbfd4ed29f554da8f6114049fc";
+
+  postFetch = ''
+    mv $out/* .
+    mkdir -p $out/share/fonts/truetype
+    mkdir -p $out/share/doc/go-font
+    cp font/gofont/ttfs/* $out/share/fonts/truetype
+    mv $out/share/fonts/truetype/README $out/share/doc/go-font/LICENSE
+  '';
+
+  sha256 = "1488426ya2nzmwjas947fx9h5wzxrp9wasn8nkjqf0y0mpd4f1xz";
+}) // {
+  meta = with lib; {
+    homepage = "https://blog.golang.org/go-fonts";
+    description = "The Go font family";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ sternenseemann ];
+    platforms = lib.platforms.all;
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/gohufont/default.nix b/nixpkgs/pkgs/data/fonts/gohufont/default.nix
new file mode 100644
index 000000000000..f28e3d5ba619
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gohufont/default.nix
@@ -0,0 +1,69 @@
+{ lib, stdenv, fetchurl, fetchFromGitHub
+, mkfontscale, bdf2psf, bdftopcf
+, fonttosfnt, libfaketime
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gohufont";
+  version = "2.1";
+
+  src = fetchFromGitHub {
+    owner  = "hchargois";
+    repo   = "gohufont";
+    rev    = "cc36b8c9fed7141763e55dcee0a97abffcf08224";
+    sha256 = "1hmp11mrr01b29phw0xyj4h9b92qz19cf56ssf6c47c5j2c4xmbv";
+  };
+
+  nativeBuildInputs =
+    [ mkfontscale bdf2psf bdftopcf
+      fonttosfnt libfaketime
+    ];
+
+  buildPhase = ''
+    # convert bdf fonts to psf
+    build=$(pwd)
+    mkdir psf
+    cd ${bdf2psf}/share/bdf2psf
+    for i in $src/*.bdf; do
+      name=$(basename $i .bdf)
+      bdf2psf \
+        --fb "$i" standard.equivalents \
+        ascii.set+useful.set+linux.set 512 \
+        "$build/psf/$name.psf"
+    done
+    cd $build
+
+    # convert bdf fonts to pcf
+    for i in *.bdf $src/hidpi/*.bdf; do
+        name=$(basename $i .bdf)
+        bdftopcf -o "$name.pcf" "$i"
+    done
+
+    # convert unicode bdf fonts to otb
+    for i in *-uni*.bdf $src/hidpi/*-uni*.bdf; do
+        name=$(basename $i .bdf)
+        faketime -f "1970-01-01 00:00:01" \
+        fonttosfnt -v -o "$name.otb" "$i"
+    done
+  '';
+
+  installPhase = ''
+    # install the psf fonts (for the virtual console)
+    fontDir="$out/share/consolefonts"
+    install -D -m 644 -t "$fontDir" psf/*.psf
+
+    # install the pcf and otb fonts (for X11,GTK applications)
+    fontDir="$out/share/fonts/misc"
+    install -D -m 644 -t "$fontDir" *.pcf *.otb
+    mkfontdir "$fontDir"
+  '';
+
+  meta = with lib; {
+    description = ''
+      A monospace bitmap font well suited for programming and terminal use
+    '';
+    homepage    = "https://font.gohu.org/";
+    license     = licenses.wtfpl;
+    maintainers = with maintainers; [ epitrochoid rnhmjoj ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/google-fonts/default.nix b/nixpkgs/pkgs/data/fonts/google-fonts/default.nix
new file mode 100644
index 000000000000..9689fddd3913
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/google-fonts/default.nix
@@ -0,0 +1,50 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation {
+  pname = "google-fonts";
+  version = "unstable-2021-06-12";
+
+  outputs = [ "out" "adobeBlank" ];
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "fonts";
+    rev = "370c795d7e5f9b02db9a793c2779e2c8f94c6adc";
+    sha256 = "sha256-XKjxmupY2KuefCtKZMXWaba1TnNwdYM/P0xGXOtBGmM=";
+  };
+
+  patchPhase = ''
+    # These directories need to be removed because they contain
+    # older or duplicate versions of fonts also present in other
+    # directories. This causes non-determinism in the install since
+    # the installation order of font files with the same name is not
+    # fixed.
+    rm -rv ofl/cabincondensed \
+           ofl/signikanegative \
+           ofl/signikanegativesc
+
+    if find . -name "*.ttf" | sed 's|.*/||' | sort | uniq -c | sort -n | grep -v '^.*1 '; then
+      echo "error: duplicate font names"
+      exit 1
+    fi
+  '';
+
+  dontBuild = true;
+
+  installPhase = ''
+    adobeBlankDest=$adobeBlank/share/fonts/truetype
+    install -m 444 -Dt $adobeBlankDest ofl/adobeblank/AdobeBlank-Regular.ttf
+    rm -r ofl/adobeblank
+    dest=$out/share/fonts/truetype
+    find . -name '*.ttf' -exec install -m 444 -Dt $dest '{}' +
+  '';
+
+  meta = with lib; {
+    homepage = "https://fonts.google.com";
+    description = "Font files available from Google Fonts";
+    license = with licenses; [ asl20 ofl ufl ];
+    platforms = platforms.all;
+    hydraPlatforms = [];
+    maintainers = with maintainers; [ manveru ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/gubbi/default.nix b/nixpkgs/pkgs/data/fonts/gubbi/default.nix
new file mode 100644
index 000000000000..9ae46d089925
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gubbi/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub, fontforge }:
+
+stdenv.mkDerivation rec {
+  pname = "gubbi-font";
+  version = "1.3";
+
+  src = fetchFromGitHub {
+    owner = "aravindavk";
+    repo = "gubbi";
+    rev = "v${version}";
+    sha256 = "10w9i3pmjvs1b3xclrgn4q5a95ss4ipldbxbqrys2dmfivx7i994";
+  };
+
+  nativeBuildInputs = [ fontforge ];
+
+  dontConfigure = true;
+
+  preBuild = "patchShebangs generate.pe";
+
+  installPhase = "install -Dm444 -t $out/share/fonts/truetype/ Gubbi.ttf";
+
+  meta = with lib; {
+    inherit (src.meta) homepage;
+    description = "A Kannada font";
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ehmry ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/gyre/default.nix b/nixpkgs/pkgs/data/fonts/gyre/default.nix
new file mode 100644
index 000000000000..91a8aaf3c301
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/gyre/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchzip }:
+
+let
+  baseName = "gyre-fonts";
+  version = "2.005";
+in fetchzip {
+  name="${baseName}-${version}";
+
+  url = "http://www.gust.org.pl/projects/e-foundry/tex-gyre/whole/tg-${version}otf.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/truetype
+  '';
+
+  sha256 = "17amdpahs6kn7hk3dqxpff1s095cg1caxzij3mxjbbxp8zy0l111";
+
+  meta = {
+    description = "OpenType fonts from the Gyre project, suitable for use with (La)TeX";
+    longDescription = ''
+      The Gyre project started in 2006, and will
+      eventually include enhanced releases of all 35 freely available
+      PostScript fonts distributed with Ghostscript v4.00.  These are
+      being converted to OpenType and extended with diacritical marks
+      covering all modern European languages and then some
+    '';
+    homepage = "http://www.gust.org.pl/projects/e-foundry/tex-gyre/index_html#Readings";
+    license = lib.licenses.lppl13c;
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [ bergey ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/hack/default.nix b/nixpkgs/pkgs/data/fonts/hack/default.nix
new file mode 100644
index 000000000000..0427cf36429f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hack/default.nix
@@ -0,0 +1,40 @@
+{ lib, fetchzip }:
+
+let
+  version = "3.003";
+in fetchzip {
+  name = "hack-font-${version}";
+
+  url = "https://github.com/chrissimpkins/Hack/releases/download/v${version}/Hack-v${version}-ttf.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/hack
+  '';
+
+  sha256 = "1l6ih6v7dqali5c7zh6z2xnbf9h2wz0ag6fdgszmqd5lnhw39v6s";
+
+  meta = with lib; {
+    description = "A typeface designed for source code";
+    longDescription = ''
+      Hack is hand groomed and optically balanced to be a workhorse face for
+      code. It has deep roots in the libre, open source typeface community and
+      expands upon the contributions of the Bitstream Vera & DejaVu projects.
+      The face has been re-designed with a larger glyph set, modifications of
+      the original glyph shapes, and meticulous attention to metrics.
+    '';
+    homepage = "https://sourcefoundry.org/hack/";
+
+    /*
+     "The font binaries are released under a license that permits unlimited
+      print, desktop, and web use for commercial and non-commercial
+      applications. It may be embedded and distributed in documents and
+      applications. The source is released in the widely supported UFO format
+      and may be modified to derive new typeface branches. The full text of
+      the license is available in LICENSE.md" (From the GitHub page)
+    */
+    license = licenses.free;
+    maintainers = with maintainers; [ dywedir ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/hanazono/default.nix b/nixpkgs/pkgs/data/fonts/hanazono/default.nix
new file mode 100644
index 000000000000..29c982ed8aea
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hanazono/default.nix
@@ -0,0 +1,38 @@
+{ lib, fetchzip }:
+
+let
+  version = "20170904";
+in fetchzip {
+  name = "hanazono-${version}";
+
+  url = "mirror://osdn/hanazono-font/68253/hanazono-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.txt -d $out/share/doc/hanazono
+  '';
+
+  sha256 = "0qiyd1vk3w8kqmwc6xi5d390wdr4ln8xhfbx3n8r1hhad9iz14p6";
+
+  meta = with lib; {
+    description = "Japanese Mincho-typeface TrueType font";
+    homepage = "https://fonts.jp/hanazono/";
+    longDescription = ''
+      Hanazono Mincho typeface is a Japanese TrueType font that developed with a
+      support of Grant-in-Aid for Publication of Scientific Research Results
+      from Japan Society for the Promotion of Science and the International
+      Research Institute for Zen Buddhism (IRIZ), Hanazono University. also with
+      volunteers who work together on glyphwiki.org.
+    '';
+
+    # Dual-licensed under OFL and the following:
+    # This font is a free software.
+    # Unlimited permission is granted to use, copy, and distribute it, with
+    # or without modification, either commercially and noncommercially.
+    # THIS FONT IS PROVIDED "AS IS" WITHOUT WARRANTY.
+    license = [ licenses.ofl licenses.free ];
+    maintainers = with maintainers; [ mathnerd314 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/hannom/default.nix b/nixpkgs/pkgs/data/fonts/hannom/default.nix
new file mode 100644
index 000000000000..0ca15b1b0d2e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hannom/default.nix
@@ -0,0 +1,33 @@
+{ lib, fetchzip }:
+
+let
+  version = "2005";
+in fetchzip {
+  name = "hannom-${version}";
+
+  url = "mirror://sourceforge/vietunicode/hannom/hannom%20v${version}/hannomH.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  sha256 = "sha256-zOYJxEHl4KM0ncVQDBs9+e3z8DxzF2ef3pRj0OVSuUo=";
+
+  meta = with lib; {
+    description = "UNICODE Han Nom Font Set";
+    homepage = "http://vietunicode.sourceforge.net/fonts/fonts_hannom.html";
+    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.
+    '';
+    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..d9deef80c0d7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hasklig/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.1";
+in fetchzip {
+  name = "hasklig-${version}";
+
+  url = "https://github.com/i-tu/Hasklig/releases/download/${version}/Hasklig-${version}.zip";
+
+  postFetch = ''
+    unzip $downloadedFile
+    install -m444 -Dt $out/share/fonts/opentype *.otf
+  '';
+
+  sha256 = "0xxyx0nkapviqaqmf3b610nq17k20afirvc72l32pfspsbxz8ybq";
+
+  meta = with lib; {
+    homepage = "https://github.com/i-tu/Hasklig";
+    description = "A font with ligatures for Haskell code based off Source Code Pro";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ davidrusu Profpatsch ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/helvetica-neue-lt-std/default.nix b/nixpkgs/pkgs/data/fonts/helvetica-neue-lt-std/default.nix
new file mode 100644
index 000000000000..19092cb06a54
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/helvetica-neue-lt-std/default.nix
@@ -0,0 +1,35 @@
+{ lib, fetchzip }:
+
+let
+  version = "2014.08.16"; # date of most recent file in distribution
+in fetchzip {
+  name = "helvetica-neue-lt-std-${version}";
+
+  url = "https://web.archive.org/web/20190823153624/http://ephifonts.com/downloads/helvetica-neue-lt-std.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile "Helvetica Neue LT Std/*.otf" -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "0ampp9vf9xw0sdppl4lb9i9h75ywljhdcqmzh45mx2x9m7h6xgg9";
+
+  meta = 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..3ff5dd368292
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hermit/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  pname = "hermit";
+  version = "2.0";
+in fetchzip rec {
+  name = "${pname}-${version}";
+
+  url = "https://pcaro.es/d/otf-${name}.tar.gz";
+
+  postFetch = ''
+    tar xf $downloadedFile
+    install -m444 -Dt $out/share/fonts/opentype *.otf
+  '';
+  sha256 = "127hnpxicqya7v1wmzxxqafq3aj1n33i4j5ncflbw6gj5g3bizwl";
+
+  meta = with lib; {
+    description = "monospace font designed to be clear, pragmatic and very readable";
+    homepage = "https://pcaro.es/p/hermit";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ dtzWill ];
+    platforms = platforms.all;
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/hyperscrypt/default.nix b/nixpkgs/pkgs/data/fonts/hyperscrypt/default.nix
new file mode 100644
index 000000000000..09bcc2464ba4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hyperscrypt/default.nix
@@ -0,0 +1,40 @@
+{ fetchzip, lib }:
+
+let
+  version = "1.1";
+  pname = "HyperScrypt";
+in
+
+fetchzip {
+  name = "${lib.toLower pname}-font-${version}";
+  url = "https://gitlab.com/StudioTriple/Hyper-Scrypt/-/archive/${version}/Hyper-Scrypt-${version}.zip";
+  sha256 = "01pf5p2scmw02s0gxnibiwxbpzczphaaapv0v4s7svk9aw2gmc0m";
+  postFetch = ''
+    mkdir -p $out/share/fonts/{truetype,opentype}
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype/${pname}.ttf
+    unzip -j $downloadedFile \*${pname}.otf -d $out/share/fonts/opentype/${pname}.otf
+  '';
+
+  meta = with lib; {
+    homepage = "http://velvetyne.fr/fonts/hyper-scrypt/";
+    description = "A modern stencil typeface inspired by stained glass technique";
+    longDescription = ''
+      The Hyper Scrypt typeface was designed for the Hyper Chapelle
+      exhibition. It was commissioned by AAAAA Atelier to Studio
+      Triple's designer Jérémy Landes.  Hyper Scrypt is a modern
+      stencil typeface inspired by the stained glass technique used in
+      the Metz cathedral. It borrows the stained glass method, drawing
+      holes for the light with black lead. This creates a reverse
+      typeface, where the shapes of the letters are drawn by their
+      counters. Hyper Scrypt is at the intersection between 3 metals :
+      the sacred lead of stained glass, the lead of print characters
+      and the heavy metal. Despite its organic look inherited for the
+      molted metal, Hyper Scrypt is based upon a rigorous grid,
+      allowing some neat alignements between shapes in multi lines
+      layouts.
+      '';
+    license = licenses.ofl;
+    maintainers = with maintainers; [ leenaars ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/i-dot-ming/default.nix b/nixpkgs/pkgs/data/fonts/i-dot-ming/default.nix
new file mode 100644
index 000000000000..766440032f3a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/i-dot-ming/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchzip }:
+
+let
+  version = "7.01";
+in
+fetchzip {
+  name = "i.ming-${version}";
+  url = "https://raw.githubusercontent.com/ichitenfont/I.Ming/${version}/${version}/I.Ming-${version}.ttf";
+  sha256 = "1b2dj7spkznpkad8a0blqigj9f6ism057r0wn9wdqg5g88yp32vd";
+
+  postFetch = ''
+    install -DT -m444 $downloadedFile $out/share/fonts/truetype/I.Ming/I.Ming.ttf
+  '';
+
+  meta = with lib; {
+    description = "An 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..6da80a1bf830
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ia-writer-duospace/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "20180721";
+in fetchFromGitHub {
+  name = "ia-writer-duospace-${version}";
+
+  owner = "iaolo";
+  repo = "iA-Fonts";
+  rev = "55edf60f544078ab1e14987bc67e9029a200e0eb";
+  sha256 = "0932lcxf861vb3hz52z1xj8r99ag9sdyqsnq9brv7gc4kp2l339c";
+
+  postFetch = ''
+    tar --strip-components=1 -xzvf $downloadedFile
+    mkdir -p $out/share/fonts/opentype
+    cp "iA Writer Duospace/OTF (Mac)/"*.otf $out/share/fonts/opentype/
+  '';
+
+  meta = with lib; {
+    description = "iA Writer Duospace Typeface";
+    homepage = "https://ia.net/topics/in-search-of-the-perfect-writing-font";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ibm-plex/default.nix b/nixpkgs/pkgs/data/fonts/ibm-plex/default.nix
new file mode 100644
index 000000000000..c24c507695e5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ibm-plex/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchzip }:
+
+let
+  version = "6.0.0";
+
+in fetchzip {
+  name = "ibm-plex-${version}";
+
+  url = "https://github.com/IBM/plex/releases/download/v${version}/OpenType.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile "OpenType/*/*.otf" -x "OpenType/IBM-Plex-Sans-JP/unhinted/*" -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "0zv9kw4hmchf374pl0iajzybmx5wklsplg56j115m46i4spij6mr";
+
+  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..57069fadbc5e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/inconsolata/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+  pname = "inconsolata";
+  version = "unstable-2021-01-19";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "fonts";
+    rev = "f113126dc4b9b1473d9354a86129c9d7b837aa1a";
+    sha256 = "0safw5prpa63mqcyfw3gr3a535w4c9hg5ayw5pkppiwil7n3pyxs";
+  };
+
+  installPhase = ''
+    install -m644 --target $out/share/fonts/truetype/inconsolata -D $src/ofl/inconsolata/*.ttf
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.levien.com/type/myfonts/inconsolata.html";
+    description = "A monospace font for both screen and print";
+    maintainers = with maintainers; [ mikoim raskin ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/inconsolata/lgc.nix b/nixpkgs/pkgs/data/fonts/inconsolata/lgc.nix
new file mode 100644
index 000000000000..945fafcfcc52
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/inconsolata/lgc.nix
@@ -0,0 +1,52 @@
+{lib, stdenv, fetchFromGitHub, fontforge}:
+
+stdenv.mkDerivation rec {
+  pname = "inconsolata-lgc";
+  version = "1.3";
+
+  src = fetchFromGitHub {
+    owner = "MihailJP";
+    repo = "Inconsolata-LGC";
+    rev = "8adfef7a7316fcd2e9a5857054c7cdb2babeb35d";
+    sha256 = "0dqjj3mlc28s8ljnph6l086b4j9r5dly4fldq59crycwys72zzai";
+  };
+
+  nativeBuildInputs = [ fontforge ];
+
+  installPhase = ''
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/truetype {} \;
+    find . -name '*.otf' -exec install -m444 -Dt $out/share/fonts/opentype {} \;
+    install -m444 -Dt $out/share/doc/${pname}-${version} LICENSE README
+  '';
+
+  meta = with lib; {
+    description = "Fork of Inconsolata font, with proper support of Cyrillic and Greek";
+    longDescription = ''
+      Inconsolata is one of the most suitable font for programmers created by Raph
+      Levien. Since the original Inconsolata does not contain Cyrillic alphabet,
+      it was slightly inconvenient for not a few programmers from Russia.
+
+      Inconsolata LGC is a modified version of Inconsolata with added the Cyrillic
+      alphabet which directly descends from Inconsolata Hellenic supporting modern
+      Greek.
+
+      Inconsolata LGC is licensed under SIL OFL.
+
+
+      Inconsolata LGC changes:
+      * Cyrillic glyphs added.
+      * Italic and Bold font added.
+
+      Changes inherited from Inconsolata Hellenic:
+      * Greek glyphs.
+
+      Changes inherited from Inconsolata-dz:
+      * Straight quotation marks.
+    '';
+
+    # See `License.txt' for details.
+    license = licenses.ofl;
+    homepage = "https://github.com/MihailJP/Inconsolata-LGC";
+    maintainers = with maintainers; [ avnik rht ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/input-fonts/default.nix b/nixpkgs/pkgs/data/fonts/input-fonts/default.nix
new file mode 100644
index 000000000000..36a18c1f8f1c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/input-fonts/default.nix
@@ -0,0 +1,98 @@
+{ lib
+, stdenv
+, fetchzip
+, python3
+, config
+, acceptLicense ? config.input-fonts.acceptLicense or false
+}:
+
+let
+
+  throwLicense = throw ''
+    Input is available free of charge for private/unpublished usage. This includes things like your personal coding app or for composing plain text documents.
+    To use it, you need to agree to its license: https://input.djr.com/license/
+
+    You can express acceptance by setting acceptLicense to true in your
+    configuration. Note that this is not a free license so it requires allowing
+    unfree licenses.
+
+    configuration.nix:
+      nixpkgs.config.allowUnfree = true;
+      nixpkgs.config.input-fonts.acceptLicense = true;
+
+    config.nix:
+      allowUnfree = true;
+      input-fonts.acceptLicense = true;
+
+    If you would like to support this project, consider purchasing a license at <http://input.djr.com/buy>.
+  '';
+
+  releaseDate = "2015-06-24";
+
+in
+
+stdenv.mkDerivation rec {
+  pname = "input-fonts";
+  version = "1.2";
+
+  src =
+    assert !acceptLicense -> throwLicense;
+    fetchzip {
+      name = "input-fonts-${version}";
+      # Add .zip parameter so that zip unpackCmd can match it.
+      url = "https://input.djr.com/build/?fontSelection=whole&a=0&g=0&i=0&l=0&zero=0&asterisk=0&braces=0&preset=default&line-height=1.2&accept=I+do&email=&.zip";
+      sha256 = "BESZ4Bjgm2hvQ7oPpMvYSlE8EqvQjqHZtXWIovqyIzA=";
+      stripRoot = false;
+
+      extraPostFetch = ''
+        # Reset the timestamp to release date for determinism.
+        PATH=${lib.makeBinPath [ python3.pkgs.fonttools ]}:$PATH
+        for ttf_file in $out/Input_Fonts/*/*/*.ttf; do
+          ttx_file=$(dirname "$ttf_file")/$(basename "$ttf_file" .ttf).ttx
+          ttx "$ttf_file"
+          rm "$ttf_file"
+          touch -m -t ${builtins.replaceStrings [ "-" ] [ "" ] releaseDate}0000 "$ttx_file"
+          ttx --recalc-timestamp "$ttx_file"
+          rm "$ttx_file"
+        done
+      '';
+    };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    find Input_Fonts -name "*.ttf" -exec cp -a {} "$out"/share/fonts/truetype/ \;
+    mkdir -p "$out"/share/doc
+    cp -a *.txt "$out"/share/doc/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Fonts for Code, from Font Bureau";
+    longDescription = ''
+      Input is a font family designed for computer programming, data,
+      and text composition. It was designed by David Jonathan Ross
+      between 2012 and 2014 and published by The Font Bureau. It
+      contains a wide array of styles so you can fine-tune the
+      typography that works best in your editing environment.
+
+      Input Mono is a monospaced typeface, where all characters occupy
+      a fixed width. Input Sans and Serif are proportional typefaces
+      that are designed with all of the features of a good monospace —
+      generous spacing, large punctuation, and easily distinguishable
+      characters — but without the limitations of a fixed width.
+    '';
+    homepage = "https://input.djr.com/";
+    license = licenses.unfree;
+    maintainers = with maintainers; [
+      jtojnar
+      romildo
+    ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/inriafonts/default.nix b/nixpkgs/pkgs/data/fonts/inriafonts/default.nix
new file mode 100644
index 000000000000..d8127b851274
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/inriafonts/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "inriafonts";
+  version = "1.200";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "BlackFoundry";
+  repo = "InriaFonts";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -m444 -Dt $out/share/fonts/truetype fonts/*/TTF/*.ttf
+    install -m444 -Dt $out/share/fonts/opentype fonts/*/OTF/*.otf
+  '';
+  sha256 = "0wrwcyycyzvgvgnlmwi1ncdvwb8f6bbclynd1105rsyxgrz5dd70";
+
+  meta = with lib; {
+    homepage = "https://black-foundry.com/work/inria";
+    description = "Inria Sans and Inria Serif";
+    longDescription = ''
+      Inria Sans and Inria Serif are the two members of a type family
+      design for the communication of Inria, the French national institute
+      dedicated to numeric research. The Institut needed a font
+      showing its values at the crossroad of humanity, technology,
+      excellence and creativity. Black[Foudry] created a humanist
+      typeface with a unapologetically contemporary design as the
+      Sans-serif part and a more rational axis and drawing for the
+      serif. Both members comes in 3 weights with matching italics.
+    '';
+    license = licenses.ofl;
+    maintainers = with maintainers; [ leenaars ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/inter/default.nix b/nixpkgs/pkgs/data/fonts/inter/default.nix
new file mode 100644
index 000000000000..ca01acd0c54b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/inter/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "3.19";
+in fetchzip {
+  name = "inter-${version}";
+
+  url = "https://github.com/rsms/inter/releases/download/v${version}/Inter-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "sha256-8p15thg3xyvCA/8dH2jGQoc54nzESFDyv5m47FgWrSI=";
+
+  meta = with lib; {
+    homepage = "https://rsms.me/inter/";
+    description = "A typeface specially designed for user interfaces";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ demize dtzWill ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/bin.nix b/nixpkgs/pkgs/data/fonts/iosevka/bin.nix
new file mode 100644
index 000000000000..08c4a1b145e2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iosevka/bin.nix
@@ -0,0 +1,40 @@
+{ stdenv, lib, fetchurl, iosevka, unzip
+, variant ? ""
+}:
+
+let
+  name = if lib.hasPrefix "sgr" variant then variant
+    else "iosevka" + lib.optionalString (variant != "") "-" + variant;
+
+  variantHashes = import ./variants.nix;
+  validVariants = map (lib.removePrefix "iosevka-")
+    (builtins.attrNames (builtins.removeAttrs variantHashes [ "iosevka" ]));
+in stdenv.mkDerivation rec {
+  pname = "${name}-bin";
+  version = "10.1.0";
+
+  src = fetchurl {
+    url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/ttc-${name}-${version}.zip";
+    sha256 = variantHashes.${name} or (throw ''
+      No such variant "${variant}" for package iosevka-bin.
+      Valid variants are: ${lib.concatStringsSep ", " validVariants}.
+    '');
+  };
+
+  nativeBuildInputs = [ unzip ];
+
+  dontInstall = true;
+
+  unpackPhase = ''
+    mkdir -p $out/share/fonts
+    unzip -d $out/share/fonts/truetype $src
+  '';
+
+  meta = iosevka.meta // {
+    maintainers = with lib.maintainers; [
+      cstrahan
+    ];
+  };
+
+  passthru.updateScript = ./update-bin.sh;
+}
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/default.nix b/nixpkgs/pkgs/data/fonts/iosevka/default.nix
new file mode 100644
index 000000000000..04e5b48bd0bd
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iosevka/default.nix
@@ -0,0 +1,139 @@
+{ stdenv, lib, nodejs, nodePackages, remarshal
+, ttfautohint-nox
+  # Custom font set options.
+  # See https://typeof.net/Iosevka/customizer
+  # Can be a raw TOML string, or a Nix attrset.
+
+  # Ex:
+  # privateBuildPlan = ''
+  #   [buildPlans.iosevka-custom]
+  #   family = "Iosevka Custom"
+  #   spacing = "normal"
+  #   serifs = "sans"
+  #
+  #   [buildPlans.iosevka-custom.variants.design]
+  #   capital-j = "serifless"
+  #
+  #   [buildPlans.iosevka-custom.variants.italic]
+  #   i = "tailed"
+  # '';
+
+  # Or:
+  # privateBuildPlan = {
+  #   family = "Iosevka Custom";
+  #   spacing = "normal";
+  #   serifs = "sans";
+  #
+  #   variants = {
+  #     design.capital-j = "serifless";
+  #     italic.i = "tailed";
+  #   };
+  # }
+, privateBuildPlan ? null
+  # Extra parameters. Can be used for ligature mapping.
+  # It must be a raw TOML string.
+
+  # Ex:
+  # extraParameters = ''
+  #   [[iosevka.compLig]]
+  #   unicode = 57808 # 0xe1d0
+  #   featureTag = 'XHS0'
+  #   sequence = "+>"
+  # '';
+, extraParameters ? null
+  # Custom font set name. Required if any custom settings above.
+, set ? null }:
+
+assert (privateBuildPlan != null) -> set != null;
+assert (extraParameters != null) -> set != null;
+
+let
+  # We don't know the attribute name for the Iosevka package as it
+  # changes not when our update script is run (which in turn updates
+  # node-packages.json, but when node-packages/generate.sh is run
+  # (which updates node-packages.nix).
+  #
+  # Doing it this way ensures that the package can always be built,
+  # although possibly an older version than ioseva-bin.
+  nodeIosevka = (
+    lib.findSingle
+      (drv: drv ? packageName && drv.packageName == "iosevka")
+      (throw "no 'iosevka' package found in nodePackages")
+      (throw "multiple 'iosevka' packages found in nodePackages")
+      (lib.attrValues nodePackages)
+  ).override (drv: { dontNpmInstall = true; });
+in
+stdenv.mkDerivation rec {
+  pname = if set != null then "iosevka-${set}" else "iosevka";
+  inherit (nodeIosevka) version src;
+
+  nativeBuildInputs = [
+    nodejs
+    nodeIosevka
+    remarshal
+    ttfautohint-nox
+  ];
+
+  buildPlan =
+    if builtins.isAttrs privateBuildPlan
+      then builtins.toJSON { buildPlans.${pname} = privateBuildPlan; }
+    else privateBuildPlan;
+
+  inherit extraParameters;
+  passAsFile = [ "buildPlan" "extraParameters" ];
+
+  configurePhase = ''
+    runHook preConfigure
+    ${lib.optionalString (builtins.isAttrs privateBuildPlan) ''
+      remarshal -i "$buildPlanPath" -o private-build-plans.toml -if json -of toml
+    ''}
+    ${lib.optionalString (builtins.isString privateBuildPlan) ''
+      cp "$buildPlanPath" private-build-plans.toml
+    ''}
+    ${lib.optionalString (extraParameters != null) ''
+      echo -e "\n" >> params/parameters.toml
+      cat "$extraParametersPath" >> params/parameters.toml
+    ''}
+    ln -s ${nodeIosevka}/lib/node_modules/iosevka/node_modules .
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+    npm run build --no-update-notifier -- --jCmd=$NIX_BUILD_CORES ttf::$pname >/dev/null
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    fontdir="$out/share/fonts/truetype"
+    install -d "$fontdir"
+    install "dist/$pname/ttf"/* "$fontdir"
+    runHook postInstall
+  '';
+
+  enableParallelBuilding = true;
+
+  passthru = {
+    updateScript = ./update-default.sh;
+  };
+
+  meta = with lib; {
+    homepage = "https://be5invis.github.io/Iosevka";
+    downloadPage = "https://github.com/be5invis/Iosevka/releases";
+    description = ''
+      Slender monospace sans-serif and slab-serif typeface inspired by Pragmata
+      Pro, M+ and PF DIN Mono, designed to be the ideal font for programming.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [
+      cstrahan
+      jfrankenau
+      ttuegel
+      babariviere
+      rileyinman
+      AluisioASG
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/node.nix b/nixpkgs/pkgs/data/fonts/iosevka/node.nix
new file mode 100644
index 000000000000..0983d3e127be
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iosevka/node.nix
@@ -0,0 +1,17 @@
+# This file has been generated by node2nix 1.7.0. Do not edit!
+
+{pkgs ? import <nixpkgs> {
+    inherit system;
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-8_x"}:
+
+let
+  nodeEnv = import ../../../development/node-packages/node-env.nix {
+    inherit (pkgs) stdenv python2 utillinux runCommand writeTextFile;
+    inherit nodejs;
+    libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
+  };
+in
+import ./node-packages.nix {
+  inherit (pkgs) fetchurl fetchgit;
+  inherit nodeEnv;
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/update-bin.sh b/nixpkgs/pkgs/data/fonts/iosevka/update-bin.sh
new file mode 100755
index 000000000000..68f93f1f26e6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iosevka/update-bin.sh
@@ -0,0 +1,28 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p curl jq
+
+set -euo pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+release=$(curl -s https://api.github.com/repos/be5invis/Iosevka/releases/latest)
+
+oldVersion=$(nix-instantiate --eval -E 'with import ../../../.. {}; lib.getVersion iosevka-bin' | tr -d '"')
+version=$(echo "$release" | jq -r .tag_name | tr -d v)
+
+if test "$oldVersion" = "$version"; then
+    echo "New version same as old version, nothing to do." >&2
+    exit 0
+fi
+
+sed -i "s/$oldVersion/$version/" bin.nix
+
+{
+    echo '# This file was autogenerated. DO NOT EDIT!'
+    echo '{'
+    for asset in $(echo "$release" | jq -r '.assets[].name | select(startswith("ttc"))'); do
+        printf '  %s = "%s";\n' \
+            $(echo "$asset" | sed -r "s/^ttc-(.*)-$version.zip$/\1/") \
+            $(nix-prefetch-url "https://github.com/be5invis/Iosevka/releases/download/v$version/$asset")
+    done
+    echo '}'
+} >variants.nix
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/update-default.sh b/nixpkgs/pkgs/data/fonts/iosevka/update-default.sh
new file mode 100755
index 000000000000..208ea6101ac2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iosevka/update-default.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p common-updater-scripts coreutils gawk replace
+set -euo pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+nixpkgs=../../../..
+repo=https://github.com/be5invis/Iosevka
+
+# Discover the latest version.
+current_version=$(nix-instantiate "$nixpkgs" --eval --strict -A iosevka.version | tr -d '"')
+new_version=$(list-git-tags "$repo" | sort --reverse --version-sort | awk 'match($0, /^v([0-9.]+)$/, m) { print m[1]; exit; }')
+if [[ "$new_version" == "$current_version" ]]; then
+    echo "iosevka: no update found"
+    exit
+fi
+
+# Update the source package in nodePackages.
+current_source="$repo/archive/v$current_version.tar.gz"
+new_source="$repo/archive/v$new_version.tar.gz"
+replace-literal -ef "$current_source" "$new_source" ../../../development/node-packages/node-packages.json
+echo "iosevka: $current_version -> $new_version (after nodePackages update)"
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/variants.nix b/nixpkgs/pkgs/data/fonts/iosevka/variants.nix
new file mode 100644
index 000000000000..0ce5212b1311
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iosevka/variants.nix
@@ -0,0 +1,95 @@
+# This file was autogenerated. DO NOT EDIT!
+{
+  iosevka = "09fwk1sm2i0yf2qvwc99g46jhhi9jwmxrqm02m9n348gcsvml7k1";
+  iosevka-aile = "07nykjvm5acnxc585y7qfs38d1mm4x654wykq24cwd0qdialz2yn";
+  iosevka-curly = "1v9v5xhv4pdihb2q1hgzlw3z54vpg9lvjf753z95x97ah246kbyc";
+  iosevka-curly-slab = "0av94y57pi9vy8skb96dbvlcbz7j6hz7cvhsrdpx50nbf9x2ya4b";
+  iosevka-etoile = "0vinmfcxs16rx1i86sl7ig7hwwyfwv49vh12k6yx9gx56jyywj51";
+  iosevka-slab = "18sjdj5gdg993a0mzvx43l3ll7q2l8w30j12934nlzlw5cadv8gf";
+  iosevka-ss01 = "1k08nwzgdz78iiijd6bzfricjbwa23xmzjm6jq72q7cvcqrwpzfj";
+  iosevka-ss02 = "139q7ps9y97qzmyqr45xqphw5szr4a119pm1jnwrc5scplnhiisb";
+  iosevka-ss03 = "1rbsvrc11skznnk448nj0brfvj58zhgkczlq7skhb8rc3mznhgb8";
+  iosevka-ss04 = "0rr7zy9n84lqxj7h0ljd091m8a5yjs0kzpyp3j68mvccsdwncqq4";
+  iosevka-ss05 = "035rv0pq7741n6c7zkajjzis2rkdyb75z9zjzyiiylfx19j6d6a7";
+  iosevka-ss06 = "0bvbl36zpk79f3h7svs51l0wbllmnnkgxmdk76ikfg4a490nz4g9";
+  iosevka-ss07 = "061xngjvznr6syk1y996fmnjqpj0kvnnibibr46lgqcx5xb1w38x";
+  iosevka-ss08 = "0szc3iydg3kkg6v42ym52b7nd6ljfwrfcw7n3j1av9vhf5gmn0rv";
+  iosevka-ss09 = "1p0hsl6vihly2drh6yiniijcwvwjz35d34d6jfxavjhx028h92mw";
+  iosevka-ss10 = "152asnmd7m7q1hligkv4ar8h71xn96586p9whplvmkgfrcr731p7";
+  iosevka-ss11 = "0mf3gg1b9x3i1j8c3yqks7sc56j97fwx736pr01bf99lw4jchd2h";
+  iosevka-ss12 = "136s3i5dwz0iv8mivq8fraadhbqzjjc5h2c5wqydvmw9i7rpyp2h";
+  iosevka-ss13 = "0n9886kn9sr89rwnc0r0q9d2a16fykq5asd0cazrs95jbqq0acix";
+  iosevka-ss14 = "128y8dgsawdz20lyjshdl7932222dph6qyiirim6rkh99bp2kdy6";
+  iosevka-ss15 = "0h2ywzn2gmaj61n5gzdms7v3yqa3x474icdg10vqds7i86n6g8am";
+  iosevka-ss16 = "1c1sr4lphwf8x5xdagciws8dr7ia8jh2cy3zv787g8dhflhzvc1i";
+  iosevka-ss17 = "1gqbwx89hcnky7bi1xscz13ykh4srvycbfgf9z4b5j26wflfk2a9";
+  iosevka-ss18 = "07h0zcf789g6qw5laznf5y67syh003lwhr6141ifz2zv2sgjl716";
+  sgr-iosevka = "0h9yg63cjc0s4kbl5k9lpic48y5iz0hlm8bi7h2h850zhbj405fm";
+  sgr-iosevka-aile = "1sv0lb2xb18skwvvw95qzdi9hqr1mr3gi2p4plqlbxq6bjpcvc57";
+  sgr-iosevka-curly = "1irg71zrbqnw1r2ar5qkfzdjzb1ziwd22jyvm9g1gynjiwh1idaj";
+  sgr-iosevka-curly-slab = "12lc9gqlbnp4crp9qrqf38dlzwaqanyj3l9xyasd96z33wmgnvcr";
+  sgr-iosevka-etoile = "0j78cbrdsz9qnvs6y6vkv1ys2spfv9l207z20zkyw5m0i3yvhwi4";
+  sgr-iosevka-fixed = "04lirldlmjlvz8q33xb2886d1jqaj1a7a94mnrm1ikw2gzbh7j1m";
+  sgr-iosevka-fixed-curly = "1s4xyzlmg9s8jvpvc22bxqc6z9qn0bbgham9kp1w2nwlmlnhl712";
+  sgr-iosevka-fixed-curly-slab = "01g6rk0n1xs0bv4vyqv9pwyndzk9k8cfhf0sd640zdkqi51p4raw";
+  sgr-iosevka-fixed-slab = "1ipzwxs0jqk4cc8snyy9mxhak1zrj9qlicwwhhhv8pmxs2lcirgq";
+  sgr-iosevka-fixed-ss01 = "1vpfgj496yzn5n8zb5hxzlx0kh0yfh27v2naz4zi4gci0k58mj4g";
+  sgr-iosevka-fixed-ss02 = "122id78h9lvnm4abflng5572zjdn52wqci9jq88gh5iyk02kja6b";
+  sgr-iosevka-fixed-ss03 = "0wa4q1zqp75ja5m34wy3zmx5in225ldr0ah23y7l9kh3x67lfykd";
+  sgr-iosevka-fixed-ss04 = "11dxlc3r1gn3psf4bpsiwr283zjpc63d8fgswwbh5d6swk9nxm7v";
+  sgr-iosevka-fixed-ss05 = "0jw57byz8rbdc5h1ig5d4kpjklqrm6880sx0z06gw97z3p4aqmb1";
+  sgr-iosevka-fixed-ss06 = "0saxvswnrszi3kirv5j1pp96n9fhnqwrmsc8naqdgq342rcy13w5";
+  sgr-iosevka-fixed-ss07 = "0bsrpfbcjf2g8vd6f6sv6yxvdi9s6wdjckbjb3m64mdgv25lpdwv";
+  sgr-iosevka-fixed-ss08 = "1l5k2y0h4h3fsk2ac7akym4rash6bb63bj9vhh3f9igq062dk10a";
+  sgr-iosevka-fixed-ss09 = "09s1x6q7lx4y0462m0ac3jp8jfy4x2sc2irfmxcz2rl5px2smgdg";
+  sgr-iosevka-fixed-ss10 = "0j8h200gw60rzknxyg7nvcg9cw1nhvgy3n6n70lf3b8jnp5splzd";
+  sgr-iosevka-fixed-ss11 = "0cgxy8gq5wak1a7z3j013l1kadph45ckl865dlkw5jnmndz7a684";
+  sgr-iosevka-fixed-ss12 = "1y9grhh3ami6qwdm8a6r7m671n7c9bnxp7qgmk7qxgb8jax31qcp";
+  sgr-iosevka-fixed-ss13 = "1a9in4ybl9vjyvxab0hdbjnq46rg3yx9gyalj6x8y3mxsfij0wh2";
+  sgr-iosevka-fixed-ss14 = "0wc3yw6rf05wdh8kzz6af1apirvyspkb8bav4pbdxahsy1asij58";
+  sgr-iosevka-fixed-ss15 = "1b7ns68lx267y9rwlv47yl0y48nvwyzqdpgpwdfwkmpl6vd9kmnn";
+  sgr-iosevka-fixed-ss16 = "07h4zvcll7324r4l7kwwk13874hmjs7vdiiffbjwhi403vbiw1an";
+  sgr-iosevka-fixed-ss17 = "1rjb0c3yvww8n3sam49ynj2f7h0xgbdsznk7xbj4sk5pkx3l5zr5";
+  sgr-iosevka-fixed-ss18 = "0s39p9khjidasizg1ps3k87ldlkpy3cxy5l6r0c2bkvnfz63k66n";
+  sgr-iosevka-slab = "10gx0hlr2iywj3nksc70idjha9wja3fw9fl8yvkmnpbqaxlrlzm8";
+  sgr-iosevka-ss01 = "1fzxzx9ky4zrbv3zbjh7c57k8dm949xz356a4jk1lpbmwyd0gry4";
+  sgr-iosevka-ss02 = "1qk9f257pq2r4jfilrh02viwgy80kqga4czpc1mvwwbqfalz2lg9";
+  sgr-iosevka-ss03 = "0cj2xgpfcxdj4sh2sdp6cvbg08s6c8gvg0h01ylrqnazxddfv1xr";
+  sgr-iosevka-ss04 = "02q2xqv1qvdijn53p3nbz2swn39yk2pp5ndq1wkakm5j3w5n52f9";
+  sgr-iosevka-ss05 = "0y4f8zkzvxq512ns4qzbq5hnd6zzwdjlc1p2iify0f4m491msx5n";
+  sgr-iosevka-ss06 = "154jzvb44h1njzkzsk9x6mk7g9sa5jr7kqjv26ylm0ax0i039ax2";
+  sgr-iosevka-ss07 = "08025i39hkinrd0sq0yj3d9dc3fqhv5qfdvxaqg3wp89p5jz2q2q";
+  sgr-iosevka-ss08 = "1hj80l9k1qi4cnw5dqfp431z3yiyqvrhby9f4ny84ppkpihp60xk";
+  sgr-iosevka-ss09 = "0pl1fz70nx0ls0l4zr8j111flf2mh54miavb0422r2dzprvqaviq";
+  sgr-iosevka-ss10 = "1wb03i26g36n6qgzkyza3sbdbgpari5sw0m4qm7yaz3c2f91ic69";
+  sgr-iosevka-ss11 = "1mz1mg0pc3nidsl5pb6kvdmmga62fj8x77x0n1xjzcz2iwvdd616";
+  sgr-iosevka-ss12 = "0g3i88rhax9am4nfjzq91kdkj1k6vzszia7g79hzsw8nfyrd1i52";
+  sgr-iosevka-ss13 = "1jcg4y52xbig8npjd7jbjxqdr9nsbwh120mh9sjy9vvq3hxdsbqh";
+  sgr-iosevka-ss14 = "1am7j9ymxgmyb50qziyd3xkal1f82cnx4m21gd2rqxijpa12x1r3";
+  sgr-iosevka-ss15 = "0zpwz51xdbckldgycgbmrqf3g9wssanmb2z554n1vbmc5whhwkpp";
+  sgr-iosevka-ss16 = "19jzkq3xj0cncs4mk11z8q8mmf6h75i0x2nj4ikcvk01mlrss6s8";
+  sgr-iosevka-ss17 = "1zn0xh0h997afjsj6n97bmxanxk441iw6mcdliavfs9l6lj1zhns";
+  sgr-iosevka-ss18 = "147w89y3p9s2qanm4wwxv3plpif50fs85hzhhdz23jin5zvh5lz2";
+  sgr-iosevka-term = "01aqqniw3r2njv4fc114iymjzp9k5mdl7c5dyxypm71sdlpcjxqj";
+  sgr-iosevka-term-curly = "0rh0k1svfsan04q50ihhf2xf2fa8isggpqmfps77q1xrbih9miyc";
+  sgr-iosevka-term-curly-slab = "0ys2apprdz1awf6nad6phv2k2kf0qfigb22j930y1gya9vshxqx1";
+  sgr-iosevka-term-slab = "0qbiwsllyim81ayh0whrkzc1nq06x9g7hnv8haxh91jg9nf327vw";
+  sgr-iosevka-term-ss01 = "0mdgh9hdnz752d7sxv91ayi6lyp6czs6gq21dqigk3wmkgwaraz2";
+  sgr-iosevka-term-ss02 = "0zxynyzbngng6ymajd7yf5pmagdzxnr19vnpbmqkvhjnsjmhqpcd";
+  sgr-iosevka-term-ss03 = "192fjh0kc8jh0z8y7l74g41jvqfnax5p2shnn0ch1h824vraklvd";
+  sgr-iosevka-term-ss04 = "0fjmy0wl8hh38gbhf5h6m064la1dp68lyfimmxvjpf1s2c3g5szd";
+  sgr-iosevka-term-ss05 = "0w57k1kjn91srngy297fywi1wnc64bwyymclk0w704sqpx04jv4n";
+  sgr-iosevka-term-ss06 = "0n2ifw444z606qm9w4il6inmf5zmbkhrk2wvldfx5bsgv2pfxnjd";
+  sgr-iosevka-term-ss07 = "1wwky8pichvr467ypgxrxyfqgr27hqkpmx7c35fzka9c0kap483q";
+  sgr-iosevka-term-ss08 = "117c54z898rmsclm23hn4x2wvhypc2vmncrq2mvkqck0wawkwaxw";
+  sgr-iosevka-term-ss09 = "0lahhifnar8f716xq63xjhibay7cfqgaa7drxvz4pqxmzijv6r2r";
+  sgr-iosevka-term-ss10 = "0fp149a4dn7wgdsms70k162g60jgdg5ric93rhxnkn83x3d5jam1";
+  sgr-iosevka-term-ss11 = "16pvy63b194vig5vxy15ylmyl5422vrj9adqqwl82r0l9aqpkqlw";
+  sgr-iosevka-term-ss12 = "1gldv3srnm7zx9gkyizi6gvf34b7z7xg17qk77882jczsv95hyh1";
+  sgr-iosevka-term-ss13 = "0aznbica0yc4vhp4bp84dflfd6jhzw8lsakknfn8dz10kj1qq7vc";
+  sgr-iosevka-term-ss14 = "0x73vwywxj7j6qg3armbhm6rjy308j1rk1fhjfriv51hnkm6ylz2";
+  sgr-iosevka-term-ss15 = "0px9y25bx75ppsdaq0rfddd9ljxwa3fv5296kvvkw3mwd0ralflx";
+  sgr-iosevka-term-ss16 = "1bmnf7z8v4mbcq97lj2qkf722ww1n500jgv2zgs36vxc22zjjrvk";
+  sgr-iosevka-term-ss17 = "0lp5qz8j9xc8n959lm4sbfkjhm3ib79qnv69a57nkv5a10ddk20r";
+  sgr-iosevka-term-ss18 = "0jkp6zjx9ih5m4pa95a2rn7j1wx4hvnxg2j24cib9dixr7sc81b6";
+}
diff --git a/nixpkgs/pkgs/data/fonts/ipaexfont/default.nix b/nixpkgs/pkgs/data/fonts/ipaexfont/default.nix
new file mode 100644
index 000000000000..5223bc499d5c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ipaexfont/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "ipaexfont-004.01";
+
+  url = "https://moji.or.jp/wp-content/ipafont/IPAexfont/IPAexfont00401.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "0wp369kri33kb1mmiq4lpl9i4xnacw9fj63ycmkmlkq64s8qnjnx";
+
+  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..9bc9b82db0e6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ipafont/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "ipafont-003.03";
+
+  url = "https://moji.or.jp/wp-content/ipafont/IPAfont/IPAfont00303.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "0lrjd0bfy36f9j85m12afg5nvr5id3sig2nmzs5qifskbd7mqv9h";
+
+  meta = {
+    description = "Japanese font package with Mincho and Gothic fonts";
+    longDescription = ''
+      IPAFont is a Japanese font developed by the Information-technology
+      Promotion Agency of Japan. It provides both Mincho and Gothic fonts,
+      suitable for both display and printing.
+    '';
+    homepage = "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..2e535255cc6b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ir-standard-fonts/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "ir-standard-fonts";
+  version = "unstable-2017-01-21";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "morealaz";
+  repo = pname;
+  rev = "d36727d6c38c23c01b3074565667a2fe231fe18f";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/ir-standard-fonts {} \;
+  '';
+  sha256 = "0i2vzhwk77pm6fx5z5gxl026z9f35rhh3cvl003mry2lcg1x5rhp";
+
+  meta = with lib; {
+    homepage = "https://github.com/morealaz/ir-standard-fonts";
+    description = "Iran Supreme Council of Information and Communication Technology (SCICT) standard Persian fonts series";
+    # License information is unavailable.
+    license = licenses.unfree;
+    platforms = platforms.all;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/iwona/default.nix b/nixpkgs/pkgs/data/fonts/iwona/default.nix
new file mode 100644
index 000000000000..85cf06df11fb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/iwona/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "0_995";
+in fetchzip {
+  name = "iwona-${version}";
+  url = "http://jmn.pl/pliki/Iwona-otf-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype
+    unzip -j $downloadedFile *.otf -d $out/share/fonts/opentype
+  '';
+  sha256 = "1dcpn13bd31dw7ir0s722bv3nk136dy6qsab0kznjbzfqd7agswa";
+
+  meta = with lib; {
+    description = "A two-element sans-serif typeface, created by Małgorzata Budyta";
+    homepage = "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 = licenses.lppl13c;
+    maintainers = with maintainers; [ siddharthist ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix b/nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix
new file mode 100644
index 000000000000..7bc6e5aad39a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchzip }:
+
+let
+  version = "2.242";
+in
+fetchzip {
+  name = "JetBrainsMono-${version}";
+
+  url = "https://github.com/JetBrains/JetBrainsMono/releases/download/v${version}/JetBrainsMono-${version}.zip";
+
+  sha256 = "sha256-flaUqpHmgebUzwPq0d+I3p9yqPmsV0kap04eApOQxdI=";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    description = "A typeface made for developers";
+    homepage = "https://jetbrains.com/mono/";
+    changelog = "https://github.com/JetBrains/JetBrainsMono/blob/v${version}/Changelog.md";
+    license = licenses.ofl;
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/jost/default.nix b/nixpkgs/pkgs/data/fonts/jost/default.nix
new file mode 100644
index 000000000000..457cb0d03c99
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/jost/default.nix
@@ -0,0 +1,22 @@
+{lib, fetchzip}:
+
+let
+  version = "3.5";
+in fetchzip {
+  name = "jost-${version}";
+  url = "https://github.com/indestructible-type/Jost/releases/download/${version}/Jost.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256="0l78vhmbsyfmrva5wc76pskhxqryyg8q5xddpj9g5wqsddy525dq";
+
+  meta = with lib; {
+    homepage = "https://github.com/indestructible-type/Jost";
+    description = "A sans serif font by Indestructible Type";
+    license = licenses.ofl;
+    maintainers = [ maintainers.ar1a ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/joypixels/default.nix b/nixpkgs/pkgs/data/fonts/joypixels/default.nix
new file mode 100644
index 000000000000..593817275669
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/joypixels/default.nix
@@ -0,0 +1,103 @@
+{ lib, stdenv
+, fetchurl
+, config
+, acceptLicense ? config.joypixels.acceptLicense or false
+}:
+
+let
+  inherit (stdenv.hostPlatform.parsed) kernel;
+
+  systemSpecific = {
+    darwin = rec {
+      systemTag =  "nix-darwin";
+      capitalized = systemTag;
+      fontFile = "JoyPixels-SBIX.ttf";
+    };
+  }.${kernel.name} or rec {
+    systemTag = "nixos";
+    capitalized = "NixOS";
+    fontFile = "joypixels-android.ttf";
+  };
+
+  joypixels-free-license = with systemSpecific; {
+    spdxId = "LicenseRef-JoyPixels-Free-6.0";
+    fullName = "JoyPixels Free License Agreement 6.0";
+    url = "https://cdn.joypixels.com/distributions/${systemTag}/license/free-license.pdf";
+    free = false;
+  };
+
+  joypixels-license-appendix = with systemSpecific; {
+    spdxId = "LicenseRef-JoyPixels-NixOS-Appendix";
+    fullName = "JoyPixels ${capitalized} License Appendix";
+    url = "https://cdn.joypixels.com/distributions/${systemTag}/appendix/joypixels-license-appendix.pdf";
+    free = false;
+  };
+
+  throwLicense = throw ''
+    Use of the JoyPixels font requires acceptance of the license.
+      - ${joypixels-free-license.fullName} [1]
+      - ${joypixels-license-appendix.fullName} [2]
+
+    You can express acceptance by setting acceptLicense to true in your
+    configuration. Note that this is not a free license so it requires allowing
+    unfree licenses.
+
+    configuration.nix:
+      nixpkgs.config.allowUnfree = true;
+      nixpkgs.config.joypixels.acceptLicense = true;
+
+    config.nix:
+      allowUnfree = true;
+      joypixels.acceptLicense = true;
+
+    [1]: ${joypixels-free-license.url}
+    [2]: ${joypixels-license-appendix.url}
+  '';
+
+in
+
+stdenv.mkDerivation rec {
+  pname = "joypixels";
+  version = "6.6.0";
+
+  src = assert !acceptLicense -> throwLicense;
+    with systemSpecific; fetchurl {
+      name = fontFile;
+      url = "https://cdn.joypixels.com/distributions/${systemTag}/font/${version}/${fontFile}";
+      sha256 = {
+        darwin = "0qcmb2vn2nykyikzgnlma627zhks7ksy1vkgvpcmqwyxq4bd38d7";
+      }.${kernel.name} or "17gjaz7353zyprmds64p01qivy2r8pwf88nvvhi57idas2qd604n";
+    };
+
+  dontUnpack = true;
+
+  installPhase = with systemSpecific; ''
+    runHook preInstall
+
+    install -Dm644 $src $out/share/fonts/truetype/${fontFile}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "The finest emoji you can use legally (formerly EmojiOne)";
+    longDescription = ''
+      Updated for 2021! JoyPixels 6.6 includes 3,559 originally crafted icon
+      designs and is 100% Unicode 13.1 compatible. We offer the largest
+      selection of files ranging from png, svg, iconjar, sprites, and fonts.
+    '';
+    homepage = "https://www.joypixels.com/fonts";
+    license =
+      let
+        free-license = joypixels-free-license;
+        appendix = joypixels-license-appendix;
+      in with systemSpecific; {
+        spdxId = "LicenseRef-JoyPixels-Free-6.0-with-${capitalized}-Appendix";
+        fullName = "${free-license.fullName} with ${appendix.fullName}";
+        url = free-license.url;
+        appendixUrl = appendix.url;
+        free = false;
+      };
+    maintainers = with maintainers; [ toonn jtojnar ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/julia-mono/default.nix b/nixpkgs/pkgs/data/fonts/julia-mono/default.nix
new file mode 100644
index 000000000000..136a3218761c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/julia-mono/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchzip }:
+
+let
+  version = "0.044";
+
+in
+fetchzip {
+  name = "JuliaMono-ttf-${version}";
+  url = "https://github.com/cormullion/juliamono/releases/download/v${version}/JuliaMono-ttf.tar.gz";
+  sha256 = "sha256-KCU1eOSEWjYh6kPda/iCtZUIWIq5lK79uUCLl2w7SEg=";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/truetype
+    tar xf $downloadedFile -C $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    description = "A monospaced font for scientific and technical computing";
+    longDescription = ''
+      JuliaMono is a monospaced typeface designed for use in text editing
+      environments that require a wide range of specialist and technical Unicode
+      characters. It was intended as a fun experiment to be presented at the
+      2020 JuliaCon conference in Lisbon, Portugal (which of course didn’t
+      physically happen in Lisbon, but online).
+    '';
+    maintainers = with maintainers; [ suhr ];
+    platforms = with platforms; all;
+    homepage = "https://juliamono.netlify.app/";
+    license = licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/junicode/default.nix b/nixpkgs/pkgs/data/fonts/junicode/default.nix
new file mode 100644
index 000000000000..5f5ce1048c5e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/junicode/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "junicode";
+  version = "1.003";
+in
+fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "psb1558";
+  repo = "Junicode-font";
+  rev = "55d816d91a5e19795d9b66edec478379ee2b9ddb";
+
+  postFetch = ''
+    local out_ttf=$out/share/fonts/junicode-ttf
+    mkdir -p $out_ttf
+    tar -f $downloadedFile -C $out_ttf --wildcards -x '*.ttf' --strip=2
+  '';
+
+  sha256 = "1v334gljmidh58kmrarz5pf348b0ac7vh25f1xs3gyvn78khh5nw";
+
+  meta = {
+    homepage = "https://github.com/psb1558/Junicode-font";
+    description = "A Unicode font for medievalists";
+    maintainers = with lib.maintainers; [ ivan-timokhin ];
+    license = lib.licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/kanit/default.nix b/nixpkgs/pkgs/data/fonts/kanit/default.nix
new file mode 100644
index 000000000000..8875704ba6b6
--- /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 = "A 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..80c97024ac36
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kanji-stroke-order-font/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchurl }:
+
+let
+  version = "4.003";
+  debianVersion = "dfsg-1";
+in stdenv.mkDerivation {
+  name = "kanji-stroke-order-font-${version}";
+
+  src = fetchurl {
+    url = "https://salsa.debian.org/fonts-team/fonts-kanjistrokeorders/-/archive/debian/${version}_${debianVersion}/fonts-kanjistrokeorders-debian-${version}_${debianVersion}.tar.bz2";
+    sha256 = "1a8hxzkrfjz0h5gl9h0panzzsn7cldlklxryyzmpam23g32q6bg1";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/kanji-stroke-order $out/share/doc/kanji-stroke-order
+    cp *.ttf $out/share/fonts/kanji-stroke-order
+    cp *.txt $out/share/doc/kanji-stroke-order
+  '';
+
+  meta = with lib; {
+    description = "Font containing stroke order diagrams for over 6500 kanji, 180 kana and other characters";
+    homepage = "https://sites.google.com/site/nihilistorguk/";
+
+    license = [ licenses.bsd3 ];
+    maintainers = with maintainers; [ ptrhlm ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/kawkab-mono/default.nix b/nixpkgs/pkgs/data/fonts/kawkab-mono/default.nix
new file mode 100644
index 000000000000..1e07123badc3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kawkab-mono/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "kawkab-mono-20151015";
+
+  url = "http://makkuk.com/kawkab-mono/downloads/kawkab-mono-0.1.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  sha256 = "1vfrb7xs817najplncg7zl9j5yxj8qnwb7aqm2v9p9xwafa4d2yd";
+
+  meta = {
+    description = "An arab fixed-width font";
+    homepage = "https://makkuk.com/kawkab-mono/";
+    license = lib.licenses.ofl;
+  };
+}
+
+
diff --git a/nixpkgs/pkgs/data/fonts/kochi-substitute-naga10/default.nix b/nixpkgs/pkgs/data/fonts/kochi-substitute-naga10/default.nix
new file mode 100644
index 000000000000..1b63223f0bf6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kochi-substitute-naga10/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchzip }:
+
+let version = "20030809";
+in
+fetchzip {
+  name = "kochi-substitute-naga10-${version}";
+
+  url = "mirror://osdn/efont/5411/kochi-substitute-${version}.tar.bz2";
+
+  postFetch = ''
+    tar -xjf $downloadedFile --strip-components=1
+    mkdir -p $out/share/fonts/truetype
+    cp ./kochi-gothic-subst.ttf $out/share/fonts/truetype/kochi-gothic-subst-naga10.ttf
+    cp ./kochi-mincho-subst.ttf $out/share/fonts/truetype/kochi-mincho-subst-naga10.ttf
+  '';
+
+  sha256 = "1bjb5cr3wf3d5y7xj1ly2mkv4ndwvg615rb1ql6lsqc2icjxk7j9";
+
+  meta = {
+    description = "Japanese font, non-free replacement for MS Gothic and MS Mincho";
+    longDescription = ''
+      Kochi Gothic and Kochi Mincho were developed as free replacements for the
+      MS Gothic and MS Mincho fonts from Microsoft. This version of the fonts
+      includes some non-free glyphs from the naga10 font, which stipulate that
+      this font may not be sold commercially. See kochi-substitute for the free
+      Debian version.
+    '';
+    homepage = "https://osdn.net/projects/efont/";
+    license = lib.licenses.unfreeRedistributable;
+    maintainers = [ lib.maintainers.auntie ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/kochi-substitute/default.nix b/nixpkgs/pkgs/data/fonts/kochi-substitute/default.nix
new file mode 100644
index 000000000000..071db9b13dfb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kochi-substitute/default.nix
@@ -0,0 +1,48 @@
+{ lib, stdenv, fetchurl, dpkg }:
+
+let version = "20030809";
+in
+stdenv.mkDerivation {
+  pname = "kochi-substitute";
+  inherit version;
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/t/ttf-kochi/ttf-kochi-gothic_${version}-15_all.deb";
+    sha256 = "6e2311cd8e880a9328e4d3eef34a1c1f024fc87fba0dce177a0e1584a7360fea";
+  };
+
+  src2 = fetchurl {
+    url = "mirror://debian/pool/main/t/ttf-kochi/ttf-kochi-mincho_${version}-15_all.deb";
+    sha256 = "91ce6c993a3a0f77ed85db76f62ce18632b4c0cbd8f864676359a17ae5e6fa3c";
+  };
+
+  nativeBuildInputs = [ dpkg ];
+
+  unpackCmd = ''
+    dpkg-deb --fsys-tarfile $src | tar xf - ./usr/share/fonts/truetype/kochi/kochi-gothic-subst.ttf
+    dpkg-deb --fsys-tarfile $src2 | tar xf - ./usr/share/fonts/truetype/kochi/kochi-mincho-subst.ttf
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp ./share/fonts/truetype/kochi/kochi-gothic-subst.ttf $out/share/fonts/truetype/
+    cp ./share/fonts/truetype/kochi/kochi-mincho-subst.ttf $out/share/fonts/truetype/
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "10hcrf51npc1w2jsz5aiw07dgw96vs4wmsz4ai9zyaswipvf8ddy";
+
+  meta = {
+    description = "Japanese font, a free replacement for MS Gothic and MS Mincho";
+    longDescription = ''
+      Kochi Gothic and Kochi Mincho were developed as free replacements for the
+      MS Gothic and MS Mincho fonts from Microsoft. These are the Debian
+      versions of the fonts, which remove some non-free glyphs that were added
+      from the naga10 font.
+    '';
+    homepage = "https://osdn.net/projects/efont/";
+    license = lib.licenses.wadalab;
+    maintainers = [ lib.maintainers.auntie ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/kreative-square-fonts/default.nix b/nixpkgs/pkgs/data/fonts/kreative-square-fonts/default.nix
new file mode 100644
index 000000000000..c9e51319733f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kreative-square-fonts/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "kreative-square-fonts";
+  version = "unstable-2021-01-29";
+in
+fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "kreativekorp";
+  repo = "open-relay";
+  rev = "084f05af3602307499981651eca56851bec01fca";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -Dm444 -t $out/share/fonts/truetype/ KreativeSquare/KreativeSquare.ttf
+    install -Dm444 -t $out/share/fonts/truetype/ KreativeSquare/KreativeSquareSM.ttf
+  '';
+  sha256 = "15vvbbzv6b3jh7lxg77viycdd7yf3y8lxy54vs3rsrsxwncg0pak";
+
+  meta = with lib; {
+    description = "Fullwidth scalable monospace font designed specifically to support pseudographics, semigraphics, and private use characters";
+    homepage = "https://www.kreativekorp.com/software/fonts/ksquare.shtml";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.linus ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/lalezar-fonts/default.nix b/nixpkgs/pkgs/data/fonts/lalezar-fonts/default.nix
new file mode 100644
index 000000000000..31a857bfda05
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lalezar-fonts/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "lalezar-fonts";
+  version = "unstable-2017-02-28";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "BornaIz";
+  repo = "Lalezar";
+  rev = "238701c4241f207e92515f845a199be9131c1109";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    mkdir -p $out/share/fonts/lalezar-fonts
+    cp -v $( find . -name '*.ttf') $out/share/fonts/lalezar-fonts
+  '';
+  sha256 = "0jmwhr2dqgj3vn0v26jh6c0id6n3wd6as3bq39xa870zlk7v307b";
+
+  meta = with lib; {
+    homepage = "https://github.com/BornaIz/Lalezar";
+    description = "A multi-script display typeface for popular culture";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ ];
+  };
+}
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..8cad990ac973
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/last-resort/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchurl }:
+
+let
+  version = "14.000";
+in fetchurl {
+  name = "last-resort-${version}";
+
+  url = "https://github.com/unicode-org/last-resort-font/releases/download/${version}/LastResortHE-Regular.ttf";
+  downloadToTemp = true;
+
+  postFetch = ''
+    install -D -m 0644 $downloadedFile $out/share/fonts/truetype/LastResortHE-Regular.ttf
+  '';
+
+  recursiveHash = true;
+  sha256 = "sha256-rb69V4oExSFx4GpedpyVvGuS6o+MxmxTCSZhoe9kUhI=";
+
+  meta = with lib; {
+    description = "Fallback font of last resort";
+    homepage = "https://github.com/unicode-org/last-resort-font";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ V ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/lato/default.nix b/nixpkgs/pkgs/data/fonts/lato/default.nix
new file mode 100644
index 000000000000..76effcf97cd0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lato/default.nix
@@ -0,0 +1,39 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "lato-2.0";
+
+  url = "https://www.latofonts.com/download/Lato2OFL.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/lato
+  '';
+
+  sha256 = "1amwn6vcaggxrd2s4zw21s2pr47zmzdf2xfy4x9lxa2cd9bkhvg5";
+
+  meta = with lib; {
+    homepage = "https://www.latofonts.com/";
+
+    description = ''
+      Sans-serif typeface family designed in Summer 2010 by Łukasz Dziedzic
+    '';
+
+    longDescription = ''
+      Lato is a sans-serif typeface family designed in the Summer 2010 by
+      Warsaw-based designer Łukasz Dziedzic ("Lato" means "Summer" in Polish).
+      In December 2010 the Lato family was published under the open-source Open
+      Font License by his foundry tyPoland, with support from Google.
+
+      In 2013-2014, the family was greatly extended to cover 3000+ glyphs per
+      style. The Lato 2.010 family now supports 100+ Latin-based languages, 50+
+      Cyrillic-based languages as well as Greek and IPA phonetics. In the
+      process, the metrics and kerning of the family have been revised and four
+      additional weights were created.
+    '';
+
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ chris-martin ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/league-of-moveable-type/default.nix b/nixpkgs/pkgs/data/fonts/league-of-moveable-type/default.nix
new file mode 100644
index 000000000000..f6855dc99d66
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/league-of-moveable-type/default.nix
@@ -0,0 +1,51 @@
+{lib, stdenv, fetchurl, unzip, raleway}:
+
+let
+
+  # TO UPDATE:
+  # ./update.sh > ./fonts.nix
+  # we use the extended version of raleway (same license).
+  fonts = [raleway]
+    ++ map fetchurl (builtins.filter (f: f.name != "raleway.zip") (import ./fonts.nix));
+
+in
+stdenv.mkDerivation rec {
+
+  baseName = "league-of-moveable-type";
+  version = "2016-10-15";
+  name="${baseName}-${version}";
+
+  srcs = fonts;
+
+  nativeBuildInputs = [ unzip ];
+  sourceRoot = ".";
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/opentype
+    cp */*.otf $out/share/fonts/opentype
+    # for Raleway, where the fonts are already in /share/…
+    cp */share/fonts/opentype/*.otf $out/share/fonts/opentype
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1gy959qhhdwm1phbrkab9isi0dmxcy0yizzncb0k49w88mc13vd0";
+
+  meta = {
+    description = "Font Collection by The League of Moveable Type";
+
+    longDescription = ''
+      We're done with the tired old fontstacks of yesteryear. The web
+      is no longer limited, and now it's time to raise our standards.
+      Since 2009, The League has given only the most well-made, free &
+      open-source, @font-face ready fonts.
+    '';
+
+    homepage = "https://www.theleagueofmoveabletype.com/";
+
+    license = lib.licenses.ofl;
+
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [ bergey Profpatsch ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/league-of-moveable-type/fonts.nix b/nixpkgs/pkgs/data/fonts/league-of-moveable-type/fonts.nix
new file mode 100644
index 000000000000..efbe6a4c41cb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/league-of-moveable-type/fonts.nix
@@ -0,0 +1,82 @@
+[
+  {
+    url = "https://www.theleagueofmoveabletype.com/league-spartan/download";
+    sha256 = "1z9pff8xm58njs7whaxb3sq4vbdkxv7llwgm9nqhwshmgr52jrm1";
+    name = "league-spartan.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/junction/download";
+    sha256 = "1qbhfha012ma26n43lm1fh06i7z47wk50r8qsp09bpxc5yr4ypi7";
+    name = "junction.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/ostrich-sans/download";
+    sha256 = "11ydhbgcfhmydcnim64vb035cha14krxxrbf62426dm6bvxkphp3";
+    name = "ostrich-sans.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/league-gothic/download";
+    sha256 = "0nbwsbwhs375kbis3lpk98dw05mnh455vghjg1cq0j2fsj1zb99b";
+    name = "league-gothic.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/blackout/download";
+    sha256 = "1r7dihnjvy4fgvaj5m4llc9dm4cpdl1l79mhg3as16qvjgazms3p";
+    name = "blackout.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/knewave/download";
+    sha256 = "065yiakhm6h6jkmigj4pqm2qi6saph0pwb7g8s9gwkskhkk5iy57";
+    name = "knewave.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/fanwood/download";
+    sha256 = "1023da7hik8ci8s7rcy6lh4h9p6igx1kz9y1a2cv6sizbp819w8g";
+    name = "fanwood.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/linden-hill/download";
+    sha256 = "0rm92rz9kki91l5wcn149mdpwq1mfql4dv6d159hv534qmg3z3ks";
+    name = "linden-hill.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/league-script-number-one/download";
+    sha256 = "056hb02a5vydrq5q0gwzanp2zkrrv1spm8sfc5wzhyfzgwd1vc76";
+    name = "league-script-number-one.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/raleway/download";
+    sha256 = "0f6anym0adq0ankqbdqx4lyzbysx824zqdj1x60gafyisjx48y87";
+    name = "raleway.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/prociono/download";
+    sha256 = "11hamjry5lx3cykzpjq7kwlp6h9cjqy470fmn9f2pi954b46xkdy";
+    name = "prociono.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/orbitron/download";
+    sha256 = "156w4j324d350pvjmzdg2w8inhhdfzrvb86rhlavgd9sxx2fykk4";
+    name = "orbitron.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/goudy-bookletter-1911/download";
+    sha256 = "01qganq5n7rgqw546lf45kj8j7ymfjr00i2bwp3qw7ibifg9pn4n";
+    name = "goudy-bookletter-1911.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/sorts-mill-goudy/download";
+    sha256 = "11aywj5lzapk04k2yzi1g96acbbm48x902ka0v9cfwwqpn6js9ra";
+    name = "sorts-mill-goudy.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/chunk/download";
+    sha256 = "15mbqwz90y1n4vlj2xkc8vd56va6la5qnxhiipvcmkrng5y3931j";
+    name = "chunk.zip";
+  }
+  {
+    url = "https://www.theleagueofmoveabletype.com/sniglet/download";
+    sha256 = "1lhpnjm52gyhy9s2kwbsg1rd9iyrqli5q9ngp141igx4p1bgbqkc";
+    name = "sniglet.zip";
+  }
+]
diff --git a/nixpkgs/pkgs/data/fonts/league-of-moveable-type/update.sh b/nixpkgs/pkgs/data/fonts/league-of-moveable-type/update.sh
new file mode 100644
index 000000000000..4d41df4fdb85
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/league-of-moveable-type/update.sh
@@ -0,0 +1,25 @@
+#!/usr/bin/env bash
+
+SITE=https://www.theleagueofmoveabletype.com
+
+# since there is no nice way to get all the fonts,
+# this fetches the homepage and extracts their names from the html …
+fonts=$(curl "$SITE" 2>/dev/null | \
+            sed -ne 's/<img.*cloudfront.*images\/\(.*\)-[[:digit:]-]\..*$/\1/p')
+
+# build an ad-hoc nixexpr list with the files & hashes
+echo "["
+for f in $fonts; do
+    url="$SITE/$f/download"
+    hash=$(nix-prefetch-url --type sha256 "$url" 2>/dev/null)
+    cat <<EOF
+  {
+    url = "$url";
+    sha256 = "$hash";
+    name = "$f.zip";
+  }
+EOF
+done
+echo "]"
+
+
diff --git a/nixpkgs/pkgs/data/fonts/liberastika/default.nix b/nixpkgs/pkgs/data/fonts/liberastika/default.nix
new file mode 100644
index 000000000000..c42bc9f75632
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/liberastika/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.1.5";
+in fetchzip rec {
+  name = "liberastika-${version}";
+
+  url = "mirror://sourceforge/project/lib-ka/liberastika-ttf-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.ttf                           -d $out/share/fonts/truetype
+    unzip -j $downloadedFile AUTHORS ChangeLog COPYING README -d "$out/share/doc/${name}"
+  '';
+
+  sha256 = "1a9dvl1pzch2vh8sqyyn1d1wz4n624ffazl6hzlc3s5k5lzrb6jp";
+
+  meta = with lib; {
+    description = "Liberation Sans fork with improved cyrillic support";
+    homepage = "https://sourceforge.net/projects/lib-ka/";
+
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    hydraPlatforms = [];
+    maintainers = [ maintainers.volth ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/liberation-fonts/default.nix b/nixpkgs/pkgs/data/fonts/liberation-fonts/default.nix
new file mode 100644
index 000000000000..04ee3781b6bb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/liberation-fonts/default.nix
@@ -0,0 +1,68 @@
+{ lib, stdenv, fetchFromGitHub, fontforge, python3 }:
+let
+  inherit (python3.pkgs) fonttools;
+
+  commonNativeBuildInputs = [ fontforge python3 ];
+  common =
+    { version, repo, sha256, nativeBuildInputs, postPatch ? null }:
+      stdenv.mkDerivation rec {
+        pname = "liberation-fonts";
+        inherit version;
+
+        src = fetchFromGitHub {
+          owner = "liberationfonts";
+          rev = version;
+          inherit repo sha256;
+        };
+
+        inherit nativeBuildInputs postPatch;
+
+        installPhase = ''
+          find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/truetype {} \;
+
+          install -m444 -Dt $out/share/doc/${pname}-${version} AUTHORS     || true
+          install -m444 -Dt $out/share/doc/${pname}-${version} ChangeLog   || true
+          install -m444 -Dt $out/share/doc/${pname}-${version} COPYING     || true
+          install -m444 -Dt $out/share/doc/${pname}-${version} License.txt || true
+          install -m444 -Dt $out/share/doc/${pname}-${version} README      || true
+        '';
+
+        meta = with lib; {
+          description = "Liberation Fonts, replacements for Times New Roman, Arial, and Courier New";
+          longDescription = ''
+            The Liberation Fonts are intended to be replacements for the three most
+            commonly used fonts on Microsoft systems: Times New Roman, Arial, and
+            Courier New. Since 2012 they are based on croscore fonts.
+
+            There are three sets: Sans (a substitute for Arial, Albany, Helvetica,
+            Nimbus Sans L, and Bitstream Vera Sans), Serif (a substitute for Times
+            New Roman, Thorndale, Nimbus Roman, and Bitstream Vera Serif) and Mono
+            (a substitute for Courier New, Cumberland, Courier, Nimbus Mono L, and
+            Bitstream Vera Sans Mono).
+          '';
+
+          license = licenses.ofl;
+          homepage = "https://github.com/liberationfonts";
+          maintainers = with maintainers; [ raskin ];
+        };
+      };
+in
+{
+  liberation_ttf_v1 = common {
+    repo = "liberation-1.7-fonts";
+    version = "1.07.5";
+    nativeBuildInputs = commonNativeBuildInputs ;
+    sha256 = "1ffl10mf78hx598sy9qr5m6q2b8n3mpnsj73bwixnd4985gsz56v";
+  };
+  liberation_ttf_v2 = common {
+    repo = "liberation-fonts";
+    version = "2.1.0";
+    nativeBuildInputs = commonNativeBuildInputs ++ [ fonttools ];
+    postPatch = ''
+      substituteInPlace scripts/setisFixedPitch-fonttools.py --replace \
+        'font = ttLib.TTFont(fontfile)' \
+        'font = ttLib.TTFont(fontfile, recalcTimestamp=False)'
+    '';
+    sha256 = "03xpzaas264x5n6qisxkhc68pkpn32m7y78qdm3rdkxdwi8mv8mz";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/liberation-sans-narrow/default.nix b/nixpkgs/pkgs/data/fonts/liberation-sans-narrow/default.nix
new file mode 100644
index 000000000000..281bfa4c42b0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/liberation-sans-narrow/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchFromGitHub, fontforge, python3Packages, python3 }:
+
+stdenv.mkDerivation rec {
+  pname = "liberation-sans-narrow";
+  version = "1.07.6";
+
+  src = fetchFromGitHub {
+    owner = "liberationfonts";
+    repo = pname;
+    rev = version;
+    sha256 = "1qw554jbdnqkg6pjjl4cqkgsalq3398kzvww2naw30vykcz752bm";
+  };
+
+  buildInputs = [ fontforge python3Packages.fonttools python3 ];
+
+  installPhase = ''
+    find . -name '*Narrow*.ttf' -exec install -m444 -Dt $out/share/fonts/truetype {} \;
+    install -m444 -Dt $out/doc/${pname}-${version} AUTHORS ChangeLog COPYING License.txt README.rst
+  '';
+
+  meta = with lib; {
+    description = "Liberation Sans Narrow Font Family is a replacement for Arial Narrow";
+    longDescription = ''
+      Liberation Sans Narrow is a font originally created by Ascender
+      Inc and licensed to Oracle Corporation under a GPLv2 license. It is
+      metrically compatible with the commonly used Arial Narrow fonts
+      on Microsoft systems. It is no longer distributed with the
+      latest versions of the Liberation Fonts, as Red Hat has changed the
+      license to the Open Font License.
+    '';
+
+    license = licenses.gpl2;
+    homepage = "https://github.com/liberationfonts";
+    maintainers = [ maintainers.leenaars ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/libertine/default.nix b/nixpkgs/pkgs/data/fonts/libertine/default.nix
new file mode 100644
index 000000000000..2120c5965e2f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libertine/default.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, fetchurl, fontforge }:
+
+stdenv.mkDerivation {
+  name = "linux-libertine-5.3.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/linuxlibertine/5.3.0/LinLibertineSRC_5.3.0_2012_07_02.tgz";
+    sha256 = "0x7cz6hvhpil1rh03rax9zsfzm54bh7r4bbrq8rz673gl9h47v0v";
+  };
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [ fontforge ];
+
+  buildPhase = ''
+    for i in *.sfd; do
+      fontforge -lang=ff -c \
+        'Open($1);
+        ScaleToEm(1000);
+        Reencode("unicode");
+        Generate($1:r + ".ttf");
+        Generate($1:r + ".otf");
+        Reencode("TeX-Base-Encoding");
+        Generate($1:r + ".afm");
+        Generate($1:r + ".pfm");
+        Generate($1:r + ".pfb");
+        Generate($1:r + ".map");
+        Generate($1:r + ".enc");
+        ' $i;
+    done
+  '';
+
+  installPhase = ''
+    install -m444 -Dt $out/share/fonts/opentype/public *.otf
+    install -m444 -Dt $out/share/fonts/truetype/public *.ttf
+    install -m444 -Dt $out/share/fonts/type1/public    *.pfb
+    install -m444 -Dt $out/share/texmf/fonts/enc       *.enc
+    install -m444 -Dt $out/share/texmf/fonts/map       *.map
+  '';
+
+  meta = with lib; {
+    description = "Linux Libertine Fonts";
+    homepage = "http://linuxlibertine.sf.net";
+    maintainers = [ maintainers.volth ];
+    license = licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/libertinus/default.nix b/nixpkgs/pkgs/data/fonts/libertinus/default.nix
new file mode 100644
index 000000000000..8f58cb92baa4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libertinus/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchurl }:
+
+let
+  version = "7.040";
+in fetchurl rec {
+  name = "libertinus-${version}";
+  url = "https://github.com/alerque/libertinus/releases/download/v${version}/Libertinus-${version}.tar.xz";
+  sha256 = "0z658r88p52dyrcslv0wlccw0sw7m5jz8nbqizv95nf7bfw96iyk";
+
+  downloadToTemp = true;
+  recursiveHash = true;
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -m644 -Dt $out/share/fonts/opentype static/OTF/*.otf
+  '';
+
+  meta = with lib; {
+    description = "The 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..a4be7b5b3e6b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libre-baskerville/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchFromGitHub }:
+
+fetchFromGitHub rec {
+  name = "libre-baskerville-1.000";
+
+  owner = "impallari";
+  repo = "Libre-Baskerville";
+  rev = "2fba7c8e0a8f53f86efd3d81bc4c63674b0c613f";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -m444 -Dt $out/share/fonts/truetype *.ttf
+    install -m444 -Dt $out/share/doc/${name}    README.md FONTLOG.txt
+  '';
+
+  sha256 = "1kpji85d1mgwq8b4fh1isznrhsrv32la3wf058rwjmhx5a3l7yaj";
+
+  meta = with lib; {
+    description = "A webfont family optimized for body text";
+    longDescription = ''
+      Libre Baskerville is a webfont family optimized for body text. It's Based
+      on 1941 ATF Baskerville Specimens but it has a taller x-height, wider
+      counters and less contrast that allow it to work on small sizes in any
+      screen.
+    '';
+    homepage = "http://www.impallari.com/projects/overview/libre-baskerville";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ cmfwyp ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/libre-bodoni/default.nix b/nixpkgs/pkgs/data/fonts/libre-bodoni/default.nix
new file mode 100644
index 000000000000..63bbf8eba724
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libre-bodoni/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub }:
+
+fetchFromGitHub rec {
+  name = "libre-bodoni-2.000";
+
+  owner = "impallari";
+  repo = "Libre-Bodoni";
+  rev = "995a40e8d6b95411d660cbc5bb3f726ffd080c7d";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -m444 -Dt $out/share/fonts/opentype */v2000\ -\ initial\ glyphs\ migration/OTF/*.otf
+    install -m444 -Dt $out/share/doc/${name}    README.md FONTLOG.txt
+  '';
+
+  sha256 = "0my0i5a7f0d27m6dcdirjmlcnswqqfp8gl3ccxa5f2wkn3qlzkvz";
+
+  meta = with lib; {
+    description = "Bodoni fonts adapted for today's web requirements";
+    longDescription = ''
+      The Libre Bodoni fonts are based on the 19th century Morris Fuller
+      Benton's ATF design, but specifically adapted for today's web
+      requirements.
+
+      They are a perfect choice for everything related to elegance, style,
+      luxury and fashion.
+
+      Libre Bodoni currently features four styles: Regular, Italic, Bold and
+      Bold Italic.
+    '';
+    homepage = "https://github.com/impallari/Libre-Bodoni";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ cmfwyp ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/libre-caslon/default.nix b/nixpkgs/pkgs/data/fonts/libre-caslon/default.nix
new file mode 100644
index 000000000000..d89d4c41c0f3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libre-caslon/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "libre-caslon";
+  version = "1.002";
+
+  srcs = [
+    (fetchFromGitHub {
+      owner = "impallari";
+      repo = "Libre-Caslon-Text";
+      rev = "c31e21f7e8cf91f18d90f778ce20e66c68219c74";
+      name = "libre-caslon-text-${version}-src";
+      sha256 = "0zczv9qm8cgc7w1p64mnf0p0fi7xv89zhf1zzf1qcna15kbgc705";
+    })
+
+    (fetchFromGitHub {
+      owner = "impallari";
+      repo = "Libre-Caslon-Display";
+      rev = "3491f6a9cfde2bc15e736463b0bc7d93054d5da1";
+      name = "libre-caslon-display-${version}-src";
+      sha256 = "12jrny3y8w8z61lyw470drnhliji5b24lgxap4w3brp6z3xjph95";
+    })
+  ];
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/opentype
+    mkdir -p $out/share/doc/${pname}-${version}
+    cp -v "libre-caslon-text-${version}-src/fonts/OTF/"*.otf $out/share/fonts/opentype/
+    cp -v "libre-caslon-display-${version}-src/fonts/OTF/"*.otf $out/share/fonts/opentype/
+    cp -v libre-caslon-text-${version}-src/README.md libre-caslon-text-${version}-src/FONTLOG.txt $out/share/doc/${pname}-${version}
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "05aajwny99yqzn1nnq1blx6h7rl54x056y12hyawfbigkzxhscns";
+
+  meta = with lib; {
+    description = "Caslon fonts based on hand-lettered American Caslons of 1960s";
+    homepage = "http://www.impallari.com/librecaslon";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ cmfwyp ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/libre-franklin/default.nix b/nixpkgs/pkgs/data/fonts/libre-franklin/default.nix
new file mode 100644
index 000000000000..b41ae8878cc2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/libre-franklin/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchFromGitHub }:
+
+fetchFromGitHub rec {
+  name = "libre-franklin-1.014";
+
+  owner = "impallari";
+  repo = "Libre-Franklin";
+  rev = "006293f34c47bd752fdcf91807510bc3f91a0bd3";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -m444 -Dt $out/share/fonts/opentype */OTF/*.otf
+    install -m444 -Dt $out/share/doc/${name}    README.md FONTLOG.txt
+  '';
+
+  sha256 = "0aq280m01pbirkzga432340aknf2m5ggalw0yddf40sqz7falykf";
+
+  meta = with lib; {
+    description = "A reinterpretation and expansion based on the 1912 Morris Fuller Benton’s classic.";
+    homepage = "https://github.com/impallari/Libre-Franklin";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ cmfwyp ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/line-awesome/default.nix b/nixpkgs/pkgs/data/fonts/line-awesome/default.nix
new file mode 100644
index 000000000000..d9f7818dd2f7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/line-awesome/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+  pname = "line-awesome";
+  version = "1.3.0";
+
+  src = fetchurl {
+    url =
+      "https://maxst.icons8.com/vue-static/landings/line-awesome/line-awesome/${version}/line-awesome-${version}.zip";
+    sha256 = "07qkz8s1wjh5xwqlq1b4lpihr1zah3kh6bnqvfwvncld8l9wjqfk";
+  };
+
+  nativeBuildInputs = [ unzip ];
+
+  sourceRoot = "${version}/fonts";
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    mkdir -p $out/share/fonts/woff
+    mkdir -p $out/share/fonts/woff2
+    cp *.ttf $out/share/fonts/truetype
+    cp *.woff $out/share/fonts/woff
+    cp *.woff2 $out/share/fonts/woff2
+  '';
+
+  meta = with lib; {
+    description = "Replace Font Awesome with modern line icons";
+    longDescription = ''
+      This package includes only the TTF, WOFF and WOFF2 fonts. For full CSS etc. see the project website.
+    '';
+    homepage = "https://icons8.com/line-awesome";
+    license = licenses.mit;
+    maintainers = with maintainers; [ puzzlewolf ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/lmmath/default.nix b/nixpkgs/pkgs/data/fonts/lmmath/default.nix
new file mode 100644
index 000000000000..0530141317b8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lmmath/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.959";
+in fetchzip rec {
+  name = "lmmath-${version}";
+
+  url = "http://www.gust.org.pl/projects/e-foundry/lm-math/download/latinmodern-math-1959.zip";
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype/
+    mkdir -p $out/share/doc/latinmodern-math-${version}/
+    unzip -j $downloadedFile "*/otf/*.otf" -d $out/share/fonts/opentype/
+    unzip -j $downloadedFile "*/doc/*.txt" -d $out/share/doc/latinmodern-math-${version}/
+  '';
+  sha256 = "05k145bxgxjh7i9gx1ahigxfpc2v2vwzsy2mc41jvvg51kjr8fnn";
+
+  meta = with lib; {
+    description = "The Latin Modern Math (LM Math) font completes the modernization of the Computer Modern family of typefaces designed and programmed by Donald E. Knuth";
+    homepage = "http://www.gust.org.pl/projects/e-foundry/lm-math";
+    # "The Latin Modern Math font is licensed under the GUST Font License (GFL),
+    # which is a free license, legally equivalent to the LaTeX Project Public
+    # License (LPPL), version 1.3c or later." - GUST website
+    license = licenses.lppl13c;
+    maintainers = with maintainers; [ siddharthist ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/lmodern/default.nix b/nixpkgs/pkgs/data/fonts/lmodern/default.nix
new file mode 100644
index 000000000000..53fc456d7583
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lmodern/default.nix
@@ -0,0 +1,26 @@
+{ fetchzip }:
+
+fetchzip {
+  name = "lmodern-2.004.5";
+
+  url = "mirror://debian/pool/main/l/lmodern/lmodern_2.004.5.orig.tar.gz";
+
+  postFetch = ''
+    tar xzvf $downloadedFile
+
+    mkdir -p $out/texmf-dist/
+    mkdir -p $out/share/fonts/
+
+    cp -r lmodern-2.004.5/* $out/texmf-dist/
+    cp -r lmodern-2.004.5/fonts/{opentype,type1} $out/share/fonts/
+
+    ln -s -r $out/texmf* $out/share/
+  '';
+
+  sha256 = "11f10qnp8a435lhh19zc2znlf9q4isynmvjmvr63g5n5fhvhc192";
+
+  meta = {
+    description = "Latin Modern font";
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/lohit-fonts/default.nix b/nixpkgs/pkgs/data/fonts/lohit-fonts/default.nix
new file mode 100644
index 000000000000..64ae831767bb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lohit-fonts/default.nix
@@ -0,0 +1,60 @@
+{ fetchzip, lib }:
+let
+  fonts = {
+    assamese        = { label = "Assamese";          version = "2.91.5"; sha256 = "06cw416kgw0m6883n5ixmpniinsd747rdmacf06z83w1hqwj2js6"; };
+    bengali         = { label = "Bengali";           version = "2.91.5"; sha256 = "1j7gfmkzzyk9mivy09a9yfqxpidw52hw48dyh4qkci304mspcbvr"; };
+    devanagari      = { label = "Devanagari script"; version = "2.95.4"; sha256 = "1c17xirzx5rf7xpmkrm94jf9xrzckyagwnqn3pyag28lyj8x67m5"; };
+    gujarati        = { label = "Gujarati";          version = "2.92.4"; sha256 = "0xdgmkikz532zxj239wr73l24qnzxhra88f52146x7fsb7gpvfb1"; };
+    gurmukhi        = { label = "Gurmukhi script";   version = "2.91.2"; sha256 = "1xk1qvc0xwcmjcavj9zmy4bbphffdlv7sldmqlk30ch5fy5r0ypb"; }; # renamed from Punjabi
+    kannada         = { label = "Kannada";           version = "2.5.4" ; sha256 = "0sax56xg98p2nf0nsvba42hhz946cs7q0gidiz9zfpb6pbgwxdgg"; };
+    malayalam       = { label = "Malayalam";         version = "2.92.2"; sha256 = "18sca59fj9zvqhagbix35i4ld2n4mwv57q04pijl5gvpyfb1abs8"; };
+    marathi         = { label = "Marathi";           version = "2.94.2"; sha256 = "0cjjxxlhqmdmhr35s4ak0ma89456daik5rqrn6pdzj39098lmci7"; };
+    nepali          = { label = "Nepali";            version = "2.94.2"; sha256 = "1p7lif136xakfqkbv6p1lb56rs391b25vn4bxrjdfvsk0r0h0ry3"; };
+    odia            = { label = "Odia";              version = "2.91.2"; sha256 = "0z5rc4f9vfrfm8h2flzf5yx44x50jqdmmzifkmjwczib3hpg2ila"; }; # renamed from Oriya
+    tamil-classical = { label = "Classical Tamil";   version = "2.5.4" ; sha256 = "0svmj3dhk0195mhdwjhi3qgwa83223irb32fp12782sj9njdvyi2"; };
+    tamil           = { label = "Tamil";             version = "2.91.3"; sha256 = "0qyw9p8alyvjryyw8a25q3gfyrhby49mjb0ydgggf5ckd07kblcm"; };
+    telugu          = { label = "Telugu";            version = "2.5.5" ; sha256 = "07p41686ypmclj9d3njp01lvrgssqxa4s5hsbrqfjrnwd3rjspzr"; };
+  };
+  gplfonts = {
+    # GPL fonts removed from later releases
+    kashmiri        = { label = "Kashmiri";          version = "2.4.3" ; sha256 = "0c6whklad9bscymrlcbxj4fdvh4cdf40vb61ykbp6mapg6dqxwhn"; };
+    konkani         = { label = "Konkani";           version = "2.4.3" ; sha256 = "0pcb5089dabac1k6ymqnbnlyk7svy2wnb5glvhsd8glycjhrcp70"; };
+    maithili        = { label = "Maithili";          version = "2.4.3" ; sha256 = "1yfwv7pcj7k4jryz0s6mb56bq7fs15g56y7pi5yd89q1f8idk6bc"; };
+    sindhi          = { label = "Sindhi";            version = "2.4.3" ; sha256 = "1iywzyy185bvfsfi5pp11c8bzrp40kni2cpwcmxqwha7c9v8brlc"; };
+  };
+
+  mkpkg = license: name: {label, version, sha256}: fetchzip {
+    name = "lohit-${name}-${version}";
+
+    url = "https://releases.pagure.org/lohit/lohit-${name}-ttf-${version}.tar.gz";
+
+    postFetch = ''
+      tar -xzf $downloadedFile --strip-components=1
+
+      mkdir -p $out/share/fonts/truetype
+      cp -v *.ttf $out/share/fonts/truetype/
+
+      mkdir -p $out/etc/fonts/conf.d
+      cp -v *.conf $out/etc/fonts/conf.d
+
+      mkdir -p "$out/share/doc/lohit-${name}"
+      cp -v ChangeLog* COPYRIGHT* "$out/share/doc/lohit-${name}/"
+    '';
+
+    inherit sha256;
+
+    meta = {
+      inherit license;
+      description = "Free and open source fonts for Indian languages (" + label + ")";
+      homepage = "https://pagure.io/lohit";
+      maintainers = [ lib.maintainers.mathnerd314 lib.maintainers.ttuegel ];
+      # Set a non-zero priority to allow easy overriding of the
+      # fontconfig configuration files.
+      priority = 5;
+    };
+  };
+
+in
+# Technically, GPLv2 with usage exceptions
+lib.mapAttrs (mkpkg lib.licenses.gpl2) gplfonts //
+lib.mapAttrs (mkpkg lib.licenses.ofl) fonts
diff --git a/nixpkgs/pkgs/data/fonts/luculent/default.nix b/nixpkgs/pkgs/data/fonts/luculent/default.nix
new file mode 100644
index 000000000000..9d61931db365
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/luculent/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchzip }:
+
+let version = "2.0.0"; in
+fetchzip {
+  name = "luculent-${version}";
+  url =  "http://www.eastfarthing.com/luculent/luculent.tar.xz";
+
+  postFetch = ''
+    tar -xJf $downloadedFile --strip-components=1
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+  '';
+
+  sha256 = "1m3g64galwna1xjxb1fczmfplm6c1fn3ra1ln7f0vkm0ah5m4lbv";
+
+  meta = with lib; {
+    description = "luculent font";
+    homepage = "http://www.eastfarthing.com/luculent/";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ dtzWill ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/manrope/default.nix b/nixpkgs/pkgs/data/fonts/manrope/default.nix
new file mode 100644
index 000000000000..9bf4f32caeb2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/manrope/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "manrope";
+  version = "3";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "sharanda";
+  repo = pname;
+  rev = "3bd68c0c325861e32704470a90dfc1868a5c37e9";
+  sha256 = "1h4chkfbp75hrrqqarf28ld4yb7hfrr7q4w5yz96ivg94lbwlnld";
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -Dm644 -t $out/share/fonts/opentype "desktop font"/*
+  '';
+  meta = with lib; {
+    description = "Open-source modern sans-serif font family";
+    homepage = "https://github.com/sharanda/manrope";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/marathi-cursive/default.nix b/nixpkgs/pkgs/data/fonts/marathi-cursive/default.nix
new file mode 100644
index 000000000000..8c228fd91a75
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/marathi-cursive/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "2.0";
+in fetchzip rec {
+  name = "marathi-cursive-${version}";
+
+  url = "https://github.com/MihailJP/MarathiCursive/releases/download/v${version}/MarathiCursive-${version}.tar.xz";
+
+  postFetch = ''
+    tar -xJf $downloadedFile --strip-components=1
+    install -m444 -Dt $out/share/fonts/marathi-cursive *.otf *.ttf
+    install -m444 -Dt $out/share/doc/${name} README *.txt
+  '';
+
+  sha256 = "17pj60ajnjghxhxka8a046mz6vfwr79wnby7xd6pg5hgncin2hgg";
+
+  meta = with lib; {
+    homepage = "https://github.com/MihailJP/MarathiCursive";
+    description = "Modi script font with Graphite and OpenType support";
+    maintainers = with maintainers; [ mathnerd314 ];
+    license = licenses.mit; # It's the M+ license, M+ is MIT(-ish)
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/material-design-icons/default.nix b/nixpkgs/pkgs/data/fonts/material-design-icons/default.nix
new file mode 100644
index 000000000000..1bf5c6aa4820
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/material-design-icons/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "5.3.45";
+in fetchFromGitHub {
+  name = "material-design-icons-${version}";
+  owner  = "Templarian";
+  repo   = "MaterialDesign-Webfont";
+  rev    = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    mkdir -p $out/share/fonts/{eot,truetype,woff,woff2}
+    cp fonts/*.eot $out/share/fonts/eot/
+    cp fonts/*.ttf $out/share/fonts/truetype/
+    cp fonts/*.woff $out/share/fonts/woff/
+    cp fonts/*.woff2 $out/share/fonts/woff2/
+  '';
+  sha256 = "1nwha6dbj97ybiwlf69la57l3ibmwgnzs0nr104bfqnqxjs471sx";
+
+  meta = with lib; {
+    description = "4600+ Material Design Icons from the Community";
+    longDescription = ''
+      Material Design Icons' growing icon collection allows designers and
+      developers targeting various platforms to download icons in the format,
+      color and size they need for any project.
+    '';
+    homepage = "https://materialdesignicons.com";
+    license = with licenses; [
+      asl20  # for icons from: https://github.com/google/material-design-icons
+      ofl
+    ];
+    platforms = platforms.all;
+    maintainers = with maintainers; [ vlaci ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/material-icons/default.nix b/nixpkgs/pkgs/data/fonts/material-icons/default.nix
new file mode 100644
index 000000000000..656be1b153eb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/material-icons/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "3.0.1";
+in fetchFromGitHub {
+  name = "material-icons-${version}";
+
+  owner  = "google";
+  repo   = "material-design-icons";
+  rev    = version;
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    mkdir -p $out/share/fonts/truetype
+    cp iconfont/*.ttf $out/share/fonts/truetype
+  '';
+  sha256 = "1syy6v941lb8nqxhdf7mfx28v05lwrfnq53r3c1ym13x05l9kchp";
+
+  meta = with lib; {
+    description = "System status icons by Google, featuring material design";
+    homepage = "https://material.io/icons";
+    license = licenses.asl20;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ mpcsh ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/medio/default.nix b/nixpkgs/pkgs/data/fonts/medio/default.nix
new file mode 100644
index 000000000000..c94046f085f9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/medio/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "200";
+  pname = "medio";
+in
+
+fetchzip {
+  name = "${pname}-font-${majorVersion}.${minorVersion}";
+
+  url = "http://dotcolon.net/DL/font/${pname}.zip";
+  sha256 = "0gxcmhjlsh2pzsmj78vw4v935ax7hfk533ddlhfhfma52zyxyh7x";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype/${pname}
+    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${pname}/";
+    description = "Serif font designed by Sora Sagano";
+    longDescription = ''
+      Medio is a serif font designed by Sora Sagano, based roughly
+      on the proportions of the font Tenderness (from the same designer),
+      but with hairline serifs in the style of a Didone.
+    '';
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.cc0;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/merriweather-sans/default.nix b/nixpkgs/pkgs/data/fonts/merriweather-sans/default.nix
new file mode 100644
index 000000000000..397f42236b52
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/merriweather-sans/default.nix
@@ -0,0 +1,34 @@
+{ stdenvNoCC
+, lib
+, fetchFromGitHub
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "merriweather-sans";
+  version = "1.008";
+
+  src = fetchFromGitHub {
+    owner = "SorkinType";
+    repo = "Merriweather-Sans";
+    rev = "8a1b078e3aeec6aecc856c3422898816af9b9dc7";
+    sha256 = "1f6a64bv4b4b1v3g2pgrzxcys8rk12wq6wfxamgzligcq5fxaffd";
+  };
+
+  # TODO: it would be nice to build this from scratch, but lots of
+  # Python dependencies to package (fontmake, gftools)
+
+  installPhase = ''
+    install -m444 -Dt $out/share/fonts/truetype/${pname} fonts/ttfs/*.ttf
+    install -m444 -Dt $out/share/fonts/woff/${pname} fonts/woff/*.woff
+    install -m444 -Dt $out/share/fonts/woff2/${pname} fonts/woff2/*.woff2
+    # TODO: install variable version?
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/SorkinType/Merriweather-Sans";
+    description = "Merriweather Sans is a low-contrast semi-condensed sans-serif text typeface family designed to be pleasant to read at very small sizes";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ emily ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/merriweather/default.nix b/nixpkgs/pkgs/data/fonts/merriweather/default.nix
new file mode 100644
index 000000000000..d1b3359df26e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/merriweather/default.nix
@@ -0,0 +1,35 @@
+{ stdenvNoCC
+, lib
+, fetchFromGitHub
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "merriweather";
+  version = "2.005";
+
+  src = fetchFromGitHub {
+    owner = "SorkinType";
+    repo = "Merriweather";
+    rev = "4fd88c9299009d1c1d201e7da3ff75cf1de5153a";
+    sha256 = "1ndycja2jzhcfbqbm0p6ka2zl1i1pdbkf0crw2lp3pi4k89wlm29";
+  };
+
+  # TODO: it would be nice to build this from scratch, but lots of
+  # Python dependencies to package (fontmake, gftools)
+
+  installPhase = ''
+    install -m444 -Dt $out/share/fonts/opentype/${pname} fonts/otf/*.otf
+    install -m444 -Dt $out/share/fonts/truetype/${pname} fonts/ttfs/*.ttf
+    install -m444 -Dt $out/share/fonts/woff/${pname} fonts/woff/*.woff
+    install -m444 -Dt $out/share/fonts/woff2/${pname} fonts/woff2/*.woff2
+    # TODO: install variable version?
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/SorkinType/Merriweather";
+    description = "A text face designed to be pleasant to read on screens";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ emily ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/meslo-lg/default.nix b/nixpkgs/pkgs/data/fonts/meslo-lg/default.nix
new file mode 100644
index 000000000000..a55fb65c56c2
--- /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 = "A customized version of Apple’s Menlo-Regular font";
+    homepage = "https://github.com/andreberg/Meslo-Font/";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ balajisivaraman ];
+    platforms = with lib.platforms; all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/meslo-lgs-nf/default.nix b/nixpkgs/pkgs/data/fonts/meslo-lgs-nf/default.nix
new file mode 100644
index 000000000000..4d56af449cc2
--- /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 = "2021-09-03";
+
+  src = fetchFromGitHub {
+    owner = "romkatv";
+    repo = "powerlevel10k-media";
+    rev = "389133fb8c9a2347929a23702ce3039aacc46c3d";
+    sha256 = "sha256-dWqRxjqsa/Tiv0Ww8VLHRDhftD3eqa1t2/T0irFeMFI=";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp $src/*.ttf $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    description = "Meslo Nerd Font patched for Powerlevel10k";
+    homepage = "https://github.com/romkatv/powerlevel10k-media";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bbigras ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/migmix/default.nix b/nixpkgs/pkgs/data/fonts/migmix/default.nix
new file mode 100644
index 000000000000..bcc0666f035d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/migmix/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+  pname = "migmix";
+  version = "20150712";
+
+  srcs = [
+    (fetchzip {
+      url = "mirror://osdn/mix-mplus-ipa/63544/migmix-1p-${version}.zip";
+      sha256 = "0wp44axcalaak04nj3dgpx0vk13nqa3ihx2vjv4acsgv83x8ciph";
+    })
+    (fetchzip {
+      url = "mirror://osdn/mix-mplus-ipa/63544/migmix-2p-${version}.zip";
+      sha256 = "0y7s3rbxrp5bv56qgihk8b847lqgibfhn2wlkzx7z655fbzdgxw9";
+    })
+    (fetchzip {
+      url = "mirror://osdn/mix-mplus-ipa/63544/migmix-1m-${version}.zip";
+      sha256 = "1sfym0chy8ilyd9sr3mjc0bf63vc33p05ynpdc11miivxn4qsshx";
+    })
+    (fetchzip {
+      url = "mirror://osdn/mix-mplus-ipa/63544/migmix-2m-${version}.zip";
+      sha256 = "0hg04rvm39fh4my4akmv4rhfc14s3ipz2aw718h505k9hppkhkch";
+    })
+  ];
+
+  dontUnpack = true;
+
+  installPhase = ''
+    find $srcs -name '*.ttf' -exec install -m644 -Dt $out/share/fonts/truetype/migmix {} \;
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1fhh8wg6lxwrnsg9rl4ihffl0bsp1wqa5gps9fx60kr6j9wpvmbg";
+
+  meta = with lib; {
+    description = "A high-quality Japanese font based on M+ fonts and IPA fonts";
+    homepage = "http://mix-mplus-ipa.osdn.jp/migmix";
+    license = licenses.ipa;
+    maintainers = [ maintainers.mikoim ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/migu/default.nix b/nixpkgs/pkgs/data/fonts/migu/default.nix
new file mode 100644
index 000000000000..09992ef5ec8c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/migu/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+  pname = "migu";
+  version = "20150712";
+
+  srcs = [
+    (fetchzip {
+      url = "mirror://osdn/mix-mplus-ipa/63545/migu-1p-${version}.zip";
+      sha256 = "04wpbk5xbbcv2rzac8yzj4ww7sk2hy2rg8zs96yxc5vzj9q7svf6";
+    })
+    (fetchzip {
+      url = "mirror://osdn/mix-mplus-ipa/63545/migu-1c-${version}.zip";
+      sha256 = "1k7ymix14ac5fb44bjvbaaf24784zzpyc1jj2280c0zdnpxksyk6";
+    })
+    (fetchzip {
+      url = "mirror://osdn/mix-mplus-ipa/63545/migu-1m-${version}.zip";
+      sha256 = "07r8id83v92hym21vrqmfsfxb646v8258001pkjhgfnfg1yvw8lm";
+    })
+    (fetchzip {
+      url = "mirror://osdn/mix-mplus-ipa/63545/migu-2m-${version}.zip";
+      sha256 = "1pvzbrawh43589j8rfxk86y1acjbgzzdy5wllvdkpm1qnx28zwc2";
+    })
+  ];
+
+  dontUnpack = true;
+
+  installPhase = ''
+    find $srcs -name '*.ttf' | xargs install -m644 --target $out/share/fonts/truetype/migu -D
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "0nbpn21cxdd6gsgr3fadzjsnz84f2swpf81wmscmjgvd56ngndzh";
+
+  meta = with lib; {
+    description = "A high-quality Japanese font based on modified M+ fonts and IPA fonts";
+    homepage = "http://mix-mplus-ipa.osdn.jp/migu/";
+    license = licenses.ipa;
+    maintainers = [ maintainers.mikoim ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/mno16/default.nix b/nixpkgs/pkgs/data/fonts/mno16/default.nix
new file mode 100644
index 000000000000..eeb53904fe11
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/mno16/default.nix
@@ -0,0 +1,21 @@
+{ lib, fetchzip }:
+
+let
+  pname = "mno16";
+  version = "1.0";
+in fetchzip rec {
+  name = "${pname}-${version}";
+  url = "https://github.com/sevmeyer/${pname}/releases/download/${version}/${name}.zip";
+  sha256 = "1x06nl281fcjk6g1p4cgrgxakmwcci6vvasskaygsqlzxd8ig87w";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype/
+  '';
+
+  meta = with lib; {
+    description = "minimalist monospaced font";
+    homepage = "https://sev.dev/fonts/mno16";
+    license = licenses.cc0;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/monoid/default.nix b/nixpkgs/pkgs/data/fonts/monoid/default.nix
new file mode 100644
index 000000000000..77ef87152acf
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/monoid/default.nix
@@ -0,0 +1,49 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, python3 }:
+
+stdenv.mkDerivation {
+  pname = "monoid";
+  version = "2018-06-03";
+
+  src = fetchFromGitHub {
+    owner = "larsenwork";
+    repo = "monoid";
+    rev = "a331c7c5f402c449f623e0d0895bd2fd8dc30ccf";
+    sha256 = "sha256-RV6lxv5CjywTMcuPMj6rdjLKrap7zLJ7niaNeF//U1Y=";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/larsenwork/monoid/pull/233/commits/f84f2ed61301ee84dadd16351314394f22ebed2f.patch";
+      sha256 = "sha256-CxfFHlR7TB64pvrfzVfUDkPwuRO2UdGOhXwW98c+oQU=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    (python3.withPackages (pp: with pp; [
+      fontforge
+    ]))
+  ];
+
+  buildPhase = ''
+    local _d=""
+    local _l=""
+    for _d in {Monoisome,Source}/*.sfdir; do
+      _l="''${_d##*/}.log"
+      echo "Building $_d (log at $_l)"
+      python Scripts/build.py 1 0 $_d > $_l
+    done
+  '';
+
+  installPhase = ''
+    install -m444 -Dt $out/share/fonts/truetype _release/*
+    install -m444 -Dt $out/share/doc            Readme.md
+  '';
+
+  meta = with lib; {
+    homepage = "http://larsenwork.com/monoid";
+    description = "Customisable coding font with alternates, ligatures and contextual positioning";
+    license = [ licenses.ofl licenses.mit ];
+    platforms = platforms.all;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/mononoki/default.nix b/nixpkgs/pkgs/data/fonts/mononoki/default.nix
new file mode 100644
index 000000000000..d48332b4a27f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/mononoki/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.3";
+in fetchzip {
+  name = "mononoki-${version}";
+
+  url = "https://github.com/madmalik/mononoki/releases/download/${version}/mononoki.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/mononoki
+    unzip -j $downloadedFile -d $out/share/fonts/mononoki
+  '';
+
+  sha256 = "sha256-K2uOpJRmQ1NcDZfh6rorCF0MvGHFCsSW8J7Ue9OC/OY=";
+
+  meta = with lib; {
+    homepage = "https://github.com/madmalik/mononoki";
+    description = "A font for programming and code review";
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/montserrat/default.nix b/nixpkgs/pkgs/data/fonts/montserrat/default.nix
new file mode 100644
index 000000000000..7d91f49eb3e4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/montserrat/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "montserrat";
+  version = "7.222";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "JulietaUla";
+  repo = pname;
+  rev = "v${version}";
+  sha256 = "sha256-MeNnc1e5X5f0JyaLY6fX22rytHkvL++eM2ygsdlGMv0=";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip 1
+    install -Dm 444 fonts/otf/*.otf -t $out/share/fonts/otf
+    install -Dm 444 fonts/ttf/*.ttf -t $out/share/fonts/ttf
+    install -Dm 444 fonts/webfonts/*.woff -t $out/share/fonts/woff
+    install -Dm 444 fonts/webfonts/*.woff2 -t $out/share/fonts/woff2
+  '';
+
+  meta = with lib; {
+    description = "A geometric sans serif font with extended latin support (Regular, Alternates, Subrayada)";
+    homepage = "https://www.fontspace.com/julieta-ulanovsky/montserrat";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ scolobb jk ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/mph-2b-damase/default.nix b/nixpkgs/pkgs/data/fonts/mph-2b-damase/default.nix
new file mode 100644
index 000000000000..10a8dc38d954
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/mph-2b-damase/default.nix
@@ -0,0 +1,17 @@
+{ fetchzip }:
+
+fetchzip {
+  name = "MPH-2B-Damase-2";
+
+  url = "http://www.wazu.jp/downloads/damase_v.2.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  sha256 = "0yzf12z6fpbgycqwiz88f39iawdhjabadfa14wxar3nhl9n434ql";
+
+  meta = {
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/mplus-outline-fonts/default.nix b/nixpkgs/pkgs/data/fonts/mplus-outline-fonts/default.nix
new file mode 100644
index 000000000000..75e8899e664a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/mplus-outline-fonts/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "063a";
+in fetchzip {
+  name = "mplus-${version}";
+
+  url = "mirror://osdn/mplus-fonts/62344/mplus-TESTFLIGHT-${version}.tar.xz";
+
+  postFetch = ''
+    tar -xJf $downloadedFile --strip-components=1
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+  '';
+
+  sha256 = "1khbkch2r96ppifc93bmy1v047pgciyhfmcjb98ggncp5ix885xz";
+
+  meta = with lib; {
+    description = "M+ Outline Fonts";
+    homepage = "https://mplus-fonts.osdn.jp/about-en.html";
+    license = licenses.mit;
+    maintainers = with maintainers; [ henrytill ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/mro-unicode/default.nix b/nixpkgs/pkgs/data/fonts/mro-unicode/default.nix
new file mode 100644
index 000000000000..9f4eda63d0fa
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/mro-unicode/default.nix
@@ -0,0 +1,19 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "mro-unicode-2013-05-25";
+
+  url = "https://github.com/phjamr/MroUnicode/raw/f297de070f7eba721a47c850e08efc119d3bfbe8/MroUnicode-Regular.ttf";
+
+  postFetch = "install -Dm644 $downloadedFile $out/share/fonts/truetype/MroUnicode-Regular.ttf";
+
+  sha256 = "1i71bjd9gdyn8ladfncbfhz6xz1h8xx8yf876j1z8lh719410c8g";
+
+  meta = with lib; {
+    homepage = "https://github.com/phjamr/MroUnicode";
+    description = "Unicode-compliant Mro font";
+    maintainers = with maintainers; [ mathnerd314 ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/myrica/default.nix b/nixpkgs/pkgs/data/fonts/myrica/default.nix
new file mode 100644
index 000000000000..c36292eb0014
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/myrica/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub }:
+
+fetchFromGitHub {
+  name = "myrica-2.011.20160403";
+
+  owner = "tomokuni";
+  repo = "Myrica";
+  # commit does not exist on any branch on the target repository
+  rev = "b737107723bfddd917210f979ccc32ab3eb6dc20";
+  sha256 = "187rklcibbkai6m08173ca99qn8v7xpdfdv0izpymmavj85axm12";
+
+  postFetch = ''
+    tar --strip-components=1 -xzvf $downloadedFile
+    mkdir -p $out/share/fonts/truetype
+    cp product/*.TTC $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    homepage = "https://myrica.estable.jp/";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ mikoim ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/nafees/default.nix b/nixpkgs/pkgs/data/fonts/nafees/default.nix
new file mode 100644
index 000000000000..e23528aefe80
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nafees/default.nix
@@ -0,0 +1,62 @@
+{lib, stdenv, fetchurl, unzip}:
+
+stdenv.mkDerivation {
+  name = "nafees";
+
+  srcs = [(fetchurl {
+    url = "http://www.cle.org.pk/Downloads/localization/fonts/NafeesNastaleeq/Nafees_Nastaleeq_v1.02.zip";
+    sha256 = "1h1k5d74pg2gs782910v7i9rz2633wdacy34ds7ybxbpjiz6pqix";
+  })
+
+  (fetchurl {
+    url = "http://www.cle.org.pk/Downloads/localization/fonts/NafeesRiqa/Nafees_Riqa_v1.0.zip";
+    sha256 = "1liismsyaj69y40vs9a9db4l95n25n8vnjnx7sbk70nxppwngd8i";
+  })
+
+  (fetchurl {
+    url = "http://www.cle.org.pk/Downloads/localization/fonts/NafeesNaskh/Nafees_Naskh_v2.01.zip";
+    sha256 = "1qbbj6w6bvrlymv7z6ld609yhp0l2f27z14180w5n8kzzl720vly";
+  })
+
+  (fetchurl {
+    url = "http://www.cle.org.pk/Downloads/localization/fonts/NafeesTahreerNaskh/Nafees_Tahreer_Naskh_v1.0.zip";
+    sha256 = "006l87drbi4zh52kpvn8wl9wbwm9srfn406rzsnf4gv0spzhqrxl";
+  })
+  (fetchurl {
+    url = "http://www.cle.org.pk/Downloads/localization/fonts/NafeesPakistaniNaskh/Nafees_Pakistani_Naskh_v2.01.zip";
+    sha256 = "1i5ip60gq1cgc9fc96kvlahdpia8dxdgcisglvbm2d212bz0s5nb";
+  })
+];
+
+  nativeBuildInputs = [unzip];
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+    # cp $riqa/*.ttf $out/share/fonts/truetype
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1wa0j65iz20ij37dazd1rjg8x625m6q1y8g5h7ia48pbc88sr01q";
+
+  meta = {
+    description = "OpenType Urdu font from the Center for Research in Urdu Language Processing";
+    longDescription = ''
+      The Nafees font family is developed according
+      to calligraphic rules, following the style of Syed Nafees
+      Al-Hussaini (Nafees Raqam) one of the finest calligraphers of
+      Pakistan
+    '';
+    homepage = "http://www.cle.org.pk/software/localization.htm";
+
+    # Used to be GPLv2.  The license distributed with the fonts looks
+    # more like a modified BSD, but still contains the GPLv2 embedded
+    # font exception, and some not-for-resale language.
+    license = "unknown";
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [ bergey ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/nahid-fonts/default.nix b/nixpkgs/pkgs/data/fonts/nahid-fonts/default.nix
new file mode 100644
index 000000000000..fbceb3c927dc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nahid-fonts/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "nahid-fonts";
+  version = "0.3.0";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "rastikerdar";
+  repo = "nahid-font";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/nahid-fonts {} \;
+  '';
+  sha256 = "0df169sibq14j2mj727sq86c00jm1nz8565v85hkvh4zgz2plb7c";
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/nahid-font";
+    description = "A Persian (Farsi) Font - قلم (فونت) فارسی ناهید";
+    license = licenses.free;
+    platforms = platforms.all;
+    maintainers = [ ];
+  };
+}
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..5066a2aef4dc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nanum-gothic-coding/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "VER2.5";
+  fullName = "NanumGothicCoding-2.5";
+
+in fetchzip {
+  name = "nanum-gothic-coding";
+  url = "https://github.com/naver/nanumfont/releases/download/${version}/${fullName}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/NanumGothicCoding
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/NanumGothicCoding
+  '';
+
+  sha256 = "0b3pkhd6xn6393zi0dhj3ah08w1y1ji9fl6584bi0c8lanamf2pc";
+
+  meta = with lib; {
+    description = "A contemporary monospaced sans-serif typeface with a warm touch";
+    homepage = "https://github.com/naver/nanumfont";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/national-park/default.nix b/nixpkgs/pkgs/data/fonts/national-park/default.nix
new file mode 100644
index 000000000000..8ed251de53d5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/national-park/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchzip }:
+
+let
+  pname = "national-park-typeface";
+  version = "206464";
+in fetchzip {
+  name = "${pname}-${version}";
+  url = "https://files.cargocollective.com/c${version}/NationalPark.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile National\*.otf -d $out/share/fonts/opentype/
+  '';
+
+  sha256 = "044gh4xcasp8i9ny6z4nmns1am2pk5krc4ann2afq35v9bnl2q5d";
+
+  meta = with lib; {
+    description = ''Typeface designed to mimic the national park service
+    signs that are carved using a router bit'';
+    homepage = "https://nationalparktypeface.com/";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/navilu/default.nix b/nixpkgs/pkgs/data/fonts/navilu/default.nix
new file mode 100644
index 000000000000..afd9f85741c3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/navilu/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitHub, fontforge }:
+
+stdenv.mkDerivation rec {
+  pname = "navilu-font";
+  version = "1.2";
+
+  src = fetchFromGitHub {
+    owner = "aravindavk";
+    repo = "Navilu";
+    rev = "v${version}";
+    sha256 = "1vm6n04siaa0zf6jzp5s2gzgr2qxs3vdnmcmg4dcy07py2kd2fla";
+  };
+
+  nativeBuildInputs = [ fontforge ];
+
+  dontConfigure = true;
+
+  preBuild = "patchShebangs generate.pe";
+
+  installPhase = "install -Dm444 -t $out/share/fonts/truetype/ Navilu.ttf";
+
+  meta = with lib; src.meta // {
+    description = "A Kannada handwriting font";
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ehmry ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix b/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix
new file mode 100644
index 000000000000..ceb0cb8b03af
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix
@@ -0,0 +1,75 @@
+{ stdenv
+, fetchurl
+, lib
+, unzip
+# To select only certain fonts, put a list of strings to `fonts`: every key in
+# ./shas.nix is an optional font
+, fonts ? []
+# Whether to enable Windows font variants, their internal font name is limited
+# to 31 characters
+, enableWindowsFonts ? false
+}:
+
+let
+  # both of these files are generated via ./update.sh
+  version = import ./version.nix;
+  fontsShas = import ./shas.nix;
+  knownFonts = builtins.attrNames fontsShas;
+  selectedFonts = if (fonts == []) then
+    knownFonts
+  else
+    let unknown = lib.subtractLists knownFonts fonts; in
+    if (unknown != []) then
+      throw "Unknown font(s): ${lib.concatStringsSep " " unknown}"
+    else
+      fonts
+  ;
+  selectedFontsShas = lib.attrsets.genAttrs selectedFonts (
+    fName:
+    fontsShas."${fName}"
+  );
+  srcs = lib.attrsets.mapAttrsToList (
+    fName:
+    fSha:
+    (fetchurl {
+      url = "https://github.com/ryanoasis/nerd-fonts/releases/download/v${version}/${fName}.zip";
+      sha256 = fSha;
+    })
+  ) selectedFontsShas;
+in
+
+stdenv.mkDerivation rec {
+  inherit version;
+  inherit srcs;
+  pname = "nerdfonts";
+  nativeBuildInputs = [
+    unzip
+  ];
+  sourceRoot = ".";
+  buildPhase = ''
+    echo "selected fonts are ${toString selectedFonts}"
+    ls *.otf *.ttf
+  '';
+  installPhase = ''
+    find -name \*.otf -exec mkdir -p $out/share/fonts/opentype/NerdFonts \; -exec mv {} $out/share/fonts/opentype/NerdFonts \;
+    find -name \*.ttf -exec mkdir -p $out/share/fonts/truetype/NerdFonts \; -exec mv {} $out/share/fonts/truetype/NerdFonts \;
+    ${lib.optionalString (! enableWindowsFonts) ''
+      rm -rfv $out/share/fonts/opentype/NerdFonts/*Windows\ Compatible.*
+      rm -rfv $out/share/fonts/truetype/NerdFonts/*Windows\ Compatible.*
+    ''}
+  '';
+
+  meta = with lib; {
+    description = "Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts";
+    longDescription = ''
+      Nerd Fonts is a project that attempts to patch as many developer targeted
+      and/or used fonts as possible. The patch is to specifically add a high
+      number of additional glyphs from popular 'iconic fonts' such as Font
+      Awesome, Devicons, Octicons, and others.
+    '';
+    homepage = "https://nerdfonts.com/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar ];
+    hydraPlatforms = []; # 'Output limit exceeded' on Hydra
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/nerdfonts/shas.nix b/nixpkgs/pkgs/data/fonts/nerdfonts/shas.nix
new file mode 100644
index 000000000000..4194e57532dc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nerdfonts/shas.nix
@@ -0,0 +1,52 @@
+{
+  "3270" = "1k71zsijasn6013c58pgf52xw3h9gkqdjlsa177wlldz8qxb16xk";
+  "Agave" = "0jgm31wvmckb71qc9l0nj3sg4zq2vw67piaxr6h8zkakcl2mysha";
+  "AnonymousPro" = "0s3n8rrr9kfqd8gxjxksp7p8bc3q7qhcrpyq8090dksvmbcks6xm";
+  "Arimo" = "1k7ldfx6dmy9sigzsvi9qwms510nddw634g8xrn0vwnw6d7infk8";
+  "AurulentSansMono" = "0q35948dai8qc7gfvas8sfn5s7b64b2y4f9psz6xslrv7nw8lcaz";
+  "BigBlueTerminal" = "0ymw2m2xjsx77brm79aws26icwcf2a1d7q3p3ipsd25g4cgqcd2v";
+  "BitstreamVeraSansMono" = "1n2298g1fn8jb1fbvw74289n7nnmjddn7zxh88gnl58pwz8ra5dk";
+  "CascadiaCode" = "1q4l5a7b7ab6h1bs5pq734r9pp3fw9b59gdk1g4hyn2w61h0kdcj";
+  "CodeNewRoman" = "1mgxawj3pblaxy0y9w0hzlfgipiskmc5p028m82zh1wyaplmh2pa";
+  "Cousine" = "0jr0gxrsba3dhchp53vd67qq2pgfnvmvcwbv99l1700p539bcvy1";
+  "DaddyTimeMono" = "1n6vwykz084fxgylayizxc210f4ms2ijfws5b2hvl2kqmy2q6jk4";
+  "DejaVuSansMono" = "03qfrkzmhnn8dwgx4qhiigbz4dxs3957hydlr0j8vxl89j8c9g1z";
+  "DroidSansMono" = "187cbcn4a2whrl8dag1ix6j1v3jgv5z2jdfw1w1z9llm1znvpp7z";
+  "FantasqueSansMono" = "147h15k3ni0w6chxkrah2fk4klhdhq8y1d3nbx763h9ia3mnggv6";
+  "FiraCode" = "1rx7zrkq0584k6hrh6dx30xrnz5nq379xyw73pfd4gxaxnh9mpi1";
+  "FiraMono" = "0f2daidakhmbbd5ph6985rghjmr87k7xzmmmf9n851dxvfyndsgl";
+  "Go-Mono" = "1bzh3pgyn87j27kw7x5h02rqzhh21pm6d0zhxd5iqi5qq5mj0nvm";
+  "Gohu" = "1rlkprjg9nz1s69s4ancmxii6l907qachl116gngbj8gjv3g1x21";
+  "Hack" = "052mav170lwxkgzg3hij4zvnmfwyrddn45gn07a33gpzzicjx1bh";
+  "Hasklig" = "0vyb0z0m04pn8477d6a711vjwb3nhvpn5fxfwnz37av9jmz3i9vk";
+  "HeavyData" = "065rhq7z52dp211inw3vszwc5zrd5s0w1kmgnrh68bxc0js0xqyb";
+  "Hermit" = "1ij9pjr517jxk3dlsrzmnqivsfq5i5ai6pd8hznmrkb3360cn7sm";
+  "iA-Writer" = "0clksrxw6xcv5c1pbd8rl2rc3r15iak1qv8v6bn0j2mccjcss64z";
+  "IBMPlexMono" = "0xkfkpnkkrvjfiv624l7lpmfji107y7645w6ah47ijyg47yxkmsg";
+  "Inconsolata" = "14gbwc0k3d1j496w6pv9kry1pglswzd0armsdb0g1mqgzfdf1ci1";
+  "InconsolataGo" = "0c6yhx242d82dalyjas42qniy0jagqs47cfsfarwmzar6zg3lj5m";
+  "InconsolataLGC" = "1746nl1rz4hscfgbmd8642wq3z1wizvfjb50y3yyjsc1ixc1f0pd";
+  "Iosevka" = "1qqd4xh98vxb99rh2a2qv9gjclilhaw84pyqdpbx225qhvw9xlkb";
+  "JetBrainsMono" = "1kc8fyk1aczxkmn8dzv1gy6xfi2jywgahd8np576v2dn8kx16844";
+  "Lekton" = "0mny5j9bns9104wg2wmabdw0sl80c7i3dzp4j5mxh8jybx929d3i";
+  "LiberationMono" = "19bpm893assmmnfvlvhz8df54c9pr2kfv2b6anlr4g64hliy1c1h";
+  "Meslo" = "08zm8nqskhrqkw80wl460zbvsrvs5fp2njlcv867phpqna9hyqzh";
+  "Monofur" = "0f5khqgdxi4g0qm5n48r1sk4pd2wlk987d8yxwks2mcsqa6fraqj";
+  "Monoid" = "0m7i82jfiwqmi9lhv8lmq2n723ihn0isxi5559478qbdy5b104dd";
+  "Mononoki" = "074avnvfl260pcrli4h5bc55yqr4mgd54paf80qcnh101qsz325w";
+  "MPlus" = "03mrfhzfmmqjfl7fa81v1ih3fdr3q2k439w6pjbd2zvl806l92yq";
+  "Noto" = "1jmycnf4fflijs730vbyj258kajkxv0j42655a7hvpapym7z940z";
+  "OpenDyslexic" = "0ma62xg6cy8l4chfhqvm64zzhx3mrzdj6gxwnvx8plqy3j4dn3by";
+  "Overpass" = "1xs2z3ch7dd32zb5l1axzd78hyskimqglcjcrb7n4ic85qm55xxm";
+  "ProFont" = "0ck4rprj0w29pv3qm4n1zg6cdq76m3kaag0ka4q1qqcnhga67zr7";
+  "ProggyClean" = "0sk3gk6zj61nbv94xv6z8y67sr5blg9n079d8srv7bbw9dv96i8g";
+  "RobotoMono" = "1nhbr9zc0cz81pdj95rrb56bwdkmmbqmk429nf60j35pkcqmvk8x";
+  "ShareTechMono" = "1h79myy0my3jyrvqcrgfdsjqrwwm5fdy2nmzp3ynyi769p7z1dwr";
+  "SourceCodePro" = "06cnsdmm84kzjlwwcmhwpj7pyfqinqpmww1c13i21l611fg6hwd7";
+  "SpaceMono" = "1xmmf2gdsa3ycl3pgpr3zr919qh702wjvc5k4hsdivvs2lzfdgmk";
+  "Terminus" = "0g2ybs225fwxmvwfnanc32jc2lfnag3agmliv1vrb5mxyqzm53gj";
+  "Tinos" = "077n4k6yh4qbirfkl02zqn3057kymspr10zcbfkf4ldvifa36pjd";
+  "Ubuntu" = "1lzdrgb8vk5dwicxhvkgbain5phf88g3zgv5ya2ihh052xsl3qih";
+  "UbuntuMono" = "0wa8ri7f3g8vwd194q812qh8nzplnmhl5ak0yhgilmm44s46ad0h";
+  "VictorMono" = "18z92kwggfqwrd5m09yda55hcb4b159278lps6f9hr8icwki6v9q";
+}
diff --git a/nixpkgs/pkgs/data/fonts/nerdfonts/update.sh b/nixpkgs/pkgs/data/fonts/nerdfonts/update.sh
new file mode 100755
index 000000000000..b4c4aaa7cf2b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nerdfonts/update.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p nix-prefetch jq
+
+latest_release=$(curl --silent https://api.github.com/repos/ryanoasis/nerd-fonts/releases/latest)
+version=$(jq -r '.tag_name' <<<"$latest_release")
+
+dirname="$(dirname "$0")"
+echo \""${version#v}"\" >"$dirname/version.nix"
+
+echo Using version "$version"
+
+printf '{\n' > "$dirname/shas.nix"
+
+while
+  read -r name
+  read -r url
+do
+    printf '  "%s" = "%s";\n' "${name%.*}" "$(nix-prefetch-url "$url")" >>"$dirname/shas.nix"
+done < <(jq -r '.assets[] | .name, .browser_download_url' <<<"$latest_release")
+
+printf '}\n' >> "$dirname/shas.nix"
diff --git a/nixpkgs/pkgs/data/fonts/nerdfonts/version.nix b/nixpkgs/pkgs/data/fonts/nerdfonts/version.nix
new file mode 100644
index 000000000000..8320adbf0258
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nerdfonts/version.nix
@@ -0,0 +1 @@
+"2.1.0"
diff --git a/nixpkgs/pkgs/data/fonts/nika-fonts/default.nix b/nixpkgs/pkgs/data/fonts/nika-fonts/default.nix
new file mode 100644
index 000000000000..f497a184be01
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nika-fonts/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "nika-fonts";
+  version = "1.0.0";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "font-store";
+  repo = "NikaFont";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/nika-fonts {} \;
+  '';
+  sha256 = "1x34b2dqn1dymi1vmj5vrjcy2z8s0f3rr6cniyrz85plvid6x40i";
+
+  meta = with lib; {
+    homepage = "https://github.com/font-store/NikaFont/";
+    description = "Persian/Arabic Open Source Font";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/norwester/default.nix b/nixpkgs/pkgs/data/fonts/norwester/default.nix
new file mode 100644
index 000000000000..d4e4cf1ee0fe
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/norwester/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.2";
+  pname = "norwester";
+in fetchzip {
+  name = "${pname}-${version}";
+
+  url = "http://jamiewilson.io/norwester/assets/norwester.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype
+    unzip -D -j $downloadedFile ${pname}-v${version}/${pname}.otf -d $out/share/fonts/opentype/
+  '';
+
+  sha256 = "1npsaiiz9g5z6315lnmynwcnrfl37fyxc7w1mhkw1xbzcnv74z4r";
+
+  meta = with lib; {
+    homepage = "http://jamiewilson.io/norwester";
+    description = "A condensed geometric sans serif by Jamie Wilson";
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix b/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
new file mode 100644
index 000000000000..9c9996db39e0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
@@ -0,0 +1,215 @@
+{ stdenv
+, stdenvNoCC
+, lib
+, fetchFromGitHub
+, fetchurl
+, cairo
+, nixosTests
+, python3
+, pkg-config
+, pngquant
+, which
+, imagemagick
+, zopfli
+}:
+
+let
+  mkNoto = { pname, weights }:
+    stdenvNoCC.mkDerivation {
+      inherit pname;
+      version = "2020-01-23";
+
+      src = fetchFromGitHub {
+        owner = "googlefonts";
+        repo = "noto-fonts";
+        rev = "f4726a2ec36169abd02a6d8abe67c8ff0236f6d8";
+        sha256 = "0zc1r7zph62qmvzxqfflsprazjf6x1qnwc2ma27kyzh6v36gaykw";
+      };
+
+      installPhase = ''
+        # We copy in reverse preference order -- unhinted first, then
+        # hinted -- to get the "best" version of each font while
+        # maintaining maximum coverage.
+        #
+        # TODO: install OpenType, variable versions?
+        local out_ttf=$out/share/fonts/truetype/noto
+        install -m444 -Dt $out_ttf phaseIII_only/unhinted/ttf/*/*-${weights}.ttf
+        install -m444 -Dt $out_ttf phaseIII_only/hinted/ttf/*/*-${weights}.ttf
+        install -m444 -Dt $out_ttf unhinted/*/*-${weights}.ttf
+        install -m444 -Dt $out_ttf hinted/*/*-${weights}.ttf
+      '';
+
+      meta = with lib; {
+        description = "Beautiful and free fonts for many languages";
+        homepage = "https://www.google.com/get/noto/";
+        longDescription =
+        ''
+          When text is rendered by a computer, sometimes characters are
+          displayed as “tofu”. They are little boxes to indicate your device
+          doesn’t have a font to display the text.
+
+          Google has been developing a font family called Noto, which aims to
+          support all languages with a harmonious look and feel. Noto is
+          Google’s answer to tofu. The name noto is to convey the idea that
+          Google’s goal is to see “no more tofu”.  Noto has multiple styles and
+          weights, and freely available to all.
+
+          This package also includes the Arimo, Cousine, and Tinos fonts.
+        '';
+        license = licenses.ofl;
+        platforms = platforms.all;
+        maintainers = with maintainers; [ mathnerd314 emily ];
+      };
+    };
+
+  mkNotoCJK = { typeface, version, rev, sha256 }:
+    stdenvNoCC.mkDerivation {
+      pname = "noto-fonts-cjk-${lib.toLower typeface}";
+      inherit version;
+
+      src = fetchFromGitHub {
+        owner = "googlefonts";
+        repo = "noto-cjk";
+        inherit rev sha256;
+        sparseCheckout = "${typeface}/OTC";
+      };
+
+      installPhase = ''
+        install -m444 -Dt $out/share/fonts/opentype/noto-cjk ${typeface}/OTC/*.ttc
+      '';
+
+      passthru.tests.noto-fonts = nixosTests.noto-fonts;
+
+      meta = with lib; {
+        description = "Beautiful and free fonts for CJK languages";
+        homepage = "https://www.google.com/get/noto/help/cjk/";
+        longDescription = ''
+          Noto ${typeface} CJK is a ${lib.toLower typeface} typeface designed as
+          an intermediate style between the modern and traditional. It is
+          intended to be a multi-purpose digital font for user interface
+          designs, digital content, reading on laptops, mobile devices, and
+          electronic books. Noto ${typeface} CJK comprehensively covers
+          Simplified Chinese, Traditional Chinese, Japanese, and Korean in a
+          unified font family. It supports regional variants of ideographic
+          characters for each of the four languages. In addition, it supports
+          Japanese kana, vertical forms, and variant characters (itaiji); it
+          supports Korean hangeul — both contemporary and archaic.
+        '';
+        license = licenses.ofl;
+        platforms = platforms.all;
+        maintainers = with maintainers; [ mathnerd314 emily ];
+      };
+    };
+in
+
+{
+  noto-fonts = mkNoto {
+    pname = "noto-fonts";
+    weights = "{Regular,Bold,Light,Italic,BoldItalic,LightItalic}";
+  };
+
+  noto-fonts-extra = mkNoto {
+    pname = "noto-fonts-extra";
+    weights = "{Black,Condensed,Extra,Medium,Semi,Thin}*";
+  };
+
+  noto-fonts-cjk-sans = mkNotoCJK {
+    typeface = "Sans";
+    version = "2.004";
+    rev = "9f7f3c38eab63e1d1fddd8d50937fe4f1eacdb1d";
+    sha256 = "sha256-pNC/WJCYHSlU28E/CSFsrEMbyCe/6tjevDlOvDK9RwU=";
+  };
+
+  noto-fonts-cjk-serif = mkNotoCJK {
+    typeface = "Serif";
+    version = "2.000";
+    rev = "9f7f3c38eab63e1d1fddd8d50937fe4f1eacdb1d";
+    sha256 = "sha256-Iy4lmWj5l+/Us/dJJ/Jl4MEojE9mrFnhNQxX2zhVngY=";
+  };
+
+  noto-fonts-emoji = let
+    version = "2.034";
+    emojiPythonEnv =
+      python3.withPackages (p: with p; [ fonttools nototools ]);
+  in stdenv.mkDerivation {
+    pname = "noto-fonts-emoji";
+    inherit version;
+
+    src = fetchFromGitHub {
+      owner = "googlefonts";
+      repo = "noto-emoji";
+      rev = "v${version}";
+      sha256 = "1d6zzk0ii43iqfnjbldwp8sasyx99lbjp1nfgqjla7ixld6yp98l";
+    };
+
+    nativeBuildInputs = [
+      cairo
+      imagemagick
+      zopfli
+      pngquant
+      which
+      pkg-config
+      emojiPythonEnv
+    ];
+
+    postPatch = ''
+      patchShebangs *.py
+      patchShebangs third_party/color_emoji/*.py
+      # remove check for virtualenv, since we handle
+      # python requirements using python.withPackages
+      sed -i '/ifndef VIRTUAL_ENV/,+2d' Makefile
+
+      # Remove check for missing zopfli, it doesn't
+      # work and we guarantee its presence already.
+      sed -i '/ifdef MISSING_ZOPFLI/,+2d' Makefile
+      sed -i '/ifeq (,$(shell which $(ZOPFLIPNG)))/,+4d' Makefile
+
+      sed -i '/ZOPFLIPNG = zopflipng/d' Makefile
+      echo "ZOPFLIPNG = ${zopfli}/bin/zopflipng" >> Makefile
+
+      # Make the build verbose so it won't get culled by Hydra thinking that
+      # it somehow got stuck doing nothing.
+      sed -i 's;\t@;\t;' Makefile
+    '';
+
+    enableParallelBuilding = true;
+
+    installPhase = ''
+      mkdir -p $out/share/fonts/noto
+      cp NotoColorEmoji.ttf fonts/NotoEmoji-Regular.ttf $out/share/fonts/noto
+    '';
+
+    meta = with lib; {
+      description = "Color and Black-and-White emoji fonts";
+      homepage = "https://github.com/googlefonts/noto-emoji";
+      license = with licenses; [ ofl asl20 ];
+      platforms = platforms.all;
+      maintainers = with maintainers; [ mathnerd314 sternenseemann ];
+    };
+  };
+
+  noto-fonts-emoji-blob-bin =
+    let
+      pname = "noto-fonts-emoji-blob-bin";
+      version = "14.0.1";
+    in
+    fetchurl {
+      name = "${pname}-${version}";
+      url = "https://github.com/C1710/blobmoji/releases/download/v${version}/Blobmoji.ttf";
+      sha256 = "sha256-wSH9kRJ8y2i5ZDqzeT96dJcEJnHDSpU8bOhmxaT+UCg=";
+
+      downloadToTemp = true;
+      recursiveHash = true;
+      postFetch = ''
+        install -Dm 444 $downloadedFile $out/share/fonts/blobmoji/Blobmoji.ttf
+      '';
+
+      meta = with lib; {
+        description = "Noto Emoji with extended Blob support";
+        homepage = "https://github.com/C1710/blobmoji";
+        license = with licenses; [ ofl asl20 ];
+        platforms = platforms.all;
+        maintainers = with maintainers; [ rileyinman jk ];
+      };
+    };
+}
diff --git a/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix b/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix
new file mode 100644
index 000000000000..7d850ef71667
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix
@@ -0,0 +1,78 @@
+{ fetchFromGitHub, lib, buildPythonPackage, pythonOlder
+, afdko, appdirs, attrs, black, booleanoperations, brotlipy, click
+, defcon, fontmath, fontparts, fontpens, fonttools, lxml
+, mutatormath, pathspec, psautohint, pyclipper, pytz, regex, scour
+, toml, typed-ast, ufonormalizer, ufoprocessor, unicodedata2, zopfli
+, pillow, six, bash, setuptools-scm }:
+
+buildPythonPackage rec {
+  pname = "nototools";
+  version = "0.2.16";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "googlefonts";
+    repo = "nototools";
+    rev = "v${version}";
+    sha256 = "14rrdamkmhrykff8ln07fq9cm8zwj3k113lzwjcy0lgz23g51jyl";
+  };
+
+  postPatch = ''
+    sed -i 's/use_scm_version=.*,/version="${version}",/' setup.py
+  '';
+
+  nativeBuildInputs = [ setuptools-scm ];
+
+  propagatedBuildInputs = [
+    afdko
+    appdirs
+    attrs
+    black
+    booleanoperations
+    brotlipy
+    click
+    defcon
+    fontmath
+    fontparts
+    fontpens
+    fonttools
+    lxml
+    mutatormath
+    pathspec
+    psautohint
+    pyclipper
+    pytz
+    regex
+    scour
+    toml
+    typed-ast
+    ufonormalizer
+    ufoprocessor
+    unicodedata2
+    zopfli
+  ];
+
+  checkInputs = [
+    pillow
+    six
+    bash
+  ];
+
+  checkPhase = ''
+    patchShebangs tests/
+    cd tests
+    rm gpos_diff_test.py # needs ttxn?
+    ./run_tests
+  '';
+
+  postInstall = ''
+    cp -r third_party $out
+  '';
+
+  meta = {
+    description = "Noto fonts support tools and scripts plus web site generation";
+    license = lib.licenses.asl20;
+    homepage = "https://github.com/googlefonts/nototools";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/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..0513baf48680
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/office-code-pro/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "office-code-pro";
+  version = "1.004";
+in fetchFromGitHub rec {
+  name = "${pname}-${version}";
+
+  owner = "nathco";
+  repo = "Office-Code-Pro";
+  rev = version;
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -m644 -Dt $out/share/doc/${name} README.md
+    install -m444 -Dt $out/share/fonts/opentype 'Fonts/Office Code Pro/OTF/'*.otf 'Fonts/Office Code Pro D/OTF/'*.otf
+  '';
+  sha256 = "1bagwcaicn6q8qkqazz6wb3x30y4apmkga0mkv8fh6890hfhywr9";
+
+  meta = with lib; {
+    description = "A customized version of Source Code Pro";
+    longDescription = ''
+      Office Code Pro is a customized version of Source Code Pro, the monospaced
+      sans serif originally created by Paul D. Hunt for Adobe Systems
+      Incorporated. The customizations were made specifically for text editors
+      and coding environments, but are still very usable in other applications.
+    '';
+    homepage = "https://github.com/nathco/Office-Code-Pro";
+    license = licenses.ofl;
+    maintainers = [ maintainers.AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/oldsindhi/default.nix b/nixpkgs/pkgs/data/fonts/oldsindhi/default.nix
new file mode 100644
index 000000000000..e0e783fd80a5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/oldsindhi/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.0";
+in fetchzip rec {
+  name = "oldsindhi-${version}";
+
+  url = "https://github.com/MihailJP/oldsindhi/releases/download/v${version}/OldSindhi-${version}.tar.xz";
+
+  postFetch = ''
+    tar -xJf $downloadedFile --strip-components=1
+    install -m444 -Dt $out/share/fonts/truetype *.ttf
+    install -m444 -Dt $out/share/doc/${name} README *.txt
+  '';
+
+  sha256 = "03c483vbrwz2fpdfbys42fmik9788zxfmjmc4fgq4s2d0mraa0j1";
+
+  meta = with lib; {
+    homepage = "https://github.com/MihailJP/oldsindhi";
+    description = "Free Sindhi Khudabadi font";
+    maintainers = with maintainers; [ mathnerd314 ];
+    license = with licenses; [mit ofl];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/oldstandard/default.nix b/nixpkgs/pkgs/data/fonts/oldstandard/default.nix
new file mode 100644
index 000000000000..ddff3666b0b4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/oldstandard/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "2.2";
+in fetchzip rec {
+  name = "oldstandard-${version}";
+
+  url = "https://github.com/akryukov/oldstand/releases/download/v${version}/${name}.otf.zip";
+
+  postFetch = ''
+    unzip $downloadedFile
+    install -m444 -Dt $out/share/fonts/opentype *.otf
+    install -m444 -Dt $out/share/doc/${name}    FONTLOG.txt
+  '';
+
+  sha256 = "1qwfsyp51grr56jcnkkmnrnl3r20pmhp9zh9g88kp64m026cah6n";
+
+  meta = with lib; {
+    homepage = "https://github.com/akryukov/oldstand";
+    description = "An attempt to revive a specific type of Modern style of serif typefaces";
+    maintainers = with maintainers; [ raskin ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/open-dyslexic/default.nix b/nixpkgs/pkgs/data/fonts/open-dyslexic/default.nix
new file mode 100644
index 000000000000..f22ce9f882f8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/open-dyslexic/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "2016-06-23";
+in fetchzip {
+  name = "open-dyslexic-${version}";
+
+  url = "https://github.com/antijingoist/open-dyslexic/archive/20160623-Stable.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.otf       -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*/README.md -d $out/share/doc/open-dyslexic
+  '';
+
+  sha256 = "1vl8z5rknh2hpr2f0v4b2qgs5kclx5pzyk8al7243k5db82a2cyi";
+
+  meta = with lib; {
+    homepage = "https://opendyslexic.org/";
+    description = "Font created to increase readability for readers with dyslexia";
+    license = "Bitstream Vera License (https://www.gnome.org/fonts/#Final_Bitstream_Vera_Fonts)";
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/open-fonts/default.nix b/nixpkgs/pkgs/data/fonts/open-fonts/default.nix
new file mode 100644
index 000000000000..e503b1143033
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/open-fonts/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchurl }:
+
+let
+  pname = "open-fonts";
+  version = "0.7.0";
+in
+fetchurl {
+  name = "${pname}-${version}";
+
+  url = "https://github.com/kiwi0fruit/open-fonts/releases/download/${version}/open-fonts.tar.xz";
+  downloadToTemp = true;
+  recursiveHash = true;
+  sha256 = "sha256-bSP9Flotoo3E5vRU3eKOUAPD2fmkWseWYWG4y0S07+4=";
+
+  postFetch = ''
+    tar xf $downloadedFile
+    mkdir -p $out/share/fonts/truetype
+    install open-fonts/*.ttf $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    description = "A collection of beautiful free and open source fonts";
+    homepage = "https://github.com/kiwi0fruit/open-fonts";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
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..0c7f8dce57a3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/open-sans/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchFromGitLab }:
+
+let
+  pname = "open-sans";
+  version = "1.11";
+in fetchFromGitLab {
+  name = "${pname}-${version}";
+
+  domain = "salsa.debian.org";
+  owner = "fonts-team";
+  repo = "fonts-open-sans";
+  rev = "debian/1.11-1";
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+  '';
+  sha256 = "146ginwx18z624z582lrnhil8jvi9bjg6843265bgxxrfmf75vhp";
+
+  meta = with lib; {
+    description = "Open Sans fonts";
+    longDescription = ''
+      Open Sans is a humanist sans serif typeface designed by Steve Matteson,
+      Type Director of Ascender Corp.
+    '';
+    homepage = "https://www.opensans.com";
+    license = licenses.asl20;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ] ++ teams.pantheon.members;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/openmoji/default.nix b/nixpkgs/pkgs/data/fonts/openmoji/default.nix
new file mode 100644
index 000000000000..d511a78f7250
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/openmoji/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, scfbuild
+, nodejs
+, nodePackages
+, python3Packages
+, variant ? "color" # "color" or "black"
+}:
+
+let
+  filename = builtins.replaceStrings
+    [ "color"              "black"              ]
+    [ "OpenMoji-Color.ttf" "OpenMoji-Black.ttf" ]
+    variant;
+
+in stdenv.mkDerivation rec {
+  pname = "openmoji";
+  version = "13.1.0";
+
+  src = fetchFromGitHub {
+    owner = "hfg-gmuend";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-7G6a+LFq79njyPhnDhhSJ98Smw5fWlfcsFj6nWBPsSk=";
+  };
+
+  nativeBuildInputs = [
+    scfbuild
+    nodejs
+    nodePackages.glob
+    nodePackages.lodash
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    node helpers/generate-font-glyphs.js
+
+    cd font
+    scfbuild -c scfbuild-${variant}.yml
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    install -Dm644 ${filename} $out/share/fonts/truetype/${filename}
+  '';
+
+  meta = with lib; {
+    license = licenses.cc-by-sa-40;
+    maintainers = with maintainers; [ 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..f4a0a9600a15
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/orbitron/default.nix
@@ -0,0 +1,45 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "20110526";
+in fetchFromGitHub {
+  name = "orbitron-${version}";
+
+  owner = "theleagueof";
+  repo = "orbitron";
+  rev = "13e6a52";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -m444 -Dt $out/share/fonts/opentype/orbitron *.otf
+    install -m444 -Dt $out/share/fonts/ttf/orbitron      *.ttf
+  '';
+
+  sha256 = "1y9yzvpqs2v3ssnqk2iiglrh8amgsscnk8vmfgnqgqi9f4dhdvnv";
+
+  meta = with lib; {
+    homepage = "https://www.theleagueofmoveabletype.com/orbitron";
+    downloadPage = "https://www.theleagueofmoveabletype.com/orbitron/download";
+    description = "Geometric sans-serif for display purposes by Matt McInerney";
+    longDescription = ''
+     Orbitron is a geometric sans-serif typeface intended for display
+     purposes. It features four weights (light, medium, bold, and
+     black), a stylistic alternative, small caps, and a ton of
+     alternate glyphs.
+
+     Orbitron was designed so that graphic designers in the future
+     will have some alternative to typefaces like Eurostile or Bank
+     Gothic. If you’ve ever seen a futuristic sci-fi movie, you have
+     may noticed that all other fonts have been lost or destroyed in
+     the apocalypse that led humans to flee earth. Only those very few
+     geometric typefaces have survived to be used on spaceship
+     exteriors, space station signage, monopolistic corporate
+     branding, uniforms featuring aerodynamic shoulder pads, etc. Of
+     course Orbitron could also be used on the posters for the movies
+     portraying this inevitable future.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.leenaars ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/overpass/default.nix b/nixpkgs/pkgs/data/fonts/overpass/default.nix
new file mode 100644
index 000000000000..120098fd67f0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/overpass/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchzip }:
+
+let
+  version = "3.0.5";
+in fetchzip rec {
+  name = "overpass-${version}";
+
+  url = "https://github.com/RedHatOfficial/Overpass/releases/download/v${version}/overpass-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts $out/share/doc
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.md  -d $out/share/doc/${name}
+  '';
+
+  sha256 = "1fpyhd6x3i3g0xxjmyfnjsri1kkvci15fv7jp1bnza7k0hz0bnha";
+
+  meta = with lib; {
+    homepage = "https://overpassfont.org/";
+    description = "Font heavily inspired by Highway Gothic";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.rycee ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/oxygenfonts/default.nix b/nixpkgs/pkgs/data/fonts/oxygenfonts/default.nix
new file mode 100644
index 000000000000..e34e49d98147
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/oxygenfonts/default.nix
@@ -0,0 +1,48 @@
+{ lib, fetchFromGitHub }:
+
+fetchFromGitHub {
+  name = "oxygenfonts-20160824";
+
+  owner = "vernnobile";
+  repo = "oxygenFont";
+  rev = "62db0ebe3488c936406685485071a54e3d18473b";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    mkdir -p $out/share/fonts/truetype
+    cp */Oxygen-Sans.ttf */Oxygen-Sans-Bold.ttf */OxygenMono-Regular.ttf $out/share/fonts/truetype
+  '';
+
+  sha256 = "17m86p1s7a7d90zqjsr46h5bpmas4vxsgj7kd0j5c8cb7lw92jyf";
+
+  meta = with lib; {
+    description = "Desktop/gui font for integrated use with the KDE desktop";
+    longDescription = ''
+      Oxygen Font is a font family originally aimed as a desktop/gui
+      font for integrated use with the KDE desktop.
+
+      The basic concept for Oxygen Font was to design a clear,
+      legible, sans serif, that would be rendered with Freetype on
+      Linux-based devices. In addition a bold weight, plus regular and
+      bold italics, and a monospace version will be made.
+
+      Oxygen is constructed closely with the gridfitting aspects of
+      the Freetype font rendering engine. The oxygen fonts are also
+      autohinted with Werner Lemberg's "ttfautohint" library to
+      further the compatibility with the Freetype engine. The aim of
+      this approach is to produce a family of freetype-specific
+      desktop fonts whose appearance will stay uniform under different
+      screen render settings, unlike more traditionally designed
+      'screen fonts' that have tended to be designed for best
+      legibility on the Windows GDI render engine.
+
+      The main creator of Oxygen, Vernon Adams, suffered a heavy
+      traffic accident three months after its last release, causing him severe brain
+      injury. He finally passed away, sans oxygen, on August 25th 2016.
+      See: http://sansoxygen.com/
+    '';
+
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/parastoo-fonts/default.nix b/nixpkgs/pkgs/data/fonts/parastoo-fonts/default.nix
new file mode 100644
index 000000000000..93ff513c894a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/parastoo-fonts/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "parastoo-fonts";
+  version = "1.0.0-alpha5";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "rastikerdar";
+  repo = "parastoo-font";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/parastoo-fonts {} \;
+  '';
+  sha256 = "10jbii6rskcy4akjl5yfcqv4mfwk3nqnx36l6sbxks43va9l04f4";
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/parastoo-font";
+    description = "A Persian (Farsi) Font - فونت ( قلم ) فارسی پرستو";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix b/nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix
new file mode 100644
index 000000000000..4dd6093922cc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix
@@ -0,0 +1,32 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "paratype-pt-mono";
+
+  urls = [
+    "https://company.paratype.com/system/attachments/631/original/ptmono.zip"
+    "http://rus.paratype.ru/system/attachments/631/original/ptmono.zip"
+  ];
+
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.txt -d $out/share/doc/paratype
+  '';
+
+  sha256 = "07kl82ngby55khvzsvn831ddpc0q8djgz2y6gsjixkyjfdk2xjjm";
+
+  meta = with lib; {
+    homepage = "http://www.paratype.ru/public/";
+    description = "An open Paratype font";
+
+    license = "Open Paratype license";
+    # no commercial distribution of the font on its own
+    # must rename on modification
+    # http://www.paratype.ru/public/pt_openlicense.asp
+
+    platforms = platforms.all;
+    maintainers = with maintainers; [ raskin ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix b/nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix
new file mode 100644
index 000000000000..8b47dd9ee1fb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix
@@ -0,0 +1,32 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "paratype-pt-sans";
+
+  urls = [
+    "https://company.paratype.com/system/attachments/629/original/ptsans.zip"
+    "http://rus.paratype.ru/system/attachments/629/original/ptsans.zip"
+  ];
+
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.txt -d $out/share/doc/paratype
+  '';
+
+  sha256 = "01fkd417gv98jf3a6zyfi9w2dkqsbddy1vacga2672yf0kh1z1r0";
+
+  meta = with lib; {
+    homepage = "http://www.paratype.ru/public/";
+    description = "An open Paratype font";
+
+    license = "Open Paratype license";
+    # no commercial distribution of the font on its own
+    # must rename on modification
+    # http://www.paratype.ru/public/pt_openlicense.asp
+
+    platforms = platforms.all;
+    maintainers = with maintainers; [ raskin ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix b/nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix
new file mode 100644
index 000000000000..a4142f757fcc
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix
@@ -0,0 +1,32 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "paratype-pt-serif";
+
+  urls = [
+    "https://company.paratype.com/system/attachments/634/original/ptserif.zip"
+    "http://rus.paratype.ru/system/attachments/634/original/ptserif.zip"
+  ];
+
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.txt -d $out/share/doc/paratype
+  '';
+
+  sha256 = "1iw5qi4ag3yp1lwmi91lb18gr768bqwl46xskaqnkhr9i9qp0v6d";
+
+  meta = with lib; {
+    homepage = "http://www.paratype.ru/public/";
+    description = "An open Paratype font";
+
+    license = "Open Paratype license";
+    # no commercial distribution of the font on its own
+    # must rename on modification
+    # http://www.paratype.ru/public/pt_openlicense.asp
+
+    platforms = platforms.all;
+    maintainers = with maintainers; [ raskin ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/pecita/default.nix b/nixpkgs/pkgs/data/fonts/pecita/default.nix
new file mode 100644
index 000000000000..f0bdbc3ea004
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/pecita/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchurl }:
+
+let
+  version = "5.4";
+in
+
+fetchurl {
+  name = "pecita-${version}";
+
+  url = "http://pecita.eu/b/Pecita.otf";
+
+  downloadToTemp = true;
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype
+    cp -v $downloadedFile $out/share/fonts/opentype/Pecita.otf
+  '';
+
+  recursiveHash = true;
+  sha256 = "0pwm20f38lcbfkdqkpa2ydpc9kvmdg0ifc4h2dmipsnwbcb5rfwm";
+
+  meta = with lib; {
+    homepage = "http://pecita.eu/police-en.php";
+    description = "Handwritten font with connected glyphs";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/penna/default.nix b/nixpkgs/pkgs/data/fonts/penna/default.nix
new file mode 100644
index 000000000000..784f9d2573ef
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/penna/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "10";
+  pname = "penna";
+in
+
+fetchzip {
+  name = "${pname}-font-${majorVersion}.${minorVersion}";
+
+  url = "http://dotcolon.net/DL/font/${pname}.zip";
+  sha256 = "0hk15yndm56l6rbdykpkry2flffx0567mgjcqcnsx1iyzwwla5km";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype/${pname}
+    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${pname}/";
+    description = "Geometric sans serif designed by Sora Sagano";
+    longDescription = ''
+     Penna is a geometric sans serif designed by Sora Sagano,
+     with outsized counters in the uppercase and a lowercase
+     with a small x-height.
+    '';
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.cc0;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/poly/default.nix b/nixpkgs/pkgs/data/fonts/poly/default.nix
new file mode 100644
index 000000000000..50dfb5020354
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/poly/default.nix
@@ -0,0 +1,50 @@
+{ lib, stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+  name = "poly";
+
+  regular = fetchurl {
+    # Finally a mirror that has a sha256 that doesn't change.
+    url = "https://googlefontdirectory.googlecode.com/hg-history/d7441308e589c9fa577f920fc4152fa32477a267/poly/src/Poly-Regular.otf";
+    sha256 = "1mxp2lvki6b1h7r9xcj1ld0g4z5y3dmsal85xam4yr764zpjzaiw";
+  };
+
+  italic = fetchurl {
+    # Finally a mirror that has a sha256 that doesn't change.
+    url = "https://googlefontdirectory.googlecode.com/hg-history/d7441308e589c9fa577f920fc4152fa32477a267/poly/src/Poly-Italic.otf";
+    sha256 = "1chzcy3kyi7wpr4iq4aj1v24fq1wwph1v5z96dimlqcrnvm66h2l";
+  };
+
+  nativeBuildInputs = [unzip];
+
+  sourceRoot = ".";
+
+  dontUnpack = true;
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/opentype
+    cp ${regular} $out/share/fonts/opentype/Poly-Regular.otf
+    cp ${italic} $out/share/fonts/opentype/Poly-Italic.otf
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "11d7ldryfxi0wzfrg1bhw23a668a44vdb8gggxryvahmp5ahmq2h";
+
+  meta = {
+    description = "Medium contrast serif font";
+    longDescription = ''
+      With short ascenders and a very high x-height, Poly is efficient in small
+      sizes. Thanks to its careful balance between the x-height and glyph widths,
+      it allows more economy and legibility than standard web serifs, even in
+      small sizes. The aglutinative language for which it was designed contains
+      very long words. The goal was to develop a typeface that would tolerate
+      cramped tracking and that would increase the number of letters on a single
+      line. Poly is a Unicode typeface family that supports Open Type features
+      and languages that use the Latin script and its variants.
+    '';
+    homepage = "http://www.fontsquirrel.com/fonts/poly";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ relrod ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/powerline-fonts/default.nix b/nixpkgs/pkgs/data/fonts/powerline-fonts/default.nix
new file mode 100644
index 000000000000..3a2ae92c1e5a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/powerline-fonts/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchFromGitHub }:
+
+fetchFromGitHub {
+  name = "powerline-fonts-2018-11-11";
+
+  owner = "powerline";
+  repo = "fonts";
+  rev = "e80e3eba9091dac0655a0a77472e10f53e754bb0";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.otf'    -exec install -Dt $out/share/fonts/opentype {} \;
+    find . -name '*.ttf'    -exec install -Dt $out/share/fonts/truetype {} \;
+    find . -name '*.bdf'    -exec install -Dt $out/share/fonts/bdf      {} \;
+    find . -name '*.pcf.gz' -exec install -Dt $out/share/fonts/pcf      {} \;
+    find . -name '*.psf.gz' -exec install -Dt $out/share/consolefonts   {} \;
+  '';
+
+  sha256 = "0r8p4z3db17f5p8jr7sv80nglmjxhg83ncfvwg1dszldswr0dhvr";
+
+  meta = with lib; {
+    homepage = "https://github.com/powerline/fonts";
+    description = "Patched fonts for Powerline users";
+    longDescription = ''
+      Pre-patched and adjusted fonts for usage with the Powerline plugin.
+    '';
+    license = with licenses; [ asl20 free ofl ];
+    platforms = platforms.all;
+    maintainers = with maintainers; [ malyn ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/powerline-symbols/default.nix b/nixpkgs/pkgs/data/fonts/powerline-symbols/default.nix
new file mode 100644
index 000000000000..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/profont/default.nix b/nixpkgs/pkgs/data/fonts/profont/default.nix
new file mode 100644
index 000000000000..3570bf7bf91a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/profont/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv, fetchzip, mkfontscale }:
+
+stdenv.mkDerivation {
+  pname = "profont";
+  version = "2019-11";
+
+  # Note: stripRoot doesn't work because the archive
+  # constains the metadata directory `__MACOSX`.
+  src = fetchzip {
+    url = "https://tobiasjung.name/downloadfile.php?file=profont-x11.zip";
+    sha256 = "12dbm87wvcpmn7nzgzwlk45cybp091diara8blqm6129ps27z6kb";
+    stripRoot = false;
+  } + /profont-x11;
+
+  srcOtb = fetchzip {
+    url = "https://tobiasjung.name/downloadfile.php?file=profont-otb.zip";
+    sha256 = "18rfhfqrsj3510by0w1a7ak5as6r2cxh8xv02xc1y30mfa6g24x6";
+    stripRoot = false;
+  } + /profont-otb;
+
+  dontBuild = true;
+
+  nativeBuildInputs = [ mkfontscale ];
+
+  installPhase = ''
+    mkdir -p "$out/share/fonts/misc"
+    for f in *.pcf; do
+      gzip -n -9 -c "$f" > "$out/share/fonts/misc/$f.gz"
+    done
+    install -D -m 644 LICENSE -t "$out/share/doc/$pname"
+    install -D -m 644 "$srcOtb/profontn.otb" -t $out/share/fonts/misc
+    mkfontdir "$out/share/fonts/misc"
+  '';
+
+  meta = with lib; {
+    homepage = "https://tobiasjung.name/profont/";
+    description = "A monospaced font created to be a most readable font for programming";
+    maintainers = with maintainers; [ myrl ];
+    license = licenses.mit;
+    platforms = platforms.all;
+  };
+
+}
diff --git a/nixpkgs/pkgs/data/fonts/proggyfonts/default.nix b/nixpkgs/pkgs/data/fonts/proggyfonts/default.nix
new file mode 100644
index 000000000000..81ecb7354095
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/proggyfonts/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchurl, mkfontscale }:
+
+stdenv.mkDerivation {
+  name = "proggyfonts-0.1";
+
+  src = fetchurl {
+    url = "https://web.archive.org/web/20150801042353/http://kaictl.net/software/proggyfonts-0.1.tar.gz";
+    sha256 = "1plcm1sjpa3hdqhhin48fq6zmz3ndm4md72916hd8ff0w6596q0n";
+  };
+
+  nativeBuildInputs = [ mkfontscale ];
+
+  installPhase =
+    ''
+      # compress pcf fonts
+      mkdir -p $out/share/fonts/misc
+      rm Speedy.pcf # duplicated as Speedy11.pcf
+      for f in *.pcf; do
+        gzip -n -9 -c "$f" > $out/share/fonts/misc/"$f".gz
+      done
+
+      install -D -m 644 *.bdf -t "$out/share/fonts/misc"
+      install -D -m 644 *.ttf -t "$out/share/fonts/truetype"
+      install -D -m 644 Licence.txt -t "$out/share/doc/$name"
+
+      mkfontscale "$out/share/fonts/truetype"
+      mkfontdir   "$out/share/fonts/misc"
+    '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1x196rp3wqjd7m57bgp5kfy5jmj97qncxi1vwibs925ji7dqzfgf";
+
+  meta = with lib; {
+    homepage = "http://upperbounds.net";
+    description = "A set of fixed-width screen fonts that are designed for code listings";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = [ maintainers.myrl ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/public-sans/default.nix b/nixpkgs/pkgs/data/fonts/public-sans/default.nix
new file mode 100644
index 000000000000..88da0cb5d558
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/public-sans/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "2.000";
+in fetchzip {
+  name = "public-sans-${version}";
+
+  url = "https://github.com/uswds/public-sans/releases/download/v${version}/public-sans-v${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  sha256 = "0r34h9mim5c3h48cpq2m2ixkdqhv3i594pip10pavkmskldpbha5";
+
+  meta = with lib; {
+    description = "A strong, neutral, principles-driven, open source typeface for text or display";
+    homepage = "https://public-sans.digital.gov/";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ dtzWill ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/quattrocento-sans/default.nix b/nixpkgs/pkgs/data/fonts/quattrocento-sans/default.nix
new file mode 100644
index 000000000000..0d62a866e0f0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/quattrocento-sans/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "2.0";
+in fetchzip rec {
+  name = "quattrocento-sans-${version}";
+
+  url = "https://web.archive.org/web/20170709124317/http://www.impallari.com/media/releases/quattrocento-sans-v${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/{fonts,doc}
+    unzip -j $downloadedFile '*/QuattrocentoSans*.otf' -d $out/share/fonts/opentype
+    unzip -j $downloadedFile '*/FONTLOG.txt'           -d $out/share/doc/${name}
+  '';
+
+  sha256 = "0g8hnn92ks4y0jbizwj7yfa097lk887wqkqpqjdmc09sd2n44343";
+
+  meta = with lib; {
+    homepage = "http://www.impallari.com/quattrocentosans/";
+    description = "A classic, elegant and sober sans-serif typeface";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/quattrocento/default.nix b/nixpkgs/pkgs/data/fonts/quattrocento/default.nix
new file mode 100644
index 000000000000..aa23175a04d4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/quattrocento/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.1";
+in fetchzip rec {
+  name = "quattrocento-${version}";
+
+  url = "https://web.archive.org/web/20170707001804/http://www.impallari.com/media/releases/quattrocento-v${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/{fonts,doc}
+    unzip -j $downloadedFile \*.otf        -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*FONTLOG.txt -d $out/share/doc/${name}
+  '';
+
+  sha256 = "0f8l19y61y20sszn8ni8h9kgl0zy1gyzychg22z5k93ip4h7kfd0";
+
+  meta = with lib; {
+    homepage = "http://www.impallari.com/quattrocento/";
+    description = "A classic, elegant, sober and strong serif typeface";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/raleway/default.nix b/nixpkgs/pkgs/data/fonts/raleway/default.nix
new file mode 100644
index 000000000000..ddded71a6fa2
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/raleway/default.nix
@@ -0,0 +1,42 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "2016-08-30";
+in fetchFromGitHub {
+  name = "raleway-${version}";
+
+  owner = "impallari";
+  repo = "Raleway";
+  rev = "fa27f47b087fc093c6ae11cfdeb3999ac602929a";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name "*-Original.otf" -exec install -Dt $out/share/fonts/opentype {} \;
+    cp *.txt *.md -d $out
+  '';
+
+  sha256 = "16jr7drqg2wib2q48ajlsa7rh1jxjibl1wd4rjndi49vfl463j60";
+
+  meta = {
+    description = "Raleway is an elegant sans-serif typeface family";
+
+    longDescription = ''
+      Initially designed by Matt McInerney as a single thin weight, it was
+      expanded into a 9 weight family by Pablo Impallari and Rodrigo Fuenzalida
+      in 2012 and iKerned by Igino Marini. In 2013 the Italics where added.
+
+      It is a display face and the download features both old style and lining
+      numerals, standard and discretionary ligatures, a pretty complete set of
+      diacritics, as well as a stylistic alternate inspired by more geometric
+      sans-serif typefaces than its neo-grotesque inspired default character
+      set.
+
+      It also has a sister display family, Raleway Dots.
+    '';
+
+    homepage = "https://github.com/impallari/Raleway";
+    license = lib.licenses.ofl;
+
+    maintainers = with lib.maintainers; [ Profpatsch ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/recursive/default.nix b/nixpkgs/pkgs/data/fonts/recursive/default.nix
new file mode 100644
index 000000000000..142f84ba7d9e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/recursive/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.084";
+in
+fetchzip {
+  name = "recursive-${version}";
+
+  url = "https://github.com/arrowtype/recursive/releases/download/v${version}/ArrowType-Recursive-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  sha256 = "sha256-YL09RVU9pgP0/aGRKECHzd5t1VmNDPtOFcRygWqIisg=";
+
+  meta = with lib; {
+    homepage = "https://recursive.design/";
+    description = "A variable font family for code & UI";
+    license = licenses.ofl;
+    maintainers = [ maintainers.eadwu ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/redhat-official/default.nix b/nixpkgs/pkgs/data/fonts/redhat-official/default.nix
new file mode 100644
index 000000000000..37ca9db9fa0b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/redhat-official/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchFromGitHub }:
+let
+  version = "2.3.2";
+in
+fetchFromGitHub {
+  name = "redhat-official-${version}";
+
+  owner = "RedHatOfficial";
+  repo = "RedHatFont";
+  rev = version;
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -m444 -Dt $out/share/fonts/opentype OTF/*.otf
+    install -m444 -Dt $out/share/fonts/truetype TTF/*.ttf
+  '';
+
+  sha256 = "1afvxmgif61hb17g8inmxvq30vkzwh30mydlqpf0zgvaaz8qdwmv";
+
+  meta = with lib; {
+    homepage = "https://github.com/RedHatOfficial/RedHatFont";
+    description = "Red Hat's Open Source Fonts - Red Hat Display and Red Hat Text";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/rhodium-libre/default.nix b/nixpkgs/pkgs/data/fonts/rhodium-libre/default.nix
new file mode 100644
index 000000000000..fc89d6525922
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/rhodium-libre/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "RhodiumLibre";
+  version = "1.2.0";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "DunwichType";
+  repo = pname;
+  rev = version;
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -Dm444 -t $out/share/fonts/opentype/ RhodiumLibre-Regular.otf
+    install -Dm444 -t $out/share/fonts/truetype/ RhodiumLibre-Regular.ttf
+  '';
+
+  sha256 = "04ax6bri5vsji465806p8d7zbdf12r5bpvcm9nb8isfqm81ggj0r";
+
+  meta = with lib; {
+    description = "F/OSS/Libre font for Latin and Devanagari";
+    homepage = "https://github.com/DunwichType/RhodiumLibre";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ricty/default.nix b/nixpkgs/pkgs/data/fonts/ricty/default.nix
new file mode 100644
index 000000000000..6bdd331c72c4
--- /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 = "A 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..ceed83070040
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/rictydiminished-with-firacode/default.nix
@@ -0,0 +1,48 @@
+{ lib, stdenv, fetchgit, fontforge, python3 }:
+
+stdenv.mkDerivation rec {
+  pname = "rictydiminished-with-firacode";
+  version = "1.2.2";
+
+  src = fetchgit {
+    url = "https://github.com/hakatashi/RictyDiminished-with-FiraCode.git";
+    rev = version;
+    sha256 = "0khnbp1y5xrd77gfb2b19mzi3ll07im3d0rlbciwbq0cn347f25p";
+    fetchSubmodules = true;
+  };
+
+  postPatch = ''
+    # Make builds more reproducible
+    substituteInPlace apply-feature.py --replace \
+      'ricty = ttLib.TTFont(options.in_font)' \
+      'ricty = ttLib.TTFont(options.in_font, recalcTimestamp=False)'
+    substituteInPlace build.py --replace \
+      'datetime.date.today()' \
+      'datetime.date.fromtimestamp(float(os.environ["SOURCE_DATE_EPOCH"]))'
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/rictydiminished-with-firacode *.ttf
+
+    runHook postInstall
+  '';
+
+  nativeBuildInputs = [
+    (python3.withPackages (ps: [
+      ps.jinja2
+      ps.fonttools
+      ps.fontforge
+    ]))
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/hakatashi/RictyDiminished-with-FiraCode";
+    description = "The best Japanese programming font meets the awesome ligatures of Firacode";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ mt-caret ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/roboto-mono/default.nix b/nixpkgs/pkgs/data/fonts/roboto-mono/default.nix
new file mode 100644
index 000000000000..fd3372123c60
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/roboto-mono/default.nix
@@ -0,0 +1,88 @@
+{ lib, stdenv, fetchurl }:
+
+let
+  # Latest commit touching the robotomono tree
+  commit = "5338537ef835a3d9ccf8faf386399f13a30605e2";
+in
+stdenv.mkDerivation {
+  pname = "roboto-mono";
+  version = "2.002-20190125";
+
+  srcs = [
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-Regular.ttf";
+      sha256 = "1f96r4by67hzqpr4p2wkrfnpj9b7x9qrmwns0312w2l2rnp2qajx";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-Bold.ttf";
+      sha256 = "10wg4dchdq4s89r9pd4h8y5l1bf8mix32pksph2wafyr3815kfnm";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-Italic.ttf";
+      sha256 = "1cayhm3wj36q748xd0zdgrhm4pz7wnrskrlf7khxx2s41m3win5b";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-BoldItalic.ttf";
+      sha256 = "04238dxizdlhnnnyzhnqckxf8ciwlnwyzxby6qgpyg232abx0n2z";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-Medium.ttf";
+      sha256 = "00rh49d0dbycbkjgd2883w7iqzd6hcry08ycjipsvk091p5nq6qy";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-MediumItalic.ttf";
+      sha256 = "0fxl6lblj7anhqmhplnpvjwckjh4g8m6r9jykxdrvpl5hk8mr65b";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-Light.ttf";
+      sha256 = "1h8rbc2p70fabkplsafzah1wcwy92qc1wzkmc1cnb4yq28gxah4a";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-LightItalic.ttf";
+      sha256 = "08y2qngwy61mc22f8i00gshgmcf7hwmfxh1f4j824svy4n16zhsc";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-Thin.ttf";
+      sha256 = "0fmij9zlfjiyf0vb8n8gvrwi35l830zpmkbhcy1xgx0m8za6mmmy";
+    })
+    (fetchurl {
+      url = "https://raw.githubusercontent.com/google/fonts/${commit}/apache/robotomono/RobotoMono-ThinItalic.ttf";
+      sha256 = "0mpwdhjnsk8311nw8fqzy1b7v0wzb4pw639ply1j38a0vibrsmn7";
+    })
+  ];
+
+  sourceRoot = "./";
+
+  unpackCmd = ''
+    ttfName=$(basename $(stripHash $curSrc))
+    cp $curSrc ./$ttfName
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp -a *.ttf $out/share/fonts/truetype/
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "0fkx2z97k29n1392bf76iwdyz44yp86hmqah7ai6bikzlia38qa0";
+
+  meta = with lib; {
+    homepage = "https://www.google.com/fonts/specimen/Roboto+Mono";
+    description = "Google Roboto Mono fonts";
+    longDescription = ''
+      Roboto Mono is a monospaced addition to the Roboto type family. Like
+      the other members of the Roboto family, the fonts are optimized for
+      readability on screens across a wide variety of devices and reading
+      environments. While the monospaced version is related to its variable
+      width cousin, it doesn't hesitate to change forms to better fit the
+      constraints of a monospaced environment. For example, narrow glyphs
+      like 'I', 'l' and 'i' have added serifs for more even texture while
+      wider glyphs are adjusted for weight. Curved caps like 'C' and 'O'
+      take on the straighter sides from Roboto Condensed.
+    '';
+    license = licenses.asl20;
+    platforms = platforms.all;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/roboto-slab/default.nix b/nixpkgs/pkgs/data/fonts/roboto-slab/default.nix
new file mode 100644
index 000000000000..dc37c8258564
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/roboto-slab/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+  pname = "roboto-slab";
+  version = "2.000";
+
+  src = fetchFromGitHub {
+    owner = "googlefonts";
+    repo = "robotoslab";
+    rev = "baeeba45e0c3ccdcfb6a70dc564785941aafef5d";
+    sha256 = "1v6z0a2xgwgf9dyj62sriy8ckwpbwlxkki6gfax1f4h4livvzpdn";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp -a fonts/static/*.ttf $out/share/fonts/truetype/
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "0g663npi5lkvwcqafd4cjrm90ph0nv1lig7d19xzfymnj47qpj8x";
+
+  meta = with lib; {
+    homepage = "https://www.google.com/fonts/specimen/Roboto+Slab";
+    description = "Roboto Slab Typeface by Google";
+    longDescription = ''
+      Roboto has a dual nature. It has a mechanical skeleton and the forms
+      are largely geometric. At the same time, the font features friendly
+      and open curves. While some grotesks distort their letterforms to
+      force a rigid rhythm, Roboto doesn't compromise, allowing letters to
+      be settled into their natural width. This makes for a more natural
+      reading rhythm more commonly found in humanist and serif types.
+
+      This is the Roboto Slab family, which can be used alongside the normal
+      Roboto family and the Roboto Condensed family.
+    '';
+    license = licenses.asl20;
+    platforms = platforms.all;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/roboto/default.nix b/nixpkgs/pkgs/data/fonts/roboto/default.nix
new file mode 100644
index 000000000000..fe13fdf89d1e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/roboto/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchzip }:
+
+let
+  version = "2.138";
+in fetchzip {
+  name = "roboto-${version}";
+
+  url = "https://github.com/google/roboto/releases/download/v${version}/roboto-unhinted.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -x __MACOSX/\* -d $out/share/fonts/truetype
+  '';
+
+  sha256 = "1s3c48wwvvwd3p4w3hfkri5v2c54j2bdxmd3bjv54klc5mrlh6z3";
+
+  meta = {
+    homepage = "https://github.com/google/roboto";
+    description = "The Roboto family of fonts";
+    longDescription = ''
+      Google’s signature family of fonts, the default font on Android and
+      Chrome OS, and the recommended font for Google’s visual language,
+      Material Design.
+    '';
+    license = lib.licenses.asl20;
+    platforms = lib.platforms.all;
+    maintainers = [ lib.maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/rounded-mgenplus/default.nix b/nixpkgs/pkgs/data/fonts/rounded-mgenplus/default.nix
new file mode 100644
index 000000000000..eccbddd1851d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/rounded-mgenplus/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchzip, p7zip }:
+
+let
+  pname = "rounded-mgenplus";
+  version = "20150602";
+in fetchzip rec {
+  name = "${pname}-${version}";
+
+  url = "https://osdn.jp/downloads/users/8/8598/${name}.7z";
+  postFetch = ''
+    ${p7zip}/bin/7z x $downloadedFile
+    install -m 444 -D -t $out/share/fonts/${pname} ${pname}-*.ttf
+  '';
+  sha256 = "0vwdknagdrl5dqwpb1x5lxkbfgvbx8dpg7cb6yamgz71831l05v1";
+
+  meta = with lib; {
+    description = "A Japanese font based on Rounded M+ and Noto Sans Japanese";
+    homepage = "http://jikasei.me/font/rounded-mgenplus/";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ mnacamura ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/route159/default.nix b/nixpkgs/pkgs/data/fonts/route159/default.nix
new file mode 100644
index 000000000000..cbc89c550b3c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/route159/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  majorVersion = "1";
+  minorVersion = "10";
+  pname = "route159";
+in
+
+fetchzip {
+  name = "${pname}-font-${majorVersion}.${minorVersion}";
+
+  url = "http://dotcolon.net/DL/font/${pname}_${majorVersion}${minorVersion}.zip";
+  sha256 = "1nv5csg73arvvwpac7ylh4j9n0s3qp79rbv2s4jvs2bf6gqhsq7h";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype/${pname}
+    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${pname}/";
+    description = "A weighted sans serif font";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/rubik/default.nix b/nixpkgs/pkgs/data/fonts/rubik/default.nix
new file mode 100644
index 000000000000..37afebb5cc0b
--- /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). Exising
+      glyphs were improved, and glyph set was expanded to GF Cyrillic Plus.
+    '';
+    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..9079ba7fada0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sahel-fonts/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "sahel-fonts";
+  version = "3.4.0";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "rastikerdar";
+  repo = "sahel-font";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/sahel-fonts {} \;
+  '';
+  sha256 = "sha256-MrKSgz9WpVgLS37uH/7S0LPBD/n3GLXeUCMBD7x5CG8=";
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/sahel-font";
+    description = "A 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..b29114e6b1c4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/samim-fonts/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "samim-fonts";
+  version = "4.0.4";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "rastikerdar";
+  repo = "samim-font";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/samim-fonts {} \;
+  '';
+  sha256 = "sha256-WYSJ2mAzAe5H0EaMYU3qNVcQ0lRuHsjZ11YmLnZ2FCo=";
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/samim-font";
+    description = "A 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..749abb71dbd4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sampradaya/default.nix
@@ -0,0 +1,19 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "sampradaya-2015-05-26";
+
+  url = "https://bitbucket.org/OorNaattaan/sampradaya/raw/afa9f7c6ab17e14bd7dd74d0acaec2f75454dfda/Sampradaya.ttf";
+
+  postFetch = "install -Dm644 $downloadedFile $out/share/fonts/truetype/Sampradaya.ttf";
+
+  sha256 = "1pqyj5r5jc7dk8yyzl7i6qq2m9zvahcjj49a66wwzdby5zyw8dqv";
+
+  meta = with lib; {
+    homepage = "https://bitbucket.org/OorNaattaan/sampradaya/";
+    description = "Unicode-compliant Grantha font";
+    maintainers = with maintainers; [ mathnerd314 ];
+    license = licenses.ofl; # See font metadata
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix b/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix
new file mode 100644
index 000000000000..3d601bdc6865
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchurl, libarchive }:
+
+let
+  version = "0.35.8";
+in fetchurl {
+  name = "sarasa-gothic-${version}";
+
+  # Use the 'ttc' files here for a smaller closure size.
+  # (Using 'ttf' files gives a closure size about 15x larger, as of November 2021.)
+  url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${version}/sarasa-gothic-ttc-${version}.7z";
+  sha256 = "sha256-22q+FdTh9Dex+tEo/HCBK14ZlJFtFM7SrE6K1/iVBY0=";
+
+  recursiveHash = true;
+  downloadToTemp = true;
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/truetype
+    ${libarchive}/bin/bsdtar -xf $downloadedFile -C $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    description = "A CJK programming font based on Iosevka and Source Han Sans";
+    homepage = "https://github.com/be5invis/Sarasa-Gothic";
+    license = licenses.ofl;
+    maintainers = [ maintainers.ChengCat ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/scheherazade/default.nix b/nixpkgs/pkgs/data/fonts/scheherazade/default.nix
new file mode 100644
index 000000000000..e91d108ade8e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/scheherazade/default.nix
@@ -0,0 +1,50 @@
+{ lib, fetchzip, version ? "3.300" }:
+
+let
+  new = lib.versionAtLeast version "3.000";
+  sha256 = {
+    "2.100" = "1g5f5f9gzamkq3kqyf7vbzvl4rdj3wmjf6chdrbxksrm3rnb926z";
+    "3.300" = "1bja1ma1mnna0qlk3dis31cvq5z1kgcqj7wjp8ml03zc5mpa2wb2";
+  }."${version}";
+
+in fetchzip rec {
+  name = "scheherazade${lib.optionalString new "-new"}-${version}";
+
+  url = "http://software.sil.org/downloads/r/scheherazade/Scheherazade${lib.optionalString new "New"}-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -l $downloadedFile
+    unzip -j $downloadedFile \*.ttf                        -d $out/share/fonts/truetype
+    unzip    $downloadedFile \*/documentation/\*           -d $out/share/doc/
+    mv $out/share/doc/* $out/share/doc/${name}
+    unzip -j $downloadedFile \*/FONTLOG.txt  \*/README.txt -d $out/share/doc/${name}
+  '';
+
+  inherit sha256;
+
+  meta = with lib; {
+    homepage = "https://software.sil.org/scheherazade/";
+    description = "A font designed in a similar style to traditional Naskh typefaces";
+    longDescription = ''
+
+      Scheherazade${lib.optionalString new " New"}, named after the heroine of
+      the classic Arabian Nights tale, is designed in a similar style to
+      traditional typefaces such as Monotype Naskh, extended to cover the
+      Unicode Arabic repertoire through Unicode ${if new then "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..bf5b887cc771
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/scientifica/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchurl }:
+
+let
+  version = "2.3";
+in fetchurl rec {
+  name = "scientifica-${version}";
+
+  url = "https://github.com/NerdyPepper/scientifica/releases/download/v${version}/scientifica.tar";
+
+  downloadToTemp = true;
+
+  recursiveHash = true;
+
+  sha256 = "sha256-pVWkj/2lFpmWk0PPDrIMU4Gey7/m/9tzUsuD3ZDUAdc=";
+
+  postFetch = ''
+    tar xf $downloadedFile
+    mkdir -p $out/share/fonts/truetype
+    mkdir -p $out/share/fonts/misc
+    install scientifica/ttf/*.ttf $out/share/fonts/truetype
+    install scientifica/otb/*.otb $out/share/fonts/misc
+    install scientifica/bdf/*.bdf $out/share/fonts/misc
+  '';
+
+  meta = with lib; {
+    description = "Tall and condensed bitmap font for geeks";
+    homepage = "https://github.com/NerdyPepper/scientifica";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/seshat/default.nix b/nixpkgs/pkgs/data/fonts/seshat/default.nix
new file mode 100644
index 000000000000..71483a04cbb7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/seshat/default.nix
@@ -0,0 +1,37 @@
+{ lib,  fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "100";
+  pname = "seshat";
+in
+
+fetchzip {
+  name = "${pname}-font-${majorVersion}.${minorVersion}";
+
+  url = "http://dotcolon.net/DL/font/${pname}.zip";
+  sha256 = "1zzgc2d0jrris92p3irmxjhdq8aj99alz0z7dlz25qf37lcilrir";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype/${pname}
+    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${pname}/";
+    description = "Roman body font designed for main text by Sora Sagano";
+    longDescription = ''
+      Seshat is a Roman body font designed for the main text. By
+      referring to the classical balance, we changed some lines by
+      omitting part of the lines such as "A" and "n".
+
+      Also, by attaching the strength of the thickness like Optima
+      to the main drawing, it makes it more sharp design.
+
+      It incorporates symbols and ligatures used in the European region.
+    '';
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.cc0;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/shabnam-fonts/default.nix b/nixpkgs/pkgs/data/fonts/shabnam-fonts/default.nix
new file mode 100644
index 000000000000..d5e7e2b243c3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/shabnam-fonts/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "shabnam-fonts";
+  version = "5.0.1";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "rastikerdar";
+  repo = "shabnam-font";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/shabnam-fonts {} \;
+  '';
+  sha256 = "sha256-m4G4UtW/0S9CsvaSF7QfthfIxGQ02E7SucdDm5s3G7A=";
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/shabnam-font";
+    description = "A 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..684f3d0395e9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/shrikhand/default.nix
@@ -0,0 +1,21 @@
+{ lib, fetchzip }:
+
+let
+  version = "2016-03-03";
+in fetchzip {
+  name = "shrikhand-${version}";
+
+  url = "https://github.com/jonpinhorn/shrikhand/raw/c11c9b0720fba977fad7cb4f339ebacdba1d1394/build/Shrikhand-Regular.ttf";
+
+  postFetch = "install -D -m644 $downloadedFile $out/share/fonts/truetype/Shrikhand-Regular.ttf";
+
+  sha256 = "0s54k9cs1g2yz6lwg5gakqb12vg5qkfdz3pc8mh7mib2s6q926hs";
+
+  meta = with lib; {
+    homepage = "https://jonpinhorn.github.io/shrikhand/";
+    description = "A vibrant and playful typeface for both Latin and Gujarati writing systems";
+    maintainers = with maintainers; [ sternenseemann ];
+    platforms = platforms.all;
+    license = licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/signwriting/default.nix b/nixpkgs/pkgs/data/fonts/signwriting/default.nix
new file mode 100644
index 000000000000..ae5f0bb0fb93
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/signwriting/default.nix
@@ -0,0 +1,32 @@
+{ lib, runCommand, fetchurl }:
+
+runCommand "signwriting-1.1.4" {
+  src1 = fetchurl {
+    url = "https://github.com/Slevinski/signwriting_2010_fonts/raw/61c8e7123a1168657b5d34d85266a637f67b9d2b/fonts/SignWriting%202010.ttf";
+    name = "SignWriting_2010.ttf";
+    sha256 = "1abjzykbjx2hal8mrxp51rvblv3q84akyn9qhjfaj20rwphkf5zj";
+  };
+
+  src2 = fetchurl {
+    url = "https://github.com/Slevinski/signwriting_2010_fonts/raw/61c8e7123a1168657b5d34d85266a637f67b9d2b/fonts/SignWriting%202010%20Filling.ttf";
+    name = "SignWriting_2010_Filling.ttf";
+    sha256 = "0am5wbf7jdy9szxkbsc5f3959cxvbj7mr0hy1ziqmkz02c6xjw2m";
+  };
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "0cn37s3lc7gbr8036l7ia2869qmxglkmgllh3r9q5j54g3sfjc7q";
+
+  meta = with lib; {
+    homepage = "https://github.com/Slevinski/signwriting_2010_fonts";
+    description = "Typeface for written sign languages";
+    maintainers = with maintainers; [ mathnerd314 ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
+''
+  mkdir -p $out/share/fonts/truetype
+  cp $src1 $out/share/fonts/truetype/SignWriting_2010.ttf
+  cp $src2 $out/share/fonts/truetype/SignWriting_2010_Filling.ttf
+''
diff --git a/nixpkgs/pkgs/data/fonts/siji/default.nix b/nixpkgs/pkgs/data/fonts/siji/default.nix
new file mode 100644
index 000000000000..adc6a79f10f4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/siji/default.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv, fetchFromGitHub, libfaketime, fonttosfnt, mkfontscale }:
+
+stdenv.mkDerivation rec {
+  name = "siji-${version}";
+  version = "2016-05-13";
+
+  src = fetchFromGitHub {
+    owner = "stark";
+    repo = "siji";
+    rev = "3cbb7fe938c33aaadbb657803ea5946e5157d6e2";
+    sha256 = "1408g4nxwdd682vjqpmgv0cp0bfnzzzwls62cjs9zrds16xa9dpf";
+  };
+
+  nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];
+
+  buildPhase = ''
+    # compress pcf fonts
+    gzip -n -9 pcf/*
+
+    # convert bdf fonts to otb
+    for i in bdf/*; do
+        name=$(basename $i .bdf)
+        faketime -f "1970-01-01 00:00:01" \
+        fonttosfnt -v -o "$name.otb" "$i"
+    done
+  '';
+
+  postInstall = ''
+    install -m 644 -D *.otb pcf/* -t "$out/share/fonts/misc"
+    install -m 644 -D bdf/* -t "$bdf/share/fonts/misc"
+    mkfontdir "$out/share/fonts/misc"
+    mkfontdir "$bdf/share/fonts/misc"
+  '';
+
+  outputs = [ "out" "bdf" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/stark/siji";
+    description = "An iconic bitmap font based on Stlarch with additional glyphs";
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = [ maintainers.asymmetric ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/source-code-pro/default.nix b/nixpkgs/pkgs/data/fonts/source-code-pro/default.nix
new file mode 100644
index 000000000000..eaf82d412a1d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-code-pro/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchzip }:
+
+let
+  version = "2.038";
+in fetchzip {
+  name = "source-code-pro-${version}";
+
+  url = "https://github.com/adobe-fonts/source-code-pro/releases/download/${version}R-ro%2F1.058R-it%2F1.018R-VAR/OTF-source-code-pro-${version}R-ro-1.058R-it.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "027cf62zj27q7l3d4sqzdfgz423lzysihdg8cvmkk6z910a1v368";
+
+  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..7f12fee5067b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-han-code-jp/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  pname = "source-han-code-jp";
+  version = "2.012R";
+in fetchzip {
+  name = "${pname}-${version}";
+
+  url = "https://github.com/adobe-fonts/${pname}/archive/${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "16y5as1k864ghy3vzp8svr3q0sw57rv53za3f48700ksvxz5pwry";
+
+  meta = {
+    description = "A monospaced Latin font suitable for coding";
+    maintainers = with lib.maintainers; [ mt-caret ];
+    platforms = with lib.platforms; all;
+    homepage = "https://blogs.adobe.com/CCJKType/2015/06/source-han-code-jp.html";
+    license = lib.licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/source-han/default.nix b/nixpkgs/pkgs/data/fonts/source-han/default.nix
new file mode 100644
index 000000000000..1672af411c04
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-han/default.nix
@@ -0,0 +1,66 @@
+{ stdenvNoCC
+, lib
+, fetchzip
+}:
+
+let
+  makePackage =
+    { family
+    , description
+    , rev
+    , sha256
+    , postFetch ? ''
+        install -m444 -Dt $out/share/fonts/opentype/source-han-${family} $downloadedFile
+      ''
+    , zip ? ""
+    }:
+    let Family =
+      lib.toUpper (lib.substring 0 1 family) +
+      lib.substring 1 (lib.stringLength family) family;
+    in
+    fetchzip {
+      name = "source-han-${family}-${lib.removeSuffix "R" rev}";
+
+      url = "https://github.com/adobe-fonts/source-han-${family}/releases/download/${rev}/SourceHan${Family}.ttc${zip}";
+      inherit sha256 postFetch;
+
+      meta = {
+        description = "An open source Pan-CJK ${description} typeface";
+        homepage = "https://github.com/adobe-fonts/source-han-${family}";
+        license = lib.licenses.ofl;
+        maintainers = with lib.maintainers; [ taku0 emily ];
+      };
+    };
+in
+{
+  sans = makePackage {
+    family = "sans";
+    description = "sans-serif";
+    rev = "2.004R";
+    sha256 = "052d17hvz435zc4r2y1p9cgkkgn0ps8g74mfbvnbm1pv8ykj40m9";
+    postFetch = ''
+      mkdir -p $out/share/fonts/opentype/source-han-sans
+      unzip $downloadedFile -d $out/share/fonts/opentype/source-han-sans
+    '';
+    zip = ".zip";
+  };
+
+  serif = makePackage {
+    family = "serif";
+    description = "serif";
+    rev = "2.000R";
+    sha256 = "0x3n6s4khdd6l0crwd7g9sjaqp8lkvksglhc7kj3cv80hldab9wp";
+    postFetch = ''
+      mkdir -p $out/share/fonts/opentype/source-han-serif
+      unzip $downloadedFile -d $out/share/fonts/opentype/source-han-serif
+    '';
+    zip = ".zip";
+  };
+
+  mono = makePackage {
+    family = "mono";
+    description = "monospaced";
+    rev = "1.002";
+    sha256 = "010h1y469c21bjavwdmkpbwk3ny686inz8i062wh1dhcv8cnqk3c";
+  };
+}
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..c16d0d2b8b4f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-sans/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchzip }:
+
+let
+  version = "3.046";
+in fetchzip {
+  name = "source-sans-${version}";
+
+  url = "https://github.com/adobe-fonts/source-sans/archive/${version}R.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/{opentype,truetype,variable}
+    unzip -j $downloadedFile "*/OTF/*.otf" -d $out/share/fonts/opentype
+    unzip -j $downloadedFile "*/TTF/*.ttf" -d $out/share/fonts/truetype
+    unzip -j $downloadedFile "*/VAR/*.otf" -d $out/share/fonts/variable
+  '';
+
+  sha256 = "1wxdinnliq0xqbjrs0sqykwaggkmyqawfq862d9xn05g1pnxda94";
+
+  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/default.nix b/nixpkgs/pkgs/data/fonts/source-serif/default.nix
new file mode 100644
index 000000000000..855fe7e6e9e9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/source-serif/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchzip }:
+
+let
+  version = "4.004";
+in fetchzip {
+  name = "source-serif-${version}";
+
+  url = "https://github.com/adobe-fonts/source-serif/releases/download/${version}R/source-serif-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/{opentype,truetype,variable}
+    unzip -j $downloadedFile "*/OTF/*.otf" -d $out/share/fonts/opentype
+    unzip -j $downloadedFile "*/TTF/*.ttf" -d $out/share/fonts/truetype
+    unzip -j $downloadedFile "*/VAR/*.otf" -d $out/share/fonts/variable
+  '';
+
+  sha256 = "06814hcp20abca6p0ii61f23g6h1ibqyhq30lsva59wbwx5iha0h";
+
+  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..162197006ba7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/spleen/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchurl, mkfontscale }:
+
+let
+  pname = "spleen";
+  version = "1.9.1";
+in fetchurl {
+  name = "${pname}-${version}";
+  url = "https://github.com/fcambus/spleen/releases/download/${version}/spleen-${version}.tar.gz";
+
+  downloadToTemp = true;
+  recursiveHash = true;
+  postFetch = ''
+    tar xvf $downloadedFile --strip=1
+    d="$out/share/fonts/misc"
+    install -D -m 644 *.{pcf,bdf,otf} -t "$d"
+    install -D -m 644 *.psfu -t "$out/share/consolefonts"
+    install -m644 fonts.alias-spleen $d/fonts.alias
+
+    # create fonts.dir so NixOS xorg module adds to fp
+    ${mkfontscale}/bin/mkfontdir "$d"
+  '';
+  sha256 = "sha256-6Imsa0ku8On63di0DOo0QxBa0t+tbtPRxM531EIiG94=";
+
+  meta = with lib; {
+    description = "Monospaced bitmap fonts";
+    homepage = "https://www.cambus.net/spleen-monospaced-bitmap-fonts";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/stix-otf/default.nix b/nixpkgs/pkgs/data/fonts/stix-otf/default.nix
new file mode 100644
index 000000000000..894fd22c36f9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/stix-otf/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.1.1";
+in fetchzip {
+  name = "stix-otf-${version}";
+
+  url = "http://ftp.fi.muni.cz/pub/linux/gentoo/distfiles/STIXv${version}-word.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "04d4qxq3i9fyapsmxk6d9v1xirjam8c74fyxs6n24d3gf2945zmw";
+
+  meta = with lib; {
+    homepage = "http://www.stixfonts.org/";
+    description = "Fonts for Scientific and Technical Information eXchange";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [maintainers.rycee];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/stix-two/default.nix b/nixpkgs/pkgs/data/fonts/stix-two/default.nix
new file mode 100644
index 000000000000..c05c1273a48e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/stix-two/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+let
+  version = "2.13";
+in
+fetchzip {
+  name = "stix-two-${version}";
+
+  url = "https://github.com/stipub/stixfonts/raw/v${version}/zipfiles/STIX${builtins.replaceStrings [ "." ] [ "_" ] version}-all.zip";
+
+  sha256 = "sha256-cBtZe/oq4bQCscSAhJ4YuTSghDleD9O/+3MHOJyI50o=";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.stixfonts.org/";
+    description = "Fonts for Scientific and Technical Information eXchange";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.rycee ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/sudo/default.nix b/nixpkgs/pkgs/data/fonts/sudo/default.nix
new file mode 100644
index 000000000000..45450a7c20f7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sudo/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchzip }:
+
+let
+  version = "0.62";
+in fetchzip {
+  name = "sudo-font-${version}";
+  url = "https://github.com/jenskutilek/sudo-font/releases/download/v${version}/sudo.zip";
+  sha256 = "sha256-I0E2zYbfEFBEIBNC7nnJb+hOaBgGZkAIg08YpA8awso=";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype/
+  '';
+  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..71ca170afb1d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tai-languages/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchzip }:
+
+{
+tai-ahom = fetchzip {
+  name = "tai-ahom-2015-07-06";
+
+  url = "https://github.com/enabling-languages/tai-languages/blob/b57a3ea4589af69bb8e87c6c4bb7cd367b52f0b7/ahom/.fonts/ttf/.original/AhomUnicode_FromMartin.ttf?raw=true";
+
+  postFetch = "install -Dm644 $downloadedFile $out/share/fonts/truetype/AhomUnicode.ttf";
+
+  sha256 = "03h8ql9d5bzq4j521j0cz08ddf717bzim1nszh2aar6kn0xqnp9q";
+
+  meta = with lib; {
+    homepage = "https://github.com/enabling-languages/tai-languages";
+    description = "Unicode-compliant Tai Ahom font";
+    maintainers = with maintainers; [ mathnerd314 ];
+    license = licenses.ofl; # See font metadata
+    platforms = platforms.all;
+  };
+};
+
+# TODO: package others (Khamti Shan, Tai Aiton, Tai Phake, and/or Assam Tai)
+
+}
diff --git a/nixpkgs/pkgs/data/fonts/tamsyn/default.nix b/nixpkgs/pkgs/data/fonts/tamsyn/default.nix
new file mode 100644
index 000000000000..6f0886e1d971
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tamsyn/default.nix
@@ -0,0 +1,50 @@
+{ lib, stdenv, fetchurl, fontforge, mkfontscale }:
+
+let
+  version = "1.11";
+in stdenv.mkDerivation {
+  pname = "tamsyn-font";
+  inherit version;
+
+  src = fetchurl {
+    url = "http://www.fial.com/~scott/tamsyn-font/download/tamsyn-font-${version}.tar.gz";
+    sha256 = "0kpjzdj8sv5871b8827mjgj9dswk75h94jj5iia2bds18ih1pglp";
+   };
+
+  nativeBuildInputs = [ fontforge mkfontscale ];
+
+  unpackPhase = ''
+    tar -xzf $src --strip-components=1
+  '';
+
+  postBuild = ''
+    # convert pcf fonts to otb
+    for i in *.pcf; do
+      name=$(basename "$i" .pcf)
+      fontforge -lang=ff -c "Open(\"$i\"); Generate(\"$name.otb\")"
+    done
+
+    # compress pcf fonts
+    gzip -n -9 *.pcf
+  '';
+
+  installPhase = ''
+    install -m 644 -D *.otb *.pcf.gz -t "$out/share/fonts/misc"
+    install -m 644 -D *.psf.gz -t "$out/share/consolefonts"
+    mkfontdir "$out/share/fonts/misc"
+  '';
+
+  meta = with lib; {
+    description = "A monospace bitmap font aimed at programmers";
+    longDescription = ''Tamsyn is a monospace bitmap font, primarily aimed at
+    programmers. It was derived from Gilles Boccon-Gibod's MonteCarlo. Tamsyn
+    font was further inspired by Gohufont, Terminus, Dina, Proggy, Fixedsys, and
+    Consolas.
+    '';
+    homepage = "http://www.fial.com/~scott/tamsyn-font/";
+    downloadPage = "http://www.fial.com/~scott/tamsyn-font/download";
+    license = licenses.free;
+    maintainers = [ maintainers.rps ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/tamzen/default.nix b/nixpkgs/pkgs/data/fonts/tamzen/default.nix
new file mode 100644
index 000000000000..80212a14aebf
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tamzen/default.nix
@@ -0,0 +1,37 @@
+{ fetchFromGitHub, mkfontscale, lib, stdenv }:
+
+stdenv.mkDerivation rec {
+  pname = "tamzen-font";
+  version = "1.11.5";
+
+  src = fetchFromGitHub {
+    owner = "sunaku";
+    repo = "tamzen-font";
+    rev = "Tamzen-${version}";
+    sha256 = "00x5fipzqimglvshhqwycdhaqslbvn3rl06jnswhyxfvz16ymj7s";
+  };
+
+  nativeBuildInputs = [ mkfontscale ];
+
+  installPhase = ''
+    install -m 644 -D otb/*.otb pcf/*.pcf -t "$out/share/fonts/misc"
+    install -m 644 -D psf/*.psf -t "$out/share/consolefonts"
+    mkfontdir "$out/share/fonts/misc"
+  '';
+
+  meta = with lib; {
+    description = "Bitmapped programming font based on Tamsyn";
+    longDescription = ''
+    Tamzen is a monospace bitmap font. It is programatically forked
+    from Tamsyn version 1.11, which backports glyphs from older
+    versions while deleting deliberately empty glyphs to allow
+    secondary/fallback fonts to provide real glyphs at those codepoints.
+    Tamzen also has fonts that additionally provide the Powerline
+    symbols.
+    '';
+    homepage = "https://github.com/sunaku/tamzen-font";
+    license = licenses.free;
+    maintainers = with maintainers; [ wishfort36 ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/tempora-lgc/default.nix b/nixpkgs/pkgs/data/fonts/tempora-lgc/default.nix
new file mode 100644
index 000000000000..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..09ea566e7382
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tenderness/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "601";
+  pname = "tenderness";
+in
+
+fetchzip {
+  name = "${pname}-font-${majorVersion}.${minorVersion}";
+
+  url = "http://dotcolon.net/DL/font/${pname}_${majorVersion}${minorVersion}.zip";
+  sha256 = "0d88l5mzq0k63zsmb8d5w3hfqxy04vpv4j0j8nmj1xv6kikhhybh";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype/${pname}
+    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${pname}/";
+    description = "Serif font designed by Sora Sagano with old-style figures";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ leenaars ];
+    license = licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/terminus-font-ttf/default.nix b/nixpkgs/pkgs/data/fonts/terminus-font-ttf/default.nix
new file mode 100644
index 000000000000..1ebf987fcd56
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/terminus-font-ttf/default.nix
@@ -0,0 +1,33 @@
+{ lib, fetchzip }:
+
+let
+  version = "4.49.1";
+in fetchzip {
+  name = "terminus-font-ttf-${version}";
+
+  url = "https://files.ax86.net/terminus-ttf/files/${version}/terminus-ttf-${version}.zip";
+
+  postFetch = ''
+    unzip -j $downloadedFile
+
+    for i in *.ttf; do
+      local destname="$(echo "$i" | sed -E 's|-[[:digit:].]+\.ttf$|.ttf|')"
+      install -Dm 644 "$i" "$out/share/fonts/truetype/$destname"
+    done
+
+    install -Dm 644 COPYING "$out/share/doc/terminus-font-ttf/COPYING"
+  '';
+
+  sha256 = "sha256-UaTnCamIRN/3xZsYt5nYzvykXQ3ri94a047sWOJ2RfU=";
+
+  meta = with lib; {
+    description = "A clean fixed width TTF font";
+    longDescription = ''
+      Monospaced bitmap font designed for long work with computers
+      (TTF version, mainly for Java applications)
+    '';
+    homepage = "https://files.ax86.net/terminus-ttf";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ okasu ];
+  };
+}
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..9ccf0371f192
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/terminus-font/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv, fetchurl, python3
+, bdftopcf, mkfontscale
+}:
+
+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 mkfontscale ];
+
+  enableParallelBuilding = true;
+
+  postPatch = ''
+    substituteInPlace Makefile --replace 'fc-cache' '#fc-cache'
+    substituteInPlace Makefile --replace 'gzip'     'gzip -n'
+  '';
+
+  installTargets = [ "install" "install-otb" "fontdir" ];
+
+  meta = with lib; {
+    description = "A clean fixed width font";
+    longDescription = ''
+      Terminus Font is designed for long (8 and more hours per day) work
+      with computers. Version 4.30 contains 850 characters, covers about
+      120 language sets and supports ISO8859-1/2/5/7/9/13/15/16,
+      Paratype-PT154/PT254, KOI8-R/U/E/F, Esperanto, many IBM, Windows and
+      Macintosh code pages, as well as the IBM VGA, vt100 and xterm
+      pseudographic characters.
+
+      The sizes present are 6x12, 8x14, 8x16, 10x20, 11x22, 12x24, 14x28 and
+      16x32. The styles are normal and bold (except for 6x12), plus
+      EGA/VGA-bold for 8x14 and 8x16.
+    '';
+    homepage = "http://terminus-font.sourceforge.net/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ astsmtl ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/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..1cf31b5affe7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tewi/default.nix
@@ -0,0 +1,59 @@
+{ lib, stdenv, fetchFromGitHub, python3
+, bdftopcf, mkfontscale
+, libfaketime, fonttosfnt
+}:
+
+stdenv.mkDerivation rec {
+  pname = "tewi-font";
+  version = "2.0.2";
+
+  src = fetchFromGitHub {
+    owner  = "lucy";
+    repo   = pname;
+    rev    = version;
+    sha256 = "1axv9bv10xlcmgfyjh3z5kn5fkg3m6n1kskcs5hvlmyb6m1zk91j";
+  };
+
+  nativeBuildInputs =
+    [ python3 bdftopcf mkfontscale
+      libfaketime fonttosfnt
+    ];
+
+  postPatch = ''
+    # make gzip deterministic
+    sed 's/gzip -9/gzip -9 -n/g' -i Makefile
+
+    # fix python not found
+    patchShebangs scripts/merge
+  '';
+
+  postBuild = ''
+    # convert bdf fonts to otb
+    for i in *.bdf; do
+      name=$(basename "$i" .bdf)
+      faketime -f "1970-01-01 00:00:01" \
+      fonttosfnt -v -o "$name.otb" "$i"
+    done
+  '';
+
+  installPhase = ''
+    fontDir="$out/share/fonts/misc"
+    install -m 644 -D *.otb out/* -t "$fontDir"
+    mkfontdir "$fontDir"
+  '';
+
+  meta = with lib; {
+    description = "A nice bitmap font, readable even at small sizes";
+    longDescription = ''
+      Tewi is a bitmap font, readable even at very small font sizes. This is
+      particularily useful while programming, to fit a lot of code on your
+      screen.
+    '';
+    homepage = "https://github.com/lucy/tewi-font";
+    license = {
+      fullName = "GNU General Public License with a font exception";
+      url = "https://www.gnu.org/licenses/gpl-faq.html#FontException";
+    };
+    maintainers = [ maintainers.fro_ozen ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/tex-gyre-math/default.nix b/nixpkgs/pkgs/data/fonts/tex-gyre-math/default.nix
new file mode 100644
index 000000000000..95038d3f9cfe
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tex-gyre-math/default.nix
@@ -0,0 +1,67 @@
+{ lib, stdenv, fetchzip }:
+
+let
+  variants = {
+    bonum = {
+      displayName = "Bonum";
+      version = "1.005";
+      sha256 = "1b6x7siypyxp1lhq7xxdqafwbn6p2p3xm3jb38q999sv8cgslxz8";
+      outputHash = "1zjaxkzidqmxakh9d61n0by9mi8hrmir45jppjj6hzwhm3rvknff";
+    };
+    pagella = {
+      displayName = "Pagella";
+      version = "1.632";
+      sha256 = "0f4cgq9w0lc1fbcbfqiv19mdhivbsscl13jmb0ln685641ci2sjr";
+      outputHash = "0wz2n1dpx9b8a0qgqy8vl712fxhi87mhcda281xaad62chndwf6k";
+    };
+    schola = {
+      displayName = "Schola";
+      version = "1.533";
+      sha256 = "0caqgkz7gz700h5a1mai0gq8hv7skrgs5nnrs1f7zw1mb9g53ya9";
+      outputHash = "0jk4bpxki95a9lmfj4cgpnv1jwlkh8qixbkf498n1x7hkaz03f5n";
+    };
+    termes = {
+      displayName = "Termes";
+      version = "1.543";
+      sha256 = "10ayqfpryfn1l35hy0vwyjzw3a6mfsnzgf78vsnccgk2gz1g9vhz";
+      outputHash = "0pa433cgshlypbyrrlp3qq0wg972rngcp37pr8pxdfshgz13q1mm";
+    };
+  };
+
+  mkVariant = variant: {displayName, version, sha256, outputHash}:
+    let dotless_version = builtins.replaceStrings ["."] [""] version; in
+    stdenv.mkDerivation rec {
+      name = "tex-gyre-${variant}-math-${version}";
+      inherit version;
+
+      src = fetchzip {
+        url = "http://www.gust.org.pl/projects/e-foundry/tg-math/download/texgyre${variant}-math-${dotless_version}.zip";
+        inherit sha256;
+      };
+
+      installPhase = ''
+        install -m444 -Dt $out/share/fonts/opentype opentype/*.otf
+        install -m444 -Dt $out/share/doc/${name}    doc/*.txt
+      '';
+
+      outputHashAlgo = "sha256";
+      outputHashMode = "recursive";
+      inherit outputHash;
+
+      meta = with lib; {
+        longDescription = ''
+          TeX Gyre ${displayName} Math is a math companion for the TeX Gyre
+          ${displayName} family of fonts (see
+          http://www.gust.org.pl/projects/e-foundry/tex-gyre/) in the OpenType format.
+        '';
+        homepage = "http://www.gust.org.pl/projects/e-foundry/tg-math";
+        # "The TeX Gyre Math fonts are licensed under the GUST Font License (GFL),
+        # which is a free license, legally equivalent to the LaTeX Project Public
+        # License (LPPL), version 1.3c or later." - GUST website
+        license = licenses.lppl13c;
+        maintainers = with maintainers; [ siddharthist ];
+        platforms = platforms.all;
+      };
+    };
+in
+  lib.mapAttrs mkVariant variants
diff --git a/nixpkgs/pkgs/data/fonts/tex-gyre/default.nix b/nixpkgs/pkgs/data/fonts/tex-gyre/default.nix
new file mode 100644
index 000000000000..6ce5bd207862
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tex-gyre/default.nix
@@ -0,0 +1,84 @@
+{ lib, stdenv, fetchzip }:
+
+let
+  mkVariant = variant: { version, abbreviation, sha256, outputHash }: stdenv.mkDerivation {
+    name = "tex-gyre-${variant}-${version}";
+    inherit version;
+
+    src = fetchzip {
+      url = "http://www.gust.org.pl/projects/e-foundry/tex-gyre/${variant}/${abbreviation}${version}otf.zip";
+      stripRoot = false;
+      inherit sha256;
+    };
+
+    installPhase = ''
+      mkdir -p $out/share/fonts/opentype/
+      # Pagella & Adventor are not flat archives
+      test -d "${abbreviation}${version}otf" && cd "${abbreviation}${version}otf"
+      cp -v *.otf $out/share/fonts/opentype/
+    '';
+
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+    inherit outputHash;
+
+    meta = with lib; {
+      homepage = "http://www.gust.org.pl/projects/e-foundry/tex-gyre";
+      # "The TeX Gyre fonts are licensed under the GUST Font License (GFL),
+      # which is a free license, legally equivalent to the LaTeX Project Public
+      # License (LPPL), version 1.3c or later." - GUST website
+      license = licenses.lppl13c;
+      maintainers = with maintainers; [ jtojnar ];
+      platforms = platforms.all;
+    };
+  };
+in lib.mapAttrs mkVariant {
+  adventor = {
+    version = "2_501";
+    sha256 = "0qjg3x0adfppyx3x33cm07ww9i9sl88xaq07m7wfip8rmyp567fn";
+    outputHash = "117h6f02m1r54b4f1a98q5kkjchl5pv9ibm1jla6xrzhk2pchb27";
+    abbreviation = "qag";
+  };
+  bonum = {
+    version = "2.004";
+    sha256 = "0qbrs98knx4h0b297c5n3vav4mkal1a95ai2dzmdc10pghfzl8vv";
+    outputHash = "0bid8gzwz50ylmm8jyqf9s4nfvy6cp1x34wbyrh4gyk1ki6hf3z1";
+    abbreviation = "qbk";
+  };
+  chorus = {
+    version = "2.003";
+    sha256 = "1b0zak27fzmapwbf2jasvsd95vhnqyc92n985d1lc1ivwja1zgfa";
+    outputHash = "0fqifd45c1ys6y98b66lmldfbv7wjb2414fs9swicv4n7xvl3cp1";
+    abbreviation = "qzc";
+  };
+  cursor = {
+    version = "2.004";
+    sha256 = "0ck3jm33bk2xsxp5d2irzd3j24zb49f0gnjvd1nikg1ivk8w85ng";
+    outputHash = "0i76835xqlkrnlx303mx63m0f4899j056c2ag2fl6p9qk8s4rskp";
+    abbreviation = "qcr";
+  };
+  heros = {
+    version = "2.004";
+    sha256 = "1fj2srxxf6ap913y5yd3dn4jzg828j7381gifs39nm5lnzmgw78y";
+    outputHash = "16y76ab46fxm9k8wfmwx4w0cl96yrmjywz587lyr08s0agp1v3kf";
+    abbreviation = "qhv";
+  };
+  pagella = {
+    version ="2_501";
+    sha256 = "1kccaxs3vk93la2pz4nv05hx1x3diyla49cz4l33zifdcp2zgg9d";
+    outputHash = "1nnjsgplimh29502pkd19rvfg93x31svxxmx4x7h51njrx1j8qa8";
+    abbreviation = "qpl";
+  };
+  schola = {
+    version = "2.005";
+    sha256 = "05z3gk4mm0sa7wwjcv31j2xlzqhwhcncpamn0kn9y0221cdknyp8";
+    outputHash = "1yqq1ngcylhldrh1v35l439k72szq9m4gx6g0wh235fk65chb2bm";
+    abbreviation = "qcs";
+  };
+  termes = {
+    version = "2.004";
+    sha256 = "1aq3yqbgkc3z20dkcqyhicsyq0afbgg4l397z96sd8a16jyz2x8k";
+    outputHash = "1igw821m601h8937pix6yish4d8fxmz3h4j9hripf41bxsiafzzg";
+    abbreviation = "qtm";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/theano/default.nix b/nixpkgs/pkgs/data/fonts/theano/default.nix
new file mode 100644
index 000000000000..360d32f3e625
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/theano/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchzip }:
+
+let
+  version = "2.0";
+in fetchzip rec {
+  name = "theano-${version}";
+
+  url = "https://github.com/akryukov/theano/releases/download/v${version}/theano-${version}.otf.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype
+    mkdir -p $out/share/doc/${name}
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.txt -d "$out/share/doc/${name}"
+  '';
+
+  sha256 = "1my1symb7k80ys33iphsxvmf6432wx6vjdnxhzhkgrang1rhx1h8";
+
+  meta = with lib; {
+    homepage = "https://github.com/akryukov/theano";
+    description = "An old-style font designed from historic samples";
+    maintainers = with maintainers; [ raskin rycee ];
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/times-newer-roman/default.nix b/nixpkgs/pkgs/data/fonts/times-newer-roman/default.nix
new file mode 100644
index 000000000000..6122883c6156
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/times-newer-roman/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "unstable-2018-09-11";
+in
+fetchzip {
+  name = "times-newer-roman-${version}";
+
+  url = "https://web.archive.org/web/20210609022835/https://timesnewerroman.com/assets/TimesNewerRoman.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+  '';
+
+  hash = "sha256-Hx59RYLLwfimEQjEEes0lCpg6iql46DFwhQ7kVGiEzc=";
+
+  meta = with lib; {
+    description = "A 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; [ samuelgrf ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/tipa/default.nix b/nixpkgs/pkgs/data/fonts/tipa/default.nix
new file mode 100644
index 000000000000..6cebe2120fec
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tipa/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "tipa-1.3";
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/t/tipa/tipa_1.3.orig.tar.gz";
+    sha256 = "1q1sisxdcd2zd9b7mnagr2mxf9v3n1r4s5892zx5ly4r0niyya9m";
+  };
+
+  installPhase = ''
+    export PREFIX="$out/texmf-dist"
+    mkdir -p "$PREFIX" "$out/share"
+    make install PREFIX="$PREFIX"
+
+    ln -s -r $out/texmf* $out/share/
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1g2cclykr6ax584rlcri8w2h385n624sgfx2fm45r0cwkg1p77h2";
+
+  meta = {
+    description = "Phonetic font for TeX";
+  };
+}
+
+
diff --git a/nixpkgs/pkgs/data/fonts/tlwg/default.nix b/nixpkgs/pkgs/data/fonts/tlwg/default.nix
new file mode 100644
index 000000000000..9c03bbb162f5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tlwg/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, fontforge }:
+
+stdenv.mkDerivation rec {
+  pname = "tlwg";
+  version = "0.6.4";
+
+  src = fetchFromGitHub {
+    owner = "tlwg";
+    repo = "fonts-tlwg";
+    rev = "v${version}";
+    sha256 = "13bx98ygyyizb15ybdv3856lkxhx1fss8f7aiqmp0lk9zgw4mqyk";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  buildInputs = [ fontforge ];
+
+  preAutoreconf = "echo ${version} > VERSION";
+
+  meta = with lib; {
+    description = "A collection of Thai scalable fonts available under free licenses";
+    homepage = "https://linux.thai.net/projects/fonts-tlwg";
+    license = with licenses; [ gpl2 publicDomain lppl13c free ];
+    maintainers = [ maintainers.yrashk ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/tt2020/default.nix b/nixpkgs/pkgs/data/fonts/tt2020/default.nix
new file mode 100644
index 000000000000..c92e86032733
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/tt2020/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "TT2020";
+  version = "2020-01-05";
+in
+fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "ctrlcctrlv";
+  repo = pname;
+  rev = "2b418fab5f99f72a18b3b2e7e2745ac4e03aa612";
+  sha256 = "1z0nizvs0gp0xl7pn6xcjvsysxhnfm7aqfamplkyvya3fxvhncds";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -Dm644 -t $out/share/fonts/truetype dist/*.ttf
+    install -Dm644 -t $out/share/fonts/woff2 dist/*.woff2
+  '';
+
+  meta = with lib; {
+    description = "An advanced, open source, hyperrealistic, multilingual typewriter font for a new decade";
+    homepage = "https://ctrlcctrlv.github.io/TT2020";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ sikmir ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ttf-bitstream-vera/default.nix b/nixpkgs/pkgs/data/fonts/ttf-bitstream-vera/default.nix
new file mode 100644
index 000000000000..95e4ce2a52ab
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ttf-bitstream-vera/default.nix
@@ -0,0 +1,20 @@
+{ lib, fetchzip }:
+let
+  pname = "ttf-bitstream-vera";
+  version = "1.10";
+in
+fetchzip rec {
+  name = "${pname}-${version}";
+
+  url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.bz2";
+
+  postFetch = ''
+    tar -xjf $downloadedFile --strip-components=1
+    install -m444 -Dt $out/share/fonts/truetype *.ttf
+  '';
+
+  sha256 = "179hal4yi3367jg8rsvqx6h2w4s0kn9zzrv8c47sslyg28g39s4m";
+
+  meta = {
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ttf-envy-code-r/default.nix b/nixpkgs/pkgs/data/fonts/ttf-envy-code-r/default.nix
new file mode 100644
index 000000000000..4da4aa1823b7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ttf-envy-code-r/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  pname = "ttf-envy-code-r";
+  version = "PR7";
+in fetchzip {
+  name = "${pname}-0.${version}";
+
+  url = "http://download.damieng.com/fonts/original/EnvyCodeR-${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/{doc,fonts}
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.txt -d "$out/share/doc/${pname}"
+  '';
+
+  sha256 = "0x0r07nax68cmz7490x2crzzgdg4j8fg63wppcmjqm0230bggq2z";
+
+  meta = with lib; {
+    homepage = "https://damieng.com/blog/tag/envy-code-r";
+    description = "Free scalable coding font by DamienG";
+    license = licenses.unfree;
+    maintainers = [ maintainers.lyt ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ttf-tw-moe/default.nix b/nixpkgs/pkgs/data/fonts/ttf-tw-moe/default.nix
new file mode 100644
index 000000000000..bf52d07c52e9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ttf-tw-moe/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchzip }:
+let
+  version = "2020-11-14";
+in
+fetchzip {
+  name = "ttf-tw-moe";
+
+  url = "https://github.com/Jiehong/TW-fonts/archive/${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile TW-fonts-${version}/\*.ttf -d $out/share/fonts/truetype
+  '';
+
+  sha256 = "1jd3gjjfa4vadp6d499n0irz5b22z611kd7q5qgqf6s2fwbxfhiz";
+
+  meta = with lib; {
+    homepage = "http://www.moe.gov.tw/";
+    description = "Set of KAI and SONG fonts from the Ministry of Education of Taiwan";
+    version = version;
+    longDescription = ''
+      Installs 2 TTF fonts: MOESongUN and TW-MOE-Std-Kai.
+      Both are provided by the Ministry of Education of Taiwan; each character's shape
+      closely follows the official recommendation, and can be used as for teaching purposes.
+    '';
+    license = licenses.cc-by-nd-30;
+    maintainers = [ maintainers.jiehong ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix b/nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix
new file mode 100644
index 000000000000..ae1d3f9927fb
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "twemoji-color-font";
+  version = "13.1.0";
+
+  # We fetch the prebuilt font because building it takes 1.5 hours on hydra.
+  # Relevant issue: https://github.com/NixOS/nixpkgs/issues/97871
+  src = fetchurl {
+    url = "https://github.com/eosrei/twemoji-color-font/releases/download/v${version}/TwitterColorEmoji-SVGinOT-Linux-${version}.tar.gz";
+    sha256 = "sha256-V8DWUUAK+HLDPcq3izPs174PfUnaSeLByDpZwhUIX5Q=";
+  };
+
+  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..6cceee558a94
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix
@@ -0,0 +1,117 @@
+# Based upon https://src.fedoraproject.org/rpms/twitter-twemoji-fonts
+# The main difference is that we use “Twitter Color Emoji” name (which is recognized by upstream fontconfig)
+
+{ lib, stdenv
+, fetchFromGitHub
+, cairo
+, imagemagick
+, pkg-config
+, pngquant
+, python3
+, which
+, zopfli
+, noto-fonts-emoji
+}:
+
+let
+  version = "13.0.2";
+
+  twemojiSrc = fetchFromGitHub {
+    name = "twemoji";
+    owner = "twitter";
+    repo = "twemoji";
+    rev = "v${version}";
+    sha256 = "069pyq09jfzwp3xla8vmhbyyam32x2iyp0s29xcxlkj22p99bg6d";
+  };
+
+  pythonEnv =
+    python3.withPackages (p: [ p.fonttools p.nototools ]);
+
+in
+stdenv.mkDerivation rec {
+  pname = "twitter-color-emoji";
+  inherit version;
+
+  srcs = [
+    noto-fonts-emoji.src
+    twemojiSrc
+  ];
+
+  sourceRoot = noto-fonts-emoji.src.name;
+
+  postUnpack = ''
+    chmod -R +w ${twemojiSrc.name}
+    mv ${twemojiSrc.name} ${noto-fonts-emoji.src.name}
+  '';
+
+  nativeBuildInputs = [
+    cairo
+    imagemagick
+    pkg-config
+    pngquant
+    pythonEnv
+    which
+    zopfli
+  ];
+
+  postPatch = let
+    templateSubstitutions = lib.concatStringsSep "; " [
+      "s#Noto Color Emoji#Twitter Color Emoji#"
+      "s#NotoColorEmoji#TwitterColorEmoji#"
+      ''s#Copyright .* Google Inc\.#Twitter, Inc and other contributors.#''
+      "s# Version .*# ${version}#"
+      "s#.*is a trademark.*##"
+      ''s#Google, Inc\.#Twitter, Inc and other contributors#''
+      "s#http://www.google.com/get/noto/#https://twemoji.twitter.com/#"
+      "s#.*is licensed under.*#      Creative Commons Attribution 4.0 International#"
+      "s#http://scripts.sil.org/OFL#http://creativecommons.org/licenses/by/4.0/#"
+    ];
+  in ''
+    ${noto-fonts-emoji.postPatch}
+
+    sed '${templateSubstitutions}' NotoColorEmoji.tmpl.ttx.tmpl > TwitterColorEmoji.tmpl.ttx.tmpl
+    pushd ${twemojiSrc.name}/assets/72x72/
+    for png in *.png; do
+        mv $png emoji_u''${png//-/_}
+    done
+    popd
+  '';
+
+  makeFlags = [
+    "EMOJI=TwitterColorEmoji"
+    "EMOJI_SRC_DIR=${twemojiSrc.name}/assets/72x72"
+    "BODY_DIMENSIONS=76x72"
+    # twemoji contains some codepoints noto doesn't like
+    "BYPASS_SEQUENCE_CHECK=True"
+  ];
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    install -Dm644 TwitterColorEmoji.ttf $out/share/fonts/truetype/TwitterColorEmoji.ttf
+  '';
+
+  meta = with lib; {
+    description = "Color emoji font with a flat visual style, designed and used by Twitter";
+    longDescription = ''
+      A bitmap color emoji font built from the Twitter Emoji for
+      Everyone artwork with support for ZWJ, skin tone diversity and country
+      flags.
+
+      This font uses Google’s CBDT format making it work on Android and Linux graphical stack.
+    '';
+    homepage = "https://twemoji.twitter.com/";
+    # In noto-emoji-fonts source
+    ## noto-emoji code is in ASL 2.0 license
+    ## Emoji fonts are under OFL license
+    ### third_party color-emoji code is in ASL 2.0 license
+    ### third_party region-flags code is in Public Domain license
+    # In twemoji source
+    ## Artwork is Creative Commons Attribution 4.0 International
+    ## Non-artwork is MIT
+    # In Fedora twitter-twemoji-fonts source
+    ## spec files are MIT: https://fedoraproject.org/wiki/Licensing:Main#License_of_Fedora_SPEC_Files
+    license = with licenses; [ asl20 ofl cc-by-40 mit ];
+    maintainers = with maintainers; [ jtojnar emily ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ubuntu-font-family/default.nix b/nixpkgs/pkgs/data/fonts/ubuntu-font-family/default.nix
new file mode 100644
index 000000000000..0f1d5b5a4cc0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ubuntu-font-family/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "ubuntu-font-family-0.83";
+
+  url = "https://assets.ubuntu.com/v1/fad7939b-ubuntu-font-family-0.83.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/ubuntu
+  '';
+
+  sha256 = "090y665h4kf2bi623532l6wiwkwnpd0xds0jr7560xwfwys1hiqh";
+
+  meta = {
+    description = "Ubuntu Font Family";
+    longDescription = "The Ubuntu typeface has been specially
+    created to complement the Ubuntu tone of voice. It has a
+    contemporary style and contains characteristics unique to
+    the Ubuntu brand that convey a precise, reliable and free attitude.";
+    homepage = "http://font.ubuntu.com/";
+    license = lib.licenses.free;
+    platforms = lib.platforms.all;
+    maintainers = [ lib.maintainers.antono ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix b/nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix
new file mode 100644
index 000000000000..7bb9930ccfca
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix
@@ -0,0 +1,61 @@
+{ lib, stdenv, fetchurl, bdftopcf
+, libfaketime, fonttosfnt, mkfontscale
+}:
+
+stdenv.mkDerivation {
+  pname = "ucs-fonts";
+  version = "20090406";
+
+  srcs = [
+    (fetchurl {
+      url = "http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz";
+      sha256 = "12hgizg25fzmk10wjl0c88x97h3pg5r9ga122s3y28wixz6x2bvh";
+    })
+    (fetchurl {
+      url = "http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts-asian.tar.gz";
+      sha256 = "0ibjy4xpz5j373hsdr8bx99czfpclqmviwwv768j8n7z12z3wa51";
+    })
+    (fetchurl {
+      url = "http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts-75dpi100dpi.tar.gz";
+      sha256 = "08vqr8yb636xa1s28vf3pm22dzkia0gisvsi2svqjqh4kk290pzh";
+    })
+  ];
+
+  sourceRoot = ".";
+
+  nativeBuildInputs =
+    [ bdftopcf libfaketime fonttosfnt
+      mkfontscale
+    ];
+
+  buildPhase = ''
+    for i in *.bdf; do
+      name=$(basename "$i" .bdf)
+
+      # generate pcf fonts (for X11 applications)
+      bdftopcf -t "$i" | gzip -n -9 -c > "$name.pcf.gz"
+
+      # generate otb fonts (for GTK applications)
+      faketime -f "1970-01-01 00:00:01" \
+      fonttosfnt -v -o "$name.otb" "$i"
+    done
+  '';
+
+  installPhase = ''
+    install -m 644 -D *.otb *.pcf.gz -t "$out/share/fonts/misc"
+    install -m 644 -D *.bdf -t "$bdf/share/fonts/misc"
+
+    mkfontdir "$out/share/fonts/misc"
+    mkfontdir "$bdf/share/fonts/misc"
+  '';
+
+  outputs = [ "out" "bdf" ];
+
+  meta = with lib; {
+    homepage = "https://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html";
+    description = "Unicode bitmap fonts";
+    license = licenses.publicDomain;
+    maintainers = [ maintainers.raskin ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix b/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
new file mode 100644
index 000000000000..4733bcf04e72
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchzip }:
+
+let
+  version = "2.2";
+in
+fetchzip {
+  name = "ultimate-oldschool-pc-font-pack-${version}";
+  url = "https://int10h.org/oldschool-pc-fonts/download/oldschool_pc_font_pack_v${version}_linux.zip";
+  sha256 = "sha256-BOA2fMa2KT3Bkpvj/0DzrzuZbl3RARvNn4qbI/+dApU=";
+
+  postFetch= ''
+    mkdir -p $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    description = "The Ultimate Oldschool PC Font Pack (TTF Fonts)";
+    homepage = "https://int10h.org/oldschool-pc-fonts/";
+    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..5773aa94d5b5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/undefined-medium/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchzip }:
+
+fetchzip rec {
+  name = "undefined-medium-1.0";
+
+  url = "https://github.com/andirueckel/undefined-medium/archive/v1.0.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile ${name}/fonts/otf/\*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "1wa04jzbffshwcxm705yb5wja8wakn8j7fvim1mlih2z1sqw0njk";
+
+  meta = with lib; {
+    homepage = "https://undefined-medium.com/";
+    description = "A pixel grid-based monospace typeface";
+    longDescription = ''
+      undefined medium is a free and open-source pixel grid-based
+      monospace typeface suitable for programming, writing, and
+      whatever else you can think of … it’s pretty undefined.
+    '';
+    license = licenses.ofl;
+    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..7f01d5531e15
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/unfonts-core/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchzip }:
+
+let
+  pname = "unfonts-core";
+  version = "1.0.2-080608";
+in fetchzip {
+  name = "${pname}-${version}";
+  url = "https://kldp.net/unfonts/release/2607-un-fonts-core-${version}.tar.gz";
+  hash = "sha256-k9C7d/SbVLWFzRnDWpOIMtY6cAEIcaLcbxQAqjwuWds=";
+
+  postFetch = ''
+    tar -xzf $downloadedFile --strip-components=1
+    install -m444 -Dt $out/share/fonts/truetype *.ttf
+  '';
+
+  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..56ba36b1eb41
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/uni-vga/default.nix
@@ -0,0 +1,58 @@
+{ lib, stdenv, fetchurl, perl, kbd, bdftopcf
+, libfaketime, fonttosfnt, mkfontscale
+}:
+
+with lib;
+
+stdenv.mkDerivation {
+  name = "uni-vga";
+
+  src = fetchurl {
+    url = "http://www.inp.nsk.su/~bolkhov/files/fonts/univga/uni-vga.tgz";
+    sha256 = "05sns8h5yspa7xkl81ri7y1yxf5icgsnl497f3xnaryhx11s2rv6";
+  };
+
+  nativeBuildInputs =
+    [ bdftopcf libfaketime
+      fonttosfnt mkfontscale
+    ] ++ optionals stdenv.isLinux [ perl kbd ];
+
+  postPatch = "patchShebangs .";
+
+  buildPhase = ''
+    # convert font to compressed pcf
+    bdftopcf u_vga16.bdf | gzip -c -9 -n  > u_vga16.pcf.gz
+
+    # convert bdf font to otb
+    faketime -f "1970-01-01 00:00:01" \
+    fonttosfnt -v -o u_vga16.otb u_vga16.bdf
+  '' + optionalString stdenv.isLinux ''
+    # convert font to compressed psf
+    ./bdf2psf.pl -s UniCyrX.sfm u_vga16.bdf \
+      | psfaddtable - UniCyrX.sfm - \
+      | gzip -c -9 -n > u_vga16.psf.gz
+  '';
+
+  installPhase = ''
+    # install pcf and otb (for X11 and GTK applications)
+    install -m 644 -D *.otb *.pcf.gz -t "$out/share/fonts"
+    mkfontdir "$out/share/fonts"
+
+    # install bdf font
+    install -m 644 -D *.bdf -t "$bdf/share/fonts"
+    mkfontdir "$bdf/share/fonts"
+
+  '' + optionalString stdenv.isLinux ''
+    # install psf (for linux virtual terminal)
+    install -m 644 -D *.psf.gz -t "$out/share/consolefonts"
+  '';
+
+  outputs = [ "out" "bdf" ];
+
+  meta = {
+    description = "Unicode VGA font";
+    maintainers = [ maintainers.ftrvxmtrx ];
+    homepage = "http://www.inp.nsk.su/~bolkhov/files/fonts/univga/";
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/unifont/default.nix b/nixpkgs/pkgs/data/fonts/unifont/default.nix
new file mode 100644
index 000000000000..44c3a2312461
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/unifont/default.nix
@@ -0,0 +1,53 @@
+{ lib, stdenv, fetchurl, mkfontscale
+, libfaketime, fonttosfnt
+}:
+
+stdenv.mkDerivation rec {
+  pname = "unifont";
+  version = "14.0.01";
+
+  ttf = fetchurl {
+    url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.ttf";
+    sha256 = "19algkm4nnixmzshc25rjgh8gfccqinallgi86wgvkcwcmn6ccn6";
+  };
+
+  pcf = fetchurl {
+    url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.pcf.gz";
+    sha256 = "1aj29pswi6qwpvjwncv5w3ndwy2nzli0200i6dx6f80036z8nz9i";
+  };
+
+  nativeBuildInputs = [ libfaketime fonttosfnt 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 ttf fonts
+      install -m 644 -D ${pcf} $out/share/fonts/unifont.pcf.gz
+      install -m 644 -D ${ttf} $out/share/fonts/truetype/unifont.ttf
+      cd "$out/share/fonts"
+      mkfontdir
+      mkfontscale
+    '';
+
+  meta = with lib; {
+    description = "Unicode font for Base Multilingual Plane";
+    homepage = "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..902aba0caa24
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/unifont_upper/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchzip }:
+
+let
+  version = "14.0.01";
+in fetchzip rec {
+  name = "unifont_upper-${version}";
+
+  url = "mirror://gnu/unifont/unifont-${version}/${name}.ttf";
+
+  postFetch = "install -Dm644 $downloadedFile $out/share/fonts/truetype/unifont_upper.ttf";
+
+  sha256 = "0sb3m2qg0ri7zmxhjvrq8n0jmxxjx8rrx9rpibh5f5fbfkibq4gm";
+
+  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..5b4d2cb740fa
--- /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 = "1.1";
+
+  src = fetchurl {
+    url = "http://pelulamu.net/${pname}/${pname}-${version}-src.tar.gz";
+    sha256 = "0qcxcnqz2nlwfzlrn115kkp3n8dd7593h762vxs6vfqm13i39lq1";
+  };
+
+  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://pelulamu.net/unscii/";
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix b/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix
new file mode 100644
index 000000000000..a3c3f7b68aa7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix
@@ -0,0 +1,90 @@
+{ lib, stdenv, fetchurl, perl
+, bdftopcf, bdf2psf, mkfontdir
+, fonttosfnt
+, targetsDat  ? null
+, variantsDat ? null
+}:
+
+stdenv.mkDerivation rec {
+  pname = "uw-ttyp0";
+  version = "1.3";
+
+  src = fetchurl {
+    url = "https://people.mpi-inf.mpg.de/~uwe/misc/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "1vp053bwv8sr40p3pn4sjaiq570zp7knh99z9ynk30v7ml4cz2i8";
+  };
+
+  # remove for version >1.3
+  patches = [ ./determinism.patch ];
+
+  nativeBuildInputs = [ perl bdftopcf bdf2psf fonttosfnt mkfontdir ];
+
+  # configure sizes, encodings and variants
+  preConfigure =
+    (if targetsDat == null
+      then ''
+        cat << EOF > TARGETS.dat
+        SIZES = 11 12 13 14 15 16 17 18 22 \
+        11b 12b 13b 14b 15b 16b 17b 18b 22b 15i 16i 17i 18i
+        ENCODINGS = uni
+        EOF
+      ''
+      else ''cp "${targetsDat}" TARGETS.dat'') +
+    (if variantsDat == null
+      then ''
+        cat << EOF > VARIANTS.dat
+        COPYTO AccStress PApostropheAscii
+        COPYTO PAmComma AccGraveAscii
+        COPYTO Digit0Slashed Digit0
+        EOF
+      ''
+      else ''cp "${variantsDat}" VARIANTS.dat'');
+
+  postBuild = ''
+    # convert bdf fonts to psf
+    build=$(pwd)
+    mkdir {psf,otb}
+    cd ${bdf2psf}/share/bdf2psf
+    for i in $build/genbdf/*.bdf; do
+      name="$(basename $i .bdf)"
+      bdf2psf \
+        --fb "$i" standard.equivalents \
+        ascii.set+useful.set+linux.set 512 \
+        "$build/psf/$name.psf"
+    done
+    cd -
+
+    # convert unicode bdf fonts to otb
+    for i in $build/genbdf/*-uni.bdf; do
+      name="$(basename $i .bdf)"
+      fonttosfnt -v -o "$build/otb/$name.otb" "$i"
+    done
+  '';
+
+  postInstall = ''
+    # install psf fonts
+    fontDir="$out/share/consolefonts"
+    install -m 644 -D psf/*.psf -t "$fontDir"
+
+    # install otb fonts
+    fontDir="$out/share/fonts/X11/misc"
+    install -m 644 -D otb/*.otb -t "$fontDir"
+    mkfontdir "$fontDir"
+  '';
+
+  # Nix with multiple outputs adds several flags
+  # that the ./configure script doesn't understand.
+  configurePhase = ''
+    runHook preConfigure
+    ./configure --prefix="$out"
+    runHook postConfigure
+  '';
+
+  meta = with lib; {
+    description = "Monospace bitmap screen fonts for X11";
+    homepage = "https://people.mpi-inf.mpg.de/~uwe/misc/uw-ttyp0/";
+    license = with licenses; [ free mit ];
+    maintainers = with maintainers; [ rnhmjoj ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/data/fonts/uw-ttyp0/determinism.patch b/nixpkgs/pkgs/data/fonts/uw-ttyp0/determinism.patch
new file mode 100644
index 000000000000..8546ad35933f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/uw-ttyp0/determinism.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile.in b/Makefile.in
+index b9736cd..5740412 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -76,7 +76,7 @@ bdf : $(bdf)
+ 
+ genpcf/%.pcf.gz : genbdf/%.bdf
+ 	$(BDFTOPCF) $< > $(@:.pcf.gz=.pcf)
+-	gzip -9 -f $(@:.pcf.gz=.pcf)
++	gzip -n -9 -f $(@:.pcf.gz=.pcf)
+ 
+ genbdf/t0-11-uni.bdf : bdf/t0-11.bdf bdf/t0-12.bdf VARIANTS.dat mgl/unicode.mgl
+ 	$(MKSHALLOW) bdf/t0-12.bdf | cat - bdf/t0-11.bdf | $(BDFMANGLE) - VARIANTS.dat mgl/unicode.mgl > $@
diff --git a/nixpkgs/pkgs/data/fonts/vazir-code-font/default.nix b/nixpkgs/pkgs/data/fonts/vazir-code-font/default.nix
new file mode 100644
index 000000000000..6702fd1b0220
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vazir-code-font/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "vazir-code-font";
+  version = "1.1.2";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "rastikerdar";
+  repo = "vazir-code-font";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/truetype {} \;
+  '';
+  sha256 = "0ivwpn9xm2zwhwgg9mghyiy5v66cn4786w9j6rkff5cmzshv279r";
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/vazir-code-font";
+    description = "A 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 100755
index 000000000000..b2c4f1faa3c5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vazir-fonts/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "vazir-fonts";
+  version = "30.1.0";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "rastikerdar";
+  repo = "vazir-font";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/truetype {} \;
+  '';
+  sha256 = "sha256-J1l6rBFgaXFtGnK0pH7GbaYTt5TI/OevjZrXmaEgkB4=";
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/vazir-font";
+    description = "A 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..4b280df56441
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vdrsymbols/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "vdrsymbols-20100612";
+
+  url = "http://andreas.vdr-developer.org/fonts/download/vdrsymbols-ttf-20100612.tgz";
+
+  sha256 = "0wpxns8zqic98c84j18dr4zmj092v07yq07vwwgzblr0rw9n6gzr";
+
+  postFetch = ''
+    tar xvzf "$downloadedFile"
+    install -Dm444 -t "$out/share/fonts/truetype" */*.ttf
+  '';
+
+  meta = with lib; {
+    description = "DejaVu fonts with additional symbols used by VDR";
+    homepage = "http://andreas.vdr-developer.org/fonts/";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ck3d ];
+
+    # Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved.
+    # Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
+    # DejaVu changes are in public domain
+    # See https://dejavu-fonts.github.io/License.html for details
+    license = licenses.free;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/vegur/default.nix b/nixpkgs/pkgs/data/fonts/vegur/default.nix
new file mode 100644
index 000000000000..2f03dac3914b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vegur/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPackages, fetchzip }:
+
+let
+  version = "0.701";
+in fetchzip {
+  name = "vegur-font-${version}";
+
+  # Upstream doesn't version their URLs.
+  # http://dotcolon.net/font/vegur/ → http://dotcolon.net/DL/font/vegur.zip
+  url = "http://download.opensuse.org/repositories/M17N:/fonts/SLE_12_SP3/src/dotcolon-vegur-fonts-0.701-1.4.src.rpm";
+
+  postFetch = ''
+    ${buildPackages.rpmextract}/bin/rpmextract $downloadedFile
+    unzip vegur.zip
+    install -m444 -Dt $out/share/fonts/Vegur *.otf
+  '';
+  sha256 = "0iisi2scq72lyj7pc1f36fhfjnm676n5byl4zaavhbxpdrbc6d1v";
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/vegur/";
+    description = "A humanist sans serif font";
+    platforms = platforms.all;
+    maintainers = [ maintainers.samueldr ];
+    license = licenses.cc0;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/victor-mono/default.nix b/nixpkgs/pkgs/data/fonts/victor-mono/default.nix
new file mode 100644
index 000000000000..45873e1b7f96
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/victor-mono/default.nix
@@ -0,0 +1,33 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.5.2";
+in
+fetchzip {
+  name = "victor-mono-${version}";
+
+  # Upstream prefers we download from the website,
+  # but we really insist on a more versioned resource.
+  # Happily, tagged releases on github contain the same
+  # file `VictorMonoAll.zip` as from the website,
+  # so we extract it from the tagged release.
+  # Both methods produce the same file, but this way
+  # we can safely reason about what version it is.
+  url = "https://github.com/rubjo/victor-mono/raw/v${version}/public/VictorMonoAll.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  sha256 = "sha256-cNDZh0P/enmoKL/6eHzkgl5ghtai2K9cTgWMVmm8GIA=";
+
+  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..6c5836da5b05
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/vollkorn/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchzip }:
+let
+  pname = "vollkorn";
+  version = "4.105";
+in
+fetchzip {
+  name = "${pname}-${version}";
+  url = "http://vollkorn-typeface.com/download/vollkorn-${builtins.replaceStrings ["."] ["-"] version}.zip";
+  sha256 = "0srff2nqs7353mqcpmvaq156lamfh621py4h1771n0l9ix2c8mss";
+  stripRoot = false;
+
+  postFetch = ''
+    mkdir -pv $out/share/{doc/${pname}-${version},fonts/{opentype,truetype,WOFF,WOFF2}}
+    unzip $downloadedFile
+    cp -v {Fontlog,OFL-FAQ,OFL}.txt $out/share/doc/${pname}-${version}/
+    cp -v PS-OTF/*.otf $out/share/fonts/opentype
+    cp -v TTF/*.ttf $out/share/fonts/truetype
+    cp -v WOFF/*.woff $out/share/fonts/WOFF
+    cp -v WOFF2/*.woff2 $out/share/fonts/WOFF2
+  '';
+
+  meta = with lib; {
+    homepage = "http://vollkorn-typeface.com/";
+    description = "The free and healthy typeface for bread and butter use";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.schmittlauch ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/weather-icons/default.nix b/nixpkgs/pkgs/data/fonts/weather-icons/default.nix
new file mode 100644
index 000000000000..a979dca44774
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/weather-icons/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchzip }:
+
+let
+  version = "2.0.12";
+in fetchzip {
+  name = "weather-icons-${version}";
+
+  url = "https://github.com/erikflowers/weather-icons/archive/refs/tags/${version}.zip";
+  sha256 = "sha256-NGPzAloeZa1nCazb+mjAbYw7ZYYDoKpLwcvzg1Ly9oM=";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile weather-icons-${version}/_docs/font-source/weathericons-regular.otf -d $out/share/fonts/opentype
+  '';
+
+
+  meta = with lib; {
+    description = "Weather Icons";
+    longDescription = ''
+      Weather Icons is the only icon font and CSS with 222 weather themed icons,
+      ready to be dropped right into Bootstrap, or any project that needs high
+      quality weather, maritime, and meteorological based icons!
+    '';
+    homepage = "https://erikflowers.github.io/weather-icons/";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ pnelson ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/work-sans/default.nix b/nixpkgs/pkgs/data/fonts/work-sans/default.nix
new file mode 100644
index 000000000000..16a0e9ac021a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/work-sans/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchFromGitHub }:
+
+let
+  version = "1.6";
+in fetchFromGitHub {
+  name = "work-sans-${version}";
+
+  owner = "weiweihuanghuang";
+  repo = "Work-Sans";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -m444 -Dt $out/share/fonts/opentype/ fonts/desktop/*.otf
+    install -m444 -Dt $out/share/fonts/truetype/ fonts/webfonts/ttf/*.ttf
+    install -m444 -Dt $out/share/fonts/woff/     fonts/webfonts/woff/*.woff
+    install -m444 -Dt $out/share/fonts/woff2/    fonts/webfonts/woff2/*.woff2
+  '';
+
+  sha256 = "01kjidk6zv80rqxapcdwhd9wxzrjfc6lj4gkf6dwa4sskw5x3b8a";
+
+  meta = with lib; {
+    description = "A grotesque sans";
+    homepage = "https://weiweihuanghuang.github.io/Work-Sans/";
+    license = licenses.ofl;
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/wqy-microhei/default.nix b/nixpkgs/pkgs/data/fonts/wqy-microhei/default.nix
new file mode 100644
index 000000000000..f7d3b0333c5e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/wqy-microhei/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchzip }:
+
+fetchzip rec {
+  name = "wqy-microhei-0.2.0-beta";
+
+  url = "mirror://sourceforge/wqy/${name}.tar.gz";
+
+  postFetch = ''
+    tar -xzf $downloadedFile --strip-components=1
+    install -Dm644 wqy-microhei.ttc $out/share/fonts/wqy-microhei.ttc
+  '';
+
+  sha256 = "0i5jh7mkp371fxqmsvn7say075r641yl4hq26isjyrqvb8cv92a9";
+
+  meta = {
+    description = "A (mainly) Chinese Unicode font";
+    homepage = "http://wenq.org";
+    license = lib.licenses.asl20;
+    maintainers = [ lib.maintainers.pkmx ];
+    platforms = lib.platforms.all;
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/fonts/wqy-zenhei/default.nix b/nixpkgs/pkgs/data/fonts/wqy-zenhei/default.nix
new file mode 100644
index 000000000000..5d461d0f5b00
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/wqy-zenhei/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "0.9.45";
+in fetchzip rec {
+  name = "wqy-zenhei-${version}";
+
+  url = "mirror://sourceforge/wqy/${name}.tar.gz";
+
+  postFetch = ''
+    tar -xzf $downloadedFile --strip-components=1
+    mkdir -p $out/share/fonts
+    install -m644 *.ttc $out/share/fonts/
+  '';
+
+  sha256 = "0hbjq6afcd63nsyjzrjf8fmm7pn70jcly7fjzjw23v36ffi0g255";
+
+  meta = {
+    description = "A (mainly) Chinese Unicode font";
+    homepage = "http://wenq.org";
+    license = lib.licenses.gpl2; # with font embedding exceptions
+    maintainers = [ lib.maintainers.pkmx ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/xits-math/default.nix b/nixpkgs/pkgs/data/fonts/xits-math/default.nix
new file mode 100644
index 000000000000..9e3c013f44de
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/xits-math/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub, python3Packages}:
+
+stdenv.mkDerivation rec {
+  pname = "xits-math";
+  version = "1.302";
+
+  src = fetchFromGitHub {
+    owner = "alif-type";
+    repo = "xits";
+    rev = "v${version}";
+    sha256 = "1x3r505dylz9rz8dj98h5n9d0zixyxmvvhnjnms9qxdrz9bxy9g1";
+  };
+
+  nativeBuildInputs = (with python3Packages; [ python fonttools fontforge ]);
+
+  postPatch = ''
+    rm *.otf
+  '';
+
+  installPhase = ''
+    install -m444 -Dt $out/share/fonts/opentype *.otf
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/alif-type/xits";
+    description = "OpenType implementation of STIX fonts with math support";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/xkcd-font/default.nix b/nixpkgs/pkgs/data/fonts/xkcd-font/default.nix
new file mode 100644
index 000000000000..af740e408981
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/xkcd-font/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "xkcd-font";
+  version = "unstable-2017-08-24";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "ipython";
+  repo = pname;
+  rev = "5632fde618845dba5c22f14adc7b52bf6c52d46d";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -Dm444 -t $out/share/fonts/opentype/ xkcd/build/xkcd.otf
+    install -Dm444 -t $out/share/fonts/truetype/ xkcd-script/font/xkcd-script.ttf
+  '';
+  sha256 = "0xhwa53aiz20763jb9nvbr2zq9k6jl69p07dc4b0apwrrwz0jfr1";
+
+  meta = with lib; {
+    description = "The xkcd font";
+    homepage = "https://github.com/ipython/xkcd-font";
+    license = licenses.cc-by-nc-30;
+    platforms = platforms.all;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/yanone-kaffeesatz/default.nix b/nixpkgs/pkgs/data/fonts/yanone-kaffeesatz/default.nix
new file mode 100644
index 000000000000..bd610938154d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/yanone-kaffeesatz/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchzip }:
+
+fetchzip {
+  name = "yanone-kaffeesatz-2004";
+
+  url = "https://yanone.de/2015/data/UIdownloads/Yanone%20Kaffeesatz.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "190c4wx7avy3kp98lsyml7kc0jw7csf5n79af2ypbkhsadfsy8di";
+
+  meta = {
+    description = "The free font classic";
+    maintainers = with lib.maintainers; [ mt-caret ];
+    platforms = with lib.platforms; all;
+    homepage = "https://yanone.de/fonts/kaffeesatz/";
+    license = lib.licenses.ofl;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/zilla-slab/default.nix b/nixpkgs/pkgs/data/fonts/zilla-slab/default.nix
new file mode 100644
index 000000000000..a244c04a65cd
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/zilla-slab/default.nix
@@ -0,0 +1,33 @@
+{ lib, fetchzip }:
+
+let
+  version = "1.002";
+in fetchzip {
+  name = "zilla-slab-${version}";
+
+  url = "https://github.com/mozilla/zilla-slab/releases/download/v${version}/Zilla-Slab-Fonts-v${version}.zip";
+  postFetch = ''
+    unzip $downloadedFile
+    mkdir -p $out/share/fonts/truetype
+    cp -v zilla-slab/ttf/*.ttf $out/share/fonts/truetype/
+  '';
+  sha256 = "1b1ys28hyjcl4qwbnsyi6527nj01g3d6id9jl23fv6f8fjm4ph0f";
+
+  meta = with lib; {
+    homepage = "https://github.com/mozilla/zilla-slab";
+    description = "Zilla Slab fonts";
+    longDescription = ''
+      Zilla Slab is Mozilla's core typeface, used
+      for the Mozilla wordmark, headlines and
+      throughout their designs. A contemporary
+      slab serif, based on Typotheque's Tesla, it
+      is constructed with smooth curves and true
+      italics, which gives text an unexpectedly
+      sophisticated industrial look and a friendly
+      approachability in all weights.
+    '';
+    license = licenses.ofl;
+    maintainers = with maintainers; [ caugner ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/arc-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/arc-icon-theme/default.nix
new file mode 100644
index 000000000000..88184b585ecf
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/arc-icon-theme/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, gtk3, gnome, moka-icon-theme, gnome-icon-theme, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  pname = "arc-icon-theme";
+  version = "2016-11-22";
+
+  src = fetchFromGitHub {
+    owner = "horst3180";
+    repo = pname;
+    rev = "55a575386a412544c3ed2b5617a61f842ee4ec15";
+    sha256 = "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    moka-icon-theme
+    gnome.adwaita-icon-theme
+    gnome-icon-theme
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  postFixup = "gtk-update-icon-cache $out/share/icons/Arc";
+
+  meta = with lib; {
+    description = "Arc icon theme";
+    homepage = "https://github.com/horst3180/arc-icon-theme";
+    license = licenses.gpl3;
+    # moka-icon-theme dependency is restricted to linux
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/beauty-line-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/beauty-line-icon-theme/default.nix
new file mode 100644
index 000000000000..2942315f7da1
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/beauty-line-icon-theme/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, fetchzip, breeze-icons, gtk3, gnome-icon-theme, hicolor-icon-theme, mint-x-icons, pantheon }:
+
+stdenv.mkDerivation rec {
+  pname = "BeautyLine";
+  version = "0.0.1";
+
+  src = fetchzip {
+    name = "${pname}-${version}";
+    url = "https://github.com/gvolpe/BeautyLine/releases/download/${version}/BeautyLine.tar.gz";
+    sha256 = "030bjk333fr9wm1nc740q8i31rfsgf3vg6cvz36xnvavx3q363l7";
+  };
+
+  nativeBuildInputs = [ gtk3 ];
+
+  # ubuntu-mono is also required but missing in ubuntu-themes (please add it if it is packaged at some point)
+  propagatedBuildInputs = [
+    breeze-icons
+    gnome-icon-theme
+    hicolor-icon-theme
+    mint-x-icons
+    pantheon.elementary-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    mkdir -p $out/share/icons/${pname}
+    cp -r * $out/share/icons/${pname}/
+    gtk-update-icon-cache $out/share/icons/${pname}
+  '';
+
+  meta = with lib; {
+    description = "BeautyLine icon theme";
+    homepage = "https://www.gnome-look.org/p/1425426/";
+    platforms = platforms.linux;
+    license = [ licenses.publicDomain ];
+    maintainers = with maintainers; [ gvolpe ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/bibata-cursors/default.nix b/nixpkgs/pkgs/data/icons/bibata-cursors/default.nix
new file mode 100644
index 000000000000..15905bec3a97
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/bibata-cursors/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchurl
+, clickgen
+, unzip
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bibata-cursors";
+  version = "1.1.2";
+
+  src = fetchFromGitHub {
+    owner = "ful1e5";
+    repo = "Bibata_Cursor";
+    rev = "v${version}";
+    sha256 = "1q2wdbrmdnr9mwiilm5cc9im3zwbl7yaj1zpy5wwn44ypq3hcngy";
+  };
+
+  bitmaps = fetchurl {
+    url = "https://github.com/ful1e5/Bibata_Cursor/releases/download/v${version}/bitmaps.zip";
+    sha256 = "1pcn6par0f0syyhzpzmqr3c6b9ri4lprkdd2ncwzdas01p2d9v1i";
+  };
+
+  nativeBuildInputs = [ unzip ];
+
+  buildInputs = [ clickgen ];
+
+  buildPhase = ''
+    mkdir bitmaps
+    unzip $bitmaps -d bitmaps
+    rm -rf themes
+    cd builder && make build_unix
+  '';
+
+  installPhase = ''
+    install -dm 0755 $out/share/icons
+    cd ../
+    cp -rf themes/* $out/share/icons/
+  '';
+
+  postPatch = ''
+    substituteInPlace "builder/Makefile" \
+      --replace "/bin/bash" "bash"
+  '';
+
+  meta = with lib; {
+    description = "Material Based Cursor Theme";
+    homepage = "https://github.com/ful1e5/Bibata_Cursor";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ rawkode AdsonCicilioti ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/bibata-cursors/extra.nix b/nixpkgs/pkgs/data/icons/bibata-cursors/extra.nix
new file mode 100644
index 000000000000..a6fdaca84277
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/bibata-cursors/extra.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchurl
+, clickgen
+, unzip
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bibata-extra-cursors";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "ful1e5";
+    repo = "Bibata_Extra_Cursor";
+    rev = "v${version}";
+    sha256 = "0wndl4c547k99y0gq922hn7z1mwdgxvvyjfm6757g6shfbcmkz7m";
+  };
+
+  bitmaps = fetchurl {
+    url = "https://github.com/ful1e5/Bibata_Extra_Cursor/releases/download/v${version}/bitmaps.zip";
+    sha256 = "0vf14ln53wigaq3dkqdk5avarqplsq751nlv72da04ms6gqjfhdl";
+  };
+
+  nativeBuildInputs = [ unzip ];
+
+  buildInputs = [ clickgen ];
+
+  buildPhase = ''
+    mkdir bitmaps
+    unzip $bitmaps -d bitmaps
+    rm -rf themes
+    cd builder && make build_unix
+  '';
+
+  installPhase = ''
+    install -dm 0755 $out/share/icons
+    cd ../
+    cp -rf themes/* $out/share/icons/
+  '';
+
+  postPatch = ''
+    substituteInPlace "builder/Makefile" \
+      --replace "/bin/bash" "bash"
+  '';
+
+  meta = with lib; {
+    description = "Material Based Cursor Theme";
+    homepage = "https://github.com/ful1e5/Bibata_Extra_Cursor";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ dtzWill AdsonCicilioti ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/bibata-cursors/translucent.nix b/nixpkgs/pkgs/data/icons/bibata-cursors/translucent.nix
new file mode 100644
index 000000000000..74d7c4d7c3f9
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/bibata-cursors/translucent.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "bibata-cursors-translucent";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "Silicasandwhich";
+    repo = "Bibata_Cursor_Translucent";
+    rev = "v${version}";
+    sha256 = "1ddnwqkxricnd731blckcxvksbgql8k4pfiz65591p81n5095k8y";
+  };
+
+  installPhase = ''
+    install -dm 0755 $out/share/icons
+    cp -pr Bibata_* $out/share/icons/
+  '';
+
+  meta = with lib; {
+    description = "Translucent Varient of the Material Based Cursor";
+    homepage = "https://github.com/Silicasandwhich/Bibata_Cursor_Translucent";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ dtzWill AdsonCicilioti ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/capitaine-cursors/default.nix b/nixpkgs/pkgs/data/icons/capitaine-cursors/default.nix
new file mode 100644
index 000000000000..075dbc922bd4
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/capitaine-cursors/default.nix
@@ -0,0 +1,57 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, makeFontsConf
+, inkscape, xcursorgen, bc }:
+
+stdenv.mkDerivation rec {
+  pname = "capitaine-cursors";
+  version = "4";
+
+  src = fetchFromGitHub {
+    owner = "keeferrourke";
+    repo = pname;
+    rev = "r${version}";
+    sha256 = "0652ydy73x29z7wc6ccyqihmfg4bk0ksl7yryycln6c7i0iqfmc9";
+  };
+
+  patches = [
+    # Fixes the build on inscape => 1.0, without this it generates empty cursor files
+    (fetchpatch {
+      name = "inkscape-1.0-compat";
+      url = "https://github.com/keeferrourke/capitaine-cursors/commit/9da0b53e6098ed023c5c24c6ef6bfb1f68a79924.patch";
+      sha256 = "0lx5i60ahy6a2pir4zzlqn5lqsv6claqg8mv17l1a028h9aha3cv";
+    })
+  ];
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  # Complains about not being able to find the fontconfig config file otherwise
+  FONTCONFIG_FILE = makeFontsConf { fontDirectories = [ ]; };
+
+  buildInputs = [
+    inkscape
+    xcursorgen
+    bc
+  ];
+
+  buildPhase = ''
+    for variant in dark light ; do
+    # https://github.com/NixOS/nixpkgs/blob/master/pkgs/data/fonts/emojione/default.nix#L16
+      HOME="$NIX_BUILD_ROOT" ./build.sh --max-dpi xhd --type $variant
+    done
+  '';
+
+  installPhase = ''
+    install -dm 0755 $out/share/icons
+    cp -pr dist/dark $out/share/icons/capitaine-cursors
+    cp -pr dist/light $out/share/icons/capitaine-cursors-white
+  '';
+
+  meta = with lib; {
+    description = "An x-cursor theme inspired by macOS and based on KDE Breeze";
+    homepage = "https://github.com/keeferrourke/capitaine-cursors";
+    license = licenses.lgpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ eadwu ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/comixcursors/default.nix b/nixpkgs/pkgs/data/icons/comixcursors/default.nix
new file mode 100644
index 000000000000..aa744878bcb3
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/comixcursors/default.nix
@@ -0,0 +1,125 @@
+{ lib, stdenv, fetchFromGitLab, bc, librsvg, xcursorgen }:
+
+let
+  dimensions = {
+    color = [ "Black" "Blue" "Green" "Orange" "Red" "White" ];
+    opacity = [ "" "Opaque_" ];  # Translucent or opaque.
+    thickness = [ "" "Slim_" ];  # Thick or slim edges.
+    handedness = [ "" "LH_" ];   # Right- or left-handed.
+  };
+  product = lib.cartesianProductOfSets dimensions;
+  variantName =
+    { color, opacity, thickness, handedness }:
+    "${handedness}${opacity}${thickness}${color}";
+  variants =
+    # (The order of this list is already good looking enough to show in the
+    # meta.longDescription.)
+    map variantName product;
+in
+stdenv.mkDerivation rec {
+  pname = "comixcursors";
+  version = "0.9.2";
+
+  src = fetchFromGitLab {
+    owner = "limitland";
+    repo = "comixcursors";
+    # https://gitlab.com/limitland/comixcursors/-/issues/3
+    rev = "8c327c8514ab3a352583605c1ddcb7eb3d1d302b";
+    sha256 = "0bpxqw4izj7m0zb9lnxnmsjicfw60ppkdyv5nwrrz4x865wb296a";
+  };
+
+  nativeBuildInputs = [ bc librsvg xcursorgen ];
+
+  patches = [ ./makefile-shell-var.patch ];
+
+  postPatch = ''
+    patchShebangs ./install-all ./bin/
+  '';
+
+  # install-all is used instead of the directions in upstream's INSTALL file,
+  # because using its Makefile directly is broken.  Upstream itself seems to use
+  # its build-distribution script instead, which also uses install-all, but we
+  # do not use it because it does extra things for other distros.
+  #
+  # When not all of the variants, i.e. only a smaller subset of them, are
+  # desired (i.e. when a subset of outputs are chosen), install-all will still
+  # build all of them.  While upstream appears to provide old functionality for
+  # building only a subset, it is broken and we do not use it.  With prebuilt
+  # substitutions, installers of this package will get only the outputs they
+  # chose.
+  buildPhase = ''
+    ICONSDIR=$TMP/staged ./install-all
+  '';
+
+  installPhase = ''
+    for outputName in $outputs ; do
+      if [ $outputName != out ]; then
+        local outputDir=''${!outputName};
+        local iconsDir=$outputDir/share/icons
+        local cursorName=$(tr _ - <<<"$outputName")
+
+        mkdir -p $iconsDir
+        cp -r -d $TMP/staged/ComixCursors-$cursorName $iconsDir
+
+        unset outputDir iconsDir cursorName
+      fi
+    done
+
+    # Need this directory (empty) to prevent the builder scripts from breaking.
+    mkdir -p $out
+  '';
+
+  outputs = let
+    default = "Opaque_Black";
+  in
+    # Have the most-traditional variant be the default output (as the first).
+    # Even with outputsToInstall=[], the default/first still has an effect on
+    # some Nix tools (e.g. nix-build).
+    [ default ] ++ (lib.remove default variants)
+    # Need a dummy "out" output to prevent the builder scripts from breaking.
+    ++ [ "out" ];
+
+  # No default output (to the extent possible).  Instead, the outputs'
+  # attributes are used to choose which variant(s) to have.
+  outputsToInstall = [];
+
+  meta = with lib; {
+    description = "The Comix Cursors mouse themes";
+    longDescription = ''
+      There are many (${toString ((length outputs) - 1)}) variants of color,
+      opacity, edge thickness, and right- or left-handedness, for this cursor
+      theme.  This package's derivation has an output for each of these
+      variants, named following the upstream convention, and the attribute for
+      an output must be used to install a variant.  E.g.:
+      <programlisting language="nix">
+      environment.systemPackages = [
+        comixcursors.Blue
+        comixcursors.Opaque_Orange
+        comixcursors.Slim_Red
+        comixcursors.Opaque_Slim_White
+        comixcursors.LH_Green
+        comixcursors.LH_Opaque_Black
+        comixcursors.LH_Slim_Orange
+        comixcursors.LH_Opaque_Slim_Blue
+      ];
+      </programlisting>
+
+      Attempting to use just <literal>comixcursors</literal>, i.e. without an
+      output attribute, will not install any variants.  To install all the
+      variants, use <literal>comixcursors.all</literal> (which is a list), e.g.:
+      <programlisting language="nix">
+      environment.systemPackages = comixcursors.all ++ [...];
+      </programlisting>
+
+      The complete list of output attributes is:
+      <programlisting>
+      ${concatStringsSep "\n" variants}
+      </programlisting>
+    '';
+    homepage = "https://gitlab.com/limitland/comixcursors";
+    changelog = "https://gitlab.com/limitland/comixcursors/-/blob/HEAD/NEWS";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.DerickEddington ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/comixcursors/makefile-shell-var.patch b/nixpkgs/pkgs/data/icons/comixcursors/makefile-shell-var.patch
new file mode 100644
index 000000000000..4032244c9ef0
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/comixcursors/makefile-shell-var.patch
@@ -0,0 +1,11 @@
+--- a/Makefile
++++ b/Makefile
+@@ -22,8 +22,6 @@
+ 
+ # Makefile for ComixCursors project.
+ 
+-SHELL = /bin/bash
+-
+ CURSORSNAME = ComixCursors
+ PACKAGENAME ?= ${CURSORSNAME}
+ SUMMARY ?= The original Comix Cursors
diff --git a/nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
new file mode 100644
index 000000000000..384086204c1b
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, fetchFromGitHub, pkg-config, gdk-pixbuf, optipng, librsvg, gtk3, pantheon, gnome, gnome-icon-theme, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  pname = "elementary-xfce-icon-theme";
+  version = "0.15.2";
+
+  src = fetchFromGitHub {
+    owner = "shimmerproject";
+    repo = "elementary-xfce";
+    rev = "v${version}";
+    sha256 = "sha256-E8f6UU/4Y9Nfk7LjDcdyV+TdeVj/zl3oFCyEu3Gz27w=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    gdk-pixbuf
+    librsvg
+    optipng
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    pantheon.elementary-icon-theme
+    gnome.adwaita-icon-theme
+    gnome-icon-theme
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  postPatch = ''
+    substituteInPlace svgtopng/Makefile --replace "-O0" "-O"
+  '';
+
+  postInstall = ''
+    make icon-caches
+  '';
+
+  meta = with lib; {
+    description = "Elementary icons for Xfce and other GTK desktops like GNOME";
+    homepage = "https://github.com/shimmerproject/elementary-xfce";
+    license = licenses.gpl2;
+    # darwin cannot deal with file names differing only in case
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ davidak ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/faba-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/faba-icon-theme/default.nix
new file mode 100644
index 000000000000..6ccd4c4622fa
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/faba-icon-theme/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchFromGitHub, meson, ninja, python3, gtk3, pantheon, gnome-icon-theme, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  name = "${package-name}-${version}";
+  package-name = "faba-icon-theme";
+  version = "4.3";
+
+  src = fetchFromGitHub {
+    owner = "moka-project";
+    repo = package-name;
+    rev = "v${version}";
+    sha256 = "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    python3
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    pantheon.elementary-icon-theme
+    gnome-icon-theme
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  postPatch = ''
+    patchShebangs meson/post_install.py
+  '';
+
+  meta = with lib; {
+    description = "A sexy and modern icon theme with Tango influences";
+    homepage = "https://snwh.org/moka";
+    license = with licenses; [ cc-by-sa-40 gpl3 ];
+    platforms = platforms.all;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/faba-mono-icons/default.nix b/nixpkgs/pkgs/data/icons/faba-mono-icons/default.nix
new file mode 100644
index 000000000000..0627c87bfc5e
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/faba-mono-icons/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, gtk3, moka-icon-theme, faba-icon-theme, gnome-icon-theme, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  pname = "faba-mono-icons";
+  version = "2016-04-30";
+
+  src = fetchFromGitHub {
+    owner = "snwh";
+    repo = pname;
+    rev = "2006c5281eb988c799068734f289a85443800cda";
+    sha256 = "0nisfl92y6hrbakp9qxi0ygayl6avkzrhwirg6854bwqjy2dvjv9";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    moka-icon-theme
+    faba-icon-theme
+    gnome-icon-theme
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  postInstall = ''
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+  '';
+
+  meta = with lib; {
+    description = "The full set of Faba monochrome panel icons";
+    homepage = "https://snwh.org/moka";
+    license = licenses.gpl3;
+    # moka-icon-theme dependency is restricted to linux
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/flat-remix-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/flat-remix-icon-theme/default.nix
new file mode 100644
index 000000000000..69e18beec32d
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/flat-remix-icon-theme/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv, fetchFromGitHub, gtk3, breeze-icons, pantheon, gnome-icon-theme, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec  {
+  pname = "flat-remix-icon-theme";
+  version = "20211106";
+
+  src = fetchFromGitHub {
+    owner = "daniruiz";
+    repo = "flat-remix";
+    rev = version;
+    sha256 = "1dlz88bg764zzd0s3yqci4m1awhwdrrql9l9plsjjzgdx9r7ndmf";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    breeze-icons
+    pantheon.elementary-icon-theme
+    gnome-icon-theme
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    mkdir -p $out/share/icons
+    mv Flat-Remix* $out/share/icons/
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+  '';
+
+  meta = with lib; {
+    description = "Flat remix is a pretty simple icon theme inspired on material design";
+    homepage = "https://drasite.com/flat-remix";
+    license = with licenses; [ gpl3 ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ mschneider ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/gnome-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/gnome-icon-theme/default.nix
new file mode 100644
index 000000000000..239cf052ca9e
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/gnome-icon-theme/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchurl, pkg-config, intltool, iconnamingutils, gtk2 }:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-icon-theme";
+  version = "3.12.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-icon-theme/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    intltool
+    iconnamingutils
+    gtk2
+  ];
+
+  dontDropIconThemeCache = true;
+
+  postInstall = ''
+    # remove a tree of dirs with no files within
+    rm -r "$out/share/locale"
+  '';
+
+  meta = with lib; {
+    description = "Collection of icons for the GNOME 2 desktop";
+    homepage = "https://download.gnome.org/sources/gnome-icon-theme/";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+    broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/gnome-icon-theme.x86_64-darwin
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/gruvbox-dark-icons-gtk/default.nix b/nixpkgs/pkgs/data/icons/gruvbox-dark-icons-gtk/default.nix
new file mode 100644
index 000000000000..7b779191b6b2
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/gruvbox-dark-icons-gtk/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchFromGitHub, gtk3, breeze-icons, gnome-icon-theme, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  pname = "gruvbox-dark-icons-gtk";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "jmattheis";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1fks2rrrb62ybzn8gqan5swcgksrb579vk37bx4xpwkc552dz2z2";
+  };
+
+  nativeBuildInputs = [ gtk3 ];
+
+  propagatedBuildInputs = [ breeze-icons gnome-icon-theme hicolor-icon-theme ];
+
+  installPhase = ''
+    mkdir -p $out/share/icons/oomox-gruvbox-dark
+    rm README.md
+    cp -r * $out/share/icons/oomox-gruvbox-dark
+    gtk-update-icon-cache $out/share/icons/oomox-gruvbox-dark
+  '';
+
+  dontDropIconThemeCache = true;
+
+  meta = with lib; {
+    description = "Gruvbox icons for GTK based desktop environments";
+    homepage = "https://github.com/jmattheis/gruvbox-dark-gtk";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.nomisiv ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/hicolor-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/hicolor-icon-theme/default.nix
new file mode 100644
index 000000000000..3a8839844f11
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/hicolor-icon-theme/default.nix
@@ -0,0 +1,18 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "hicolor-icon-theme-0.17";
+
+  src = fetchurl {
+    url = "https://icon-theme.freedesktop.org/releases/${name}.tar.xz";
+    sha256 = "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i";
+  };
+
+  setupHook = ./setup-hook.sh;
+
+  meta = with lib; {
+    description = "Default fallback theme used by implementations of the icon theme specification";
+    homepage = "https://icon-theme.freedesktop.org/releases/";
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/hicolor-icon-theme/setup-hook.sh b/nixpkgs/pkgs/data/icons/hicolor-icon-theme/setup-hook.sh
new file mode 100644
index 000000000000..df7cac08b058
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/hicolor-icon-theme/setup-hook.sh
@@ -0,0 +1,53 @@
+# shellcheck shell=bash
+
+# Populate XDG_ICON_DIRS
+hicolorIconThemeHook() {
+
+    # where to find icon themes
+    if [ -d "$1/share/icons" ]; then
+      addToSearchPath XDG_ICON_DIRS "$1/share"
+    fi
+}
+
+# I think this is meant to be a runtime dep
+addEnvHooks "${targetOffset:?}" hicolorIconThemeHook
+
+# Make symbolic links of parent icon themes that are inherited in the
+# icon themes installed by the package.
+symlinkParentIconThemes() {
+    if [ -e $out/share/icons ]; then
+        echo Symlinking parent icon themes...
+        local theme
+        local theme_name
+        local inheritance
+        local parent
+        local parent_theme
+        local dir
+        local parent_path
+        for theme in $out/share/icons/*/index.theme; do
+            theme_name="${theme%/*}"
+            theme_name="${theme_name##*/}"
+            echo "  theme: $theme_name"
+            inheritance=$(sed -rne 's,^Inherits=(.*)$,\1,p' "$theme")
+            IFS=',' read -ra parent_themes <<< "$inheritance"
+            for parent_theme in "${parent_themes[@]}"; do
+                parent_path=""
+                if [ -e "$out/share/icons/$parent_theme" ]; then
+                    parent_path="$(realpath "$out/share/icons/$parent_theme")"
+                else
+                    IFS=':' read -ra dirs <<< $XDG_ICON_DIRS
+                    for parent_dir in  "${dirs[@]}"; do
+                        if [ -e "$parent_dir/icons/$parent_theme/index.theme" ]; then
+                            parent_path="$(realpath "$parent_dir/icons/$parent_theme")"
+                            ln -s "$parent_path" "$out/share/icons/"
+                            break
+                        fi
+                    done
+                fi
+                echo "    parent: $parent_theme	-> $parent_path"
+            done
+        done
+    fi
+}
+
+preFixupHooks+=(symlinkParentIconThemes)
diff --git a/nixpkgs/pkgs/data/icons/humanity-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/humanity-icon-theme/default.nix
new file mode 100644
index 000000000000..12e2d0a06d62
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/humanity-icon-theme/default.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv, fetchurl, gtk3, gnome, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  pname = "humanity-icon-theme";
+  version = "0.6.15";
+
+  src = fetchurl {
+    url = "https://launchpad.net/ubuntu/+archive/primary/+files/${pname}_${version}.tar.xz";
+    sha256 = "19ja47468s3jfabvakq9wknyfclfr31a9vd11p3mhapfq8jv9g4x";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    gnome.adwaita-icon-theme
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/icons
+    cp -a Humanity* $out/share/icons
+    rm $out/share/icons/*/{AUTHORS,CONTRIBUTORS,COPYING}
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Humanity icons from Ubuntu";
+    homepage = "https://launchpad.net/humanity/";
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/iconpack-jade/default.nix b/nixpkgs/pkgs/data/icons/iconpack-jade/default.nix
new file mode 100644
index 000000000000..3a5fe541985a
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/iconpack-jade/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchFromGitHub, gtk3, gnome-icon-theme, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  pname = "iconpack-jade";
+  version = "1.25";
+
+  src = fetchFromGitHub {
+    owner = "madmaxms";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0pwz3l5i93s84iwkn1jq8a150ma96788a0n41xq2cgy00j8h8xh0";
+  };
+
+  nativeBuildInputs = [ gtk3 ];
+
+  propagatedBuildInputs = [ gnome-icon-theme hicolor-icon-theme ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    mkdir -p $out/share/icons
+    cp -a Jade* $out/share/icons
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+  '';
+
+  meta = with lib; {
+    description = "Icon pack based upon Faenza and Mint-X";
+    homepage = "https://github.com/madmaxms/iconpack-jade";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/iconpack-obsidian/default.nix b/nixpkgs/pkgs/data/icons/iconpack-obsidian/default.nix
new file mode 100644
index 000000000000..13b314e1ae05
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/iconpack-obsidian/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv, fetchFromGitHub, gtk3, gnome-icon-theme, mint-x-icons, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  pname = "iconpack-obsidian";
+  version = "4.15";
+
+  src = fetchFromGitHub {
+    owner = "madmaxms";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1f32isq1xyn9b6p1nx5rssqgg9gw0jp9ld19860xk29fspmlfb8n";
+  };
+
+  nativeBuildInputs = [ gtk3 ];
+
+  propagatedBuildInputs = [ gnome-icon-theme mint-x-icons hicolor-icon-theme ];
+  # still missing parent themes: Ambiant-MATE, Faenza-Dark, KFaenza
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    mkdir -p $out/share/icons
+    mv Obsidian* $out/share/icons
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+  '';
+
+  meta = with lib; {
+    description = "Gnome icon pack based upon Faenza";
+    homepage = "https://github.com/madmaxms/iconpack-obsidian";
+    license = licenses.gpl3Only;
+    # darwin cannot deal with file names differing only in case
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/iso-flags/default.nix b/nixpkgs/pkgs/data/icons/iso-flags/default.nix
new file mode 100644
index 000000000000..57cc1752f187
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/iso-flags/default.nix
@@ -0,0 +1,45 @@
+{ lib, stdenv
+, fetchFromGitHub
+, perl
+, inkscape
+, librsvg
+, targets ? [ "all" ]
+}:
+
+stdenv.mkDerivation {
+  pname = "iso-flags";
+  version = "unstable-18012020";
+
+  src = fetchFromGitHub {
+    owner = "joielechong";
+    repo = "iso-country-flags-svg-collection";
+    rev = "9ebbd577b9a70fbfd9a1931be80c66e0d2f31a9d";
+    sha256 = "17bm7w4md56xywixfvp7vr3d6ihvxk3383i9i4rpmgm6qa9dyxdl";
+  };
+
+  nativeBuildInputs = [
+    perl
+    inkscape
+    librsvg
+    (perl.withPackages(pp: with pp; [ JSON XMLLibXML ]))
+  ];
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  buildFlags = targets;
+
+  installPhase = ''
+    mkdir -p $out/share
+    mv build $out/share/iso-flags
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/joielechong/iso-country-flags-svg-collection";
+    description = "248 country flag SVG & PNG icons with different icon styles";
+    license = [ licenses.publicDomain ];
+    platforms = platforms.linux; # the output assets should work anywhere, but unsure about the tools to build them...
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/kora-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/kora-icon-theme/default.nix
new file mode 100644
index 000000000000..8df63a75ad8d
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/kora-icon-theme/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv, fetchFromGitHub , gtk3, adwaita-icon-theme, breeze-icons, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec  {
+  pname = "kora-icon-theme";
+  version = "1.5.0";
+
+  src = fetchFromGitHub  {
+    owner = "bikass";
+    repo = "kora";
+    rev = "v${version}";
+    sha256 = "sha256-kUgNj7KuxsQ/BvQ0ORl3xzEm9gv69+2PS0Bgv8i/S9U=";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    adwaita-icon-theme
+    breeze-icons
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/icons
+    mv kora* $out/share/icons/
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache -f $theme
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "An SVG icon theme in four variants";
+    homepage = "https://github.com/bikass/kora";
+    license = with licenses; [ gpl3Only ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ bloomvdomino ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/la-capitaine-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/la-capitaine-icon-theme/default.nix
new file mode 100644
index 000000000000..b7febabacd5f
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/la-capitaine-icon-theme/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, breeze-icons
+, elementary-icon-theme
+, gnome-icon-theme
+, hicolor-icon-theme
+}:
+
+stdenv.mkDerivation rec {
+  pname = "la-capitaine-icon-theme";
+  version = "0.6.2";
+
+  src = fetchFromGitHub {
+    owner = "keeferrourke";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0id2dddx6rl71472l47vafx968wnklmq6b980br68w82kcvqczzs";
+  };
+
+  propagatedBuildInputs = [
+    breeze-icons
+    elementary-icon-theme
+    gnome-icon-theme
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  postPatch = ''
+    patchShebangs configure
+
+    substituteInPlace configure \
+      --replace 'DISTRO=$(format "$(lsb_release -si 2>/dev/null)")' 'DISTRO=nixos'
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/icons/$pname
+    cp -a * $out/share/icons/$pname
+    rm $out/share/icons/$pname/{configure,COPYING,LICENSE,*.md}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Icon theme inspired by macOS and Google's Material Design";
+    homepage = "https://github.com/keeferrourke/la-capitaine-icon-theme";
+    license = with licenses; [ gpl3Plus mit ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/luna-icons/default.nix b/nixpkgs/pkgs/data/icons/luna-icons/default.nix
new file mode 100644
index 000000000000..f6ac136d4af6
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/luna-icons/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gtk3
+, breeze-icons
+, hicolor-icon-theme
+, pantheon
+}:
+
+stdenv.mkDerivation rec {
+  pname = "luna-icons";
+  version = "1.9";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "1l6jxbgq2qnw4qx0khkdxcq75v17cv2ccfnm28sslpzcc1r8amqd";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    breeze-icons
+    hicolor-icon-theme
+    pantheon.elementary-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/icons
+    cp -a Luna* $out/share/icons
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache "$theme"
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Icon pack based on marwaita and papirus icons";
+    homepage = "https://github.com/darkomarko42/Luna-Icons";
+    license = [ licenses.gpl3Only ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/maia-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/maia-icon-theme/default.nix
new file mode 100644
index 000000000000..32365b70184b
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/maia-icon-theme/default.nix
@@ -0,0 +1,53 @@
+{ lib, stdenv
+, fetchFromGitLab
+, cmake
+, extra-cmake-modules
+, gtk3
+, plasma-framework
+, kwindowsystem
+, hicolor-icon-theme
+}:
+
+stdenv.mkDerivation {
+  pname = "maia-icon-theme";
+  version = "2018-02-24";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.manjaro.org";
+    group = "artwork";
+    owner = "themes";
+    repo = "maia";
+    rev = "b61312cc80cb9d12b0d8a55b3e61668eb6b77d2d";
+    sha256 = "1g98snlh96z4sqw9sfd7fxgamh45pcj3lh1kcmng7mirvrcn2pam";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+    gtk3
+    plasma-framework
+    kwindowsystem
+  ];
+
+  propagatedBuildInputs = [
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  dontWrapQtApps = true;
+
+  postInstall = ''
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+  '';
+
+  meta = with lib; {
+    description = "Icons based on Breeze and Super Flat Remix";
+    homepage = "https://gitlab.manjaro.org/artwork/themes/maia";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ mounium ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/moka-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/moka-icon-theme/default.nix
new file mode 100644
index 000000000000..04e1bce12750
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/moka-icon-theme/default.nix
@@ -0,0 +1,50 @@
+{ lib, stdenv, fetchFromGitHub, meson, ninja, gtk3, python3, faba-icon-theme, hicolor-icon-theme, jdupes }:
+
+stdenv.mkDerivation rec {
+  pname = "moka-icon-theme";
+  version = "unstable-2019-05-29";
+
+  src = fetchFromGitHub {
+    owner = "snwh";
+    repo = pname;
+    rev = "c0355ea31e5cfdb6b44d8108f602d66817546a09";
+    sha256 = "0m4kfarkl94wdhsds2q1l9x5hfa9l3117l8j6j7qm7sf7yzr90c8";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    gtk3
+    python3
+    jdupes
+  ];
+
+  propagatedBuildInputs = [
+    faba-icon-theme
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  # These fixup steps are slow and unnecessary for this package
+  dontPatchELF = true;
+  dontRewriteSymlinks = true;
+
+  postPatch = ''
+    patchShebangs meson/post_install.py
+  '';
+
+  postInstall = ''
+    # replace duplicate files with symlinks
+    jdupes -l -r $out/share/icons
+  '';
+
+  meta = with lib; {
+    description = "Icon theme designed with a minimal flat style using simple geometry and bright colours";
+    homepage = "https://snwh.org/moka";
+    license = with licenses; [ cc-by-sa-40 gpl3Only ];
+    # darwin cannot deal with file names differing only in case
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/nordzy-cursor-theme/default.nix b/nixpkgs/pkgs/data/icons/nordzy-cursor-theme/default.nix
new file mode 100644
index 000000000000..7648a57474ae
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/nordzy-cursor-theme/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, fetchFromGitHub
+, lib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "nordzy-cursor-theme";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "alvatip";
+    repo = "Nordzy-cursors";
+    rev = "v${version}";
+    sha256 = "XabfKFyeII7Xl+ozzpPnc4xFH4B7GzCTLq4M1QPSZPw=";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/icons
+
+    cp -r nordzy-dark/ $out/share/icons/Nordzy-cursors
+    mv $out/share/icons/Nordzy-cursors/index.theme $out/share/icons/Nordzy-cursors/cursor.theme
+    mv $out/share/icons/Nordzy-cursors/Nordzy-cursors $out/share/icons/Nordzy-cursors/cursors
+    cp -r nordzy-white/ $out/share/icons/Nordzy-white-cursors
+    mv $out/share/icons/Nordzy-white-cursors/index.theme $out/share/icons/Nordzy-white-cursors/cursor.theme
+    mv $out/share/icons/Nordzy-white-cursors/Nordzy-white-cursors $out/share/icons/Nordzy-white-cursors/cursors
+  '';
+
+  meta = with lib; {
+    description = "Cursor theme using the Nord color palette and based on Vimix and cz-Viator";
+    homepage = "https://github.com/alvatip/Nordzy-cursors";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [
+      alexnortung
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/nordzy-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/nordzy-icon-theme/default.nix
new file mode 100644
index 000000000000..11113bb6a503
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/nordzy-icon-theme/default.nix
@@ -0,0 +1,54 @@
+{ stdenvNoCC
+, fetchFromGitHub
+, lib
+, gtk3
+, jdupes
+, nordzy-themes ? [ "all" ] # Override this to only install selected themes
+}:
+
+stdenvNoCC.mkDerivation {
+  pname = "nordzy-icon-theme";
+  version = "unstable-2022-01-23";
+
+  src = fetchFromGitHub {
+    owner = "alvatip";
+    repo = "Nordzy-icon";
+    rev = "10b9ee80ef5c4cac1d1770d89a6d55046521ea36";
+    sha256 = "1b8abhs5gzr2qy407jq818pr67vjky8zn3pa3c8n552ayybblibk";
+  };
+
+  # In the post patch phase we should first make sure to patch shebangs.
+  postPatch = ''
+    patchShebangs install.sh
+  '';
+
+  nativeBuildInputs = [
+    gtk3
+    jdupes
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    name= ./install.sh --dest $out/share/icons \
+      ${lib.optionalString (nordzy-themes != []) (lib.strings.concatMapStrings (theme: "-t ${theme} ") nordzy-themes)}
+
+    # Replace duplicate files with hardlinks to the first file in each
+    # set of duplicates, reducing the installed size in about 87%
+    jdupes -L -r $out/share
+
+    runHook postInstall
+  '';
+
+  dontFixup = true;
+
+  meta = with lib; {
+    description = "Icon theme using the Nord color palette, based on WhiteSur and Numix icon themes";
+    homepage = "https://github.com/alvatip/Nordzy-icon";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ alexnortung ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/numix-cursor-theme/default.nix b/nixpkgs/pkgs/data/icons/numix-cursor-theme/default.nix
new file mode 100644
index 000000000000..e7f0905ff40e
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/numix-cursor-theme/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchFromGitHub, inkscape, xcursorgen }:
+
+stdenv.mkDerivation rec {
+  pname = "numix-cursor-theme";
+  version = "1.2";
+
+  src = fetchFromGitHub {
+    owner = "numixproject";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1q3w5i0h3ly6i7s9pqjdrb14kp89i78s0havri7lhiqyxizjvcvh";
+  };
+
+  nativeBuildInputs = [ inkscape xcursorgen ];
+
+  buildPhase = ''
+    patchShebangs .
+    HOME=$TMP ./build.sh
+  '';
+
+  installPhase = ''
+    install -dm 755 $out/share/icons
+    cp -dr --no-preserve='ownership' Numix-Cursor{,-Light} $out/share/icons/
+  '';
+
+  meta = with lib; {
+    description = "Numix cursor theme";
+    homepage = "https://numixproject.github.io";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ offline ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix b/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix
new file mode 100644
index 000000000000..79ca07dd5b5a
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix
@@ -0,0 +1,45 @@
+{ lib, stdenv, fetchFromGitHub, gtk3, numix-icon-theme, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  pname = "numix-icon-theme-circle";
+  version = "22.02.06";
+
+  src = fetchFromGitHub {
+    owner = "numixproject";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-a+h5DMxVM1TPVx8yuKwRzjjnBLnIWMCCKG+BPg1Hq5Y=";
+  };
+
+  nativeBuildInputs = [ gtk3 ];
+
+  propagatedBuildInputs = [ numix-icon-theme hicolor-icon-theme ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/icons
+    cp -a Numix-Circle{,-Light} $out/share/icons
+
+    for panel in $out/share/icons/*/*/panel; do
+      ln -sf $(realpath ${numix-icon-theme}/share/icons/Numix/16/$(readlink $panel)) $panel
+    done
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Numix icon theme (circle version)";
+    homepage = "https://numixproject.github.io";
+    license = licenses.gpl3Only;
+    # darwin cannot deal with file names differing only in case
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix b/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix
new file mode 100644
index 000000000000..550b11c7ac89
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix
@@ -0,0 +1,45 @@
+{ lib, stdenv, fetchFromGitHub, gtk3, numix-icon-theme, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  pname = "numix-icon-theme-square";
+  version = "22.02.06";
+
+  src = fetchFromGitHub {
+    owner = "numixproject";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-dKBNB1udRysDe3HbUh2qudQDeLgS/wmSnY3nAWnmjQo=";
+  };
+
+  nativeBuildInputs = [ gtk3 ];
+
+  propagatedBuildInputs = [ numix-icon-theme hicolor-icon-theme ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/icons
+    cp -a Numix-Square{,-Light} $out/share/icons
+
+    for panel in $out/share/icons/*/*/panel; do
+      ln -sf $(realpath ${numix-icon-theme}/share/icons/Numix/16/$(readlink $panel)) $panel
+    done
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Numix icon theme (square version)";
+    homepage = "https://numixproject.github.io";
+    license = licenses.gpl3Only;
+    # darwin cannot deal with file names differing only in case
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix
new file mode 100644
index 000000000000..c46cc0a6ec9a
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchFromGitHub, gtk3, gnome-icon-theme, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  pname = "numix-icon-theme";
+  version = "21.10.31";
+
+  src = fetchFromGitHub {
+    owner = "numixproject";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-wyVvXifdbKR2aiBMrki8y/H0khH4eFD1RHVSC+jAT28=";
+  };
+
+  nativeBuildInputs = [ gtk3 ];
+
+  propagatedBuildInputs = [ gnome-icon-theme hicolor-icon-theme ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/icons
+    cp -a Numix{,-Light} $out/share/icons/
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Numix icon theme";
+    homepage = "https://numixproject.github.io";
+    license = licenses.gpl3Only;
+    # darwin cannot deal with file names differing only in case
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/oranchelo-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/oranchelo-icon-theme/default.nix
new file mode 100644
index 000000000000..9288b9307f55
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/oranchelo-icon-theme/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, gtk3, plasma5Packages, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  pname = "oranchelo-icon-theme";
+  version = "0.8.0.1";
+
+  src = fetchFromGitHub {
+    owner = "OrancheloTeam";
+    repo = pname;
+    rev = "096c8c8d550ac9a85f5f34f3f30243e6f198df2d";
+    sha256 = "sha256-TKi42SA33pGKdrPtGTpvxFbOP+5N93Y4BvO4CRTveLM=";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    plasma5Packages.breeze-icons
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    mkdir -p $out/share/icons
+    cp -r $Oranchelo* $out/share/icons/
+  '';
+
+  meta = with lib; {
+    description = "Oranchelo icon theme";
+    homepage = "https://github.com/OrancheloTeam/oranchelo-icon-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ _414owen ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/paper-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/paper-icon-theme/default.nix
new file mode 100644
index 000000000000..fc541f6e5b72
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/paper-icon-theme/default.nix
@@ -0,0 +1,49 @@
+{ lib, stdenv, fetchFromGitHub, meson, ninja, gtk3, gnome, gnome-icon-theme, hicolor-icon-theme, jdupes }:
+
+stdenv.mkDerivation rec {
+  pname = "paper-icon-theme";
+  version = "unstable-2020-03-12";
+
+  src = fetchFromGitHub {
+    owner = "snwh";
+    repo = pname;
+    rev = "aa3e8af7a1f0831a51fd7e638a4acb077a1e5188";
+    sha256 = "0x6qzch4rrc8firb1dcf926j93gpqxvd7h6dj5wwczxbvxi5bd77";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    gtk3
+    jdupes
+  ];
+
+  propagatedBuildInputs = [
+    gnome.adwaita-icon-theme
+    gnome-icon-theme
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  # These fixup steps are slow and unnecessary for this package
+  dontPatchELF = true;
+  dontRewriteSymlinks = true;
+
+  postInstall = ''
+    # The cache for Paper-Mono-Dark is missing
+    gtk-update-icon-cache "$out"/share/icons/Paper-Mono-Dark;
+
+    # replace duplicate files with symlinks
+    jdupes -l -r $out/share/icons
+  '';
+
+  meta = with lib; {
+    description = "Modern icon theme designed around bold colours and simple geometric shapes";
+    homepage = "https://snwh.org/paper";
+    license = with licenses; [ cc-by-sa-40 lgpl3 ];
+    # darwin cannot deal with file names differing only in case
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix
new file mode 100644
index 000000000000..9da7178e80ad
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv, fetchFromGitHub, gtk3, pantheon, breeze-icons, gnome-icon-theme, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  pname = "papirus-icon-theme";
+  version = "20220204";
+
+  src = fetchFromGitHub {
+    owner = "PapirusDevelopmentTeam";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-DYz2fnn1ZfX09NQcRXmGTYY95K5wOWhlmJeDjEvN1vY=";
+  };
+
+  nativeBuildInputs = [ gtk3 ];
+
+  propagatedBuildInputs = [
+    pantheon.elementary-icon-theme
+    breeze-icons
+    gnome-icon-theme
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/icons
+    mv {,e}Papirus* $out/share/icons
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Papirus icon theme";
+    homepage = "https://github.com/PapirusDevelopmentTeam/papirus-icon-theme";
+    license = licenses.gpl3Only;
+    # darwin gives hash mismatch in source, probably because of file names differing only in case
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo fortuneteller2k ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/papirus-maia-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/papirus-maia-icon-theme/default.nix
new file mode 100644
index 000000000000..814d9ced017b
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/papirus-maia-icon-theme/default.nix
@@ -0,0 +1,45 @@
+{ lib, stdenv, fetchFromGitHub, cmake, gtk3, breeze-icons, gnome-icon-theme, papirus-icon-theme, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  pname = "papirus-maia-icon-theme";
+  version = "2019-07-26";
+
+  src = fetchFromGitHub {
+    owner = "Ste74";
+    repo = pname;
+    rev = "90d47c817cc0edeed8b5a90335e669948ff4a116";
+    sha256 = "0d6lvdg5nw5wfaq8lxszcws174vg12ywkrqzn6czimhmhp48jf5p";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    breeze-icons
+    gnome-icon-theme
+    papirus-icon-theme
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  postPatch = ''
+    substituteInPlace CMakeLists.txt --replace /usr "$out"
+  '';
+
+  postInstall = ''
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+  '';
+
+  meta = with lib; {
+    description = "Manjaro variation of Papirus icon theme";
+    homepage = "https://github.com/Ste74/papirus-maia-icon-theme";
+    license = licenses.lgpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/phinger-cursors/default.nix b/nixpkgs/pkgs/data/icons/phinger-cursors/default.nix
new file mode 100644
index 000000000000..5afd2fe228f6
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/phinger-cursors/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "phinger-cursors";
+  version = "1.1";
+
+  src = fetchurl {
+    url = "https://github.com/phisch/phinger-cursors/releases/download/v${version}/phinger-cursors-variants.tar.bz2";
+    sha256 = "sha256-II+1x+rcjGRRVB8GYkVwkKVHNHcNaBKRb6C613901oc=";
+  };
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/icons
+    cp -r ./phinger-cursors* $out/share/icons
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "The most over-engineered cursor theme";
+    homepage = "https://github.com/phisch/phinger-cursors";
+    platforms = platforms.unix;
+    license = licenses.cc-by-sa-40;
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/pop-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/pop-icon-theme/default.nix
new file mode 100644
index 000000000000..7254e8bc2139
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/pop-icon-theme/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, gtk3
+, adwaita-icon-theme
+, hicolor-icon-theme
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pop-icon-theme";
+  version = "2021-11-17";
+
+  src = fetchFromGitHub {
+    owner = "pop-os";
+    repo = "icon-theme";
+    rev = "9998b20b78f3ff65ecbf2253bb863d1e669abe74";
+    sha256 = "0lwdmaxs9xj4bm21ldh64bzyb6iz5d5k1256iwvyjp725l7686cl";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    adwaita-icon-theme
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  meta = with lib; {
+    description = "Icon theme for Pop!_OS with a semi-flat design and raised 3D motifs";
+    homepage = "https://github.com/pop-os/icon-theme";
+    license = with licenses; [ cc-by-sa-40 gpl3 ];
+    platforms = platforms.linux; # hash mismatch on darwin due to file names differing only in case
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/qogir-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/qogir-icon-theme/default.nix
new file mode 100644
index 000000000000..24ad687834e3
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/qogir-icon-theme/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gtk3
+, hicolor-icon-theme
+, jdupes
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "qogir-icon-theme";
+  version = "2022-01-12";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "1daayxsqh7di3bvfnl39h1arsj1fypd3ba30mas6dl1d0qy17z1p";
+  };
+
+  nativeBuildInputs = [ gtk3 jdupes ];
+
+  propagatedBuildInputs = [ hicolor-icon-theme ];
+
+  dontDropIconThemeCache = true;
+
+  # These fixup steps are slow and unnecessary.
+  dontPatchELF = true;
+  dontRewriteSymlinks = true;
+
+  installPhase = ''
+    runHook preInstall
+    patchShebangs install.sh
+    mkdir -p $out/share/icons
+    name= ./install.sh -d $out/share/icons
+    jdupes -L -r $out/share/icons
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Flat colorful design icon theme";
+    homepage = "https://github.com/vinceliuice/Qogir-icon-theme";
+    license = with licenses; [ gpl3Only ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/quintom-cursor-theme/default.nix b/nixpkgs/pkgs/data/icons/quintom-cursor-theme/default.nix
new file mode 100644
index 000000000000..645b2ac54734
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/quintom-cursor-theme/default.nix
@@ -0,0 +1,28 @@
+{ stdenvNoCC, fetchFromGitLab, lib }:
+
+stdenvNoCC.mkDerivation {
+  pname = "quintom-cursor-theme";
+  version = "unstable-2019-10-24";
+
+  src = fetchFromGitLab {
+    owner = "Burning_Cube";
+    repo = "quintom-cursor-theme";
+    rev = "d23e57333e816033cf20481bdb47bb1245ed5d4d";
+    hash = "sha256-Sec2DSnWYal6wzYzP9W+DDuTKHsFHWdRYyMzliMU5bU=A";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/icons
+    for theme in "Quintom_Ink" "Quintom_Snow"; do
+      cp -r "$theme Cursors/$theme" $out/share/icons/
+    done
+  '';
+
+  meta = with lib; {
+    description = "A cursor theme designed to look decent";
+    homepage = "https://gitlab.com/Burning_Cube/quintom-cursor-theme";
+    platforms = platforms.unix;
+    license = with licenses; [ cc-by-sa-40 gpl3Only ];
+    maintainers = with maintainers; [ frogamic ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/tango-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/tango-icon-theme/default.nix
new file mode 100644
index 000000000000..09d0875ca8a3
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/tango-icon-theme/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchurl, intltool, pkg-config, iconnamingutils, imagemagick, librsvg
+, gtk/*any version*/, gnome-icon-theme, hicolor-icon-theme
+}:
+
+stdenv.mkDerivation rec {
+  name = "tango-icon-theme-0.8.90";
+
+  src = fetchurl {
+    url = "http://tango.freedesktop.org/releases/${name}.tar.gz";
+    sha256 = "13n8cpml71w6zfm2jz5fa7r1z18qlzk4gv07r6n1in2p5l1xi63f";
+  };
+
+  patches = [ ./rsvg-convert.patch ];
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ intltool iconnamingutils imagemagick librsvg ];
+  propagatedBuildInputs = [ gnome-icon-theme hicolor-icon-theme ];
+  # still missing parent icon themes: cristalsvg
+
+  dontDropIconThemeCache = true;
+
+  configureFlags = [ "--enable-png-creation" ];
+
+  postInstall = '''${gtk.out}/bin/gtk-update-icon-cache' "$out/share/icons/Tango" '';
+
+  meta = {
+    description = "A basic set of icons";
+    homepage = "http://tango.freedesktop.org/Tango_Icon_Library";
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/tango-icon-theme/rsvg-convert.patch b/nixpkgs/pkgs/data/icons/tango-icon-theme/rsvg-convert.patch
new file mode 100644
index 000000000000..ee3d00ccf3ed
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/tango-icon-theme/rsvg-convert.patch
@@ -0,0 +1,34 @@
+Based on https://build.opensuse.org/package/view_file?file=tango-icon-theme-rsvg-2_35_2.patch&package=tango-icon-theme&project=openSUSE%3A12.2&rev=faf71bf8278d5df6ec8a31726e5b8542
+
+diff -ru -x '*~' tango-icon-theme-0.8.90/configure tango-icon-theme-0.8.90-new/configure
+--- tango-icon-theme-0.8.90/configure	2009-02-26 04:08:00.000000000 +0100
++++ tango-icon-theme-0.8.90-new/configure	2013-08-15 17:54:24.167065399 +0200
+@@ -6554,7 +6554,7 @@
+   enable_large_bitmaps=no
+ fi
+    if test "x$enable_large_bitmaps" = "xyes"; then
+-      svgconvert_prog="rsvg"
++      svgconvert_prog="rsvg-convert"
+    else
+       svgconvert_prog="ksvgtopng"
+    fi
+diff -ru -x '*~' tango-icon-theme-0.8.90/svg2png.sh.in tango-icon-theme-0.8.90-new/svg2png.sh.in
+--- tango-icon-theme-0.8.90/svg2png.sh.in	2007-02-16 21:04:29.000000000 +0100
++++ tango-icon-theme-0.8.90-new/svg2png.sh.in	2013-08-15 17:54:08.275084837 +0200
+@@ -9,12 +9,14 @@
+ 
+ ICONFILE=`basename ${3}`
+ ICONNAME=`echo ${ICONFILE} | sed -e "s/.svg//"`
+-if test `basename $SVGCONVERT` = "rsvg"; then
++if test `basename $SVGCONVERT` = "rsvg-convert"; then
+     OPTIONS="-w ${1} -h ${1}"
++    OUTPUT="-o"
+ else
+     OPTIONS="${1} ${1}"
++    OUTPUT=""
+ fi
+ 
+ echo "${SVGCONVERT} ${OPTIONS} ${3} ${2}/${ICONNAME}.png"
+-${SVGCONVERT} ${OPTIONS} ${3} ${2}/${ICONNAME}.png
++${SVGCONVERT} ${OPTIONS} ${3} ${OUTPUT} ${2}/${ICONNAME}.png
+ 
diff --git a/nixpkgs/pkgs/data/icons/tela-circle-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/tela-circle-icon-theme/default.nix
new file mode 100644
index 000000000000..d19dcba69fd8
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/tela-circle-icon-theme/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gtk3
+, hicolor-icon-theme
+, jdupes
+, allColorVariants ? false
+, circularFolder ? false
+, colorVariants ? [] # default is standard
+}:
+
+let
+  pname = "tela-circle-icon-theme";
+in
+lib.checkListOfEnum "${pname}: color variants" [ "standard" "black" "blue" "brown" "green" "grey" "orange" "pink" "purple" "red" "yellow" "manjaro" "ubuntu" ] colorVariants
+
+stdenvNoCC.mkDerivation rec {
+  inherit pname;
+  version = "2022-02-08";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "08a1jhirvn2x9hhjr0lqqqayhsf446cddapprxpsnsn9q6x2j2gp";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+    jdupes
+  ];
+
+  propagatedBuildInputs = [
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  # These fixup steps are slow and unnecessary for this package.
+  # Package may install almost 400 000 small files.
+  dontPatchELF = true;
+  dontRewriteSymlinks = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    patchShebangs install.sh
+
+    ./install.sh -d $out/share/icons \
+      ${lib.optionalString circularFolder "-c"} \
+      ${if allColorVariants then "-a" else builtins.toString colorVariants}
+
+    jdupes -L -r $out/share/icons
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Flat and colorful personality icon theme";
+    homepage = "https://github.com/vinceliuice/Tela-circle-icon-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/tela-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/tela-icon-theme/default.nix
new file mode 100644
index 000000000000..ab7742bb36f0
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/tela-icon-theme/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenvNoCC, fetchFromGitHub, gtk3, jdupes, hicolor-icon-theme }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "tela-icon-theme";
+  version = "2022-01-25";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-XKNSCWwanm2dP002TY/mE4SDX13TllHrbrb55V4wLSQ=";
+  };
+
+  nativeBuildInputs = [ gtk3 jdupes ];
+
+  propagatedBuildInputs = [ hicolor-icon-theme ];
+
+  dontDropIconThemeCache = true;
+
+  # These fixup steps are slow and unnecessary.
+  dontPatchELF = true;
+  dontRewriteSymlinks = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    patchShebangs install.sh
+    mkdir -p $out/share/icons
+    ./install.sh -a -d $out/share/icons
+    jdupes -l -r $out/share/icons
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A flat colorful Design icon theme";
+    homepage = "https://github.com/vinceliuice/tela-icon-theme";
+    license = licenses.gpl3Only;
+    # darwin systems use case-insensitive filesystems that cause hash mismatches
+    platforms = subtractLists platforms.darwin platforms.unix;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/vanilla-dmz/default.nix b/nixpkgs/pkgs/data/icons/vanilla-dmz/default.nix
new file mode 100644
index 000000000000..55ba320bc988
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/vanilla-dmz/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, lib
+, fetchzip
+, xorg
+, hicolor-icon-theme
+}:
+
+stdenv.mkDerivation rec {
+  pname = "vanilla-dmz";
+  version = "0.4.5";
+
+  src = fetchzip {
+    url = "mirror://debian/pool/main/d/dmz-cursor-theme/dmz-cursor-theme_${version}.tar.xz";
+    sha256 = "14r8fri4byyzavzdifpga6118hxqjwpzd11xxj28s16zxcanq16m";
+  };
+
+  buildInputs = [
+    xorg.xcursorgen
+  ];
+
+  propagatedBuildInputs = [
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  buildPhase = ''
+    cd DMZ-White/pngs; ./make.sh; cd -
+    cd DMZ-Black/pngs; ./make.sh; cd -
+  '';
+
+  installPhase = ''
+    install -d $out/share/icons/Vanilla-DMZ/cursors
+    cp -a DMZ-White/xcursors/* $out/share/icons/Vanilla-DMZ/cursors
+    install -Dm644 DMZ-White/index.theme $out/share/icons/Vanilla-DMZ/index.theme
+
+    install -d $out/share/icons/Vanilla-DMZ-AA/cursors
+    cp -a DMZ-Black/xcursors/* $out/share/icons/Vanilla-DMZ-AA/cursors
+    install -Dm644 DMZ-Black/index.theme $out/share/icons/Vanilla-DMZ-AA/index.theme
+  '';
+
+  meta = with lib; {
+    homepage = "http://jimmac.musichall.cz";
+    description = "A style neutral scalable cursor theme";
+    platforms = platforms.all;
+    license = licenses.cc-by-sa-30;
+    maintainers = with maintainers; [ cstrahan ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/vimix-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/vimix-icon-theme/default.nix
new file mode 100644
index 000000000000..853b1d209abb
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/vimix-icon-theme/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gtk3
+, hicolor-icon-theme
+, jdupes
+, colorVariants ? [] # default: all
+}:
+
+let
+  pname = "vimix-icon-theme";
+
+in
+lib.checkListOfEnum "${pname}: color variants" [ "standard" "Amethyst" "Beryl" "Doder" "Ruby" "Black" "White" ] colorVariants
+
+stdenv.mkDerivation rec {
+  inherit pname;
+  version = "2021-11-09";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "1ali128027yw5kllip7p32c92pby5gaqs0i393m3bp69547np1d4";
+  };
+
+  nativeBuildInputs = [ gtk3 jdupes ];
+
+  propagatedBuildInputs = [ hicolor-icon-theme ];
+
+  dontDropIconThemeCache = true;
+
+  # These fixup steps are slow and unnecessary for this package
+  dontPatchELF = true;
+  dontRewriteSymlinks = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    patchShebangs install.sh
+
+    ./install.sh \
+      ${if colorVariants != [] then builtins.toString colorVariants else "-a"} \
+      -d $out/share/icons
+
+    # replace duplicate files with symlinks
+    jdupes -L -r $out/share/icons
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A Material Design icon theme based on Paper icon theme";
+    homepage = "https://github.com/vinceliuice/vimix-icon-theme";
+    license = with licenses; [ cc-by-sa-40 ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/whitesur-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/whitesur-icon-theme/default.nix
new file mode 100644
index 000000000000..27465b828a61
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/whitesur-icon-theme/default.nix
@@ -0,0 +1,52 @@
+{ lib, stdenvNoCC, fetchFromGitHub, gtk3, hicolor-icon-theme }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "Whitesur-icon-theme";
+  version = "2021-11-08";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "LZ0GLJFUUvzsPhU2sBkfy5mPpQHuPzYhbumwFKnogoA=";
+  };
+
+  nativeBuildInputs = [ gtk3 ];
+
+  buildInputs = [ hicolor-icon-theme ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/icons/WhiteSur{,-dark}/status
+    echo "$out/share/icons/WhiteSur/status $out/share/icons/WhiteSur-dark/status" | xargs -n 1 cp -r src/status/{16,22,24,32,symbolic}
+    echo "$out/share/icons/WhiteSur $out/share/icons/WhiteSur-dark" | xargs -n 1 cp -r ./{COPYING,AUTHORS} src/index.theme src/{actions,animations,apps,categories,devices,emblems,mimes,places} links/{actions,apps,categories,devices,emblems,mimes,places,status}
+
+    # Change icon color for dark theme
+    sed -i "s/#363636/#dedede/g" $out/share/icons/WhiteSur-dark/{actions,devices,places,status}/{16,22,24}/*
+    sed -i "s/#363636/#dedede/g" $out/share/icons/WhiteSur-dark/actions/32/*
+    sed -i "s/#363636/#dedede/g" $out/share/icons/WhiteSur-dark/{actions,apps,categories,emblems,devices,mimes,places,status}/symbolic/*
+
+    for f in actions animations apps categories devices emblems mimes places status; do
+      ln -sf $out/share/icons/WhiteSur/$f $out/share/icons/WhiteSur/$f@2x
+      ln -sf $out/share/icons/WhiteSur-dark/$f $out/share/icons/WhiteSur-dark/$f@2x
+    done
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "MacOS Big Sur style icon theme for Linux desktops";
+    homepage = "https://github.com/vinceliuice/WhiteSur-icon-theme";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ icy-thought ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/data/icons/zafiro-icons/default.nix b/nixpkgs/pkgs/data/icons/zafiro-icons/default.nix
new file mode 100644
index 000000000000..f6c56aa3c0fc
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/zafiro-icons/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv, fetchFromGitHub, gtk3, breeze-icons, gnome-icon-theme, numix-icon-theme, numix-icon-theme-circle, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  pname = "zafiro-icons";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "zayronxio";
+    repo = pname;
+    rev = version;
+    sha256 = "05h8qm9izjbp8pnl9jpbw3y9sddhp0zmg94fm1k4d4hhdqnakqhv";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    breeze-icons
+    gnome-icon-theme
+    numix-icon-theme
+    numix-icon-theme-circle
+    hicolor-icon-theme
+    # still missing parent icon themes: Surfn
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    mkdir -p $out/share/icons/Zafiro-icons
+    cp -a * $out/share/icons/Zafiro-icons
+    gtk-update-icon-cache "$out"/share/icons/Zafiro-icons
+  '';
+
+  meta = with lib; {
+    description = "Icon pack flat with light colors";
+    homepage = "https://github.com/zayronxio/Zafiro-icons";
+    license = with licenses; [ gpl3 ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/machine-learning/mnist/default.nix b/nixpkgs/pkgs/data/machine-learning/mnist/default.nix
new file mode 100644
index 000000000000..b4c4d43e99ae
--- /dev/null
+++ b/nixpkgs/pkgs/data/machine-learning/mnist/default.nix
@@ -0,0 +1,45 @@
+{ lib, stdenvNoCC, fetchurl }:
+let
+  srcs = {
+    train-images = fetchurl {
+      url = "http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz";
+      sha256 = "029na81z5a1c9l1a8472dgshami6f2iixs3m2ji6ym6cffzwl3s4";
+    };
+    train-labels = fetchurl {
+      url = "http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz";
+      sha256 = "0p152200wwx0w65sqb65grb3v8ncjp230aykmvbbx2sm19556lim";
+    };
+    test-images = fetchurl {
+      url = "http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz";
+      sha256 = "1rn4vfigaxn2ms24bf4jwzzflgp3hvz0gksvb8j7j70w19xjqhld";
+    };
+    test-labels = fetchurl {
+      url = "http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz";
+      sha256 = "1imf0i194ndjxzxdx87zlgn728xx3p1qhq1ssbmnvv005vwn1bpp";
+    };
+  };
+in
+  stdenvNoCC.mkDerivation rec {
+    pname = "mnist";
+    version = "2018-11-16";
+    installPhase = ''
+      mkdir -p $out
+      ln -s "${srcs.train-images}" "$out/${srcs.train-images.name}"
+      ln -s "${srcs.train-labels}" "$out/${srcs.train-labels.name}"
+      ln -s "${srcs.test-images}" "$out/${srcs.test-images.name}"
+      ln -s "${srcs.test-labels}" "$out/${srcs.test-labels.name}"
+    '';
+    dontUnpack = true;
+    meta = with lib; {
+      description = "A large database of handwritten digits";
+      longDescription = ''
+        The MNIST database (Modified National Institute of Standards and
+        Technology database) is a large database of handwritten digits that is
+        commonly used for training various image processing systems.
+      '';
+      homepage = "http://yann.lecun.com/exdb/mnist/index.html";
+      license = licenses.cc-by-sa-30;
+      platforms = platforms.all;
+      maintainers = with maintainers; [ cmcdragonkai ];
+    };
+  }
diff --git a/nixpkgs/pkgs/data/misc/adapta-backgrounds/default.nix b/nixpkgs/pkgs/data/misc/adapta-backgrounds/default.nix
new file mode 100644
index 000000000000..417bd7392b52
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/adapta-backgrounds/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, glib }:
+
+stdenv.mkDerivation rec {
+  pname = "adapta-backgrounds";
+  version = "0.5.3.1";
+
+  src = fetchFromGitHub {
+    owner = "adapta-project";
+    repo = "adapta-backgrounds";
+    rev = version;
+    sha256 = "04hmbmzf97rsii8gpwy3wkljy5xhxmlsl34d63s6hfy05knclydj";
+  };
+
+  strictDeps = true;
+  nativeBuildInputs = [ meson ninja pkg-config ];
+  buildInputs = [ glib ];
+
+  meta = with lib; {
+    description = "Wallpaper collection for adapta-project";
+    homepage = "https://github.com/adapta-project/adapta-backgrounds";
+    license = with licenses; [ gpl2 cc-by-sa-40 ];
+    platforms = platforms.all;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/brise/default.nix b/nixpkgs/pkgs/data/misc/brise/default.nix
new file mode 100644
index 000000000000..f4e1a6d2905f
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/brise/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchFromGitHub, librime }:
+
+stdenv.mkDerivation {
+  name = "brise-unstable-2017-09-16";
+
+  src = fetchFromGitHub {
+    owner = "rime";
+    repo = "brise";
+    rev = "1cfb0fe1d3a4190ce5d034f141941156dd271e80";
+    sha256 = "1l13j3cfwida0ycl874fizz2jwjvlxid589a1iciqa9y25k21ql7";
+  };
+
+  buildInputs = [ librime ];
+
+  postPatch = ''
+    patchShebangs scripts/*
+  '';
+
+  # we need to use fetchFromGitHub to fetch sub-packages before we 'make',
+  # since nix won't allow networking during 'make'
+  preBuild = import ./fetchPackages.nix fetchFromGitHub;
+
+  makeFlags = [ "BRISE_BUILD_BINARIES=yes" "PREFIX=$(out)" ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "Rime Schema Repository";
+    longDescription = ''
+      This software is a collection of data packages used by Rime
+      to support various Chinese input methods, including those based on
+      modern dialects or historical diasystems of the Chinese language.
+    '';
+    homepage = "https://rime.im";
+    # Note that individual packages in this collection
+    # may be released under different licenses
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.sifmelcara ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/brise/fetchPackages.nix b/nixpkgs/pkgs/data/misc/brise/fetchPackages.nix
new file mode 100644
index 000000000000..50ad1113aa93
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/brise/fetchPackages.nix
@@ -0,0 +1,130 @@
+fetchFromGitHub:
+# generated using https://gist.github.com/sifmelcara/895c71f99500b9d56d68e9a866b58821
+''
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-array";
+  rev = "d10f2f8b2aec7c7e736ace01e8a399e5ae5e7c3a";
+  sha256 = "sha256-4t6+gh2V57SueDp9Tn6vTuxQCZNGzjLdJEhzIEqRjdI=";
+}} array
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-bopomofo";
+  rev = "7046ffe42b46915947117f80d901fb9a6e19c1a7";
+  sha256 = "09w8jl2dlgp72k49x0l2jiaqb359v576kai4xww6cljgr24ng8pl";
+}} bopomofo
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-cangjie";
+  rev = "64242be99c1e6793c9f40fef296a81d07a84e976";
+  sha256 = "0v5sk8zrm5p5gg8lszqm0imj9jswjlnfq87nw6m9pg5h5al230ja";
+}} cangjie
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-combo-pinyin";
+  rev = "97a7dc4670e0f90ad28e7d67c1543f4f0adc531d";
+  sha256 = "0y8iyvq7z6xj3lk2ppk4ggz297wn1r2xxbv53f2710jc7gyzf04q";
+}} combo-pinyin
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-double-pinyin";
+  rev = "1b75af4239897fd1e4c99d625b62093e66baff14";
+  sha256 = "0p54qx5a6rr55hl997kdcfxjczd9lcddrc5xsy7nhlfyc6108s2v";
+}} double-pinyin
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-emoji";
+  rev = "7e527056fe055237fee59463e0d445f3909aaf0c";
+  sha256 = "04d35n254viw29yyjf3ml7xljmi63sqgg870swlbi5bikcx7n9jf";
+}} emoji
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-essay";
+  rev = "595e35756d16d57d09405e243302b65b4384b5b4";
+  sha256 = "10kqhvrz8x17b2pf6x2x2znz5y6cj05c4rgwi1f0xhxiyrgjw9gm";
+}} essay
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-ipa";
+  rev = "9e02f8a02e9febb7b2df25f6906881a1df934811";
+  sha256 = "1g4v4j1gnv1qspfz88liwj1aa4gaa3aax0x2cif4vxicsm7w372m";
+}} ipa
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-jyutping";
+  rev = "3cc76e6e15cc05f1f94b89e750c21f87ce8fc0e4";
+  sha256 = "1yggz0yb84z8810s2gmsxkm9lh57fdzddx5v2rb5mqcwnimsd6ap";
+}} jyutping
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-luna-pinyin";
+  rev = "da00c3a6f932f094666e98a09f6ce9c7d74c334c";
+  sha256 = "0q3g1hj9bay5865h3pz7gv46d7wfka1jdxnddxcbp4zn7gjpsd48";
+}} luna-pinyin
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-middle-chinese";
+  rev = "6f9731bac8f289f77d35f1090159f1937e38c1f7";
+  sha256 = "0xd9iwk4j5043gfmp7rb57hbarfm6sxr32wiasi6p3c5g355zn89";
+}} middle-chinese
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-pinyin-simp";
+  rev = "38c08403c22845f7e2965c1d7a1514b41755d7dc";
+  sha256 = "1c0cqljx3d93w27y2flxyqcfd3rd9fvixbw6mxgfjzdb3s42bn8h";
+}} pinyin-simp
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-prelude";
+  rev = "120c2aa73b1b5e1bce904901bf13f506295004a5";
+  sha256 = "1aah9z58gkqrc18zadsq598ybj8ra22bgka3gma2jmi3rls2znq4";
+}} prelude
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-quick";
+  rev = "638abf270e121bc2bfc6029a14ee85a3f4c2188b";
+  sha256 = "0l1pma0yxrypnb5cq7jiczy0wa42kdqsc1brqkkccdnp08pa1p1m";
+}} quick
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-scj";
+  rev = "6b74ce14be0464bf076d7adc40aea4b120f233ec";
+  sha256 = "0lr92knr41mlqd1s0g2lh2h2qr8xka1s46x7iv4d6ghjf0id4gz6";
+}} scj
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-soutzoe";
+  rev = "3ab93d1b9ca9ca7cf17ff32bb4418b7a095afc3c";
+  sha256 = "1glbvgzx4psasq23511k8ymd7mf1pqvm3z18nzszhs00iif66s3m";
+}} soutzoe
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-stenotype";
+  rev = "766f22565f83f5c63c0ea195c936779ec6ae824d";
+  sha256 = "0jsvfq7xim99zs5imyk7rpknlaimk6nlxy38fmfxa1r843781mfd";
+}} stenotype
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-stroke";
+  rev = "e048967a4c1b956575828f1a20e565efed4b1137";
+  sha256 = "10asdz5bj12pnji7afzls6jd9dn2v90l2dgdjf0jfp2kfzd6pxnl";
+}} stroke
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-terra-pinyin";
+  rev = "e303507e728def38739f5761c50722eae1f06dd5";
+  sha256 = "1krbmx2iq3zw4q1x4aa9c72b9xgrnjrhyxa4h5hnq5l29p9qms4d";
+}} terra-pinyin
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-wubi";
+  rev = "97b7d9f93378e98fd11167bd80d54c40e67076aa";
+  sha256 = "1cdpbqqkqjbizja0w3f7a826a5bxb39nlf9qf2130x9havmkc89z";
+}} wubi
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-wugniu";
+  rev = "de40b29f8218cc852bf82b315c7070f1d50bda02";
+  sha256 = "1m7miwsqpy49cgqd1bl7z5lkkirj3lc2bdwd1zqfg5zbgfwn0rp8";
+}} wugniu
+''
diff --git a/nixpkgs/pkgs/data/misc/cacert/default.nix b/nixpkgs/pkgs/data/misc/cacert/default.nix
new file mode 100644
index 000000000000..4d79521c255c
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/cacert/default.nix
@@ -0,0 +1,207 @@
+{ lib
+, stdenv
+, writeText
+, fetchurl
+, buildcatrust
+, blacklist ? []
+, extraCertificateFiles ? []
+, extraCertificateStrings ? []
+
+# Used by update.sh
+, nssOverride ? null
+
+# Used for tests only
+, runCommand
+, cacert
+, openssl
+}:
+
+let
+  blocklist = writeText "cacert-blocklist.txt" (lib.concatStringsSep "\n" blacklist);
+  extraCertificatesBundle = writeText "cacert-extra-certificates-bundle.crt" (lib.concatStringsSep "\n\n" extraCertificateStrings);
+
+  srcVersion = "3.74";
+  version = if nssOverride != null then nssOverride.version else srcVersion;
+  meta = with lib; {
+    homepage = "https://curl.haxx.se/docs/caextract.html";
+    description = "A bundle of X.509 certificates of public Certificate Authorities (CA)";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fpletz lukegb ];
+    license = licenses.mpl20;
+  };
+  certdata = stdenv.mkDerivation {
+    pname = "nss-cacert-certdata";
+    inherit version;
+
+    src = if nssOverride != null then nssOverride.src else fetchurl {
+      url = "mirror://mozilla/security/nss/releases/NSS_${lib.replaceStrings ["."] ["_"] version}_RTM/src/nss-${version}.tar.gz";
+      sha256 = "0mnhdkm4galhpvfz4rv0918jwmjlwkvcvb1f5va8f3zlz48qi4l8";
+    };
+
+    dontBuild = true;
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir $out
+      cp nss/lib/ckfw/builtins/certdata.txt $out
+
+      runHook postInstall
+    '';
+
+    inherit meta;
+  };
+in
+stdenv.mkDerivation rec {
+  pname = "nss-cacert";
+  inherit version;
+
+  src = certdata;
+
+  outputs = [ "out" "unbundled" "p11kit" ];
+
+  nativeBuildInputs = [ buildcatrust ];
+
+  buildPhase = ''
+    mkdir unbundled
+    buildcatrust \
+      --certdata_input certdata.txt \
+      --ca_bundle_input "${extraCertificatesBundle}" ${lib.escapeShellArgs (map (arg: "${arg}") extraCertificateFiles)} \
+      --blocklist "${blocklist}" \
+      --ca_bundle_output ca-bundle.crt \
+      --ca_unpacked_output unbundled \
+      --p11kit_output ca-bundle.trust.p11-kit
+  '';
+
+  installPhase = ''
+    install -D -t "$out/etc/ssl/certs" ca-bundle.crt
+
+    # install p11-kit specific output to p11kit output
+    install -D -t "$p11kit/etc/ssl/trust-source" ca-bundle.trust.p11-kit
+
+    # install individual certs in unbundled output
+    install -D -t "$unbundled/etc/ssl/certs" unbundled/*.crt
+  '';
+
+  setupHook = ./setup-hook.sh;
+
+  passthru = {
+    updateScript = ./update.sh;
+    tests = let
+      isTrusted = ''
+        isTrusted() {
+          # isTrusted <unbundled-dir> <ca name> <ca sha256 fingerprint>
+          for f in $1/etc/ssl/certs/*.crt; do
+            if ! [[ -s "$f" ]]; then continue; fi
+            fingerprint="$(openssl x509 -in "$f" -noout -fingerprint -sha256 | cut -f2 -d=)"
+            if [[ "x$fingerprint" == "x$3" ]]; then
+              # If the certificate is treated as rejected for TLS Web Server, then we consider it untrusted.
+              if openssl x509 -in "$f" -noout -text | grep -q '^Rejected Uses:'; then
+                if openssl x509 -in "$f" -noout -text | grep -A1 '^Rejected Uses:' | grep -q 'TLS Web Server'; then
+                  return 1
+                fi
+              fi
+              return 0
+            fi
+          done
+          return 1
+        }
+      '';
+    in {
+      # Test that building this derivation with a blacklist works, and that UTF-8 is supported.
+      blacklist-utf8 = let
+        blacklistCAToFingerprint = {
+          # "blacklist" uses the CA name from the NSS bundle, but we check for presence using the SHA256 fingerprint.
+          "CFCA EV ROOT" = "5C:C3:D7:8E:4E:1D:5E:45:54:7A:04:E6:87:3E:64:F9:0C:F9:53:6D:1C:CC:2E:F8:00:F3:55:C4:C5:FD:70:FD";
+          "NetLock Arany (Class Gold) Főtanúsítvány" = "6C:61:DA:C3:A2:DE:F0:31:50:6B:E0:36:D2:A6:FE:40:19:94:FB:D1:3D:F9:C8:D4:66:59:92:74:C4:46:EC:98";
+        };
+        mapBlacklist = f: lib.concatStringsSep "\n" (lib.mapAttrsToList f blacklistCAToFingerprint);
+      in runCommand "verify-the-cacert-filter-output" {
+        cacert = cacert.unbundled;
+        cacertWithExcludes = (cacert.override {
+          blacklist = builtins.attrNames blacklistCAToFingerprint;
+        }).unbundled;
+
+        nativeBuildInputs = [ openssl ];
+      } ''
+        ${isTrusted}
+
+        # Ensure that each certificate is in the main "cacert".
+        ${mapBlacklist (caName: caFingerprint: ''
+          isTrusted "$cacert" "${caName}" "${caFingerprint}" || ({
+            echo "CA fingerprint ${caFingerprint} (${caName}) is missing from the CA bundle. Consider picking a different CA for the blacklist test." >&2
+            exit 1
+          })
+        '')}
+
+        # Ensure that each certificate is NOT in the "cacertWithExcludes".
+        ${mapBlacklist (caName: caFingerprint: ''
+          isTrusted "$cacertWithExcludes" "${caName}" "${caFingerprint}" && ({
+            echo "CA fingerprint ${caFingerprint} (${caName}) is present in the cacertWithExcludes bundle." >&2
+            exit 1
+          })
+        '')}
+
+        touch "$out"
+      '';
+
+      # Test that we can add additional certificates to the store, and have them be trusted.
+      extra-certificates = let
+        extraCertificateStr = ''
+          -----BEGIN CERTIFICATE-----
+          MIIB5DCCAWqgAwIBAgIUItvsAYEIdYDkOIo5sdDYMcUaNuIwCgYIKoZIzj0EAwIw
+          KTEnMCUGA1UEAwweTml4T1MgY2FjZXJ0IGV4dHJhIGNlcnRpZmljYXRlMB4XDTIx
+          MDYxMjE5MDQzMFoXDTIyMDYxMjE5MDQzMFowKTEnMCUGA1UEAwweTml4T1MgY2Fj
+          ZXJ0IGV4dHJhIGNlcnRpZmljYXRlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEuP8y
+          lAm6ZyQt9v/P6gTlV/a9R+D61WjucW04kaegOhg8csiluimYodiSv0Pbgymu+Zxm
+          A3Bz9QGmytaYTiJ16083rJkwwIhqoYl7kWsLzreSTaLz87KH+rdeol59+H0Oo1Mw
+          UTAdBgNVHQ4EFgQUCxuHfvqI4YVU5M+A0+aKvd1LrdswHwYDVR0jBBgwFoAUCxuH
+          fvqI4YVU5M+A0+aKvd1LrdswDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAgNo
+          ADBlAjEArgxgjdNmRlSEuai0dzlktmBEDZKy2Iiul+ttSoce9ohfEVYESwO602HW
+          keVvI56vAjBCro3dc3m2TuktiKO6lQV56PUEyxko4H/sR5pnHlduCGRDlFzQKXf/
+          pMMmtj7cVb8=
+          -----END CERTIFICATE-----
+        '';
+        extraCertificateFile = ./test-cert-file.crt;
+        extraCertificatesToFingerprint = {
+          # String above
+          "NixOS cacert extra certificate string" = "A3:20:D0:84:96:97:25:FF:98:B8:A9:6D:A3:7C:89:95:6E:7A:77:21:92:F3:33:E9:31:AF:5E:03:CE:A9:E5:EE";
+
+          # File
+          "NixOS cacert extra certificate file" = "88:B8:BE:A7:57:AC:F1:FE:D6:98:8B:50:E0:BD:0A:AE:88:C7:DF:70:26:E1:67:5E:F5:F6:91:27:FF:02:D4:A5";
+        };
+        mapExtra = f: lib.concatStringsSep "\n" (lib.mapAttrsToList f extraCertificatesToFingerprint);
+      in runCommand "verify-the-cacert-extra-output" {
+        cacert = cacert.unbundled;
+        cacertWithExtras = (cacert.override {
+          extraCertificateStrings = [ extraCertificateStr ];
+          extraCertificateFiles = [ extraCertificateFile ];
+        }).unbundled;
+
+        nativeBuildInputs = [ openssl ];
+      } ''
+        ${isTrusted}
+
+        # Ensure that the extra certificate is not in the main "cacert".
+        ${mapExtra (extraName: extraFingerprint: ''
+          isTrusted "$cacert" "${extraName}" "${extraFingerprint}" && ({
+            echo "'extra' CA fingerprint ${extraFingerprint} (${extraName}) is present in the main CA bundle." >&2
+            exit 1
+          })
+        '')}
+
+        # Ensure that the extra certificates ARE in the "cacertWithExtras".
+        ${mapExtra (extraName: extraFingerprint: ''
+          isTrusted "$cacertWithExtras" "${extraName}" "${extraFingerprint}" || ({
+            echo "CA fingerprint ${extraFingerprint} (${extraName}) is not present in the cacertWithExtras bundle." >&2
+            exit 1
+          })
+        '')}
+
+        touch "$out"
+      '';
+    };
+  };
+
+  inherit meta;
+}
diff --git a/nixpkgs/pkgs/data/misc/cacert/setup-hook.sh b/nixpkgs/pkgs/data/misc/cacert/setup-hook.sh
new file mode 100644
index 000000000000..93b682fbbd12
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/cacert/setup-hook.sh
@@ -0,0 +1,7 @@
+export NIX_SSL_CERT_FILE=@out@/etc/ssl/certs/ca-bundle.crt
+
+# compatibility
+#  - openssl
+export SSL_CERT_FILE=@out@/etc/ssl/certs/ca-bundle.crt
+#  - Haskell x509-system
+export SYSTEM_CERTIFICATE_PATH=@out@/etc/ssl/certs/ca-bundle.crt
diff --git a/nixpkgs/pkgs/data/misc/cacert/test-cert-file.crt b/nixpkgs/pkgs/data/misc/cacert/test-cert-file.crt
new file mode 100644
index 000000000000..095f38817d20
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/cacert/test-cert-file.crt
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIIB7TCCAXSgAwIBAgIUFJB0STXn22fIEDjpncEt++IdFeMwCgYIKoZIzj0EAwIw
+LjEsMCoGA1UEAwwjTml4T1MgY2FjZXJ0IGV4dHJhIGNlcnRpZmljYXRlIGZpbGUw
+HhcNMjEwNjEyMTkxODA4WhcNMjIwNjEyMTkxODA4WjAuMSwwKgYDVQQDDCNOaXhP
+UyBjYWNlcnQgZXh0cmEgY2VydGlmaWNhdGUgZmlsZTB2MBAGByqGSM49AgEGBSuB
+BAAiA2IABMifTLM5K5xd+guGdKE1+NR7wnEJbxw5INzuMrkg/7jgEIQil4+L2YOF
+kU1gxcM80Ot8tQAG5OcSvX1DF6CxunpoCT+hnHqyfqoWFvl89i1BUKjyWCQ5WXEe
+nSkuJUmYC6NTMFEwHQYDVR0OBBYEFBE2kNis1ri4fweyNVRmvje83gFQMB8GA1Ud
+IwQYMBaAFBE2kNis1ri4fweyNVRmvje83gFQMA8GA1UdEwEB/wQFMAMBAf8wCgYI
+KoZIzj0EAwIDZwAwZAIwUZf1qaSb4cezulV+4B4FoJHY2B/nRVIi/rFD8634YEDT
+vcg6dmCi/AqLEzJn7uFMAjBVTu4EVC/mtQCGESFChMeb04fsuhXgttWSwWliVPEG
+jkG7u0UNNGaU8dvrjpqRRmA=
+-----END CERTIFICATE-----
diff --git a/nixpkgs/pkgs/data/misc/cacert/update.sh b/nixpkgs/pkgs/data/misc/cacert/update.sh
new file mode 100755
index 000000000000..72d581b9650f
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/cacert/update.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p nix common-updater-scripts jq
+
+# Build both the cacert package and an overriden version where we use the source attribute of NSS.
+# Cacert and NSS are both from the same upstream sources. They are decoupled as
+# the cacert output only cares about a few infrequently changing files in the
+# sources while the NSS source code changes frequently.
+#
+# By having cacert on a older source revision that produces the same
+# certificate output as a newer version we can avoid large amounts of
+# unnecessary rebuilds.
+#
+# As of this writing there are a few magnitudes more packages depending on
+# cacert than on nss.
+#
+# If the current nixpkgs revision contains the attribute `nss_latest` that will
+# be used instead of `nss`. This is done to help the stable branch maintenance
+# where (usually) after branch-off during the first Firefox upgrade that
+# requries a new NSS version that attribute is introduced.
+# By having this change in the unstable branch we can safely carry it from
+# release to release without requiring more backport churn on those doing the
+# stable maintenance.
+
+
+set -ex
+
+BASEDIR="$(dirname "$0")/../../../.."
+
+
+CURRENT_PATH=$(nix-build --no-out-link -A cacert.out)
+PATCHED_PATH=$(nix-build --no-out-link -E "with import $BASEDIR {}; let nss_pkg = pkgs.nss_latest or pkgs.nss; in (cacert.override { nssOverride = nss_pkg; }).out")
+
+# Check the hash of the etc subfolder
+# We can't check the entire output as that contains the nix-support folder
+# which contains the output path itself.
+CURRENT_HASH=$(nix-hash "$CURRENT_PATH/etc")
+PATCHED_HASH=$(nix-hash "$PATCHED_PATH/etc")
+
+if [[ "$CURRENT_HASH" !=  "$PATCHED_HASH" ]]; then
+    NSS_VERSION=$(nix-instantiate --json --eval -E "with import $BASEDIR {}; nss.version" | jq -r .)
+    update-source-version --version-key=srcVersion cacert.src "$NSS_VERSION"
+fi
diff --git a/nixpkgs/pkgs/data/misc/cldr-emoji-annotation/default.nix b/nixpkgs/pkgs/data/misc/cldr-emoji-annotation/default.nix
new file mode 100644
index 000000000000..e51f5639cbc6
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/cldr-emoji-annotation/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv
+, fetchFromGitHub
+, autoreconfHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "cldr-emoji-annotation";
+  version = "37.0_13.0_0_2";
+
+  src = fetchFromGitHub {
+    owner = "fujiwarat";
+    repo = "cldr-emoji-annotation";
+    rev = version;
+    sha256 = "0la3h6l58j9jfjvzwz65x56ijx7sppirwpqbqc06if4c2g0kzswj";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+  ];
+
+  meta = with lib; {
+    description = "Emoji annotation files in CLDR";
+    homepage = "https://www.unicode.org/";
+    license = licenses.unicode-dfs-2016;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/combinatorial_designs/default.nix b/nixpkgs/pkgs/data/misc/combinatorial_designs/default.nix
new file mode 100644
index 000000000000..5457b4e54d4b
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/combinatorial_designs/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "combinatorial_designs";
+  version = "20140630";
+
+  src = fetchurl {
+    url = "mirror://sageupstream/combinatorial_designs/combinatorial_designs-${version}.tar.bz2";
+    sha256 = "0bj8ngiq59hipa6izi6g5ph5akmy4cbk0vlsb0wa67f7grnnqj69";
+  };
+
+  installPhase = ''
+    mkdir -p "$out/share/combinatorial_designs"
+    mv * "$out/share/combinatorial_designs"
+  '';
+
+  meta = with lib; {
+    description = "Data for Combinatorial Designs";
+    longDescription = ''
+      Current content:
+
+      - The table of MOLS (10 000 integers) from the Handbook of Combinatorial
+        Designs, 2ed.
+    '';
+    license = licenses.publicDomain;
+    platforms = platforms.all;
+    maintainers = teams.sage.members;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/common-licenses/default.nix b/nixpkgs/pkgs/data/misc/common-licenses/default.nix
new file mode 100644
index 000000000000..a0c21b5d900b
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/common-licenses/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, fetchurl
+, lib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "common-licenses";
+  version = "11.1";
+
+  src = fetchurl {
+    url = "http://deb.debian.org/debian/pool/main/b/base-files/base-files_${version}.tar.xz";
+    sha256 = "1i3hgd9vs14k819k441iibcgmi2zavnpqbnppyn2cz70kd830nbm";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share
+    cp -r licenses $out/share/common-licenses
+    cat debian/base-files.links | grep common-licenses | sed -e "s|usr|$out|g" -e "s|^|ln -s |g" | bash -x
+  '';
+
+  meta = with lib; {
+    description = "common-licenses extracted from debian base-files package";
+    homepage = "https://tracker.debian.org/pkg/base-files";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/conway_polynomials/default.nix b/nixpkgs/pkgs/data/misc/conway_polynomials/default.nix
new file mode 100644
index 000000000000..1f5c4d57f76a
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/conway_polynomials/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv
+, fetchurl
+, python3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "conway_polynomials";
+  version = "0.5";
+
+  src = fetchurl {
+    url = "mirror://sageupstream/conway_polynomials/conway_polynomials-${version}.tar.bz2";
+    sha256 = "05zb1ly9x2bbscqv0jgc45g48xx77mfs7qdbqhn4ihmihn57iwnq";
+  };
+
+  # Script that creates the "database" (nested python array) and pickles it
+  spkg-install = fetchurl {
+    url = "https://git.sagemath.org/sage.git/plain/build/pkgs/conway_polynomials/spkg-install.py?id=9.2";
+    sha256 = "1bwnqasnyv793hxg29viing4dnliz29grkhldsirq19d509yk1fs";
+  };
+
+  installPhase = ''
+    # directory layout as spkg-install.py expects
+    dir="$PWD"
+    cd ..
+    ln -s "$dir" "src"
+
+    # environment spkg-install.py expects
+    mkdir -p "$out/share"
+    export SAGE_SHARE="$out/share"
+    export PYTHONPATH=$PWD
+
+    ${python3.interpreter} ${spkg-install}
+  '';
+
+  meta = with lib; {
+    description = "Contains a small database of Conway polynomials";
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = teams.sage.members;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix b/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix
new file mode 100644
index 000000000000..9ac49167f66b
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv
+, autoconf
+, automake
+, libtool
+, intltool
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ddccontrol-db";
+  version = "20220216";
+
+  src = fetchFromGitHub {
+    owner = "ddccontrol";
+    repo = "ddccontrol-db";
+    rev = version;
+    sha256 = "sha256-Nr8OvxbJRf9t2BUtEX3qBAH2BSs6KWLMzSpykiwYsHQ=";
+  };
+
+  preConfigure = ''
+    ./autogen.sh
+  '';
+
+  buildInputs =
+    [
+      autoconf
+      automake
+      libtool
+      intltool
+    ];
+
+  meta = with lib; {
+    description = "Monitor database for DDCcontrol";
+    homepage = "https://github.com/ddccontrol/ddccontrol-db";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ lib.maintainers.pakhfn ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/dns-root-data/default.nix b/nixpkgs/pkgs/data/misc/dns-root-data/default.nix
new file mode 100644
index 000000000000..aad1fe61c4bf
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/dns-root-data/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchurl }:
+
+let
+
+  rootHints = fetchurl {
+    # Original source https://www.internic.net/domain/named.root
+    # occasionally suffers from pointless hash changes,
+    # and having stable sources for older versions has advantages, too.
+    urls = map (prefix: prefix + "cc5e14a264912/etc/root.hints") [
+      "https://gitlab.nic.cz/knot/knot-resolver/raw/"
+      "https://raw.githubusercontent.com/CZ-NIC/knot-resolver/"
+    ];
+    sha256 = "0vdrff4l8s8grif52dnh091s8qydhh88k25zqd9rj66sf1qwcwxl";
+  };
+
+  rootKey = ./root.key;
+  rootDs = ./root.ds;
+
+in
+
+stdenv.mkDerivation {
+  name = "dns-root-data-2019-01-11";
+
+  buildCommand = ''
+    mkdir $out
+    cp ${rootHints} $out/root.hints
+    cp ${rootKey} $out/root.key
+    cp ${rootDs} $out/root.ds
+  '';
+
+  meta = with lib; {
+    description = "DNS root data including root zone and DNSSEC key";
+    maintainers = with maintainers; [ fpletz vcunat ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/dns-root-data/root.ds b/nixpkgs/pkgs/data/misc/dns-root-data/root.ds
new file mode 100644
index 000000000000..e292b5a7bf0c
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/dns-root-data/root.ds
@@ -0,0 +1 @@
+. IN DS 20326 8 2 E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D
diff --git a/nixpkgs/pkgs/data/misc/dns-root-data/root.key b/nixpkgs/pkgs/data/misc/dns-root-data/root.key
new file mode 100644
index 000000000000..edfc762ad602
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/dns-root-data/root.key
@@ -0,0 +1 @@
+.	172800	IN	DNSKEY	257 3 8 AwEAAaz/tAm8yTn4Mfeh5eyI96WSVexTBAvkMgJzkKTOiW1vkIbzxeF3+/4RgWOq7HrxRixHlFlExOLAJr5emLvN7SWXgnLh4+B5xQlNVz8Og8kvArMtNROxVQuCaSnIDdD5LKyWbRd2n9WGe2R8PzgCmr3EgVLrjyBxWezF0jLHwVN8efS3rCj/EWgvIWgb9tarpVUDK/b58Da+sqqls3eNbuv7pr+eoZG+SrDK6nWeL3c6H5Apxz7LjVc1uTIdsIXxuOLYA4/ilBmSVIzuDWfdRUfhHdY6+cn8HFRm+2hM8AnXGXws9555KrUB5qihylGa8subX2Nn6UwNR1AkUTV74bU= ;{id = 20326 (ksk), size = 2048b}
diff --git a/nixpkgs/pkgs/data/misc/dns-root-data/update-root-key.sh b/nixpkgs/pkgs/data/misc/dns-root-data/update-root-key.sh
new file mode 100755
index 000000000000..9a3141aef197
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/dns-root-data/update-root-key.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p busybox unbound
+
+TMP=`mktemp`
+unbound-anchor -a "$TMP"
+grep -Ev "^($$|;)" "$TMP" | sed -e 's/ ;;.*//' > root.key
+
+unbound-anchor -F -a "$TMP"
+sed '/^;/d' < "$TMP" > root.ds
+rm $TMP
diff --git a/nixpkgs/pkgs/data/misc/elliptic_curves/default.nix b/nixpkgs/pkgs/data/misc/elliptic_curves/default.nix
new file mode 100644
index 000000000000..daa017a68112
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/elliptic_curves/default.nix
@@ -0,0 +1,50 @@
+{ lib, stdenv
+, fetchurl
+, python3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "elliptic_curves";
+  version = "0.8";
+
+  src = fetchurl {
+    url = "mirror://sageupstream/${pname}/${pname}-${version}.tar.bz2";
+    sha256 = "0pzaym44x88dn8rydiwqgm73yghzlgf7gqvd7qqsrsdl2vyp091w";
+  };
+
+
+  # Script that creates the sqlite database from the allcurves textfile
+  spkg-install = fetchurl {
+    url = "https://git.sagemath.org/sage.git/plain/build/pkgs/${pname}/spkg-install.py?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
+    sha256 = "116g684i6mvs11fvb6fzfsr4fn903axn31vigdyb8bgpf8l4hvc5";
+  };
+
+  installPhase = ''
+    # directory layout as spkg-install.py expects
+    dir="$PWD"
+    cd ..
+    ln -s "$dir" "src"
+
+    # environment spkg-install.py expects
+    mkdir -p "$out/share"
+    export SAGE_SHARE="$out/share"
+    export PYTHONPATH=$PWD
+
+    ${python3.interpreter} ${spkg-install}
+  '';
+
+  meta = with lib; {
+    description = "Databases of elliptic curves";
+    longDescription = ''
+      Includes two databases:
+
+       * A small subset of the data in John Cremona's database of elliptic curves up
+         to conductor 10000. See http://www.warwick.ac.uk/~masgaj/ftp/data/ or
+         http://sage.math.washington.edu/cremona/INDEX.html
+       * William Stein's database of interesting curves
+    '';
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = teams.sage.members;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/fedora-backgrounds/default.nix b/nixpkgs/pkgs/data/misc/fedora-backgrounds/default.nix
new file mode 100644
index 000000000000..3089e721a7c9
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/fedora-backgrounds/default.nix
@@ -0,0 +1,34 @@
+{ callPackage, lib, fetchurl }:
+
+let
+  fedoraBackground = callPackage ./generic.nix { };
+in {
+  f32 = fedoraBackground rec {
+    version = "32.2.2";
+    src = fetchurl {
+      url = "https://github.com/fedoradesign/backgrounds/releases/download/v${version}/f${lib.versions.major version}-backgrounds-${version}.tar.xz";
+      hash = "sha256-1F75aae7Jj7M2IPn/vWKcUF+O5mZ0Yey7hWuFj/4Fhg=";
+    };
+  };
+
+  f33 = fedoraBackground rec {
+    version = "33.0.7";
+    src = fetchurl {
+      url = "https://github.com/fedoradesign/backgrounds/releases/download/v${version}/f${lib.versions.major version}-backgrounds-${version}.tar.xz";
+      hash = "sha256-lAn5diEYebCo2ZJCOn9rD87rOasUU0qnSOr0EnZKW4o=";
+    };
+    # Fix broken symlinks in the Xfce background directory.
+    patches = [ ./f33-fix-xfce-path.patch ];
+  };
+
+  f34 = fedoraBackground rec {
+    version = "34.0.1";
+    src = fetchurl {
+      url = "https://github.com/fedoradesign/backgrounds/releases/download/v${version}/f${lib.versions.major version}-backgrounds-${version}.tar.xz";
+      hash = "sha256-0gotgQ4N0yE8WZbsu7B3jmUIZrycbqjEMxZl01JcJj4=";
+    };
+    # Fix broken symlinks in the Xfce background directory.
+    patches = [ ./f34-fix-xfce-path.patch ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/data/misc/fedora-backgrounds/f33-fix-xfce-path.patch b/nixpkgs/pkgs/data/misc/fedora-backgrounds/f33-fix-xfce-path.patch
new file mode 100644
index 000000000000..eabdacddaa53
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/fedora-backgrounds/f33-fix-xfce-path.patch
@@ -0,0 +1,15 @@
+diff --git a/default/Makefile b/default/Makefile
+index ec8095a..9391f8f 100644
+--- a/default/Makefile
++++ b/default/Makefile
+@@ -48,8 +48,8 @@ install:
+ 	
+ 	#~ XFCE background
+ 	$(MKDIR) $(XFCE_BG_DIR)
+-	$(LN_S) ../default/$(WP_NAME)-02-day.png \
++	$(LN_S) ../../backgrounds/$(WP_NAME)/default/$(WP_NAME)-02-day.png \
+ 			$(XFCE_BG_DIR)/$(WP_NAME).png
+ 	for tod in 01-dawn 03-dusk 04-night; do \
+-	   $(LN_S) ../default/$(WP_NAME)-$${tod}.png $(XFCE_BG_DIR)/$(WP_NAME)-$${tod}.png; \
++	   $(LN_S) ../../backgrounds/$(WP_NAME)/default/$(WP_NAME)-$${tod}.png $(XFCE_BG_DIR)/$(WP_NAME)-$${tod}.png; \
+ 	done;
diff --git a/nixpkgs/pkgs/data/misc/fedora-backgrounds/f34-fix-xfce-path.patch b/nixpkgs/pkgs/data/misc/fedora-backgrounds/f34-fix-xfce-path.patch
new file mode 100644
index 000000000000..847927667133
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/fedora-backgrounds/f34-fix-xfce-path.patch
@@ -0,0 +1,13 @@
+diff --git a/default/Makefile b/default/Makefile
+index 172d5d9..540a1c0 100644
+--- a/default/Makefile
++++ b/default/Makefile
+@@ -1,7 +1,7 @@
+ WP_NAME=f34
+ WP_BIGNAME=F34
+ WP_DIR=$(DESTDIR)/usr/share/backgrounds/$(WP_NAME)
+-WP_DIR_LN=/usr/share/backgrounds/$(WP_NAME)
++WP_DIR_LN=$(DESTDIR)/usr/share/backgrounds/$(WP_NAME)
+ GNOME_BG_DIR=$(DESTDIR)/usr/share/gnome-background-properties
+ KDE_BG_DIR=$(DESTDIR)/usr/share/wallpapers
+ MATE_BG_DIR=$(DESTDIR)/usr/share/mate-background-properties
diff --git a/nixpkgs/pkgs/data/misc/fedora-backgrounds/generic.nix b/nixpkgs/pkgs/data/misc/fedora-backgrounds/generic.nix
new file mode 100644
index 000000000000..5ebc6ff367e9
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/fedora-backgrounds/generic.nix
@@ -0,0 +1,43 @@
+{ lib
+, stdenvNoCC
+, coreutils
+}:
+
+{ version
+, src
+, patches ? [ ]
+}:
+
+stdenvNoCC.mkDerivation {
+  inherit patches src version;
+
+  pname = "fedora${lib.versions.major version}-backgrounds";
+
+  dontBuild = true;
+
+  postPatch = ''
+    for f in default/Makefile extras/Makefile; do
+      substituteInPlace $f \
+        --replace "usr/share" "share" \
+        --replace "/usr/bin/" "" \
+        --replace "/bin/" ""
+    done
+
+    for f in $(find . -name '*.xml'); do
+      substituteInPlace $f \
+        --replace "/usr/share" "$out/share"
+    done;
+  '';
+
+  installFlags = [
+    "DESTDIR=$(out)"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/fedoradesign/backgrounds";
+    description = "A set of default and supplemental wallpapers for Fedora";
+    license = licenses.cc-by-sa-40;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/freepats/default.nix b/nixpkgs/pkgs/data/misc/freepats/default.nix
new file mode 100644
index 000000000000..4fe6a5c20fde
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/freepats/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "freepats-20060219";
+
+  src = fetchurl {
+    url = "https://freepats.zenvoid.org/${name}.tar.bz2";
+    sha256 = "12iw36rd94zirll96cd5k0va7p5hxmf2shvjlhzihcmjaw8flq82";
+  };
+
+  installPhase = ''mkdir "$out"; cp -r . "$out"'';
+
+  meta = with lib; {
+    description = "Instrument patches, for MIDI synthesizers";
+    longDescription = ''
+      Freepats is a project to create a free and open set of instrument
+      patches, in any format, that can be used with softsynths.
+    '';
+    homepage = "https://freepats.zenvoid.org/";
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/geolite-legacy/default.nix b/nixpkgs/pkgs/data/misc/geolite-legacy/default.nix
new file mode 100644
index 000000000000..ad9560da9a48
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/geolite-legacy/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchurl, zstd }:
+
+stdenv.mkDerivation {
+  pname = "geolite-legacy";
+  version = "2022-01-25";
+
+  # We use Arch Linux package as a snapshot, because upstream database is updated in-place.
+  geoip = fetchurl {
+    url = "https://archive.archlinux.org/packages/g/geoip-database/geoip-database-20220125-1-any.pkg.tar.zst";
+    sha256 = "sha256-ieuLpllJTHYu28UXBGfDWbnr9Ei8pGnos+RPWDsAGcM=";
+  };
+
+  extra = fetchurl {
+    url = "https://archive.archlinux.org/packages/g/geoip-database-extra/geoip-database-extra-20220125-1-any.pkg.tar.zst";
+    sha256 = "sha256-xrTnuJvuvtvn+uIARtbuJUlHco3Q+9BXLljt35V3ip0=";
+  };
+
+  nativeBuildInputs = [ zstd ];
+
+  buildCommand = ''
+    tar -xaf "$geoip"
+    tar -xaf "$extra"
+    mkdir -p $out/share
+    mv usr/share/GeoIP $out/share
+  '';
+
+  meta = with lib; {
+    description = "GeoLite Legacy IP geolocation databases";
+    homepage = "https://mailfud.org/geoip-legacy/";
+    license = licenses.cc-by-sa-40;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fpletz ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/graphs/default.nix b/nixpkgs/pkgs/data/misc/graphs/default.nix
new file mode 100644
index 000000000000..93a0d75aaf69
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/graphs/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "graphs";
+  version = "20210214";
+
+  src = fetchurl {
+    url = "mirror://sageupstream/${pname}/${pname}-${version}.tar.bz2";
+    sha256 = "sha256-ByN8DZhTYRUFw4n9e7klAMh0P1YxurtND0Xf2DMvN0E=";
+  };
+
+  installPhase = ''
+    mkdir -p "$out/share/graphs"
+    cp * "$out/share/graphs/"
+  '';
+
+  meta = with lib; {
+    description = "A database of graphs";
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = teams.sage.members;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/hackage/default.nix b/nixpkgs/pkgs/data/misc/hackage/default.nix
new file mode 100644
index 000000000000..e559281303d7
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/hackage/default.nix
@@ -0,0 +1,10 @@
+# Hackage database snapshot, used by maintainers/scripts/regenerate-hackage-packages.sh
+# and callHackage
+{ fetchurl }:
+let
+  pin = builtins.fromJSON (builtins.readFile ./pin.json);
+in
+fetchurl {
+  inherit (pin) url sha256;
+  passthru.updateScript = ../../../../maintainers/scripts/haskell/update-hackage.sh;
+}
diff --git a/nixpkgs/pkgs/data/misc/hackage/pin.json b/nixpkgs/pkgs/data/misc/hackage/pin.json
new file mode 100644
index 000000000000..d22dccf38cf0
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/hackage/pin.json
@@ -0,0 +1,6 @@
+{
+  "commit": "aa8f2230d08c540df249147ea681a5c22314d083",
+  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/aa8f2230d08c540df249147ea681a5c22314d083.tar.gz",
+  "sha256": "1h92r4si1vmf3v2m843xaqwr99hpnn1s0x08qcvd2gwjkc2qq10a",
+  "msg": "Update from Hackage at 2022-02-14T17:17:31Z"
+}
diff --git a/nixpkgs/pkgs/data/misc/iana-etc/default.nix b/nixpkgs/pkgs/data/misc/iana-etc/default.nix
new file mode 100644
index 000000000000..5e7e70a1b05d
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/iana-etc/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip, stdenvNoCC, writeText }:
+
+let
+  version = "20211124";
+in stdenvNoCC.mkDerivation {
+  name = "iana-etc-${version}";
+  src = fetchzip {
+    url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz";
+    sha256 = "sha256-4mM/ZeGd91e1AklGHFK5UB4llg9IgCo9DKcM0iXcBls=";
+  };
+
+  installPhase = ''
+    install -D -m0644 -t $out/etc services protocols
+  '';
+
+  setupHook = writeText "setup-hook" ''
+    export NIX_ETC_PROTOCOLS=@out@/etc/protocols
+    export NIX_ETC_SERVICES=@out@/etc/services
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/Mic92/iana-etc";
+    description = "IANA protocol and port number assignments (/etc/protocols and /etc/services)";
+    platforms = platforms.unix;
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/libkkc-data/default.nix b/nixpkgs/pkgs/data/misc/libkkc-data/default.nix
new file mode 100644
index 000000000000..7fcd2fbf516f
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/libkkc-data/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchurl, python2, libkkc }:
+
+stdenv.mkDerivation rec {
+  pname = "libkkc-data";
+  version = "0.2.7";
+
+  src = fetchurl {
+    url = "${meta.homepage}/releases/download/v${libkkc.version}/${pname}-${version}.tar.xz";
+    sha256 = "16avb50jasq2f1n9xyziky39dhlnlad0991pisk3s11hl1aqfrwy";
+  };
+
+  nativeBuildInputs = [ python2.pkgs.marisa ];
+
+  strictDeps = true;
+
+  meta = with lib; {
+    description = "Language model data package for libkkc";
+    homepage    = "https://github.com/ueno/libkkc";
+    license     = licenses.gpl3Plus;
+    maintainers = with maintainers; [ vanzef ];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/mailcap/default.nix b/nixpkgs/pkgs/data/misc/mailcap/default.nix
new file mode 100644
index 000000000000..3519b01f54ba
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/mailcap/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchzip }:
+
+let
+  version = "2.1.53";
+
+in fetchzip {
+  name = "mailcap-${version}";
+
+  url = "https://releases.pagure.org/mailcap/mailcap-${version}.tar.xz";
+  sha256 = "sha256-6JPj2tZgoTEZ8hNEi9ZZhElBNm9SRTSXifMmCicwiLo=";
+
+  postFetch = ''
+    tar -xavf $downloadedFile --strip-components=1
+    substituteInPlace mailcap --replace "/usr/bin/" ""
+    gzip mailcap.5
+    sh generate-nginx-mimetypes.sh < mime.types > nginx-mime.types
+
+    install -D -m0644 nginx-mime.types $out/etc/nginx/mime.types
+    install -D -m0644 -t $out/etc mailcap mime.types
+    install -D -m0644 -t $out/share/man/man5 mailcap.5.gz
+  '';
+
+  meta = with lib; {
+    description = "Helper application and MIME type associations for file types";
+    homepage = "https://pagure.io/mailcap";
+    license = licenses.mit;
+    maintainers = with maintainers; [ c0bw3b ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/media-player-info/default.nix b/nixpkgs/pkgs/data/misc/media-player-info/default.nix
new file mode 100644
index 000000000000..56e4ace41f4d
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/media-player-info/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchurl, pkg-config, python3, udev, systemd }:
+
+let
+  name = "media-player-info-24";
+in
+
+  stdenv.mkDerivation {
+    inherit name;
+
+    src = fetchurl {
+      url = "https://www.freedesktop.org/software/media-player-info/${name}.tar.gz";
+      sha256 = "0d0i7av8v369hzvlynwlrbickv1brlzsmiky80lrjgjh1gdldkz6";
+    };
+
+    buildInputs = [ udev systemd ];
+    nativeBuildInputs = [ pkg-config python3 ];
+
+    postPatch = ''
+      patchShebangs ./tools
+    '';
+
+    configureFlags = [ "--with-udevdir=${placeholder "out"}/lib/udev" ];
+
+    meta = with lib; {
+      description = "A repository of data files describing media player capabilities";
+      homepage = "https://www.freedesktop.org/wiki/Software/media-player-info/";
+      license = licenses.bsd3;
+      maintainers = with maintainers; [ ttuegel ];
+      platforms = with platforms; linux;
+    };
+  }
diff --git a/nixpkgs/pkgs/data/misc/miscfiles/default.nix b/nixpkgs/pkgs/data/misc/miscfiles/default.nix
new file mode 100644
index 000000000000..783dc29ecb2d
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/miscfiles/default.nix
@@ -0,0 +1,18 @@
+{lib, stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  name = "miscfiles-1.5";
+
+  src = fetchurl {
+    url = "mirror://gnu/miscfiles/${name}.tar.gz";
+    sha256 = "005588vfrwx8ghsdv9p7zczj9lbc9a3r4m5aphcaqv8gif4siaka";
+  };
+
+  meta = with lib; {
+    homepage = "https://www.gnu.org/software/miscfiles/";
+    license = licenses.gpl2Plus;
+    description = "Collection of files not of crucial importance for sysadmins";
+    maintainers = with maintainers; [ pSub ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix b/nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix
new file mode 100644
index 000000000000..51598a53d50a
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchurl, gnome, libxslt }:
+
+stdenv.mkDerivation rec {
+  pname = "mobile-broadband-provider-info";
+  version = "20210805";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-a/ihVY6lVBr7xve0QV50zJ9aqYKbE07Ks+8ch0ElaLw=";
+  };
+
+  nativeBuildInputs = [
+    # fixes configure: error: xsltproc not found
+    libxslt
+  ];
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+    };
+  };
+
+  meta = with lib; {
+    description = "Mobile broadband service provider database";
+    homepage = "https://wiki.gnome.org/Projects/NetworkManager/MobileBroadband/ServiceProviders";
+    license = licenses.publicDomain;
+    maintainers = [ ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/nixos-artwork/default.nix b/nixpkgs/pkgs/data/misc/nixos-artwork/default.nix
new file mode 100644
index 000000000000..4814232fbfe7
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/nixos-artwork/default.nix
@@ -0,0 +1,5 @@
+{ callPackage }:
+
+{
+  wallpapers = callPackage ./wallpapers.nix { };
+}
diff --git a/nixpkgs/pkgs/data/misc/nixos-artwork/grub2-theme.nix b/nixpkgs/pkgs/data/misc/nixos-artwork/grub2-theme.nix
new file mode 100644
index 000000000000..0a5717ba3b27
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/nixos-artwork/grub2-theme.nix
@@ -0,0 +1,5 @@
+{fetchzip}:
+fetchzip {
+  url = "https://github.com/NixOS/nixos-artwork/releases/download/bootloader-18.09-pre/grub2-installer.tar.bz2";
+  sha256 = "0rhh061m1hpgadm7587inw3fxfacnd53xjc53w3vzghlck56djq5";
+}
diff --git a/nixpkgs/pkgs/data/misc/nixos-artwork/icons.nix b/nixpkgs/pkgs/data/misc/nixos-artwork/icons.nix
new file mode 100644
index 000000000000..af8a157d491c
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/nixos-artwork/icons.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, fetchFromGitHub
+, imagemagick
+}:
+
+stdenv.mkDerivation {
+  pname = "nixos-icons";
+  version = "2021-02-24";
+
+  src = fetchFromGitHub {
+    owner = "NixOS";
+    repo = "nixos-artwork";
+    rev = "488c22aad523c709c44169d3e88d34b4691c20dc";
+    sha256 = "ZoanCzn4pqGB1fyMzMyGQVT0eIhNdL7ZHJSn1VZWVRs=";
+  };
+
+  nativeBuildInputs = [
+    imagemagick
+  ];
+
+  makeFlags = [
+    "DESTDIR=${placeholder "out"}"
+    "prefix="
+  ];
+}
diff --git a/nixpkgs/pkgs/data/misc/nixos-artwork/wallpapers.nix b/nixpkgs/pkgs/data/misc/nixos-artwork/wallpapers.nix
new file mode 100644
index 000000000000..f8d22637cf3d
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/nixos-artwork/wallpapers.nix
@@ -0,0 +1,159 @@
+{ lib, stdenv, fetchurl }:
+
+let
+  mkNixBackground = { name, src, description }:
+
+  let
+    pkg = stdenv.mkDerivation {
+      inherit name src;
+
+      dontUnpack = true;
+
+      installPhase = ''
+        # GNOME
+        mkdir -p $out/share/backgrounds/nixos
+        ln -s $src $out/share/backgrounds/nixos/${src.name}
+
+        # TODO: is this path still needed?
+        mkdir -p $out/share/artwork/gnome
+        ln -s $src $out/share/artwork/gnome/${src.name}
+
+        # KDE
+        mkdir -p $out/share/wallpapers/${name}/contents/images
+        ln -s $src $out/share/wallpapers/${name}/contents/images/${src.name}
+        cat >>$out/share/wallpapers/${name}/metadata.desktop <<_EOF
+[Desktop Entry]
+Name=${name}
+X-KDE-PluginInfo-Name=${name}
+_EOF
+      '';
+
+      passthru = {
+        gnomeFilePath = "${pkg}/share/backgrounds/nixos/${src.name}";
+        kdeFilePath = "${pkg}/share/wallpapers/${name}/contents/images/${src.name}";
+      };
+
+      meta = with lib; {
+        inherit description;
+        homepage = "https://github.com/NixOS/nixos-artwork";
+        license = licenses.free;
+        platforms = platforms.all;
+      };
+    };
+in pkg;
+
+in
+
+rec {
+
+  dracula = mkNixBackground {
+    name = "dracula-2020-07-02";
+    description = "Nix background based on the Dracula color palette";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/03c6c20be96c38827037d2238357f2c777ec4aa5/wallpapers/nix-wallpaper-dracula.png";
+      sha256 = "07ly21bhs6cgfl7pv4xlqzdqm44h22frwfhdqyd4gkn2jla1waab";
+    };
+  };
+
+  gnome-dark = simple-dark-gray-bottom;
+
+  mosaic-blue = mkNixBackground {
+    name = "mosaic-blue-2016-02-19";
+    description = "Mosaic blue background for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-mosaic-blue.png";
+      sha256 = "1cbcssa8qi0giza0k240w5yy4yb2bhc1p1r7pw8qmziprcmwv5n5";
+    };
+  };
+
+  nineish = mkNixBackground {
+    name = "nineish-2019-12-04";
+    description = "Nix background inspired by simpler times";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/da01f68d21ddfdc9f1c6e520c2170871c81f1cf5/wallpapers/nix-wallpaper-nineish.png";
+      sha256 = "1mwvnmflp0z1biyyhfz7mjn7i1nna94n7jyns3na2shbfkaq7i0h";
+    };
+  };
+
+  nineish-dark-gray = mkNixBackground {
+    name = "nineish-dark-gray-2020-07-02";
+    description = "Dark gray Nix background inspired by simpler times";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/f07707cecfd89bc1459d5dad76a3a4c5315efba1/wallpapers/nix-wallpaper-nineish-dark-gray.png";
+      sha256 = "07zl1dlxqh9dav9pibnhr2x1llywwnyphmzcdqaby7dz5js184ly";
+    };
+  };
+
+  simple-blue = mkNixBackground {
+    name = "simple-blue-2016-02-19";
+    description = "Simple blue background for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-simple-blue.png";
+      sha256 = "1llr175m454aqixxwbp3kb5qml2hi1kn7ia6lm7829ny6y7xrnms";
+    };
+  };
+
+  simple-dark-gray = mkNixBackground {
+    name = "simple-dark-gray-2016-02-19";
+    description = "Simple dark gray background for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-simple-dark-gray.png";
+      sha256 = "1282cnqc5qynp0q9gdll7bgpw23yp5bhvaqpar59ibkh3iscg8i5";
+    };
+  };
+
+  simple-dark-gray-bootloader = mkNixBackground {
+    name = "simple-dark-gray-bootloader-2018-08-28";
+    description = "Simple dark gray background for NixOS, specifically bootloaders.";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/9d1f11f652ed5ffe460b6c602fbfe2e7e9a08dff/bootloader/nix-wallpaper-simple-dark-gray_bootloader.png";
+      sha256 = "0v26kfydn7alr81f2qpgsqdiq2zk7yrwlgibx2j7k91z9h47dpj9";
+    };
+  };
+
+  simple-dark-gray-bottom = mkNixBackground {
+    name = "simple-dark-gray-2018-08-28";
+    description = "Simple dark gray background for NixOS, specifically bootloaders and graphical login.";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/783c38b22de09f6ee33aacc817470a4513392d83/wallpapers/nix-wallpaper-simple-dark-gray_bottom.png";
+      sha256 = "13hi4jwp5ga06dpdw5l03b4znwn58fdjlkqjkg824isqsxzv6k15";
+    };
+  };
+
+  simple-light-gray = mkNixBackground {
+    name = "simple-light-gray-2016-02-19";
+    description = "Simple light gray background for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-simple-light-gray.png";
+      sha256 = "0i6d0xv1nzrv7na9hjrgzl3jrwn81vnprnq2pxyznlxbjcgkjnk2";
+    };
+  };
+
+  simple-red = mkNixBackground {
+    name = "simple-red-2016-02-19";
+    description = "Simple red background for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-simple-red.png";
+      sha256 = "16drprsi3q8xbxx3bxp54yld04c4lq6jankw8ww1irg7z61a6wjs";
+    };
+  };
+
+  stripes-logo = mkNixBackground {
+    name = "stripes-logo-2016-02-19";
+    description = "Stripes logo background for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-stripes-logo.png";
+      sha256 = "0cqjkgp30428c1yy8s4418k4qz0ycr6fzcg4rdi41wkh5g1hzjnl";
+    };
+  };
+
+  stripes = mkNixBackground {
+    name = "stripes-2016-02-19";
+    description = "Stripes background for Nix";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/766f10e0c93cb1236a85925a089d861b52ed2905/wallpapers/nix-wallpaper-stripes.png";
+      sha256 = "116337wv81xfg0g0bsylzzq2b7nbj6hjyh795jfc9mvzarnalwd3";
+    };
+  };
+
+}
diff --git a/nixpkgs/pkgs/data/misc/osinfo-db/default.nix b/nixpkgs/pkgs/data/misc/osinfo-db/default.nix
new file mode 100644
index 000000000000..c7a1ef2755f3
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/osinfo-db/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchurl, osinfo-db-tools, gettext, libxml2 }:
+
+stdenv.mkDerivation rec {
+  pname = "osinfo-db";
+  version = "20211216";
+
+  src = fetchurl {
+    url = "https://releases.pagure.org/libosinfo/${pname}-${version}.tar.xz";
+    sha256 = "sha256-CeznsOUhMw4x0SpZFx408JcYGny7zW+M1J+SiSO7EII=";
+  };
+
+  nativeBuildInputs = [ osinfo-db-tools gettext libxml2 ];
+
+  installPhase = ''
+    osinfo-db-import --dir "$out/share/osinfo" "${src}"
+  '';
+
+  meta = with lib; {
+    description = "Osinfo database of information about operating systems for virtualization provisioning tools";
+    homepage = "https://gitlab.com/libosinfo/osinfo-db/";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/pari-galdata/default.nix b/nixpkgs/pkgs/data/misc/pari-galdata/default.nix
new file mode 100644
index 000000000000..c76734628050
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/pari-galdata/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation {
+  version = "20080411";
+  pname = "pari-galdata";
+
+  src = fetchurl {
+    url = "http://pari.math.u-bordeaux.fr/pub/pari/packages/galdata.tgz";
+    sha256 = "1pch6bk76f1i6cwwgm7hhxi5h71m52lqayp4mnyj0jmjk406bhdp";
+  };
+
+  installPhase = ''
+    mkdir -p "$out/share/pari"
+    cp -R * "$out/share/pari/"
+  '';
+
+  meta = with lib; {
+    description = "PARI database needed to compute Galois group in degrees 8 through 11";
+    homepage = "http://pari.math.u-bordeaux.fr/";
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = teams.sage.members;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/pari-seadata-small/default.nix b/nixpkgs/pkgs/data/misc/pari-seadata-small/default.nix
new file mode 100644
index 000000000000..86516fe1ddba
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/pari-seadata-small/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation {
+  version = "20090618";
+  pname = "pari-seadata-small";
+
+  src = fetchurl {
+    url = "http://pari.math.u-bordeaux.fr/pub/pari/packages/seadata-small.tgz";
+    sha256 = "13qafribxwkz8h3haa0cng7arz0kh7398br4y7vqs9ib8w9yjnxz";
+  };
+
+  installPhase = ''
+    mkdir -p "$out/share/pari"
+    cp -R * "$out/share/pari/"
+  '';
+
+  meta = with lib; {
+    description = "PARI database needed by ellap for large primes";
+    homepage = "http://pari.math.u-bordeaux.fr/";
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = teams.sage.members;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/polytopes_db/default.nix b/nixpkgs/pkgs/data/misc/polytopes_db/default.nix
new file mode 100644
index 000000000000..8e9e7b44a4aa
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/polytopes_db/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "polytopes_db";
+  version = "20170220";
+
+  src = fetchurl {
+    url = "mirror://sageupstream/${pname}/${pname}-${version}.tar.bz2";
+    sha256 = "1q0cd811ilhax4dsj9y5p7z8prlalqr7k9mzq178c03frbgqny6b";
+  };
+
+  installPhase = ''
+    mkdir -p "$out/share/reflexive_polytopes"
+    cp -R * "$out/share/reflexive_polytopes/"
+  '';
+
+  meta = with lib; {
+    description = "Reflexive polytopes database";
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = teams.sage.members;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/poppler-data/default.nix b/nixpkgs/pkgs/data/misc/poppler-data/default.nix
new file mode 100644
index 000000000000..6d35279b6de2
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/poppler-data/default.nix
@@ -0,0 +1,30 @@
+{ fetchurl
+, lib
+, stdenv
+, cmake
+, ninja
+, poppler
+}:
+
+stdenv.mkDerivation rec {
+  pname = "poppler-data";
+  version = "0.4.11";
+
+  src = fetchurl {
+    url = "https://poppler.freedesktop.org/${pname}-${version}.tar.gz";
+    sha256 = "LOwFzRuwOvmKiwah4i9ubhplseLzgWyzBpuwh0gl8Iw=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    ninja
+  ];
+
+  meta = with lib; {
+    homepage = "https://poppler.freedesktop.org/";
+    description = "Encoding files for Poppler, a PDF rendering library";
+    platforms = platforms.all;
+    license = licenses.free; # more free licenses combined
+    maintainers = poppler.meta.maintainers;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/publicsuffix-list/default.nix b/nixpkgs/pkgs/data/misc/publicsuffix-list/default.nix
new file mode 100644
index 000000000000..db74b74f22d9
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/publicsuffix-list/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "publicsuffix-list";
+  version = "2021-09-03";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "publicsuffix";
+  repo = "list";
+  rev = "2533d032871e1ef1f410fc0754b848d4587c8021";
+  sha256 = "sha256-Q8uIXM1CMu8dlWcVoL17M1XRGu3kG7Y7jpx0oHQh+2I=";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -Dm0444 public_suffix_list.dat tests/test_psl.txt -t $out/share/publicsuffix
+  '';
+
+  meta = with lib; {
+    homepage = "https://publicsuffix.org/";
+    description = "Cross-vendor public domain suffix database";
+    platforms = platforms.all;
+    license = licenses.mpl20;
+    maintainers = [ maintainers.c0bw3b ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/rime-data/default.nix b/nixpkgs/pkgs/data/misc/rime-data/default.nix
new file mode 100644
index 000000000000..97404764e200
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/rime-data/default.nix
@@ -0,0 +1,66 @@
+{ lib, stdenv, fetchFromGitHub, librime }:
+
+stdenv.mkDerivation {
+  pname = "rime-data";
+  version = "0.38.20211002";
+
+  src = fetchFromGitHub {
+    owner = "rime";
+    repo = "plum";
+    rev = "1730556e1da5a08bb8e0a656c4780a46851a2913";
+    sha256 = "sha256-D7rPUxcB3QkCtisfBLHPiqfgL5lqmxjSiuEcpE63elw=";
+  };
+
+  buildInputs = [ librime ];
+
+  buildFlags = [ "all" ];
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  preBuild = import ./fetchSchema.nix fetchFromGitHub;
+
+  postPatch = ''
+    # Disable git operations.
+    sed -i /fetch_or_update_package$/d scripts/install-packages.sh
+  '';
+
+  meta = with lib; {
+    description = "Schema data of Rime Input Method Engine";
+    longDescription = ''
+      Rime-data provides schema data for Rime Input Method Engine.
+    '';
+    homepage = "https://rime.im";
+    license = with licenses; [
+      # rime-array
+      # rime-combo-pinyin
+      # rime-double-pinyin
+      # rime-middle-chinese
+      # rime-scj
+      # rime-soutzoe
+      # rime-stenotype
+      # rime-wugniu
+      gpl3Only
+
+      # plum
+      # rime-bopomofo
+      # rime-cangjie
+      # rime-emoji
+      # rime-essay
+      # rime-ipa
+      # rime-jyutping
+      # rime-luna-pinyin
+      # rime-prelude
+      # rime-quick
+      # rime-stroke
+      # rime-terra-pinyin
+      # rime-wubi
+      lgpl3Only
+
+      # rime-pinyin-simp
+      asl20
+
+      # rime-cantonese
+      cc-by-40
+    ];
+    maintainers = with maintainers; [ pmy ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/rime-data/fetchSchema.nix b/nixpkgs/pkgs/data/misc/rime-data/fetchSchema.nix
new file mode 100644
index 000000000000..c2841a9f1e61
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/rime-data/fetchSchema.nix
@@ -0,0 +1,137 @@
+# Generated using generateFetchSchema.sh
+fetchFromGitHub:
+''
+mkdir -p package/rime
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-array";
+  rev = "d10f2f8b2aec7c7e736ace01e8a399e5ae5e7c3a";
+  sha256 = "sha256-4t6+gh2V57SueDp9Tn6vTuxQCZNGzjLdJEhzIEqRjdI=";
+}} package/rime/array
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-bopomofo";
+  rev = "c7618f4f5728e1634417e9d02ea50d82b71956ab";
+  sha256 = "0g77nv0jrwqnbqqna0ib0kqcy6l5zl62kh49ny67d6bjwnwz9186";
+}} package/rime/bopomofo
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-cangjie";
+  rev = "8dfad9e537f18821b71ba28773315d9c670ae245";
+  sha256 = "029kw9nx6x0acg4f0m8wj1ziqffffhy9yyj51nlx17cnia0qcrby";
+}} package/rime/cangjie
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-cantonese";
+  rev = "b6f800c74eb639816d56d0d5601aaa96c8963178";
+  sha256 = "1a4ksacbz8l30y3y5c017d0hzwik8knplglb3yswy7l4hsvaanyh";
+}} package/rime/cantonese
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-combo-pinyin";
+  rev = "a84065a86b272c76215215bd6f03c506b6e7097c";
+  sha256 = "1f0b4kakw0x26gmx7xi4f94nbjlb8lvi9bks4f92jswa045vnd87";
+}} package/rime/combo-pinyin
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-double-pinyin";
+  rev = "69bf85d4dfe8bac139c36abbd68d530b8b6622ea";
+  sha256 = "093wif5avvvw45fqbwj5wkbxrychy4pagl4mwsmbrayc8jkp69ak";
+}} package/rime/double-pinyin
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-emoji";
+  rev = "4c8c51f4a3bc7298c99376eda9bbd86070fc4fa1";
+  sha256 = "0175jqh210fncafqckr9zzaw55qpswmqjrykwms1apmc68l43122";
+}} package/rime/emoji
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-essay";
+  rev = "9db2e77305e75798baf3ec8dcf1f82785b5e1be9";
+  sha256 = "03ypkkaadd5qmyg26n24a66cll90xvcimgbmiyv4d33jradiqg22";
+}} package/rime/essay
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-ipa";
+  rev = "22b71710e029bcb412e9197192a638ab11bc2abf";
+  sha256 = "0zdk4f9qkfj3q5hmjnairj1lv6f6y27mic12k886n6sxywwbwr2k";
+}} package/rime/ipa
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-jyutping";
+  rev = "1e24baa6998815c716c581effe8ec65ee87c4e8c";
+  sha256 = "0s2rckpwlrm3n7w1csnqyi5p9mkpp3z87s7mrm2vc9sv06rpv7zl";
+}} package/rime/jyutping
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-luna-pinyin";
+  rev = "623adb022b094d540218b287c2e601509eee3347";
+  sha256 = "06pcwp09l5wkqv7792gbsl31xnlb3gr9q6bgbp94vvq6m2ycahqz";
+}} package/rime/luna-pinyin
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-middle-chinese";
+  rev = "9fad7a7c0c26167d5e6e85db8df48a15c7f7d4f0";
+  sha256 = "0a0bqrlzg0k692xblqnh1rh1fwwqqb205xwxlihgji85n8ibcgph";
+}} package/rime/middle-chinese
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-pinyin-simp";
+  rev = "b0e84cda02c613ebdedc127a26131b3800f45a8e";
+  sha256 = "05v804qr3a9xvjzp9yid7231fi2l2yrl47ybbvql61z9k36ab094";
+}} package/rime/pinyin-simp
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-prelude";
+  rev = "3de303ffaa731dba07b0462ce59f4767e1219ad2";
+  sha256 = "0g7a0bla58rh1v3md59k6adk185pilb4z8i2i0pqdl4nwqp40n2p";
+}} package/rime/prelude
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-quick";
+  rev = "3fe5911ba608cb2df1b6301b76ad1573bd482a76";
+  sha256 = "08bh87ym5qvw55lyw20l3m7jd4c2z5rvil8h5q8790r7z6j6ijy9";
+}} package/rime/quick
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-scj";
+  rev = "cab5a0858765eff0553dd685a2d61d5536e9149c";
+  sha256 = "0ard2bjp4896a8dimmcwyjwgmp9kl4rz92yc92jnd3y4rgwl6fvk";
+}} package/rime/scj
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-soutzoe";
+  rev = "beeaeca72d8e17dfd1e9af58680439e9012987dc";
+  sha256 = "0jyqx0q9s0qxn168l5n8zav8jcl2g5ppr7pa8jm1vwrllf20slcc";
+}} package/rime/soutzoe
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-stenotype";
+  rev = "f3e9189d5ce33c55d3936cc58e39d0c88b3f0c88";
+  sha256 = "0dl6px7lrh3xa87knjzwzdcwjj1k1dg4l72q7lb48an4s9f1cy5d";
+}} package/rime/stenotype
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-stroke";
+  rev = "ea8576d1accd6fda339e96b415caadb56e2a07d1";
+  sha256 = "07h6nq9867hjrd2v3h1pnr940sdrw4mqrzj43siz1rzjxz3s904r";
+}} package/rime/stroke
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-terra-pinyin";
+  rev = "ce7b9249612f575d2f43d51fcacd31d1b4e0ef1b";
+  sha256 = "0vm303f4lrdmdmif5klrp6w29vn9z2vzw33cw0y83pcnz39wiads";
+}} package/rime/terra-pinyin
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-wubi";
+  rev = "f1876f08f1d4a9696395be0070c0e8e4353c44cb";
+  sha256 = "1d9y9rqssacria9d0hla96czsqv2wkfm6z926m1x269ryv96zxvk";
+}} package/rime/wubi
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-wugniu";
+  rev = "abd1ee98efbf170258fcf43875c21a4259e00b61";
+  sha256 = "0qn54d3cclny106ixdw08r5n6wn52ffs1hgrma3k0j4pv0kr9nlq";
+}} package/rime/wugniu
+''
diff --git a/nixpkgs/pkgs/data/misc/rime-data/generateFetchSchema.sh b/nixpkgs/pkgs/data/misc/rime-data/generateFetchSchema.sh
new file mode 100755
index 000000000000..e7c05c410281
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/rime-data/generateFetchSchema.sh
@@ -0,0 +1,43 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p nix-prefetch-git -p jq
+
+imlist=(
+    array
+    bopomofo
+    cangjie
+    cantonese
+    combo-pinyin
+    double-pinyin
+    emoji
+    essay
+    ipa
+    jyutping
+    luna-pinyin
+    middle-chinese
+    pinyin-simp
+    prelude
+    quick
+    scj
+    soutzoe
+    stenotype
+    stroke
+    terra-pinyin
+    wubi
+    wugniu
+)
+
+echo "# Generated using generateFetchSchema.sh"
+echo "fetchFromGitHub:"
+echo \'\'
+echo "mkdir -p package/rime"
+for im in ${imlist[@]}; do
+    tempFile=$(mktemp)
+    echo "ln -sv \${fetchFromGitHub {"
+    echo "  owner = \"rime\";"
+    echo "  repo = \"rime-$im\";"
+    nix-prefetch-git --quiet https://github.com/rime/rime-$im \
+        | jq '{ rev: .rev, sha256: .sha256 }' \
+        | jq -r 'to_entries | map("  \(.key) = \"\(.value)\";") | .[]'
+    echo "}} package/rime/$im"
+done
+echo \'\'
diff --git a/nixpkgs/pkgs/data/misc/scowl/default.nix b/nixpkgs/pkgs/data/misc/scowl/default.nix
new file mode 100644
index 000000000000..e1709ae35cf3
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/scowl/default.nix
@@ -0,0 +1,111 @@
+{ lib, stdenv, fetchFromGitHub, unzip, zip, libiconv, perl, aspell, dos2unix
+, singleWordlist ? null
+}:
+
+stdenv.mkDerivation rec {
+  pname = "scowl";
+  version = "2020.12.07";
+
+  src = fetchFromGitHub {
+    owner = "en-wl";
+    repo = "wordlist";
+    rev = "rel-${version}";
+    sha256 = "sha256-J61jhpnZcXMnoGlSuSCrKDZnnyp3Snjr+fUpTVKX64g=";
+  };
+
+  postPatch = ''
+    substituteInPlace scowl/src/Makefile \
+        --replace g++ c++
+  '';
+
+  nativeBuildInputs = [ unzip zip perl aspell dos2unix ];
+  buildInputs = lib.optional (!stdenv.isLinux) libiconv;
+
+  NIX_CFLAGS_COMPILE = "-Wno-narrowing";
+
+  preConfigure = ''
+    patchShebangs .
+    export PERL5LIB="$PERL5LIB''${PERL5LIB:+:}$PWD/varcon"
+  '';
+
+  postBuild = lib.optionalString (singleWordlist == null) ''
+    (
+    cd scowl/speller
+    make aspell
+    make hunspell
+    )
+  '';
+
+  enableParallelBuilding = false;
+
+  installPhase = if singleWordlist == null then ''
+    eval "$preInstall"
+
+    mkdir -p "$out/share/scowl"
+    mkdir -p "$out/lib" "$out/share/hunspell" "$out/share/myspell"
+    mkdir -p "$out/share/dict"
+
+    cp -r scowl/speller/aspell "$out/lib/aspell"
+    cp scowl/speller/*.{aff,dic} "$out/share/hunspell"
+    ln -s "$out/share/hunspell" "$out/share/myspell/dicts"
+
+    cp scowl/final/* "$out/share/scowl"
+
+    (
+      cd scowl
+      for region in american british british_s british_z canadian australian; do
+        case $region in
+          american)
+            regcode=en-us;
+            ;;
+          british)
+            regcode=en-gb-ise;
+            ;;
+          british_s)
+            regcode=en-gb-ise;
+            ;;
+          british_z)
+            regcode=en-gb-ize;
+            ;;
+          canadian)
+            regcode=en-ca;
+            ;;
+          australian)
+            regcode=en-au;
+            ;;
+        esac
+        regcode_var="$regcode"
+        if test "$region" = british; then
+          regcode_var="en-gb"
+        fi
+
+        echo $region $regcode $regcode_sz
+        for s in 10 20 30 35 40 50 55 60 70 80 90 95; do
+          ./mk-list $regcode $s > "$out/share/dict/w$region.$s"
+          ./mk-list --variants=1 $regcode_var $s > "$out/share/dict/w$region.variants.$s"
+          ./mk-list --variants=2 $regcode_var $s > "$out/share/dict/w$region.acceptable.$s"
+        done
+        ./mk-list $regcode 60 > "$out/share/dict/w$region.txt"
+        ./mk-list --variants=1 $regcode_var 60 > "$out/share/dict/w$region.variants.txt"
+        ./mk-list --variants=2 $regcode_var 80 > "$out/share/dict/w$region.scrabble.txt"
+      done
+      ./mk-list --variants=1 en-gb 60 > "$out/share/dict/words.variants.txt"
+      ./mk-list --variants=1 en-gb 80 > "$out/share/dict/words.scrabble.txt"
+      ./mk-list en-gb-ise 60 > "$out/share/dict/words.txt"
+    )
+
+    eval "$postInstall"
+  '' else ''
+    mkdir -p "$out/share/dict"
+    cd scowl
+    ./mk-list ${singleWordlist} > "$out/share/dict/words.txt"
+  '';
+
+  meta = {
+    description = "Spell checker oriented word lists";
+    license = lib.licenses.mit;
+    maintainers = [lib.maintainers.raskin];
+    platforms = lib.platforms.unix;
+    homepage = "http://wordlist.aspell.net/";
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/shared-desktop-ontologies/default.nix b/nixpkgs/pkgs/data/misc/shared-desktop-ontologies/default.nix
new file mode 100644
index 000000000000..88f9eec8fcad
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/shared-desktop-ontologies/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchurl, cmake }:
+
+stdenv.mkDerivation rec {
+  name = "shared-desktop-ontologies-0.11.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/oscaf/${name}.tar.bz2";
+    sha256 = "1m5vnijg7rnwg41vig2ckg632dlczzdab1gsq51g4x7m9k1fdbw2";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with lib; {
+    homepage = "http://oscaf.sourceforge.net/";
+    description = "Ontologies necessary for the Nepomuk semantic desktop";
+    longDescription = ''
+      The shared-desktop-ontologies package brings the semantic web to the
+      desktop in terms of vocabulary. It contains the well known core
+      ontologies such as RDF and RDFS as well as the Nepomuk ontologies which
+      are used by projects like KDE or Strigi.
+    '';
+    platforms = platforms.all;
+    maintainers = [ maintainers.sander ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/shared-mime-info/default.nix b/nixpkgs/pkgs/data/misc/shared-mime-info/default.nix
new file mode 100644
index 000000000000..2feb5e2f5a47
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/shared-mime-info/default.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, fetchpatch
+, meson
+, ninja
+, pkg-config
+, gettext
+, itstool
+, libxml2
+, glib
+, shared-mime-info
+}:
+
+stdenv.mkDerivation rec {
+  pname = "shared-mime-info-unstable";
+  version = "2021-12-03";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = "xdg";
+    repo = "shared-mime-info";
+    rev = "5a406b06792e26a83c7346b3c2443c0bd8d4cdb2";
+    sha256 = "1v7dx7mr0m4lcff1aasg9gxn280zn0ffn6fjg9xc44pnllg01n6s";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+    libxml2
+  ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) shared-mime-info;
+
+  buildInputs = [
+    libxml2
+    glib
+  ];
+
+  strictDeps = true;
+
+  mesonFlags = [
+    "-Dupdate-mimedb=true"
+  ];
+
+  meta = with lib; {
+    description = "A database of common MIME types";
+    homepage = "http://freedesktop.org/wiki/Software/shared-mime-info";
+    license = licenses.gpl2Plus;
+    platforms = platforms.unix;
+    maintainers = teams.freedesktop.members ++ [ maintainers.mimame ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/sound-theme-freedesktop/default.nix b/nixpkgs/pkgs/data/misc/sound-theme-freedesktop/default.nix
new file mode 100644
index 000000000000..2b750a7e9e10
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/sound-theme-freedesktop/default.nix
@@ -0,0 +1,21 @@
+{ lib, stdenv, fetchurl, intltool }:
+
+stdenv.mkDerivation rec {
+  pname = "sound-theme-freedesktop";
+  version = "0.8";
+
+  src = fetchurl {
+    sha256 = "054abv4gmfk9maw93fis0bf605rc56dah7ys5plc4pphxqh8nlfb";
+    url = "https://people.freedesktop.org/~mccann/dist/${pname}-${version}.tar.bz2";
+  };
+
+  nativeBuildInputs = [ intltool ];
+
+  meta = with lib; {
+    description = "Freedesktop reference sound theme";
+    homepage = "http://freedesktop.org/wiki/Specifications/sound-theme-spec";
+    # See http://cgit.freedesktop.org/sound-theme-freedesktop/tree/CREDITS:
+    license = with licenses; [ cc-by-30 cc-by-sa-25 gpl2 gpl2Plus ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix b/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix
new file mode 100644
index 000000000000..f7f5f64bfd7e
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix
@@ -0,0 +1,29 @@
+{ stdenvNoCC, lib, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "spdx-license-list-data";
+  version = "3.15";
+
+  src = fetchFromGitHub {
+    owner = "spdx";
+    repo = "license-list-data";
+    rev = "v${version}";
+    sha256 = "0r88j00shmhayfq8avswaxsaj1my1vq540rg0srma29862vrjpfk";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -vDt $out/json json/licenses.json
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Various data formats for the SPDX License List";
+    homepage = "https://github.com/spdx/license-list-data";
+    license = licenses.cc0;
+    maintainers = with maintainers; [ oxzi ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/tzdata/default.nix b/nixpkgs/pkgs/data/misc/tzdata/default.nix
new file mode 100644
index 000000000000..52662b190a74
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/tzdata/default.nix
@@ -0,0 +1,78 @@
+{ lib, stdenv, fetchurl, buildPackages }:
+
+stdenv.mkDerivation rec {
+  pname = "tzdata";
+  version = "2021e";
+
+  srcs =
+    [ (fetchurl {
+        url = "https://data.iana.org/time-zones/releases/tzdata${version}.tar.gz";
+        sha256 = "1cdjdcxl0s9xf0dg1z64kh7llm80byxqlzrkkjzcdlyh6yvl5v07";
+      })
+      (fetchurl {
+        url = "https://data.iana.org/time-zones/releases/tzcode${version}.tar.gz";
+        sha256 = "0x8pcfmjvxk29yfh8bklchv2f0vpl4yih0gc4wyx292l78wncijq";
+      })
+    ];
+
+  sourceRoot = ".";
+
+  outputs = [ "out" "bin" "man" "dev" ];
+  propagatedBuildOutputs = [];
+
+  makeFlags = [
+    "TOPDIR=$(out)"
+    "TZDIR=$(out)/share/zoneinfo"
+    "BINDIR=$(bin)/bin"
+    "ZICDIR=$(bin)/bin"
+    "ETCDIR=$(TMPDIR)/etc"
+    "TZDEFAULT=$(TMPDIR)/etc"
+    "LIBDIR=$(dev)/lib"
+    "MANDIR=$(man)/share/man"
+    "AWK=awk"
+    "CFLAGS=-DHAVE_LINK=0"
+    "CFLAGS+=-DZIC_BLOAT_DEFAULT=\\\"fat\\\""
+    "cc=${stdenv.cc.targetPrefix}cc"
+    "AR=${stdenv.cc.targetPrefix}ar"
+  ];
+
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+
+  doCheck = false; # needs more tools
+
+  installFlags = [ "ZIC=./zic-native" ];
+
+  preInstall = ''
+     mv zic.o zic.o.orig
+     mv zic zic.orig
+     make $makeFlags cc=${stdenv.cc.nativePrefix}cc AR=${stdenv.cc.nativePrefix}ar zic
+     mv zic zic-native
+     mv zic.o.orig zic.o
+     mv zic.orig zic
+  '';
+
+  postInstall =
+    ''
+      rm $out/share/zoneinfo-posix
+      mkdir $out/share/zoneinfo/posix
+      ( cd $out/share/zoneinfo/posix; ln -s ../* .; rm posix )
+      mv $out/share/zoneinfo-leaps $out/share/zoneinfo/right
+
+      mkdir -p "$dev/include"
+      cp tzfile.h "$dev/include/tzfile.h"
+    '';
+
+  setupHook = ./tzdata-setup-hook.sh;
+
+  meta = with lib; {
+    homepage = "http://www.iana.org/time-zones";
+    description = "Database of current and historical time zones";
+    changelog = "https://github.com/eggert/tz/blob/${version}/NEWS";
+    license = with licenses; [
+      bsd3 # tzcode
+      publicDomain # tzdata
+    ];
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ajs124 fpletz ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/tzdata/tzdata-setup-hook.sh b/nixpkgs/pkgs/data/misc/tzdata/tzdata-setup-hook.sh
new file mode 100644
index 000000000000..9975d0aec31a
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/tzdata/tzdata-setup-hook.sh
@@ -0,0 +1,5 @@
+tzdataHook() {
+    export TZDIR=@out@/share/zoneinfo
+}
+
+addEnvHooks "$targetOffset" tzdataHook
diff --git a/nixpkgs/pkgs/data/misc/unicode-character-database/default.nix b/nixpkgs/pkgs/data/misc/unicode-character-database/default.nix
new file mode 100644
index 000000000000..26d31a292119
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/unicode-character-database/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv
+, fetchurl
+, unzip
+}:
+
+stdenv.mkDerivation rec {
+  pname = "unicode-character-database";
+  version = "14.0.0";
+
+  src = fetchurl {
+    url = "https://www.unicode.org/Public/zipped/${version}/UCD.zip";
+    sha256 = "sha256-AzpSdrXXr4hEWJ+ONILzl3qDhecdEH03UFVGUXjCNgA=";
+  };
+
+  nativeBuildInputs = [
+    unzip
+  ];
+
+  setSourceRoot = ''
+    sourceRoot=$PWD
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/unicode
+    cp -r * $out/share/unicode
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Unicode Character Database";
+    homepage = "https://www.unicode.org/";
+    license = licenses.unicode-dfs-2016;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/unicode-emoji/default.nix b/nixpkgs/pkgs/data/misc/unicode-emoji/default.nix
new file mode 100644
index 000000000000..b91afb08f60e
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/unicode-emoji/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, fetchurl
+, symlinkJoin
+}:
+
+let
+  version = "12.1";
+
+  fetchData = { file, sha256 }: fetchurl {
+    url = "https://www.unicode.org/Public/emoji/${version}/${file}";
+    inherit sha256;
+    downloadToTemp = true;
+    recursiveHash = true;
+    postFetch = ''
+      installDir="$out/share/unicode/emoji"
+      mkdir -p "$installDir"
+      mv "$downloadedFile" "$installDir/${file}"
+    '';
+  };
+
+  srcs = {
+    emoji-data = fetchData {
+      file = "emoji-data.txt";
+      sha256 = "17gfm5a28lsymx36prbjy2g0b27gf3rcgggy0yxdshbxwf6zpf9k";
+    };
+    emoji-sequences = fetchData {
+      file = "emoji-sequences.txt";
+      sha256 = "1fckw5hfyvz5jfp2jczzx8qcs79vf0zyq0z2942230j99arq70vc";
+    };
+    emoji-test = fetchData {
+      file = "emoji-test.txt";
+      sha256 = "0w29lva7gp9g9lf7bz1i24qdalvf440bcq8npsbwr3cpp7na95kh";
+    };
+    emoji-variation-sequences = fetchData {
+      file = "emoji-variation-sequences.txt";
+      sha256 = "0akpib3cinr8xcs045hda5wnpfj6qfdjlkzmq5vgdc50gyhrd2z3";
+    };
+    emoji-zwj-sequences = fetchData {
+      file = "emoji-zwj-sequences.txt";
+      sha256 = "0s2mvy1nr2v1x0rr1fxlsv8ly1vyf9978rb4hwry5vnr678ls522";
+    };
+  };
+in
+
+symlinkJoin rec {
+  name = "unicode-emoji-${version}";
+
+  paths = lib.attrValues srcs;
+
+  passthru = srcs;
+
+  meta = with lib; {
+    description = "Unicode Emoji Data Files";
+    homepage = "https://home.unicode.org/emoji/";
+    license = licenses.unicode-dfs-2016;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/unihan-database/default.nix b/nixpkgs/pkgs/data/misc/unihan-database/default.nix
new file mode 100644
index 000000000000..02632b926448
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/unihan-database/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv
+, fetchurl
+, unzip
+}:
+
+stdenv.mkDerivation rec {
+  pname = "unihan-database";
+  version = "12.1.0";
+
+  src = fetchurl {
+    url = "https://www.unicode.org/Public/zipped/${version}/Unihan.zip";
+    sha256 = "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf";
+  };
+
+  nativeBuildInputs = [
+    unzip
+  ];
+
+  setSourceRoot = ''
+    sourceRoot=$PWD
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/unicode
+    cp -r * $out/share/unicode
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Unicode Han Database";
+    homepage = "https://www.unicode.org/";
+    license = licenses.unicode-dfs-2016;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix b/nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix
new file mode 100644
index 000000000000..1115edabcec7
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, pkgsBuildBuild, fetchFromGitHub, lib }:
+
+let
+  generator = pkgsBuildBuild.buildGoModule rec {
+    pname = "v2ray-domain-list-community";
+    version = "20220201175515";
+    src = fetchFromGitHub {
+      owner = "v2fly";
+      repo = "domain-list-community";
+      rev = version;
+      sha256 = "sha256-vgw6i8djBQDV+fmkVe5CuKMwES/PXGoVe8cTgB5tflo=";
+    };
+    vendorSha256 = "sha256-QUbnUnxG1tsNbR49HTl55aiLkBM/ae9mCtzWeN4Ju78=";
+    meta = with lib; {
+      description = "community managed domain list";
+      homepage = "https://github.com/v2fly/domain-list-community";
+      license = licenses.mit;
+      maintainers = with maintainers; [ nickcao ];
+    };
+  };
+in
+stdenv.mkDerivation {
+  inherit (generator) pname version src meta;
+  buildPhase = ''
+    runHook preBuild
+    ${generator}/bin/domain-list-community -datapath $src/data --exportlists=category-ads-all,tld-cn,cn,tld-\!cn,geolocation-\!cn,apple,icloud
+    runHook postBuild
+  '';
+  installPhase = ''
+    runHook preInstall
+    install -Dm644 dlc.dat $out/share/v2ray/geosite.dat
+    runHook postInstall
+  '';
+  passthru.generator = generator;
+}
diff --git a/nixpkgs/pkgs/data/misc/v2ray-geoip/default.nix b/nixpkgs/pkgs/data/misc/v2ray-geoip/default.nix
new file mode 100644
index 000000000000..df190fd9ef80
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/v2ray-geoip/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "v2ray-geoip";
+  version = "202202170030";
+
+  src = fetchFromGitHub {
+    owner = "v2fly";
+    repo = "geoip";
+    rev = "ebc49c1ccbe7f267778ab42dbfa01d7ff8a5241c";
+    sha256 = "sha256-CxV7jKNeaSW7lVBKKr7Ih2XAehnFcapkyDogd5V32Zk=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+    install -m 0644 geoip.dat -D $out/share/v2ray/geoip.dat
+    runHook postInstall
+  '';
+
+  passthru.updateScript = ./update.sh;
+
+  meta = with lib; {
+    description = "GeoIP for V2Ray";
+    homepage = "https://github.com/v2fly/geoip";
+    license = licenses.cc-by-sa-40;
+    maintainers = with maintainers; [ nickcao ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/v2ray-geoip/update.sh b/nixpkgs/pkgs/data/misc/v2ray-geoip/update.sh
new file mode 100755
index 000000000000..e39012e30a51
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/v2ray-geoip/update.sh
@@ -0,0 +1,6 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p common-updater-scripts curl jq
+set -euo pipefail
+
+COMMIT=$(curl "https://api.github.com/repos/v2fly/geoip/commits/release?per_page=1")
+update-source-version v2ray-geoip "$(echo $COMMIT | jq -r .commit.message)" --file=pkgs/data/misc/v2ray-geoip/default.nix --rev="$(echo $COMMIT | jq -r .sha)"
diff --git a/nixpkgs/pkgs/data/misc/wireless-regdb/default.nix b/nixpkgs/pkgs/data/misc/wireless-regdb/default.nix
new file mode 100644
index 000000000000..2a729c7aa2fc
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/wireless-regdb/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "wireless-regdb";
+  version = "2021.08.28";
+
+  src = fetchurl {
+    url = "https://www.kernel.org/pub/software/network/${pname}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-z/NwxBDR5tMWrgp/qKxieP3x78pdPWZKynz9Kq+lREY=";
+  };
+
+  dontBuild = true;
+
+  makeFlags = [
+    "DESTDIR=${placeholder "out"}"
+    "PREFIX="
+  ];
+
+  meta = with lib; {
+    description = "Wireless regulatory database for CRDA";
+    homepage = "http://wireless.kernel.org/en/developers/Regulatory/";
+    license = licenses.isc;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fpletz ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/xorg-rgb/default.nix b/nixpkgs/pkgs/data/misc/xorg-rgb/default.nix
new file mode 100644
index 000000000000..205fcabc7131
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/xorg-rgb/default.nix
@@ -0,0 +1,22 @@
+{ lib, stdenv, fetchurl, pkg-config, xorgproto }:
+
+stdenv.mkDerivation rec {
+  pname = "rgb";
+  version = "1.0.6";
+
+  src = fetchurl {
+    url = "https://xorg.freedesktop.org/archive/individual/app/rgb-${version}.tar.bz2";
+    sha256 = "1c76zcjs39ljil6f6jpx1x17c8fnvwazz7zvl3vbjfcrlmm7rjmv";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ xorgproto ];
+
+  meta = with lib; {
+    description = "X11 colorname to RGB mapping database";
+    license = licenses.mit;
+    maintainers = [ maintainers.raskin ];
+    platforms = platforms.linux;
+    homepage = "https://xorg.freedesktop.org/";
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/docbook-5.0/default.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/docbook-5.0/default.nix
new file mode 100644
index 000000000000..68bc6101d03c
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/docbook-5.0/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+  pname = "docbook5";
+  version = "5.0.1";
+
+  src = fetchurl {
+    url = "http://www.docbook.org/xml/${version}/docbook-${version}.zip";
+    sha256 = "1iz3hq1lqgnshvlz4j9gvh4jy1ml74qf90vqf2ikbq0h4i2xzybs";
+  };
+
+  nativeBuildInputs = [ unzip ];
+
+  installPhase =
+    ''
+      dst=$out/share/xml/docbook-5.0
+      mkdir -p $dst
+      cp -prv * $dst/
+
+      substituteInPlace $dst/catalog.xml --replace 'uri="' "uri=\"$dst/"
+
+      rm -rf $dst/docs $dst/ChangeLog
+
+      # Backwards compatibility. Will remove eventually.
+      mkdir -p $out/xml/rng $out/xml/dtd
+      ln -s $dst/rng $out/xml/rng/docbook
+      ln -s $dst/dtd $out/xml/dtd/docbook
+    '';
+
+  meta = {
+    description = "Schemas for DocBook 5.0, a semantic markup language for technical documentation";
+    homepage = "https://docbook.org/xml/5.0/";
+    maintainers = [ lib.maintainers.eelco ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/3.1.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/3.1.nix
new file mode 100644
index 000000000000..b1db3638682b
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/3.1.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchurl, unzip }:
+
+let
+
+  src = fetchurl {
+    url = "http://www.oasis-open.org/docbook/sgml/3.1/docbk31.zip";
+    sha256 = "0f25ch7bywwhdxb1qa0hl28mgq1blqdap3rxzamm585rf4kis9i0";
+  };
+
+  isoents = fetchurl {
+    url = "http://www.oasis-open.org/cover/ISOEnts.zip";
+    sha256 = "1clrkaqnvc1ja4lj8blr0rdlphngkcda3snm7b9jzvcn76d3br6w";
+  };
+
+in
+
+stdenv.mkDerivation {
+  name = "docbook-sgml-3.1";
+
+  dontUnpack = true;
+
+  nativeBuildInputs = [ unzip ];
+
+  installPhase =
+    ''
+      o=$out/sgml/dtd/docbook-3.1
+      mkdir -p $o
+      cd $o
+      unzip ${src}
+      unzip ${isoents}
+      sed -e "s/iso-/ISO/" -e "s/.gml//" -i docbook.cat
+    '';
+
+  meta = {
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/4.1.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/4.1.nix
new file mode 100644
index 000000000000..85d7ab167964
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/4.1.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchurl, unzip }:
+
+let
+
+  src = fetchurl {
+    url = "http://www.oasis-open.org/docbook/sgml/4.1/docbk41.zip";
+    sha256 = "04b3gp4zkh9c5g9kvnywdkdfkcqx3kjc04j4mpkr4xk7lgqgrany";
+  };
+
+  isoents = fetchurl {
+    url = "http://www.oasis-open.org/cover/ISOEnts.zip";
+    sha256 = "1clrkaqnvc1ja4lj8blr0rdlphngkcda3snm7b9jzvcn76d3br6w";
+  };
+
+in
+
+stdenv.mkDerivation {
+  name = "docbook-sgml-4.1";
+
+  dontUnpack = true;
+
+  nativeBuildInputs = [ unzip ];
+
+  installPhase =
+    ''
+      o=$out/sgml/dtd/docbook-4.1
+      mkdir -p $o
+      cd $o
+      unzip ${src}
+      unzip ${isoents}
+      sed -e "s/iso-/ISO/" -e "s/.gml//" -i docbook.cat
+    '';
+
+  meta = {
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/default.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/default.nix
new file mode 100644
index 000000000000..1c6e57b3e7a7
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/default.nix
@@ -0,0 +1,25 @@
+{lib, stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "docbook-xml-ebnf-1.2b1";
+
+  dtd = fetchurl {
+    url = "http://www.docbook.org/xml/ebnf/1.2b1/dbebnf.dtd";
+    sha256 = "0min5dsc53my13b94g2yd65q1nkjcf4x1dak00bsc4ckf86mrx95";
+  };
+  catalog = ./docbook-ebnf.cat;
+
+  unpackPhase = ''
+    mkdir -p $out/xml/dtd/docbook-ebnf
+    cd $out/xml/dtd/docbook-ebnf
+  '';
+
+  installPhase = ''
+    cp -p $dtd dbebnf.dtd
+    cp -p $catalog $(stripHash $catalog)
+  '';
+
+  meta = {
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/docbook-ebnf.cat b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/docbook-ebnf.cat
new file mode 100644
index 000000000000..896a8338f118
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/docbook-ebnf.cat
@@ -0,0 +1,2 @@
+PUBLIC "-//OASIS//DTD DocBook EBNF Module V1.0//EN"
+       "dbebnf.dtd"
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix
new file mode 100644
index 000000000000..8a10defa0fb5
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix
@@ -0,0 +1,27 @@
+{lib, stdenv, fetchurl, unzip, findXMLCatalogs}:
+
+let
+
+  # Urgh, DocBook 4.1.2 doesn't come with an XML catalog.  Use the one
+  # from 4.2.
+  docbook42catalog = fetchurl {
+    url = "http://www.docbook.org/xml/4.2/catalog.xml";
+    sha256 = "18lhp6q2l0753s855r638shkbdwq9blm6akdjsc9nrik24k38j17";
+  };
+
+in
+
+import ./generic.nix {
+  inherit lib stdenv unzip findXMLCatalogs;
+  name = "docbook-xml-4.1.2";
+  src = fetchurl {
+    url = "http://www.docbook.org/xml/4.1.2/docbkx412.zip";
+    sha256 = "0wkp5rvnqj0ghxia0558mnn4c7s3n501j99q2isp3sp0ci069w1h";
+  };
+  postInstall = "
+    sed 's|V4.2|V4.1.2|g' < ${docbook42catalog} > catalog.xml
+  ";
+  meta = {
+    branch = "4.1.2";
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix
new file mode 100644
index 000000000000..9a9abc0588bd
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix
@@ -0,0 +1,13 @@
+{lib, stdenv, fetchurl, unzip, findXMLCatalogs}:
+
+import ./generic.nix {
+  inherit lib stdenv unzip findXMLCatalogs;
+  name = "docbook-xml-4.2";
+  src = fetchurl {
+    url = "http://www.docbook.org/xml/4.2/docbook-xml-4.2.zip";
+    sha256 = "acc4601e4f97a196076b7e64b368d9248b07c7abf26b34a02cca40eeebe60fa2";
+  };
+  meta = {
+    branch = "4.2";
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix
new file mode 100644
index 000000000000..4d821ce2ffb8
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix
@@ -0,0 +1,13 @@
+{lib, stdenv, fetchurl, unzip, findXMLCatalogs}:
+
+import ./generic.nix {
+  inherit lib stdenv unzip findXMLCatalogs;
+  name = "docbook-xml-4.3";
+  src = fetchurl {
+    url = "http://www.docbook.org/xml/4.3/docbook-xml-4.3.zip";
+    sha256 = "0r1l2if1z4wm2v664sqdizm4gak6db1kx9y50jq89m3gxaa8l1i3";
+  };
+  meta = {
+    branch = "4.3";
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.4.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.4.nix
new file mode 100644
index 000000000000..ca847d3e436e
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.4.nix
@@ -0,0 +1,13 @@
+{lib, stdenv, fetchurl, unzip, findXMLCatalogs}:
+
+import ./generic.nix {
+  inherit lib stdenv unzip findXMLCatalogs;
+  name = "docbook-xml-4.4";
+  src = fetchurl {
+    url = "http://www.docbook.org/xml/4.4/docbook-xml-4.4.zip";
+    sha256 = "141h4zsyc71sfi2zzd89v4bb4qqq9ca1ri9ix2als9f4i3mmkw82";
+  };
+  meta = {
+    branch = "4.4";
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix
new file mode 100644
index 000000000000..7be810fe3071
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix
@@ -0,0 +1,13 @@
+{lib, stdenv, fetchurl, unzip, findXMLCatalogs}:
+
+import ./generic.nix {
+  inherit lib stdenv unzip findXMLCatalogs;
+  name = "docbook-xml-4.5";
+  src = fetchurl {
+    url = "http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip";
+    sha256 = "1d671lcjckjri28xfbf6dq7y3xnkppa910w1jin8rjc35dx06kjf";
+  };
+  meta = {
+    branch = "4.5";
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/generic.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/generic.nix
new file mode 100644
index 000000000000..3d6edd300ec3
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/generic.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, unzip, src, name, postInstall ? "true", meta ? {}, findXMLCatalogs }:
+
+stdenv.mkDerivation {
+  inherit src name postInstall;
+
+  nativeBuildInputs = [unzip];
+  propagatedNativeBuildInputs = [ findXMLCatalogs ];
+
+  unpackPhase = ''
+    mkdir -p $out/xml/dtd/docbook
+    cd $out/xml/dtd/docbook
+    unpackFile $src
+  '';
+
+  installPhase = ''
+    find . -type f -exec chmod -x {} \;
+    runHook postInstall
+  '';
+
+  meta = meta // {
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix
new file mode 100644
index 000000000000..c698098e6c12
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchurl, libxml2 }:
+
+stdenv.mkDerivation {
+  name = "xhtml1-20020801";
+
+  src = fetchurl {
+    url = "http://www.w3.org/TR/xhtml1/xhtml1.tgz";
+    sha256 = "0rr0d89i0z75qvjbm8il93bippx09hbmjwy0y2sj44n9np69x3hl";
+  };
+
+  nativeBuildInputs = [ libxml2 ];
+
+  installPhase =
+    ''
+      mkdir -p $out/xml/dtd/xhtml1
+      cp DTD/*.ent DTD/*.dtd $out/xml/dtd/xhtml1
+
+      # Generate an XML catalog.
+      cat=$out/xml/dtd/xhtml1/catalog.xml
+      xmlcatalog --noout --create $cat
+      grep PUBLIC DTD/*.soc | while read x; do
+          eval a=($x)
+          xmlcatalog --noout --add public "''${a[1]}" "''${a[2]}" $cat
+      done
+    ''; # */
+
+  meta = {
+    homepage = "http://www.w3.org/TR/xhtml1/";
+    description = "DTDs for XHTML 1.0, the Extensible HyperText Markup Language";
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/catalog-legacy-uris.patch b/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/catalog-legacy-uris.patch
new file mode 100644
index 000000000000..72922eee96c4
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/catalog-legacy-uris.patch
@@ -0,0 +1,10 @@
+--- a/catalog.xml
++++ b/catalog.xml
+@@ -5,4 +5,7 @@
+   <rewriteSystem systemIdStartString="http://cdn.docbook.org/release/xsl@suffix@/current/" rewritePrefix="./"/>
+   <rewriteURI uriStartString="http://cdn.docbook.org/release/xsl@suffix@/@version@/" rewritePrefix="./"/>
+   <rewriteSystem systemIdStartString="http://cdn.docbook.org/release/xsl@suffix@/@version@/" rewritePrefix="./"/>
++  <!-- legacy URIs -->
++  <rewriteURI uriStartString="http://docbook.sourceforge.net/release/xsl@legacySuffix@/current/" rewritePrefix="./"/>
++  <rewriteSystem systemIdStartString="http://docbook.sourceforge.net/release/xsl@legacySuffix@/current/" rewritePrefix="./"/>
+ </catalog>
diff --git a/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix b/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix
new file mode 100644
index 000000000000..735dfdb4f81b
--- /dev/null
+++ b/nixpkgs/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl/default.nix
@@ -0,0 +1,87 @@
+{ lib, stdenv, substituteAll, fetchurl, fetchpatch, findXMLCatalogs, writeScriptBin, ruby, bash }:
+
+let
+
+  common = { pname, sha256, suffix ? "" }: let
+    legacySuffix = if suffix == "-nons" then "" else "-ns";
+    self = stdenv.mkDerivation rec {
+      inherit pname;
+      version = "1.79.2";
+
+      src = fetchurl {
+        url = "https://github.com/docbook/xslt10-stylesheets/releases/download/release%2F${version}/docbook-xsl${suffix}-${version}.tar.bz2";
+        inherit sha256;
+      };
+
+      patches = [
+        # Prevent a potential stack overflow
+        # https://github.com/docbook/xslt10-stylesheets/pull/37
+        (fetchpatch {
+          url = "https://src.fedoraproject.org/rpms/docbook-style-xsl/raw/e3ae7a97ed1d185594dd35954e1a02196afb205a/f/docbook-style-xsl-non-recursive-string-subst.patch";
+          sha256 = "0lrjjg5kpwwmbhkxzz6i5zmimb6lsvrrdhzc2qgjmb3r6jnsmii3";
+          stripLen = "1";
+        })
+
+        # Fix reproducibility by respecting generate.consistent.ids in indexes
+        # https://github.com/docbook/xslt10-stylesheets/pull/88
+        # https://sourceforge.net/p/docbook/bugs/1385/
+        (fetchpatch {
+          url = "https://github.com/docbook/xslt10-stylesheets/commit/07631601e6602bc49b8eac3aab9d2b35968d3e7a.patch";
+          sha256 = "0igfhcr6hzcydqsnjsd181h5yl3drjnrwdmxcybr236m8255vkq3";
+          stripLen = "1";
+        })
+
+        # Add legacy sourceforge.net URIs to the catalog
+        (substituteAll {
+          src = ./catalog-legacy-uris.patch;
+          inherit legacySuffix suffix version;
+        })
+      ];
+
+      propagatedBuildInputs = [ findXMLCatalogs ];
+
+      dontBuild = true;
+
+      installPhase = ''
+        dst=$out/share/xml/${pname}
+        mkdir -p $dst
+        rm -rf RELEASE* README* INSTALL TODO NEWS* BUGS install.sh tools Makefile tests extensions webhelp
+        mv * $dst/
+
+        # Backwards compatibility. Will remove eventually.
+        mkdir -p $out/xml/xsl
+        ln -s $dst $out/xml/xsl/docbook
+
+        # More backwards compatibility
+        ln -s $dst $out/share/xml/docbook-xsl${legacySuffix}
+      '';
+
+      passthru.dbtoepub = writeScriptBin "dbtoepub"
+        ''
+          #!${bash}/bin/bash
+          exec -a dbtoepub ${ruby}/bin/ruby ${self}/share/xml/${pname}/epub/bin/dbtoepub "$@"
+        '';
+
+      meta = {
+        homepage = "https://github.com/docbook/wiki/wiki/DocBookXslStylesheets";
+        description = "XSL stylesheets for transforming DocBook documents into HTML and various other formats";
+        license = lib.licenses.mit;
+        maintainers = [ lib.maintainers.eelco ];
+        platforms = lib.platforms.all;
+      };
+    };
+  in self;
+
+in {
+
+  docbook-xsl-nons = common {
+    pname = "docbook-xsl-nons";
+    suffix = "-nons";
+    sha256 = "00i1hdyxim8jymv2dz68ix3wbs5w6isxm8ijb03qk3vs1g59x2zf";
+  };
+
+  docbook-xsl-ns = common {
+    pname = "docbook-xsl-ns";
+    sha256 = "0wd33z41kdsybyx3ay21w6bdlmgpd9kyn3mr5y520lsf8km28r9i";
+  };
+}
diff --git a/nixpkgs/pkgs/data/soundfonts/fluid/default.nix b/nixpkgs/pkgs/data/soundfonts/fluid/default.nix
new file mode 100644
index 000000000000..1f84a6fd1eef
--- /dev/null
+++ b/nixpkgs/pkgs/data/soundfonts/fluid/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "Fluid-3";
+
+  src = fetchurl {
+    url = "https://ftp.osuosl.org/pub/musescore/soundfont/fluid-soundfont.tar.gz";
+    sha256 = "1f96bi0y6rms255yr8dfk436azvwk66c99j6p43iavyq8jg7c5f8";
+  };
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    install -Dm644 "FluidR3 GM2-2.SF2" $out/share/soundfonts/FluidR3_GM2-2.sf2
+  '';
+
+  meta = with lib; {
+    description = "Frank Wen's pro-quality GM/GS soundfont";
+    homepage = "http://www.hammersound.net/";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/adapta-kde/default.nix b/nixpkgs/pkgs/data/themes/adapta-kde/default.nix
new file mode 100644
index 000000000000..4feeeaa6c002
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/adapta-kde/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "adapta-kde-theme";
+  version = "20180828";
+
+  src = fetchFromGitHub {
+    owner = "PapirusDevelopmentTeam";
+    repo = "adapta-kde";
+    rev = version;
+    sha256 = "1q85678sff8is2kwvgd703ckcns42gdga2c1rqlp61gb6bqf09j8";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  # Make this a fixed-output derivation
+  outputHashMode = "recursive";
+  outputHashAlgo = "sha256";
+  ouputHash = "0rxhk8sp81vb2mngqr7kn9vlqyliq9aqj2d25igcr01v5axbxbzb";
+
+  meta = {
+    description = "A port of the Adapta theme for Plasma";
+    homepage = "https://git.io/adapta-kde";
+    license = lib.licenses.gpl3;
+    maintainers = [ lib.maintainers.tadfisher ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/adapta/default.nix b/nixpkgs/pkgs/data/themes/adapta/default.nix
new file mode 100644
index 000000000000..fc6e5b8c3553
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/adapta/default.nix
@@ -0,0 +1,49 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, parallel, sassc, inkscape, libxml2, glib, gdk-pixbuf, librsvg, gtk-engine-murrine, gnome }:
+
+stdenv.mkDerivation rec {
+  pname = "adapta-gtk-theme";
+  version = "3.95.0.11";
+
+  src = fetchFromGitHub {
+    owner = "adapta-project";
+    repo = "adapta-gtk-theme";
+    rev = version;
+    sha256 = "19skrhp10xx07hbd0lr3d619vj2im35d8p9rmb4v4zacci804q04";
+  };
+
+  preferLocalBuild = true;
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+    parallel
+    sassc
+    inkscape
+    libxml2
+    glib.dev
+    gnome.gnome-shell
+  ];
+
+  buildInputs = [
+    gdk-pixbuf
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  postPatch = "patchShebangs .";
+
+  configureFlags = [
+    "--disable-gtk_legacy"
+    "--disable-gtk_next"
+    "--disable-unity"
+  ];
+
+  meta = with lib; {
+    description = "An adaptive GTK theme based on Material Design Guidelines";
+    homepage = "https://github.com/adapta-project/adapta-gtk-theme";
+    license = with licenses; [ gpl2 cc-by-sa-30 ];
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/adementary/default.nix b/nixpkgs/pkgs/data/themes/adementary/default.nix
new file mode 100644
index 000000000000..8b03132bfcb7
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/adementary/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchFromGitHub, gtk3, sassc }:
+
+stdenv.mkDerivation rec {
+  pname = "adementary-theme";
+  version = "201905r1";
+
+  src = fetchFromGitHub {
+    owner  = "hrdwrrsk";
+    repo   = pname;
+    rev    = version;
+    sha256 = "14y5s18g9r2c1ciw1skfksn09gvqgy8vjvwbr0z8gacf0jc2apqk";
+  };
+
+  preBuild = ''
+    # Shut up inkscape's warnings
+    export HOME="$NIX_BUILD_ROOT"
+  '';
+
+  nativeBuildInputs = [ sassc ];
+  buildInputs = [ gtk3 ];
+
+  postPatch = "patchShebangs .";
+
+  installPhase = ''
+    mkdir -p $out/share/themes
+    ./install.sh -d $out/share/themes
+  '';
+
+  meta = with lib; {
+    description = "Adwaita-based GTK theme with design influence from elementary OS and Vertex GTK theme";
+    homepage    = "https://github.com/hrdwrrsk/adementary-theme";
+    license     = licenses.gpl3;
+    maintainers = with maintainers; [ dtzWill ];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/adwaita-qt/default.nix b/nixpkgs/pkgs/data/themes/adwaita-qt/default.nix
new file mode 100644
index 000000000000..37cca06a69c3
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/adwaita-qt/default.nix
@@ -0,0 +1,57 @@
+{ mkDerivation
+, stdenv
+, lib
+, fetchFromGitHub
+, nix-update-script
+, cmake
+, ninja
+, qtbase
+, qt5
+, xorg
+}:
+
+mkDerivation rec {
+  pname = "adwaita-qt";
+  version = "1.4.1";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchFromGitHub {
+    owner = "FedoraQt";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-t9vv1KcMUg8Qe7lhVMN4GO+VPoT7QzeoQ6hV4fesA8U=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    ninja
+  ];
+
+  buildInputs = [
+    qtbase
+    qt5.qtx11extras
+  ] ++ lib.optionals stdenv.isLinux [
+    xorg.libxcb
+  ];
+
+  postPatch = ''
+    # Fix plugin dir
+    substituteInPlace src/style/CMakeLists.txt \
+       --replace "DESTINATION \"\''${QT_PLUGINS_DIR}/styles" "DESTINATION \"$qtPluginPrefix/styles"
+  '';
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+  meta = with lib; {
+    description = "A style to bend Qt applications to look like they belong into GNOME Shell";
+    homepage = "https://github.com/FedoraQt/adwaita-qt";
+    license = licenses.gpl2Plus;
+    maintainers = teams.gnome.members ++ (with maintainers; [ ]);
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/albatross/default.nix b/nixpkgs/pkgs/data/themes/albatross/default.nix
new file mode 100644
index 000000000000..b53dd553ca2d
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/albatross/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "Albatross";
+  version = "1.7.4";
+
+  src = fetchFromGitHub {
+    repo = "Albatross";
+    owner = "shimmerproject";
+    rev = "v${version}";
+    sha256 = "0mq87n2hxy44nzr567av24n5nqjaljhi1afxrn3mpjqdbkq7lx88";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    install -dm 755 $out/share/themes/Albatross
+    cp -dr --no-preserve='ownership' {LICENSE.GPL,README,index.theme,gtk-2.0,gtk-3.0,metacity-1,xfwm4} $out/share/themes/Albatross/
+  '';
+
+  meta = {
+    description = "A desktop Suite for Xfce";
+    homepage = "https://github.com/shimmerproject/Albatross";
+    license = lib.licenses.gpl2;
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/amber/default.nix b/nixpkgs/pkgs/data/themes/amber/default.nix
new file mode 100644
index 000000000000..e39f0e3f6454
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/amber/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, meson, ninja, sassc, gdk-pixbuf, librsvg, gtk_engines, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "amber-theme";
+  version = "3.38-1";
+
+  src = fetchFromGitHub {
+    owner = "lassekongo83";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-OrdBeAD+gdIu6u8ESE9PtqYadSuJ8nx1Z8fB4D9y4W4=";
+  };
+
+  nativeBuildInputs = [ meson ninja sassc ];
+
+  buildInputs = [ gdk-pixbuf librsvg gtk_engines ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  meta = with lib; {
+    description = "GTK, gnome-shell and Xfce theme based on Ubuntu Ambiance";
+    homepage = "https://github.com/lassekongo83/amber-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/ant-theme/ant-bloody.nix b/nixpkgs/pkgs/data/themes/ant-theme/ant-bloody.nix
new file mode 100644
index 000000000000..66cd3e247a72
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/ant-theme/ant-bloody.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
+
+let
+  themeName = "Ant-Bloody";
+in
+stdenv.mkDerivation rec {
+  pname = "ant-bloody-theme";
+  version = "1.3.0";
+
+  src = fetchurl {
+    url = "https://github.com/EliverLara/${themeName}/releases/download/v${version}/${themeName}.tar";
+    sha256 = "0rrz50kmzjmqj17hvrw67pbaclwxv85i5m08s7842iky6dnn5z8s";
+  };
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes/${themeName}
+    cp -a * $out/share/themes/${themeName}
+    rm -r $out/share/themes/${themeName}/{Art,LICENSE,README.md,gtk-2.0/render-assets.sh}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Bloody variant of the Ant theme";
+    homepage = "https://github.com/EliverLara/${themeName}";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ alexarice ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/ant-theme/ant-nebula.nix b/nixpkgs/pkgs/data/themes/ant-theme/ant-nebula.nix
new file mode 100644
index 000000000000..a62791572352
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/ant-theme/ant-nebula.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
+
+let
+  themeName = "Ant-Nebula";
+in
+stdenv.mkDerivation rec {
+  pname = "ant-nebula-theme";
+  version = "1.3.0";
+
+  src = fetchurl {
+    url = "https://github.com/EliverLara/${themeName}/releases/download/v${version}/${themeName}.tar";
+    sha256 = "1xpgw577nmgjk547mg2vvv0gdai60srgncykm5pb1w8dnlk69jbz";
+  };
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes/${themeName}
+    cp -a * $out/share/themes/${themeName}
+    rm -r $out/share/themes/${themeName}/{Art,LICENSE,README.md,gtk-2.0/render-assets.sh}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Nebula variant of the Ant theme";
+    homepage = "https://github.com/EliverLara/${themeName}";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ alexarice ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/ant-theme/ant.nix b/nixpkgs/pkgs/data/themes/ant-theme/ant.nix
new file mode 100644
index 000000000000..250b77a66e8f
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/ant-theme/ant.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
+
+let
+  themeName = "Ant";
+in
+stdenv.mkDerivation rec {
+  pname = "ant-theme";
+  version = "1.3.0";
+
+  src = fetchurl {
+    url = "https://github.com/EliverLara/${themeName}/releases/download/v${version}/${themeName}.tar";
+    sha256 = "1r795v96ywzcb4dq08q2fdbmfia32g36cc512mhy41s8fb1a47dz";
+  };
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes/${themeName}
+    cp -a * $out/share/themes/${themeName}
+    rm -r $out/share/themes/${themeName}/{Art,LICENSE,README.md,gtk-2.0/render-assets.sh}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A flat and light theme with a modern look";
+    homepage = "https://github.com/EliverLara/${themeName}";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ alexarice ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/arc-kde/default.nix b/nixpkgs/pkgs/data/themes/arc-kde/default.nix
new file mode 100644
index 000000000000..ecf798364ff3
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/arc-kde/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "arc-kde-theme";
+  version = "20180614";
+
+  src = fetchFromGitHub {
+    owner = "PapirusDevelopmentTeam";
+    repo = "arc-kde";
+    rev = version;
+    sha256 = "0wli16k9my7m8a9561545vjwfifmxm4w606z1h0j08msvlky40xw";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  # Make this a fixed-output derivation
+  outputHashMode = "recursive";
+  outputHashAlgo = "sha256";
+  ouputHash = "2c2def57092a399aa1c450699cbb8639f47d751157b18db17";
+
+  meta = {
+    description = "A port of the arc theme for Plasma";
+    homepage = "https://git.io/arc-kde";
+    license = lib.licenses.gpl3;
+    maintainers = [ lib.maintainers.nixy ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/arc/default.nix b/nixpkgs/pkgs/data/themes/arc/default.nix
new file mode 100644
index 000000000000..ea18da119c7e
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/arc/default.nix
@@ -0,0 +1,65 @@
+{ lib, stdenv
+, fetchFromGitHub
+, sassc
+, meson
+, ninja
+, pkg-config
+, gtk3
+, glib
+, gnome
+, gtk-engine-murrine
+, optipng
+, inkscape
+, cinnamon
+}:
+
+stdenv.mkDerivation rec {
+  pname = "arc-theme";
+  version = "20211018";
+
+  src = fetchFromGitHub {
+    owner = "jnsh";
+    repo = pname;
+    rev = version;
+    sha256 = "1rrxm5b7l8kq1h0lm08ck54xljzm8w573mxx904n3rhdg3ri9d63";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    sassc
+    optipng
+    inkscape
+    gtk3
+    glib # for glib-compile-resources
+  ];
+
+  propagatedUserEnvPkgs = [
+    gnome.gnome-themes-extra
+    gtk-engine-murrine
+  ];
+
+  preBuild = ''
+    # Shut up inkscape's warnings about creating profile directory
+    export HOME="$NIX_BUILD_ROOT"
+  '';
+
+  mesonFlags = [
+    "-Dthemes=cinnamon,gnome-shell,gtk2,gtk3,plank,xfwm,metacity"
+    "-Dvariants=light,darker,dark,lighter"
+    "-Dcinnamon_version=${cinnamon.cinnamon-common.version}"
+    "-Dgnome_shell_version=${gnome.gnome-shell.version}"
+    "-Dgtk3_version=${gtk3.version}"
+    # You will need to patch gdm to make use of this.
+    "-Dgnome_shell_gresource=true"
+  ];
+
+  meta = with lib; {
+    description = "Flat theme with transparent elements for GTK 3, GTK 2 and Gnome Shell";
+    homepage = "https://github.com/jnsh/arc-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ simonvandel romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/artim-dark/default.nix b/nixpkgs/pkgs/data/themes/artim-dark/default.nix
new file mode 100644
index 000000000000..9485f46b19a9
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/artim-dark/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec{
+  pname = "artim-dark";
+  version = "unstable-2021-12-29";
+
+  src = fetchFromGitHub {
+    owner="Mrcuve0";
+    repo="Aritim-Dark";
+    rev = "99cd330a1ab4814260e28f15431e3338a1103668";
+    hash = "sha256-xGnw5KpXbVyDdTuAkav1Hec6bitpZdPzZk0xv7WHTdY=";
+  };
+
+  dontBuild = true;
+  installPhase = ''
+    mkdir -p $out/share/plasma/desktoptheme
+    cp -R KDE/plasmaTheme/Aritim-Dark* $out/share/plasma/desktoptheme
+    mkdir -p $out/share/aurorae/themes
+    cp -R KDE/auroraeTheme $out/share/aurorae/themes/Aritim-Dark
+    mkdir -p $out/share/color-schemes
+    cp -R KDE/colorScheme/*.colors $out/share/color-schemes
+    mkdir -p $out/share/plasma/look-and-feel
+    cp -R KDE/globalTheme $out/share/plasma/look-and-feel/Aritim-Dark
+    mkdir -p $out/share/themes
+    cp -R GTK $out/share/themes/Aritim-Dark
+  '';
+
+  meta = {
+    description = "Dark theme deeply inspired by the Ayu Dark color palette";
+    homepage = "https://github.com/Mrcuve0/Aritim-Dark";
+    license = with lib.licenses; [ gpl3Only ];
+    platforms = lib.platforms.unix;
+    maintainers = [ lib.maintainers.pasqui23 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/ayu-theme-gtk/default.nix b/nixpkgs/pkgs/data/themes/ayu-theme-gtk/default.nix
new file mode 100644
index 000000000000..2e8453b097dd
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/ayu-theme-gtk/default.nix
@@ -0,0 +1,68 @@
+{ stdenv
+, autoreconfHook
+, fetchFromGitHub
+, gnome
+, gtk-engine-murrine
+, gtk3
+, inkscape
+, lib
+, optipng
+, pkg-config
+, sassc
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ayu-theme-gtk";
+  version = "unstable-2017-05-12";
+
+  src = fetchFromGitHub {
+    owner = "dnordstrom";
+    repo = "ayu-theme";
+    rev = "cc6f3d3b72897c304e2f00afcaf51df863155e35";
+    sha256 = "sha256-1EhTfPhYl+4IootTCCE04y6V7nW1/eWdHarfF7/j1U0=";
+  };
+
+  postPatch = ''
+    ln -sn 3.20 common/gtk-3.0/3.24
+    ln -sn 3.18 common/gnome-shell/3.24
+  '';
+
+  nativeBuildInputs = [
+    autoreconfHook
+    gtk3
+    inkscape
+    optipng
+    pkg-config
+    sassc
+  ];
+
+  propagatedUserEnvPkgs = [
+    gnome.gnome-themes-extra
+    gtk-engine-murrine
+  ];
+
+  enableParallelBuilding = true;
+
+  preBuild = ''
+    # Shut up inkscape's warnings about creating profile directory
+    export HOME="$NIX_BUILD_ROOT"
+  '';
+
+  configureFlags = [
+    "--with-gnome-shell=${gnome.gnome-shell.version}"
+    "--disable-unity"
+  ];
+
+  postInstall = ''
+    install -Dm644 -t $out/share/doc/${pname} AUTHORS *.md
+  '';
+
+  meta = with lib; {
+    description = "Ayu colored GTK and Kvantum themes based on Arc";
+    homepage = "https://github.com/dnordstrom/ayu-theme/";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ lovesegfault ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/data/themes/blackbird/default.nix b/nixpkgs/pkgs/data/themes/blackbird/default.nix
new file mode 100644
index 000000000000..a3f481b6d4ee
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/blackbird/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "Blackbird";
+  version = "2017-12-13";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "shimmerproject";
+    rev = "a1c5674c0ec38b4cc8ba41d2c0e6187987ae7eb4";
+    sha256 = "0xskcw36ci2ykra5gir5pkrawh2qkcv18p4fp2kxivssbd20d4jw";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  meta = {
+    description = "Dark Desktop Suite for Gtk, Xfce and Metacity";
+    homepage = "https://github.com/shimmerproject/Blackbird";
+    license = with lib.licenses; [ gpl2Plus cc-by-nc-sa-30 ];
+    platforms = lib.platforms.linux;
+    maintainers = [ lib.maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/canta/default.nix b/nixpkgs/pkgs/data/themes/canta/default.nix
new file mode 100644
index 000000000000..5666eded73f0
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/canta/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, librsvg
+, gtk-engine-murrine
+, gtk3
+, gnome
+, gnome-icon-theme
+, numix-icon-theme-circle
+, hicolor-icon-theme
+}:
+
+stdenv.mkDerivation rec {
+  pname = "canta-theme";
+  version = "2021-09-08";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "05h42nrggb6znzjcbh4lqqfcm41h4r85n3vwimp3l4lq5p90igr2";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+  ];
+
+  buildInputs = [
+    gdk-pixbuf
+    librsvg
+  ];
+
+  propagatedBuildInputs = [
+    gnome.adwaita-icon-theme
+    gnome-icon-theme
+    numix-icon-theme-circle
+    hicolor-icon-theme
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    patchShebangs .
+    mkdir -p $out/share/themes
+    name= ./install.sh --dest $out/share/themes
+    rm $out/share/themes/*/{AUTHORS,COPYING}
+    install -D -t $out/share/backgrounds wallpaper/canta-wallpaper.svg
+    mkdir -p $out/share/icons
+    cp -a icons/Canta $out/share/icons
+    gtk-update-icon-cache $out/share/icons/Canta
+  '';
+
+  meta = with lib; {
+    description = "Flat Design theme for GTK based desktop environments";
+    homepage = "https://github.com/vinceliuice/Canta-theme";
+    license = licenses.gpl2Only;
+    platforms = platforms.linux; # numix-icon-theme-circle unavailable in darwin
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/clearlooks-phenix/default.nix b/nixpkgs/pkgs/data/themes/clearlooks-phenix/default.nix
new file mode 100644
index 000000000000..0157914d8fcc
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/clearlooks-phenix/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+  version = "7.0.1";
+  pname = "clearlooks-phenix";
+
+  src = fetchzip {
+    url = "https://github.com/jpfleury/clearlooks-phenix/archive/${version}.tar.gz";
+    sha256 = "1b6y4l3rf3c5r4v72fyj3ppvnvw13kvr2a1dyl63ni1jxnlk50kd";
+  };
+
+  dontBuild = true;
+  installPhase = ''
+    mkdir -p $out/share/themes/Clearlooks-Phenix
+    cp -r . $out/share/themes/Clearlooks-Phenix/
+  '';
+
+  preferLocalBuild = true;
+
+  meta = with lib; {
+    description = "GTK3 port of the Clearlooks theme";
+    longDescription = ''
+      The Clearlooks-Phénix project aims at creating a GTK3 port of Clearlooks,
+      the default theme for Gnome 2. Style is also included for GTK2, Unity and
+      for Metacity, Openbox and Xfwm4 window managers.
+    '';
+    homepage = "https://github.com/jpfleury/clearlooks-phenix";
+    downloadPage = "https://github.com/jpfleury/clearlooks-phenix/releases";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.prikhi ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/dracula-theme/default.nix b/nixpkgs/pkgs/data/themes/dracula-theme/default.nix
new file mode 100644
index 000000000000..cb6fc84723f2
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/dracula-theme/default.nix
@@ -0,0 +1,48 @@
+{ lib, stdenv, fetchFromGitHub, gtk-engine-murrine }:
+
+let
+  themeName = "Dracula";
+  version = "3.0";
+in
+stdenv.mkDerivation {
+  pname = "dracula-theme";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "dracula";
+    repo = "gtk";
+    rev = "v${version}";
+    sha256 = "sha256-7DUT/DfvCSo9GiJzqhqvegNCARB0eGtPQ6oUQG/Uja0=";
+  };
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes/${themeName}
+    cp -a {assets,cinnamon,gnome-shell,gtk-2.0,gtk-3.0,gtk-3.20,index.theme,metacity-1,unity,xfwm4} $out/share/themes/${themeName}
+
+    cp -a kde/{color-schemes,plasma} $out/share/
+    cp -a kde/kvantum $out/share/Kvantum
+    mkdir -p $out/share/aurorae/themes
+    cp -a kde/aurorae/* $out/share/aurorae/themes/
+    mkdir -p $out/share/sddm/themes
+    cp -a kde/sddm/* $out/share/sddm/themes/
+
+    mkdir -p $out/share/icons/Dracula-cursors
+    mv kde/cursors/Dracula-cursors/index.theme $out/share/icons/Dracula-cursors/cursor.theme
+    mv kde/cursors/Dracula-cursors/cursors $out/share/icons/Dracula-cursors/cursors
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Dracula variant of the Ant theme";
+    homepage = "https://github.com/dracula/gtk";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ alexarice ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/e17gtk/default.nix b/nixpkgs/pkgs/data/themes/e17gtk/default.nix
new file mode 100644
index 000000000000..b6cc44aa0d54
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/e17gtk/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "e17gtk";
+  version = "3.22.2";
+
+  src = fetchFromGitHub {
+    owner = "tsujan";
+    repo = "E17gtk";
+    rev = "V${version}";
+    sha256 = "1qwj1hmdlk8sdqhkrh60p2xg4av1rl0lmipdg5j0i40318pmiml1";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/{doc,themes}/E17gtk
+    cp -va index.theme gtk-2.0 gtk-3.0 metacity-1 $out/share/themes/E17gtk/
+    cp -va README.md WORKAROUNDS screenshot.jpg $out/share/doc/E17gtk/
+  '';
+
+  meta = {
+    description = "An Enlightenment-like GTK theme with sharp corners";
+    homepage = "https://github.com/tsujan/E17gtk";
+    license = lib.licenses.gpl3;
+    platforms = lib.platforms.unix;
+    maintainers = [ lib.maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/equilux-theme/default.nix b/nixpkgs/pkgs/data/themes/equilux-theme/default.nix
new file mode 100644
index 000000000000..067c2b88a099
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/equilux-theme/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, fetchFromGitHub, gnome, glib, libxml2, gtk-engine-murrine, gdk-pixbuf, librsvg, bc }:
+
+stdenv.mkDerivation rec {
+  pname = "equilux-theme";
+  version = "20181029";
+
+  src = fetchFromGitHub {
+    owner = "ddnexus";
+    repo = "equilux-theme";
+    rev = "equilux-v${version}";
+    sha256 = "0lv2yyxhnmnkwxp576wnb01id4fp734b5z5n0l67sg5z7vc2h8fc";
+  };
+
+  nativeBuildInputs = [ glib libxml2 bc ];
+
+  buildInputs = [ gnome.gnome-themes-extra gdk-pixbuf librsvg ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    patchShebangs install.sh
+    sed -i install.sh \
+      -e "s|if .*which gnome-shell.*;|if true;|" \
+      -e "s|CURRENT_GS_VERSION=.*$|CURRENT_GS_VERSION=${lib.versions.majorMinor gnome.gnome-shell.version}|"
+    mkdir -p $out/share/themes
+    ./install.sh --dest $out/share/themes
+    rm $out/share/themes/*/COPYING
+  '';
+
+  meta = with lib; {
+    inherit (src.meta) homepage;
+    description = "A Material Design theme for GNOME/GTK based desktop environments";
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = [ maintainers.fpletz ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/flat-remix-gnome/default.nix b/nixpkgs/pkgs/data/themes/flat-remix-gnome/default.nix
new file mode 100644
index 000000000000..c5647094d8ff
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/flat-remix-gnome/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, fetchFromGitHub
+, glib
+, lib
+, writeScriptBin
+}:
+let
+  # make install will use dconf to find desktop background file uri.
+  # consider adding an args to allow specify pictures manually.
+  # https://github.com/daniruiz/flat-remix-gnome/blob/20211223/Makefile#L38
+  fake-dconf = writeScriptBin "dconf" "echo -n";
+in
+stdenv.mkDerivation rec {
+  pname = "flat-remix-gnome";
+  version = "20211223";
+
+  src = fetchFromGitHub {
+    owner = "daniruiz";
+    repo = pname;
+    rev = version;
+    hash = "sha256-hAehJNDr8r0Jhhz0h7ygXI08ouNiWDT16SPm49i90lM=";
+  };
+
+  nativeBuildInputs = [ glib fake-dconf ];
+  makeFlags = [ "PREFIX=$(out)" ];
+  preInstall = ''
+    # make install will back up this file, it will fail if the file doesn't exist.
+    # https://github.com/daniruiz/flat-remix-gnome/blob/20211223/Makefile#L56
+    mkdir -p $out/share/gnome-shell/
+    touch $out/share/gnome-shell/gnome-shell-theme.gresource
+  '';
+
+  postInstall = ''
+    rm $out/share/gnome-shell/gnome-shell-theme.gresource.old
+  '';
+
+  meta = with lib; {
+    description = "GNOME Shell theme inspired by material design.";
+    homepage = "https://drasite.com/flat-remix-gnome";
+    license = licenses.cc-by-sa-40;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.vanilla ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/flat-remix-gtk/default.nix b/nixpkgs/pkgs/data/themes/flat-remix-gtk/default.nix
new file mode 100644
index 000000000000..59b2714285ed
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/flat-remix-gtk/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, gtk-engine-murrine
+}:
+
+stdenv.mkDerivation rec {
+  pname = "flat-remix-gtk";
+  version = "20220215";
+
+  src = fetchFromGitHub {
+    owner = "daniruiz";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-J9PAHQ/MbdDuX16ioQQnzZpIZs/NJVkJjLL4nfaeNkU=";
+  };
+
+  dontBuild = true;
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  meta = with lib; {
+    description = "GTK application theme inspired by material design";
+    homepage = "https://drasite.com/flat-remix-gtk";
+    license = licenses.gpl3Only;
+    platforms = platforms.all;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/gnome-breeze/default.nix b/nixpkgs/pkgs/data/themes/gnome-breeze/default.nix
new file mode 100644
index 000000000000..09f9ecd197a8
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/gnome-breeze/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchgit }:
+
+stdenv.mkDerivation {
+  name = "gnome-breeze-20160526";
+  src = fetchgit {
+    url = "https://github.com/dirruk1/gnome-breeze";
+    sha256 = "0hkk0gqlnrs1m4rb5r84f5y96qfamrbiwm09z89yc32124x1a1lm";
+    rev = "49a5cd67a270e13a4c04a4b904f126ef728e9221";
+  };
+  installPhase = ''
+    mkdir -p $out/share/themes
+    cp -r Breeze* $out/share/themes
+  '';
+
+  preferLocalBuild = true;
+
+  meta = {
+    description = "A GTK theme built to match KDE's breeze theme";
+    homepage = "https://github.com/dirruk1/gnome-breeze";
+    license = lib.licenses.lgpl2;
+    maintainers = with lib.maintainers; [ bennofs ];
+    platforms = lib.platforms.all;
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/graphite-gtk-theme/default.nix b/nixpkgs/pkgs/data/themes/graphite-gtk-theme/default.nix
new file mode 100644
index 000000000000..0c9bae8ac31e
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/graphite-gtk-theme/default.nix
@@ -0,0 +1,95 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gnome-themes-extra
+, gtk-engine-murrine
+, jdupes
+, sassc
+, themeVariants ? [] # default: blue
+, colorVariants ? [] # default: all
+, sizeVariants ? [] # default: standard
+, tweaks ? []
+, wallpapers ? false
+, withGrub ? false
+, grubScreens ? [] # default: 1080p
+}:
+
+let
+  pname = "graphite-gtk-theme";
+
+in
+lib.checkListOfEnum "${pname}: theme variants" [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "blue" "all" ] themeVariants
+lib.checkListOfEnum "${pname}: color variants" [ "standard" "light" "dark" ] colorVariants
+lib.checkListOfEnum "${pname}: size variants" [ "standard" "compact" ] sizeVariants
+lib.checkListOfEnum "${pname}: tweaks" [ "nord" "black" "midblack" "rimless" "normal" ] tweaks
+lib.checkListOfEnum "${pname}: grub screens" [ "1080p" "2k" "4k" ] grubScreens
+
+stdenvNoCC.mkDerivation {
+  inherit pname;
+  version = "unstable-2022-02-04";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = "7ab6a1b7eda81e914405a9931408b1d5c73e6891";
+    sha256 = "09xixd6cz2iyyyg6vskyk0wj2mahfsg21dlfcvi862h8w01hg9lr";
+  };
+
+  nativeBuildInputs = [
+    jdupes
+    sassc
+  ];
+
+  buildInputs = [
+    gnome-themes-extra
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    patchShebangs install.sh
+
+    name= ./install.sh \
+      ${lib.optionalString (themeVariants != []) "--theme " + builtins.toString themeVariants} \
+      ${lib.optionalString (colorVariants != []) "--color " + builtins.toString colorVariants} \
+      ${lib.optionalString (sizeVariants != []) "--size " + builtins.toString sizeVariants} \
+      ${lib.optionalString (tweaks != []) "--tweaks " + builtins.toString tweaks} \
+      --dest $out/share/themes
+
+    ${lib.optionalString wallpapers ''
+      mkdir -p $out/share/backgrounds
+      cp -a wallpaper/Graphite-normal/*.png $out/share/backgrounds/
+      ${lib.optionalString (builtins.elem "nord" tweaks) ''
+        cp -a wallpaper/Graphite-nord/*.png $out/share/backgrounds/
+      ''}
+    ''}
+
+    ${lib.optionalString withGrub ''
+      (
+      cd other/grub2
+
+      patchShebangs install.sh
+
+      ./install.sh --justcopy --dest $out/share/grub/themes \
+        ${lib.optionalString (builtins.elem "nord" tweaks) "--theme nord"} \
+        ${lib.optionalString (grubScreens != []) "--screen " + builtins.toString grubScreens}
+      )
+    ''}
+
+    jdupes -L -r $out/share
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Flat Gtk+ theme based on Elegant Design";
+    homepage = "https://github.com/vinceliuice/Graphite-gtk-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/graphite-kde-theme/default.nix b/nixpkgs/pkgs/data/themes/graphite-kde-theme/default.nix
new file mode 100644
index 000000000000..dd3a215a0385
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/graphite-kde-theme/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "graphite-kde-theme";
+  version = "2022-02-08";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "0pnn5s1vfdgkpsy5sc838731ly1imi8pbyd4asibw4zi238l0nvf";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    patchShebangs install.sh
+
+    substituteInPlace install.sh \
+      --replace '$HOME/.local' $out \
+      --replace '$HOME/.config' $out/share
+
+    name= ./install.sh --dest $out/share/themes
+
+    mkdir -p $out/share/sddm/themes
+    cp -a sddm/Graphite $out/share/sddm/themes/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A flat Design theme for KDE Plasma desktop";
+    homepage = "https://github.com/vinceliuice/Graphite-kde-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.all;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/greybird/default.nix b/nixpkgs/pkgs/data/themes/greybird/default.nix
new file mode 100644
index 000000000000..06496ea9be14
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/greybird/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, sassc, gdk-pixbuf, librsvg, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "greybird";
+  version = "3.22.15";
+
+  src = fetchFromGitHub {
+    owner = "shimmerproject";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1fk66fxy2lif9ngazlgkpsziw216i4b1ld2zm97cadf7n97376g9";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    sassc
+  ];
+
+  buildInputs = [
+    gdk-pixbuf
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  meta = with lib; {
+    description = "Grey and blue theme from the Shimmer Project for GTK-based environments";
+    homepage = "https://github.com/shimmerproject/Greybird";
+    license = [ licenses.gpl2Plus ]; # or alternatively: cc-by-nc-sa-30 or later
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/gruvbox-dark-gtk/default.nix b/nixpkgs/pkgs/data/themes/gruvbox-dark-gtk/default.nix
new file mode 100644
index 000000000000..28b55074afbb
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/gruvbox-dark-gtk/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "gruvbox-dark-gtk";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "jmattheis";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-C681o89MTGNp1l3DLQsRpH9HQdmdCXZzk0F0rNhcyL4=";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/themes/gruvbox-dark
+    rm -rf README.md LICENSE .github
+    cp -r * $out/share/themes/gruvbox-dark
+  '';
+
+  meta = with lib; {
+    description = "Gruvbox theme for GTK based desktop environments";
+    homepage = "https://github.com/jmattheis/gruvbox-dark-gtk";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.nomisiv ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/gtk-theme-framework/default.nix b/nixpkgs/pkgs/data/themes/gtk-theme-framework/default.nix
new file mode 100644
index 000000000000..99b9edfc3aca
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/gtk-theme-framework/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, theme, lib }:
+
+stdenv.mkDerivation rec {
+  pname = "gtk-theme-framework";
+  version = "0.2.3";
+
+  src = fetchFromGitHub {
+    owner = "jaxwilko";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1z5s5rsgiypanf2z0avaisbflnvwrc8aiy5qskrsvbbaja63jy3s";
+  };
+
+  postPatch = ''
+    substituteInPlace main.sh \
+      --replace "#!/usr/bin/env bash" "#!/bin/sh"
+
+    substituteInPlace scripts/install.sh \
+      --replace "#!/usr/bin/env bash" "#!/bin/sh"
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/themes
+    ./main.sh -i -t ${theme} -d $out/share/themes
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/jaxwilko/gtk-theme-framework";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ flexagoon ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/jade1/default.nix b/nixpkgs/pkgs/data/themes/jade1/default.nix
new file mode 100644
index 000000000000..42979c8c81b3
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/jade1/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "theme-jade1";
+  version = "1.14";
+
+  src = fetchurl {
+    url = "https://github.com/madmaxms/theme-jade-1/releases/download/v${version}/jade-1-theme.tar.xz";
+    sha256 = "01p1g0gy6d1c8aa9y7inhn6zhm0qy0fzmwlniiv07h15g32appvd";
+  };
+
+  sourceRoot = ".";
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Jade* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Based on Linux Mint theme with dark menus and more intensive green";
+    homepage = "https://github.com/madmaxms/theme-jade-1";
+    license = with licenses; [ gpl3Only ];
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/juno/default.nix b/nixpkgs/pkgs/data/themes/juno/default.nix
new file mode 100644
index 000000000000..9e1580a6a14d
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/juno/default.nix
@@ -0,0 +1,45 @@
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "juno";
+  version = "0.0.1";
+
+  srcs = [
+    (fetchurl {
+      url = "https://github.com/gvolpe/Juno/releases/download/${version}/Juno.tar.xz";
+      sha256 = "1cghsn9qagcf1nlga5cal0aqch6hkjm5wk6ja791zxhdqy3crx1i";
+    })
+    (fetchurl {
+      url = "https://github.com/gvolpe/Juno/releases/download/${version}/Juno-mirage.tar.xz";
+      sha256 = "0zh6bc85svmwh8qrhpn8mim0pj322x2x2i9sxnp7p1938p5z5m2b";
+    })
+    (fetchurl {
+      url = "https://github.com/gvolpe/Juno/releases/download/${version}/Juno-ocean.tar.xz";
+      sha256 = "0m2wgmcn12dfq5badzlpzjc8792ba9hi32c79vfvqawdn1q3hrdx";
+    })
+    (fetchurl {
+      url = "https://github.com/gvolpe/Juno/releases/download/${version}/Juno-palenight.tar.xz";
+      sha256 = "1hn2l0m76x61ixjd253hi7czm65asdjdhqvvlv7idbccc40pvrak";
+    })
+  ];
+
+  sourceRoot = ".";
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Juno* $out/share/themes
+    rm $out/share/themes/*/{LICENSE,README.md}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "GTK themes inspired by epic vscode themes";
+    homepage = "https://github.com/EliverLara/Juno";
+    license = licenses.gpl3Only;
+    platforms = platforms.all;
+    maintainers = [ maintainers.gvolpe ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/kde-gruvbox/default.nix b/nixpkgs/pkgs/data/themes/kde-gruvbox/default.nix
new file mode 100644
index 000000000000..e0f478a53cbe
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/kde-gruvbox/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "kde-gruvbox";
+  version = "unstable-2015-08-09";
+
+  src = fetchFromGitHub {
+    owner = "printesoi";
+    repo = pname;
+    rev = "2dd95283076d7194345a460edb3630cfd020759c";
+    sha256 = "sha256-ppAeEfwoHZg7XEj3zGc+uq4Z6hUgJNM2EjuDsc8pFQo=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/{plasma/desktoptheme,yakuake/kns_skins}
+    cp -R color-schemes konsole $out/share
+    cp -R plasma5/gruvbox $out/share/plasma/desktoptheme
+    cp -R yakuake/breeze-gruvbox-dark $out/share/yakuake/kns_skins
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A suite of themes for KDE applications that match the retro gruvbox colorscheme";
+    homepage = "https://github.com/printesoi/kde-gruvbox";
+    license = licenses.mit;
+    maintainers = [ maintainers.ymarkus ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/kde2/default.nix b/nixpkgs/pkgs/data/themes/kde2/default.nix
new file mode 100644
index 000000000000..1404a6ca86ec
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/kde2/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchFromGitHub, mkDerivation
+, cmake, extra-cmake-modules
+, qtbase, kcoreaddons, kdecoration
+}:
+
+mkDerivation rec {
+  pname = "kde2-decoration";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "repos-holder";
+    repo = "kdecoration2-kde2";
+    rev = version;
+    sha256 = "y2q1j36EURJc7k1huqhEH1Z82PnVSKlfx20bpQWY28c=";
+  };
+
+  outputs = [ "out" "dev" ];
+
+  nativeBuildInputs = [ cmake extra-cmake-modules ];
+
+  buildInputs = [ qtbase kcoreaddons kdecoration ];
+
+  meta = with lib; {
+    description = "KDE 2 window decoration ported to Plasma 5";
+    homepage = "https://github.com/repos-holder/kdecoration2-kde2";
+    license = licenses.bsd2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix b/nixpkgs/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix
new file mode 100644
index 000000000000..06b0e32d1b7a
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, extra-cmake-modules
+, wrapQtAppsHook
+, kwin
+, kdelibs4support
+, libepoxy
+, libXdmcp
+, lib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "kde-rounded-corners";
+  version = "unstable-2021-11-06";
+
+  src = fetchFromGitHub {
+    owner = "matinlotfali";
+    repo = "KDE-Rounded-Corners";
+    rev = "8ad8f5f5eff9d1625abc57cb24dc484d51f0e1bd";
+    sha256 = "0xbskf7jd03d2invfz1nnfc82klzvc784snw539n4kn6c6rc381p";
+  };
+
+  postConfigure = ''
+    substituteInPlace cmake_install.cmake \
+      --replace "${kdelibs4support}" "$out"
+  '';
+
+  nativeBuildInputs = [ cmake extra-cmake-modules wrapQtAppsHook ];
+  buildInputs = [ kwin kdelibs4support libepoxy libXdmcp ];
+
+  meta = with lib; {
+    description = "Rounds the corners of your windows";
+    homepage = "https://github.com/matinlotfali/KDE-Rounded-Corners";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ flexagoon ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/kwin-decorations/sierra-breeze-enhanced/default.nix b/nixpkgs/pkgs/data/themes/kwin-decorations/sierra-breeze-enhanced/default.nix
new file mode 100644
index 000000000000..2f5230181d5e
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/kwin-decorations/sierra-breeze-enhanced/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, extra-cmake-modules
+, wrapQtAppsHook
+, kwin
+, lib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sierra-breeze-enhanced";
+  version = "1.0.3";
+
+  src = fetchFromGitHub {
+    owner = "kupiqu";
+    repo = "SierraBreezeEnhanced";
+    rev = "V${version}";
+    sha256 = "0kqbfn1jqsbii3hqcqlb93x8cg8dyh5mf66i9r237w41knks5mnw";
+  };
+
+  nativeBuildInputs = [ cmake extra-cmake-modules wrapQtAppsHook ];
+  buildInputs = [ kwin ];
+
+  cmakeFlags = [
+    "-DCMAKE_INSTALL_PREFIX=$out"
+    "-DCMAKE_BUILD_TYPE=Release"
+    "-DBUILD_TESTING=OFF"
+    "-DKDE_INSTALL_USE_QT_SYS_PATHS=ON"
+  ];
+
+  meta = with lib; {
+    description = "OSX-like window decoration for KDE Plasma written in C++";
+    homepage = "https://github.com/kupiqu/SierraBreezeEnhanced";
+    changelog = "https://github.com/kupiqu/SierraBreezeEnhanced/releases/tag/V${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ flexagoon ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/layan-gtk-theme/default.nix b/nixpkgs/pkgs/data/themes/layan-gtk-theme/default.nix
new file mode 100644
index 000000000000..7892fbe9f316
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/layan-gtk-theme/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, fetchFromGitHub
+, lib
+, gtk-engine-murrine
+}:
+
+stdenv.mkDerivation rec {
+  pname = "layan-gtk-theme";
+  version = "2021-06-30";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-FI8+AJlcPHGOzxN6HUKLtPGLe8JTfTQ9Az9NsvVUK7g=";
+  };
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  postPatch = ''
+    patchShebangs install.sh
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    unset name && ./install.sh -d $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A flat Material Design theme for GTK 3, GTK 2 and Gnome-Shell.";
+    homepage = "https://github.com/vinceliuice/Layan-gtk-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.vanilla ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/lightly-qt/default.nix b/nixpkgs/pkgs/data/themes/lightly-qt/default.nix
new file mode 100644
index 000000000000..7b653d952424
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/lightly-qt/default.nix
@@ -0,0 +1,42 @@
+{ mkDerivation
+, lib
+, fetchFromGitHub
+, cmake
+, extra-cmake-modules
+, kdecoration
+, plasma-workspace
+, qtbase
+, qt5
+}:
+
+mkDerivation rec {
+  pname = "lightly-qt";
+  version = "0.4.1";
+
+  src = fetchFromGitHub {
+    owner = "Luwx";
+    repo = "Lightly";
+    rev = "v${version}";
+    sha256 = "0qkjzgjplgwczhk6959iah4ilvazpprv7yb809jy75kkp1jw8mwk";
+  };
+
+  buildInputs = [
+    kdecoration
+    plasma-workspace
+    qtbase
+    qt5.qtx11extras
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  meta = with lib; {
+    description = "A fork of breeze theme style that aims to be visually modern and minimalistic";
+    homepage = "https://github.com/Luwx/Lightly";
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.pwoelfel ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/lounge/default.nix b/nixpkgs/pkgs/data/themes/lounge/default.nix
new file mode 100644
index 000000000000..ab945f510538
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/lounge/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenv, fetchFromGitHub, meson, ninja, sassc, gtk3, gnome, gdk-pixbuf, librsvg, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "lounge-gtk-theme";
+  version = "1.24";
+
+  src = fetchFromGitHub {
+    owner = "monday15";
+    repo = pname;
+    rev = version;
+    sha256 = "0ima0aa5j296xn4y0d1zj6vcdrdpnihqdidj7bncxzgbnli1vazs";
+  };
+
+  nativeBuildInputs = [ meson ninja sassc gtk3 ];
+
+  buildInputs = [ gdk-pixbuf librsvg ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  mesonFlags = [
+    "-D gnome_version=${lib.versions.majorMinor gnome.gnome-shell.version}"
+  ];
+
+  postFixup = ''
+    gtk-update-icon-cache "$out"/share/icons/Lounge-aux;
+  '';
+
+  meta = with lib; {
+    description = "Simple and clean GTK theme with vintage scrollbars, inspired by Absolute, based on Adwaita";
+    homepage = "https://github.com/monday15/lounge-gtk-theme";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/marwaita-manjaro/default.nix b/nixpkgs/pkgs/data/themes/marwaita-manjaro/default.nix
new file mode 100644
index 000000000000..5cbf4c192085
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/marwaita-manjaro/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita-manjaro";
+  version = "10.3";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "0qihxipk7ya6n3p9kg20bk6plnb85pg3ahwd02qq4bqfiw6mx3gw";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Marwaita* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Manjaro Style (green version) of Marwaita GTK theme";
+    homepage = "https://www.pling.com/p/1351213/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/marwaita-peppermint/default.nix b/nixpkgs/pkgs/data/themes/marwaita-peppermint/default.nix
new file mode 100644
index 000000000000..6873cd31f8dd
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/marwaita-peppermint/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita-peppermint";
+  version = "10.3";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "09lqp82aymj3silpwmjkkf4mgv3b1xw7181ck89lz2nxb98sr9im";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Marwaita* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Marwaita GTK theme with Peppermint Os Linux style";
+    homepage = "https://www.pling.com/p/1399569/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/marwaita-pop_os/default.nix b/nixpkgs/pkgs/data/themes/marwaita-pop_os/default.nix
new file mode 100644
index 000000000000..ca35460eff14
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/marwaita-pop_os/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita-pop_os";
+  version = "10.3";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "1j6d91kx6iw8sy35rhhjvwb3qz60bvf7a7g7q2i0sznzdicrwsq6";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Marwaita* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Marwaita GTK theme with Pop_os Linux style";
+    homepage = "https://www.pling.com/p/1377894/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/marwaita-ubuntu/default.nix b/nixpkgs/pkgs/data/themes/marwaita-ubuntu/default.nix
new file mode 100644
index 000000000000..f98e112678ce
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/marwaita-ubuntu/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita-ubuntu";
+  version = "1.7";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "024b0817jilvi5ilq9sbwg19ql5i2x3jfgc1awk7zzv6sqii639x";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Marwaita* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Ubuntu Style of Marwaita GTK theme";
+    homepage = "https://www.pling.com/p/1352833/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/marwaita/default.nix b/nixpkgs/pkgs/data/themes/marwaita/default.nix
new file mode 100644
index 000000000000..a01177632b55
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/marwaita/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita";
+  version = "13.0";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-aP/zPM7M8Oru/2AA8w6rKU/AVJJ0bAEC01C60yi2SbM=";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Marwaita* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "GTK theme supporting Budgie, Pantheon, Mate, Xfce4 and GNOME desktops";
+    homepage = "https://www.pling.com/p/1239855/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/matcha/default.nix b/nixpkgs/pkgs/data/themes/matcha/default.nix
new file mode 100644
index 000000000000..4d59a03313a4
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/matcha/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchFromGitHub, gdk-pixbuf, librsvg, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "matcha-gtk-theme";
+  version = "2021-12-25";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "1wgq1aypm4cjv7yavlfmqcwahlddvh2gbg2f5ca0djgnpy9vha1g";
+  };
+
+  buildInputs = [ gdk-pixbuf librsvg ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    runHook preInstall
+    patchShebangs .
+    mkdir -p $out/share/themes
+    name= ./install.sh -d $out/share/themes
+    install -D -t $out/share/gtksourceview-3.0/styles src/extra/gedit/matcha.xml
+    mkdir -p $out/share/doc/${pname}
+    cp -a src/extra/firefox $out/share/doc/${pname}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A stylish flat design theme for GTK based desktop environments";
+    homepage = "https://vinceliuice.github.io/theme-matcha";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/materia-kde/default.nix b/nixpkgs/pkgs/data/themes/materia-kde/default.nix
new file mode 100644
index 000000000000..a50cadb06769
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/materia-kde/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "materia-kde-theme";
+  version = "20210814";
+
+  src = fetchFromGitHub {
+    owner = "PapirusDevelopmentTeam";
+    repo = "materia-kde";
+    rev = version;
+    sha256 = "KfC1nB5WUcYixqSy5XCP+6Uqhs07Y3p2F1H+5HB8wAg=";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "A port of the materia theme for Plasma";
+    homepage = "https://github.com/PapirusDevelopmentTeam/materia-kde";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.diffumist ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/materia-theme/default.nix b/nixpkgs/pkgs/data/themes/materia-theme/default.nix
new file mode 100644
index 000000000000..da79f68638b9
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/materia-theme/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, sassc
+, gnome
+, gtk-engine-murrine
+, gdk-pixbuf
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "materia-theme";
+  version = "20210322";
+
+  src = fetchFromGitHub {
+    owner = "nana-4";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1fsicmcni70jkl4jb3fvh7yv0v9jhb8nwjzdq8vfwn256qyk0xvl";
+  };
+
+  nativeBuildInputs = [ meson ninja sassc ];
+
+  buildInputs = [ gnome.gnome-themes-extra gdk-pixbuf librsvg ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  dontBuild = true;
+
+  mesonFlags = [
+    "-Dgnome_shell_version=${lib.versions.majorMinor gnome.gnome-shell.version}"
+  ];
+
+  postInstall = ''
+    rm $out/share/themes/*/COPYING
+  '';
+
+  meta = with lib; {
+    description = "Material Design theme for GNOME/GTK based desktop environments";
+    homepage = "https://github.com/nana-4/materia-theme";
+    license = licenses.gpl2Only;
+    platforms = platforms.all;
+    maintainers = [ maintainers.mounium ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/material-kwin-decoration/default.nix b/nixpkgs/pkgs/data/themes/material-kwin-decoration/default.nix
new file mode 100644
index 000000000000..3716fb79368f
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/material-kwin-decoration/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, extra-cmake-modules
+, qtx11extras
+, kcoreaddons
+, kguiaddons
+, kconfig
+, kdecoration
+, kconfigwidgets
+, kwindowsystem
+, kiconthemes
+, kwayland
+}:
+
+mkDerivation rec {
+  pname = "material-kwin-decoration";
+  version = "unstable-2021-10-28";
+
+  src = fetchFromGitHub {
+    owner = "Zren";
+    repo = "material-decoration";
+    rev = "cc5cc399a546b66907629b28c339693423c894c8";
+    sha256 = "sha256-aYlnPFhf+ISVe5Ycryu5BSXY8Lb5OoueMqnWQZiv6Lc=";
+  };
+
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace "-Werror" ""
+  '';
+
+  nativeBuildInputs = [ cmake extra-cmake-modules ];
+
+  buildInputs = [
+    qtx11extras
+    kcoreaddons
+    kguiaddons
+    kdecoration
+    kconfig
+    kconfigwidgets
+    kwindowsystem
+    kiconthemes
+    kwayland
+  ];
+
+  meta = with lib; {
+    description = "Material-ish window decoration theme for KWin";
+    homepage = "https://github.com/Zren/material-decoration";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.nickcao ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/mojave/default.nix b/nixpkgs/pkgs/data/themes/mojave/default.nix
new file mode 100644
index 000000000000..56d7dfcf3752
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/mojave/default.nix
@@ -0,0 +1,124 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchurl
+, glib
+, gtk-engine-murrine
+, gtk_engines
+, inkscape
+, jdupes
+, optipng
+, sassc
+, which
+, buttonSizeVariants ? [] # default to standard
+, buttonVariants ? [] # default to all
+, colorVariants ? [] # default to all
+, opacityVariants ? [] # default to all
+, themeVariants ? [] # default to MacOS blue
+, wallpapers ? false
+}:
+
+let
+  pname = "mojave-gtk-theme";
+in
+lib.checkListOfEnum "${pname}: button size variants" [ "standard" "small" ] buttonSizeVariants
+lib.checkListOfEnum "${pname}: button variants" [ "standard" "alt" ] buttonVariants
+lib.checkListOfEnum "${pname}: color variants" [ "light" "dark" ] colorVariants
+lib.checkListOfEnum "${pname}: opacity variants" [ "standard" "solid" ] opacityVariants
+lib.checkListOfEnum "${pname}: theme variants" [ "default" "blue" "purple" "pink" "red" "orange" "yellow" "green" "grey" "all" ] themeVariants
+
+stdenv.mkDerivation rec {
+  inherit pname;
+  version = "unstable-2021-12-20";
+
+  srcs = [
+    (fetchFromGitHub {
+      owner = "vinceliuice";
+      repo = pname;
+      rev = "c148646ccab382f7a2d5fdc421fc32d843cb4172";
+      sha256 = "sha256-h4MSSh8cu9M81bM+WJSyl1SQ7CVth1DvjIVOUJXqpxs";
+    })
+  ]
+  ++
+  lib.optional wallpapers
+    (fetchurl {
+      url = "https://github.com/vinceliuice/Mojave-gtk-theme/raw/11741a99d96953daf9c27e44c94ae50a7247c0ed/macOS_Mojave_Wallpapers.tar.xz";
+      sha256 = "18zzkwm1kqzsdaj8swf0xby1n65gxnyslpw4lnxcx1rphip0rwf7";
+    })
+  ;
+
+  sourceRoot = "source";
+
+  nativeBuildInputs = [
+    glib
+    inkscape
+    jdupes
+    optipng
+    sassc
+    which
+  ];
+
+  buildInputs = [
+    gtk_engines
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  # These fixup steps are slow and unnecessary.
+  dontPatchELF = true;
+  dontRewriteSymlinks = true;
+
+  postPatch = ''
+    patchShebangs .
+
+    for f in \
+      render-assets.sh \
+      src/assets/cinnamon/thumbnails/render-thumbnails.sh \
+      src/assets/gtk-2.0/render-assets.sh \
+      src/assets/gtk/common-assets/render-assets.sh \
+      src/assets/gtk/thumbnails/render-thumbnails.sh \
+      src/assets/gtk/windows-assets/render-alt-assets.sh \
+      src/assets/gtk/windows-assets/render-alt-small-assets.sh \
+      src/assets/gtk/windows-assets/render-assets.sh \
+      src/assets/gtk/windows-assets/render-small-assets.sh \
+      src/assets/metacity-1/render-assets.sh \
+      src/assets/xfwm4/render-assets.sh
+    do
+      substituteInPlace $f \
+        --replace /usr/bin/inkscape ${inkscape}/bin/inkscape \
+        --replace /usr/bin/optipng ${optipng}/bin/optipng
+    done
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    name= ./install.sh \
+      ${lib.optionalString (buttonSizeVariants != []) "--small " + builtins.toString buttonSizeVariants} \
+      ${lib.optionalString (buttonVariants != []) "--alt " + builtins.toString buttonVariants} \
+      ${lib.optionalString (colorVariants != []) "--color " + builtins.toString colorVariants} \
+      ${lib.optionalString (opacityVariants != []) "--opacity " + builtins.toString opacityVariants} \
+      ${lib.optionalString (themeVariants != []) "--theme " + builtins.toString themeVariants} \
+      --dest $out/share/themes
+
+    ${lib.optionalString wallpapers ''
+      install -D -t $out/share/wallpapers ../"macOS Mojave Wallpapers"/*
+    ''}
+
+    # Replace duplicate files with hardlinks to the first file in each
+    # set of duplicates, reducing the installed size in about 53%
+    jdupes -L -r $out/share
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Mac OSX Mojave like theme for GTK based desktop environments";
+    homepage = "https://github.com/vinceliuice/Mojave-gtk-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/nordic/default.nix b/nixpkgs/pkgs/data/themes/nordic/default.nix
new file mode 100644
index 000000000000..a2a518d3f0a0
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/nordic/default.nix
@@ -0,0 +1,125 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gtk-engine-murrine
+, jdupes
+}:
+
+stdenv.mkDerivation rec {
+  pname = "nordic";
+  version = "unstable-2022-01-08";
+
+  srcs = [
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "85086324c2a8fa7ca538b85ad0681e03733b2c86";
+      sha256 = "sha256-p1nr71iJZm+2123WF67NkunBX2dR4ruK2Afqd7XdeGc=";
+      name = "Nordic";
+    })
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "46c9e6665963ccb54938d7730e520bd8c52f4307";
+      sha256 = "sha256-uFnNLshyKOvzaij7tEKb0fw0j3/GGfzznAf/aaKx7XI=";
+      name = "Nordic-standard-buttons";
+    })
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "da5c930386427fce65ea185f164709c8a20e362f";
+      sha256 = "sha256-Ee9ymuMWs2ZgU+8FVLaviGtHMT4Sz5NWLaEGln2Z4V0=";
+      name = "Nordic-darker";
+    })
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "fd85fb2712ac1192e35c92149b75bfc3c440b1c7";
+      sha256 = "sha256-6WUQBeNq7EKNkYcCt/fUYloue90gxfp8bDYawkQQ6ss=";
+      name = "Nordic-darker-standard-buttons";
+    })
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "259e30ce13566214c7594b038dd2c240648a07a0";
+      sha256 = "sha256-F6hC6XbT9yJl6SW9qJNlwmmBcvOrOS5yPCQALZFhgbM=";
+      name = "Nordic-bluish-accent";
+    })
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "2a27051d87558dfa595fb94eff34241d3a1b8c30";
+      sha256 = "sha256-JIld6GVtr1tz02Do2Ft92qtza6iGrPapasd6jmMFG6k=";
+      name = "Nordic-bluish-accent-standard-buttons";
+    })
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = "${pname}-polar";
+      rev = "0bea76aed39bb2a2669278b8403c4129aa47be0f";
+      sha256 = "sha256-OXmz6uHXh1zl93sgv5WEwARkEUCr4PRh0/mJyMLXpnk=";
+      name = "Nordic-Polar";
+    })
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = "${pname}-polar";
+      rev = "8fe52b6c276a7e548e87a558db6734cf9f003b06";
+      sha256 = "sha256-/IxlBvMLAK+mGRyaa7bTv/oZS24nSNeE5GsyJIeN6UU=";
+      name = "Nordic-Polar-standard-buttons";
+    })
+  ];
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [ jdupes ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/themes
+    cp -a Nordic* $out/share/themes
+    rm -r $out/share/themes/*/.gitignore
+    rm -r $out/share/themes/*/Art
+    rm -r $out/share/themes/*/LICENSE
+    rm -r $out/share/themes/*/README.md
+    rm -r $out/share/themes/*/{package.json,package-lock.json,Gulpfile.js}
+    rm -r $out/share/themes/*/src
+    rm -r $out/share/themes/*/cinnamon/*.scss
+    rm -r $out/share/themes/*/gnome-shell/{extensions,*.scss}
+    rm -r $out/share/themes/*/gtk-2.0/{assets.svg,assets.txt,links.fish,render-assets.sh}
+    rm -r $out/share/themes/*/gtk-3.0/{apps,widgets,*.scss}
+    rm -r $out/share/themes/*/xfwm4/{assets,render_assets.fish}
+
+    # move kde related contents to appropriate directories
+    mkdir -p $out/share/{aurorae/themes,color-schemes,Kvantum,plasma,sddm/themes/Nordic}
+    mv -v $out/share/themes/Nordic/kde/aurorae/* $out/share/aurorae/themes/
+    mv -v $out/share/themes/Nordic/kde/colorschemes/* $out/share/color-schemes/
+    mv -v $out/share/themes/Nordic/kde/konsole $out/share/
+    mv -v $out/share/themes/Nordic/kde/kvantum/* $out/share/Kvantum/
+    mv -v $out/share/themes/Nordic/kde/plasma/look-and-feel $out/share/plasma/
+    mv -v $out/share/themes/Nordic/kde/sddm/* $out/share/sddm/themes/Nordic/
+    rm -rf $out/share/themes/Nordic/kde
+
+    # Replace duplicate files with hardlinks to the first file in each
+    # set of duplicates, reducing the installed size in about 65%
+    jdupes -L -r $out/share
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Gtk and KDE themes using the Nord color pallete";
+    homepage = "https://github.com/EliverLara/Nordic";
+    license = licenses.gpl3Only;
+    platforms = platforms.all;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/numix-solarized/default.nix b/nixpkgs/pkgs/data/themes/numix-solarized/default.nix
new file mode 100644
index 000000000000..efc8236c4514
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/numix-solarized/default.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, fetchFromGitHub, python3, sassc, glib, gdk-pixbuf, inkscape, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "numix-solarized-gtk-theme";
+  version = "20210831";
+
+  src = fetchFromGitHub {
+    owner = "Ferdi265";
+    repo = pname;
+    rev = version;
+    sha256 = "1q8qhpw0hfv625sm626zp4vbz2106b0g5m11ygk87s6kbxrfg6lr";
+  };
+
+  nativeBuildInputs = [ python3 sassc glib gdk-pixbuf inkscape ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  postPatch = ''
+    patchShebangs .
+    substituteInPlace Makefile --replace '$(DESTDIR)'/usr $out
+  '';
+
+  buildPhase = "true";
+
+  installPhase = ''
+    runHook preInstall
+    for theme in colors/*.colors; do
+      theme="''${theme##*/}"
+      make THEME="''${theme/.colors/}" install
+    done
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Solarized versions of Numix GTK2 and GTK3 theme";
+    longDescription = ''
+      This is a fork of the Numix GTK theme that replaces the colors of the theme
+      and icons to use the solarized theme with a solarized green accent color.
+      This theme supports both the dark and light theme, just as Numix proper.
+    '';
+    homepage = "https://github.com/Ferdi265/numix-solarized-gtk-theme";
+    downloadPage = "https://github.com/Ferdi265/numix-solarized-gtk-theme/releases";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.offline ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/numix-sx/default.nix b/nixpkgs/pkgs/data/themes/numix-sx/default.nix
new file mode 100644
index 000000000000..ee887cbadee1
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/numix-sx/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
+
+stdenv.mkDerivation {
+  version = "2017-04-24";
+  pname = "numix-sx-gtk-theme";
+
+  src = fetchurl {
+    url = "https://dl.opendesktop.org/api/files/download/id/1493077417/Numix-SX.tar.xz";
+    sha256 = "7e1983924b2d90e89eddb3da8f4c43dc1326fe138fd191c8212c7904dcd618b0";
+  };
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  dontBuild = true;
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    install -dm 755 "$out/share/themes/"
+    cp -dr --no-preserve='ownership' Numix-SX-{Dark,FullDark,Light} "$out/share/themes/"
+  '';
+
+  meta = {
+    description = "Gray variation of Numix theme";
+    homepage = "https://www.gnome-look.org/p/1117412/";
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.all;
+    maintainers = [ lib.maintainers.sauyon ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/numix/default.nix b/nixpkgs/pkgs/data/themes/numix/default.nix
new file mode 100644
index 000000000000..23f491d4a9ad
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/numix/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchFromGitHub, sass, glib, libxml2, gdk-pixbuf
+, gtk-engine-murrine
+}:
+
+stdenv.mkDerivation rec {
+  version = "2.6.7";
+  pname = "numix-gtk-theme";
+
+  src = fetchFromGitHub {
+    repo = "numix-gtk-theme";
+    owner = "numixproject";
+    rev = version;
+    sha256 = "12mw0kr0kkvg395qlbsvkvaqccr90cmxw5rrsl236zh43kj8grb7";
+  };
+
+  nativeBuildInputs = [ sass glib libxml2 gdk-pixbuf ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  postPatch = ''
+    substituteInPlace Makefile --replace '$(DESTDIR)'/usr $out
+    patchShebangs .
+  '';
+
+  meta = {
+    description = "Modern flat theme with a combination of light and dark elements (GNOME, Unity, Xfce and Openbox)";
+    homepage = "https://numixproject.github.io";
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.all;
+    maintainers = [ lib.maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/obsidian2/default.nix b/nixpkgs/pkgs/data/themes/obsidian2/default.nix
new file mode 100644
index 000000000000..251dde481fd2
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/obsidian2/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "theme-obsidian2";
+  version = "2.20";
+
+  src = fetchurl {
+    url = "https://github.com/madmaxms/theme-obsidian-2/releases/download/v${version}/obsidian-2-theme.tar.xz";
+    sha256 = "0bbw8far4fjz7fiy205wnzp9ibnvqspfcjkinhjj8l0s272h7wjp";
+  };
+
+  sourceRoot = ".";
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Obsidian-2* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Gnome theme, based upon Adwaita-Maia dark skin";
+    homepage = "https://github.com/madmaxms/theme-obsidian-2";
+    license = with licenses; [ gpl3Only ];
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/onestepback/default.nix b/nixpkgs/pkgs/data/themes/onestepback/default.nix
new file mode 100644
index 000000000000..9547e3543890
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/onestepback/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+  pname = "onestepback";
+  version = "0.991";
+
+  srcs = [
+    (fetchurl {
+      url = "http://www.vide.memoire.free.fr/perso/OneStepBack/OneStepBack-v${version}.zip";
+      sha256 = "1jfgcgzbb6ra9qs3zcp6ij0hfldzg3m0yjw6l6vf4kq1mdby1ghm";
+    })
+    (fetchurl {
+      url = "http://www.vide.memoire.free.fr/perso/OneStepBack/OneStepBack-grey-brown-green-blue-v${version}.zip";
+      sha256 = "0i006h1asbpfdzajws0dvk9acplvcympzgxq5v3n8hmizd6yyh77";
+    })
+    (fetchurl {
+      url = "http://www.vide.memoire.free.fr/perso/OneStepBack/OneStepBack-green-brown-v${version}.zip";
+      sha256 = "16p002lak6425gcskny4hzws8x9dgsm6j3a1r08y11rsz7d2hnmy";
+    })
+  ];
+
+  nativeBuildInputs = [ unzip ];
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    mkdir -p  $out/share/themes
+    cp -a OneStepBack* $out/share/themes/
+    rm $out/share/themes/*/{LICENSE,README*}
+  '';
+
+  meta = with lib; {
+    description = "Gtk theme inspired by the NextStep look";
+    homepage = "http://www.vide.memoire.free.fr/perso/OneStepBack";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/openzone/default.nix b/nixpkgs/pkgs/data/themes/openzone/default.nix
new file mode 100644
index 000000000000..e7748612fef3
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/openzone/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchFromGitHub, icon-slicer, xcursorgen }:
+stdenv.mkDerivation rec {
+  pname = "openzone-cursors";
+  version = "1.2.9";
+
+  src = fetchFromGitHub {
+    owner = "ducakar";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "02c536mc17ccsrzgma366k3wlm02ivklvr30fafxl981zgghlii4";
+  };
+
+  nativeBuildInputs = [ icon-slicer xcursorgen ];
+
+  makeFlags = [ "DESTDIR=$(out)" ];
+
+  meta = with lib; {
+    description = "Clean and sharp X11/Wayland cursor theme";
+    homepage = "https://www.gnome-look.org/p/999999/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ zaninime ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/orchis-theme/default.nix b/nixpkgs/pkgs/data/themes/orchis-theme/default.nix
new file mode 100644
index 000000000000..ccaee7f65522
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/orchis-theme/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gtk3
+, gnome-themes-extra
+, gtk-engine-murrine
+, sassc
+, tweaks ? [ ] # can be "solid" "compact" "black" "primary"
+, withWallpapers ? false
+}:
+
+let
+  validTweaks = [ "solid" "compact" "black" "primary" ];
+  unknownTweaks = lib.subtractLists validTweaks tweaks;
+in
+assert lib.assertMsg (unknownTweaks == [ ]) ''
+  You entered wrong tweaks: ${toString unknownTweaks}
+  Valid tweaks are: ${toString validTweaks}
+'';
+
+stdenvNoCC.mkDerivation
+rec {
+  pname = "orchis-theme";
+  version = "2022-02-18";
+
+  src = fetchFromGitHub {
+    repo = "Orchis-theme";
+    owner = "vinceliuice";
+    rev = version;
+    sha256 = "sha256-SqptW8DEDCB6LMHalRlf71TWK93gW+blbu6Q1Oommes=";
+  };
+
+  nativeBuildInputs = [ gtk3 sassc ];
+
+  buildInputs = [ gnome-themes-extra ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  preInstall = ''
+    mkdir -p $out/share/themes
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    bash install.sh -d $out/share/themes -t all ${lib.optionalString (tweaks != []) "--tweaks " + builtins.toString tweaks}
+    ${lib.optionalString withWallpapers ''
+      mkdir -p $out/share/backgrounds
+      cp src/wallpaper/{1080p,2k,4k}.jpg $out/share/backgrounds
+    ''}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A Material Design theme for GNOME/GTK based desktop environments.";
+    homepage = "https://github.com/vinceliuice/Orchis-theme";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.fufexan ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/orion/default.nix b/nixpkgs/pkgs/data/themes/orion/default.nix
new file mode 100644
index 000000000000..93ea3633fb5a
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/orion/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "orion";
+  version = "1.5";
+
+  src = fetchFromGitHub {
+    owner = "shimmerproject";
+    repo = "Orion";
+    rev = "refs/tags/v${version}";
+    sha256 = "1116yawv3fspkiq1ykk2wj0gza3l04b5nhldy0bayzjaj0y6fd89";
+  };
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    mkdir -p $out/share/themes/orion
+    cp -r gtk-2.0 gtk-3.0 metacity-1 openbox-3 xfwm4 $out/share/themes/orion
+  '';
+
+  meta = {
+    homepage = "https://github.com/shimmerproject/Orion";
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/paper-gtk/default.nix b/nixpkgs/pkgs/data/themes/paper-gtk/default.nix
new file mode 100644
index 000000000000..e7c9179678f0
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/paper-gtk/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, gtk_engines }:
+
+stdenv.mkDerivation {
+  version = "2016-08-16";
+  pname = "paper-gtk-theme";
+
+  src = fetchFromGitHub {
+    owner = "snwh";
+    repo = "paper-gtk-theme";
+    rev = "f75724fd76fd2e5681a367cca246a51f845320c3";
+    sha256 = "0dqllzjk9ggnbh8vvy2c81p3wq6cj73r30hk7gqhrn8i91w8p896";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  buildInputs = [ gtk_engines ];
+
+  postPatch = ''
+    substituteInPlace Makefile.am --replace '$(DESTDIR)'/usr $out
+  '';
+
+  preferLocalBuild = true;
+
+  meta = with lib; {
+    description = "A modern desktop theme suite featuring a mostly flat with a minimal use of shadows for depth";
+    homepage = "https://snwh.org/paper";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.simonvandel maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/pitch-black/default.nix b/nixpkgs/pkgs/data/themes/pitch-black/default.nix
new file mode 100644
index 000000000000..95037f90239e
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/pitch-black/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec{
+  pname = "pitch-black";
+  version = "unstable-2019-07-23";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "freefreeno";
+    rev = "d8039341419aef1157c030bf3d9237bd926e0b95";
+    hash = "sha256-Rn3ZMBD6srIkYFNN3HT5JFP46Akodmeqz5tbV2/2ZDA=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    rm LICENSE README.md
+    mkdir -p $out/share
+    mv GTK $out/share/themes
+    mv * $out/share
+  '';
+
+  meta = with lib; {
+    description = "A dark plasma theme built with usability in mind";
+    homepage = "https://github.com/freefreeno/Pitch-Black";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.pasqui23 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/plano/default.nix b/nixpkgs/pkgs/data/themes/plano/default.nix
new file mode 100644
index 000000000000..c321dc235c49
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/plano/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, gdk-pixbuf
+, gtk_engines
+, gtk-engine-murrine
+, librsvg
+, sassc
+}:
+
+stdenv.mkDerivation rec {
+  pname = "plano-theme";
+  version = "4.0";
+
+  src = fetchFromGitHub {
+    owner = "lassekongo83";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-slGr2nsdKng6zaVDeXWFAWKIxZbcnOLU6RH6wM0293E=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    sassc
+  ];
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  meta = with lib; {
+    description = "Flat theme for GNOME and Xfce";
+    homepage = "https://github.com/lassekongo83/plano-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/plata/default.nix b/nixpkgs/pkgs/data/themes/plata/default.nix
new file mode 100644
index 000000000000..0e7d88a7883c
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/plata/default.nix
@@ -0,0 +1,88 @@
+{ lib, stdenv, fetchFromGitLab, autoreconfHook, pkg-config, parallel
+, sassc, inkscape, libxml2, glib, gtk_engines, gtk-engine-murrine
+, cinnamonSupport ? true
+, gnomeFlashbackSupport ? true
+, gnomeShellSupport ? true
+, openboxSupport ? true
+, xfceSupport ? true
+, mateSupport ? true, gtk3, marco
+, gtkNextSupport ? false
+, plankSupport ? false
+, steamSupport ? false
+, telegramSupport ? false, zip
+, tweetdeckSupport ? false
+, selectionColor ? null # Primary color for 'selected-items' (Default: #3F51B5 = Indigo500)
+, accentColor ? null # Secondary color for notifications and OSDs (Default: #7986CB = Indigo300)
+, suggestionColor ? null # Secondary color for 'suggested' buttons (Default: #673AB7 = DPurple500)
+, destructionColor ? null # Tertiary color for 'destructive' buttons (Default: #F44336 = Red500)
+}:
+
+stdenv.mkDerivation rec {
+  pname = "plata-theme";
+  version = "0.9.9";
+
+  src = fetchFromGitLab {
+    owner = "tista500";
+    repo = "plata-theme";
+    rev = version;
+    sha256 = "1iwvlv9qcrjyfbzab00vjqafmp3vdybz1hi02r6lwbgvwyfyrifk";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+    parallel
+    sassc
+    inkscape
+    libxml2
+    glib
+  ]
+  ++ lib.optionals mateSupport [ gtk3 marco ]
+  ++ lib.optional telegramSupport zip;
+
+  buildInputs = [ gtk_engines ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  postPatch = "patchShebangs .";
+
+  configureFlags =
+    let
+      inherit (lib) enableFeature optional;
+      withOptional = value: feat: optional (value != null) "--with-${feat}=${value}";
+    in [
+      "--enable-parallel"
+      (enableFeature cinnamonSupport "cinnamon")
+      (enableFeature gnomeFlashbackSupport "flashback")
+      (enableFeature gnomeShellSupport "gnome")
+      (enableFeature openboxSupport "openbox")
+      (enableFeature xfceSupport "xfce")
+      (enableFeature mateSupport "mate")
+      (enableFeature gtkNextSupport "gtk_next")
+      (enableFeature plankSupport "plank")
+      (enableFeature steamSupport "airforsteam")
+      (enableFeature telegramSupport "telegram")
+      (enableFeature tweetdeckSupport "tweetdeck")
+    ]
+    ++ (withOptional selectionColor "selection_color")
+    ++ (withOptional accentColor "accent_color")
+    ++ (withOptional suggestionColor "suggestion_color")
+    ++ (withOptional destructionColor "destruction_color");
+
+  postInstall = ''
+    for dest in $out/share/gtksourceview-{3.0,4}/styles; do
+      mkdir -p $dest
+      cp $out/share/themes/Plata-{Noir,Lumine}/gtksourceview/*.xml $dest
+    done
+  '';
+
+  meta = with lib; {
+    description = "A GTK theme based on Material Design Refresh";
+    homepage = "https://gitlab.com/tista500/plata-theme";
+    license = with licenses; [ gpl2 cc-by-sa-40 ];
+    platforms = platforms.linux;
+    maintainers = [ maintainers.tadfisher ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/pop-gtk/default.nix b/nixpkgs/pkgs/data/themes/pop-gtk/default.nix
new file mode 100644
index 000000000000..022e1dd81b2f
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/pop-gtk/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, sassc
+, gtk3
+, inkscape
+, optipng
+, gtk-engine-murrine
+, gdk-pixbuf
+, librsvg
+, python3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pop-gtk-theme";
+  version = "2021-08-19";
+
+  src = fetchFromGitHub {
+    owner = "pop-os";
+    repo = "gtk-theme";
+    rev = "6615e4510485c5dc0b379746acc40f538d987c86";
+    sha256 = "16h03x2m4j4hfwp7pdmw1navcy5q7di38jvigfgf263wajyxbznr";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    sassc
+    gtk3
+    inkscape
+    optipng
+    python3
+  ];
+
+  buildInputs = [
+    gdk-pixbuf
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  postPatch = ''
+    patchShebangs .
+
+    for file in $(find -name render-\*.sh); do
+      substituteInPlace "$file" \
+        --replace 'INKSCAPE="/usr/bin/inkscape"' \
+                  'INKSCAPE="${inkscape}/bin/inkscape"' \
+        --replace 'OPTIPNG="/usr/bin/optipng"' \
+                  'OPTIPNG="${optipng}/bin/optipng"'
+    done
+  '';
+
+  meta = with lib; {
+    description = "System76 Pop GTK+ Theme";
+    homepage = "https://github.com/pop-os/gtk-theme";
+    license = with licenses; [ gpl3 lgpl21 cc-by-sa-40 ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ elyhaka ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/qogir/default.nix b/nixpkgs/pkgs/data/themes/qogir/default.nix
new file mode 100644
index 000000000000..e3e3b6e485b8
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/qogir/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gnome-themes-extra
+, gtk-engine-murrine
+, librsvg
+, sassc
+, which
+}:
+
+stdenv.mkDerivation rec {
+  pname = "qogir-theme";
+  version = "2021-12-25";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "1h10yqz3i59bxhkk2r2p8as8g9ibx38bbpdxi7jgg2pxr581mn4f";
+  };
+
+  nativeBuildInputs = [
+    sassc
+    which
+  ];
+
+  buildInputs = [
+    gdk-pixbuf # pixbuf engine for Gtk2
+    gnome-themes-extra # adwaita engine for Gtk2
+    librsvg # pixbuf loader for svg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine # murrine engine for Gtk2
+  ];
+
+  installPhase = ''
+    patchShebangs .
+    mkdir -p $out/share/themes
+    name= ./install.sh -t all -d $out/share/themes
+    mkdir -p $out/share/doc/${pname}
+    cp -a src/firefox $out/share/doc/${pname}
+    rm $out/share/themes/*/{AUTHORS,COPYING}
+  '';
+
+  meta = with lib; {
+    description = "Flat Design theme for GTK based desktop environments";
+    homepage = "https://vinceliuice.github.io/Qogir-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/qtcurve/default.nix b/nixpkgs/pkgs/data/themes/qtcurve/default.nix
new file mode 100644
index 000000000000..0b639133a4a7
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/qtcurve/default.nix
@@ -0,0 +1,69 @@
+{ lib, fetchFromGitHub, cmake, extra-cmake-modules, pkg-config, mkDerivation
+, gtk2Support ? true, gtk2
+, qtbase, qtsvg, qtx11extras # Toolkit dependencies
+, karchive, kconfig, kconfigwidgets, kio, frameworkintegration
+, kguiaddons, ki18n, kwindowsystem, kdelibs4support, kiconthemes
+, libpthreadstubs, pcre, libXdmcp, libX11, libXau # X11 dependencies
+, fetchpatch
+}:
+
+mkDerivation rec {
+  pname = "qtcurve";
+  version = "1.9.1";
+  src = fetchFromGitHub {
+    owner = "KDE";
+    repo = "qtcurve";
+    rev = version;
+    sha256 = "XP9VTeiVIiMm5mkXapCKWxfcvaYCkhY3S5RXZNR3oWo=";
+  };
+
+  patches = [
+    # Remove unnecessary constexpr, this is not allowed in C++14
+    (fetchpatch {
+      url = "https://github.com/KDE/qtcurve/commit/ee2228ea2f18ac5da9b434ee6089381df815aa94.patch";
+      sha256 = "1vz5frsrsps93awn84gk8d7injrqfcyhc1rji6s0gsgsp5z9sl34";
+    })
+    # Fix build with Qt5.15
+    (fetchpatch {
+      url = "https://github.com/KDE/qtcurve/commit/44e2a35ebb164dcab0bad1a9158b1219a3ff6504.patch";
+      sha256 = "5I2fTxKRJX0cJcyUvYHWZx369FKk6ti9Se7AfYmB9ek=";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ];
+
+  buildInputs = [
+    qtbase qtsvg qtx11extras
+    karchive kconfig kconfigwidgets kio kiconthemes kguiaddons ki18n
+    kwindowsystem kdelibs4support frameworkintegration
+    libpthreadstubs
+    pcre
+    libXdmcp libX11 libXau
+  ] ++ lib.optional gtk2Support gtk2;
+
+  preConfigure = ''
+    for i in qt5/CMakeLists.txt qt5/config/CMakeLists.txt
+    do
+      substituteInPlace $i \
+        --replace "{_Qt5_PLUGIN_INSTALL_DIR}" "{KDE_INSTALL_QTPLUGINDIR}"
+    done
+    substituteInPlace CMakeLists.txt \
+      --replace \$\{GTK2_PREFIX\} $out
+    substituteInPlace gtk2/style/CMakeLists.txt \
+      --replace \$\{GTK2_LIBDIR\} $out/lib
+    patchShebangs tools/gen-version.sh
+  '';
+
+  configureFlags = [
+    "-DENABLE_GTK2=${if gtk2Support then "ON" else "OFF"}"
+    "-DENABLE_QT4=OFF"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/QtCurve/qtcurve";
+    description = "Widget styles for Qt5/Plasma 5 and gtk2";
+    platforms = platforms.linux;
+    license = licenses.lgpl21Plus;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/rose-pine-gtk/default.nix b/nixpkgs/pkgs/data/themes/rose-pine-gtk/default.nix
new file mode 100644
index 000000000000..d139876e1429
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/rose-pine-gtk/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, fetchFromGitHub
+, lib
+, gnome-themes-extra
+, gtk-engine-murrine
+, gtk_engines
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rose-pine-gtk-theme";
+  version = "unstable-2021-02-22";
+
+  src = fetchFromGitHub {
+    owner = "rose-pine";
+    repo = "gtk";
+    rev = "9cd2dd449f911973ec549231a57a070d256da9fd";
+    sha256 = "0lqx8dmv754ix3xbg7h440x964n0bg4lb06vbzvsydnbx79h7lvy";
+  };
+
+  buildInputs = [
+    gnome-themes-extra # adwaita engine for Gtk2
+    gtk_engines # pixmap engine for Gtk2
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine # murrine engine for Gtk2
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Rose-Pine $out/share/themes
+    rm $out/share/themes/*/LICENSE
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Rosé Pine theme for GTK";
+    homepage = "https://github.com/rose-pine/gtk";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/shades-of-gray/default.nix b/nixpkgs/pkgs/data/themes/shades-of-gray/default.nix
new file mode 100644
index 000000000000..e4c4cfb3ba51
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/shades-of-gray/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchFromGitHub, gtk_engines, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "shades-of-gray-theme";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "WernerFP";
+    repo = pname;
+    rev = version;
+    sha256 = "13ydym0i3032g5dyrnl5wxpvxv57b43q7iaq5achpmaixgn58gs8";
+  };
+
+  buildInputs = [ gtk_engines ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    mkdir -p $out/share/themes
+    cp -a Shades-of-gray* $out/share/themes/
+  '';
+
+  meta = with lib; {
+    description = "Flat dark GTK theme with ergonomic contrasts";
+    homepage = "https://github.com/WernerFP/Shades-of-gray-theme";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/sierra/default.nix b/nixpkgs/pkgs/data/themes/sierra/default.nix
new file mode 100644
index 000000000000..e87f64661419
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/sierra/default.nix
@@ -0,0 +1,74 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, jdupes
+, librsvg
+, libxml2
+, buttonVariants ? [] # default to all
+, colorVariants ? [] # default to all
+, opacityVariants ? [] # default to all
+, sizeVariants ? [] # default to all
+}:
+
+let
+  pname = "sierra-gtk-theme";
+in
+lib.checkListOfEnum "${pname}: button variants" [ "standard" "alt" ] buttonVariants
+lib.checkListOfEnum "${pname}: color variants" [ "light" "dark" ] colorVariants
+lib.checkListOfEnum "${pname}: opacity variants" [ "standard" "solid" ] opacityVariants
+lib.checkListOfEnum "${pname}: size variants" [ "standard" "compact" ] sizeVariants
+
+stdenv.mkDerivation {
+  inherit pname;
+  version = "unstable-2021-05-24";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = "05899001c4fc2fec87c4d222cb3997c414e0affd";
+    sha256 = "174l5mryc34ma1r42pk6572c6i9hmzr9vj1a6w06nqz5qcfm1hds";
+  };
+
+  nativeBuildInputs = [
+    jdupes
+    libxml2
+  ];
+
+  buildInputs = [
+    gdk-pixbuf
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    patchShebangs install.sh
+
+    mkdir -p $out/share/themes
+    name= ./install.sh --dest $out/share/themes \
+      ${lib.optionalString (buttonVariants != []) "--alt " + builtins.toString buttonVariants} \
+      ${lib.optionalString (colorVariants != []) "--color " + builtins.toString colorVariants} \
+      ${lib.optionalString (opacityVariants != []) "--opacity " + builtins.toString opacityVariants} \
+      ${lib.optionalString (sizeVariants != []) "--flat " + builtins.toString sizeVariants}
+
+    # Replace duplicate files with hardlinks to the first file in each
+    # set of duplicates, reducing the installed size in about 79%
+    jdupes -L -r $out/share
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A Mac OSX like theme for GTK based desktop environments";
+    homepage = "https://github.com/vinceliuice/Sierra-gtk-theme";
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/skeu/default.nix b/nixpkgs/pkgs/data/themes/skeu/default.nix
new file mode 100644
index 000000000000..d8b0c1896572
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/skeu/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "skeu";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "0lbl09p0h493ya978fh7cib68qlmxfxahmbj0mpa3b65ynxda645";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Skeu* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "GTK theme with skeuomorphism design";
+    homepage = "https://www.pling.com/p/1363834/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/snowblind/default.nix b/nixpkgs/pkgs/data/themes/snowblind/default.nix
new file mode 100644
index 000000000000..d36fe2324421
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/snowblind/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchFromGitLab, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "snowblind";
+  version = "2020-06-07";
+
+  src = fetchFromGitLab {
+    domain = "www.opencode.net";
+    owner = "ju1464";
+    repo = pname;
+    rev = "88d626b204e19d1730836289a1c0d83efcf247d0";
+    sha256 = "0admiqwdc0rvl8zxs0b2qyvsi8im7lrpsygm8ky8ymyf7alkw0gd";
+  };
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    mkdir -p $out/share/themes
+    cp -a Snowblind* $out/share/themes
+    rm $out/share/themes/*/{COPYING,CREDITS}
+  '';
+
+  meta = with lib; {
+    description = "Smooth blue theme based on Materia Design";
+    homepage = "https://www.opencode.net/ju1464/Snowblind";
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/solarc/default.nix b/nixpkgs/pkgs/data/themes/solarc/default.nix
new file mode 100644
index 000000000000..a6ae8ce2e914
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/solarc/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub, autoconf, automake, pkg-config,
+  gtk-engine-murrine, gtk3
+}:
+
+stdenv.mkDerivation {
+  pname = "solarc-gtk-theme";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "schemar";
+    repo = "solarc-theme";
+    rev = "d1eb117325b8e5085ecaf78df2eb2413423fc643";
+    sha256 = "005b66whyxba3403yzykpnlkz0q4m154pxpb4jzcny3fggy9r70s";
+  };
+
+  nativeBuildInputs = [ autoconf automake pkg-config gtk3 ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine gtk3 ];
+
+  buildPhase = ''
+    ./autogen.sh --prefix=$out
+  '';
+
+  meta = with lib; {
+    description = "Solarized version of the Arc theme";
+    homepage = "https://github.com/schemar/solarc-theme";
+    license = licenses.gpl3;
+    maintainers = [ ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/stilo/default.nix b/nixpkgs/pkgs/data/themes/stilo/default.nix
new file mode 100644
index 000000000000..6401c0e28694
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/stilo/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, meson, ninja, sassc, gdk-pixbuf, librsvg, gtk_engines, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "stilo-themes";
+  version = "4.0";
+
+  src = fetchFromGitHub {
+    owner = "lassekongo83";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-YKEDXrOAn7pGWb0VcOx7cKHnuX120yPzqtUVnzyLrDQ=";
+  };
+
+  nativeBuildInputs = [ meson ninja sassc ];
+
+  buildInputs = [ gdk-pixbuf librsvg gtk_engines ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  meta = with lib; {
+    description = "Minimalistic GTK, gnome shell and Xfce themes";
+    homepage = "https://github.com/lassekongo83/stilo-themes";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/sweet/default.nix b/nixpkgs/pkgs/data/themes/sweet/default.nix
new file mode 100644
index 000000000000..3ffa3caf8ba8
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/sweet/default.nix
@@ -0,0 +1,51 @@
+{ lib, stdenv, fetchurl, unzip, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "sweet";
+  version = "3.0";
+
+  srcs = [
+    (fetchurl {
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Ambar-Blue.zip";
+      sha256 = "sha256-6ZrjH5L7Yox7riR+2I7vVbFoG4k7xHGyOq1OnkllyiY";
+    })
+    (fetchurl {
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Ambar.zip";
+      sha256 = "sha256-FAbf682YJCCt8NKSdFoaFLwxLDU1aCcTgNdlybZtPMo=";
+    })
+    (fetchurl {
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Dark.zip";
+      sha256 = "sha256-t6fczOnKwi4B9hSFhHQaQ533o7MFL+7HPtUJ/p2CIXM=";
+    })
+    (fetchurl {
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-mars.zip";
+      sha256 = "sha256-QGkkpUqkxGPM1DXrvToB3taajk7vK3rqibQF2M4N9i0=";
+    })
+    (fetchurl {
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet.zip";
+      sha256 = "sha256-1qVC2n7ypN1BFuSzBpbY7QzJUzF1anYNAVcMkNpGTMM";
+    })
+  ];
+
+  nativeBuildInputs = [ unzip ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes/
+    cp -a Sweet* $out/share/themes/
+    rm $out/share/themes/*/{LICENSE,README*}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Light and dark colorful Gtk3.20+ theme";
+    homepage = "https://github.com/EliverLara/Sweet";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fuzen ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/ubuntu-themes/default.nix b/nixpkgs/pkgs/data/themes/ubuntu-themes/default.nix
new file mode 100644
index 000000000000..fb23141a64eb
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/ubuntu-themes/default.nix
@@ -0,0 +1,77 @@
+{ lib, stdenv
+, fetchurl
+, fetchpatch
+, gnome-icon-theme
+, gnome
+, gtk-engine-murrine
+, gtk3
+, hicolor-icon-theme
+, humanity-icon-theme
+, python3Packages
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ubuntu-themes";
+  version = "20.10";
+
+  src = fetchurl {
+    url = "https://launchpad.net/ubuntu/+archive/primary/+files/${pname}_${version}.orig.tar.gz";
+    sha256 = "00frn2dd4kjhlmwkasrx4a820fwrg8f8hmiwh51m63bpj00vwn0r";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+    python3Packages.python
+  ];
+
+  propagatedBuildInputs = [
+    gnome-icon-theme
+    gnome.adwaita-icon-theme
+    humanity-icon-theme
+    hicolor-icon-theme
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontDropIconThemeCache = true;
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/themes
+    cp -a Ambiance $out/share/themes
+    cp -a Radiance $out/share/themes
+
+    mkdir -p $out/share/icons
+    cp -a LoginIcons        $out/share/icons
+    cp -a suru-icons        $out/share/icons
+    cp -a ubuntu-mobile     $out/share/icons
+    cp -a ubuntu-mono-dark  $out/share/icons
+    cp -a ubuntu-mono-light $out/share/icons
+
+    mv $out/share/icons/{suru-icons,suru}
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+
+    mkdir -p $out/share/icons/hicolor/48x48/apps
+    cp -a distributor-logo.png $out/share/icons/hicolor/48x48/apps
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Ubuntu monochrome and Suru icon themes, Ambiance and Radiance themes, and Ubuntu artwork";
+    homepage = "https://launchpad.net/ubuntu-themes";
+    license = with licenses; [ cc-by-sa-40 gpl3 ];
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/venta/default.nix b/nixpkgs/pkgs/data/themes/venta/default.nix
new file mode 100644
index 000000000000..1f739c660060
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/venta/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "venta";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "14ckkvyarq1xmf48fh47by5h3jnkmksj2n4y6zvx3aw7pfg2jc51";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Venta* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Gtk theme based on windows 10 style";
+    homepage = "https://www.pling.com/p/1386774/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/vertex/default.nix b/nixpkgs/pkgs/data/themes/vertex/default.nix
new file mode 100644
index 000000000000..cff886440e32
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/vertex/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "theme-vertex";
+  version = "20170128";
+
+  src = fetchFromGitHub {
+    owner = "horst3180";
+    repo = "vertex-theme";
+    rev = version;
+    sha256 = "0c9mhrs95ahz37djrv176vn41ywvj26ilwmnr1h9171giv6hid98";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  configureFlags = [ "--disable-unity" ];
+
+  postInstall = ''
+    mkdir -p $out/share/plank/themes
+    cp -r extra/*-Plank $out/share/plank/themes
+
+    mkdir -p $out/share/doc/$pname/Chrome
+    cp -r extra/Chrome/*.crx $out/share/doc/$pname/Chrome
+    cp -r extra/Firefox $out/share/doc/$pname
+    cp AUTHORS README.md $out/share/doc/$pname/
+  '';
+
+  meta = with lib; {
+    inherit (src.meta) homepage;
+    description = "Theme for GTK 3, GTK 2, Gnome-Shell, and Cinnamon";
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/vimix/default.nix b/nixpkgs/pkgs/data/themes/vimix/default.nix
new file mode 100644
index 000000000000..d92ff42f48c9
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/vimix/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gnome-shell
+, gtk-engine-murrine
+, gtk_engines
+}:
+
+stdenv.mkDerivation rec {
+  pname = "vimix-gtk-themes";
+  version = "2021-08-17";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "1pn737w99j4ij8qkgw0rrzhbcqzni73z5wnkfqgqqbhj38rafbpv";
+  };
+
+  nativeBuildInputs = [
+    gnome-shell  # needed to determine the gnome-shell version
+  ];
+
+  buildInputs = [
+    gtk_engines
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    patchShebangs .
+    mkdir -p $out/share/themes
+    name= ./install.sh --all --dest $out/share/themes
+    rm $out/share/themes/*/{AUTHORS,LICENSE}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Flat Material Design theme for GTK based desktop environments";
+    homepage = "https://github.com/vinceliuice/vimix-gtk-themes";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/whitesur/default.nix b/nixpkgs/pkgs/data/themes/whitesur/default.nix
new file mode 100644
index 000000000000..6833f473664f
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/whitesur/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, glib
+, gnome-shell
+, gnome-themes-extra
+, libxml2
+, sassc
+, util-linux
+}:
+
+stdenv.mkDerivation rec {
+  pname = "whitesur-gtk-theme";
+  version = "2021-12-28";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "0i81aickccfp8fffilhi335hj5ijz2n38yj3zw2fnbwgm667i0fc";
+  };
+
+  nativeBuildInputs = [
+    glib
+    gnome-shell
+    libxml2
+    sassc
+    util-linux
+  ];
+
+  buildInputs = [
+    gnome-themes-extra # adwaita engine for Gtk2
+  ];
+
+  postPatch = ''
+    find -name "*.sh" -print0 | while IFS= read -r -d ''' file; do
+      patchShebangs "$file"
+    done
+
+    # Do not provide `sudo`, as it is not needed in our use case of the install script
+    substituteInPlace lib-core.sh --replace '$(which sudo)' false
+
+    # Provides a dummy home directory
+    substituteInPlace lib-core.sh --replace 'MY_HOME=$(getent passwd "''${MY_USERNAME}" | cut -d: -f6)' 'MY_HOME=/tmp'
+  '';
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    ./install.sh --dest $out/share/themes --alt all --theme all
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "MacOS Big Sur like theme for Gnome desktops";
+    homepage = "https://github.com/vinceliuice/WhiteSur-gtk-theme";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/yaru-remix/default.nix b/nixpkgs/pkgs/data/themes/yaru-remix/default.nix
new file mode 100644
index 000000000000..87056583b555
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/yaru-remix/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitHub, meson, sassc, pkg-config, glib, ninja, python3, gtk3, gnome }:
+
+stdenv.mkDerivation rec {
+  pname = "yaru-remix";
+  version = "40";
+
+  src = fetchFromGitHub {
+    owner = "Muqtxdir";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0xilhw5gbxsyy80ixxgj0nw6w782lz9dsinhi24026li1xny804c";
+  };
+
+  nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
+  buildInputs = [ gtk3 gnome.gnome-themes-extra ];
+
+  dontDropIconThemeCache = true;
+
+  postPatch = "patchShebangs .";
+
+  meta = with lib; {
+    description = "Fork of the Yaru GTK theme";
+    homepage = "https://github.com/Muqtxdir/yaru-remix";
+    license = with licenses; [ cc-by-sa-40 gpl3Plus lgpl21Only lgpl3Only ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ hoppla20 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/yaru/default.nix b/nixpkgs/pkgs/data/themes/yaru/default.nix
new file mode 100644
index 000000000000..64bd3eb5eebc
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/yaru/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, sassc
+, pkg-config
+, glib
+, ninja
+, python3
+, gtk3
+, gnome
+, gtk-engine-murrine
+, humanity-icon-theme
+, hicolor-icon-theme
+}:
+
+stdenv.mkDerivation rec {
+  pname = "yaru";
+  version = "21.10.2";
+
+  src = fetchFromGitHub {
+    owner = "ubuntu";
+    repo = "yaru";
+    rev = version;
+    sha256 = "sha256-VN/jgKGM2Th+2nv91vEz47kmQiBx8xAiEVbtXwhZg6U=";
+  };
+
+  nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
+
+  buildInputs = [ gtk3 gnome.gnome-themes-extra ];
+
+  propagatedBuildInputs = [ humanity-icon-theme hicolor-icon-theme ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  dontDropIconThemeCache = true;
+
+  postPatch = "patchShebangs .";
+
+  meta = with lib; {
+    description = "Ubuntu community theme 'yaru' - default Ubuntu theme since 18.10";
+    homepage = "https://github.com/ubuntu/yaru";
+    license = with licenses; [ cc-by-sa-40 gpl3Plus lgpl21Only lgpl3Only ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ fortuneteller2k maxeaubrey ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/zuki/default.nix b/nixpkgs/pkgs/data/themes/zuki/default.nix
new file mode 100644
index 000000000000..d557e151d264
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/zuki/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, meson, ninja, sassc, gdk-pixbuf, librsvg, gtk_engines, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "zuki-themes";
+  version = "4.0";
+
+  src = fetchFromGitHub {
+    owner = "lassekongo83";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1q026wa8xgyb6f5k7pqpm5zav30dbnm3b8w59as3sh8rhfgpbf80";
+  };
+
+  nativeBuildInputs = [ meson ninja sassc ];
+
+  buildInputs = [ gdk-pixbuf librsvg gtk_engines ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  meta = with lib; {
+    description = "Themes for GTK, gnome-shell and Xfce";
+    homepage = "https://github.com/lassekongo83/zuki-themes";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}