about summary refs log tree commit diff
path: root/nixpkgs/pkgs/data
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2023-06-16 06:56:35 +0000
committerAlyssa Ross <hi@alyssa.is>2023-06-16 06:56:35 +0000
commit99fcaeccb89621dd492203ce1f2d551c06f228ed (patch)
tree41cb730ae07383004789779b0f6e11cb3f4642a3 /nixpkgs/pkgs/data
parent59c5f5ac8682acc13bb22bc29c7cf02f7d75f01f (diff)
parent75a5ebf473cd60148ba9aec0d219f72e5cf52519 (diff)
downloadnixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar
nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.gz
nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.bz2
nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.lz
nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.xz
nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.tar.zst
nixlib-99fcaeccb89621dd492203ce1f2d551c06f228ed.zip
Merge branch 'nixos-unstable' of https://github.com/NixOS/nixpkgs
Conflicts:
	nixpkgs/nixos/modules/config/console.nix
	nixpkgs/nixos/modules/services/mail/mailman.nix
	nixpkgs/nixos/modules/services/mail/public-inbox.nix
	nixpkgs/nixos/modules/services/mail/rss2email.nix
	nixpkgs/nixos/modules/services/networking/ssh/sshd.nix
	nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
	nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
	nixpkgs/pkgs/applications/window-managers/sway/default.nix
	nixpkgs/pkgs/build-support/go/module.nix
	nixpkgs/pkgs/build-support/rust/build-rust-package/default.nix
	nixpkgs/pkgs/development/interpreters/python/default.nix
	nixpkgs/pkgs/development/node-packages/overrides.nix
	nixpkgs/pkgs/development/tools/b4/default.nix
	nixpkgs/pkgs/servers/dict/dictd-db.nix
	nixpkgs/pkgs/servers/mail/public-inbox/default.nix
	nixpkgs/pkgs/tools/security/pinentry/default.nix
	nixpkgs/pkgs/tools/text/unoconv/default.nix
	nixpkgs/pkgs/top-level/all-packages.nix
Diffstat (limited to 'nixpkgs/pkgs/data')
-rw-r--r--nixpkgs/pkgs/data/documentation/execline-man-pages/default.nix9
-rw-r--r--nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix4
-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/s6-portable-utils-man-pages/default.nix9
-rw-r--r--nixpkgs/pkgs/data/documentation/scheme-manpages/default.nix10
-rw-r--r--nixpkgs/pkgs/data/documentation/std-man-pages/default.nix2
-rw-r--r--nixpkgs/pkgs/data/documentation/stdman/default.nix4
-rw-r--r--nixpkgs/pkgs/data/documentation/zeal/default.nix46
-rw-r--r--nixpkgs/pkgs/data/fonts/3270font/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/aileron/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/alice/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/alkalami/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/amiri/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/andagii/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/andika/default.nix46
-rw-r--r--nixpkgs/pkgs/data/fonts/ankacoder/condensed.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/ankacoder/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/annapurna-sil/default.nix46
-rw-r--r--nixpkgs/pkgs/data/fonts/anonymous-pro/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/apl386/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/arkpandora/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/arphic/default.nix61
-rw-r--r--nixpkgs/pkgs/data/fonts/atkinson-hyperlegible/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/aurulent-sans/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/b612/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/babelstone-han/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/baekmuk-ttf/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/bakoma-ttf/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/barlow/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/behdad-fonts/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/blackout/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/borg-sans-mono/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/bqn386/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/cabin/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/caladea/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/camingo-code/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/cardo/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/carlito/default.nix21
-rw-r--r--nixpkgs/pkgs/data/fonts/cascadia-code/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/ccsymbols/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/charis-sil/default.nix46
-rw-r--r--nixpkgs/pkgs/data/fonts/cherry/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/chunk/default.nix38
-rw-r--r--nixpkgs/pkgs/data/fonts/clearlyU/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/cm-unicode/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/cnstrokeorder/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/comfortaa/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/comic-mono/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/comic-relief/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/cooper-hewitt/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/corefonts/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/courier-prime/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/cozette/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/creep/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/crimson-pro/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/crimson/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/culmus/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/curie/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/d2coding/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/dancing-script/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/dina/default.nix50
-rw-r--r--nixpkgs/pkgs/data/fonts/dm-sans/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/dosemu-fonts/default.nix3
-rw-r--r--nixpkgs/pkgs/data/fonts/dosis/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/dotcolon-fonts/default.nix49
-rw-r--r--nixpkgs/pkgs/data/fonts/doulos-sil/default.nix46
-rw-r--r--nixpkgs/pkgs/data/fonts/eb-garamond/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/edwin/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/efont-unicode/default.nix6
-rw-r--r--nixpkgs/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/encode-sans/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/envypn-font/default.nix20
-rw-r--r--nixpkgs/pkgs/data/fonts/et-book/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/eunomia/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/ezra-sil/default.nix40
-rw-r--r--nixpkgs/pkgs/data/fonts/f1_8/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/f5_6/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/fa_1/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/fantasque-sans-mono/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/fanwood/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/ferrum/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/fira-code/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/fira-code/symbols.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/fira-go/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/fira-mono/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/fira/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/fixedsys-excelsior/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/font-awesome/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/fraunces/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/freefont-ttf/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/galatia-sil/default.nix46
-rw-r--r--nixpkgs/pkgs/data/fonts/gandom-fonts/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/garamond-libre/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/gdouros/default.nix52
-rw-r--r--nixpkgs/pkgs/data/fonts/gelasio/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/gentium-book-basic/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/gentium/default.nix44
-rw-r--r--nixpkgs/pkgs/data/fonts/glasstty-ttf/default.nix18
-rw-r--r--nixpkgs/pkgs/data/fonts/go-font/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/gohufont/default.nix8
-rw-r--r--nixpkgs/pkgs/data/fonts/google-fonts/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/goudy-bookletter-1911/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/gyre/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/hack/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/hackgen/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/hackgen/nerdfont.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/hanazono/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/hannom/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/hasklig/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/helvetica-neue-lt-std/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/hermit/default.nix21
-rw-r--r--nixpkgs/pkgs/data/fonts/hubot-sans/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/hyperscrypt/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/i-dot-ming/default.nix51
-rw-r--r--nixpkgs/pkgs/data/fonts/ia-writer-duospace/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/ibm-plex/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/inriafonts/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/intel-one-mono/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/inter/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/bin.nix3
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/comfy.nix83
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/default.nix93
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/node-composition.nix17
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/node-packages.nix2697
-rwxr-xr-xnixpkgs/pkgs/data/fonts/iosevka/update-default.sh21
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/variants.nix184
-rw-r--r--nixpkgs/pkgs/data/fonts/ipaexfont/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/ipafont/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/ir-standard-fonts/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/iwona/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/jost/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/julia-mono/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/junction/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/junicode/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/kacst/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/kawkab-mono/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/khmeros/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/knewave/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/kochi-substitute-naga10/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/kode-mono/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/kreative-square-fonts/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/lalezar-fonts/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/lao/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/last-resort/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/lato/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/league-gothic/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/league-of-moveable-type/default.nix77
-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/league-script-number-one/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/league-spartan/default.nix40
-rw-r--r--nixpkgs/pkgs/data/fonts/lexend/default.nix10
-rw-r--r--nixpkgs/pkgs/data/fonts/liberastika/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/libertine/default.nix13
-rw-r--r--nixpkgs/pkgs/data/fonts/libertinus/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/libre-baskerville/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/libre-bodoni/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/libre-franklin/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/linden-hill/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/linja-pi-pu-lukin/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/linja-sike/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/lklug-sinhala/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/lmmath/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/lmodern/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/lohit-fonts/default.nix57
-rw-r--r--nixpkgs/pkgs/data/fonts/luculent/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/lxgw-neoxihei/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/lxgw-wenkai/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/manrope/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/maple-font/default.nix72
-rw-r--r--nixpkgs/pkgs/data/fonts/marathi-cursive/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/martian-mono/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/material-design-icons/default.nix42
-rw-r--r--nixpkgs/pkgs/data/fonts/material-icons/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/material-symbols/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/medio/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/melete/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/meslo-lgs-nf/default.nix6
-rw-r--r--nixpkgs/pkgs/data/fonts/mno16/default.nix18
-rw-r--r--nixpkgs/pkgs/data/fonts/mona-sans/default.nix39
-rw-r--r--nixpkgs/pkgs/data/fonts/monocraft/default.nix41
-rw-r--r--nixpkgs/pkgs/data/fonts/mononoki/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/montserrat/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/mph-2b-damase/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/mplus-outline-fonts/default.nix59
-rw-r--r--nixpkgs/pkgs/data/fonts/mro-unicode/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/myrica/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/nacelle/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/nahid-fonts/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/nanum-gothic-coding/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/nanum/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/nasin-nanpa/default.nix42
-rw-r--r--nixpkgs/pkgs/data/fonts/national-park/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/nerdfonts/default.nix7
-rw-r--r--nixpkgs/pkgs/data/fonts/nerdfonts/shas.nix104
-rwxr-xr-xnixpkgs/pkgs/data/fonts/nerdfonts/update.sh15
-rw-r--r--nixpkgs/pkgs/data/fonts/nerdfonts/version.nix2
-rw-r--r--nixpkgs/pkgs/data/fonts/nika-fonts/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/norwester/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/noto-fonts/default.nix254
-rw-r--r--nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix14
-rw-r--r--nixpkgs/pkgs/data/fonts/office-code-pro/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/oldsindhi/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/oldstandard/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/open-dyslexic/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/open-fonts/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/open-sans/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/openmoji/default.nix6
-rw-r--r--nixpkgs/pkgs/data/fonts/orbitron/default.nix63
-rw-r--r--nixpkgs/pkgs/data/fonts/ostrich-sans/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/overpass/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/oxygenfonts/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/parastoo-fonts/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/pecita/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/penna/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/powerline-fonts/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/pretendard/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/prociono/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/profont/default.nix6
-rw-r--r--nixpkgs/pkgs/data/fonts/proggyfonts/default.nix47
-rw-r--r--nixpkgs/pkgs/data/fonts/public-sans/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/quattrocento-sans/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/quattrocento/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/raleway/default.nix50
-rw-r--r--nixpkgs/pkgs/data/fonts/recursive/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/redhat-official/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/rhodium-libre/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/roboto-serif/default.nix42
-rw-r--r--nixpkgs/pkgs/data/fonts/roboto/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/rounded-mgenplus/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/route159/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/rubik/default.nix2
-rw-r--r--nixpkgs/pkgs/data/fonts/ruwudu/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/sahel-fonts/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/samim-fonts/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/sampradaya/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/scheherazade/default.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/scientifica/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/seshat/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/shabnam-fonts/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/shrikhand/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/siji/default.nix6
-rw-r--r--nixpkgs/pkgs/data/fonts/sil-abyssinica/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/sil-padauk/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/sitelen-seli-kiwen/default.nix30
-rw-r--r--nixpkgs/pkgs/data/fonts/smiley-sans/default.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/sniglet/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/sorts-mill-goudy/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/source-code-pro/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/source-han-code-jp/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/source-han/default.nix53
-rw-r--r--nixpkgs/pkgs/data/fonts/source-sans-pro/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/source-sans/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/source-serif-pro/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/source-serif/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/spleen/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/stix-otf/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/stix-two/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/sudo/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/tai-languages/default.nix38
-rw-r--r--nixpkgs/pkgs/data/fonts/takao/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/tamsyn/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/tamzen/default.nix6
-rw-r--r--nixpkgs/pkgs/data/fonts/tenderness/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/terminus-font-ttf/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/terminus-font/default.nix9
-rw-r--r--nixpkgs/pkgs/data/fonts/tewi/default.nix8
-rw-r--r--nixpkgs/pkgs/data/fonts/tex-gyre/default.nix2
-rw-r--r--nixpkgs/pkgs/data/fonts/the-neue-black/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/theano/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/tibetan-machine/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/times-newer-roman/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/tipa/default.nix10
-rw-r--r--nixpkgs/pkgs/data/fonts/tlwg/default.nix10
-rw-r--r--nixpkgs/pkgs/data/fonts/tt2020/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/ttf-bitstream-vera/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/ttf-envy-code-r/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/ttf-tw-moe/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix17
-rw-r--r--nixpkgs/pkgs/data/fonts/u001/default.nix2
-rw-r--r--nixpkgs/pkgs/data/fonts/ubuntu-font-family/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix6
-rw-r--r--nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/undefined-medium/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/unfonts-core/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/uni-vga/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/unifont/default.nix12
-rw-r--r--nixpkgs/pkgs/data/fonts/unifont_upper/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/unscii/default.nix8
-rw-r--r--nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix5
-rw-r--r--nixpkgs/pkgs/data/fonts/vazir-code-font/default.nix23
-rwxr-xr-xnixpkgs/pkgs/data/fonts/vazir-fonts/default.nix27
-rw-r--r--nixpkgs/pkgs/data/fonts/vdrsymbols/default.nix21
-rw-r--r--nixpkgs/pkgs/data/fonts/vegur/default.nix34
-rw-r--r--nixpkgs/pkgs/data/fonts/victor-mono/default.nix29
-rw-r--r--nixpkgs/pkgs/data/fonts/vollkorn/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/weather-icons/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/whatsapp-emoji/default.nix46
-rw-r--r--nixpkgs/pkgs/data/fonts/work-sans/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/wqy-microhei/default.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/wqy-zenhei/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/xkcd-font/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/yanone-kaffeesatz/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/zilla-slab/default.nix22
-rw-r--r--nixpkgs/pkgs/data/icons/apple-cursor/default.nix43
-rw-r--r--nixpkgs/pkgs/data/icons/beauty-line-icon-theme/default.nix6
-rw-r--r--nixpkgs/pkgs/data/icons/bibata-cursors/default.nix32
-rw-r--r--nixpkgs/pkgs/data/icons/bibata-cursors/extra.nix2
-rw-r--r--nixpkgs/pkgs/data/icons/bibata-cursors/translucent.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/capitaine-cursors-themed/default.nix29
-rw-r--r--nixpkgs/pkgs/data/icons/catppuccin-cursors/default.nix66
-rw-r--r--nixpkgs/pkgs/data/icons/catppuccin-papirus-folders/default.nix54
-rw-r--r--nixpkgs/pkgs/data/icons/colloid-icon-theme/default.nix8
-rw-r--r--nixpkgs/pkgs/data/icons/comixcursors/default.nix2
-rw-r--r--nixpkgs/pkgs/data/icons/dracula-icon-theme/default.nix39
-rw-r--r--nixpkgs/pkgs/data/icons/fluent-icon-theme/default.nix63
-rw-r--r--nixpkgs/pkgs/data/icons/gnome-icon-theme/default.nix9
-rw-r--r--nixpkgs/pkgs/data/icons/hackneyed/default.nix34
-rw-r--r--nixpkgs/pkgs/data/icons/hicolor-icon-theme/default.nix1
-rw-r--r--nixpkgs/pkgs/data/icons/kora-icon-theme/default.nix5
-rw-r--r--nixpkgs/pkgs/data/icons/luna-icons/default.nix2
-rw-r--r--nixpkgs/pkgs/data/icons/nordzy-cursor-theme/default.nix12
-rw-r--r--nixpkgs/pkgs/data/icons/nordzy-icon-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix6
-rw-r--r--nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix6
-rw-r--r--nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix6
-rw-r--r--nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/papirus-nord/default.nix75
-rw-r--r--nixpkgs/pkgs/data/icons/pop-icon-theme/default.nix6
-rw-r--r--nixpkgs/pkgs/data/icons/qogir-icon-theme/default.nix8
-rw-r--r--nixpkgs/pkgs/data/icons/rose-pine/default.nix47
-rw-r--r--nixpkgs/pkgs/data/icons/simp1e-cursors/default.nix42
-rw-r--r--nixpkgs/pkgs/data/icons/super-tiny-icons/default.nix34
-rw-r--r--nixpkgs/pkgs/data/icons/tango-icon-theme/default.nix9
-rw-r--r--nixpkgs/pkgs/data/icons/tela-circle-icon-theme/default.nix20
-rw-r--r--nixpkgs/pkgs/data/icons/tela-icon-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/vanilla-dmz/default.nix28
-rw-r--r--nixpkgs/pkgs/data/icons/vimix-icon-theme/default.nix26
-rw-r--r--nixpkgs/pkgs/data/icons/volantes-cursors/default.nix32
-rw-r--r--nixpkgs/pkgs/data/icons/whitesur-icon-theme/default.nix23
-rw-r--r--nixpkgs/pkgs/data/icons/zafiro-icons/default.nix2
-rw-r--r--nixpkgs/pkgs/data/misc/cacert/default.nix16
-rwxr-xr-xnixpkgs/pkgs/data/misc/cacert/update.sh2
-rw-r--r--nixpkgs/pkgs/data/misc/clash-geoip/default.nix32
-rw-r--r--nixpkgs/pkgs/data/misc/cldr-annotations/default.nix27
-rw-r--r--nixpkgs/pkgs/data/misc/colemak-dh/default.nix8
-rw-r--r--nixpkgs/pkgs/data/misc/dbip-country-lite/default.nix36
-rw-r--r--nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix21
-rw-r--r--nixpkgs/pkgs/data/misc/dns-root-data/default.nix1
-rw-r--r--nixpkgs/pkgs/data/misc/dtv-scan-tables/default.nix48
-rw-r--r--nixpkgs/pkgs/data/misc/fedora-backgrounds/default.nix33
-rw-r--r--nixpkgs/pkgs/data/misc/fedora-backgrounds/f35-fix-xfce-path.patch26
-rw-r--r--nixpkgs/pkgs/data/misc/fedora-backgrounds/generic.nix5
-rw-r--r--nixpkgs/pkgs/data/misc/hackage/default.nix2
-rw-r--r--nixpkgs/pkgs/data/misc/hackage/pin.json8
-rw-r--r--nixpkgs/pkgs/data/misc/iana-etc/default.nix5
-rw-r--r--nixpkgs/pkgs/data/misc/libkkc-data/default.nix13
-rw-r--r--nixpkgs/pkgs/data/misc/media-player-info/default.nix45
-rw-r--r--nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/osinfo-db/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/papirus-folders/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/poppler-data/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/publicsuffix-list/default.nix28
-rw-r--r--nixpkgs/pkgs/data/misc/scowl/default.nix2
-rw-r--r--nixpkgs/pkgs/data/misc/shared-desktop-ontologies/default.nix2
-rw-r--r--nixpkgs/pkgs/data/misc/sing-geoip/default.nix61
-rw-r--r--nixpkgs/pkgs/data/misc/sing-geosite/default.nix50
-rw-r--r--nixpkgs/pkgs/data/misc/sing-geosite/main.go19
-rw-r--r--nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/tzdata/0001-Add-exe-extension-for-MS-Windows-binaries.patch15
-rw-r--r--nixpkgs/pkgs/data/misc/tzdata/default.nix46
-rw-r--r--nixpkgs/pkgs/data/misc/unicode-character-database/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/unicode-emoji/default.nix41
-rw-r--r--nixpkgs/pkgs/data/misc/unihan-database/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix6
-rw-r--r--nixpkgs/pkgs/data/misc/v2ray-geoip/default.nix73
-rwxr-xr-xnixpkgs/pkgs/data/misc/v2ray-geoip/update.sh6
-rw-r--r--nixpkgs/pkgs/data/misc/wireless-regdb/default.nix4
-rw-r--r--nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix2
-rw-r--r--nixpkgs/pkgs/data/themes/adapta-kde/default.nix5
-rw-r--r--nixpkgs/pkgs/data/themes/adi1090x-plymouth-themes/default.nix63
-rw-r--r--nixpkgs/pkgs/data/themes/adi1090x-plymouth-themes/shas.nix322
-rwxr-xr-xnixpkgs/pkgs/data/themes/adi1090x-plymouth-themes/update.sh34
-rw-r--r--nixpkgs/pkgs/data/themes/adw-gtk3/default.nix43
-rw-r--r--nixpkgs/pkgs/data/themes/adwaita-qt/default.nix28
-rw-r--r--nixpkgs/pkgs/data/themes/arc-kde/default.nix9
-rw-r--r--nixpkgs/pkgs/data/themes/arc/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/base16-schemes/default.nix29
-rw-r--r--nixpkgs/pkgs/data/themes/breath-theme/default.nix44
-rw-r--r--nixpkgs/pkgs/data/themes/catppuccin-gtk/default.nix70
-rw-r--r--nixpkgs/pkgs/data/themes/catppuccin-kde/default.nix53
-rwxr-xr-xnixpkgs/pkgs/data/themes/catppuccin-kde/install.sh263
-rw-r--r--nixpkgs/pkgs/data/themes/catppuccin-kvantum/default.nix38
-rw-r--r--nixpkgs/pkgs/data/themes/catppuccin-plymouth/default.nix43
-rw-r--r--nixpkgs/pkgs/data/themes/colloid-gtk-theme/default.nix12
-rw-r--r--nixpkgs/pkgs/data/themes/colloid-kde/default.nix2
-rw-r--r--nixpkgs/pkgs/data/themes/dracula-theme/default.nix8
-rw-r--r--nixpkgs/pkgs/data/themes/flat-remix-gnome/default.nix8
-rw-r--r--nixpkgs/pkgs/data/themes/fluent-gtk-theme/default.nix76
-rw-r--r--nixpkgs/pkgs/data/themes/graphite-gtk-theme/default.nix10
-rw-r--r--nixpkgs/pkgs/data/themes/greybird/default.nix6
-rw-r--r--nixpkgs/pkgs/data/themes/gruvbox-gtk-theme/default.nix42
-rw-r--r--nixpkgs/pkgs/data/themes/jade1/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix10
-rw-r--r--nixpkgs/pkgs/data/themes/kwin-decorations/sierra-breeze-enhanced/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/layan-gtk-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/layan-kde/default.nix2
-rw-r--r--nixpkgs/pkgs/data/themes/lightly-boehs/default.nix42
-rw-r--r--nixpkgs/pkgs/data/themes/marwaita-manjaro/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/marwaita/default.nix6
-rw-r--r--nixpkgs/pkgs/data/themes/matcha/default.nix36
-rw-r--r--nixpkgs/pkgs/data/themes/material-kwin-decoration/default.nix12
-rw-r--r--nixpkgs/pkgs/data/themes/mojave/default.nix14
-rw-r--r--nixpkgs/pkgs/data/themes/nixos-bgrt-plymouth/default.nix40
-rw-r--r--nixpkgs/pkgs/data/themes/nordic/default.nix34
-rw-r--r--nixpkgs/pkgs/data/themes/numix-solarized/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/obsidian2/default.nix30
-rw-r--r--nixpkgs/pkgs/data/themes/orchis-theme/default.nix29
-rw-r--r--nixpkgs/pkgs/data/themes/qogir-kde/default.nix2
-rw-r--r--nixpkgs/pkgs/data/themes/qogir/default.nix10
-rw-r--r--nixpkgs/pkgs/data/themes/rose-pine-gtk/default.nix25
-rw-r--r--nixpkgs/pkgs/data/themes/sweet-nova/default.nix51
-rw-r--r--nixpkgs/pkgs/data/themes/tokyo-night-gtk/default.nix38
-rw-r--r--nixpkgs/pkgs/data/themes/vimix/default.nix33
-rw-r--r--nixpkgs/pkgs/data/themes/whitesur/default.nix13
-rw-r--r--nixpkgs/pkgs/data/themes/yaru/default.nix4
433 files changed, 8361 insertions, 6331 deletions
diff --git a/nixpkgs/pkgs/data/documentation/execline-man-pages/default.nix b/nixpkgs/pkgs/data/documentation/execline-man-pages/default.nix
deleted file mode 100644
index 822bbea1aee5..000000000000
--- a/nixpkgs/pkgs/data/documentation/execline-man-pages/default.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ lib, buildManPages }:
-
-buildManPages {
-  pname = "execline-man-pages";
-  version = "2.9.0.0.1";
-  sha256 = "sha256-hT0YsuYJ3XSMYwtlwDR8PGlD8ng8XPky93rCprruHu8=";
-  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
index db177006a3dd..82aef1735a74 100644
--- a/nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix
+++ b/nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-user-docs";
-  version = "42.0";
+  version = "44.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-user-docs/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "srJ9oEEAu90vTw5bw48tBW2V+jZWcgFj9kNqMWfV6QU=";
+    sha256 = "k/MpTUP9IvmWLM9r0X/2Tq54psoGP+bB6bxY0A8046g=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/data/documentation/s6-man-pages/default.nix b/nixpkgs/pkgs/data/documentation/s6-man-pages/default.nix
deleted file mode 100644
index 44430eacbe08..000000000000
--- a/nixpkgs/pkgs/data/documentation/s6-man-pages/default.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ lib, buildManPages }:
-
-buildManPages {
-  pname = "s6-man-pages";
-  version = "2.11.1.1.1";
-  sha256 = "sha256-W1+f65+Su1ZjCtzstn/fqWyU9IlQMThd/1lOg1cbCaE=";
-  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
deleted file mode 100644
index 99dc9b891f57..000000000000
--- a/nixpkgs/pkgs/data/documentation/s6-networking-man-pages/default.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ lib, buildManPages }:
-
-buildManPages {
-  pname = "s6-networking-man-pages";
-  version = "2.5.1.1.1";
-  sha256 = "sha256-RGXOSCsl1zfiXf5pIgsex/6LWtKh7ne0R7rqHvnQB8E=";
-  description = "Port of the documentation for the s6-networking suite to mdoc";
-  maintainers = [ lib.maintainers.sternenseemann ];
-}
diff --git a/nixpkgs/pkgs/data/documentation/s6-portable-utils-man-pages/default.nix b/nixpkgs/pkgs/data/documentation/s6-portable-utils-man-pages/default.nix
deleted file mode 100644
index 6380071d7629..000000000000
--- a/nixpkgs/pkgs/data/documentation/s6-portable-utils-man-pages/default.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ lib, buildManPages }:
-
-buildManPages {
-  pname = "s6-portable-utils-man-pages";
-  version = "2.2.5.0.1";
-  sha256 = "sha256-pIh+PKqKJTkaHyYrbWEEzdGDSzEO9E+ekTovu4SVSs4=";
-  description = "Port of the documentation for the s6-portable-utils suite to mdoc";
-  maintainers = [ lib.maintainers.somasis ];
-}
diff --git a/nixpkgs/pkgs/data/documentation/scheme-manpages/default.nix b/nixpkgs/pkgs/data/documentation/scheme-manpages/default.nix
index f839ce0c6dcd..8ff9344b3f52 100644
--- a/nixpkgs/pkgs/data/documentation/scheme-manpages/default.nix
+++ b/nixpkgs/pkgs/data/documentation/scheme-manpages/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
   pname = "scheme-manpages";
-  version = "unstable-2022-07-04";
+  version = "unstable-2023-03-26";
 
   src = fetchFromGitHub {
     owner = "schemedoc";
     repo = "manpages";
-    rev = "0b95de112857b185b83141ac9324fb0e786c56df";
-    sha256 = "sha256-HWkZJd4t7gsbbSGiQ92Lav9EMBPMLXmXFT6HVfyFLSI=";
+    rev = "eac67db33b2111f19ac267585032df8b4838e6f4";
+    hash = "sha256-FBoagGHWsxZo40gOqeBUw0L+LtNAVF/q6IZ3N9QBFQs=";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/data/documentation/std-man-pages/default.nix b/nixpkgs/pkgs/data/documentation/std-man-pages/default.nix
index c9ce9c2bf764..1fd83700f85a 100644
--- a/nixpkgs/pkgs/data/documentation/std-man-pages/default.nix
+++ b/nixpkgs/pkgs/data/documentation/std-man-pages/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "GCC C++ STD manual pages";
     homepage = "https://gcc.gnu.org/";
-    license = with licenses; [ fdl12Plus ];
+    license = with licenses; [ fdl13Plus ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/data/documentation/stdman/default.nix b/nixpkgs/pkgs/data/documentation/stdman/default.nix
index c09c204c55a2..57e32d864053 100644
--- a/nixpkgs/pkgs/data/documentation/stdman/default.nix
+++ b/nixpkgs/pkgs/data/documentation/stdman/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "stdman";
-  version = "2021.12.21";
+  version = "2022.07.30";
 
   src = fetchFromGitHub {
     owner = "jeaye";
     repo = "stdman";
     rev = version;
-    sha256 = "sha256-wOMQzC5w8aDmxNxQ5HK8jMgoow1wXBfHGUwFBw2WiPA=";
+    sha256 = "sha256-ABogxVQS6p3wUV8GuB2tp7vMxe63t51dNoclEnYpa/0=";
   };
 
   outputDevdoc = "out";
diff --git a/nixpkgs/pkgs/data/documentation/zeal/default.nix b/nixpkgs/pkgs/data/documentation/zeal/default.nix
index de3d7638eb9b..36f0dda5165e 100644
--- a/nixpkgs/pkgs/data/documentation/zeal/default.nix
+++ b/nixpkgs/pkgs/data/documentation/zeal/default.nix
@@ -1,16 +1,33 @@
-{ lib, fetchFromGitHub, cmake, extra-cmake-modules, pkg-config
-, qtbase, qtimageformats, qtwebengine, qtx11extras, mkDerivation
-, libarchive, libXdmcp, libpthreadstubs, xcbutilkeysyms  }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, extra-cmake-modules
+, pkg-config
+, qtbase
+, qtimageformats
+, qtwebengine
+, qtx11extras ? null # qt5 only
+, libarchive
+, libXdmcp
+, libpthreadstubs
+, wrapQtAppsHook
+, xcbutilkeysyms
+}:
 
-mkDerivation rec {
+let
+  isQt5 = lib.versions.major qtbase.version == "5";
+
+in
+stdenv.mkDerivation rec {
   pname = "zeal";
-  version = "0.6.999";
+  version = "0.6.1.20230320";
 
   src = fetchFromGitHub {
     owner = "zealdocs";
     repo = "zeal";
-    rev = "763edca12ccd6c67e51f10891d1ced8b2510904f";
-    sha256 = "sha256-1/wQXkRWvpRia8UDvvvmzHinPG8q2Tz9Uoeegej9uC8=";
+    rev = "a617ae5e06b95cec99bae058650e55b98613916d";
+    hash = "sha256-WL2uqA0sZ5Q3lZIA9vkLVyfec/jBkfGcWb6XQ7AuM94=";
   };
 
   # we only need this if we are using a version that hasn't been released. We
@@ -20,15 +37,22 @@ mkDerivation rec {
   postPatch = ''
     sed -i CMakeLists.txt \
       -e 's@^project.*@project(Zeal VERSION ${version})@'
+  '' + lib.optionalString (!isQt5) ''
+    substituteInPlace src/app/CMakeLists.txt \
+      --replace "COMPONENTS Widgets" "COMPONENTS Widgets QmlIntegration"
   '';
 
-  nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ];
+  nativeBuildInputs = [ cmake extra-cmake-modules pkg-config wrapQtAppsHook ];
 
   buildInputs = [
-    qtbase qtimageformats qtwebengine qtx11extras
+    qtbase
+    qtimageformats
+    qtwebengine
     libarchive
-    libXdmcp libpthreadstubs xcbutilkeysyms
-  ];
+    libXdmcp
+    libpthreadstubs
+    xcbutilkeysyms
+  ] ++ lib.optionals isQt5 [ qtx11extras ];
 
   meta = with lib; {
     description = "A simple offline API documentation browser";
diff --git a/nixpkgs/pkgs/data/fonts/3270font/default.nix b/nixpkgs/pkgs/data/fonts/3270font/default.nix
index 914583d97eec..68bdd7e70d40 100644
--- a/nixpkgs/pkgs/data/fonts/3270font/default.nix
+++ b/nixpkgs/pkgs/data/fonts/3270font/default.nix
@@ -1,19 +1,28 @@
-{ lib, fetchzip }:
-let
-  version = "2.3.1";
-in
-fetchzip {
-  name = "3270font-${version}";
+{ lib, stdenvNoCC, fetchzip }:
 
-  url = "https://github.com/rbanffy/3270font/releases/download/v${version}/3270_fonts_3b8f2fb.zip";
+stdenvNoCC.mkDerivation rec {
+  pname = "3270font";
+  version = "3.0.1";
 
-  sha256 = "06n87ydn2ayfhpg8318chmnwmdk3d4mmy65fcgf8frbiv2kpqncs";
+  src = fetchzip {
+    url = "https://github.com/rbanffy/3270font/releases/download/v${version}/3270_fonts_d916271.zip";
+    sha256 = "sha256-Zi6Lp5+sqfjIaHmnaaemaw3i+hXq9mqIsK/81lTkwfM=";
+    stripRoot = false;
+  };
+
+  dontPatch = true;
+  dontConfigure = true;
+  dontBuild = true;
+  doCheck = false;
+  dontFixup = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 -t $out/share/fonts/opentype/ *.otf
+    install -Dm644 -t $out/share/fonts/truetype/ *.ttf
 
-  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
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/aileron/default.nix b/nixpkgs/pkgs/data/fonts/aileron/default.nix
index 4961a5e7449d..c52824dbe120 100644
--- a/nixpkgs/pkgs/data/fonts/aileron/default.nix
+++ b/nixpkgs/pkgs/data/fonts/aileron/default.nix
@@ -1,27 +1,32 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
 let
   majorVersion = "0";
   minorVersion = "102";
-  pname = "aileron";
 in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "aileron";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-Ht48gwJZrn0djo1yl6jHZ4+0b710FVwStiC1Zk5YXME=";
+    stripRoot = false;
+  };
 
-fetchzip {
-  name = "${pname}-font-${majorVersion}.${minorVersion}";
+  installPhase = ''
+    runHook preInstall
 
-  url = "http://dotcolon.net/DL/font/${pname}.zip";
-  sha256 = "04xnzdy9plzd2p02yq367h37m5ygx0w8cpkdv39cc3754ljlsxim";
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
 
-  postFetch = ''
-    mkdir -p $out/share/fonts/opentype/${pname}
-    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+    runHook postInstall
   '';
 
   meta = with lib; {
-    homepage = "http://dotcolon.net/font/${pname}/";
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
     description = "A helvetica font in nine weights";
     platforms = platforms.all;
-    maintainers = with maintainers; [ leenaars ];
+    maintainers = with maintainers; [ leenaars minijackson ];
     license = licenses.cc0;
   };
-}
+})
diff --git a/nixpkgs/pkgs/data/fonts/alice/default.nix b/nixpkgs/pkgs/data/fonts/alice/default.nix
new file mode 100644
index 000000000000..985ba09926f4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/alice/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchzip }:
+
+stdenv.mkDerivation (attrs: {
+  pname = "Alice";
+  version = "2.003";
+
+  outputs = [ "out" "woff2" ];
+
+  src = fetchzip {
+    url = with attrs; "https://github.com/cyrealtype/${pname}/releases/download/v${version}/${pname}-v${version}.zip";
+    stripRoot = false;
+    hash = "sha256-p+tE3DECfJyBIPyafGZ8jDYQ1lPb+iAnEwLyaUy7DW0=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/truetype fonts/ttf/*.ttf
+    install -m444 -Dt $out/share/fonts/opentype fonts/otf/*.otf
+    install -m444 -Dt $woff2/share/fonts/woff2 fonts/webfonts/*.woff2
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Open-source font by Ksenia Erulevich";
+    homepage = "https://github.com/cyrealtype/Alice";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ncfavier ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/alkalami/default.nix b/nixpkgs/pkgs/data/fonts/alkalami/default.nix
new file mode 100644
index 000000000000..eb0c3ed79262
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/alkalami/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "alkalami";
+  version = "3.000";
+
+  src = fetchzip {
+    url = "https://software.sil.org/downloads/r/alkalami/Alkalami-${version}.zip";
+    hash = "sha256-ra664VbUKc8XpULCWhLMVnc1mW4pqZvbvwuBvRQRhcY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/{doc/${pname},fonts/truetype}
+    mv *.ttf $out/share/fonts/truetype/
+    mv *.txt documentation $out/share/doc/${pname}/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://software.sil.org/alkalami/";
+    description = "A font for Arabic-based writing systems in the Kano region of Nigeria and in Niger";
+    license = licenses.ofl;
+    maintainers = [ maintainers.vbgl ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/amiri/default.nix b/nixpkgs/pkgs/data/fonts/amiri/default.nix
index 539b86c6c408..bfd7c60bf531 100644
--- a/nixpkgs/pkgs/data/fonts/amiri/default.nix
+++ b/nixpkgs/pkgs/data/fonts/amiri/default.nix
@@ -1,21 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  version = "0.117";
+stdenvNoCC.mkDerivation rec {
+  pname = "amiri";
+  version = "1.000";
 
-in fetchzip rec {
-  name = "Amiri-${version}";
-
-  url = "https://github.com/alif-type/amiri/releases/download/${version}/${name}.zip";
+  src = fetchzip {
+    url = "https://github.com/alif-type/amiri/releases/download/${version}/Amiri-${version}.zip";
+    hash = "sha256-WXxKLYIIKe01WWZrI1aLOv65wRgn7aqHl6Codf4foVw=";
+  };
 
-  sha256 = "sha256-TCdL4Am+mT7E9fHEagcR7i9kBziyJuO3r1kM+ekfvbU=";
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    rm -rf $out/otf
     mkdir -p $out/share/fonts/truetype
-    mv $out/*.ttf $out/share/fonts/truetype/
-    mkdir -p $out/share/doc/${name}
-    mv $out/{*.html,*.txt,*.md} $out/share/doc/${name}/
+    mv *.ttf $out/share/fonts/truetype/
+    mkdir -p $out/share/doc/${pname}-${version}
+    mv {*.html,*.txt,*.md} $out/share/doc/${pname}-${version}/
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/andagii/default.nix b/nixpkgs/pkgs/data/fonts/andagii/default.nix
index 6d0b5f483ec4..22b686684f98 100644
--- a/nixpkgs/pkgs/data/fonts/andagii/default.nix
+++ b/nixpkgs/pkgs/data/fonts/andagii/default.nix
@@ -1,18 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "andagii";
   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
+  src = fetchzip {
+    url = "http://www.i18nguy.com/unicode/andagii.zip";
+    curlOpts = "--user-agent 'Mozilla/5.0'";
+    hash = "sha256-U7wC55G8jIvMMyPcEiJQ700A7nkWdgWK1LM0F/wgDCg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/fonts/truetype
     cp -v ANDAGII_.TTF $out/share/fonts/truetype/andagii.ttf
+
+    runHook postInstall
   '';
-  sha256 = "0j5kf2fmyqgnf5ji6h0h79lq9n9d85hkfrr4ya8hqj4gwvc0smb2";
 
   # There are multiple claims that the font is GPL, so I include the
   # package; but I cannot find the original source, so use it on your
diff --git a/nixpkgs/pkgs/data/fonts/andika/default.nix b/nixpkgs/pkgs/data/fonts/andika/default.nix
index 02ee29a382ed..22900b4b7fcd 100644
--- a/nixpkgs/pkgs/data/fonts/andika/default.nix
+++ b/nixpkgs/pkgs/data/fonts/andika/default.nix
@@ -1,31 +1,33 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  version = "6.101";
-in
-  fetchzip rec {
-    name = "andika-${version}";
+stdenvNoCC.mkDerivation rec {
+  pname = "andika";
+  version = "6.200";
 
+  src = fetchzip {
     url = "https://software.sil.org/downloads/r/andika/Andika-${version}.zip";
+    hash = "sha256-Ge+Yq3+1IJ+mXhjw7Vtpu5DIWiMfwOdEH/S1RSzYh3A=";
+  };
 
-    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}"
-    '';
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 OFL.txt OFL-FAQ.txt README.txt FONTLOG.txt -t $out/share/doc/${pname}-${version}
 
-    sha256 = "sha256-J/Ad+fmCMOxLoo+691LE6Bgi/l3ovIfWScwwVWtqACI=";
+    runHook postInstall
+  '';
 
-    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 = ''
+  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 ];
-    };
-  }
+    '';
+    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
index 655c780129d8..676c3cf85602 100644
--- a/nixpkgs/pkgs/data/fonts/ankacoder/condensed.nix
+++ b/nixpkgs/pkgs/data/fonts/ankacoder/condensed.nix
@@ -1,17 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, 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";
+stdenvNoCC.mkDerivation rec {
+  pname = "ankacoder-condensed";
+  version = "1.100";
+
+  src = fetchzip {
+    url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/anka-coder-fonts/AnkaCoderCondensed.${version}.zip";
+    stripRoot = false;
+    hash = "sha256-NHrkV4Sb7i+DC4e4lToEYzah3pI+sKyYf2rGbhWj7iY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    unzip $downloadedFile
     mkdir -p $out/share/fonts/truetype
     cp *.ttf $out/share/fonts/truetype
-  '';
 
-  sha256 = "0i80zpr2y9368rg2i6x8jv0g7d03kdyr5h7w9yz7pjd7i9xd8439";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "Anka/Coder Condensed font";
diff --git a/nixpkgs/pkgs/data/fonts/ankacoder/default.nix b/nixpkgs/pkgs/data/fonts/ankacoder/default.nix
index fbf587c7c6ca..c363f025bfd2 100644
--- a/nixpkgs/pkgs/data/fonts/ankacoder/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ankacoder/default.nix
@@ -1,17 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, 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";
+stdenvNoCC.mkDerivation rec {
+  pname = "ankacoder";
+  version = "1.100";
+
+  src = fetchzip {
+    url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/anka-coder-fonts/AnkaCoder.${version}.zip";
+    stripRoot = false;
+    hash = "sha256-14ItaSQ/fO/WDq0O4SXGWnZgiM0kayJrWQgsKb7bsyY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    unzip $downloadedFile
     mkdir -p $out/share/fonts/truetype
     cp *.ttf $out/share/fonts/truetype
-  '';
 
-  sha256 = "1jqx9micfmiarqh9xp330gl96v3vxbwzz9cmg2vi845n9md4im85";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "Anka/Coder fonts";
diff --git a/nixpkgs/pkgs/data/fonts/annapurna-sil/default.nix b/nixpkgs/pkgs/data/fonts/annapurna-sil/default.nix
index f14602eccf24..59957bb7005d 100644
--- a/nixpkgs/pkgs/data/fonts/annapurna-sil/default.nix
+++ b/nixpkgs/pkgs/data/fonts/annapurna-sil/default.nix
@@ -1,29 +1,31 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "annapurna-sil";
   version = "1.204";
-in
-  fetchzip rec {
-    name = "annapurna-sil-${version}";
 
+  src = fetchzip {
     url = "https://software.sil.org/downloads/r/annapurna/AnnapurnaSIL-${version}.zip";
+    hash = "sha256-4ya3Iydrz5Pvol9sTDIe9ZW5k3+XQp8GB2LAnRpeiXs=";
+  };
 
-    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}"
-    '';
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 OFL.txt OFL-FAQ.txt README.txt FONTLOG.txt -t $out/share/doc/${pname}-${version}
 
-    sha256 = "sha256-kVeP9ZX8H+Wn6jzmH1UQvUKY6vJjadMTdEusS7LodFM=";
+    runHook postInstall
+  '';
 
-    meta = with lib; {
-      homepage = "https://software.sil.org/annapurna";
-      description = "Unicode-based font family with broad support for writing systems that use the Devanagari script";
-      longDescription = ''
-        Annapurna SIL is a Unicode-based font family with broad support for writing systems that use the Devanagari script. Inspired by traditional calligraphic forms, the design is intended to be highly readable, reasonably compact, and visually attractive.
-      '';
-      license = licenses.ofl;
-      platforms = platforms.all;
-      maintainers = [ maintainers.kmein ];
-    };
-  }
+  meta = with lib; {
+    homepage = "https://software.sil.org/annapurna";
+    description = "Unicode-based font family with broad support for writing systems that use the Devanagari script";
+    longDescription = ''
+      Annapurna SIL is a Unicode-based font family with broad support for writing systems that use the Devanagari script. Inspired by traditional calligraphic forms, the design is intended to be highly readable, reasonably compact, and visually attractive.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.kmein ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/anonymous-pro/default.nix b/nixpkgs/pkgs/data/fonts/anonymous-pro/default.nix
index cb6ec6d89445..f498e2780b3c 100644
--- a/nixpkgs/pkgs/data/fonts/anonymous-pro/default.nix
+++ b/nixpkgs/pkgs/data/fonts/anonymous-pro/default.nix
@@ -1,17 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "anonymouspro";
   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}"
+  src = fetchzip {
+    url = "https://www.marksimonson.com/assets/content/fonts/AnonymousPro-${lib.replaceStrings ["."] ["_"] version}.zip";
+    hash = "sha256-FhyzV4By8XKN9EyukAknzml/7lUuV6Evnt6Ht3H6TUU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 *.txt -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
   '';
-  sha256 = "05rgzag38qc77b31sm5i2vwwrxbrvwzfsqh3slv11skx36pz337f";
 
   meta = with lib; {
     homepage = "https://www.marksimonson.com/fonts/view/anonymous-pro";
diff --git a/nixpkgs/pkgs/data/fonts/apl386/default.nix b/nixpkgs/pkgs/data/fonts/apl386/default.nix
new file mode 100644
index 000000000000..15c61d41aa69
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/apl386/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation {
+  pname = "apl386";
+  version = "unstable-2022-03-07";
+
+  src = fetchFromGitHub {
+    owner = "abrudz";
+    repo = "APL386";
+    rev = "6332c9dbb588946a0e8c9d7984dd0c003eeea266";
+    hash = "sha256-oHk4e7NRgAjGtZzQmZToYz7wCZETaj7/yRwZMeeYF2M=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm444 -t $out/share/fonts/truetype *.ttf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = "https://abrudz.github.io/APL386/";
+    description = "APL385 Unicode font evolved";
+    license = lib.licenses.unlicense;
+    maintainers = with lib.maintainers; [ ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/arkpandora/default.nix b/nixpkgs/pkgs/data/fonts/arkpandora/default.nix
index 827d7b0a5a44..81a175b944b8 100644
--- a/nixpkgs/pkgs/data/fonts/arkpandora/default.nix
+++ b/nixpkgs/pkgs/data/fonts/arkpandora/default.nix
@@ -1,25 +1,29 @@
-{ fetchurl }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "arkpandora";
   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
+  src = fetchurl {
+    urls = [
+      "http://distcache.FreeBSD.org/ports-distfiles/ttf-arkpandora-${version}.tgz"
+      "ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ttf-arkpandora-${version}.tgz"
+      "http://www.users.bigpond.net.au/gavindi/ttf-arkpandora-${version}.tgz"
+    ];
+    hash = "sha256-ofyVPJjQD8w+8WgETF2UcJlfbSsKQgBsH3ob+yjvrpo=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/fonts/truetype
     cp *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
   '';
-  sha256 = "177k0fbs0787al0snkl8w68d2qkg7snnnq6qp28j9s98vaabs04k";
 
   meta = {
     description = "Font, metrically identical to Arial and Times New Roman";
+    license = lib.licenses.bitstreamVera;
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/arphic/default.nix b/nixpkgs/pkgs/data/fonts/arphic/default.nix
index 02e2a2de417b..ed55855e4347 100644
--- a/nixpkgs/pkgs/data/fonts/arphic/default.nix
+++ b/nixpkgs/pkgs/data/fonts/arphic/default.nix
@@ -1,22 +1,33 @@
-{ lib, fetchzip, mkfontscale, mkfontdir }:
+{ lib, stdenvNoCC, fetchurl, mkfontdir, mkfontscale }:
 
 let
   version = "0.2.20080216.2";
-in {
-  arphic-ukai = fetchzip {
-    name = "arphic-ukai-${version}";
+in
+{
+  arphic-ukai = stdenvNoCC.mkDerivation rec {
+    pname = "arphic-ukai";
+    inherit version;
 
-    url = "mirror://ubuntu/pool/main/f/fonts-arphic-ukai/fonts-arphic-ukai_${version}.orig.tar.bz2";
+    src = fetchurl {
+      url = "mirror://ubuntu/pool/main/f/fonts-${pname}/fonts-${pname}_${version}.orig.tar.bz2";
+      hash = "sha256-tJaNc1GfT4dH6FVI+4XSG2Zdob8bqQCnxJmXbmqK49I=";
+    };
+
+    nativeBuildInputs = [
+      mkfontscale
+      mkfontdir
+    ];
+
+    installPhase = ''
+      runHook preInstall
 
-    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
-    '';
+      mkfontdir
+      mkfontscale
 
-    sha256 = "0xi5ycm7ydzpn7cqxv1kcj9vd70nr9wn8v27hmibyjc25y2qdmzl";
+      runHook postInstall
+    '';
 
     meta = with lib; {
       description = "CJK Unicode font Kai style";
@@ -28,20 +39,30 @@ in {
     };
   };
 
-  arphic-uming = fetchzip {
-    name = "arphic-uming-${version}";
+  arphic-uming = stdenvNoCC.mkDerivation rec {
+    pname = "arphic-uming";
+    inherit version;
 
-    url = "mirror://ubuntu/pool/main/f/fonts-arphic-uming/fonts-arphic-uming_${version}.orig.tar.bz2";
+    src = fetchurl {
+      url = "mirror://ubuntu/pool/main/f/fonts-${pname}/fonts-${pname}_${version}.orig.tar.bz2";
+      hash = "sha256-48GeBOp6VltKz/bx5CSAhNLhB1LjBb991sdugIYNwds=";
+    };
+
+    nativeBuildInputs = [
+      mkfontscale
+      mkfontdir
+    ];
+
+    installPhase = ''
+      runHook preInstall
 
-    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
-    '';
+      mkfontdir
+      mkfontscale
 
-    sha256 = "16jybvj1cxamm682caj6nsm6l5c60x9mgchp1l2izrw2rvc8x38d";
+      runHook postInstall
+    '';
 
     meta = with lib; {
       description = "CJK Unicode font Ming style";
diff --git a/nixpkgs/pkgs/data/fonts/atkinson-hyperlegible/default.nix b/nixpkgs/pkgs/data/fonts/atkinson-hyperlegible/default.nix
index ef7425e12e49..e8b09cfb637c 100644
--- a/nixpkgs/pkgs/data/fonts/atkinson-hyperlegible/default.nix
+++ b/nixpkgs/pkgs/data/fonts/atkinson-hyperlegible/default.nix
@@ -1,19 +1,22 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation {
   pname = "atkinson-hyperlegible";
   version = "unstable-2021-04-29";
-in fetchFromGitHub {
-  name = "${pname}-${version}";
 
-  owner = "googlefonts";
-  repo = "atkinson-hyperlegible";
-  rev = "1cb311624b2ddf88e9e37873999d165a8cd28b46";
-  sha256 = "sha256-urSTqC3rfDRM8IMG+edwKEe7NPiTuDZph3heGHzLDks=";
+  src = fetchFromGitHub {
+    owner = "googlefonts";
+    repo = "atkinson-hyperlegible";
+    rev = "1cb311624b2ddf88e9e37873999d165a8cd28b46";
+    hash = "sha256-RN4m5gyY2OiPzRXgFVQ3pq6JdkPcMxV4fRlX2EK+gOM=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar xf $downloadedFile --strip=1
     install -Dm644 -t $out/share/fonts/opentype fonts/otf/*
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/aurulent-sans/default.nix b/nixpkgs/pkgs/data/fonts/aurulent-sans/default.nix
index 50f456373c69..f1ee19b3b157 100644
--- a/nixpkgs/pkgs/data/fonts/aurulent-sans/default.nix
+++ b/nixpkgs/pkgs/data/fonts/aurulent-sans/default.nix
@@ -1,15 +1,23 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, 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
+stdenvNoCC.mkDerivation rec {
+  pname = "aurulent-sans";
+  version = "0.1";
+
+  src = fetchFromGitHub {
+    owner = "deepfire";
+    repo = "hartke-aurulent-sans";
+    rev = "${pname}-${version}";
+    hash = "sha256-M/duhgqxXZJq5su9FrsGjZdm+wtO5B5meoDomde+GwY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.otf -t $out/share/fonts
+
+    runHook postInstall
   '';
-  sha256 = "1l60psfv9x0x9qx9vp1qnhmck7a7kks385m5ycrd3d91irz1j5li";
 
   meta = {
     description = "Aurulent Sans";
diff --git a/nixpkgs/pkgs/data/fonts/b612/default.nix b/nixpkgs/pkgs/data/fonts/b612/default.nix
index bf97ff30c6d6..b78f3a9e85bf 100644
--- a/nixpkgs/pkgs/data/fonts/b612/default.nix
+++ b/nixpkgs/pkgs/data/fonts/b612/default.nix
@@ -1,22 +1,27 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
-  version = "1.008";
+stdenvNoCC.mkDerivation rec {
   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}
+  version = "1.008";
+
+  src = fetchFromGitHub {
+    owner = "polarsys";
+    repo = "b612";
+    rev = version;
+    hash = "sha256-uyBC8UNOwztCHXhR9XZuWDwrty0eClbo0E+gI1PmjEg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    mv fonts/ttf/*.ttf $out/share/fonts/truetype
+
+    runHook postInstall
   '';
-  sha256 = "0r3lana1q9w3siv8czb3p9rrb5d9svp628yfbvvmnj7qvjrmfsiq";
 
   meta = with lib; {
-    homepage = "http://b612-font.com/";
+    homepage = "https://b612-font.com/";
     description = "Highly legible font family for use on aircraft cockpit screens";
     longDescription = ''
       B612 is the result of a research project initiated by Airbus. The font
@@ -31,8 +36,8 @@ in fetchFromGitHub {
       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 ] ;
+    '';
+    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
index e78f00a49756..9839295653d1 100644
--- a/nixpkgs/pkgs/data/fonts/babelstone-han/default.nix
+++ b/nixpkgs/pkgs/data/fonts/babelstone-han/default.nix
@@ -1,17 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation {
+  pname = "babelstone-han";
   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 = ''
+  src = fetchzip {
+    # upstream download links are unversioned, so hash changes
+    url = "https://web.archive.org/web/20200210125314/https://www.babelstone.co.uk/Fonts/Download/BabelStoneHan.zip";
+    hash = "sha256-LLhNtHu2hh5DY2XVSrLuVzzR6OtMdSSHetyA0k1IFs0=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/fonts/truetype
-    unzip $downloadedFile '*.ttf' -d $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
   '';
-  sha256 = "018isk3hbzsihzrxavgjbn485ngzvlm96npqx9y7zpkxsssslc4w";
 
   meta = with lib; {
     description = "Unicode CJK font with over 36000 Han characters";
diff --git a/nixpkgs/pkgs/data/fonts/baekmuk-ttf/default.nix b/nixpkgs/pkgs/data/fonts/baekmuk-ttf/default.nix
index 92f7401b32da..3777f69fa567 100644
--- a/nixpkgs/pkgs/data/fonts/baekmuk-ttf/default.nix
+++ b/nixpkgs/pkgs/data/fonts/baekmuk-ttf/default.nix
@@ -1,15 +1,22 @@
-{ fetchzip }:
+{ lib, stdenvNoCC, fetchurl }:
 
-fetchzip rec {
-  name = "baekmuk-ttf-2.2";
+stdenvNoCC.mkDerivation rec {
+  pname = "baekmuk-ttf";
+  version = "2.2";
+
+  src = fetchurl {
+    url = "http://kldp.net/baekmuk/release/865-${pname}-${version}.tar.gz";
+    hash = "sha256-CKt9/7VdWIfMlCzjcPXjO3VqVfu06vC5DyRAcOjVGII=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  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*
+    install -m444 -Dt $out/share/doc/${pname}-${version}  COPYRIGHT*
+
+    runHook postInstall
   '';
-  sha256 = "1jgsvack1l14q8lbcv4qhgbswi30mf045k37rl772hzcmx0r206g";
 
   meta = {
     description = "Korean font";
@@ -17,4 +24,3 @@ fetchzip rec {
     license = "BSD-like";
   };
 }
-
diff --git a/nixpkgs/pkgs/data/fonts/bakoma-ttf/default.nix b/nixpkgs/pkgs/data/fonts/bakoma-ttf/default.nix
index a8c01b41e676..1d305674e6aa 100644
--- a/nixpkgs/pkgs/data/fonts/bakoma-ttf/default.nix
+++ b/nixpkgs/pkgs/data/fonts/bakoma-ttf/default.nix
@@ -1,17 +1,23 @@
-{ fetchzip }:
+{ lib, stdenvNoCC, fetchurl }:
 
-fetchzip {
-  name = "bakoma-ttf";
+stdenvNoCC.mkDerivation rec {
+  pname = "bakoma-ttf";
+  version = "2.2";
 
-  url = "http://tarballs.nixos.org/sha256/1j1y3cq6ys30m734axc0brdm2q9n2as4h32jws15r7w5fwr991km";
+  src = fetchurl {
+    name = "${pname}.tar.bz2";
+    url = "http://tarballs.nixos.org/sha256/1j1y3cq6ys30m734axc0brdm2q9n2as4h32jws15r7w5fwr991km";
+    hash = "sha256-dYaUMneFn1yC5lIMSLQSNmFRW16AdUXGqWBobzAbPsg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar xjvf $downloadedFile --strip-components=1
     mkdir -p $out/share/fonts/truetype
     cp ttf/*.ttf $out/share/fonts/truetype
-  '';
 
-  sha256 = "0g7i723n00cqx2va05z1h6v3a2ar69gqw4hy6pjj7m0ml906rngc";
+    runHook postInstall
+  '';
 
   meta = {
     description = "TrueType versions of the Computer Modern and AMS TeX Fonts";
diff --git a/nixpkgs/pkgs/data/fonts/barlow/default.nix b/nixpkgs/pkgs/data/fonts/barlow/default.nix
index e9257260ea2c..e9bfa4dee375 100644
--- a/nixpkgs/pkgs/data/fonts/barlow/default.nix
+++ b/nixpkgs/pkgs/data/fonts/barlow/default.nix
@@ -1,21 +1,25 @@
-{ lib, fetchzip }:
-let
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "barlow";
   version = "1.422";
-in
-fetchzip rec {
-  name = "barlow-${version}";
 
-  url = "https://tribby.com/fonts/barlow/download/barlow-${version}.zip";
+  src = fetchzip {
+    url = "https://tribby.com/fonts/barlow/download/barlow-${version}.zip";
+    stripRoot = false;
+    hash = "sha256-aHAGPEgBkH41r7HR0D74OGCa7ta7Uo8Mgq4YVtYOwU8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "08ld4c3zq4d1px07lc64i7l8848zsc61ddy3654w2sh0hx5sm5ld";
+    install -Dm644 fonts/otf/*.otf -t $out/share/fonts/opentype
+    install -Dm644 fonts/ttf/*.ttf fonts/gx/*.ttf -t $out/share/fonts/truetype
+    install -Dm644 fonts/eot/*.eot -t $out/share/fonts/eot
+    install -Dm644 fonts/woff/*.woff -t $out/share/fonts/woff
+    install -Dm644 fonts/woff2/*.woff2 -t $out/share/fonts/woff2
 
-  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
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/behdad-fonts/default.nix b/nixpkgs/pkgs/data/fonts/behdad-fonts/default.nix
index be6ed005b166..143975f28db7 100644
--- a/nixpkgs/pkgs/data/fonts/behdad-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/behdad-fonts/default.nix
@@ -1,19 +1,23 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
   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
+  src = fetchFromGitHub {
+    owner = "font-store";
+    repo = "BehdadFont";
+    rev = "v${version}";
+    hash = "sha256-gKfzxo3/bCMKXl2d6SP07ahIiNrUyrk/SN5XLND2lWY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/behrad-fonts {} \;
+
+    runHook postInstall
   '';
-  sha256 = "0c57232462cv1jrfn0m2bl7jzcfkacirrdd2qimrc8iqhkz0ajfz";
 
   meta = with lib; {
     homepage = "https://github.com/font-store/BehdadFont";
diff --git a/nixpkgs/pkgs/data/fonts/blackout/default.nix b/nixpkgs/pkgs/data/fonts/blackout/default.nix
new file mode 100644
index 000000000000..44cb10b408e9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/blackout/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "blackout";
+  version = "2014-07-29";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "4864cfc1749590e9f78549c6e57116fe98480c0f";
+    hash = "sha256-UmJVmtuPQYW/w+mdnJw9Ql4R1xf/07l+/Ky1wX9WKqw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/*.ttf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "A bad-ass, unholy-mother-shut-your-mouth stencil sans-serif";
+    longDescription = ''
+      Eats holes for breakfast lunch and dinner. Inspired by filling in
+      sans-serif newspaper headlines. Continually updated with coffee and
+      music. Makes your work louder than the next person’s.
+
+      Comes in three styles: Midnight (solid), 2AM (reversed), & Sunrise
+      (stroked).
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/blackout";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/borg-sans-mono/default.nix b/nixpkgs/pkgs/data/fonts/borg-sans-mono/default.nix
index 57b0a23bf7bc..8037e5dc645f 100644
--- a/nixpkgs/pkgs/data/fonts/borg-sans-mono/default.nix
+++ b/nixpkgs/pkgs/data/fonts/borg-sans-mono/default.nix
@@ -1,19 +1,21 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation {
   pname = "borg-sans-mono";
   version = "0.2.0";
-in
-fetchzip {
-  name = "${pname}-${version}";
 
-  # https://github.com/marnen/borg-sans-mono/issues/19
-  url = "https://github.com/marnen/borg-sans-mono/files/107663/BorgSansMono.ttf.zip";
-  sha256 = "1gz4ab0smw76ih5cs2l3n92c77nv7ld5zghq42avjsfhxrc2n5ri";
+  src = fetchzip {
+    # https://github.com/marnen/borg-sans-mono/issues/19
+    url = "https://github.com/marnen/borg-sans-mono/files/107663/BorgSansMono.ttf.zip";
+    hash = "sha256-nn7TGeVm45t7QI8+eEREBTFg9aShYYKtdEYEwQwO2fQ=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/bqn386/default.nix b/nixpkgs/pkgs/data/fonts/bqn386/default.nix
new file mode 100644
index 000000000000..de1be0cc6f55
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/bqn386/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation {
+  pname = "bqn386";
+  version = "unstable-2022-05-16";
+
+  src = fetchFromGitHub {
+    owner = "dzaima";
+    repo = "BQN386";
+    rev = "81e18d1eb8cb6b66df9e311b3b63ec086d910d18";
+    hash = "sha256-f0MbrxdkEiOqod41U07BvdDFDbFCqJuGyDIcx2Y24D0=";
+  };
+
+  outputs = [ "out" "woff2" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm444 -t $out/share/fonts/truetype *.ttf
+    install -Dm444 -t $woff2/share/fonts/woff2 *.woff2
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "An APL and BQN font extending on APL386";
+    homepage = "https://dzaima.github.io/BQN386/";
+    license = lib.licenses.unlicense;
+    maintainers = with lib.maintainers; [ skykanin ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/cabin/default.nix b/nixpkgs/pkgs/data/fonts/cabin/default.nix
index e68d429db2e8..186a5359c44f 100644
--- a/nixpkgs/pkgs/data/fonts/cabin/default.nix
+++ b/nixpkgs/pkgs/data/fonts/cabin/default.nix
@@ -1,19 +1,24 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-fetchFromGitHub rec {
-  name = "cabin-1.005";
+stdenvNoCC.mkDerivation rec {
+  pname = "cabin";
+  version = "1.005";
 
-  owner = "impallari";
-  repo = "Cabin";
-  rev = "982839c790e9dc57c343972aa34c51ed3b3677fd";
+  src = fetchFromGitHub {
+    owner = "impallari";
+    repo = "Cabin";
+    rev = "982839c790e9dc57c343972aa34c51ed3b3677fd";
+    hash = "sha256-9l4QcwCot340Bq41ER68HSZGQ9h0opyzgG3DG/fVZ5s=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  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
-  '';
+    install -m444 -Dt $out/share/doc/${pname}-${version} README.md FONTLOG.txt
 
-  sha256 = "1bl7h217m695jn4rbniialfk573aa44fslp2rjxnhkicakpcm44h";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "A humanist sans with 4 weights and true italics";
diff --git a/nixpkgs/pkgs/data/fonts/caladea/default.nix b/nixpkgs/pkgs/data/fonts/caladea/default.nix
index 14a8de1b0d9e..bd00e807309a 100644
--- a/nixpkgs/pkgs/data/fonts/caladea/default.nix
+++ b/nixpkgs/pkgs/data/fonts/caladea/default.nix
@@ -1,19 +1,24 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "caladea";
   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
+  src = fetchurl {
+    url = "https://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/crosextrafonts-${version}.tar.gz";
+    hash = "sha256-xI0cL9YTycBslZw02nuDiAWeJAjSuxmEXcPtNfduTQk=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/etc/fonts/conf.d
     mkdir -p $out/share/fonts/truetype
     cp -v *.ttf $out/share/fonts/truetype
     cp -v ${./cambria-alias.conf} $out/etc/fonts/conf.d/30-cambria.conf
+
+    runHook postInstall
   '';
-  sha256 = "0kwm42ggr8kvcn3554cpmv90xzam1sdncx7x3zs3bzp88mxrnv1z";
 
   meta = with lib; {
     # This font doesn't appear to have any official web site but this
@@ -27,7 +32,7 @@ in fetchzip {
     '';
     license = licenses.asl20;
     platforms = platforms.all;
-    maintainers = [maintainers.rycee];
+    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
diff --git a/nixpkgs/pkgs/data/fonts/camingo-code/default.nix b/nixpkgs/pkgs/data/fonts/camingo-code/default.nix
index 626ff9f1c0a2..c852303021d0 100644
--- a/nixpkgs/pkgs/data/fonts/camingo-code/default.nix
+++ b/nixpkgs/pkgs/data/fonts/camingo-code/default.nix
@@ -1,19 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "camingo-code";
   version = "1.0";
-in fetchzip rec {
-  name = "camingo-code-${version}";
 
-  url = "https://github.com/chrissimpkins/codeface/releases/download/font-collection/codeface-fonts.zip";
-  postFetch = ''
-    install -Dm644 $out/camingo-code/*.ttf -t $out/share/fonts/truetype
-    install -Dm644 $out/camingo-code/*.txt -t $out/share/doc/${name}
-    shopt -s extglob dotglob
-    rm -rf $out/!(share)
-    shopt -u extglob dotglob
+  src = fetchzip {
+    url = "https://github.com/chrissimpkins/codeface/releases/download/font-collection/codeface-fonts.zip";
+    hash = "sha256-oo5pWDq6h0bmyGvfF9Bkh7WyjKX4dG8uclfIsWLhDw8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 camingo-code/*.ttf -t $out/share/fonts/truetype
+    install -Dm644 camingo-code/*.txt -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
   '';
-  sha256 = "sha256-/vDNuR034stmiCZ9jUH5DlTQJn0WccLY5treoziXOJo=";
 
   meta = with lib; {
     homepage = "https://www.myfonts.com/fonts/jan-fromm/camingo-code/";
diff --git a/nixpkgs/pkgs/data/fonts/cardo/default.nix b/nixpkgs/pkgs/data/fonts/cardo/default.nix
index 21763365de30..c862ea7ce889 100644
--- a/nixpkgs/pkgs/data/fonts/cardo/default.nix
+++ b/nixpkgs/pkgs/data/fonts/cardo/default.nix
@@ -1,20 +1,22 @@
-{ fetchzip, lib }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation {
+  pname = "cardo";
   version = "1.04";
-in
-fetchzip {
-  name = "cardo-${version}";
 
-  url = "http://scholarsfonts.net/cardo104.zip";
+  src = fetchzip {
+    url = "https://scholarsfonts.net/cardo104.zip";
+    stripRoot = false;
+    hash = "sha256-NU6/H5f0JBlVo3L3uUcl7IvNxPMXD8UQY9k5o2YA5Vo=";
+  };
 
-  hash = "sha256-eBK6+VQpreWA7jIneNXOcKFcT+cJzhoQ9XXyq93SZ8M=";
-  stripRoot = false;
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
     mkdir -p $out/share/fonts/truetype
-    mv $out/*.ttf $out/share/fonts/truetype
-    rm $out/*.pdf
+    mv *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/carlito/default.nix b/nixpkgs/pkgs/data/fonts/carlito/default.nix
index 1de2e9afc0f9..a8b77e7d91ca 100644
--- a/nixpkgs/pkgs/data/fonts/carlito/default.nix
+++ b/nixpkgs/pkgs/data/fonts/carlito/default.nix
@@ -1,22 +1,21 @@
-{ lib, fetchzip }:
+{ lib, fetchurl, stdenvNoCC }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "carlito";
   version = "20130920";
-in fetchzip {
-  name = "carlito-${version}";
 
-  url = "https://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/crosextrafonts-carlito-${version}.tar.gz";
+  src = fetchurl {
+    url = "https://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/crosextrafonts-carlito-${version}.tar.gz";
+    sha256 = "sha256-S9ErbLwyHBzxbaduLFhcklzpVqCAZ65vbGTv9sz9r1o=";
+  };
 
-  postFetch = ''
-    tar -xzvf $downloadedFile --strip-components=1
+  installPhase = ''
     mkdir -p $out/etc/fonts/conf.d
     mkdir -p $out/share/fonts/truetype
     cp -v *.ttf $out/share/fonts/truetype
     cp -v ${./calibri-alias.conf} $out/etc/fonts/conf.d/30-calibri.conf
   '';
 
-  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.
@@ -25,11 +24,11 @@ in fetchzip {
     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.
+      of the tyPoland foundry and based upon his Lato font.
     '';
     license = licenses.ofl;
     platforms = platforms.all;
-    maintainers = [maintainers.rycee];
+    maintainers = [ ];
 
     # Reduce the priority of this package. The intent is that if you
     # also install the `vista-fonts` package, then you probably will
diff --git a/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix b/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix
index 67ad8682a8e8..df1af86d5ce0 100644
--- a/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix
+++ b/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix
@@ -1,18 +1,22 @@
-{ lib, fetchzip }:
-let
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "cascadia-code";
   version = "2111.01";
-in
-fetchzip {
-  name = "cascadia-code-${version}";
 
-  url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaCode-${version}.zip";
+  src = fetchzip {
+    url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaCode-${version}.zip";
+    stripRoot = false;
+    hash = "sha256-v9Vm5X80wEvorMhIlRw3MnyuSOdBpTl9ibBPpmm1vig=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "sha256-kUVTQ/oMZztNf22sDbQBpQW0luSc5nr5sxWU5etLDec=";
+    install -Dm644 otf/static/*.otf -t $out/share/fonts/opentype
+    install -Dm644 ttf/static/*.ttf -t $out/share/fonts/truetype
 
-  postFetch = ''
-    mkdir -p $out/share/fonts/
-    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/ccsymbols/default.nix b/nixpkgs/pkgs/data/fonts/ccsymbols/default.nix
index a32d35a08852..f31dc65a8a56 100644
--- a/nixpkgs/pkgs/data/fonts/ccsymbols/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ccsymbols/default.nix
@@ -1,23 +1,24 @@
-{ lib, fetchurl, unzip }:
+{ lib, stdenvNoCC, fetchurl, unzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
   pname = "ccsymbols";
   version = "2020-04-19";
-in
 
-fetchurl rec {
-  name = "${pname}-${version}";
+  src = fetchurl {
+    url = "https://www.ctrl.blog/file/${version}_cc-symbols.zip";
+    hash = "sha256-hkARhb8T6VgGAybYkVuPuebjhuk1dwiBJ1bZMwvYpMY=";
+  };
 
-  url = "https://www.ctrl.blog/file/${version}_cc-symbols.zip";
-  sha256 = "sha256-mrNgTS6BAVJrIz9fHOjf8pkSbZtZ55UjyoL9tQ1fiA8=";
-  recursiveHash = true;
+  sourceRoot = ".";
 
   nativeBuildInputs = [ unzip ];
 
-  downloadToTemp = true;
-  postFetch = ''
-    mkdir -p "$out/share/fonts/ccsymbols"
-    unzip -d "$out/share/fonts/ccsymbols" "$downloadedFile"
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 CCSymbols.* -t $out/share/fonts/ccsymbols
+
+    runHook postInstall
   '';
 
   passthru = { inherit pname version; };
diff --git a/nixpkgs/pkgs/data/fonts/charis-sil/default.nix b/nixpkgs/pkgs/data/fonts/charis-sil/default.nix
index 3294cb711052..b4880fd218de 100644
--- a/nixpkgs/pkgs/data/fonts/charis-sil/default.nix
+++ b/nixpkgs/pkgs/data/fonts/charis-sil/default.nix
@@ -1,31 +1,33 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  version = "6.101";
-in
-  fetchzip rec {
-    name = "charis-sil-${version}";
+stdenvNoCC.mkDerivation rec {
+  pname = "charis-sil";
+  version = "6.200";
 
+  src = fetchzip {
     url = "https://software.sil.org/downloads/r/charis/CharisSIL-${version}.zip";
+    hash = "sha256-q451lec/l13Uanmr8K/C55Cr3avRvqQUkPK/ZZ1kgHo=";
+  };
 
-    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}"
-    '';
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 OFL.txt OFL-FAQ.txt README.txt FONTLOG.txt -t $out/share/doc/${pname}-${version}
 
-    sha256 = "sha256-b1ms9hJ6IPe7W6O9KgzHZvwT4/nAoLOhdydcUrwNfnU=";
+    runHook postInstall
+  '';
 
-    meta = with lib; {
-      homepage = "https://software.sil.org/charis";
-      description = "A family of highly readable fonts for broad multilingual use";
-      longDescription = ''
+  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 ];
-    };
-  }
+    '';
+    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
index 53d9149091e8..2e9577751551 100644
--- a/nixpkgs/pkgs/data/fonts/cherry/default.nix
+++ b/nixpkgs/pkgs/data/fonts/cherry/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fonttosfnt, mkfontdir }:
+{ lib, stdenv, fetchFromGitHub, xorg }:
 
 stdenv.mkDerivation rec {
   pname = "cherry";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "13zkxwp6r6kcxv4x459vwscr0n0sik4a3kcz5xnmlpvcdnbxi586";
   };
 
-  nativeBuildInputs = [ fonttosfnt mkfontdir ];
+  nativeBuildInputs = [ xorg.fonttosfnt xorg.mkfontdir ];
 
   buildPhase = ''
     patchShebangs make.sh
diff --git a/nixpkgs/pkgs/data/fonts/chunk/default.nix b/nixpkgs/pkgs/data/fonts/chunk/default.nix
new file mode 100644
index 000000000000..fec1c043bfa1
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/chunk/default.nix
@@ -0,0 +1,38 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "chunk";
+  version = "2021-03-03";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "12a243f3fb7c7a68844901023f7d95d6eaf14104";
+    hash = "sha256-NMkRvrUgy9yzOT3a1rN6Ch/p8Cr902CwL4G0w7jVm1E=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/*.ttf
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "An ultra-bold, ultra-awesome slab serif typeface";
+    longDescription = ''
+      Chunk is an ultra-bold slab serif typeface that is reminiscent of old
+      American Western woodcuts, broadsides, and newspaper headlines. Used
+      mainly for display, the fat block lettering is unreserved yet refined for
+      contemporary use.
+
+      In 2014, a new textured style was created by Tyler Finck called Chunk
+      Five Print. It contains the same glyphs as the original.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/chunk";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/clearlyU/default.nix b/nixpkgs/pkgs/data/fonts/clearlyU/default.nix
index 5c97d3b71344..9799955d05f3 100644
--- a/nixpkgs/pkgs/data/fonts/clearlyU/default.nix
+++ b/nixpkgs/pkgs/data/fonts/clearlyU/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fonttosfnt, mkfontscale, libfaketime }:
+{ lib, stdenv, fetchurl, xorg, libfaketime }:
 
 stdenv.mkDerivation rec {
   pname = "clearlyU";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1xn14jbv3m1khy7ydvad9ydkn7yygdbhjy9wm1v000jzjwr3lv21";
   };
 
-  nativeBuildInputs = [ fonttosfnt mkfontscale libfaketime ];
+  nativeBuildInputs = [ xorg.fonttosfnt xorg.mkfontscale libfaketime ];
 
   buildPhase = ''
     # convert bdf fonts to otb
diff --git a/nixpkgs/pkgs/data/fonts/cm-unicode/default.nix b/nixpkgs/pkgs/data/fonts/cm-unicode/default.nix
index 3248813c3cb0..fc59baa5f9d2 100644
--- a/nixpkgs/pkgs/data/fonts/cm-unicode/default.nix
+++ b/nixpkgs/pkgs/data/fonts/cm-unicode/default.nix
@@ -1,19 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "cm-unicode";
   version = "0.7.0";
-in fetchzip rec {
-  name = "cm-unicode-${version}";
 
-  url = "mirror://sourceforge/cm-unicode/cm-unicode/${version}/${name}-otf.tar.xz";
+  src = fetchurl {
+    url = "mirror://sourceforge/cm-unicode/cm-unicode/${version}/${pname}-${version}-otf.tar.xz";
+    hash = "sha256-VIp+vk1IYbEHW15wMrfGVOPqg1zBZDpgFx+jlypOHCg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  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
-  '';
+    install -m444 -Dt $out/share/doc/${pname}-${version}    README FontLog.txt
 
-  sha256 = "1rzz7yhqq3lljyqxbg46jfzfd09qgpgx865lijr4sgc94riy1ypn";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://cm-unicode.sourceforge.io/";
diff --git a/nixpkgs/pkgs/data/fonts/cnstrokeorder/default.nix b/nixpkgs/pkgs/data/fonts/cnstrokeorder/default.nix
index 965bf119f6e7..66803b1b63ff 100644
--- a/nixpkgs/pkgs/data/fonts/cnstrokeorder/default.nix
+++ b/nixpkgs/pkgs/data/fonts/cnstrokeorder/default.nix
@@ -1,20 +1,23 @@
-{ lib, fetchurl }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "cnstrokeorder";
   version = "0.0.4.7";
-in fetchurl {
-  name = "cnstrokeorder-${version}";
 
-  url = "http://rtega.be/chmn/CNstrokeorder-${version}.ttf";
+  src = fetchurl {
+    url = "http://rtega.be/chmn/CNstrokeorder-${version}.ttf";
+    hash = "sha256-YYtOcUvt1V0DwAs/vf9KltcmYCFJNirvwjGyOK4JpIY=";
+  };
 
-  recursiveHash = true;
-  downloadToTemp = true;
+  dontUnpack = true;
 
-  postFetch = ''
-    install -D $downloadedFile $out/share/fonts/truetype/CNstrokeorder-${version}.ttf
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "0cizgfdgbq9av5c8234mysr2q54iw9pkxrmq5ga8gv32hxhl5bx4";
+    install -D $src $out/share/fonts/truetype/CNstrokeorder-${version}.ttf
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "Chinese font that shows stroke order for HSK 1-4";
diff --git a/nixpkgs/pkgs/data/fonts/comfortaa/default.nix b/nixpkgs/pkgs/data/fonts/comfortaa/default.nix
index fc7ce56f7965..f47da9fc5306 100644
--- a/nixpkgs/pkgs/data/fonts/comfortaa/default.nix
+++ b/nixpkgs/pkgs/data/fonts/comfortaa/default.nix
@@ -1,28 +1,37 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
-  version = "2021-07-29";
-in fetchFromGitHub rec {
-  name = "comfortaa-${version}";
+stdenvNoCC.mkDerivation rec {
+  pname = "comfortaa";
+  version = "unstable-2021-07-29";
 
-  owner = "googlefonts";
-  repo = "comfortaa";
-  rev = "2a87ac6f6ea3495150bfa00d0c0fb53dd0a2f11b";
+  src = fetchFromGitHub {
+    owner = "googlefonts";
+    repo = pname;
+    rev = "2a87ac6f6ea3495150bfa00d0c0fb53dd0a2f11b";
+    postFetch = ''
+      # Remove the OTF fonts as they are not needed and cause a hash mismatch
+      rm -rf $out/fonts/{OTF,otf}
+    '';
+    hash = "sha256-4ZBRaQyYlnt9l4NgBHezuCnR3rKTJ37L41RTbGAhd0M=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
 
-  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";
+    runHook postInstall
+  '';
 
   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];
+    maintainers = [ maintainers.rycee ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/comic-mono/default.nix b/nixpkgs/pkgs/data/fonts/comic-mono/default.nix
index 0c915f21c132..fc3b8d6085be 100644
--- a/nixpkgs/pkgs/data/fonts/comic-mono/default.nix
+++ b/nixpkgs/pkgs/data/fonts/comic-mono/default.nix
@@ -1,23 +1,27 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation {
+  pname = "comic-mono-font";
   version = "2020-12-28";
-in fetchFromGitHub {
-  name = "comic-mono-font-${version}";
 
-  owner = "dtinth";
-  repo = "comic-mono-font";
-  rev = "9a96d04cdd2919964169192e7d9de5012ef66de4";
+  src = fetchFromGitHub {
+    owner = "dtinth";
+    repo = "comic-mono-font";
+    rev = "9a96d04cdd2919964169192e7d9de5012ef66de4";
+    hash = "sha256-q8NxrluWuH23FfRlntIS0MDdl3TkkGE7umcU2plS6eU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
     mkdir -p $out/share/fonts
-    tar -z -f $downloadedFile --wildcards -x \*.ttf --one-top-level=$out/share/fonts
+    cp *.ttf $out/share/fonts
 
     mkdir -p $out/etc/fonts/conf.d
     ln -s ${./comic-mono-weight.conf} $out/etc/fonts/conf.d/30-comic-mono.conf
-  '';
 
-  hash = "sha256-poMU+WfDZcsyWyFiiXKJ284X22CJlxQIzcJtApnIdAY=";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "A legible monospace font that looks like Comic Sans";
diff --git a/nixpkgs/pkgs/data/fonts/comic-relief/default.nix b/nixpkgs/pkgs/data/fonts/comic-relief/default.nix
index b5a7e8878876..c4c7648acd29 100644
--- a/nixpkgs/pkgs/data/fonts/comic-relief/default.nix
+++ b/nixpkgs/pkgs/data/fonts/comic-relief/default.nix
@@ -1,22 +1,27 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "comic-relief";
   version = "1.1";
-in fetchzip rec {
-  name = "comic-relief-${version}";
 
-  url = "https://fontlibrary.org/assets/downloads/comic-relief/45c456b6db2aaf2f7f69ac66b5ac7239/comic-relief.zip";
+  src = fetchzip {
+    url = "https://fontlibrary.org/assets/downloads/comic-relief/45c456b6db2aaf2f7f69ac66b5ac7239/comic-relief.zip";
+    stripRoot = false;
+    hash = "sha256-lvkMfaQvLMZ8F0Q5JnpmMsIAkR+XfihoHIoS4z5QEvA=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
     mkdir -p $out/etc/fonts/conf.d
-    mkdir -p $out/share/doc/${name}
+    mkdir -p $out/share/doc/${pname}-${version}
     mkdir -p $out/share/fonts/truetype
     cp -v ${./comic-sans-ms-alias.conf}     $out/etc/fonts/conf.d/30-comic-sans-ms.conf
-    unzip -j $downloadedFile \*.ttf      -d $out/share/fonts/truetype
-    unzip -j $downloadedFile FONTLOG.txt -d $out/share/doc/${name}
-  '';
+    cp *.ttf      -d $out/share/fonts/truetype
+    cp FONTLOG.txt -d $out/share/doc/${pname}-${version}
 
-  sha256 = "0dz0y7w6mq4hcmmxv6fn4mp6jkln9mzr4s96vsg68wrl5b7k9yff";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://fontlibrary.org/en/font/comic-relief";
@@ -30,7 +35,7 @@ in fetchzip rec {
     '';
     license = licenses.ofl;
     platforms = platforms.all;
-    maintainers = [maintainers.rycee];
+    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
diff --git a/nixpkgs/pkgs/data/fonts/cooper-hewitt/default.nix b/nixpkgs/pkgs/data/fonts/cooper-hewitt/default.nix
index 8783b1121738..5a3bb59c2519 100644
--- a/nixpkgs/pkgs/data/fonts/cooper-hewitt/default.nix
+++ b/nixpkgs/pkgs/data/fonts/cooper-hewitt/default.nix
@@ -1,16 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-fetchzip {
-  name = "cooper-hewitt-2014-06-09";
+stdenvNoCC.mkDerivation rec {
+  pname = "cooper-hewitt";
+  version = "unstable-2014-06-09";
 
-  url = "https://www.cooperhewitt.org/wp-content/uploads/fonts/CooperHewitt-OTF-public.zip";
+  src = fetchzip {
+    url = "https://web.archive.org/web/20221004145117/https://www.cooperhewitt.org/wp-content/uploads/fonts/CooperHewitt-OTF-public.zip";
+    hash = "sha256-bTlEXQeYNNspvnNdvQhJn6CNBrcSKYWuNWF/N6+3Vb0=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
     mkdir -p $out/share/fonts/opentype
-    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype/
-  '';
+    mv *.otf $out/share/fonts/opentype
 
-  sha256 = "01iwqmjvqkc6fmc2r0486vk06s6f51n9wxzl1pf9z48n0igj4gqd";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://www.cooperhewitt.org/open-source-at-cooper-hewitt/cooper-hewitt-the-typeface-by-chester-jenkins/";
diff --git a/nixpkgs/pkgs/data/fonts/corefonts/default.nix b/nixpkgs/pkgs/data/fonts/corefonts/default.nix
index db6ac715829f..f8ffc6a2b8e6 100644
--- a/nixpkgs/pkgs/data/fonts/corefonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/corefonts/default.nix
@@ -17,7 +17,7 @@ let
   ];
 
   eula = fetchurl {
-    url = "http://corefonts.sourceforge.net/eula.htm";
+    url = "https://corefonts.sourceforge.net/eula.htm";
     sha256 = "1aqbcnl032g2hd7iy56cs022g47scb0jxxp3mm206x1yqc90vs1c";
   };
 in
@@ -87,7 +87,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    homepage = "http://corefonts.sourceforge.net/";
+    homepage = "https://corefonts.sourceforge.net/";
     description = "Microsoft's TrueType core fonts for the Web";
     platforms = platforms.all;
     license = licenses.unfreeRedistributable;
diff --git a/nixpkgs/pkgs/data/fonts/courier-prime/default.nix b/nixpkgs/pkgs/data/fonts/courier-prime/default.nix
index 81788b322cfb..1226966d5e6c 100644
--- a/nixpkgs/pkgs/data/fonts/courier-prime/default.nix
+++ b/nixpkgs/pkgs/data/fonts/courier-prime/default.nix
@@ -1,17 +1,20 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "courier-prime";
   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
+  src = fetchzip {
+    url = "https://github.com/quoteunquoteapps/CourierPrime/archive/7f6d46a766acd9391d899090de467c53fd9c9cb0/${pname}-${version}.zip";
+    hash = "sha256-pMFZpytNtgoZrBj2Gj8SgJ0Lab8uVY5aQtcO2lFbHj4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/truetype fonts/ttf/*.ttf
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/cozette/default.nix b/nixpkgs/pkgs/data/fonts/cozette/default.nix
index 1b0b03383664..7073c6215602 100644
--- a/nixpkgs/pkgs/data/fonts/cozette/default.nix
+++ b/nixpkgs/pkgs/data/fonts/cozette/default.nix
@@ -1,21 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  version = "1.13.0";
-in
-fetchzip rec {
-  name = "Cozette-${version}";
+stdenvNoCC.mkDerivation rec {
+  pname = "cozette";
+  version = "1.19.2";
 
-  url = "https://github.com/slavfox/Cozette/releases/download/v.${version}/CozetteFonts.zip";
+  src = fetchzip {
+    url = "https://github.com/slavfox/Cozette/releases/download/v.${version}/CozetteFonts.zip";
+    hash = "sha256-+TnKUgrAafR5irS9XeXWfb1a2PfUKOXf8CAmqJbf6y4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "sha256-xp3BCYfNUxCNewg4FfzmJnKp0PARvvnViMVwT25nWdM=";
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 *.otf -t $out/share/fonts/opentype
+    install -Dm644 *.bdf -t $out/share/fonts/misc
+    install -Dm644 *.otb -t $out/share/fonts/misc
 
-  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
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/creep/default.nix b/nixpkgs/pkgs/data/fonts/creep/default.nix
index d4748544af55..d25464da813f 100644
--- a/nixpkgs/pkgs/data/fonts/creep/default.nix
+++ b/nixpkgs/pkgs/data/fonts/creep/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, libfaketime
-, fonttosfnt, mkfontscale
+, xorg
 }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "0zs21kznh1q883jfdgz74bb63i4lxlv98hj3ipp0wvsi6zw0vs8n";
   };
 
-  nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];
+  nativeBuildInputs = [ libfaketime xorg.fonttosfnt xorg.mkfontscale ];
 
   buildPhase = ''
     faketime -f "1970-01-01 00:00:01" fonttosfnt -g 2 -m 2 -o creep.otb creep.bdf
diff --git a/nixpkgs/pkgs/data/fonts/crimson-pro/default.nix b/nixpkgs/pkgs/data/fonts/crimson-pro/default.nix
new file mode 100644
index 000000000000..29066b5ec3c3
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/crimson-pro/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+  pname = "crimson-pro";
+  version = "unstable-2022-08-30";
+
+  outputs = [ "out" "woff2" ];
+
+  src = fetchFromGitHub {
+    owner = "Fonthausen";
+    repo = "CrimsonPro";
+    rev = "24e8f7bf59ec45d77c67879ad80d97e5f94c787b";
+    hash = "sha256-3zFB1AMcC7eNEVA2Mx1OE8rLN9zPzexZ3FtER9wH5ss=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m444 -Dt $out/share/fonts/truetype fonts/ttf/*.ttf
+    install -m444 -Dt $out/share/fonts/opentype fonts/otf/*.otf
+    install -m444 -Dt $woff2/share/fonts/woff2 fonts/webfonts/*.woff2
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/Fonthausen/CrimsonPro";
+    description = "A professionally produced redesign of Crimson by Jacques Le Bailly";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ncfavier ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/crimson/default.nix b/nixpkgs/pkgs/data/fonts/crimson/default.nix
index 9400ef06cf9a..1868c897bd53 100644
--- a/nixpkgs/pkgs/data/fonts/crimson/default.nix
+++ b/nixpkgs/pkgs/data/fonts/crimson/default.nix
@@ -1,25 +1,30 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "crimson";
   version = "2014.10";
-in fetchzip rec {
-  name = "crimson-${version}";
 
-  url = "https://github.com/skosch/Crimson/archive/fonts-october2014.tar.gz";
+  src = fetchFromGitHub {
+    owner = "skosch";
+    repo = "Crimson";
+    rev = "fonts-october2014";
+    hash = "sha256-Wp9L77q93TRmrAr0P4iH9gm0tqFY0X/xSsuFcd19aAE=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  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
-  '';
+    install -m444 -Dt $out/share/doc/${pname}-${version}    README.md
 
-  sha256 = "0mg65f0ydyfmb43jqr1f34njpd10w8npw15cbb7z0nxmy4nkl842";
+    runHook postInstall
+  '';
 
   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];
+    maintainers = [ maintainers.rycee ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/culmus/default.nix b/nixpkgs/pkgs/data/fonts/culmus/default.nix
index 00c472d7fe34..28a7f4385a01 100644
--- a/nixpkgs/pkgs/data/fonts/culmus/default.nix
+++ b/nixpkgs/pkgs/data/fonts/culmus/default.nix
@@ -1,12 +1,17 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "culmus";
   version = "0.133";
-in fetchzip {
-  name = "culmus-${version}";
-  url = "mirror://sourceforge/culmus/culmus/${version}/culmus-${version}.tar.gz";
-  postFetch = ''
-    tar xf $downloadedFile --strip=1
+
+  src = fetchurl {
+    url = "mirror://sourceforge/${pname}/${pname}/${version}/${pname}-${version}.tar.gz";
+    hash = "sha256-wMaHN0LQdUT2us8q1S65yzkpdNVkJ5ONwd+8g5nGTQU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/fonts/{truetype,type1}
     cp -v *.pfa $out/share/fonts/type1/
     cp -v *.afm $out/share/fonts/type1/
@@ -14,8 +19,9 @@ in fetchzip {
     cp -v *.ttf $out/share/fonts/truetype/
     cp -v *.otf $out/share/fonts/truetype/
     cp -v fonts.scale-ttf $out/share/fonts/truetype/fonts.scale
+
+    runHook postInstall
   '';
-  sha256 = "0zqqjcrqmbd4389hqz2dwymkkcxjrq9ylyriiv3gbmzl6l1ffk3g";
 
   meta = {
     description = "Culmus Hebrew fonts";
diff --git a/nixpkgs/pkgs/data/fonts/curie/default.nix b/nixpkgs/pkgs/data/fonts/curie/default.nix
index fd21d1964a21..4f3ab7eb013a 100644
--- a/nixpkgs/pkgs/data/fonts/curie/default.nix
+++ b/nixpkgs/pkgs/data/fonts/curie/default.nix
@@ -1,22 +1,23 @@
-{ lib, fetchurl }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "curie";
   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;
+  src = fetchurl {
+    url = "https://github.com/NerdyPepper/curie/releases/download/v${version}/curie-v${version}.tar.gz";
+    hash = "sha256-B89GNbOmm3lY/cRWQJEFu/5morCM/WrRQb/m6covbt8=";
+  };
 
-  recursiveHash = true;
+  sourceRoot = ".";
 
-  sha256 = "sha256-twPAzsbTveYW0rQd7FYZz5AMZgvPbNmn5c7Nfzn7B0A=";
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar xzf $downloadedFile
     mkdir -p $out/share/fonts/misc
     install *.otb $out/share/fonts/misc
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/d2coding/default.nix b/nixpkgs/pkgs/data/fonts/d2coding/default.nix
index 25d92fc0f9ee..be6f0809ed97 100644
--- a/nixpkgs/pkgs/data/fonts/d2coding/default.nix
+++ b/nixpkgs/pkgs/data/fonts/d2coding/default.nix
@@ -1,19 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  version = "1.3.2";
+stdenvNoCC.mkDerivation rec {
   pname = "d2codingfont";
+  version = "1.3.2";
+
+  src = fetchzip {
+    url = "https://github.com/naver/${pname}/releases/download/VER${version}/D2Coding-Ver${version}-20180524.zip";
+    stripRoot = false;
+    hash = "sha256-iC6iaUSVg4zt3wVFJUU4HEeswuKDOTFsAxq/0gRiOCA=";
+  };
 
-in fetchzip {
-  name = "${pname}-${version}";
-  url = "https://github.com/naver/${pname}/releases/download/VER${version}/D2Coding-Ver${version}-20180524.zip";
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*-all.ttc -d $out/share/fonts/truetype/
-  '';
+    install -Dm644 */*-all.ttc -t $out/share/fonts/truetype/
 
-  sha256 = "1812r82530wzfki7k9cm35fy6k2lvis7j6w0w8svc784949m1wwj";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "Monospace font with support for Korean and latin characters";
@@ -21,7 +24,7 @@ in fetchzip {
       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
+      Since version 1.3, D2Coding font is officially supported by the font
       creator, with symbols for Powerline.
     '';
     homepage = "https://github.com/naver/d2codingfont";
diff --git a/nixpkgs/pkgs/data/fonts/dancing-script/default.nix b/nixpkgs/pkgs/data/fonts/dancing-script/default.nix
index 5129f4bc5a5e..796069195990 100644
--- a/nixpkgs/pkgs/data/fonts/dancing-script/default.nix
+++ b/nixpkgs/pkgs/data/fonts/dancing-script/default.nix
@@ -1,19 +1,22 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation {
   pname = "dancing-script";
   version = "2.0";
-in fetchFromGitHub {
-  name = "${pname}-${version}";
 
-  owner = "impallari";
-  repo = "DancingScript";
-  rev = "f7f54bc1b8836601dae8696666bfacd306f77e34";
-  sha256 = "dfFvh8h+oMhAQL9XKMrNr07VUkdQdxAsA8+q27KWWCA=";
+  src = fetchFromGitHub {
+    owner = "impallari";
+    repo = "DancingScript";
+    rev = "f7f54bc1b8836601dae8696666bfacd306f77e34";
+    hash = "sha256-B9oAZFPH3dG/Nt5FfKfFVJYtfUKGK0AXNkQHRC7IgdU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar xf $downloadedFile --strip=1
     install -m444 -Dt $out/share/fonts/truetype fonts/ttf/*.ttf
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/dina/default.nix b/nixpkgs/pkgs/data/fonts/dina/default.nix
index 3b5d75acb503..4a0612efd3e5 100644
--- a/nixpkgs/pkgs/data/fonts/dina/default.nix
+++ b/nixpkgs/pkgs/data/fonts/dina/default.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, fetchurl, unzip
-, bdftopcf, mkfontscale, fonttosfnt
+{ lib, stdenv, fetchzip, fontforge
+, bdftopcf, xorg
 }:
 
 stdenv.mkDerivation {
@@ -8,32 +8,41 @@ stdenv.mkDerivation {
 
   outputs = [ "out" "bdf" ];
 
-  src = fetchurl {
-    url = "http://www.donationcoder.com/Software/Jibz/Dina/downloads/Dina.zip";
-    sha256 = "1kq86lbxxgik82aywwhawmj80vsbz3hfhdyhicnlv9km7yjvnl8z";
+  src = fetchzip {
+    url = "https://www.dcmembers.com/jibsen/download/61/?wpdmdl=61";
+    hash = "sha256-JK+vnOyhAbwT825S+WKbQuWgRrfZZHfyhaMQ/6ljO8s=";
+    extension = "zip";
+    stripRoot = false;
   };
 
   nativeBuildInputs =
-    [ unzip bdftopcf mkfontscale fonttosfnt ];
-
-  postPatch = ''
-    sed -i 's/microsoft-cp1252/ISO8859-1/' *.bdf
-  '';
+    [ fontforge bdftopcf xorg.mkfontscale xorg.fonttosfnt ];
 
   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"
+      local name=''${1##*/}
+      test "''${name:5:1}" = i && _it=Italic || _it=
+      case ''${name:6:3} in
+          400) _weight=Medium ;;
+          700) _weight=Bold ;;
+      esac
+      _pt=''${1%.bdf}
+      _pt=''${_pt#*-}
+      echo "Dina$_weight$_it$_pt"
     }
 
+    # Re-encode the provided BDF files from CP1252 to Unicode as fonttosfnt does
+    # not support the former.
+    # We could generate the PCF and OTB files with fontforge directly, but that
+    # results in incorrect spacing in various places.
+    for f in BDF/*.bdf; do
+      basename=''${f##*/} basename=''${basename%.*}
+      fontforge -lang=ff -c "Open(\"$f\"); Reencode(\"win\", 1); Reencode(\"unicode\"); Generate(\"$basename.bdf\")"
+      mv "$basename"-*.bdf "$basename".bdf # remove the superfluous added size suffix
+    done
+
     for f in *.bdf; do
         name=$(newName "$f")
         bdftopcf -t -o "$name.pcf" "$f"
@@ -62,9 +71,8 @@ stdenv.mkDerivation {
       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/";
+    homepage = "https://www.dcmembers.com/jibsen/download/61/";
     license = licenses.free;
-    maintainers = [ maintainers.prikhi ];
+    maintainers = with maintainers; [ prikhi ncfavier ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/dm-sans/default.nix b/nixpkgs/pkgs/data/fonts/dm-sans/default.nix
new file mode 100644
index 000000000000..c2d8f33eff69
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dm-sans/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "dm-sans";
+  version = "1.002";
+
+  src = fetchzip {
+    url = "https://github.com/googlefonts/dm-fonts/releases/download/v${version}/DeepMindSans_v${version}.zip";
+    stripRoot = false;
+    hash = "sha256-RSHHxiCac18qqF+hW5M3BbBcra4AQpNLLlUmhiWj9f8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    mv *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "A geometric sans-serif typeface";
+    homepage = "https://github.com/googlefonts/dm-fonts";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ gilice ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/dosemu-fonts/default.nix b/nixpkgs/pkgs/data/fonts/dosemu-fonts/default.nix
index 81a1b5649b36..7de0e6d06027 100644
--- a/nixpkgs/pkgs/data/fonts/dosemu-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/dosemu-fonts/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, bdftopcf, mkfontdir, mkfontscale }:
+{ lib, stdenv, fetchurl, bdftopcf, mkfontdir, mkfontscale }:
 
 stdenv.mkDerivation rec {
   pname = "dosemu-fonts";
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Various fonts from the DOSEmu project";
+    license = lib.licenses.gpl2Only;
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/dosis/default.nix b/nixpkgs/pkgs/data/fonts/dosis/default.nix
index 918996c5f644..a33f086c9bbe 100644
--- a/nixpkgs/pkgs/data/fonts/dosis/default.nix
+++ b/nixpkgs/pkgs/data/fonts/dosis/default.nix
@@ -1,19 +1,24 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-fetchFromGitHub rec {
-  name = "dosis-1.007";
+stdenvNoCC.mkDerivation rec {
+  pname = "dosis";
+  version = "1.007";
 
-  owner = "impallari";
-  repo = "Dosis";
-  rev = "12df1e13e58768f20e0d48ff15651b703f9dd9dc";
+  src = fetchFromGitHub {
+    owner = "impallari";
+    repo = "Dosis";
+    rev = "12df1e13e58768f20e0d48ff15651b703f9dd9dc";
+    hash = "sha256-rZ49uNBlI+NWkiZykpyXzOonXlbVB6Vf6a/8A56Plj4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  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
-  '';
+    install -m444 -Dt $out/share/doc/${pname}-${version} README.md FONTLOG.txt
 
-  sha256 = "0vz25w45i8flfvppymr5h83pa2n1r37da20v7691p44018fdsdny";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "A very simple, rounded, sans serif family";
diff --git a/nixpkgs/pkgs/data/fonts/dotcolon-fonts/default.nix b/nixpkgs/pkgs/data/fonts/dotcolon-fonts/default.nix
new file mode 100644
index 000000000000..fcd439ce30c7
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/dotcolon-fonts/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, symlinkJoin
+, aileron
+, vegur
+, f5_6
+, tenderness
+, medio
+, ferrum
+, seshat
+, penna
+, eunomia
+, route159
+, f1_8
+, nacelle
+, melete
+, fa_1
+}:
+
+symlinkJoin {
+  name = "dotcolon-fonts";
+
+  paths = [
+    aileron
+    vegur
+    f5_6
+    tenderness
+    medio
+    ferrum
+    seshat
+    penna
+    eunomia
+    route159
+    f1_8
+    nacelle
+    melete
+    fa_1
+  ];
+
+  meta = {
+    description = "Font Collection by Sora Sagano";
+
+    homepage = "https://dotcolon.net/";
+
+    license = with lib.licenses; [ cc0 ofl ];
+
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/doulos-sil/default.nix b/nixpkgs/pkgs/data/fonts/doulos-sil/default.nix
index f720c2cac7dc..5db5e942f6ef 100644
--- a/nixpkgs/pkgs/data/fonts/doulos-sil/default.nix
+++ b/nixpkgs/pkgs/data/fonts/doulos-sil/default.nix
@@ -1,31 +1,33 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  version = "6.101";
-in
-  fetchzip rec {
-    name = "doulos-sil-${version}";
+stdenvNoCC.mkDerivation rec {
+  pname = "doulos-sil";
+  version = "6.200";
 
+  src = fetchzip {
     url = "https://software.sil.org/downloads/r/doulos/DoulosSIL-${version}.zip";
+    hash = "sha256-kpbXJVAEQLr5HMFaE+8OgAYrMGQoetgMi0CcPn4a3Xw=";
+  };
 
-    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}"
-    '';
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 OFL.txt OFL-FAQ.txt README.txt FONTLOG.txt -t $out/share/doc/${pname}-${version}
 
-    sha256 = "sha256-vYdnudMkkWz6r8pwq98fyO0zcfFBRPmrqlmWxHCOIcc=";
+    runHook postInstall
+  '';
 
-    meta = with lib; {
-      homepage = "https://software.sil.org/doulos";
-      description = "A font that provides complete support for the International Phonetic Alphabet";
-      longDescription = ''
+  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 ];
-    };
-  }
+    '';
+    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
index 869d889ef3cc..7a57d9308cf9 100644
--- a/nixpkgs/pkgs/data/fonts/eb-garamond/default.nix
+++ b/nixpkgs/pkgs/data/fonts/eb-garamond/default.nix
@@ -1,19 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "eb-garamond";
   version = "0.016";
-in fetchzip rec {
-  name = "eb-garamond-${version}";
 
-  url = "https://bitbucket.org/georgd/eb-garamond/downloads/EBGaramond-${version}.zip";
+  src = fetchzip {
+    url = "https://bitbucket.org/georgd/eb-garamond/downloads/EBGaramond-${version}.zip";
+    hash = "sha256-P2VCLcqcMBBoTDJyRLP9vlHI+jE0EqPjPziN2MJbgEg=";
+  };
 
-  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}"
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "04jq4mpln85zzbla8ybsjw7vn9qr3r0snmk5zykrm24imq7ripv3";
+    install -Dm644 otf/*.otf                                 -t $out/share/fonts/opentype
+    install -Dm644 Changes README.markdown README.xelualatex -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "http://www.georgduffner.at/ebgaramond/";
diff --git a/nixpkgs/pkgs/data/fonts/edwin/default.nix b/nixpkgs/pkgs/data/fonts/edwin/default.nix
index 4b1688dbc55e..41926ac1b679 100644
--- a/nixpkgs/pkgs/data/fonts/edwin/default.nix
+++ b/nixpkgs/pkgs/data/fonts/edwin/default.nix
@@ -1,22 +1,21 @@
-{ lib, fetchurl }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
-  version = "0.52";
-in fetchurl {
-  name = "edwin-${version}";
+stdenvNoCC.mkDerivation rec {
+  pname = "edwin";
+  version = "0.54";
 
-  url = "https://github.com/MuseScoreFonts/Edwin/archive/refs/tags/v${version}.tar.gz";
-
-  downloadToTemp = true;
-
-  recursiveHash = true;
+  src = fetchurl {
+    url = "https://github.com/MuseScoreFonts/Edwin/archive/refs/tags/v${version}.tar.gz";
+    hash = "sha256-F6BzwnrsaELegdo6Bdju1OG+RI9zKnn4tIASR3q6zYk=";
+  };
 
-  sha256 = "sha256-e0ADK72ECl+QMvLWtFJfeHBmuEwzr9M+Kqvkd5Z2mmo=";
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar xzf $downloadedFile
     mkdir -p $out/share/fonts/opentype
-    install Edwin-${version}/*.otf $out/share/fonts/opentype
+    install *.otf $out/share/fonts/opentype
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/efont-unicode/default.nix b/nixpkgs/pkgs/data/fonts/efont-unicode/default.nix
index f4ea61cbc9eb..e45bdab7a4d8 100644
--- a/nixpkgs/pkgs/data/fonts/efont-unicode/default.nix
+++ b/nixpkgs/pkgs/data/fonts/efont-unicode/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchzip, libfaketime, xorg }:
+{ lib, stdenv, fetchurl, libfaketime, xorg }:
 
 stdenv.mkDerivation rec {
   pname = "efont-unicode";
   version = "0.4.2";
 
-  src = fetchzip {
+  src = fetchurl {
     url = "http://openlab.ring.gr.jp/efont/dist/unicode-bdf/${pname}-bdf-${version}.tar.bz2";
-    sha256 = "0bib3jgikq8s1m96imw4mlgbl5cbq1bs5sqig74s2l2cdfx3jaqc";
+    sha256 = "sha256-fT7SsYlV3dCQrf0IZfiNI1grj3ngDgr8IkWdg+f9m3M=";
   };
 
   nativeBuildInputs = with xorg;
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
index 2f7a804ad08d..256084a320fc 100644
--- a/nixpkgs/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix
@@ -1,18 +1,21 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "emacs-all-the-icons-fonts";
   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";
+  src = fetchzip {
+    url = "https://github.com/domtronn/all-the-icons.el/archive/${version}.zip";
+    hash = "sha256-70ysVxOey6NLlCwhEYhxpxO6uuarMFDpg3Efh+3bj1M=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/all-the-icons
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "0vc9bkm4pcc05llcd2c9zr3d88h3zmci0izla5wnw8hg1n0rsrii";
+    install -Dm644 fonts/*.ttf -t $out/share/fonts/all-the-icons
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "Icon fonts for emacs all-the-icons";
@@ -24,9 +27,9 @@ in fetchzip {
     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.
+      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;
diff --git a/nixpkgs/pkgs/data/fonts/encode-sans/default.nix b/nixpkgs/pkgs/data/fonts/encode-sans/default.nix
index 3fd0115ddb48..1c9fc453c7d3 100644
--- a/nixpkgs/pkgs/data/fonts/encode-sans/default.nix
+++ b/nixpkgs/pkgs/data/fonts/encode-sans/default.nix
@@ -1,17 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-fetchzip rec {
-  name = "encode-sans-1.002";
+stdenvNoCC.mkDerivation rec {
+  pname = "encode-sans";
+  version = "1.002";
 
-  url = "https://github.com/impallari/Encode-Sans/archive/11162b46892d20f55bd42a00b48cbf06b5871f75.zip";
+  src = fetchzip {
+    url = "https://github.com/impallari/Encode-Sans/archive/11162b46892d20f55bd42a00b48cbf06b5871f75.zip";
+    hash = "sha256-TPAUc5msAUgJZHibjgYaS2TOuzKFy0rje9ZQTXE6s+w=";
+  };
 
-  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}"
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "16mx894zqlwrhnp4rflgayxhxppmsj6k7haxdngajhb30rlwf08p";
+    install -Dm644 *.ttf                 -t $out/share/fonts/truetype
+    install -Dm644 README.md FONTLOG.txt -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "A versatile sans serif font family";
diff --git a/nixpkgs/pkgs/data/fonts/envypn-font/default.nix b/nixpkgs/pkgs/data/fonts/envypn-font/default.nix
index dbfb85f881fc..fc69e398e44d 100644
--- a/nixpkgs/pkgs/data/fonts/envypn-font/default.nix
+++ b/nixpkgs/pkgs/data/fonts/envypn-font/default.nix
@@ -1,32 +1,41 @@
 { lib, stdenv, fetchurl, libfaketime
-, fonttosfnt, mkfontscale
+, xorg
 }:
 
-stdenv.mkDerivation {
-  name = "envypn-font-1.7.1";
+stdenv.mkDerivation rec {
+  pname = "envypn-font";
+  version = "1.7.1";
 
   src = fetchurl {
-    url = "https://ywstd.fr/files/p/envypn-font/envypn-font-1.7.1.tar.gz";
+    url = "https://ywstd.fr/files/p/envypn-font/envypn-font-${version}.tar.gz";
     sha256 = "bda67b6bc6d5d871a4d46565d4126729dfb8a0de9611dae6c68132a7b7db1270";
   };
 
-  nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];
+  nativeBuildInputs = [ libfaketime xorg.fonttosfnt xorg.mkfontscale ];
 
   unpackPhase = ''
     tar -xzf $src --strip-components=1
   '';
 
   buildPhase = ''
+    runHook preBuild
+
     # convert pcf fonts to otb
     for i in *e.pcf.gz; do
       faketime -f "1970-01-01 00:00:01" \
       fonttosfnt -v -o "$(basename "$i" .pcf.gz)".otb "$i"
     done
+
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
+
     install -D -m 644 -t "$out/share/fonts/misc" *.otb *.pcf.gz
     mkfontdir "$out/share/fonts/misc"
+
+    runHook postInstall
   '';
 
   meta = with lib; {
@@ -36,5 +45,6 @@ stdenv.mkDerivation {
     homepage = "http://ywstd.fr/p/pj/#envypn";
     license = licenses.miros;
     platforms = platforms.all;
+    maintainers = with maintainers; [ erdnaxe ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/et-book/default.nix b/nixpkgs/pkgs/data/fonts/et-book/default.nix
index c410826b2fb5..d1b59e2cdc0f 100644
--- a/nixpkgs/pkgs/data/fonts/et-book/default.nix
+++ b/nixpkgs/pkgs/data/fonts/et-book/default.nix
@@ -1,16 +1,23 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-fetchFromGitHub rec {
-  rev = "7e8f02dadcc23ba42b491b39e5bdf16e7b383031";
-  name = "et-book-${builtins.substring 0 6 rev}";
-  owner = "edwardtufte";
-  repo = "et-book";
-  sha256 = "1bfb1l8k7fzgk2l8cikiyfn5x9m0fiwrnsbc1483p8w3qp58s5n2";
+stdenvNoCC.mkDerivation rec {
+  pname = "et-book";
+  version = "unstable-2015-10-05";
+
+  src = fetchFromGitHub {
+    owner = "edwardtufte";
+    repo = pname;
+    rev = "7e8f02dadcc23ba42b491b39e5bdf16e7b383031";
+    hash = "sha256-B6ryC9ibNop08TJC/w9LSHHwqV/81EezXsTUJFq8xpo=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar -xzf $downloadedFile
     mkdir -p $out/share/fonts/truetype
-    cp -t $out/share/fonts/truetype et-book-${rev}/source/4-ttf/*.ttf
+    cp -t $out/share/fonts/truetype source/4-ttf/*.ttf
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/eunomia/default.nix b/nixpkgs/pkgs/data/fonts/eunomia/default.nix
index 272649582c35..ea3613b5f81f 100644
--- a/nixpkgs/pkgs/data/fonts/eunomia/default.nix
+++ b/nixpkgs/pkgs/data/fonts/eunomia/default.nix
@@ -1,27 +1,32 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
 let
   majorVersion = "0";
   minorVersion = "200";
-  pname = "eunomia";
 in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "eunomia";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-Rd2EakaTWjzoEV00tHTgg/bXgJUFfPjCyQUWi7QhFG4=";
+    stripRoot = false;
+  };
 
-fetchzip {
-  name = "${pname}-font-${majorVersion}.${minorVersion}";
+  installPhase = ''
+    runHook preInstall
 
-  url = "http://dotcolon.net/DL/font/${pname}_${majorVersion}${minorVersion}.zip";
-  sha256 = "0lpmczs1d4p9dy4s0dnvv7bl5cd0f6yzyasfrkxij5s86glps38b";
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
 
-  postFetch = ''
-    mkdir -p $out/share/fonts/opentype/${pname}
-    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+    runHook postInstall
   '';
 
   meta = with lib; {
     homepage = "http://dotcolon.net/font/eunomia/";
     description = "A futuristic decorative font";
     platforms = platforms.all;
-    maintainers = with maintainers; [ leenaars ];
+    maintainers = with maintainers; [ leenaars minijackson ];
     license = licenses.ofl;
   };
-}
+})
diff --git a/nixpkgs/pkgs/data/fonts/ezra-sil/default.nix b/nixpkgs/pkgs/data/fonts/ezra-sil/default.nix
index 8489ab03562b..7b628bd4bbc0 100644
--- a/nixpkgs/pkgs/data/fonts/ezra-sil/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ezra-sil/default.nix
@@ -1,26 +1,28 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "ezra-sil";
   version = "2.51";
-in
-  fetchzip rec {
-    name = "ezra-sil-${version}";
 
+  src = fetchzip {
     url = "https://software.sil.org/downloads/r/ezra/EzraSIL-${version}.zip";
+    hash = "sha256-hGOHjvFVFLwyVkcoUz+7rQekCdn4oEOB+L16XRpthJM=";
+  };
 
-    postFetch = ''
-      mkdir -p $out/share/{doc,fonts}
-      unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
-      unzip -j $downloadedFile \*OFL-FAQ.txt \*README.txt \*FONTLOG.txt -d "$out/share/doc/${name}"
-    '';
+  installPhase = ''
+    runHook preInstall
 
-    sha256 = "sha256-1LGw/RPFeNtEvcBWFWZf8+dABvWye2RfZ/jt8rwQewM=";
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 OFL-FAQ.txt README.txt FONTLOG.txt -t $out/share/doc/${pname}-${version}
 
-    meta = with lib; {
-      homepage = "https://software.sil.org/ezra";
-      description = "Typeface fashioned after the square letter forms of the typography of the Biblia Hebraica Stuttgartensia (BHS)";
-      license = licenses.ofl;
-      platforms = platforms.all;
-      maintainers = [ maintainers.kmein ];
-    };
-  }
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://software.sil.org/ezra";
+    description = "Typeface fashioned after the square letter forms of the typography of the Biblia Hebraica Stuttgartensia (BHS)";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.kmein ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/f1_8/default.nix b/nixpkgs/pkgs/data/fonts/f1_8/default.nix
new file mode 100644
index 000000000000..93e44be17cda
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/f1_8/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+let
+  majorVersion = "1";
+  minorVersion = "101";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "f1_8";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://note.com/api/v2/attachments/download/d83b2c4ec63d7826acaa76725d261ff4";
+    hash = "sha256-pe1G8WeFAo+KYjjsNwn0JmtXFn9QugE1SeGwaqnl1F0=";
+    stripRoot = false;
+    extension = "zip";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
+    description = "A weighted decorative font";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ minijackson ];
+    license = licenses.ofl;
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/f5_6/default.nix b/nixpkgs/pkgs/data/fonts/f5_6/default.nix
index 112111faa3d7..f1e8e7698f27 100644
--- a/nixpkgs/pkgs/data/fonts/f5_6/default.nix
+++ b/nixpkgs/pkgs/data/fonts/f5_6/default.nix
@@ -1,27 +1,32 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
 let
   majorVersion = "0";
   minorVersion = "110";
-  pname = "f5_6";
 in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "f5_6";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-FeCU+mzR0iO5tixI72XUnhvpGj+WRfKyT3mhBtud3uE=";
+    stripRoot = false;
+  };
 
-fetchzip {
-  name = "${pname}-font-${majorVersion}.${minorVersion}";
+  installPhase = ''
+    runHook preInstall
 
-  url = "http://dotcolon.net/DL/font/${pname}_${majorVersion}${minorVersion}.zip";
-  sha256 = "04p6lccd26rhjbpq3ddxi5vkk3lk8lqbpnk8lakjzixp3fgdqpp4";
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
 
-  postFetch = ''
-    mkdir -p $out/share/fonts/opentype/${pname}
-    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+    runHook postInstall
   '';
 
   meta = with lib; {
-    homepage = "http://dotcolon.net/font/${pname}/";
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
     description = "A weighted decorative font";
     platforms = platforms.all;
-    maintainers = with maintainers; [ leenaars ];
+    maintainers = with maintainers; [ leenaars minijackson ];
     license = licenses.ofl;
   };
-}
+})
diff --git a/nixpkgs/pkgs/data/fonts/fa_1/default.nix b/nixpkgs/pkgs/data/fonts/fa_1/default.nix
new file mode 100644
index 000000000000..1c21bb279be6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fa_1/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "100";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "fa_1";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-BPJ+wZMYXY/yg5oEgBc5YnswA6A7w6V0gdv+cac0qdc=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
+    description = "A weighted decorative font";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ minijackson ];
+    license = licenses.ofl;
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/fantasque-sans-mono/default.nix b/nixpkgs/pkgs/data/fonts/fantasque-sans-mono/default.nix
index e8068d7faead..d4d60d95bc94 100644
--- a/nixpkgs/pkgs/data/fonts/fantasque-sans-mono/default.nix
+++ b/nixpkgs/pkgs/data/fonts/fantasque-sans-mono/default.nix
@@ -1,21 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "fantasque-sans-mono";
   version = "1.8.0";
-in
 
-fetchzip rec {
-  name = "fantasque-sans-mono-${version}";
+  src = fetchzip {
+    url = "https://github.com/belluzj/fantasque-sans/releases/download/v${version}/FantasqueSansMono-Normal.zip";
+    stripRoot = false;
+    hash = "sha256-MNXZoDPi24xXHXGVADH16a3vZmFhwX0Htz02+46hWFc=";
+  };
 
-  url = "https://github.com/belluzj/fantasque-sans/releases/download/v${version}/FantasqueSansMono-Normal.zip";
+  installPhase = ''
+    runHook preInstall
 
-  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}
-  '';
+    install -Dm644 OTF/*.otf -t $out/share/fonts/opentype
+    install -Dm644 README.md -t $out/share/doc/${pname}-${version}
 
-  sha256 = "07y2w6xzkbaj6vr95fvvnmwq1pw9jib4z02xf8937dx812yic9ni";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/belluzj/fantasque-sans";
diff --git a/nixpkgs/pkgs/data/fonts/fanwood/default.nix b/nixpkgs/pkgs/data/fonts/fanwood/default.nix
new file mode 100644
index 000000000000..669ee6ac206e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/fanwood/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "fanwood";
+  version = "2011-05-11";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "cbaaed9704e7d37d3dcdbdf0b472e9efd0e39432";
+    hash = "sha256-OroFhhb4RxPHkx+/8PtFnxs1GQVXMPiYTd+2vnRbIjg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "A serif based on the work of a famous Czech-American type designer of yesteryear";
+    longDescription = ''
+      Based on work of a famous Czech-American type designer of yesteryear. The
+      package includes roman and italic.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/fanwood";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/ferrum/default.nix b/nixpkgs/pkgs/data/fonts/ferrum/default.nix
index 3f122d22daf5..5f6459a1f6bf 100644
--- a/nixpkgs/pkgs/data/fonts/ferrum/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ferrum/default.nix
@@ -1,27 +1,32 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
 let
   majorVersion = "0";
   minorVersion = "200";
-  pname = "ferrum";
 in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "ferrum";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-NDJwgFWZgyhMkGRWlY55l2omEw6ju3e3dHCEsWNzQIc=";
+    stripRoot = false;
+  };
 
-fetchzip {
-  name = "${pname}-font-${majorVersion}.${minorVersion}";
+  installPhase = ''
+    runHook preInstall
 
-  url = "http://dotcolon.net/DL/font/${pname}.zip";
-  sha256 = "1w1b3ch7ik4264f05lxms01ls0aargvlx770a9szm682dfmizn8w";
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
 
-  postFetch = ''
-    mkdir -p $out/share/fonts/opentype/${pname}
-    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+    runHook postInstall
   '';
 
   meta = with lib; {
-    homepage = "http://dotcolon.net/font/${pname}/";
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
     description = "A decorative font";
     platforms = platforms.all;
-    maintainers = with maintainers; [ leenaars ];
+    maintainers = with maintainers; [ leenaars minijackson ];
     license = licenses.cc0;
   };
-}
+})
diff --git a/nixpkgs/pkgs/data/fonts/fira-code/default.nix b/nixpkgs/pkgs/data/fonts/fira-code/default.nix
index 8bdc411a7eb3..b0e63835156a 100644
--- a/nixpkgs/pkgs/data/fonts/fira-code/default.nix
+++ b/nixpkgs/pkgs/data/fonts/fira-code/default.nix
@@ -1,19 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "fira-code";
   version = "6.2";
-in fetchzip {
-  name = "fira-code-${version}";
 
-  url = "https://github.com/tonsky/FiraCode/releases/download/${version}/Fira_Code_v${version}.zip";
+  src = fetchzip {
+    url = "https://github.com/tonsky/FiraCode/releases/download/${version}/Fira_Code_v${version}.zip";
+    stripRoot = false;
+    hash = "sha256-UHOwZL9WpCHk6vZaqI/XfkZogKgycs5lWg1p0XdQt0A=";
+  };
 
   # 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
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "0l02ivxz3jbk0rhgaq83cqarqxr07xgp7n27l0fh8fbgxwi52djl";
+    install -Dm644 variable_ttf/*-VF.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/tonsky/FiraCode";
diff --git a/nixpkgs/pkgs/data/fonts/fira-code/symbols.nix b/nixpkgs/pkgs/data/fonts/fira-code/symbols.nix
index e226c351a333..35d51bb340c9 100644
--- a/nixpkgs/pkgs/data/fonts/fira-code/symbols.nix
+++ b/nixpkgs/pkgs/data/fonts/fira-code/symbols.nix
@@ -1,16 +1,21 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-fetchzip {
-  name = "fira-code-symbols-20160811";
+stdenvNoCC.mkDerivation {
+  pname = "fira-code-symbols";
+  version = "20160811";
 
-  url = "https://github.com/tonsky/FiraCode/files/412440/FiraCode-Regular-Symbol.zip";
+  src = fetchzip {
+    url = "https://github.com/tonsky/FiraCode/files/412440/FiraCode-Regular-Symbol.zip";
+    hash = "sha256-7y51blEn0Osf8azytK08zJgtfVX/CIWQkiOoRzYKIa4=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile -d $out/share/fonts/opentype
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "19krsp22rin74ix0i19v4bh1c965g18xkmz1n55h6n6qimisnbkm";
+    install -Dm644 *.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "FiraCode unicode ligature glyphs in private use area";
diff --git a/nixpkgs/pkgs/data/fonts/fira-go/default.nix b/nixpkgs/pkgs/data/fonts/fira-go/default.nix
index 2d5952523a60..a850d7d2e97c 100644
--- a/nixpkgs/pkgs/data/fonts/fira-go/default.nix
+++ b/nixpkgs/pkgs/data/fonts/fira-go/default.nix
@@ -1,25 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation {
   pname = "fira-go";
   version = "1.001";
-  user = "bBoxType";
-  repo = "FiraGo";
-  rev = "9882ba0851f88ab904dc237f250db1d45641f45d";
-in
-fetchzip {
-  name = "${pname}-${version}";
 
-  url = "https://github.com/${user}/${repo}/archive/${rev}.zip";
+  src = fetchzip {
+    url = "https://github.com/bBoxType/FiraGo/archive/9882ba0851f88ab904dc237f250db1d45641f45d.zip";
+    hash = "sha256-WwgPg7OLrXBjR6oHG5061RO3HeNkj2Izs6ktwIxVw9o=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
     mkdir -p $out/share/fonts/opentype
-    mv $out/Fonts/FiraGO_OTF_1001/{Roman,Italic}/*.otf \
+    mv Fonts/FiraGO_OTF_1001/{Roman,Italic}/*.otf \
       $out/share/fonts/opentype
-    rm -r $out/{Fonts,'Technical Report PDF',OFL.txt,README.md,*.pdf}
-  '';
 
-  sha256 = "sha256-MDGRba1eao/yVzSuncJ/nvCG8cpdrI4roVPI1G9qCbU=";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://bboxtype.com/typefaces/FiraGO";
diff --git a/nixpkgs/pkgs/data/fonts/fira-mono/default.nix b/nixpkgs/pkgs/data/fonts/fira-mono/default.nix
index 2cf1e7addbf6..5d059dbf88e0 100644
--- a/nixpkgs/pkgs/data/fonts/fira-mono/default.nix
+++ b/nixpkgs/pkgs/data/fonts/fira-mono/default.nix
@@ -1,17 +1,21 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let version = "4.202";
-in fetchzip {
-  name = "fira-mono-${version}";
+stdenvNoCC.mkDerivation rec {
+  pname = "fira-mono";
+  version = "4.202";
 
-  url = "https://github.com/mozilla/Fira/archive/${version}.zip";
+  src = fetchzip {
+    url = "https://github.com/mozilla/Fira/archive/${version}.zip";
+    hash = "sha256-HLReqgL0PXF5vOpwLN0GiRwnzkjGkEVEyOEV2Z4R0oQ=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile Fira-${version}/otf/FiraMono\*.otf -d $out/share/fonts/opentype
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "1ci3fxhdwabvfj4nl16pwcgqnh7s2slp8vblribk8zkpx8cbp1dj";
+    install -Dm644 otf/FiraMono*.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://mozilla.github.io/Fira/";
diff --git a/nixpkgs/pkgs/data/fonts/fira/default.nix b/nixpkgs/pkgs/data/fonts/fira/default.nix
index 039c5099b56e..4b79d14dd94e 100644
--- a/nixpkgs/pkgs/data/fonts/fira/default.nix
+++ b/nixpkgs/pkgs/data/fonts/fira/default.nix
@@ -1,21 +1,23 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "fira";
   version = "4.202";
-in fetchFromGitHub {
-  name = "fira-${version}";
 
-  owner = "mozilla";
-  repo = "Fira";
-  rev = version;
+  src = fetchFromGitHub {
+    owner = "mozilla";
+    repo = "Fira";
+    rev = version;
+    hash = "sha256-HLReqgL0PXF5vOpwLN0GiRwnzkjGkEVEyOEV2Z4R0oQ=";
+  };
 
-  postFetch = ''
-    tar xf $downloadedFile --strip=1
-    mkdir -p $out/share/fonts/opentype
-    cp otf/*.otf $out/share/fonts/opentype
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "1iwxbp7kw5kghh5nbycb05zby7p2ib61mywva3h6giv2wd4lpxnz";
+    install --mode=-x -Dt $out/share/fonts/opentype otf/*.otf
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://mozilla.github.io/Fira/";
diff --git a/nixpkgs/pkgs/data/fonts/fixedsys-excelsior/default.nix b/nixpkgs/pkgs/data/fonts/fixedsys-excelsior/default.nix
index cb9d5e73ed2a..53592152a333 100644
--- a/nixpkgs/pkgs/data/fonts/fixedsys-excelsior/default.nix
+++ b/nixpkgs/pkgs/data/fonts/fixedsys-excelsior/default.nix
@@ -1,19 +1,23 @@
-{ lib, fetchurl } :
+{ lib, stdenvNoCC, fetchurl }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "fixedsys-excelsior";
   version = "3.00";
-in fetchurl rec {
-  name = "fixedsys-excelsior-${version}";
 
-  url = "https://raw.githubusercontent.com/chrissimpkins/codeface/master/fonts/fixed-sys-excelsior/FSEX300.ttf";
+  src = fetchurl {
+    url = "https://raw.githubusercontent.com/chrissimpkins/codeface/master/fonts/fixed-sys-excelsior/FSEX300.ttf";
+    hash = "sha256-buDzVzvF4z6TthbvYoL0m8DiJ6Map1Osdu0uPz0CBW0=";
+  };
 
-  downloadToTemp = true;
-  recursiveHash = true;
-  postFetch = ''
-    install -m444 -D $downloadedFile $out/share/fonts/truetype/${name}.ttf
-  '';
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "32d6f07f1ff08c764357f8478892b2ba5ade23427af99759f34a0ba24bcd2e37";
+    install -m444 -D $src $out/share/fonts/truetype/${pname}-${version}.ttf
+
+    runHook postInstall
+  '';
 
   meta = {
     homepage = "http://www.fixedsysexcelsior.com/";
diff --git a/nixpkgs/pkgs/data/fonts/font-awesome/default.nix b/nixpkgs/pkgs/data/fonts/font-awesome/default.nix
index 973df59e408b..a6f748f2f07f 100644
--- a/nixpkgs/pkgs/data/fonts/font-awesome/default.nix
+++ b/nixpkgs/pkgs/data/fonts/font-awesome/default.nix
@@ -1,21 +1,22 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 let
-  font-awesome = { version, sha256, rev ? version }: fetchFromGitHub {
-    name = "font-awesome-${version}";
+  font-awesome = { version, hash, rev ? version }: stdenvNoCC.mkDerivation {
+    pname = "font-awesome";
+    inherit version;
 
+    src = fetchFromGitHub {
+      owner = "FortAwesome";
+      repo = "Font-Awesome";
+      inherit rev hash;
+    };
 
-    owner = "FortAwesome";
-    repo = "Font-Awesome";
-    inherit rev;
+    installPhase = ''
+      runHook preInstall
 
-    postFetch = ''
-      install -m444 -Dt $out/share/fonts/opentype $out/{fonts,otfs}/*.otf
-      shopt -s extglob dotglob
-      rm -rf $out/!(share)
-      shopt -u extglob dotglob
-    '';
+      install -m444 -Dt $out/share/fonts/opentype {fonts,otfs}/*.otf
 
-    inherit sha256;
+      runHook postInstall
+    '';
 
     meta = with lib; {
       description = "Font Awesome - OTF font";
@@ -40,14 +41,14 @@ in
   v4 = font-awesome {
     version = "4.7.0";
     rev = "v4.7.0";
-    sha256 = "sha256-qdrIwxAB+z+4PXrKrj6bBuiJY0DYQuHm2DRng5sYEck=";
+    hash = "sha256-LL9zWFC+76wH74nqKszPQf2ZDfXq8BiH6tuiK43wYHA=";
   };
   v5 = font-awesome {
     version = "5.15.3";
-    sha256 = "sha256-EDxk/yO3nMmtM/ytrAEgPYSBbep3rA3NrKkiqf3OsU0=";
+    hash = "sha256-CFXGsl70o/gXUCEKu8Wkv4EBRhrrcMIq8NpfWzcxEus=";
   };
   v6 = font-awesome {
     version = "6.1.1";
-    sha256 = "sha256-BjK1PJQFWtKDvfQ2Vh7BoOPqYucyvOG+2Pu/Kh+JpAA=";
+    hash = "sha256-rujqhKI33Pi2xugMKGoTJDkPkCDK407+Da6yNJP2yAc=";
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/fraunces/default.nix b/nixpkgs/pkgs/data/fonts/fraunces/default.nix
index d5879d6c2bc4..21bab9002bcf 100644
--- a/nixpkgs/pkgs/data/fonts/fraunces/default.nix
+++ b/nixpkgs/pkgs/data/fonts/fraunces/default.nix
@@ -1,18 +1,21 @@
-{ lib, fetchzip }:
-let
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "fraunces";
   version = "1.000";
-in
-fetchzip {
-  name = "fraunces-${version}";
 
-  url = "https://github.com/undercasetype/Fraunces/releases/download/${version}/UnderCaseType_Fraunces_${version}.zip";
+  src = fetchzip {
+    url = "https://github.com/undercasetype/Fraunces/releases/download/${version}/UnderCaseType_Fraunces_${version}.zip";
+    hash = "sha256-hu2G4Fs2I3TMEy/EBFnc88Pv3c8Mpc5rm3OwVvol7gQ=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "0qgl140qkn9p87x7pk60fd3lj206y5h0fq2xkcj2qiv3sxbqxwqb";
+    install -Dm644 */static/otf/*.otf -t $out/share/fonts/opentype
+    install -Dm644 */static/ttf/*.ttf */*.ttf -t $out/share/fonts/truetype
 
-  postFetch = ''
-    mkdir -p $out/share/fonts/
-    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/freefont-ttf/default.nix b/nixpkgs/pkgs/data/fonts/freefont-ttf/default.nix
index 5934ec3589ac..4bf50d338587 100644
--- a/nixpkgs/pkgs/data/fonts/freefont-ttf/default.nix
+++ b/nixpkgs/pkgs/data/fonts/freefont-ttf/default.nix
@@ -1,16 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-fetchzip rec {
-  name = "freefont-ttf-20120503";
+stdenvNoCC.mkDerivation rec {
+  pname = "freefont-ttf";
+  version = "20120503";
 
-  url = "mirror://gnu/freefont/${name}.zip";
+  src = fetchzip {
+    url = "mirror://gnu/freefont/freefont-ttf-${version}.zip";
+    hash = "sha256-K3kVHGcDTxQ7N7XqSdwRObriVkBoBYPKHbyYrYvm7VU=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "0h0x2hhr7kvjiycf7fv800xxwa6hcpiz54bqx06wsqc7z61iklvd";
+    mkdir -p $out/share/fonts/truetype
+    mv *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
 
   meta = {
     description = "GNU Free UCS Outline Fonts";
@@ -22,6 +28,6 @@ fetchzip rec {
     homepage = "https://www.gnu.org/software/freefont/";
     license = lib.licenses.gpl3Plus;
     platforms = lib.platforms.all;
-    maintainers = [];
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/galatia-sil/default.nix b/nixpkgs/pkgs/data/fonts/galatia-sil/default.nix
index 99ae58020053..70881399d593 100644
--- a/nixpkgs/pkgs/data/fonts/galatia-sil/default.nix
+++ b/nixpkgs/pkgs/data/fonts/galatia-sil/default.nix
@@ -1,29 +1,31 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "galatia-sil";
   version = "2.1";
-in
-  fetchzip rec {
-    name = "galatia-sil-${version}";
 
+  src = fetchzip {
     url = "https://software.sil.org/downloads/r/galatia/GalatiaSIL-${version}.zip";
+    hash = "sha256-7kXnTC5vpUOjcT40oNW6e32zFGejlWJq1J+p+5DiAos=";
+  };
 
-    postFetch = ''
-      mkdir -p $out/share/{doc,fonts}
-      unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
-      unzip -j $downloadedFile \*OFL.txt \*OFL-FAQ.txt \*FONTLOG.txt -d "$out/share/doc/${name}"
-    '';
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 $downloadedFile *.ttf -t $out/share/fonts/truetype
+    install -Dm644 $downloadedFile OFL.txt OFL-FAQ.txt FONTLOG.txt -t $out/share/doc/${pname}-${version}
 
-    sha256 = "sha256-zLL/7LMcJul2LilhEafpvm+tiYlgv1y1jj85VvG+wiI=";
+    runHook postInstall
+  '';
 
-    meta = with lib; {
-      homepage = "https://software.sil.org/galatia";
-      description = "Font designed to support Biblical Polytonic Greek";
-      longDescription = ''
-        Galatia SIL, designed to support Biblical Polytonic Greek, is a Unicode 3.1 font released under the SIL Open Font License. The font supports precomposed characters rather than decomposed characters. Thus, you must use a keyboard that outputs NFC encoding (precomposed).
-      '';
-      license = licenses.ofl;
-      platforms = platforms.all;
-      maintainers = [ maintainers.kmein ];
-    };
-  }
+  meta = with lib; {
+    homepage = "https://software.sil.org/galatia";
+    description = "Font designed to support Biblical Polytonic Greek";
+    longDescription = ''
+      Galatia SIL, designed to support Biblical Polytonic Greek, is a Unicode 3.1 font released under the SIL Open Font License. The font supports precomposed characters rather than decomposed characters. Thus, you must use a keyboard that outputs NFC encoding (precomposed).
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.kmein ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/gandom-fonts/default.nix b/nixpkgs/pkgs/data/fonts/gandom-fonts/default.nix
index 1b8b3307eb35..53ea5558c1f1 100644
--- a/nixpkgs/pkgs/data/fonts/gandom-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/gandom-fonts/default.nix
@@ -1,19 +1,23 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
   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
+  src = fetchFromGitHub {
+    owner = "rastikerdar";
+    repo = "gandom-font";
+    rev = "v${version}";
+    hash = "sha256-nez8T0TtRLyXxIIR69LrVGde5ThCvA0fLXkYLyYQRV8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/gandom-fonts {} \;
+
+    runHook postInstall
   '';
-  sha256 = "sha256-EDS3wwKwe2BIcOCxu7DxkVLCoEoTPP31k5ID51lqn3M=";
 
   meta = with lib; {
     homepage = "https://github.com/rastikerdar/gandom-font";
diff --git a/nixpkgs/pkgs/data/fonts/garamond-libre/default.nix b/nixpkgs/pkgs/data/fonts/garamond-libre/default.nix
new file mode 100644
index 000000000000..bd16afaf1895
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/garamond-libre/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "garamond-libre";
+  version = "1.4";
+
+  src = fetchzip {
+    url = "https://github.com/dbenjaminmiller/garamond-libre/releases/download/${version}/garamond-libre_${version}.zip";
+    stripRoot = false;
+    hash = "sha256-cD/JMICtb6MPIUcWs2VOTHnb/05ma0/KKtPyR4oJlIc=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/dbenjaminmiller/garamond-libre";
+    description = "Garamond Libre font family";
+    maintainers = with maintainers; [ drupol ];
+    license = licenses.x11;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/gdouros/default.nix b/nixpkgs/pkgs/data/fonts/gdouros/default.nix
index 171520e3d12f..c12e3f8e9fd3 100644
--- a/nixpkgs/pkgs/data/fonts/gdouros/default.nix
+++ b/nixpkgs/pkgs/data/fonts/gdouros/default.nix
@@ -1,32 +1,36 @@
-{ fetchzip, lib }:
+{ lib, stdenvNoCC, fetchzip }:
 
 let
   fonts = {
-    aegan     = { version = "13.00"; file = "Aegean.zip";       sha256 = "sha256-1DnbfL6bKn8Upht/ZYfKIp9kuDHq7y9E+jkt2Yhr38A="; description = "Aegean"; };
-    aegyptus  = { version = "13.00"; file = "Aegyptus.zip";     sha256 = "sha256-tObgHlhaquq6Akn/HdYKNfnKHHJP42yAT7lIn5qdCzY="; description = "Egyptian Hieroglyphs, Coptic, Meroitic"; };
-    akkadian  = { version = "13.00"; file = "Akkadian.zip";     sha256 = "sha256-iHiXfxMS9FIlrRgT23MfxzCqYJMQrKuKYDShrqB74vU="; description = "Sumero-Akkadian Cuneiform"; };
-    assyrian  = { version = "13.00"; file = "Assyrian.zip";     sha256 = "sha256-YjTQjv1Vybr14Sn9pUdbGYVf4ZIjGT+cpB1qCIg1NNQ="; description = "Neo-Assyrian in Unicode with OpenType"; };
-    eemusic   = { version = "13.00"; file = "EEMusic.zip";      sha256 = "sha256-PaYBJOV+dmRV1ehY7TwDNL9dz1jPo58I3N8lWX1Vmy8="; description = "Byzantine Musical Notation in Unicode with OpenType"; };
-    maya      = { version = "13.00"; file = "Maya%20Hieroglyphs.zip"; sha256 = "sha256-9uqGo4hweV1ydI+pEp76IqmHslWvxr87rTvziQs35bQ="; description = "Maya Hieroglyphs"; };
-    symbola   = { version = "13.00"; file = "Symbola.zip";      sha256 = "sha256-C9HmforXr/Hqopb3go+bzqRFcWPv+0rz0JZsXc3mcxw="; description = "Basic Latin, Greek, Cyrillic and many Symbol blocks of Unicode"; };
-    textfonts = { version = "13.00"; file = "Textfonts.zip";    sha256 = "sha256-1bDi5mwrT2I8gx6QdhnWjXATFdNAU9nt77BiFIci6C8="; description = "Aroania, Anaktoria, Alexander, Avdira and Asea"; };
-    unidings  = { version = "13.00"; file = "Unidings.zip";     sha256 = "sha256-6lSkDb603XIrBGy4fZhY7xYDd3x0qA0PRQOlQ9Roig0="; description = "Glyphs and Icons for blocks of The Unicode Standard"; };
+    aegan     = { version = "13.00"; file = "Aegean.zip";       hash = "sha256-3HmCqCMZLN6zF1N/EirQOPnHKTGHoc4aHKoZxFYTB34="; description = "Aegean"; };
+    aegyptus  = { version = "13.00"; file = "Aegyptus.zip";     hash = "sha256-SSAK707xhpsUTq8tSBcrzNGunCYad58amtCqAWuevnY="; description = "Egyptian Hieroglyphs, Coptic, Meroitic"; };
+    akkadian  = { version = "13.00"; file = "Akkadian.zip";     hash = "sha256-wXiDYyfujAs6fklOCqXq7Ms7wP5RbPlpNVwkUy7CV4k="; description = "Sumero-Akkadian Cuneiform"; };
+    assyrian  = { version = "13.00"; file = "Assyrian.zip";     hash = "sha256-CZj1sc89OexQ0INb7pbEu5GfE/w2E5JmhjT8cosoLSg="; description = "Neo-Assyrian in Unicode with OpenType"; };
+    eemusic   = { version = "13.00"; file = "EEMusic.zip";      hash = "sha256-LxOcQOPEImw0wosxJotbOJRbe0qlK5dR+kazuhm99Kg="; description = "Byzantine Musical Notation in Unicode with OpenType"; };
+    maya      = { version = "13.00"; file = "Maya%20Hieroglyphs.zip"; hash = "sha256-PAwF1lGqm6XVf4NQCA8AFLGU40N0Xsn5Q8x9ikHJDhY="; description = "Maya Hieroglyphs"; };
+    symbola   = { version = "13.00"; file = "Symbola.zip";      hash = "sha256-TsHWmzkEyMa8JOZDyjvk7PDhm239oH/FNllizNFf398="; description = "Basic Latin, Greek, Cyrillic and many Symbol blocks of Unicode"; };
+    textfonts = { version = "13.00"; file = "Textfonts.zip";    hash = "sha256-7S3NiiyDvyYoDrLPt2z3P9bEEFOEZACv2sIHG1Tn6yI="; description = "Aroania, Anaktoria, Alexander, Avdira and Asea"; };
+    unidings  = { version = "13.00"; file = "Unidings.zip";     hash = "sha256-WUY+Ylphep6WuzqLQ3Owv+vK5Yuu/aAkn4GOFXL0uQY="; description = "Glyphs and Icons for blocks of The Unicode Standard"; };
   };
 
-  mkpkg = name_: {version, file, sha256, description}: fetchzip rec {
-    name = "${name_}-${version}";
-    url = "https://dn-works.com/wp-content/uploads/2020/UFAS-Fonts/${file}";
-    stripRoot = false;
-    postFetch = ''
-      mkdir -p $out/share/{fonts/opentype,doc/${name_}}
-      mv $out/*.otf                -t "$out/share/fonts/opentype"
-      mv $out/*.{odt,ods,pdf,xlsx}       -t "$out/share/doc/${name_}"  || true  # install docs if any
-      find $out -type d -empty -delete
-      shopt -s extglob dotglob
-      rm -rf $out/!(share)
-      shopt -u extglob dotglob
+  mkpkg = pname: { version, file, hash, description }: stdenvNoCC.mkDerivation rec {
+    inherit pname version;
+
+    src = fetchzip {
+      url = "https://dn-works.com/wp-content/uploads/2020/UFAS-Fonts/${file}";
+      stripRoot = false;
+      inherit hash;
+    };
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/share/{fonts/opentype,doc/${pname}}
+      mv *.otf                -t "$out/share/fonts/opentype"
+      mv *.{odt,ods,pdf,xlsx}       -t "$out/share/doc/${pname}"  || true  # install docs if any
+
+      runHook postInstall
     '';
-    inherit sha256;
 
     meta = {
       inherit description;
@@ -39,4 +43,4 @@ let
     };
   };
 in
-  lib.mapAttrs mkpkg fonts
+lib.mapAttrs mkpkg fonts
diff --git a/nixpkgs/pkgs/data/fonts/gelasio/default.nix b/nixpkgs/pkgs/data/fonts/gelasio/default.nix
index c8cf655a18cf..cea8e439d36b 100644
--- a/nixpkgs/pkgs/data/fonts/gelasio/default.nix
+++ b/nixpkgs/pkgs/data/fonts/gelasio/default.nix
@@ -1,18 +1,25 @@
-{ 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
+{ lib, stdenvNoCC, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation {
+  pname = "gelasio";
+  version = "unstable-2022-06-09";
+
+  src = fetchFromGitHub {
+    owner = "SorkinType";
+    repo = "Gelasio";
+    rev = "a75c6d30a35f74cdbaea1813bdbcdb64bb11d3d5";
+    hash = "sha256-ncm0lSDPPPREdxTx3dGl6OGBn4FGAjFTlQpA6oDCdMI=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/fonts/truetype
-    cp *.ttf $out/share/fonts/truetype/
+    cp fonts/ttf/*.ttf $out/share/fonts/truetype/
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/gentium-book-basic/default.nix b/nixpkgs/pkgs/data/fonts/gentium-book-basic/default.nix
index 2e14795ebd14..5cbc31accf07 100644
--- a/nixpkgs/pkgs/data/fonts/gentium-book-basic/default.nix
+++ b/nixpkgs/pkgs/data/fonts/gentium-book-basic/default.nix
@@ -1,21 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  major = "1";
-  minor = "102";
-  version = "${major}.${minor}";
-in fetchzip rec {
-  name = "gentium-book-basic-${version}";
+stdenvNoCC.mkDerivation rec {
+  pname = "gentium-book-basic";
+  version = "1.102";
 
-  url = "http://software.sil.org/downloads/r/gentium/GentiumBasic_${major}${minor}.zip";
+  src = fetchzip {
+    url = "http://software.sil.org/downloads/r/gentium/GentiumBasic_${lib.versions.major version}${lib.versions.minor version}.zip";
+    hash = "sha256-oCmpl95MJRfCV25cg/4cf8AwQWnoymXasSss1ziOPoE=";
+  };
 
-  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}
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "0598zr5f7d6ll48pbfbmmkrybhhdks9b2g3m2g67wm40070ffzmd";
+    install -Dm644 *.ttf                       -t $out/share/fonts/truetype
+    install -Dm644 FONTLOG.txt GENTIUM-FAQ.txt -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://software.sil.org/gentium/";
diff --git a/nixpkgs/pkgs/data/fonts/gentium/default.nix b/nixpkgs/pkgs/data/fonts/gentium/default.nix
index f64f7b341440..ae454ef42232 100644
--- a/nixpkgs/pkgs/data/fonts/gentium/default.nix
+++ b/nixpkgs/pkgs/data/fonts/gentium/default.nix
@@ -1,29 +1,23 @@
-{ 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
-  '';
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "gentium";
+  version = "6.200";
+
+  src = fetchzip {
+    url = "http://software.sil.org/downloads/r/gentium/GentiumPlus-${version}.zip";
+    hash = "sha256-gpVOtmF4Kp3y1Rm00c4o3WQEskO7mY1Z5SVaYHI0hzg=";
+  };
 
-  sha256 = "sha256-+T5aUlqQYDWRp4/4AZzsREHgjAnOeUB6qn1GAI0A5hE=";
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 FONTLOG.txt README.txt -t $out/share/doc/${pname}-${version}
+    cp -r documentation $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://software.sil.org/gentium/";
diff --git a/nixpkgs/pkgs/data/fonts/glasstty-ttf/default.nix b/nixpkgs/pkgs/data/fonts/glasstty-ttf/default.nix
new file mode 100644
index 000000000000..1c64c3227c51
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/glasstty-ttf/default.nix
@@ -0,0 +1,18 @@
+{ runCommand, fetchurl, lib }:
+runCommand "glasstty-ttf" {
+  src = fetchurl {
+    url = "https://github.com/svofski/glasstty/raw/2c47ac1a0065f8b12d9732257993833d8227e3e5/Glass_TTY_VT220.ttf";
+    sha256 = "sha256-2NYJaSWNr1Seuqdd7nLjA7tAMs/SAvl3uAe3uDoLLO4=";
+  };
+  meta = with lib; {
+    maintainers = [ maintainers.pkharvey ];
+    homepage = "https://github.com/svofski/glasstty";
+    license = licenses.unlicense;
+    platforms = platforms.all;
+    description = "TrueType VT220 font";
+  };
+}
+''
+  mkdir -p $out/share/fonts/truetype
+  cp $src $out/share/fonts/truetype/Glass_TTY_VT220.ttf
+''
diff --git a/nixpkgs/pkgs/data/fonts/go-font/default.nix b/nixpkgs/pkgs/data/fonts/go-font/default.nix
index ed17dfc9054c..63d62ec2e82e 100644
--- a/nixpkgs/pkgs/data/fonts/go-font/default.nix
+++ b/nixpkgs/pkgs/data/fonts/go-font/default.nix
@@ -1,28 +1,32 @@
-{ lib, fetchgit }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  version = "2017-03-30";
-in (fetchgit {
-  name = "go-font-${version}";
-  url = "https://go.googlesource.com/image";
-  rev = "f03a046406d4d7fbfd4ed29f554da8f6114049fc";
+stdenvNoCC.mkDerivation rec {
+  pname = "go-font";
+  version = "2.010";
+
+  src = fetchzip {
+    url = "https://go.googlesource.com/image/+archive/41969df76e82aeec85fa3821b1e24955ea993001/font/gofont/ttfs.tar.gz";
+    stripRoot = false;
+    hash = "sha256-rdzt51wY4b7HEr7W/0Ar/FB0zMyf+nKLsOT+CRSEP3o=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  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
+    mv *.ttf $out/share/fonts/truetype
+    mv README $out/share/doc/go-font/LICENSE
+
+    runHook postInstall
   '';
 
-  sha256 = "1488426ya2nzmwjas947fx9h5wzxrp9wasn8nkjqf0y0mpd4f1xz";
-}) // {
   meta = with lib; {
     homepage = "https://blog.golang.org/go-fonts";
     description = "The Go font family";
+    changelog = "https://go.googlesource.com/image/+log/refs/heads/master/font/gofont";
     license = licenses.bsd3;
     maintainers = with maintainers; [ sternenseemann ];
     platforms = lib.platforms.all;
-    hydraPlatforms = [];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/gohufont/default.nix b/nixpkgs/pkgs/data/fonts/gohufont/default.nix
index e72bed4ae410..37fb622e1310 100644
--- a/nixpkgs/pkgs/data/fonts/gohufont/default.nix
+++ b/nixpkgs/pkgs/data/fonts/gohufont/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, fetchFromGitHub
-, mkfontscale, bdf2psf, bdftopcf
-, fonttosfnt, libfaketime
+, xorg, bdf2psf, bdftopcf
+, libfaketime
 }:
 
 stdenv.mkDerivation rec {
@@ -15,8 +15,8 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs =
-    [ mkfontscale bdf2psf bdftopcf
-      fonttosfnt libfaketime
+    [ xorg.mkfontscale bdf2psf bdftopcf
+      xorg.fonttosfnt libfaketime
     ];
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/data/fonts/google-fonts/default.nix b/nixpkgs/pkgs/data/fonts/google-fonts/default.nix
index 8b11e5d504ae..4503b09354a9 100644
--- a/nixpkgs/pkgs/data/fonts/google-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/google-fonts/default.nix
@@ -1,27 +1,35 @@
-{ lib, stdenvNoCC, fetchFromGitHub }:
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, fonts ? []
+}:
 
 stdenvNoCC.mkDerivation {
   pname = "google-fonts";
-  version = "unstable-2022-02-26";
+  version = "unstable-2022-11-14";
 
+  # Adobe Blank is split out in a separate output,
+  # because it causes crashes with `libfontconfig`.
+  # It has an absurd number of symbols
   outputs = [ "out" "adobeBlank" ];
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "fonts";
-    rev = "2fba0d68602b7eb3374d030c1c34939de56023f9";
-    sha256 = "sha256-IFkKwRRyZeOXD8/9n8UDrruUKK6oQK4BD9wYN2dmSAc=";
+    rev = "83e116a566eda04a2469a11ee562cef1d7b33e4f";
+    sha256 = "sha256-sSabk+VWkoXj1Nzv9ufgIU/nkfKf4XkZU1SO+j+eSPA=";
   };
 
-  patchPhase = ''
+  postPatch = ''
     # These directories need to be removed because they contain
     # older or duplicate versions of fonts also present in other
     # directories. This causes non-determinism in the install since
     # the installation order of font files with the same name is not
     # fixed.
     rm -rv ofl/cabincondensed \
-           ofl/signikanegative \
-           ofl/signikanegativesc
+      ofl/signikanegative \
+      ofl/signikanegativesc \
+      axisregistry/tests/data
 
     if find . -name "*.ttf" | sed 's|.*/||' | sort | uniq -c | sort -n | grep -v '^.*1 '; then
       echo "error: duplicate font names"
@@ -31,13 +39,26 @@ stdenvNoCC.mkDerivation {
 
   dontBuild = true;
 
+  # The font files are in the fonts directory and use two naming schemes:
+  # FamilyName-StyleName.ttf and FamilyName[param1,param2,...].ttf
+  # This installs all fonts if fonts is empty and otherwise only
+  # the specified fonts by FamilyName. To do this, it invokes
+  # `find` 2 times for every font, anyone is free to do this
+  # in a more efficient way.
+  fonts = map (font: builtins.replaceStrings [" "] [""] font) fonts;
   installPhase = ''
     adobeBlankDest=$adobeBlank/share/fonts/truetype
     install -m 444 -Dt $adobeBlankDest ofl/adobeblank/AdobeBlank-Regular.ttf
     rm -r ofl/adobeblank
     dest=$out/share/fonts/truetype
+  '' + (if fonts == [] then ''
     find . -name '*.ttf' -exec install -m 444 -Dt $dest '{}' +
-  '';
+  '' else ''
+    for font in $fonts; do
+      find . -name "$font-*.ttf" -exec install -m 444 -Dt $dest '{}' +
+      find . -name "$font[*.ttf" -exec install -m 444 -Dt $dest '{}' +
+    done
+  '');
 
   meta = with lib; {
     homepage = "https://fonts.google.com";
diff --git a/nixpkgs/pkgs/data/fonts/goudy-bookletter-1911/default.nix b/nixpkgs/pkgs/data/fonts/goudy-bookletter-1911/default.nix
new file mode 100644
index 000000000000..14997cd62b6e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/goudy-bookletter-1911/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "goudy-bookletter-1911";
+  version = "2011-05-11";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "85ff5b834b4f63feb36fd2053949c19660580e48";
+    hash = "sha256-11axs1+SRQj+1lYTq2LYf1I65WrrvB/UnAgZkHPP1N8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "A public domain font based on Frederic Goudy’s Kennerley Oldstyle";
+    homepage = "https://www.theleagueofmoveabletype.com/goudy-bookletter-1911";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/gyre/default.nix b/nixpkgs/pkgs/data/fonts/gyre/default.nix
index 91a8aaf3c301..254766d1de28 100644
--- a/nixpkgs/pkgs/data/fonts/gyre/default.nix
+++ b/nixpkgs/pkgs/data/fonts/gyre/default.nix
@@ -1,19 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  baseName = "gyre-fonts";
+stdenvNoCC.mkDerivation rec {
+  pname = "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";
+  src = fetchzip {
+    url = "http://www.gust.org.pl/projects/e-foundry/tex-gyre/whole/tg-${version}otf.zip";
+    stripRoot = false;
+    hash = "sha256-+6IufuFf+IoLXoZEPlfHUNgRhKrQNBEZ1OwPD9/uOjg=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.otf -d $out/share/fonts/truetype
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "17amdpahs6kn7hk3dqxpff1s095cg1caxzij3mxjbbxp8zy0l111";
+    mkdir -p $out/share/fonts/truetype
+    cp *.otf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
 
   meta = {
     description = "OpenType fonts from the Gyre project, suitable for use with (La)TeX";
diff --git a/nixpkgs/pkgs/data/fonts/hack/default.nix b/nixpkgs/pkgs/data/fonts/hack/default.nix
index 0427cf36429f..6c6bd1918dbf 100644
--- a/nixpkgs/pkgs/data/fonts/hack/default.nix
+++ b/nixpkgs/pkgs/data/fonts/hack/default.nix
@@ -1,18 +1,21 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "hack-font";
   version = "3.003";
-in fetchzip {
-  name = "hack-font-${version}";
 
-  url = "https://github.com/chrissimpkins/Hack/releases/download/v${version}/Hack-v${version}-ttf.zip";
+  src = fetchzip {
+    url = "https://github.com/chrissimpkins/Hack/releases/download/v${version}/Hack-v${version}-ttf.zip";
+    hash = "sha256-SxF4kYp9aL/9L9EUniquFadzWt/+PcvhUQOIOvCrFRM=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/hack
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "1l6ih6v7dqali5c7zh6z2xnbf9h2wz0ag6fdgszmqd5lnhw39v6s";
+    install -Dm644 *.ttf -t $out/share/fonts/hack
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "A typeface designed for source code";
@@ -26,7 +29,7 @@ in fetchzip {
     homepage = "https://sourcefoundry.org/hack/";
 
     /*
-     "The font binaries are released under a license that permits unlimited
+      "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
diff --git a/nixpkgs/pkgs/data/fonts/hackgen/default.nix b/nixpkgs/pkgs/data/fonts/hackgen/default.nix
new file mode 100644
index 000000000000..6ea5312a98aa
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hackgen/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "hackgen-font";
+  version = "2.9.0";
+
+  src = fetchzip {
+    url = "https://github.com/yuru7/HackGen/releases/download/v${version}/HackGen_v${version}.zip";
+    hash = "sha256-Ah2oVP8nzFiYA76kMPa9+YHQwFxq4i1muwkcmC7TzOk=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/hackgen
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A composite font of Hack and GenJyuu-Goghic";
+    homepage = "https://github.com/yuru7/HackGen";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ natsukium ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/hackgen/nerdfont.nix b/nixpkgs/pkgs/data/fonts/hackgen/nerdfont.nix
new file mode 100644
index 000000000000..c75e1d306084
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hackgen/nerdfont.nix
@@ -0,0 +1,27 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "hackgen-nf-font";
+  version = "2.9.0";
+
+  src = fetchzip {
+    url = "https://github.com/yuru7/HackGen/releases/download/v${version}/HackGen_NF_v${version}.zip";
+    hash = "sha256-Lh4WQJjeP4JuR8jSXpRNSrjRsNPmNXSx5AItNYMJL2A=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/hackgen-nf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A composite font of Hack, GenJyuu-Gothic and nerd-fonts";
+    homepage = "https://github.com/yuru7/HackGen";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ natsukium ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/hanazono/default.nix b/nixpkgs/pkgs/data/fonts/hanazono/default.nix
index 29c982ed8aea..f6dd5baa60c2 100644
--- a/nixpkgs/pkgs/data/fonts/hanazono/default.nix
+++ b/nixpkgs/pkgs/data/fonts/hanazono/default.nix
@@ -1,19 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "hanazono";
   version = "20170904";
-in fetchzip {
-  name = "hanazono-${version}";
 
-  url = "mirror://osdn/hanazono-font/68253/hanazono-${version}.zip";
+  src = fetchzip {
+    url = "mirror://osdn/hanazono-font/68253/hanazono-${version}.zip";
+    stripRoot = false;
+    hash = "sha256-qd0q4wQnHBGLT7C+UQIiOHnxCnRCscMZcj3P5RRxD1U=";
+  };
 
-  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
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "0qiyd1vk3w8kqmwc6xi5d390wdr4ln8xhfbx3n8r1hhad9iz14p6";
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 *.txt -t $out/share/doc/hanazono
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "Japanese Mincho-typeface TrueType font";
diff --git a/nixpkgs/pkgs/data/fonts/hannom/default.nix b/nixpkgs/pkgs/data/fonts/hannom/default.nix
index fa586caa79cc..d91de86c532b 100644
--- a/nixpkgs/pkgs/data/fonts/hannom/default.nix
+++ b/nixpkgs/pkgs/data/fonts/hannom/default.nix
@@ -1,27 +1,26 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "hannom";
   version = "2005";
-in fetchzip {
-  name = "hannom-${version}";
 
-  url = "mirror://sourceforge/vietunicode/hannom/hannom%20v${version}/hannomH.zip";
+  src = fetchzip {
+    url = "mirror://sourceforge/vietunicode/hannom/hannom%20v${version}/hannomH.zip";
+    stripRoot = false;
+    hash = "sha256-Oh8V72tYvVA6Sk0f9UTIkRQYjdUbEB/fmCSaRYfyoP8=";
+  };
 
-  stripRoot = false;
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
     mkdir -p $out/share/fonts/truetype
-    mv $out/*.ttf -t $out/share/fonts/truetype
-    shopt -s extglob dotglob
-    rm -rf $out/!(share)
-    shopt -u extglob dotglob
-  '';
+    mv *.ttf -t $out/share/fonts/truetype
 
-  sha256 = "sha256-zOYJxEHl4KM0ncVQDBs9+e3z8DxzF2ef3pRj0OVSuUo=";
+    runHook postInstall
+  '';
 
   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
@@ -31,6 +30,7 @@ in fetchzip {
       code points by the Unicode Standard. Two sets of true type fonts are
       available with high and low resolutions.
     '';
+    homepage = "https://vietunicode.sourceforge.net/fonts/fonts_hannom.html";
     license = licenses.unfree;
     maintainers = with maintainers; [ wegank ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/data/fonts/hasklig/default.nix b/nixpkgs/pkgs/data/fonts/hasklig/default.nix
index d9deef80c0d7..a69f8f743cbe 100644
--- a/nixpkgs/pkgs/data/fonts/hasklig/default.nix
+++ b/nixpkgs/pkgs/data/fonts/hasklig/default.nix
@@ -1,18 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "hasklig";
   version = "1.1";
-in fetchzip {
-  name = "hasklig-${version}";
 
-  url = "https://github.com/i-tu/Hasklig/releases/download/${version}/Hasklig-${version}.zip";
+  src = fetchzip {
+    url = "https://github.com/i-tu/Hasklig/releases/download/${version}/Hasklig-${version}.zip";
+    stripRoot = false;
+    hash = "sha256-jsPQtjuegMePt4tB1dZ9mq15LSxXBYwtakbq4od/sko=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    unzip $downloadedFile
     install -m444 -Dt $out/share/fonts/opentype *.otf
-  '';
 
-  sha256 = "0xxyx0nkapviqaqmf3b610nq17k20afirvc72l32pfspsbxz8ybq";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/i-tu/Hasklig";
diff --git a/nixpkgs/pkgs/data/fonts/helvetica-neue-lt-std/default.nix b/nixpkgs/pkgs/data/fonts/helvetica-neue-lt-std/default.nix
index 7e69ff70d625..61dc6ba14e29 100644
--- a/nixpkgs/pkgs/data/fonts/helvetica-neue-lt-std/default.nix
+++ b/nixpkgs/pkgs/data/fonts/helvetica-neue-lt-std/default.nix
@@ -1,23 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation {
+  name = "helvetica-neue-lt-std";
   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";
+  src = fetchzip {
+    url = "https://web.archive.org/web/20190823153624/http://ephifonts.com/downloads/helvetica-neue-lt-std.zip";
+    stripRoot = false;
+    hash = "sha256-ytoTTrnwN1lMw/gTxS4DRAq+tV5WzB2xHP4vVxLZ1ZI=";
+  };
 
-  stripRoot = false;
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    install -Dm644 $out/'Helvetica Neue LT Std'/*.otf -t $out/share/fonts/opentype
-    shopt -s extglob dotglob
-    rm -rf $out/!(share)
-    shopt -u extglob dotglob
-  '';
+    install -Dm644 'Helvetica Neue LT Std'/*.otf -t $out/share/fonts/opentype
 
-  sha256 = "sha256-gM/QXrKI2xrrCBYt4R+Fk5Tj0AIkrnCP/pwgh0A/MyI=";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://web.archive.org/web/20190926040940/http://www.ephifonts.com/free-helvetica-font-helvetica-neue-lt-std.html";
diff --git a/nixpkgs/pkgs/data/fonts/hermit/default.nix b/nixpkgs/pkgs/data/fonts/hermit/default.nix
index 3ff5dd368292..3ff770522d9e 100644
--- a/nixpkgs/pkgs/data/fonts/hermit/default.nix
+++ b/nixpkgs/pkgs/data/fonts/hermit/default.nix
@@ -1,18 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
   pname = "hermit";
   version = "2.0";
-in fetchzip rec {
-  name = "${pname}-${version}";
 
-  url = "https://pcaro.es/d/otf-${name}.tar.gz";
+  src = fetchzip {
+    url = "https://pcaro.es/d/otf-${pname}-${version}.tar.gz";
+    stripRoot = false;
+    hash = "sha256-RYXZ2yJ8BIxsgeEwhXz7g0NnWG3kMPZoJaOLMUQyWWQ=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar xf $downloadedFile
     install -m444 -Dt $out/share/fonts/opentype *.otf
+
+    runHook postInstall
   '';
-  sha256 = "127hnpxicqya7v1wmzxxqafq3aj1n33i4j5ncflbw6gj5g3bizwl";
 
   meta = with lib; {
     description = "monospace font designed to be clear, pragmatic and very readable";
@@ -22,4 +26,3 @@ in fetchzip rec {
     platforms = platforms.all;
   };
 }
-
diff --git a/nixpkgs/pkgs/data/fonts/hubot-sans/default.nix b/nixpkgs/pkgs/data/fonts/hubot-sans/default.nix
new file mode 100644
index 000000000000..2458911fda38
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/hubot-sans/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "hubot-sans";
+  version = "1.0";
+
+  src = fetchFromGitHub {
+    rev = "v" + version;
+    owner = "github";
+    repo = pname;
+    sha256 = "GOql+V5TH4b3TmhlgnKcx3jzUAO2jm4HRJRNzdIKxgg=";
+  };
+
+  installPhase = ''
+    install -m644 --target $out/share/fonts/truetype/hubot-sans -D $src/dist/hubot-sans.ttf
+  '';
+
+  meta = {
+    description = "A variable font from GitHub";
+    homepage = "https://github.com/github/hubot-sans";
+    license = lib.licenses.ofl;
+    longDescription = ''
+      Hubot Sans is Mona Sans’s robotic sidekick. The typeface is designed with
+      more geometric accents to lend a technical and idiosyncratic feel—perfect
+      for headers and pull-quotes. Made together with Degarism.
+
+      Hubot Sans is a variable font. Variable fonts enable different variations
+      of a typeface to be incorporated into one single file, and are supported
+      by all major browsers.
+    '';
+    maintainers = with lib.maintainers; [ drupol ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/hyperscrypt/default.nix b/nixpkgs/pkgs/data/fonts/hyperscrypt/default.nix
index 09bcc2464ba4..c72e4b9e19a0 100644
--- a/nixpkgs/pkgs/data/fonts/hyperscrypt/default.nix
+++ b/nixpkgs/pkgs/data/fonts/hyperscrypt/default.nix
@@ -1,22 +1,25 @@
-{ fetchzip, lib }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "hyperscrypt";
   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
+  src = fetchzip {
+    url = "https://gitlab.com/StudioTriple/Hyper-Scrypt/-/archive/${version}/Hyper-Scrypt-${version}.zip";
+    hash = "sha256-ONlAB9C/GYK6KmOaiHCYErkS6OlQ3TUnoumNDHGZnes=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 fonts/HyperScrypt_Web/*.ttf -t $out/share/fonts/truetype/
+    install -Dm644 fonts/HyperScrypt_Web/*.otf fonts/*.otf -t $out/share/fonts/opentype/
+
+    runHook postInstall
   '';
 
   meta = with lib; {
-    homepage = "http://velvetyne.fr/fonts/hyper-scrypt/";
+    homepage = "https://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
@@ -32,7 +35,7 @@ fetchzip {
       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
index 766440032f3a..fb2679b2eba2 100644
--- a/nixpkgs/pkgs/data/fonts/i-dot-ming/default.nix
+++ b/nixpkgs/pkgs/data/fonts/i-dot-ming/default.nix
@@ -1,17 +1,44 @@
-{ 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
+{ lib, stdenvNoCC, fetchurl, writeScript }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "i.ming";
+  version = "8.00";
+
+  src = fetchurl {
+    url = "https://raw.githubusercontent.com/ichitenfont/I.Ming/${version}/${version}/I.Ming-${version}.ttf";
+    hash = "sha256-6345629OdKz6lTnD3Vjtp6DzsYy0ojaL0naXGrtdZvw=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -DT -m444 $src $out/share/fonts/truetype/I.Ming/I.Ming.ttf
+
+    runHook postInstall
   '';
 
+  passthru = {
+    updateScript = writeScript "updater" ''
+      #!/usr/bin/env nix-shell
+      #!nix-shell -i bash -p curl gnused
+      set -e
+      version=$(curl -i -s https://github.com/ichitenfont/I.Ming/releases/latest | sed -n -E 's|^location.*releases/tag/([0-9.]+).*$|\1|p')
+      if [[ $version != ${version} ]]; then
+        tmp=$(mktemp -d)
+        curl -Lo $tmp/I.Ming.ttf https://raw.githubusercontent.com/ichitenfont/I.Ming/$version/$version/I.Ming-$version.ttf
+        install -DT -m444 $tmp/I.Ming.ttf $tmp/share/fonts/truetype/I.Ming/I.Ming.ttf
+        rm $tmp/I.Ming.ttf
+        hash=$(nix hash path --type sha256 --base32 --sri $tmp)
+        sed -i -E \
+          -e "s/version = \"[0-9.]+\"/version = \"$version\"/" \
+          -e "s|hash = \".*\"|hash = \"$hash\"|" \
+          pkgs/data/fonts/i-dot-ming/default.nix
+      fi
+    '';
+  };
+
   meta = with lib; {
     description = "An open source Pan-CJK serif typeface";
     homepage = "https://github.com/ichitenfont/I.Ming";
diff --git a/nixpkgs/pkgs/data/fonts/ia-writer-duospace/default.nix b/nixpkgs/pkgs/data/fonts/ia-writer-duospace/default.nix
index 6da80a1bf830..483ed98737d0 100644
--- a/nixpkgs/pkgs/data/fonts/ia-writer-duospace/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ia-writer-duospace/default.nix
@@ -1,19 +1,23 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
-  version = "20180721";
-in fetchFromGitHub {
-  name = "ia-writer-duospace-${version}";
+stdenvNoCC.mkDerivation {
+  pname = "ia-writer-duospace";
+  version = "unstable-2018-07-21";
 
-  owner = "iaolo";
-  repo = "iA-Fonts";
-  rev = "55edf60f544078ab1e14987bc67e9029a200e0eb";
-  sha256 = "0932lcxf861vb3hz52z1xj8r99ag9sdyqsnq9brv7gc4kp2l339c";
+  src = fetchFromGitHub {
+    owner = "iaolo";
+    repo = "iA-Fonts";
+    rev = "55edf60f544078ab1e14987bc67e9029a200e0eb";
+    hash = "sha256-/ifzOScILLuFkjFIgpy0ArCcelgealbpypKvZ46xApU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar --strip-components=1 -xzvf $downloadedFile
     mkdir -p $out/share/fonts/opentype
     cp "iA Writer Duospace/OTF (Mac)/"*.otf $out/share/fonts/opentype/
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/ibm-plex/default.nix b/nixpkgs/pkgs/data/fonts/ibm-plex/default.nix
index f04050664925..21321d83af34 100644
--- a/nixpkgs/pkgs/data/fonts/ibm-plex/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ibm-plex/default.nix
@@ -1,19 +1,21 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  version = "6.0.1";
+stdenvNoCC.mkDerivation rec {
+  pname = "ibm-plex";
+  version = "6.2.0";
 
-in fetchzip {
-  name = "ibm-plex-${version}";
+  src = fetchzip {
+    url = "https://github.com/IBM/plex/releases/download/v${version}/OpenType.zip";
+    hash = "sha256-RvD/aeZrvltJiuAHqYMNaRsjLgTdcC1/5zqlcd4qKAA=";
+  };
 
-  url = "https://github.com/IBM/plex/releases/download/v${version}/OpenType.zip";
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile "OpenType/*/*.otf" -x "OpenType/IBM-Plex-Sans-JP/unhinted/*" -d $out/share/fonts/opentype
-  '';
+    install -Dm644 */*.otf IBM-Plex-Sans-JP/unhinted/* -t $out/share/fonts/opentype
 
-  sha256 = "sha256-HxO0L5Q6WJQBqtg64cczzuRcSYi4jEqbOzEWxDmqFp8=";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "IBM Plex Typeface";
diff --git a/nixpkgs/pkgs/data/fonts/inriafonts/default.nix b/nixpkgs/pkgs/data/fonts/inriafonts/default.nix
index d8127b851274..1ca1ce2f9098 100644
--- a/nixpkgs/pkgs/data/fonts/inriafonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/inriafonts/default.nix
@@ -1,20 +1,24 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
   pname = "inriafonts";
   version = "1.200";
-in fetchFromGitHub {
-  name = "${pname}-${version}";
-  owner = "BlackFoundry";
-  repo = "InriaFonts";
-  rev = "v${version}";
 
-  postFetch = ''
-    tar xf $downloadedFile --strip=1
+  src = fetchFromGitHub {
+    owner = "BlackFoundry";
+    repo = "InriaFonts";
+    rev = "v${version}";
+    hash = "sha256-CMKkwGuUEVYavnFi15FCk7Xloyk97w+LhAZ6mpIv5xg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     install -m444 -Dt $out/share/fonts/truetype fonts/*/TTF/*.ttf
     install -m444 -Dt $out/share/fonts/opentype fonts/*/OTF/*.otf
+
+    runHook postInstall
   '';
-  sha256 = "0wrwcyycyzvgvgnlmwi1ncdvwb8f6bbclynd1105rsyxgrz5dd70";
 
   meta = with lib; {
     homepage = "https://black-foundry.com/work/inria";
diff --git a/nixpkgs/pkgs/data/fonts/intel-one-mono/default.nix b/nixpkgs/pkgs/data/fonts/intel-one-mono/default.nix
new file mode 100644
index 000000000000..c7e5ab5ae29a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/intel-one-mono/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenvNoCC, fetchurl, unzip}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "intel-one-mono";
+  version = "1.2.0";
+
+  srcs = [
+    (fetchurl {
+      url = "https://github.com/intel/intel-one-mono/releases/download/V${version}/otf.zip";
+      sha256 = "sha256-VnXIaW77dRXvXB1Vr01xRQDMECltwzF/RMqGgAWnu5M=";
+     })
+    (fetchurl {
+      url = "https://github.com/intel/intel-one-mono/releases/download/V${version}/ttf.zip";
+      sha256 = "sha256-kaz0DePeO8nvKVonYJhs5f2+ps/5Xo5psjg1hoxzaiU=";
+    })
+  ];
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [
+    unzip
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm644 -t $out/share/fonts/truetype/ ttf/*.ttf
+    install -Dm644 -t $out/share/fonts/opentype/ otf/*.otf
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Intel One Mono, an expressive monospaced font family that’s built with clarity, legibility, and the needs of developers in mind";
+    homepage = "https://github.com/intel/intel-one-mono";
+    changelog = "https://github.com/intel/intel-one-mono/releases/tag/V${version}";
+    license = licenses.ofl;
+    maintainers = [ maintainers.simoneruffini];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/inter/default.nix b/nixpkgs/pkgs/data/fonts/inter/default.nix
index ca01acd0c54b..46ab699fd398 100644
--- a/nixpkgs/pkgs/data/fonts/inter/default.nix
+++ b/nixpkgs/pkgs/data/fonts/inter/default.nix
@@ -1,18 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "inter";
   version = "3.19";
-in fetchzip {
-  name = "inter-${version}";
 
-  url = "https://github.com/rsms/inter/releases/download/v${version}/Inter-${version}.zip";
+  src = fetchzip {
+    url = "https://github.com/rsms/inter/releases/download/v${version}/Inter-${version}.zip";
+    stripRoot = false;
+    hash = "sha256-6kUQUTFtxiJEU6sYC6HzMwm1H4wvaKIoxoY3F6GJJa8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
     mkdir -p $out/share/fonts/opentype
-    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
-  '';
+    cp */*.otf $out/share/fonts/opentype
 
-  sha256 = "sha256-8p15thg3xyvCA/8dH2jGQoc54nzESFDyv5m47FgWrSI=";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://rsms.me/inter/";
@@ -22,4 +27,3 @@ in fetchzip {
     maintainers = with maintainers; [ demize dtzWill ];
   };
 }
-
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/bin.nix b/nixpkgs/pkgs/data/fonts/iosevka/bin.nix
index 3a285fe0c55b..d6df2415d2d8 100644
--- a/nixpkgs/pkgs/data/fonts/iosevka/bin.nix
+++ b/nixpkgs/pkgs/data/fonts/iosevka/bin.nix
@@ -11,7 +11,7 @@ let
     (builtins.attrNames (builtins.removeAttrs variantHashes [ "iosevka" ]));
 in stdenv.mkDerivation rec {
   pname = "${name}-bin";
-  version = "15.6.3";
+  version = "24.1.1";
 
   src = fetchurl {
     url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/ttc-${name}-${version}.zip";
@@ -34,6 +34,7 @@ in stdenv.mkDerivation rec {
     inherit (iosevka.meta) homepage downloadPage description license platforms;
     maintainers = with lib.maintainers; [
       cstrahan
+      montchr
     ];
   };
 
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/comfy.nix b/nixpkgs/pkgs/data/fonts/iosevka/comfy.nix
index 4921017cf336..fbe2f9533bac 100644
--- a/nixpkgs/pkgs/data/fonts/iosevka/comfy.nix
+++ b/nixpkgs/pkgs/data/fonts/iosevka/comfy.nix
@@ -1,32 +1,67 @@
-{ callPackage, lib, fetchFromGitHub }:
+{ lib, iosevka, fetchFromSourcehut, fetchFromGitHub, buildNpmPackage }:
 
 let
-  sets = [ "comfy" "comfy-fixed" "comfy-duo" "comfy-wide" "comfy-wide-fixed" ];
-  version = "0.3.1";
-  src = fetchFromGitHub {
-    owner = "protesilaos";
+  sets = [
+    # Family                  | Shapes | Spacing | Style      | Ligatures |
+    # ------------------------+--------+---------+------------+-----------|
+    "comfy"                   # Sans   | Compact | Monospaced | Yes       |
+    "comfy-fixed"             # Sans   | Compact | Monospaced | No        |
+    "comfy-duo"               # Sans   | Compact | Duospaced  | Yes       |
+    # ------------------------+--------+---------+------------+-----------|
+    "comfy-motion"            # Slab   | Compact | Monospaced | Yes       |
+    "comfy-motion-fixed"      # Slab   | Compact | Monospaced | No        |
+    "comfy-motion-duo"        # Slab   | Compact | Duospaced  | Yes       |
+    # ------------------------+--------+---------+------------+-----------|
+    "comfy-wide"              # Sans   | Wide    | Monospaced | Yes       |
+    "comfy-wide-fixed"        # Sans   | Wide    | Monospaced | No        |
+    "comfy-wide-duo"          # Sans   | Wide    | Duospaced  | Yes       |
+    # ------------------------+--------+---------+------------+-----------|
+    "comfy-wide-motion"       # Slab   | Wide    | Monospaced | Yes       |
+    "comfy-wide-motion-fixed" # Slab   | Wide    | Monospaced | No        |
+    "comfy-wide-motion-duo"   # Slab   | Wide    | Duospaced  | Yes       |
+  ];
+  version = "1.3.0";
+  src = fetchFromSourcehut {
+    owner = "~protesilaos";
     repo = "iosevka-comfy";
     rev = version;
-    sha256 = "sha256-SMy3Kqve65ZU13lf1vZQR61mH7gcl1DvIZt3yD6tIf4=";
+    sha256 = "sha256-ajzUbobNf+Je8ls9htOCLPsB0OPSiqZzrc8bO6hQvio=";
   };
   privateBuildPlan = src.outPath + "/private-build-plans.toml";
-  overrideAttrs = (attrs: {
-    inherit version;
+  makeIosevkaFont = set:
+    let superBuildNpmPackage = buildNpmPackage; in
+    (iosevka.override rec {
+      inherit set privateBuildPlan;
+      buildNpmPackage = args: superBuildNpmPackage
+        (args // {
+          inherit version;
 
-    meta = with lib; {
-      homepage = "https://github.com/protesilaos/iosevka-comfy";
-      description = ''
-      Custom build of Iosevka with a rounded style and open shapes,
-      adjusted metrics, and overrides for almost all individual glyphs
-      in both roman (upright) and italic (slanted) variants.
-    '';
-      license = licenses.ofl;
-      platforms = attrs.meta.platforms;
-      maintainers = [ maintainers.DamienCassou ];
-    };
-  });
-  makeIosevkaFont = set: (callPackage ./. {
-    inherit set privateBuildPlan;
-  }).overrideAttrs overrideAttrs;
+          src = fetchFromGitHub {
+            owner = "be5invis";
+            repo = "iosevka";
+            rev = "7ef24b8d87fe50793444f9f84b140767f7e47029";
+            hash = "sha256-RVBgJVMNyxV1KeNniwySsJUOmLDh6sFZju8szvzKlH4=";
+          };
+
+          npmDepsHash = "sha256-yogUBf+yfjfK8DE4gGgoGaTaYZagW8R1pCn7y0rEPt4=";
+
+          meta = with lib; {
+            inherit (src.meta) homepage;
+            description = ''
+              Customised build of the Iosevka typeface, with a consistent
+              rounded style and overrides for almost all individual glyphs
+              in both roman (upright) and italic (slanted) variants.
+            '';
+            license = licenses.ofl;
+            platforms = iosevka.meta.platforms;
+            maintainers = [ maintainers.DamienCassou ];
+          };
+        });
+    });
 in
-builtins.listToAttrs (builtins.map (set: {name=set; value=makeIosevkaFont set;}) sets)
+builtins.listToAttrs (builtins.map
+  (set: {
+    name = set;
+    value = makeIosevkaFont set;
+  })
+  sets)
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/default.nix b/nixpkgs/pkgs/data/fonts/iosevka/default.nix
index 53e5b4a3db76..0c24c1e5c30e 100644
--- a/nixpkgs/pkgs/data/fonts/iosevka/default.nix
+++ b/nixpkgs/pkgs/data/fonts/iosevka/default.nix
@@ -1,4 +1,9 @@
-{ stdenv, lib, pkgs, fetchFromGitHub, nodejs, remarshal
+{ stdenv
+, lib
+, buildNpmPackage
+, fetchFromGitHub
+, darwin
+, remarshal
 , ttfautohint-nox
   # Custom font set options.
   # See https://typeof.net/Iosevka/customizer
@@ -42,70 +47,63 @@
   # '';
 , extraParameters ? null
   # Custom font set name. Required if any custom settings above.
-, set ? null }:
+, 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 = (import ./node-composition.nix {
-    inherit pkgs nodejs;
-    inherit (stdenv.hostPlatform) system;
-  }).package.override {
-    src = fetchFromGitHub {
-      owner = "be5invis";
-      repo = "Iosevka";
-      rev = "v15.6.3";
-      hash = "sha256-wsFx5sD1CjQTcmwpLSt97OYFI8GtVH54uvKQLU1fWTg=";
-    };
+buildNpmPackage rec {
+  pname = if set != null then "iosevka-${set}" else "iosevka";
+  version = "24.1.1";
+
+  src = fetchFromGitHub {
+    owner = "be5invis";
+    repo = "iosevka";
+    rev = "v${version}";
+    hash = "sha256-kzf/DFks/Ovhl6uMw5Bqhq+j+alrUd4E49jgSmp2E2k=";
   };
 
-in
-stdenv.mkDerivation rec {
-  pname = if set != null then "iosevka-${set}" else "iosevka";
-  inherit (nodeIosevka) version src;
+  npmDepsHash = "sha256-FKA3D05E5A0Z3wdCYLzoTyYKLay25sc3O61rOzkIN2E=";
 
   nativeBuildInputs = [
-    nodejs
     remarshal
     ttfautohint-nox
+  ] ++ lib.optionals stdenv.isDarwin [
+    # libtool
+    darwin.cctools
   ];
 
   buildPlan =
-    if builtins.isAttrs privateBuildPlan
-      then builtins.toJSON { buildPlans.${pname} = privateBuildPlan; }
-    else privateBuildPlan;
+    if builtins.isAttrs privateBuildPlan then
+      builtins.toJSON { buildPlans.${pname} = privateBuildPlan; }
+    else
+      privateBuildPlan;
 
   inherit extraParameters;
-  passAsFile = [
-    "extraParameters"
-  ] ++ lib.optional (! (builtins.isString privateBuildPlan && lib.hasPrefix builtins.storeDir privateBuildPlan)) [
-    "buildPlan"
-  ];
+  passAsFile = [ "extraParameters" ] ++ lib.optionals
+    (
+      !(builtins.isString privateBuildPlan
+        && lib.hasPrefix builtins.storeDir privateBuildPlan)
+    ) [ "buildPlan" ];
 
   configurePhase = ''
     runHook preConfigure
     ${lib.optionalString (builtins.isAttrs privateBuildPlan) ''
       remarshal -i "$buildPlanPath" -o private-build-plans.toml -if json -of toml
     ''}
-    ${lib.optionalString (builtins.isString privateBuildPlan && (!lib.hasPrefix builtins.storeDir privateBuildPlan)) ''
-      cp "$buildPlanPath" private-build-plans.toml
-    ''}
-    ${lib.optionalString (builtins.isString privateBuildPlan && (lib.hasPrefix builtins.storeDir privateBuildPlan)) ''
-      cp "$buildPlan" private-build-plans.toml
-    ''}
+    ${lib.optionalString (builtins.isString privateBuildPlan
+      && (!lib.hasPrefix builtins.storeDir privateBuildPlan)) ''
+        cp "$buildPlanPath" private-build-plans.toml
+      ''}
+    ${lib.optionalString (builtins.isString privateBuildPlan
+      && (lib.hasPrefix builtins.storeDir privateBuildPlan)) ''
+        cp "$buildPlan" private-build-plans.toml
+      ''}
     ${lib.optionalString (extraParameters != null) ''
       echo -e "\n" >> params/parameters.toml
       cat "$extraParametersPath" >> params/parameters.toml
     ''}
-    ln -s ${nodeIosevka}/lib/node_modules/iosevka/node_modules .
     runHook postConfigure
   '';
 
@@ -126,16 +124,14 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  passthru = {
-    updateScript = ./update-default.sh;
-  };
-
   meta = with lib; {
-    homepage = "https://be5invis.github.io/Iosevka";
+    homepage = "https://typeof.net/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.
+    description = "Versatile typeface for code, from code.";
+    longDescription = ''
+      Iosevka is an open-source, sans-serif + slab-serif, monospace +
+      quasi‑proportional typeface family, designed for writing code, using in
+      terminals, and preparing technical documents.
     '';
     license = licenses.ofl;
     platforms = platforms.all;
@@ -146,6 +142,7 @@ stdenv.mkDerivation rec {
       babariviere
       rileyinman
       AluisioASG
+      lunik1
     ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/node-composition.nix b/nixpkgs/pkgs/data/fonts/iosevka/node-composition.nix
deleted file mode 100644
index 2e810490ca8d..000000000000
--- a/nixpkgs/pkgs/data/fonts/iosevka/node-composition.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-# This file has been generated by node2nix 1.11.1. Do not edit!
-
-{pkgs ? import <nixpkgs> {
-    inherit system;
-  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-16_x"}:
-
-let
-  nodeEnv = import ../../../development/node-packages/node-env.nix {
-    inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
-    inherit pkgs nodejs;
-    libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
-  };
-in
-import ./node-packages.nix {
-  inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
-  inherit nodeEnv;
-}
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/node-packages.nix b/nixpkgs/pkgs/data/fonts/iosevka/node-packages.nix
deleted file mode 100644
index cff861ddfbf6..000000000000
--- a/nixpkgs/pkgs/data/fonts/iosevka/node-packages.nix
+++ /dev/null
@@ -1,2697 +0,0 @@
-# This file has been generated by node2nix 1.11.1. Do not edit!
-
-{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}:
-
-let
-  sources = {
-    "@eslint/eslintrc-1.3.0" = {
-      name = "_at_eslint_slash_eslintrc";
-      packageName = "@eslint/eslintrc";
-      version = "1.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz";
-        sha512 = "UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==";
-      };
-    };
-    "@humanwhocodes/config-array-0.9.5" = {
-      name = "_at_humanwhocodes_slash_config-array";
-      packageName = "@humanwhocodes/config-array";
-      version = "0.9.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz";
-        sha512 = "ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==";
-      };
-    };
-    "@humanwhocodes/object-schema-1.2.1" = {
-      name = "_at_humanwhocodes_slash_object-schema";
-      packageName = "@humanwhocodes/object-schema";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz";
-        sha512 = "ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==";
-      };
-    };
-    "@iarna/toml-2.2.5" = {
-      name = "_at_iarna_slash_toml";
-      packageName = "@iarna/toml";
-      version = "2.2.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz";
-        sha512 = "trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==";
-      };
-    };
-    "@msgpack/msgpack-2.7.2" = {
-      name = "_at_msgpack_slash_msgpack";
-      packageName = "@msgpack/msgpack";
-      version = "2.7.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.7.2.tgz";
-        sha512 = "rYEi46+gIzufyYUAoHDnRzkWGxajpD9vVXFQ3g1vbjrBm6P7MBmm+s/fqPa46sxa+8FOUdEuRQKaugo5a4JWpw==";
-      };
-    };
-    "@ot-builder/bin-composite-types-1.5.3" = {
-      name = "_at_ot-builder_slash_bin-composite-types";
-      packageName = "@ot-builder/bin-composite-types";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/bin-composite-types/-/bin-composite-types-1.5.3.tgz";
-        sha512 = "5yZAaqs2/zJjtELtSNjbOlFuvs0bCuadanLjaEQwX6MS88Q3lO8p0y8AbLaXbKlV7ODiHRqqR42F1rpJ9r0KqQ==";
-      };
-    };
-    "@ot-builder/bin-util-1.5.3" = {
-      name = "_at_ot-builder_slash_bin-util";
-      packageName = "@ot-builder/bin-util";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/bin-util/-/bin-util-1.5.3.tgz";
-        sha512 = "wbWc6T40IUvNEvyXVpdLY9ntwI3Sj1Lf/qxb3U8Xhe3PEM42xgBEYecE64eU1Y30faxfY3MSb+M5eVgF+s+Prg==";
-      };
-    };
-    "@ot-builder/cli-help-shower-1.5.3" = {
-      name = "_at_ot-builder_slash_cli-help-shower";
-      packageName = "@ot-builder/cli-help-shower";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-help-shower/-/cli-help-shower-1.5.3.tgz";
-        sha512 = "LFmbbsXvJm9E2swvOq/EHIegP+tJ10bP63+VxFjjN5+q9938WPyT0XtPd1dR2wN2HyRRAExYaNUiyRV6z160tw==";
-      };
-    };
-    "@ot-builder/cli-proc-1.5.3" = {
-      name = "_at_ot-builder_slash_cli-proc";
-      packageName = "@ot-builder/cli-proc";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-proc/-/cli-proc-1.5.3.tgz";
-        sha512 = "8tovAA4NyPONsJYUdfeWZlI9w1JEeFOW5D3oE+VydbGZw3wIWuK4gz7XgwS4eOM2xM6e/cMpIuzZ4qBmPJCmaA==";
-      };
-    };
-    "@ot-builder/cli-shared-1.5.3" = {
-      name = "_at_ot-builder_slash_cli-shared";
-      packageName = "@ot-builder/cli-shared";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-shared/-/cli-shared-1.5.3.tgz";
-        sha512 = "6sVkJd1fg5lOEEW2p2GfVUclAFjcnfaTfDaGETAk3tsxW4mYDj5cQP5B7nU7uK09a1545CS5sZHNcdd7mf9RiA==";
-      };
-    };
-    "@ot-builder/common-impl-1.5.3" = {
-      name = "_at_ot-builder_slash_common-impl";
-      packageName = "@ot-builder/common-impl";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/common-impl/-/common-impl-1.5.3.tgz";
-        sha512 = "JSOt5yF/GjtMCQH+0xYUHUB4aGPfN/qo4ocvDd0V5W5AEa4vjwmqHyYSSNkXxXM1zdDe8k5FoQSijpzYzZ3pFw==";
-      };
-    };
-    "@ot-builder/errors-1.5.3" = {
-      name = "_at_ot-builder_slash_errors";
-      packageName = "@ot-builder/errors";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/errors/-/errors-1.5.3.tgz";
-        sha512 = "NDsKCXNSdDiLyS6/vPDY3qWh/jAP1v3Eol/FtqDqSXOBUPPgg4XGlZR2zl3gSc99YbbSC5KecvRSh99YUMpKPQ==";
-      };
-    };
-    "@ot-builder/io-bin-cff-1.5.3" = {
-      name = "_at_ot-builder_slash_io-bin-cff";
-      packageName = "@ot-builder/io-bin-cff";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-cff/-/io-bin-cff-1.5.3.tgz";
-        sha512 = "/oSc2k6hIh1WLpWBwjsoj1dp1KMnsKHM8JnI+undRasuDSi5QnNtbeqKWl+OlYYo5ES8RSopsLg0sCMAP2gnyw==";
-      };
-    };
-    "@ot-builder/io-bin-encoding-1.5.3" = {
-      name = "_at_ot-builder_slash_io-bin-encoding";
-      packageName = "@ot-builder/io-bin-encoding";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-encoding/-/io-bin-encoding-1.5.3.tgz";
-        sha512 = "xG1dBbVHhboHCQ6n5nxnScaevCTShQ5rvFusRrC5MKKHFLL/1Vj2qk28ZWzHYP8nZfO7+ktU2HGsKkydnlWDeg==";
-      };
-    };
-    "@ot-builder/io-bin-ext-private-1.5.3" = {
-      name = "_at_ot-builder_slash_io-bin-ext-private";
-      packageName = "@ot-builder/io-bin-ext-private";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-ext-private/-/io-bin-ext-private-1.5.3.tgz";
-        sha512 = "zwG4xDd1sAfbdQ4W/u86CMhBYtCK1/Eg04qDUVmBxcM4RBNjqKt55yN+nPTtQ+aeXBYN79DXM7gFZU4rFAmOIA==";
-      };
-    };
-    "@ot-builder/io-bin-font-1.5.3" = {
-      name = "_at_ot-builder_slash_io-bin-font";
-      packageName = "@ot-builder/io-bin-font";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-font/-/io-bin-font-1.5.3.tgz";
-        sha512 = "fvccA/kbnVwIxNs/qgtTla9vj2www94HKKndF4EvkMINqksyaSoSBlaoddTrzb+caw/kANVGprfBmtjWZBEh+Q==";
-      };
-    };
-    "@ot-builder/io-bin-glyph-store-1.5.3" = {
-      name = "_at_ot-builder_slash_io-bin-glyph-store";
-      packageName = "@ot-builder/io-bin-glyph-store";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-glyph-store/-/io-bin-glyph-store-1.5.3.tgz";
-        sha512 = "CsSy45gxKjH6Ivl00uprhsuwBWjy9GTfSD39qrXJK+WzIkU8ucM7RRRucwTXR4YKb7sVZUB/wwS+ViQMtu+xKg==";
-      };
-    };
-    "@ot-builder/io-bin-layout-1.5.3" = {
-      name = "_at_ot-builder_slash_io-bin-layout";
-      packageName = "@ot-builder/io-bin-layout";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-layout/-/io-bin-layout-1.5.3.tgz";
-        sha512 = "rwAqkyJf+LSj8UFglas9hopsrOKNF4wwm32w/JJwwX/12LCMw68dzdu2qXvVgLHrnkrqjs5xmGDUY1JVkKwYpA==";
-      };
-    };
-    "@ot-builder/io-bin-metadata-1.5.3" = {
-      name = "_at_ot-builder_slash_io-bin-metadata";
-      packageName = "@ot-builder/io-bin-metadata";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-metadata/-/io-bin-metadata-1.5.3.tgz";
-        sha512 = "+wSCWKRJ0HfA2oTXQda7uWmm9CAWhLnIQIz7s/hY92Nd7DXbJQG0c2RE2uXazqe9et8HYF6rqJUhOHHH5AsfbQ==";
-      };
-    };
-    "@ot-builder/io-bin-metric-1.5.3" = {
-      name = "_at_ot-builder_slash_io-bin-metric";
-      packageName = "@ot-builder/io-bin-metric";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-metric/-/io-bin-metric-1.5.3.tgz";
-        sha512 = "Og2erTx12QmbguvdFk+5KFyoNOME0QMH2OaCih3G2/P/EJPrHGZEHkw38QsWQPa0LbPfatyhyvrURtZXQo4S9g==";
-      };
-    };
-    "@ot-builder/io-bin-name-1.5.3" = {
-      name = "_at_ot-builder_slash_io-bin-name";
-      packageName = "@ot-builder/io-bin-name";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-name/-/io-bin-name-1.5.3.tgz";
-        sha512 = "BfJUVaZUrI372f4dHjEED3En0Ve4oItaZcqXPUySUpq9s+MgBIi+3Kq9WrDWlpDKRYLR+CsTrwW69TXBIGIa7w==";
-      };
-    };
-    "@ot-builder/io-bin-sfnt-1.5.3" = {
-      name = "_at_ot-builder_slash_io-bin-sfnt";
-      packageName = "@ot-builder/io-bin-sfnt";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-sfnt/-/io-bin-sfnt-1.5.3.tgz";
-        sha512 = "tr6EHaV9aWf20veLLa22PSRZwJek/Sgsc6aPghKlSUPdpkL3SIwyVfwDxjzWCQLpcZJXa3YZ+wptuTdMlP7jJw==";
-      };
-    };
-    "@ot-builder/io-bin-ttf-1.5.3" = {
-      name = "_at_ot-builder_slash_io-bin-ttf";
-      packageName = "@ot-builder/io-bin-ttf";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-ttf/-/io-bin-ttf-1.5.3.tgz";
-        sha512 = "A5IAzoqdCTznsqmZ+bSlF6rNuZ1KQXjX5ZqrYtOk2oCj2hdIgCCvZFhnE9dMPQ3oFRzeYGTl1SvxqX+eDZR18Q==";
-      };
-    };
-    "@ot-builder/io-bin-vtt-private-1.5.3" = {
-      name = "_at_ot-builder_slash_io-bin-vtt-private";
-      packageName = "@ot-builder/io-bin-vtt-private";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-vtt-private/-/io-bin-vtt-private-1.5.3.tgz";
-        sha512 = "vMkjn5WbpEFyy3PkU65AhIX6E0YrPbhZV5Wti9O+m/TDmtgcX+fbe3/LJnVtP2JUHDmCQtxnnb+A2Ymp1mwRdw==";
-      };
-    };
-    "@ot-builder/ot-1.5.3" = {
-      name = "_at_ot-builder_slash_ot";
-      packageName = "@ot-builder/ot";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot/-/ot-1.5.3.tgz";
-        sha512 = "6ZlRH54FjVAf7Vtxlby5+25/fIZC/IIRt8HCE903dKtw6UYG9XJvW7SkPOu18LNNNKHyCzj3LwMawu+LDHtwHw==";
-      };
-    };
-    "@ot-builder/ot-encoding-1.5.3" = {
-      name = "_at_ot-builder_slash_ot-encoding";
-      packageName = "@ot-builder/ot-encoding";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-encoding/-/ot-encoding-1.5.3.tgz";
-        sha512 = "jz6Zg1fwYdlliwPWBghzYIOmqgN5S1xTjX/P8/dk0Jn0cpwyGN409uVkUJb3GuVa/sECQUcvnjTx39DlZSM/Qw==";
-      };
-    };
-    "@ot-builder/ot-ext-private-1.5.3" = {
-      name = "_at_ot-builder_slash_ot-ext-private";
-      packageName = "@ot-builder/ot-ext-private";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-ext-private/-/ot-ext-private-1.5.3.tgz";
-        sha512 = "Y233Lrk9Fv4g6k5A/9afPG8E0O28JWKjl7Gv2AW65bL9A7NCyHI6F7SgCLVcbPWj8jyEJ0urm43hsSNeBDqZdQ==";
-      };
-    };
-    "@ot-builder/ot-glyphs-1.5.3" = {
-      name = "_at_ot-builder_slash_ot-glyphs";
-      packageName = "@ot-builder/ot-glyphs";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-glyphs/-/ot-glyphs-1.5.3.tgz";
-        sha512 = "AIvIui15gNip1Zz3WLWFj/lYOLJWMNF1KDZ/sm3Ig+sTLM70C31AKNzA5HCDKQkKlWjE6IDsJ6gBCE2dwZNApg==";
-      };
-    };
-    "@ot-builder/ot-layout-1.5.3" = {
-      name = "_at_ot-builder_slash_ot-layout";
-      packageName = "@ot-builder/ot-layout";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-layout/-/ot-layout-1.5.3.tgz";
-        sha512 = "3yHkyFYAHZJRUtBO9XCOnVTEsOPpUZEOcxjZ9yznID7CGW3LnFe1CmEByJcWf4YPXNQ7fmu0A4qvKGiB7v5oQw==";
-      };
-    };
-    "@ot-builder/ot-metadata-1.5.3" = {
-      name = "_at_ot-builder_slash_ot-metadata";
-      packageName = "@ot-builder/ot-metadata";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-metadata/-/ot-metadata-1.5.3.tgz";
-        sha512 = "0wgd74aZEeBsCRgVTxXQV+0hrgbgRPIM8LVcaJCoS5G5ADGamlriyFCd0DEJkMOvvEcm7fDw5G/BBNIj0nhsag==";
-      };
-    };
-    "@ot-builder/ot-name-1.5.3" = {
-      name = "_at_ot-builder_slash_ot-name";
-      packageName = "@ot-builder/ot-name";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-name/-/ot-name-1.5.3.tgz";
-        sha512 = "OyLlvvUKulBmwpv6OPipUyN/EWVxyjx2a4LohoYyh5NQKjWuyVcpcknd90LDdCTEEw5WNvkIyo7cqkf3MOehxQ==";
-      };
-    };
-    "@ot-builder/ot-sfnt-1.5.3" = {
-      name = "_at_ot-builder_slash_ot-sfnt";
-      packageName = "@ot-builder/ot-sfnt";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-sfnt/-/ot-sfnt-1.5.3.tgz";
-        sha512 = "YnDHrVTd48LPe7Zhjveije8f04okb/Le55PurHFKmJlWJSG2b6DGXkZd7Dov/jZoiPUeFO6suaRqkw0Em/4mVg==";
-      };
-    };
-    "@ot-builder/ot-standard-glyph-namer-1.5.3" = {
-      name = "_at_ot-builder_slash_ot-standard-glyph-namer";
-      packageName = "@ot-builder/ot-standard-glyph-namer";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-standard-glyph-namer/-/ot-standard-glyph-namer-1.5.3.tgz";
-        sha512 = "j1n938jXFVgHl+QnZVZG/nfKIAD/UgbPHB4kzAl9RKWfQXDBZn9kL8GZ3HpBydIUTAD2YYzYRYMvopfr0p7tww==";
-      };
-    };
-    "@ot-builder/ot-vtt-private-1.5.3" = {
-      name = "_at_ot-builder_slash_ot-vtt-private";
-      packageName = "@ot-builder/ot-vtt-private";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-vtt-private/-/ot-vtt-private-1.5.3.tgz";
-        sha512 = "qz2Rw5ixqCtWj3dWdkVo4rRHfi8vHY42/52IV/Wrs+s1MITCTJEus2GTMCj9Z3W/SkwBvDeC0OGWA3CbdVj3Zw==";
-      };
-    };
-    "@ot-builder/prelude-1.5.3" = {
-      name = "_at_ot-builder_slash_prelude";
-      packageName = "@ot-builder/prelude";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/prelude/-/prelude-1.5.3.tgz";
-        sha512 = "eevWMoYnh4pdQutfCsoSjFUMkGawnBtUllnFxjj/tpfWMSAQFb8vOufQJYP/GS8jn6VKum4+RR88FVgEZ0xPvg==";
-      };
-    };
-    "@ot-builder/primitive-1.5.3" = {
-      name = "_at_ot-builder_slash_primitive";
-      packageName = "@ot-builder/primitive";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/primitive/-/primitive-1.5.3.tgz";
-        sha512 = "iOy+WoWOWFW3dvqTVmh9/qpYHXiqq8cscnWM5IWkOTKJqUICSyacW/qCXIcZejtvTltAHKbIYvNPpNtQl1me/A==";
-      };
-    };
-    "@ot-builder/rectify-1.5.3" = {
-      name = "_at_ot-builder_slash_rectify";
-      packageName = "@ot-builder/rectify";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/rectify/-/rectify-1.5.3.tgz";
-        sha512 = "VSXtw20D1bKZcT7mlMMvn7TW4f3tsObyfJeOcemoIh6HkrbJZYEIhsGO5l260tWOI+XsXVSJeGPGMj0ZlVnuAQ==";
-      };
-    };
-    "@ot-builder/stat-glyphs-1.5.3" = {
-      name = "_at_ot-builder_slash_stat-glyphs";
-      packageName = "@ot-builder/stat-glyphs";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/stat-glyphs/-/stat-glyphs-1.5.3.tgz";
-        sha512 = "4wXLbCM1oKhVoMVRR1YLXM7ncQWI/pYmPd7TKH9TbBEnGAX83+rWcoTUkD5egMftpCVmbpNy6grsAF3/BFQpOg==";
-      };
-    };
-    "@ot-builder/trace-1.5.3" = {
-      name = "_at_ot-builder_slash_trace";
-      packageName = "@ot-builder/trace";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/trace/-/trace-1.5.3.tgz";
-        sha512 = "P1DQOtIDX8as9UGFM9GuUlxXgH3/3Qrizv+HMtFM2FASbn2q7IbIW/MKAO7uIV+UeqW2XAAGV7wRR6/KScGX2w==";
-      };
-    };
-    "@ot-builder/var-store-1.5.3" = {
-      name = "_at_ot-builder_slash_var-store";
-      packageName = "@ot-builder/var-store";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/var-store/-/var-store-1.5.3.tgz";
-        sha512 = "+cMMLYkwgPXx9uaq7aw/8yuXG9/OuULM89GcRJRYJJ/unsPWNefDbTH69J9oKVyRjxc6mfl7jKxwQKbU51Zb2A==";
-      };
-    };
-    "@ot-builder/variance-1.5.3" = {
-      name = "_at_ot-builder_slash_variance";
-      packageName = "@ot-builder/variance";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/variance/-/variance-1.5.3.tgz";
-        sha512 = "H19XizofoeoyJaaH2PjygykKJ7BhTRPWgQk4S+qpzIj/6LUN267tbCyQWomq8OW8EVUwGHuxBqKzQf6iAt7pag==";
-      };
-    };
-    "@types/json5-0.0.29" = {
-      name = "_at_types_slash_json5";
-      packageName = "@types/json5";
-      version = "0.0.29";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz";
-        sha512 = "dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==";
-      };
-    };
-    "@unicode/unicode-14.0.0-1.2.2" = {
-      name = "_at_unicode_slash_unicode-14.0.0";
-      packageName = "@unicode/unicode-14.0.0";
-      version = "1.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@unicode/unicode-14.0.0/-/unicode-14.0.0-1.2.2.tgz";
-        sha512 = "NMs5JhYXGojBQJNJ7DumqktgRqs95Qt1cj6JMPz8lKBfHYRTRn7Am4CdyX/hS1zTn1lKwsWXBpMP9Hp0nelINg==";
-      };
-    };
-    "@xmldom/xmldom-0.8.2" = {
-      name = "_at_xmldom_slash_xmldom";
-      packageName = "@xmldom/xmldom";
-      version = "0.8.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.2.tgz";
-        sha512 = "+R0juSseERyoPvnBQ/cZih6bpF7IpCXlWbHRoCRzYzqpz6gWHOgf8o4MOEf6KBVuOyqU+gCNLkCWVIJAro8XyQ==";
-      };
-    };
-    "acorn-8.7.1" = {
-      name = "acorn";
-      packageName = "acorn";
-      version = "8.7.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz";
-        sha512 = "Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==";
-      };
-    };
-    "acorn-jsx-5.3.2" = {
-      name = "acorn-jsx";
-      packageName = "acorn-jsx";
-      version = "5.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz";
-        sha512 = "rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==";
-      };
-    };
-    "aglfn-1.0.2" = {
-      name = "aglfn";
-      packageName = "aglfn";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/aglfn/-/aglfn-1.0.2.tgz";
-        sha512 = "HUvXd7sNFa1aHtYgJnln2jPwzq7UAAOXhYH/+AY6BMdfXxprMxG8IrczlZn6MjjIWpYhpKR5mHwDWTgehZKO4g==";
-      };
-    };
-    "ajv-6.12.6" = {
-      name = "ajv";
-      packageName = "ajv";
-      version = "6.12.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz";
-        sha512 = "j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==";
-      };
-    };
-    "amdefine-1.0.1" = {
-      name = "amdefine";
-      packageName = "amdefine";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz";
-        sha512 = "S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==";
-      };
-    };
-    "ansi-regex-5.0.1" = {
-      name = "ansi-regex";
-      packageName = "ansi-regex";
-      version = "5.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz";
-        sha512 = "quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==";
-      };
-    };
-    "ansi-styles-4.3.0" = {
-      name = "ansi-styles";
-      packageName = "ansi-styles";
-      version = "4.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz";
-        sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
-      };
-    };
-    "argparse-2.0.1" = {
-      name = "argparse";
-      packageName = "argparse";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz";
-        sha512 = "8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==";
-      };
-    };
-    "array-includes-3.1.5" = {
-      name = "array-includes";
-      packageName = "array-includes";
-      version = "3.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz";
-        sha512 = "iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==";
-      };
-    };
-    "array.prototype.flat-1.3.0" = {
-      name = "array.prototype.flat";
-      packageName = "array.prototype.flat";
-      version = "1.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz";
-        sha512 = "12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==";
-      };
-    };
-    "balanced-match-1.0.2" = {
-      name = "balanced-match";
-      packageName = "balanced-match";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz";
-        sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==";
-      };
-    };
-    "brace-expansion-1.1.11" = {
-      name = "brace-expansion";
-      packageName = "brace-expansion";
-      version = "1.1.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
-        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
-      };
-    };
-    "call-bind-1.0.2" = {
-      name = "call-bind";
-      packageName = "call-bind";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz";
-        sha512 = "7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==";
-      };
-    };
-    "callsites-3.1.0" = {
-      name = "callsites";
-      packageName = "callsites";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz";
-        sha512 = "P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==";
-      };
-    };
-    "chainsaw-0.0.9" = {
-      name = "chainsaw";
-      packageName = "chainsaw";
-      version = "0.0.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/chainsaw/-/chainsaw-0.0.9.tgz";
-        sha512 = "nG8PYH+/4xB+8zkV4G844EtfvZ5tTiLFoX3dZ4nhF4t3OCKIb9UvaFyNmeZO2zOSmRWzBoTD+napN6hiL+EgcA==";
-      };
-    };
-    "chalk-4.1.2" = {
-      name = "chalk";
-      packageName = "chalk";
-      version = "4.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz";
-        sha512 = "oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==";
-      };
-    };
-    "cldr-7.2.0" = {
-      name = "cldr";
-      packageName = "cldr";
-      version = "7.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cldr/-/cldr-7.2.0.tgz";
-        sha512 = "NJB6wpFlIVrS4BhA/Q1a6UuS6MuFr5o2XhfosM6a+W+rad/Rt0HLLX3kuXdRrwHQZvla25iuzTkRnxOKjS+VhQ==";
-      };
-    };
-    "cli-cursor-3.1.0" = {
-      name = "cli-cursor";
-      packageName = "cli-cursor";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz";
-        sha512 = "I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==";
-      };
-    };
-    "clipper-lib-6.4.2" = {
-      name = "clipper-lib";
-      packageName = "clipper-lib";
-      version = "6.4.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/clipper-lib/-/clipper-lib-6.4.2.tgz";
-        sha512 = "knglhjQX5ihNj/XCIs6zCHrTemdvHY3LPZP9XB2nq2/3igyYMFueFXtfp84baJvEE+f8pO1ZS4UVeEgmLnAprQ==";
-      };
-    };
-    "cliui-7.0.4" = {
-      name = "cliui";
-      packageName = "cliui";
-      version = "7.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz";
-        sha512 = "OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==";
-      };
-    };
-    "color-convert-2.0.1" = {
-      name = "color-convert";
-      packageName = "color-convert";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz";
-        sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
-      };
-    };
-    "color-name-1.1.4" = {
-      name = "color-name";
-      packageName = "color-name";
-      version = "1.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz";
-        sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
-      };
-    };
-    "concat-map-0.0.1" = {
-      name = "concat-map";
-      packageName = "concat-map";
-      version = "0.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
-        sha512 = "/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==";
-      };
-    };
-    "cross-spawn-7.0.3" = {
-      name = "cross-spawn";
-      packageName = "cross-spawn";
-      version = "7.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz";
-        sha512 = "iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==";
-      };
-    };
-    "debug-2.6.9" = {
-      name = "debug";
-      packageName = "debug";
-      version = "2.6.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
-        sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
-      };
-    };
-    "debug-3.2.7" = {
-      name = "debug";
-      packageName = "debug";
-      version = "3.2.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz";
-        sha512 = "CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==";
-      };
-    };
-    "debug-4.3.4" = {
-      name = "debug";
-      packageName = "debug";
-      version = "4.3.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz";
-        sha512 = "PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==";
-      };
-    };
-    "deep-is-0.1.4" = {
-      name = "deep-is";
-      packageName = "deep-is";
-      version = "0.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz";
-        sha512 = "oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==";
-      };
-    };
-    "define-properties-1.1.4" = {
-      name = "define-properties";
-      packageName = "define-properties";
-      version = "1.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz";
-        sha512 = "uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==";
-      };
-    };
-    "doctrine-2.1.0" = {
-      name = "doctrine";
-      packageName = "doctrine";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz";
-        sha512 = "35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==";
-      };
-    };
-    "doctrine-3.0.0" = {
-      name = "doctrine";
-      packageName = "doctrine";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz";
-        sha512 = "yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==";
-      };
-    };
-    "emoji-regex-8.0.0" = {
-      name = "emoji-regex";
-      packageName = "emoji-regex";
-      version = "8.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz";
-        sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==";
-      };
-    };
-    "es-abstract-1.20.1" = {
-      name = "es-abstract";
-      packageName = "es-abstract";
-      version = "1.20.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz";
-        sha512 = "WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==";
-      };
-    };
-    "es-shim-unscopables-1.0.0" = {
-      name = "es-shim-unscopables";
-      packageName = "es-shim-unscopables";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz";
-        sha512 = "Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==";
-      };
-    };
-    "es-to-primitive-1.2.1" = {
-      name = "es-to-primitive";
-      packageName = "es-to-primitive";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
-        sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==";
-      };
-    };
-    "escalade-3.1.1" = {
-      name = "escalade";
-      packageName = "escalade";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz";
-        sha512 = "k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==";
-      };
-    };
-    "escape-string-regexp-4.0.0" = {
-      name = "escape-string-regexp";
-      packageName = "escape-string-regexp";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
-        sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==";
-      };
-    };
-    "escodegen-1.3.3" = {
-      name = "escodegen";
-      packageName = "escodegen";
-      version = "1.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/escodegen/-/escodegen-1.3.3.tgz";
-        sha512 = "z9FWgKc48wjMlpzF5ymKS1AF8OIgnKLp9VyN7KbdtyrP/9lndwUFqCtMm+TAJmJf7KJFFYc4cFJfVTTGkKEwsA==";
-      };
-    };
-    "escodegen-2.0.0" = {
-      name = "escodegen";
-      packageName = "escodegen";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz";
-        sha512 = "mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==";
-      };
-    };
-    "escope-1.0.3" = {
-      name = "escope";
-      packageName = "escope";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/escope/-/escope-1.0.3.tgz";
-        sha512 = "PgST3E92KAnuUX/4PXwpE9RI8jubyyTGIN73mfhl0XP4H+hiA7JqvhXNfffs+naSk41Eipq/klcmoGsCrjxPlQ==";
-      };
-    };
-    "eslint-8.18.0" = {
-      name = "eslint";
-      packageName = "eslint";
-      version = "8.18.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz";
-        sha512 = "As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==";
-      };
-    };
-    "eslint-config-prettier-8.5.0" = {
-      name = "eslint-config-prettier";
-      packageName = "eslint-config-prettier";
-      version = "8.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz";
-        sha512 = "obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==";
-      };
-    };
-    "eslint-import-resolver-node-0.3.6" = {
-      name = "eslint-import-resolver-node";
-      packageName = "eslint-import-resolver-node";
-      version = "0.3.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz";
-        sha512 = "0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==";
-      };
-    };
-    "eslint-module-utils-2.7.3" = {
-      name = "eslint-module-utils";
-      packageName = "eslint-module-utils";
-      version = "2.7.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz";
-        sha512 = "088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==";
-      };
-    };
-    "eslint-plugin-import-2.26.0" = {
-      name = "eslint-plugin-import";
-      packageName = "eslint-plugin-import";
-      version = "2.26.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz";
-        sha512 = "hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==";
-      };
-    };
-    "eslint-scope-7.1.1" = {
-      name = "eslint-scope";
-      packageName = "eslint-scope";
-      version = "7.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz";
-        sha512 = "QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==";
-      };
-    };
-    "eslint-utils-3.0.0" = {
-      name = "eslint-utils";
-      packageName = "eslint-utils";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz";
-        sha512 = "uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==";
-      };
-    };
-    "eslint-visitor-keys-2.1.0" = {
-      name = "eslint-visitor-keys";
-      packageName = "eslint-visitor-keys";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz";
-        sha512 = "0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==";
-      };
-    };
-    "eslint-visitor-keys-3.3.0" = {
-      name = "eslint-visitor-keys";
-      packageName = "eslint-visitor-keys";
-      version = "3.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz";
-        sha512 = "mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==";
-      };
-    };
-    "esmangle-1.0.1" = {
-      name = "esmangle";
-      packageName = "esmangle";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/esmangle/-/esmangle-1.0.1.tgz";
-        sha512 = "+vgj0CirCf7fiZ5Cy1VH7ZovC1qh42mB6GBVN3cxLwZgY1CqIvu9xOdDW8il8Y8ym+fiFLCM3crZFku8rBNLOA==";
-      };
-    };
-    "espree-9.3.2" = {
-      name = "espree";
-      packageName = "espree";
-      version = "9.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz";
-        sha512 = "D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==";
-      };
-    };
-    "esprima-1.1.1" = {
-      name = "esprima";
-      packageName = "esprima";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/esprima/-/esprima-1.1.1.tgz";
-        sha512 = "qxxB994/7NtERxgXdFgLHIs9M6bhLXc6qtUmWZ3L8+gTQ9qaoyki2887P2IqAYsoENyr8SUbTutStDniOHSDHg==";
-      };
-    };
-    "esprima-4.0.1" = {
-      name = "esprima";
-      packageName = "esprima";
-      version = "4.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
-        sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
-      };
-    };
-    "esquery-1.4.0" = {
-      name = "esquery";
-      packageName = "esquery";
-      version = "1.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz";
-        sha512 = "cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==";
-      };
-    };
-    "esrecurse-4.3.0" = {
-      name = "esrecurse";
-      packageName = "esrecurse";
-      version = "4.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz";
-        sha512 = "KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==";
-      };
-    };
-    "esshorten-1.1.1" = {
-      name = "esshorten";
-      packageName = "esshorten";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/esshorten/-/esshorten-1.1.1.tgz";
-        sha512 = "jvHUQncAuUI/HOzw1a94cGDdgyRUUcVDABU24X2TRb+y4G3ohSllMKjG+ROQVjj5OEVhXYwwsV+OpLOJ63snEA==";
-      };
-    };
-    "estraverse-1.5.1" = {
-      name = "estraverse";
-      packageName = "estraverse";
-      version = "1.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz";
-        sha512 = "FpCjJDfmo3vsc/1zKSeqR5k42tcIhxFIlvq+h9j0fO2q/h2uLKyweq7rYJ+0CoVvrGQOxIS5wyBrW/+vF58BUQ==";
-      };
-    };
-    "estraverse-2.0.0" = {
-      name = "estraverse";
-      packageName = "estraverse";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/estraverse/-/estraverse-2.0.0.tgz";
-        sha512 = "3liNs3aDBUmf9Hl3YRLqz7Zop0iiTxWaa/ayuxoVS441zjjTPowZJ/uH3y5yhPcXmrLj2rS6Pvu7tfOC7kT61A==";
-      };
-    };
-    "estraverse-4.1.1" = {
-      name = "estraverse";
-      packageName = "estraverse";
-      version = "4.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz";
-        sha512 = "r3gEa6vc6lGQdrXfo834EaaqnOzYmik8JPg8VB95acIMZRjqaHI0/WMZFoMBGPtS+HCgylwTLoc4Y5yl0owOHQ==";
-      };
-    };
-    "estraverse-5.3.0" = {
-      name = "estraverse";
-      packageName = "estraverse";
-      version = "5.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz";
-        sha512 = "MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==";
-      };
-    };
-    "esutils-1.0.0" = {
-      name = "esutils";
-      packageName = "esutils";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz";
-        sha512 = "x/iYH53X3quDwfHRz4y8rn4XcEwwCJeWsul9pF1zldMbGtgOtMNBEOuYWwB1EQlK2LRa1fev3YAgym/RElp5Cg==";
-      };
-    };
-    "esutils-2.0.3" = {
-      name = "esutils";
-      packageName = "esutils";
-      version = "2.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz";
-        sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
-      };
-    };
-    "fast-deep-equal-3.1.3" = {
-      name = "fast-deep-equal";
-      packageName = "fast-deep-equal";
-      version = "3.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
-        sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==";
-      };
-    };
-    "fast-json-stable-stringify-2.1.0" = {
-      name = "fast-json-stable-stringify";
-      packageName = "fast-json-stable-stringify";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
-        sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
-      };
-    };
-    "fast-levenshtein-1.0.7" = {
-      name = "fast-levenshtein";
-      packageName = "fast-levenshtein";
-      version = "1.0.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.0.7.tgz";
-        sha512 = "hYsfI0s4lfQ2rHVFKXwAr/L/ZSbq9TZwgXtZqW7ANcn9o9GKvcbWxOnxx7jykXf/Ezv1V8TvaBEKcGK7DWKX5A==";
-      };
-    };
-    "fast-levenshtein-2.0.6" = {
-      name = "fast-levenshtein";
-      packageName = "fast-levenshtein";
-      version = "2.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
-        sha512 = "DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==";
-      };
-    };
-    "file-entry-cache-6.0.1" = {
-      name = "file-entry-cache";
-      packageName = "file-entry-cache";
-      version = "6.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz";
-        sha512 = "7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==";
-      };
-    };
-    "find-up-2.1.0" = {
-      name = "find-up";
-      packageName = "find-up";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz";
-        sha512 = "NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==";
-      };
-    };
-    "flat-cache-3.0.4" = {
-      name = "flat-cache";
-      packageName = "flat-cache";
-      version = "3.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz";
-        sha512 = "dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==";
-      };
-    };
-    "flatted-3.2.5" = {
-      name = "flatted";
-      packageName = "flatted";
-      version = "3.2.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz";
-        sha512 = "WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==";
-      };
-    };
-    "fs-extra-10.1.0" = {
-      name = "fs-extra";
-      packageName = "fs-extra";
-      version = "10.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz";
-        sha512 = "oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==";
-      };
-    };
-    "fs.realpath-1.0.0" = {
-      name = "fs.realpath";
-      packageName = "fs.realpath";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
-        sha512 = "OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==";
-      };
-    };
-    "function-bind-1.1.1" = {
-      name = "function-bind";
-      packageName = "function-bind";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
-        sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
-      };
-    };
-    "function.prototype.name-1.1.5" = {
-      name = "function.prototype.name";
-      packageName = "function.prototype.name";
-      version = "1.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz";
-        sha512 = "uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==";
-      };
-    };
-    "functional-red-black-tree-1.0.1" = {
-      name = "functional-red-black-tree";
-      packageName = "functional-red-black-tree";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
-        sha512 = "dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==";
-      };
-    };
-    "functions-have-names-1.2.3" = {
-      name = "functions-have-names";
-      packageName = "functions-have-names";
-      version = "1.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz";
-        sha512 = "xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==";
-      };
-    };
-    "get-caller-file-2.0.5" = {
-      name = "get-caller-file";
-      packageName = "get-caller-file";
-      version = "2.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz";
-        sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
-      };
-    };
-    "get-intrinsic-1.1.2" = {
-      name = "get-intrinsic";
-      packageName = "get-intrinsic";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz";
-        sha512 = "Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==";
-      };
-    };
-    "get-symbol-description-1.0.0" = {
-      name = "get-symbol-description";
-      packageName = "get-symbol-description";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz";
-        sha512 = "2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==";
-      };
-    };
-    "glob-7.2.3" = {
-      name = "glob";
-      packageName = "glob";
-      version = "7.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz";
-        sha512 = "nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==";
-      };
-    };
-    "glob-parent-6.0.2" = {
-      name = "glob-parent";
-      packageName = "glob-parent";
-      version = "6.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz";
-        sha512 = "XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==";
-      };
-    };
-    "globals-13.15.0" = {
-      name = "globals";
-      packageName = "globals";
-      version = "13.15.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz";
-        sha512 = "bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==";
-      };
-    };
-    "graceful-fs-4.2.10" = {
-      name = "graceful-fs";
-      packageName = "graceful-fs";
-      version = "4.2.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz";
-        sha512 = "9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==";
-      };
-    };
-    "has-1.0.3" = {
-      name = "has";
-      packageName = "has";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz";
-        sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
-      };
-    };
-    "has-bigints-1.0.2" = {
-      name = "has-bigints";
-      packageName = "has-bigints";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz";
-        sha512 = "tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==";
-      };
-    };
-    "has-flag-4.0.0" = {
-      name = "has-flag";
-      packageName = "has-flag";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz";
-        sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
-      };
-    };
-    "has-property-descriptors-1.0.0" = {
-      name = "has-property-descriptors";
-      packageName = "has-property-descriptors";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz";
-        sha512 = "62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==";
-      };
-    };
-    "has-symbols-1.0.3" = {
-      name = "has-symbols";
-      packageName = "has-symbols";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz";
-        sha512 = "l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==";
-      };
-    };
-    "has-tostringtag-1.0.0" = {
-      name = "has-tostringtag";
-      packageName = "has-tostringtag";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz";
-        sha512 = "kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==";
-      };
-    };
-    "hashish-0.0.4" = {
-      name = "hashish";
-      packageName = "hashish";
-      version = "0.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/hashish/-/hashish-0.0.4.tgz";
-        sha512 = "xyD4XgslstNAs72ENaoFvgMwtv8xhiDtC2AtzCG+8yF7W/Knxxm9BX+e2s25mm+HxMKh0rBmXVOEGF3zNImXvA==";
-      };
-    };
-    "iconv-lite-0.6.3" = {
-      name = "iconv-lite";
-      packageName = "iconv-lite";
-      version = "0.6.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz";
-        sha512 = "4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==";
-      };
-    };
-    "ignore-5.2.0" = {
-      name = "ignore";
-      packageName = "ignore";
-      version = "5.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz";
-        sha512 = "CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==";
-      };
-    };
-    "import-fresh-3.3.0" = {
-      name = "import-fresh";
-      packageName = "import-fresh";
-      version = "3.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz";
-        sha512 = "veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==";
-      };
-    };
-    "imurmurhash-0.1.4" = {
-      name = "imurmurhash";
-      packageName = "imurmurhash";
-      version = "0.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz";
-        sha512 = "JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==";
-      };
-    };
-    "inflight-1.0.6" = {
-      name = "inflight";
-      packageName = "inflight";
-      version = "1.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
-        sha512 = "k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==";
-      };
-    };
-    "inherits-2.0.4" = {
-      name = "inherits";
-      packageName = "inherits";
-      version = "2.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
-        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
-      };
-    };
-    "internal-slot-1.0.3" = {
-      name = "internal-slot";
-      packageName = "internal-slot";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz";
-        sha512 = "O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==";
-      };
-    };
-    "is-bigint-1.0.4" = {
-      name = "is-bigint";
-      packageName = "is-bigint";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz";
-        sha512 = "zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==";
-      };
-    };
-    "is-boolean-object-1.1.2" = {
-      name = "is-boolean-object";
-      packageName = "is-boolean-object";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz";
-        sha512 = "gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==";
-      };
-    };
-    "is-callable-1.2.4" = {
-      name = "is-callable";
-      packageName = "is-callable";
-      version = "1.2.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz";
-        sha512 = "nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==";
-      };
-    };
-    "is-core-module-2.9.0" = {
-      name = "is-core-module";
-      packageName = "is-core-module";
-      version = "2.9.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz";
-        sha512 = "+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==";
-      };
-    };
-    "is-date-object-1.0.5" = {
-      name = "is-date-object";
-      packageName = "is-date-object";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz";
-        sha512 = "9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==";
-      };
-    };
-    "is-extglob-2.1.1" = {
-      name = "is-extglob";
-      packageName = "is-extglob";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz";
-        sha512 = "SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==";
-      };
-    };
-    "is-fullwidth-code-point-3.0.0" = {
-      name = "is-fullwidth-code-point";
-      packageName = "is-fullwidth-code-point";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
-        sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
-      };
-    };
-    "is-glob-4.0.3" = {
-      name = "is-glob";
-      packageName = "is-glob";
-      version = "4.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz";
-        sha512 = "xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==";
-      };
-    };
-    "is-negative-zero-2.0.2" = {
-      name = "is-negative-zero";
-      packageName = "is-negative-zero";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz";
-        sha512 = "dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==";
-      };
-    };
-    "is-number-object-1.0.7" = {
-      name = "is-number-object";
-      packageName = "is-number-object";
-      version = "1.0.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz";
-        sha512 = "k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==";
-      };
-    };
-    "is-regex-1.1.4" = {
-      name = "is-regex";
-      packageName = "is-regex";
-      version = "1.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz";
-        sha512 = "kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==";
-      };
-    };
-    "is-shared-array-buffer-1.0.2" = {
-      name = "is-shared-array-buffer";
-      packageName = "is-shared-array-buffer";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz";
-        sha512 = "sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==";
-      };
-    };
-    "is-string-1.0.7" = {
-      name = "is-string";
-      packageName = "is-string";
-      version = "1.0.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz";
-        sha512 = "tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==";
-      };
-    };
-    "is-symbol-1.0.4" = {
-      name = "is-symbol";
-      packageName = "is-symbol";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz";
-        sha512 = "C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==";
-      };
-    };
-    "is-weakref-1.0.2" = {
-      name = "is-weakref";
-      packageName = "is-weakref";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz";
-        sha512 = "qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==";
-      };
-    };
-    "isexe-2.0.0" = {
-      name = "isexe";
-      packageName = "isexe";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz";
-        sha512 = "RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==";
-      };
-    };
-    "js-yaml-4.1.0" = {
-      name = "js-yaml";
-      packageName = "js-yaml";
-      version = "4.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz";
-        sha512 = "wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==";
-      };
-    };
-    "json-schema-traverse-0.4.1" = {
-      name = "json-schema-traverse";
-      packageName = "json-schema-traverse";
-      version = "0.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
-        sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==";
-      };
-    };
-    "json-stable-stringify-without-jsonify-1.0.1" = {
-      name = "json-stable-stringify-without-jsonify";
-      packageName = "json-stable-stringify-without-jsonify";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
-        sha512 = "Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==";
-      };
-    };
-    "json5-1.0.1" = {
-      name = "json5";
-      packageName = "json5";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz";
-        sha512 = "aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==";
-      };
-    };
-    "jsonfile-6.1.0" = {
-      name = "jsonfile";
-      packageName = "jsonfile";
-      version = "6.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz";
-        sha512 = "5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==";
-      };
-    };
-    "levn-0.2.5" = {
-      name = "levn";
-      packageName = "levn";
-      version = "0.2.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/levn/-/levn-0.2.5.tgz";
-        sha512 = "mvp+NO++YH0B+e8cC/SvJxk6k5Z9Ngd3iXuz7tmT8vZCyQZj/5SI1GkFOiZGGPkm5wWGI9SUrqiAfPq7BJH+0w==";
-      };
-    };
-    "levn-0.3.0" = {
-      name = "levn";
-      packageName = "levn";
-      version = "0.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz";
-        sha512 = "0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==";
-      };
-    };
-    "levn-0.4.1" = {
-      name = "levn";
-      packageName = "levn";
-      version = "0.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz";
-        sha512 = "+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==";
-      };
-    };
-    "locate-path-2.0.0" = {
-      name = "locate-path";
-      packageName = "locate-path";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz";
-        sha512 = "NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==";
-      };
-    };
-    "lodash.merge-4.6.2" = {
-      name = "lodash.merge";
-      packageName = "lodash.merge";
-      version = "4.6.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz";
-        sha512 = "0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==";
-      };
-    };
-    "lru-cache-2.5.0" = {
-      name = "lru-cache";
-      packageName = "lru-cache";
-      version = "2.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz";
-        sha512 = "dVmQmXPBlTgFw77hm60ud//l2bCuDKkqC2on1EBoM7s9Urm9IQDrnujwZ93NFnAq0dVZ0HBXTS7PwEG+YE7+EQ==";
-      };
-    };
-    "lru-cache-6.0.0" = {
-      name = "lru-cache";
-      packageName = "lru-cache";
-      version = "6.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz";
-        sha512 = "Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==";
-      };
-    };
-    "memoizeasync-1.1.0" = {
-      name = "memoizeasync";
-      packageName = "memoizeasync";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/memoizeasync/-/memoizeasync-1.1.0.tgz";
-        sha512 = "HMfzdLqClZo8HMyuM9B6TqnXCNhw82iVWRLqd2cAdXi063v2iJB4mQfWFeKVByN8VUwhmDZ8NMhryBwKrPRf8Q==";
-      };
-    };
-    "mimic-fn-2.1.0" = {
-      name = "mimic-fn";
-      packageName = "mimic-fn";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz";
-        sha512 = "OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==";
-      };
-    };
-    "minimatch-3.1.2" = {
-      name = "minimatch";
-      packageName = "minimatch";
-      version = "3.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz";
-        sha512 = "J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==";
-      };
-    };
-    "minimist-1.2.6" = {
-      name = "minimist";
-      packageName = "minimist";
-      version = "1.2.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz";
-        sha512 = "Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==";
-      };
-    };
-    "ms-2.0.0" = {
-      name = "ms";
-      packageName = "ms";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
-        sha512 = "Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==";
-      };
-    };
-    "ms-2.1.2" = {
-      name = "ms";
-      packageName = "ms";
-      version = "2.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
-        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
-      };
-    };
-    "natural-compare-1.4.0" = {
-      name = "natural-compare";
-      packageName = "natural-compare";
-      version = "1.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz";
-        sha512 = "OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==";
-      };
-    };
-    "object-inspect-1.12.2" = {
-      name = "object-inspect";
-      packageName = "object-inspect";
-      version = "1.12.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz";
-        sha512 = "z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==";
-      };
-    };
-    "object-keys-1.1.1" = {
-      name = "object-keys";
-      packageName = "object-keys";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz";
-        sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==";
-      };
-    };
-    "object.assign-4.1.2" = {
-      name = "object.assign";
-      packageName = "object.assign";
-      version = "4.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz";
-        sha512 = "ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==";
-      };
-    };
-    "object.values-1.1.5" = {
-      name = "object.values";
-      packageName = "object.values";
-      version = "1.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz";
-        sha512 = "QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==";
-      };
-    };
-    "once-1.4.0" = {
-      name = "once";
-      packageName = "once";
-      version = "1.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
-        sha512 = "lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==";
-      };
-    };
-    "onetime-5.1.2" = {
-      name = "onetime";
-      packageName = "onetime";
-      version = "5.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz";
-        sha512 = "kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==";
-      };
-    };
-    "optionator-0.3.0" = {
-      name = "optionator";
-      packageName = "optionator";
-      version = "0.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/optionator/-/optionator-0.3.0.tgz";
-        sha512 = "qM6AKy0HNNRczFIFciGVSkh6H5yu8kC2hdgqElG8pM6IvQwFYVBd3aUrqjsgZtauuGZr2u/Nf+wLzlZgeCqpSQ==";
-      };
-    };
-    "optionator-0.8.3" = {
-      name = "optionator";
-      packageName = "optionator";
-      version = "0.8.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz";
-        sha512 = "+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==";
-      };
-    };
-    "optionator-0.9.1" = {
-      name = "optionator";
-      packageName = "optionator";
-      version = "0.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz";
-        sha512 = "74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==";
-      };
-    };
-    "ot-builder-1.5.3" = {
-      name = "ot-builder";
-      packageName = "ot-builder";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ot-builder/-/ot-builder-1.5.3.tgz";
-        sha512 = "SLKp4TM/4ZUVLUMKHOVoZajocaC5WmcY9H3r7PIfCbHUQXLfcsRvo3OIo5vcRZLG3dvZ71eoQr9GqSICvaZEcw==";
-      };
-    };
-    "otb-ttc-bundle-1.5.3" = {
-      name = "otb-ttc-bundle";
-      packageName = "otb-ttc-bundle";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/otb-ttc-bundle/-/otb-ttc-bundle-1.5.3.tgz";
-        sha512 = "Uq2trJQEGM1a8z1C0sNgVS6FxsNP6YLWJD2+bH5K53ARnxXNzEINf0lckmgLLClW/uScALn8OlNXhD7vnbdZ6w==";
-      };
-    };
-    "p-limit-1.3.0" = {
-      name = "p-limit";
-      packageName = "p-limit";
-      version = "1.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz";
-        sha512 = "vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==";
-      };
-    };
-    "p-locate-2.0.0" = {
-      name = "p-locate";
-      packageName = "p-locate";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz";
-        sha512 = "nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==";
-      };
-    };
-    "p-try-1.0.0" = {
-      name = "p-try";
-      packageName = "p-try";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz";
-        sha512 = "U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==";
-      };
-    };
-    "parent-module-1.0.1" = {
-      name = "parent-module";
-      packageName = "parent-module";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz";
-        sha512 = "GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==";
-      };
-    };
-    "passerror-1.1.1" = {
-      name = "passerror";
-      packageName = "passerror";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/passerror/-/passerror-1.1.1.tgz";
-        sha512 = "PwrEQJBkJMxnxG+tdraz95vTstYnCRqiURNbGtg/vZHLgcAODc9hbiD5ZumGUoh3bpw0F0qKLje7Vd2Fd5Lx3g==";
-      };
-    };
-    "patel-0.38.0" = {
-      name = "patel";
-      packageName = "patel";
-      version = "0.38.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/patel/-/patel-0.38.0.tgz";
-        sha512 = "Bzhgo3HTG1phko50ULaBEi7wBZxJLgt0BZDJDjdIhSz+ZlhsY6+yDvXAJcXAtTwcqSR4F5j2Yc2Gqkornk9D5A==";
-      };
-    };
-    "path-exists-3.0.0" = {
-      name = "path-exists";
-      packageName = "path-exists";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz";
-        sha512 = "bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==";
-      };
-    };
-    "path-is-absolute-1.0.1" = {
-      name = "path-is-absolute";
-      packageName = "path-is-absolute";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
-        sha512 = "AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==";
-      };
-    };
-    "path-key-3.1.1" = {
-      name = "path-key";
-      packageName = "path-key";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz";
-        sha512 = "ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==";
-      };
-    };
-    "path-parse-1.0.7" = {
-      name = "path-parse";
-      packageName = "path-parse";
-      version = "1.0.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz";
-        sha512 = "LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==";
-      };
-    };
-    "patrisika-0.25.0" = {
-      name = "patrisika";
-      packageName = "patrisika";
-      version = "0.25.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/patrisika/-/patrisika-0.25.0.tgz";
-        sha512 = "Kevy01SFkhzON30J1nKVzHPdoJmkmRY2HG+OIFeI/IT4eBveQwbrE3Q2beEx9t02HhMyAlnYFXt0z5wNY6mePA==";
-      };
-    };
-    "patrisika-scopes-0.12.0" = {
-      name = "patrisika-scopes";
-      packageName = "patrisika-scopes";
-      version = "0.12.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/patrisika-scopes/-/patrisika-scopes-0.12.0.tgz";
-        sha512 = "rj428KYq5leS75PCDl6iyl91n6/d63yw1ikHYwd1z9UXwWk11Vj2gpTu0CxjLZJJOiFNA01LiX+WMpC5icCKng==";
-      };
-    };
-    "pegjs-0.10.0" = {
-      name = "pegjs";
-      packageName = "pegjs";
-      version = "0.10.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz";
-        sha512 = "qI5+oFNEGi3L5HAxDwN2LA4Gg7irF70Zs25edhjld9QemOgp0CbvMtbFcMvFtEo1OityPrcCzkQFB8JP/hxgow==";
-      };
-    };
-    "prelude-ls-1.1.2" = {
-      name = "prelude-ls";
-      packageName = "prelude-ls";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz";
-        sha512 = "ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==";
-      };
-    };
-    "prelude-ls-1.2.1" = {
-      name = "prelude-ls";
-      packageName = "prelude-ls";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz";
-        sha512 = "vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==";
-      };
-    };
-    "prettier-2.7.1" = {
-      name = "prettier";
-      packageName = "prettier";
-      version = "2.7.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz";
-        sha512 = "ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==";
-      };
-    };
-    "punycode-2.1.1" = {
-      name = "punycode";
-      packageName = "punycode";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
-        sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
-      };
-    };
-    "regexp.prototype.flags-1.4.3" = {
-      name = "regexp.prototype.flags";
-      packageName = "regexp.prototype.flags";
-      version = "1.4.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz";
-        sha512 = "fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==";
-      };
-    };
-    "regexpp-3.2.0" = {
-      name = "regexpp";
-      packageName = "regexpp";
-      version = "3.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz";
-        sha512 = "pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==";
-      };
-    };
-    "require-directory-2.1.1" = {
-      name = "require-directory";
-      packageName = "require-directory";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz";
-        sha512 = "fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==";
-      };
-    };
-    "resolve-1.22.1" = {
-      name = "resolve";
-      packageName = "resolve";
-      version = "1.22.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz";
-        sha512 = "nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==";
-      };
-    };
-    "resolve-from-4.0.0" = {
-      name = "resolve-from";
-      packageName = "resolve-from";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz";
-        sha512 = "pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==";
-      };
-    };
-    "restore-cursor-3.1.0" = {
-      name = "restore-cursor";
-      packageName = "restore-cursor";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz";
-        sha512 = "l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==";
-      };
-    };
-    "resumer-0.0.0" = {
-      name = "resumer";
-      packageName = "resumer";
-      version = "0.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz";
-        sha512 = "Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w==";
-      };
-    };
-    "rimraf-3.0.2" = {
-      name = "rimraf";
-      packageName = "rimraf";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz";
-        sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
-      };
-    };
-    "safer-buffer-2.1.2" = {
-      name = "safer-buffer";
-      packageName = "safer-buffer";
-      version = "2.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
-        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
-      };
-    };
-    "semaphore-async-await-1.5.1" = {
-      name = "semaphore-async-await";
-      packageName = "semaphore-async-await";
-      version = "1.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz";
-        sha512 = "b/ptP11hETwYWpeilHXXQiV5UJNJl7ZWWooKRE5eBIYWoom6dZ0SluCIdCtKycsMtZgKWE01/qAw6jblw1YVhg==";
-      };
-    };
-    "semver-7.3.7" = {
-      name = "semver";
-      packageName = "semver";
-      version = "7.3.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz";
-        sha512 = "QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==";
-      };
-    };
-    "seq-0.3.5" = {
-      name = "seq";
-      packageName = "seq";
-      version = "0.3.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/seq/-/seq-0.3.5.tgz";
-        sha512 = "sisY2Ln1fj43KBkRtXkesnRHYNdswIkIibvNe/0UKm2GZxjMbqmccpiatoKr/k2qX5VKiLU8xm+tz/74LAho4g==";
-      };
-    };
-    "shebang-command-2.0.0" = {
-      name = "shebang-command";
-      packageName = "shebang-command";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz";
-        sha512 = "kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==";
-      };
-    };
-    "shebang-regex-3.0.0" = {
-      name = "shebang-regex";
-      packageName = "shebang-regex";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz";
-        sha512 = "7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==";
-      };
-    };
-    "side-channel-1.0.4" = {
-      name = "side-channel";
-      packageName = "side-channel";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz";
-        sha512 = "q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==";
-      };
-    };
-    "signal-exit-3.0.7" = {
-      name = "signal-exit";
-      packageName = "signal-exit";
-      version = "3.0.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz";
-        sha512 = "wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==";
-      };
-    };
-    "source-map-0.1.43" = {
-      name = "source-map";
-      packageName = "source-map";
-      version = "0.1.43";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz";
-        sha512 = "VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==";
-      };
-    };
-    "source-map-0.6.1" = {
-      name = "source-map";
-      packageName = "source-map";
-      version = "0.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz";
-        sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
-      };
-    };
-    "spiro-3.0.0" = {
-      name = "spiro";
-      packageName = "spiro";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/spiro/-/spiro-3.0.0.tgz";
-        sha512 = "UEhtLWA8fDQuExOKpT3FLa7Rk238G5Bm3wGAxbvnah3H2X6yEL4blIkAsc38wNwMXBwQFRYE6l0Q9X0t1izOxA==";
-      };
-    };
-    "string-width-4.2.3" = {
-      name = "string-width";
-      packageName = "string-width";
-      version = "4.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz";
-        sha512 = "wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==";
-      };
-    };
-    "string.prototype.trimend-1.0.5" = {
-      name = "string.prototype.trimend";
-      packageName = "string.prototype.trimend";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz";
-        sha512 = "I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==";
-      };
-    };
-    "string.prototype.trimstart-1.0.5" = {
-      name = "string.prototype.trimstart";
-      packageName = "string.prototype.trimstart";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz";
-        sha512 = "THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==";
-      };
-    };
-    "strip-ansi-6.0.1" = {
-      name = "strip-ansi";
-      packageName = "strip-ansi";
-      version = "6.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz";
-        sha512 = "Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==";
-      };
-    };
-    "strip-bom-3.0.0" = {
-      name = "strip-bom";
-      packageName = "strip-bom";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz";
-        sha512 = "vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==";
-      };
-    };
-    "strip-json-comments-3.1.1" = {
-      name = "strip-json-comments";
-      packageName = "strip-json-comments";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
-        sha512 = "6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==";
-      };
-    };
-    "supports-color-7.2.0" = {
-      name = "supports-color";
-      packageName = "supports-color";
-      version = "7.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
-        sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
-      };
-    };
-    "supports-preserve-symlinks-flag-1.0.0" = {
-      name = "supports-preserve-symlinks-flag";
-      packageName = "supports-preserve-symlinks-flag";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz";
-        sha512 = "ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==";
-      };
-    };
-    "text-table-0.2.0" = {
-      name = "text-table";
-      packageName = "text-table";
-      version = "0.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz";
-        sha512 = "N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==";
-      };
-    };
-    "through-2.3.8" = {
-      name = "through";
-      packageName = "through";
-      version = "2.3.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz";
-        sha512 = "w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==";
-      };
-    };
-    "toposort-2.0.2" = {
-      name = "toposort";
-      packageName = "toposort";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz";
-        sha512 = "0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==";
-      };
-    };
-    "traverse-0.3.9" = {
-      name = "traverse";
-      packageName = "traverse";
-      version = "0.3.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz";
-        sha512 = "iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==";
-      };
-    };
-    "tsconfig-paths-3.14.1" = {
-      name = "tsconfig-paths";
-      packageName = "tsconfig-paths";
-      version = "3.14.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz";
-        sha512 = "fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==";
-      };
-    };
-    "tslib-2.4.0" = {
-      name = "tslib";
-      packageName = "tslib";
-      version = "2.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz";
-        sha512 = "d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==";
-      };
-    };
-    "type-check-0.3.2" = {
-      name = "type-check";
-      packageName = "type-check";
-      version = "0.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz";
-        sha512 = "ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==";
-      };
-    };
-    "type-check-0.4.0" = {
-      name = "type-check";
-      packageName = "type-check";
-      version = "0.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz";
-        sha512 = "XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==";
-      };
-    };
-    "type-fest-0.20.2" = {
-      name = "type-fest";
-      packageName = "type-fest";
-      version = "0.20.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz";
-        sha512 = "Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==";
-      };
-    };
-    "typo-geom-0.12.1" = {
-      name = "typo-geom";
-      packageName = "typo-geom";
-      version = "0.12.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/typo-geom/-/typo-geom-0.12.1.tgz";
-        sha512 = "W20RYp2OCEGMhEYayR0cAP67AUWiGRUufMs6Clul7MAmu5SpLuOG/RWk7+LkL65wsugcfhPQlFEJ231C2xHNQg==";
-      };
-    };
-    "unbox-primitive-1.0.2" = {
-      name = "unbox-primitive";
-      packageName = "unbox-primitive";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz";
-        sha512 = "61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==";
-      };
-    };
-    "unicoderegexp-0.4.1" = {
-      name = "unicoderegexp";
-      packageName = "unicoderegexp";
-      version = "0.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/unicoderegexp/-/unicoderegexp-0.4.1.tgz";
-        sha512 = "ydh8D5mdd2ldTS25GtZJEgLciuF0Qf2n3rwPhonELk3HioX201ClYGvZMc1bCmx6nblZiADQwbMWekeIqs51qw==";
-      };
-    };
-    "universalify-2.0.0" = {
-      name = "universalify";
-      packageName = "universalify";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz";
-        sha512 = "hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==";
-      };
-    };
-    "uri-js-4.4.1" = {
-      name = "uri-js";
-      packageName = "uri-js";
-      version = "4.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz";
-        sha512 = "7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==";
-      };
-    };
-    "uuid-8.3.2" = {
-      name = "uuid";
-      packageName = "uuid";
-      version = "8.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz";
-        sha512 = "+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==";
-      };
-    };
-    "v8-compile-cache-2.3.0" = {
-      name = "v8-compile-cache";
-      packageName = "v8-compile-cache";
-      version = "2.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz";
-        sha512 = "l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==";
-      };
-    };
-    "verda-1.10.0" = {
-      name = "verda";
-      packageName = "verda";
-      version = "1.10.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/verda/-/verda-1.10.0.tgz";
-        sha512 = "euo21L72IMCzrQ9GrYGEI1kmQT6bgKcfJaa0zr4a+FpODsOrszDk55SYsvAqKUMzgXJHAGh4LvE9ytu45E79OA==";
-      };
-    };
-    "wawoff2-2.0.1" = {
-      name = "wawoff2";
-      packageName = "wawoff2";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/wawoff2/-/wawoff2-2.0.1.tgz";
-        sha512 = "r0CEmvpH63r4T15ebFqeOjGqU4+EgTx4I510NtK35EMciSdcTxCw3Byy3JnBonz7iyIFZ0AbVo0bbFpEVuhCYA==";
-      };
-    };
-    "which-2.0.2" = {
-      name = "which";
-      packageName = "which";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/which/-/which-2.0.2.tgz";
-        sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==";
-      };
-    };
-    "which-boxed-primitive-1.0.2" = {
-      name = "which-boxed-primitive";
-      packageName = "which-boxed-primitive";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz";
-        sha512 = "bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==";
-      };
-    };
-    "word-wrap-1.2.3" = {
-      name = "word-wrap";
-      packageName = "word-wrap";
-      version = "1.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz";
-        sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==";
-      };
-    };
-    "wordwrap-0.0.3" = {
-      name = "wordwrap";
-      packageName = "wordwrap";
-      version = "0.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz";
-        sha512 = "1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==";
-      };
-    };
-    "wrap-ansi-7.0.0" = {
-      name = "wrap-ansi";
-      packageName = "wrap-ansi";
-      version = "7.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz";
-        sha512 = "YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==";
-      };
-    };
-    "wrappy-1.0.2" = {
-      name = "wrappy";
-      packageName = "wrappy";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
-        sha512 = "l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==";
-      };
-    };
-    "xpath-0.0.32" = {
-      name = "xpath";
-      packageName = "xpath";
-      version = "0.0.32";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/xpath/-/xpath-0.0.32.tgz";
-        sha512 = "rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw==";
-      };
-    };
-    "y18n-5.0.8" = {
-      name = "y18n";
-      packageName = "y18n";
-      version = "5.0.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz";
-        sha512 = "0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==";
-      };
-    };
-    "yallist-4.0.0" = {
-      name = "yallist";
-      packageName = "yallist";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz";
-        sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==";
-      };
-    };
-    "yargs-16.2.0" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "16.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz";
-        sha512 = "D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==";
-      };
-    };
-    "yargs-17.5.1" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "17.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz";
-        sha512 = "t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==";
-      };
-    };
-    "yargs-parser-20.2.9" = {
-      name = "yargs-parser";
-      packageName = "yargs-parser";
-      version = "20.2.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz";
-        sha512 = "y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==";
-      };
-    };
-    "yargs-parser-21.0.1" = {
-      name = "yargs-parser";
-      packageName = "yargs-parser";
-      version = "21.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz";
-        sha512 = "9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==";
-      };
-    };
-  };
-  args = {
-    name = "iosevka";
-    packageName = "iosevka";
-    version = "15.6.3";
-    src = ./.;
-    dependencies = [
-      sources."@eslint/eslintrc-1.3.0"
-      sources."@humanwhocodes/config-array-0.9.5"
-      sources."@humanwhocodes/object-schema-1.2.1"
-      sources."@iarna/toml-2.2.5"
-      sources."@msgpack/msgpack-2.7.2"
-      sources."@ot-builder/bin-composite-types-1.5.3"
-      sources."@ot-builder/bin-util-1.5.3"
-      sources."@ot-builder/cli-help-shower-1.5.3"
-      sources."@ot-builder/cli-proc-1.5.3"
-      sources."@ot-builder/cli-shared-1.5.3"
-      sources."@ot-builder/common-impl-1.5.3"
-      sources."@ot-builder/errors-1.5.3"
-      sources."@ot-builder/io-bin-cff-1.5.3"
-      sources."@ot-builder/io-bin-encoding-1.5.3"
-      sources."@ot-builder/io-bin-ext-private-1.5.3"
-      sources."@ot-builder/io-bin-font-1.5.3"
-      sources."@ot-builder/io-bin-glyph-store-1.5.3"
-      sources."@ot-builder/io-bin-layout-1.5.3"
-      sources."@ot-builder/io-bin-metadata-1.5.3"
-      sources."@ot-builder/io-bin-metric-1.5.3"
-      sources."@ot-builder/io-bin-name-1.5.3"
-      sources."@ot-builder/io-bin-sfnt-1.5.3"
-      sources."@ot-builder/io-bin-ttf-1.5.3"
-      sources."@ot-builder/io-bin-vtt-private-1.5.3"
-      sources."@ot-builder/ot-1.5.3"
-      sources."@ot-builder/ot-encoding-1.5.3"
-      sources."@ot-builder/ot-ext-private-1.5.3"
-      sources."@ot-builder/ot-glyphs-1.5.3"
-      sources."@ot-builder/ot-layout-1.5.3"
-      sources."@ot-builder/ot-metadata-1.5.3"
-      sources."@ot-builder/ot-name-1.5.3"
-      sources."@ot-builder/ot-sfnt-1.5.3"
-      sources."@ot-builder/ot-standard-glyph-namer-1.5.3"
-      sources."@ot-builder/ot-vtt-private-1.5.3"
-      sources."@ot-builder/prelude-1.5.3"
-      sources."@ot-builder/primitive-1.5.3"
-      sources."@ot-builder/rectify-1.5.3"
-      sources."@ot-builder/stat-glyphs-1.5.3"
-      sources."@ot-builder/trace-1.5.3"
-      sources."@ot-builder/var-store-1.5.3"
-      sources."@ot-builder/variance-1.5.3"
-      sources."@types/json5-0.0.29"
-      sources."@unicode/unicode-14.0.0-1.2.2"
-      sources."@xmldom/xmldom-0.8.2"
-      sources."acorn-8.7.1"
-      sources."acorn-jsx-5.3.2"
-      sources."aglfn-1.0.2"
-      sources."ajv-6.12.6"
-      sources."amdefine-1.0.1"
-      sources."ansi-regex-5.0.1"
-      sources."ansi-styles-4.3.0"
-      sources."argparse-2.0.1"
-      sources."array-includes-3.1.5"
-      sources."array.prototype.flat-1.3.0"
-      sources."balanced-match-1.0.2"
-      sources."brace-expansion-1.1.11"
-      sources."call-bind-1.0.2"
-      sources."callsites-3.1.0"
-      sources."chainsaw-0.0.9"
-      sources."chalk-4.1.2"
-      sources."cldr-7.2.0"
-      sources."cli-cursor-3.1.0"
-      sources."clipper-lib-6.4.2"
-      sources."cliui-7.0.4"
-      sources."color-convert-2.0.1"
-      sources."color-name-1.1.4"
-      sources."concat-map-0.0.1"
-      sources."cross-spawn-7.0.3"
-      sources."debug-4.3.4"
-      sources."deep-is-0.1.4"
-      sources."define-properties-1.1.4"
-      sources."doctrine-3.0.0"
-      sources."emoji-regex-8.0.0"
-      sources."es-abstract-1.20.1"
-      sources."es-shim-unscopables-1.0.0"
-      sources."es-to-primitive-1.2.1"
-      sources."escalade-3.1.1"
-      sources."escape-string-regexp-4.0.0"
-      sources."escodegen-2.0.0"
-      (sources."escope-1.0.3" // {
-        dependencies = [
-          sources."estraverse-2.0.0"
-        ];
-      })
-      (sources."eslint-8.18.0" // {
-        dependencies = [
-          sources."optionator-0.9.1"
-        ];
-      })
-      sources."eslint-config-prettier-8.5.0"
-      (sources."eslint-import-resolver-node-0.3.6" // {
-        dependencies = [
-          sources."debug-3.2.7"
-        ];
-      })
-      (sources."eslint-module-utils-2.7.3" // {
-        dependencies = [
-          sources."debug-3.2.7"
-        ];
-      })
-      (sources."eslint-plugin-import-2.26.0" // {
-        dependencies = [
-          sources."debug-2.6.9"
-          sources."doctrine-2.1.0"
-          sources."ms-2.0.0"
-        ];
-      })
-      sources."eslint-scope-7.1.1"
-      (sources."eslint-utils-3.0.0" // {
-        dependencies = [
-          sources."eslint-visitor-keys-2.1.0"
-        ];
-      })
-      sources."eslint-visitor-keys-3.3.0"
-      (sources."esmangle-1.0.1" // {
-        dependencies = [
-          sources."escodegen-1.3.3"
-          sources."esprima-1.1.1"
-          sources."estraverse-1.5.1"
-          sources."esutils-1.0.0"
-          sources."fast-levenshtein-1.0.7"
-          sources."levn-0.2.5"
-          sources."optionator-0.3.0"
-          sources."prelude-ls-1.1.2"
-          sources."source-map-0.1.43"
-          sources."type-check-0.3.2"
-        ];
-      })
-      sources."espree-9.3.2"
-      sources."esprima-4.0.1"
-      sources."esquery-1.4.0"
-      sources."esrecurse-4.3.0"
-      (sources."esshorten-1.1.1" // {
-        dependencies = [
-          sources."estraverse-4.1.1"
-        ];
-      })
-      sources."estraverse-5.3.0"
-      sources."esutils-2.0.3"
-      sources."fast-deep-equal-3.1.3"
-      sources."fast-json-stable-stringify-2.1.0"
-      sources."fast-levenshtein-2.0.6"
-      sources."file-entry-cache-6.0.1"
-      sources."find-up-2.1.0"
-      sources."flat-cache-3.0.4"
-      sources."flatted-3.2.5"
-      sources."fs-extra-10.1.0"
-      sources."fs.realpath-1.0.0"
-      sources."function-bind-1.1.1"
-      sources."function.prototype.name-1.1.5"
-      sources."functional-red-black-tree-1.0.1"
-      sources."functions-have-names-1.2.3"
-      sources."get-caller-file-2.0.5"
-      sources."get-intrinsic-1.1.2"
-      sources."get-symbol-description-1.0.0"
-      sources."glob-7.2.3"
-      sources."glob-parent-6.0.2"
-      sources."globals-13.15.0"
-      sources."graceful-fs-4.2.10"
-      sources."has-1.0.3"
-      sources."has-bigints-1.0.2"
-      sources."has-flag-4.0.0"
-      sources."has-property-descriptors-1.0.0"
-      sources."has-symbols-1.0.3"
-      sources."has-tostringtag-1.0.0"
-      sources."hashish-0.0.4"
-      sources."iconv-lite-0.6.3"
-      sources."ignore-5.2.0"
-      sources."import-fresh-3.3.0"
-      sources."imurmurhash-0.1.4"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.4"
-      sources."internal-slot-1.0.3"
-      sources."is-bigint-1.0.4"
-      sources."is-boolean-object-1.1.2"
-      sources."is-callable-1.2.4"
-      sources."is-core-module-2.9.0"
-      sources."is-date-object-1.0.5"
-      sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-3.0.0"
-      sources."is-glob-4.0.3"
-      sources."is-negative-zero-2.0.2"
-      sources."is-number-object-1.0.7"
-      sources."is-regex-1.1.4"
-      sources."is-shared-array-buffer-1.0.2"
-      sources."is-string-1.0.7"
-      sources."is-symbol-1.0.4"
-      sources."is-weakref-1.0.2"
-      sources."isexe-2.0.0"
-      sources."js-yaml-4.1.0"
-      sources."json-schema-traverse-0.4.1"
-      sources."json-stable-stringify-without-jsonify-1.0.1"
-      sources."json5-1.0.1"
-      sources."jsonfile-6.1.0"
-      sources."levn-0.4.1"
-      sources."locate-path-2.0.0"
-      sources."lodash.merge-4.6.2"
-      sources."lru-cache-2.5.0"
-      sources."memoizeasync-1.1.0"
-      sources."mimic-fn-2.1.0"
-      sources."minimatch-3.1.2"
-      sources."minimist-1.2.6"
-      sources."ms-2.1.2"
-      sources."natural-compare-1.4.0"
-      sources."object-inspect-1.12.2"
-      sources."object-keys-1.1.1"
-      sources."object.assign-4.1.2"
-      sources."object.values-1.1.5"
-      sources."once-1.4.0"
-      sources."onetime-5.1.2"
-      (sources."optionator-0.8.3" // {
-        dependencies = [
-          sources."levn-0.3.0"
-          sources."prelude-ls-1.1.2"
-          sources."type-check-0.3.2"
-        ];
-      })
-      sources."ot-builder-1.5.3"
-      sources."otb-ttc-bundle-1.5.3"
-      sources."p-limit-1.3.0"
-      sources."p-locate-2.0.0"
-      sources."p-try-1.0.0"
-      sources."parent-module-1.0.1"
-      sources."passerror-1.1.1"
-      sources."patel-0.38.0"
-      sources."path-exists-3.0.0"
-      sources."path-is-absolute-1.0.1"
-      sources."path-key-3.1.1"
-      sources."path-parse-1.0.7"
-      sources."patrisika-0.25.0"
-      sources."patrisika-scopes-0.12.0"
-      sources."pegjs-0.10.0"
-      sources."prelude-ls-1.2.1"
-      sources."prettier-2.7.1"
-      sources."punycode-2.1.1"
-      sources."regexp.prototype.flags-1.4.3"
-      sources."regexpp-3.2.0"
-      sources."require-directory-2.1.1"
-      sources."resolve-1.22.1"
-      sources."resolve-from-4.0.0"
-      sources."restore-cursor-3.1.0"
-      sources."resumer-0.0.0"
-      sources."rimraf-3.0.2"
-      sources."safer-buffer-2.1.2"
-      sources."semaphore-async-await-1.5.1"
-      (sources."semver-7.3.7" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-        ];
-      })
-      sources."seq-0.3.5"
-      sources."shebang-command-2.0.0"
-      sources."shebang-regex-3.0.0"
-      sources."side-channel-1.0.4"
-      sources."signal-exit-3.0.7"
-      sources."source-map-0.6.1"
-      sources."spiro-3.0.0"
-      sources."string-width-4.2.3"
-      sources."string.prototype.trimend-1.0.5"
-      sources."string.prototype.trimstart-1.0.5"
-      sources."strip-ansi-6.0.1"
-      sources."strip-bom-3.0.0"
-      sources."strip-json-comments-3.1.1"
-      sources."supports-color-7.2.0"
-      sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."text-table-0.2.0"
-      sources."through-2.3.8"
-      sources."toposort-2.0.2"
-      sources."traverse-0.3.9"
-      sources."tsconfig-paths-3.14.1"
-      sources."tslib-2.4.0"
-      sources."type-check-0.4.0"
-      sources."type-fest-0.20.2"
-      sources."typo-geom-0.12.1"
-      sources."unbox-primitive-1.0.2"
-      sources."unicoderegexp-0.4.1"
-      sources."universalify-2.0.0"
-      sources."uri-js-4.4.1"
-      sources."uuid-8.3.2"
-      sources."v8-compile-cache-2.3.0"
-      (sources."verda-1.10.0" // {
-        dependencies = [
-          sources."yargs-17.5.1"
-          sources."yargs-parser-21.0.1"
-        ];
-      })
-      sources."wawoff2-2.0.1"
-      sources."which-2.0.2"
-      sources."which-boxed-primitive-1.0.2"
-      sources."word-wrap-1.2.3"
-      sources."wordwrap-0.0.3"
-      sources."wrap-ansi-7.0.0"
-      sources."wrappy-1.0.2"
-      sources."xpath-0.0.32"
-      sources."y18n-5.0.8"
-      sources."yallist-4.0.0"
-      sources."yargs-16.2.0"
-      sources."yargs-parser-20.2.9"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-    };
-    production = false;
-    bypassCache = true;
-    reconstructLock = false;
-  };
-in
-{
-  args = args;
-  sources = sources;
-  tarball = nodeEnv.buildNodeSourceDist args;
-  package = nodeEnv.buildNodePackage args;
-  shell = nodeEnv.buildNodeShell args;
-  nodeDependencies = nodeEnv.buildNodeDependencies (lib.overrideExisting args {
-    src = stdenv.mkDerivation {
-      name = args.name + "-package-json";
-      src = nix-gitignore.gitignoreSourcePure [
-        "*"
-        "!package.json"
-        "!package-lock.json"
-      ] args.src;
-      dontBuild = true;
-      installPhase = "mkdir -p $out; cp -r ./* $out;";
-    };
-  });
-}
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/update-default.sh b/nixpkgs/pkgs/data/fonts/iosevka/update-default.sh
deleted file mode 100755
index 8d918058988a..000000000000
--- a/nixpkgs/pkgs/data/fonts/iosevka/update-default.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/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 --url="$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
index c8ebfd84db58..449fa7591968 100644
--- a/nixpkgs/pkgs/data/fonts/iosevka/variants.nix
+++ b/nixpkgs/pkgs/data/fonts/iosevka/variants.nix
@@ -1,95 +1,95 @@
 # This file was autogenerated. DO NOT EDIT!
 {
-  iosevka = "001k987gf2drwh57iplicylnk4ssgzrhrfjv3b27xpwanjjdi0j9";
-  iosevka-aile = "1yg2g5sq7qc4aw85vaj3f6yc1lrqnx1dfghcb5p5icflp23giv48";
-  iosevka-curly = "0haxn2sxmnydrrmmbp0rf4ylzc05z10p73bmhvm53grysawr0lph";
-  iosevka-curly-slab = "1z7ji33wf91zayqk6bkjq6ayny5r3sgi1sr94ikn47vb8rax75af";
-  iosevka-etoile = "0xcvp5v4fz459fhihij9mm6q95plrz6ffgrr6c9ir4nk0d44gh9p";
-  iosevka-slab = "0923yshy81lcssz8p52kjwa0njiyr95kk193n8fnfwycgak5w4g7";
-  iosevka-ss01 = "0g90589l5wsa2r7yl7ii04g2lninpw36yrw6djpvh3821d7zfwli";
-  iosevka-ss02 = "1pvxnrhcz01ga4yklsc7s8qbcz3il1ibqaszcmkkaxazlqqk600a";
-  iosevka-ss03 = "16j0bbyq5yyph07z1vz0lgy1c0ac4hywz394favz00i2gc9gczql";
-  iosevka-ss04 = "0000b4d9iwydyyh91v1jkbwszglq8z1wz9a3gaklisga0zfalm32";
-  iosevka-ss05 = "0fdcjsfk3ih18cd4ax2vxsxsa3gf6rx7v1ynm3l1ww642zfn7kj6";
-  iosevka-ss06 = "0rgnz8d9mlkinkq4bkbgmkvmnnym6amwsbri0pj60dm2dgsp9ipn";
-  iosevka-ss07 = "0bfrkh8bc0h2gkyq79vmppjcvil549y2qqaz7vb8gm2gmbglspaz";
-  iosevka-ss08 = "17wbg6zzrx6inzx1n7c3gc6h2fa6fch0lnmic8ky4dvzhaqzcpyn";
-  iosevka-ss09 = "03fq1mcm0jywjawlkii634vgm2d6173j35ppg1qlgpg5gysjnsvg";
-  iosevka-ss10 = "15189r3cg1y1fjcb7qpk03lqfm3f76gzxicwm1kb5220rvjhsqhj";
-  iosevka-ss11 = "00yqca40dbnwbz58nyfpqmg6j7azckjwwid1fqabm5dvd5lc2616";
-  iosevka-ss12 = "0ikv5rfnvyq5fnppcsfddrz5yjjm6p97hfp7xzx50i4gpykdays7";
-  iosevka-ss13 = "0n9nlq4qmgwbxh1qzzhrjf6kb955hk6lkagq7gk1vig49xj2v2w9";
-  iosevka-ss14 = "11vva8mdanb5sdx6nv7jr2vqzx7jwapz4hy6dc4xdxvsp90wvqrc";
-  iosevka-ss15 = "0v4v6fh4nzd1v15csxj5dc9s7wwxrgx1crb2c1q42xa1fj5s6q11";
-  iosevka-ss16 = "0h2vgy0fk8gc2b9nnb8hf79njdkyigsjhnzp0p1mi8k08ca8zy95";
-  iosevka-ss17 = "1v1sl9j5ckcvx3p6g4dagxf4cx5n44k6awpg4mz4fhzvfi5y1a3b";
-  iosevka-ss18 = "0qjal5mg8bmwa0fd9m59k2m9qjsmfwz0n6f6q6zvb00bi7mw6qhn";
-  sgr-iosevka = "1cvf6512iqngy772z78ayzyyd574ymffpldlrdpyvbcgw9kcrh84";
-  sgr-iosevka-aile = "166hncxlaq5z32ic88lkgxkj6pbhjz1fdhb5bhzrp1l1mgl29s53";
-  sgr-iosevka-curly = "0m37ccridvjik1jhvy0pblbps7m44wkwd1v2s34xv6wr901dmr5x";
-  sgr-iosevka-curly-slab = "100cvlpxlv62if341s52w8441axscyijgjz9m1g46yr3lngazff9";
-  sgr-iosevka-etoile = "1nwcaqw6rnmp89fhshh74dr45avp59x3fg0h3ipkk17n9slw6b1l";
-  sgr-iosevka-fixed = "1m12k9f4a2rn4jx31qw11s4nffw9bgr4v9k12hdnxr7r1ybgg974";
-  sgr-iosevka-fixed-curly = "1db12r5amcvxvqn8sqwd120vixnbzk7rb75nibnan1k5zx9vyl2r";
-  sgr-iosevka-fixed-curly-slab = "15rly7vg69avxzkiyy2k8jhb29ppjyw7rk49j5zhsyapw6n0f6sy";
-  sgr-iosevka-fixed-slab = "0c4sihad0vgy8hhgcbwlwayn3y8krigr6w2f9qlz70adzy8g1z5n";
-  sgr-iosevka-fixed-ss01 = "0zw90a22143ixnpb3gx76fgilvbn986lca4bpmd7r318hq48byw3";
-  sgr-iosevka-fixed-ss02 = "12hkwg294a11k882s0fr13w2j7cqlri5p0mn5bys926159j71ani";
-  sgr-iosevka-fixed-ss03 = "0mz69vxisd12mqx3aw486p96xjhqhgy1nn8p4b17b51zaj7mn593";
-  sgr-iosevka-fixed-ss04 = "12rmh62y1s5am7lsw01p14vlchw34spy0rdma7f9yhyjfy0403rs";
-  sgr-iosevka-fixed-ss05 = "0mp27hibvz6va2ssapbqk2jhhz1yzr0ax0gprzwrdg89bpnglf34";
-  sgr-iosevka-fixed-ss06 = "0z3m9s4366rdk0k4m7vjp5g076jv6kbb7nzf2msdrfz1sxwjl8w3";
-  sgr-iosevka-fixed-ss07 = "19b7i5gqzbsf8am81a9yzfn7zbdr5k34vgsp11cj5rrs82li9qrs";
-  sgr-iosevka-fixed-ss08 = "0hwr5df93w1ghb2wkszv5npgbdxak0zvdv45nrmpsxhc9hfzy3mx";
-  sgr-iosevka-fixed-ss09 = "0i7fahdwlna1nzjsc2iwxj9da0glp8j6ipqxaj3r03chb7p6d5qd";
-  sgr-iosevka-fixed-ss10 = "0kq9sfidq14114b3564mp490yi7kwsyk5fx0bc8c06nfn50y565k";
-  sgr-iosevka-fixed-ss11 = "19ra48lbasm03ypd9dkfqv816ykn7mvvwcc0x97vlakxqnqb526m";
-  sgr-iosevka-fixed-ss12 = "0s4jdj1v5dbfapiqm985w31l7b5ibkz0z2rqzj39rcin42nbbkbi";
-  sgr-iosevka-fixed-ss13 = "1437igg9ff9by2bkk1qll1dhssccdi3bzja7s18m5dnjij0g62vp";
-  sgr-iosevka-fixed-ss14 = "0n89r0xvcvaxaf67lmsqzxqlxpx9q7ci3zppijvpkhks4p09p70j";
-  sgr-iosevka-fixed-ss15 = "1dg7s62kmy024q46hvf29h58gj0mv6hfb9zvkbcxss9vx9xrhw8y";
-  sgr-iosevka-fixed-ss16 = "0pfg9m421996cgzvi3y9jxpjl8cxa69mlrddyk98hfq64d9flf3l";
-  sgr-iosevka-fixed-ss17 = "17vd2lnxvq2w138p1pkkhs3scl5g96q684ln20gb8hy4330s4fps";
-  sgr-iosevka-fixed-ss18 = "00cj148drpnzr9kgb1ginbb294cj1pw35knl866zxl6ds34b4n71";
-  sgr-iosevka-slab = "03p0zr75l6q5w1zccv1pk1qmi51rvf680qwvgjgrfzvavqpdzbj9";
-  sgr-iosevka-ss01 = "1ncy21zjqsa559pvqbr4alcblc7bpq05i1gfcr2l18aiv8xk4ska";
-  sgr-iosevka-ss02 = "1ki1fkwkdzj4f75ysiza2r58x3p4v4i21p7krgphgzz1i9j7z0bc";
-  sgr-iosevka-ss03 = "039pf9xlwy9lp03yvc8j2qb0w35kx7h4zncvprbrrpgw0rv688gq";
-  sgr-iosevka-ss04 = "1fmqxd4v4lshja2sfbcnb6x038dy3fi3lx6qn93vi9b6rd699xvw";
-  sgr-iosevka-ss05 = "0lfk2wijvkv6nzji4fy8zllmgqjszw0aw3g48zl2568348vm8c0z";
-  sgr-iosevka-ss06 = "1j9q0v74wkl512z7lgmjqgckprly6zkq1b23ca2cynw5aklsl1c9";
-  sgr-iosevka-ss07 = "08v716j55d9m4p349bg4bscn8222fv5prrmlmyjfmj7l2r47sr7m";
-  sgr-iosevka-ss08 = "1nnixhi6x26p6l19c54p1hm8pjkdqxjgsxqym82h5dyzsfcraws6";
-  sgr-iosevka-ss09 = "1hnb9l1symazn4rz5fjbfpsz3ly0j29vyzkg020i8ibb9h32rg9s";
-  sgr-iosevka-ss10 = "109w970ma7fj81bi5nq04nvf6d8ph25i7anaxq6wx507sd5n4bwa";
-  sgr-iosevka-ss11 = "04j2y0p2j0zxc2nmmk8m16ham93jm0faymc825zaxj6lmavcygzv";
-  sgr-iosevka-ss12 = "1l3rv9p8k0i1zz9gm0gffz3qfzak13ay48b3vx8mmxgd4w6b8q8r";
-  sgr-iosevka-ss13 = "19m9hfc236ncp7b7cchm9b315px4cynmhby7pzww9czdjvii8ph3";
-  sgr-iosevka-ss14 = "1im0dhlb113kgwq6cba9r14i6m1l60sziddj37bxf4b4qsqcrjkn";
-  sgr-iosevka-ss15 = "0jv3gkm9yw7gzrs67m5vnxr7dg99ysnkl09wv1y855r5gx93w0gg";
-  sgr-iosevka-ss16 = "1qmwxgw837gqnzf0klq0malfpkg4my3czz50n7rv806x7sn0zsg5";
-  sgr-iosevka-ss17 = "161cjfnwm7wcq3vywrn381mps2cd51506b437rpspj8a9xg6dq9w";
-  sgr-iosevka-ss18 = "0f4bij7q5mxbwsakqyw879dlwlw6irzk57ryjklqrg2p4zvjll5s";
-  sgr-iosevka-term = "1m861kjnk6z7723cjz3gxzfjzqah15r55f6s5plsqipb77pbhh5a";
-  sgr-iosevka-term-curly = "07l3zqww2hfw9bipv7ckr59gg38krk925bjxyp51s1fcxn38p3j3";
-  sgr-iosevka-term-curly-slab = "1zqyyk33fcz5r73hd5ifg4nbm79jbvzqr2z58jsd8jmamgxbl6fc";
-  sgr-iosevka-term-slab = "0cd9ca9iivicwj7vyj3y4vvpix9xn1hl65hb2bvwqh8bqmhxdqg7";
-  sgr-iosevka-term-ss01 = "01nx6pckjlhm5lzrfwxzvvgq8hjhqha7y0p3vn1f42qcplsgvcf4";
-  sgr-iosevka-term-ss02 = "0qcgx90v0s8472ql99q9165pc27r0xmrkb0fkc0ad0pg2jrdxibh";
-  sgr-iosevka-term-ss03 = "1mcw5mbnazx1sma4i4zqsag110zll4m3by59i8gpf7wxlql5lw6j";
-  sgr-iosevka-term-ss04 = "17ywb2mgkm7qzjicdkp811q7k36xy6zba33ccp4v9x1i17w13kf7";
-  sgr-iosevka-term-ss05 = "0nfnjlyx0avh0vmxxhb8pimy6s1lmzky8vys6hzmivr5q8m3b7g4";
-  sgr-iosevka-term-ss06 = "1aq0khld8qpdhgqnasrwrf0kwijjw7b8gkliirpw4jnksyx0kllz";
-  sgr-iosevka-term-ss07 = "0vbz95341hmfni82bysrvsw6n30fcbm9j6ac7as824vkxa5lswp8";
-  sgr-iosevka-term-ss08 = "0sq4ln16p3g8bbn01a32wi585lbahg4snmfaypbwnxr4gci7jfy3";
-  sgr-iosevka-term-ss09 = "1ys24c2gwrizdkrglcns9x5sqgi4z810c8ssqzp6p8n9ldw8q36g";
-  sgr-iosevka-term-ss10 = "16v8klsa8xbwlkx60di96c48f7gxnislikrdl7rz222b3pwl6p2j";
-  sgr-iosevka-term-ss11 = "1bayyybq3xnrx4sd0pfh18zzwfal5va2j4ykv4vd680pkr7wm3rv";
-  sgr-iosevka-term-ss12 = "02280qik2msr9r32pz49sk421fy11vjmay4ic5zfm2rjhvvckvpm";
-  sgr-iosevka-term-ss13 = "0h6pi0qbfh35bzpfcgvm14hbvc13ja5pakrwz6nbg4llrghhwg4y";
-  sgr-iosevka-term-ss14 = "1yxdbx3y7j21p76mnwwzxknvssw25ymwckcxyjk86c2dq9yjk8id";
-  sgr-iosevka-term-ss15 = "1bkcrx9jmq4wbl548hvdqh4ks4s3m446x5990n49s7n0q9qqv4fr";
-  sgr-iosevka-term-ss16 = "0p5486bd155whlg9frm8dzrx2p2gs2cz9qjgviva5ldci3w9qhj5";
-  sgr-iosevka-term-ss17 = "1wx8gsg8ginqzx91pmddh55nviv070czyyphcl1micwfgwicjs1d";
-  sgr-iosevka-term-ss18 = "1wr60w8rnlczdvpq26av27qg8r4abn5jssjrdk7ccl5l84hirrn7";
+  iosevka = "1gn59969vxl83jv3zzcbfsl54gph693p0bz70dkqfh0vxby5dl7y";
+  iosevka-aile = "0vqlbbnc5ybcbxn48svcf689mqhwf4slv72b8vvcjjvpyppmrdf9";
+  iosevka-curly = "1w86x4ixsh493idm8ab0awk15h01d98w8dcvqa6vmc2d98bm0zhr";
+  iosevka-curly-slab = "0bcq5zmgvfdz0bc73hrvnbn3rk5s10ryy35g655whqqx2wn8rk5a";
+  iosevka-etoile = "0s3295m5gflg9kq7lz49b1vb5ssdg31mkcvzq0w6c1v43sr9c3j7";
+  iosevka-slab = "0qydc6s9y896lfs867w7pqq352qwxbkspxz880fanpg66a4mb78f";
+  iosevka-ss01 = "135bjfpjvyqbylf1a0mbx6zfhxdipbfxn6kvdzbylcvaxmlkbmk7";
+  iosevka-ss02 = "00czg6i97qdp4460yis2khhsk6p8pws3d4s9cw3s23kaxbh3cafl";
+  iosevka-ss03 = "1wpifmkrf8vxsg1fz7mkafskhcdbiwm0j34qcyc8hxyy9g5xy0pf";
+  iosevka-ss04 = "0wrzzx5jwlmkw0alv55gikr0qwl2aqia3jpixbr2pmp8qj78asai";
+  iosevka-ss05 = "01sxgqhmxs9zra5gjcqkj8rkflr1p83jlnhqc4davd4h4pgdwqsx";
+  iosevka-ss06 = "1nzjnnqz6p0by2vl0f052m7dqvfcjx62clfdybc3k2b6vd8p91pz";
+  iosevka-ss07 = "1ib52g4gnj950b24y550wilip4311slsq001smf06bk64v0xyzb9";
+  iosevka-ss08 = "1kv22lnm8k9s8d39swny9ci8ybqbplqmgvfb4sh9gq8ikwbada7c";
+  iosevka-ss09 = "1q0yablkn1v94w204flkxpwf4zgzzrch1vk0x4ijcyw7bjwv2wlb";
+  iosevka-ss10 = "0s6fgq1mwfd56fx9iggisa87warpy8kwlnzrp52wadc6wml6pwp1";
+  iosevka-ss11 = "0iry12x9wmv8w6b00r0g0vnxjc4y40i6b68ml85qwp9xwrrbg4qg";
+  iosevka-ss12 = "1ry8b32l6bzas8h1lx7ymvf5c5hyz5sppqf4ygdxy6hcc6bqcmpf";
+  iosevka-ss13 = "1id288j7d8ppxcvgd0ylrc3rncnypg094ai8s539gxhlcfni0xn7";
+  iosevka-ss14 = "0ggfswcdy0kl7y6b1pqi0fx1lppljrd7g5mk94zylqg0p1qz8jg2";
+  iosevka-ss15 = "11zm07lna8pipzdm2xlxsq3ps7c85vv913wwbm01l0h7g5n6cr4h";
+  iosevka-ss16 = "13ggwcpdh6cx07hwi801n00mmm440xxr6lylgg013sbf7iasry18";
+  iosevka-ss17 = "0c5ixksqzshafg627fgsq5pwn79bmxg4n5q983halvwfwl0bnzbn";
+  iosevka-ss18 = "09qfm54rqixd5alzpx6kdsy1w9693ciij3f3kr1150b4rnd6ilc7";
+  sgr-iosevka = "0ab0dpryalq62j1zbayx8cjzl4bhr9gzm8x8yk4kbvqaf6rzjf4h";
+  sgr-iosevka-aile = "15hd88zbx76qc1imwxpgi5xnn7bg18fsvi3mhva9xsssqlah7lws";
+  sgr-iosevka-curly = "0a9jm2brda6x0g3rpvms4whb33cmk7fs9fphx1nf2lr2ydlhbz81";
+  sgr-iosevka-curly-slab = "00yvzbs5dri7hrazgfppb1zw0d72krhh789kkad00nhyx9ijls5z";
+  sgr-iosevka-etoile = "1i7ahs88xbfzyzhbg1vkp9r6mzfabpgnbihzbdbc9xffhd9m8b69";
+  sgr-iosevka-fixed = "05dy6b64ssar4lm6aw6bn6l43ljx8zca93q8b0hrgjgp5rf83hia";
+  sgr-iosevka-fixed-curly = "1nl2pm785n0rc3jyadclavy56c3k64yaplgsr3yyj5ic2clfg896";
+  sgr-iosevka-fixed-curly-slab = "1gkhxwvwqszfiqphfbb1ijlyqbihrwj1n6n67wzkll464wj4il6k";
+  sgr-iosevka-fixed-slab = "005y0zixp3g00i12jq3x6ahgfjbbxp9wz65mmbxdrggih34ws5r1";
+  sgr-iosevka-fixed-ss01 = "0z48q8ry6xyz9b0bbfy65qi6plffv4920wy473inidymj3lmy18s";
+  sgr-iosevka-fixed-ss02 = "0srq607x6nmhn9b0b7j33gfn57x6n32zl3prxzkvsc9z1dmg8nm8";
+  sgr-iosevka-fixed-ss03 = "1sxn9jkmhk7qp42lli075m05lz38a1rjnxkg5j3qdrxdha2alqsf";
+  sgr-iosevka-fixed-ss04 = "0h89vl5qym80g48idp81ii6ag3542s042r0hyda5ddkxw2alm38j";
+  sgr-iosevka-fixed-ss05 = "0b5c6sagz0z7sxsk16dwf8kvmxzjzn9n0aps2f665ap9nf2bvqny";
+  sgr-iosevka-fixed-ss06 = "11k1jk7z5ri1q49jj5ds5blbwrvvqk0fskc1jwjxx0jw5qhm1qxs";
+  sgr-iosevka-fixed-ss07 = "0yfh7726z2xa6lrlm4nc04syqh32im1ck8c191sv2340c708vg2d";
+  sgr-iosevka-fixed-ss08 = "0g9iig16jn39x46xz5h97k1rg07alpx272fv4aqpkibx7d4kpk4a";
+  sgr-iosevka-fixed-ss09 = "03fjsfyhgaxmnc0b2qz6a3pk7w0cpdfdqiqamqcxz6iqfbaqlk6l";
+  sgr-iosevka-fixed-ss10 = "1jz8qq259h6k2bqqhpq161sqgpcnqxm56rrk0kjcw6vgrschbiqg";
+  sgr-iosevka-fixed-ss11 = "14zj34cpkwb63gni23ls5icrkzxq16h09ggdgismxbbrymirw1yb";
+  sgr-iosevka-fixed-ss12 = "15hfkabmxb53f9ljwknxyr91h1awdmaa24kxq1hmbgwz7g4az7yr";
+  sgr-iosevka-fixed-ss13 = "1xiwaqjbhkj1hxqsp99c5skynzhanbp5mhlw04n006ay1kq9zjxs";
+  sgr-iosevka-fixed-ss14 = "0zapvxk4d8dn0jadm8ilvaqzlasc9g79v18y807zadcadhf7xmz3";
+  sgr-iosevka-fixed-ss15 = "19r7kdgpn1vqmhaj5dxhccfxyzpdcaxgdmic2nzhjcjkxg09mvs7";
+  sgr-iosevka-fixed-ss16 = "1na9bmgw29q62lbc5fjlbkjivncq71w3n6c02prcmpyn0xnlpqzc";
+  sgr-iosevka-fixed-ss17 = "1zabrx1bxr0pb1cbdp9vdzahjvwpignyp5qb466qiy8l6pyhx1sh";
+  sgr-iosevka-fixed-ss18 = "037srmxnq5jzgj2yf6l04msyvzp54sklxkjda2ibifywrac7fkk4";
+  sgr-iosevka-slab = "1fwjscd1r7f8k43m55svcyz38y4qlr329nmr2ji5h9cg08shi1gf";
+  sgr-iosevka-ss01 = "19c4cdpm8a543cj4wfakvhfmnbqvr5hp3c284w01z40wzx35zc2y";
+  sgr-iosevka-ss02 = "0rd79vrfgrmml9y6dc8k1b6flihhc1fgrab2rja4640qjn7ak8sj";
+  sgr-iosevka-ss03 = "18clr1swv0zkvwza46a3rl0z95cnvh7knidwk87wi1a4i5144dbp";
+  sgr-iosevka-ss04 = "1b02b0dvqpiw02b8g82pgk6a7ywj4wml00hkc26j5k0vmw7dxbvj";
+  sgr-iosevka-ss05 = "1z92ki8hq29qgnfpy65vnbrfhb17vb4wxa7ga0051vdyc6kbkip0";
+  sgr-iosevka-ss06 = "08nbrrvxdlf82112x9vd157sqvppkbfz21wzisyva6kzjips4d1v";
+  sgr-iosevka-ss07 = "13ghjry05y87z2i9kkrwf46gjzbhmhx32vqf8cbjnwr2scb3d2sd";
+  sgr-iosevka-ss08 = "09m9wraz90lc64jdyc8wjdmqdcll44v9j4yr2hw494c27883bk73";
+  sgr-iosevka-ss09 = "1ada6dykasd7mb8haari9bwzl75bfp2y0c177vk2lc869f845l5l";
+  sgr-iosevka-ss10 = "15c4h8plvy9mmjz8rv8jjhlby3g0x674il01gc54q70sv4g1lj2h";
+  sgr-iosevka-ss11 = "1d1hrxj7vv8lhxsqjfn9wz12wsnhv5accc06dpra3sraqajilxga";
+  sgr-iosevka-ss12 = "0s75j0wrg2j52v0irlamsqf46izri58wls1fjs3p6ckjasn0jlb7";
+  sgr-iosevka-ss13 = "1nq6bjf6v87vni7s63nayx6dr01r219gxni0md4xbsqf7in31ncm";
+  sgr-iosevka-ss14 = "09kphmfr1yxa7whlzni1nbmyhrcpnbaqqzmbr1n18dahlq8wf4hv";
+  sgr-iosevka-ss15 = "0nnap51bhhbbdljxpcsbg7kzjb6a6psdfr06jf8z969q56288gmr";
+  sgr-iosevka-ss16 = "0rdvsrqfkj6wbmmxf0xgc9pjlc43n6y433ziflgv71r7zp25rbch";
+  sgr-iosevka-ss17 = "1ylndvsyq78n0wp3dnpj6ili7jagfa2hbr019dnnm485mw2lf34a";
+  sgr-iosevka-ss18 = "0mkc63kz9xqxqzzygbz4r462dlrcm0s2x975r33q1knz1fag43gm";
+  sgr-iosevka-term = "1f7aammqiwjvf49r7aa6ivbm539imb2vh51mqml9kagxyaz134bb";
+  sgr-iosevka-term-curly = "031i5rjwczghxcsks17hbwzhyfkalydfj255f7f15pq3mphj2svq";
+  sgr-iosevka-term-curly-slab = "1srjdhp667nbjrraxqqc3653zmw8ji33nnsvfqxmrs7jy1w16mic";
+  sgr-iosevka-term-slab = "0grhsha5f88h7326wy7fh9frk9xx28zbsk75rz6xxlh4qb3lqqx3";
+  sgr-iosevka-term-ss01 = "1c68h9zav5j76ylvw5yddscs6xk5i9fck8b7zphhqljyd5pk3i89";
+  sgr-iosevka-term-ss02 = "0kccl4i7wykaf4c234jh8qd1rxkc920533wn163xfpmb820c1lnw";
+  sgr-iosevka-term-ss03 = "1gl89w29mwir92s1zcvnvqg7apr1cr1fp56si1xk8i2smg9al540";
+  sgr-iosevka-term-ss04 = "093wxxw6v3sbds77izlsshn0yr8slchns2j858vjw2cm5nv14ps3";
+  sgr-iosevka-term-ss05 = "1b29jabdb2ca0yrs54x1ahx5fqz51va5khd3mlwqrbrjbz5hzfdb";
+  sgr-iosevka-term-ss06 = "1i4nrs5vh02xs1gh8i2c89gpzskxgrbfvgvna18d909mxqkwcj23";
+  sgr-iosevka-term-ss07 = "04xsxb7gch3srq86p23yvbn2l4pqg35fvg0ydsnnx7zxck711yh0";
+  sgr-iosevka-term-ss08 = "19zcyqb45fyxiwzpf6fcnbmsp1sxw6axxyl21ffc2qnamkbnh0cq";
+  sgr-iosevka-term-ss09 = "0z2li5gmyp4l8s5fwbcayg4fmdm6ilxa13mwm29nnrq3qfxs7jf5";
+  sgr-iosevka-term-ss10 = "08hl6ivvy5yycd8nrqk3q0c1lciw1dacsdccq6p3wnhraj4jvgpg";
+  sgr-iosevka-term-ss11 = "1mzkvqs0pszaizhlbs81ryspjq8mxnriqsg7ci5f1a5wfv5x4m0w";
+  sgr-iosevka-term-ss12 = "0nwb0jv6pq5dqzm9i0wy2ixqhwkc46z6735swy4kl08s6ywnby3f";
+  sgr-iosevka-term-ss13 = "0k2dbrn64i52rbv0rv9j41d20iqvmbsggmi75vnmvmyahm00agmn";
+  sgr-iosevka-term-ss14 = "0niq6iy6snd52l2qv248r5i4kbb0jrfnmscmc8hla04r43pfw9yi";
+  sgr-iosevka-term-ss15 = "05j96kmc0n88v1c0ygiypma4ddxnbvxmjj2yp6h76xzyhxvdl69l";
+  sgr-iosevka-term-ss16 = "1x9ipw7m42yhd33dxm5qzzqimszklcav26rqdmzam8m6slg6cwg9";
+  sgr-iosevka-term-ss17 = "0y9nw69jp8mnmbxhly16d8dnwpjgpgllimr7icqlbc9dr2nzzhm9";
+  sgr-iosevka-term-ss18 = "0sh3vhv3p42fgx4z5gg9b3v4nynnjxnn5fjzyiv044957djs4rvb";
 }
diff --git a/nixpkgs/pkgs/data/fonts/ipaexfont/default.nix b/nixpkgs/pkgs/data/fonts/ipaexfont/default.nix
index 5223bc499d5c..986eab13a257 100644
--- a/nixpkgs/pkgs/data/fonts/ipaexfont/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ipaexfont/default.nix
@@ -1,16 +1,21 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-fetchzip {
-  name = "ipaexfont-004.01";
+stdenvNoCC.mkDerivation {
+  pname = "ipaexfont";
+  version = "004.01";
 
-  url = "https://moji.or.jp/wp-content/ipafont/IPAexfont/IPAexfont00401.zip";
+  src = fetchzip {
+    url = "https://moji.or.jp/wp-content/ipafont/IPAexfont/IPAexfont00401.zip";
+    hash = "sha256-/87qJIb+v4qrtDy+ApfXxh59reOk+6RhGqFN98mc+8Q=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/opentype
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "0wp369kri33kb1mmiq4lpl9i4xnacw9fj63ycmkmlkq64s8qnjnx";
+    install -Dm644 *.ttf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "Japanese font package with Mincho and Gothic fonts";
diff --git a/nixpkgs/pkgs/data/fonts/ipafont/default.nix b/nixpkgs/pkgs/data/fonts/ipafont/default.nix
index 9bc9b82db0e6..8a1f91da34fb 100644
--- a/nixpkgs/pkgs/data/fonts/ipafont/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ipafont/default.nix
@@ -1,16 +1,21 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-fetchzip {
-  name = "ipafont-003.03";
+stdenvNoCC.mkDerivation {
+  pname = "ipafont";
+  version = "003.03";
 
-  url = "https://moji.or.jp/wp-content/ipafont/IPAfont/IPAfont00303.zip";
+  src = fetchzip {
+    url = "https://moji.or.jp/wp-content/ipafont/IPAfont/IPAfont00303.zip";
+    hash = "sha256-EzUNKuDNHr0NIXiqX09w99wtz1r2pZurR/izdgzTcAs=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/opentype
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "0lrjd0bfy36f9j85m12afg5nvr5id3sig2nmzs5qifskbd7mqv9h";
+    install -Dm644 *.ttf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
 
   meta = {
     description = "Japanese font package with Mincho and Gothic fonts";
diff --git a/nixpkgs/pkgs/data/fonts/ir-standard-fonts/default.nix b/nixpkgs/pkgs/data/fonts/ir-standard-fonts/default.nix
index 2e535255cc6b..d59c111c96b7 100644
--- a/nixpkgs/pkgs/data/fonts/ir-standard-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ir-standard-fonts/default.nix
@@ -1,19 +1,23 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
   pname = "ir-standard-fonts";
-  version = "unstable-2017-01-21";
-in fetchFromGitHub {
-  name = "${pname}-${version}";
-  owner = "morealaz";
-  repo = pname;
-  rev = "d36727d6c38c23c01b3074565667a2fe231fe18f";
+  version = "20170121";
+
+  src = fetchFromGitHub {
+    owner = "molaeiali";
+    repo = pname;
+    rev = version;
+    hash = "sha256-o1d8SBX3nf7g6Gh4OP+JRS+LNrHTQOIiHhW3VNCkDV0=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar xf $downloadedFile --strip=1
     find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/ir-standard-fonts {} \;
+
+    runHook postInstall
   '';
-  sha256 = "0i2vzhwk77pm6fx5z5gxl026z9f35rhh3cvl003mry2lcg1x5rhp";
 
   meta = with lib; {
     homepage = "https://github.com/morealaz/ir-standard-fonts";
diff --git a/nixpkgs/pkgs/data/fonts/iwona/default.nix b/nixpkgs/pkgs/data/fonts/iwona/default.nix
index 85cf06df11fb..0d3944b2da10 100644
--- a/nixpkgs/pkgs/data/fonts/iwona/default.nix
+++ b/nixpkgs/pkgs/data/fonts/iwona/default.nix
@@ -1,16 +1,18 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, texlive }:
 
-let
-  version = "0_995";
-in fetchzip {
-  name = "iwona-${version}";
-  url = "http://jmn.pl/pliki/Iwona-otf-${version}.zip";
+stdenvNoCC.mkDerivation {
+  pname = "iwona";
+  version = "0.995b";
 
-  postFetch = ''
-    mkdir -p $out/share/fonts/opentype
-    unzip -j $downloadedFile *.otf -d $out/share/fonts/opentype
+  src = lib.head (builtins.filter (p: p.tlType == "run") texlive.iwona.pkgs);
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 fonts/opentype/nowacki/iwona/*.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
   '';
-  sha256 = "1dcpn13bd31dw7ir0s722bv3nk136dy6qsab0kznjbzfqd7agswa";
 
   meta = with lib; {
     description = "A two-element sans-serif typeface, created by Małgorzata Budyta";
diff --git a/nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix b/nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix
index 7bc6e5aad39a..bdc732ef1ab1 100644
--- a/nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix
+++ b/nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix
@@ -1,18 +1,26 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  version = "2.242";
-in
-fetchzip {
-  name = "JetBrainsMono-${version}";
+stdenvNoCC.mkDerivation rec {
+  pname = "jetbrains-mono";
+  version = "2.304";
 
-  url = "https://github.com/JetBrains/JetBrainsMono/releases/download/v${version}/JetBrainsMono-${version}.zip";
+  src = fetchzip {
+    url = "https://github.com/JetBrains/JetBrainsMono/releases/download/v${version}/JetBrainsMono-${version}.zip";
+    sha256 = "sha256-rv5A3F1zdcUJkmw09st1YxmEIkIoYJaMYGyZjic8jfc=";
+    stripRoot = false;
+  };
 
-  sha256 = "sha256-flaUqpHmgebUzwPq0d+I3p9yqPmsV0kap04eApOQxdI=";
+  dontPatch = true;
+  dontConfigure = true;
+  dontBuild = true;
+  doCheck = false;
+  dontFixup = true;
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  installPhase = ''
+    runHook preInstall
+    install -Dm644 -t $out/share/fonts/truetype/ fonts/ttf/*.ttf
+    install -Dm644 -t $out/share/fonts/truetype/ fonts/variable/*.ttf
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/jost/default.nix b/nixpkgs/pkgs/data/fonts/jost/default.nix
index 457cb0d03c99..f5d3a1e48b5a 100644
--- a/nixpkgs/pkgs/data/fonts/jost/default.nix
+++ b/nixpkgs/pkgs/data/fonts/jost/default.nix
@@ -1,17 +1,21 @@
-{lib, fetchzip}:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "jost";
   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
-  '';
+  src = fetchzip {
+    url = "https://github.com/indestructible-type/Jost/releases/download/${version}/Jost.zip";
+    hash = "sha256-ne81bMhmTzNZ/GGIzb7nCYh19vNLK+hJ3cP/zDxtiGM=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  sha256="0l78vhmbsyfmrva5wc76pskhxqryyg8q5xddpj9g5wqsddy525dq";
+    install -Dm644 fonts/otf/*.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/indestructible-type/Jost";
diff --git a/nixpkgs/pkgs/data/fonts/julia-mono/default.nix b/nixpkgs/pkgs/data/fonts/julia-mono/default.nix
index 136a3218761c..8616ed9a0210 100644
--- a/nixpkgs/pkgs/data/fonts/julia-mono/default.nix
+++ b/nixpkgs/pkgs/data/fonts/julia-mono/default.nix
@@ -1,17 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  version = "0.044";
+stdenvNoCC.mkDerivation rec {
+  pname = "JuliaMono-ttf";
+  version = "0.049";
 
-in
-fetchzip {
-  name = "JuliaMono-ttf-${version}";
-  url = "https://github.com/cormullion/juliamono/releases/download/v${version}/JuliaMono-ttf.tar.gz";
-  sha256 = "sha256-KCU1eOSEWjYh6kPda/iCtZUIWIq5lK79uUCLl2w7SEg=";
+  src = fetchzip {
+    url = "https://github.com/cormullion/juliamono/releases/download/v${version}/${pname}.tar.gz";
+    stripRoot = false;
+    hash = "sha256-UTiuWbRUJVGEuqNj2EU6VBb8Y4FO08TA2Nk7cjsjmuM=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
     mkdir -p $out/share/fonts/truetype
-    tar xf $downloadedFile -C $out/share/fonts/truetype
+    mv *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/junction/default.nix b/nixpkgs/pkgs/data/fonts/junction/default.nix
new file mode 100644
index 000000000000..b629477f6144
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/junction/default.nix
@@ -0,0 +1,34 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "junction";
+  version = "2014-05-29";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "fb73260e86dd301b383cf6cc9ca8e726ef806535";
+    hash = "sha256-Zqh23HPWGed+JkADYjYdsVNRxqJDvC9xhnqAqWZ3Eu8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Junction is a a humanist sans-serif font";
+    longDescription = ''
+      Junction is a a humanist sans-serif, and the first open-source type
+      project started by The League of Moveable Type. It has been updated
+      (2014) to include additional weights (light/bold) and expanded
+      international support.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/junction";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/junicode/default.nix b/nixpkgs/pkgs/data/fonts/junicode/default.nix
index 5f5ce1048c5e..4e42cf1c4174 100644
--- a/nixpkgs/pkgs/data/fonts/junicode/default.nix
+++ b/nixpkgs/pkgs/data/fonts/junicode/default.nix
@@ -1,23 +1,25 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation {
   pname = "junicode";
   version = "1.003";
-in
-fetchFromGitHub {
-  name = "${pname}-${version}";
 
-  owner = "psb1558";
-  repo = "Junicode-font";
-  rev = "55d816d91a5e19795d9b66edec478379ee2b9ddb";
+  src = fetchFromGitHub {
+    owner = "psb1558";
+    repo = "Junicode-font";
+    rev = "55d816d91a5e19795d9b66edec478379ee2b9ddb";
+    hash = "sha256-eTiMgI8prnpR4H6sqKRaB3Gcnt4C5QWZalRajWW49G4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
     local out_ttf=$out/share/fonts/junicode-ttf
     mkdir -p $out_ttf
-    tar -f $downloadedFile -C $out_ttf --wildcards -x '*.ttf' --strip=2
-  '';
+    cp legacy/*.ttf $out_ttf
 
-  sha256 = "1v334gljmidh58kmrarz5pf348b0ac7vh25f1xs3gyvn78khh5nw";
+    runHook postInstall
+  '';
 
   meta = {
     homepage = "https://github.com/psb1558/Junicode-font";
diff --git a/nixpkgs/pkgs/data/fonts/kacst/default.nix b/nixpkgs/pkgs/data/fonts/kacst/default.nix
index 38f85d2ad0fc..aa5ed8b547da 100644
--- a/nixpkgs/pkgs/data/fonts/kacst/default.nix
+++ b/nixpkgs/pkgs/data/fonts/kacst/default.nix
@@ -1,16 +1,21 @@
-{ fetchzip, lib }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "kacst";
   version = "2.01";
-in
-fetchzip {
-  name = "kacst-${version}";
-  url = "mirror://debian/pool/main/f/fonts-kacst/fonts-kacst_${version}+mry.orig.tar.bz2";
-  sha256 = "sha256-pIO58CXfmKYRKYJ1oI+tjTwlKBRnkZ/CpIM2Xa0CDA4=";
 
-  postFetch = ''
+  src = fetchurl {
+    url = "mirror://debian/pool/main/f/fonts-${pname}/fonts-${pname}_${version}+mry.orig.tar.bz2";
+    hash = "sha256-byiZzpYiMU6kJs+NSISfHPFzAnJtc8toNIbV/fKiMzg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/fonts
-    tar xjf $downloadedFile --strip-components=1 -C $out/share/fonts
+    cp -R kacst $out/share/fonts
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/kawkab-mono/default.nix b/nixpkgs/pkgs/data/fonts/kawkab-mono/default.nix
index 1e07123badc3..1a2f51a6d625 100644
--- a/nixpkgs/pkgs/data/fonts/kawkab-mono/default.nix
+++ b/nixpkgs/pkgs/data/fonts/kawkab-mono/default.nix
@@ -1,16 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-fetchzip {
-  name = "kawkab-mono-20151015";
+stdenvNoCC.mkDerivation {
+  pname = "kawkab-mono";
+  version = "20151015";
 
-  url = "http://makkuk.com/kawkab-mono/downloads/kawkab-mono-0.1.zip";
+  src = fetchzip {
+    url = "http://makkuk.com/kawkab-mono/downloads/kawkab-mono-0.1.zip";
+    stripRoot = false;
+    hash = "sha256-arZTzXj7Ba5G4WF3eZVGNaONhOsYVPih9iBgsN/lg14=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
-  '';
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
 
-  sha256 = "1vfrb7xs817najplncg7zl9j5yxj8qnwb7aqm2v9p9xwafa4d2yd";
+    runHook postInstall
+  '';
 
   meta = {
     description = "An arab fixed-width font";
@@ -18,5 +24,3 @@ fetchzip {
     license = lib.licenses.ofl;
   };
 }
-
-
diff --git a/nixpkgs/pkgs/data/fonts/khmeros/default.nix b/nixpkgs/pkgs/data/fonts/khmeros/default.nix
index 28db0d00981d..5df7c3637be8 100644
--- a/nixpkgs/pkgs/data/fonts/khmeros/default.nix
+++ b/nixpkgs/pkgs/data/fonts/khmeros/default.nix
@@ -1,20 +1,21 @@
-{ fetchzip, lib }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "khmeros";
   version = "5.0";
-in
-fetchzip {
-  name = "khmeros-${version}";
-  url = "mirror://debian/pool/main/f/fonts-khmeros/fonts-khmeros_${version}.orig.tar.xz";
-  sha256 = "sha256-pS+7RQbGwlBxdCfSVxHmARCAkZrZttwYNlV/CrxqI+w=";
 
-  postFetch = ''
-    unpackDir="$TMPDIR/unpack"
-    mkdir "$unpackDir"
-    cd "$unpackDir"
-    tar xf "$downloadedFile" --strip-components=1
+  src = fetchurl {
+    url = "mirror://debian/pool/main/f/fonts-${pname}/fonts-${pname}_${version}.orig.tar.xz";
+    hash = "sha256-gBcM9YHSuhbxvwfQTvywH/5kN921GOyvGtkROcmcBiw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/fonts
     cp *.ttf $out/share/fonts
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/knewave/default.nix b/nixpkgs/pkgs/data/fonts/knewave/default.nix
new file mode 100644
index 000000000000..27def2271802
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/knewave/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "knewave";
+  version = "2012-07-30";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "f335d5ff1f12e4acf97d4208e1c37b4d386e57fb";
+    hash = "sha256-SaJU2GlxU7V3iJNQzFKg1YugaPsiJuSZpC8NCqtWyz0=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/*.ttf
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = " A bold, painted face for the rocker within";
+    longDescription = ''
+      Knewave is bold, painted face. Get it? Git it.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/knewave";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/kochi-substitute-naga10/default.nix b/nixpkgs/pkgs/data/fonts/kochi-substitute-naga10/default.nix
index 63ca3cf3e432..ae216a789707 100644
--- a/nixpkgs/pkgs/data/fonts/kochi-substitute-naga10/default.nix
+++ b/nixpkgs/pkgs/data/fonts/kochi-substitute-naga10/default.nix
@@ -1,24 +1,24 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let version = "20030809";
-in
-fetchzip {
-  name = "kochi-substitute-naga10-${version}";
+stdenvNoCC.mkDerivation rec {
+  pname = "kochi-substitute-naga10";
+  version = "20030809";
 
-  url = "mirror://osdn/efont/5411/kochi-substitute-${version}.tar.bz2";
+  src = fetchzip {
+    url = "mirror://osdn/efont/5411/kochi-substitute-${version}.tar.bz2";
+    stripRoot = false;
+    hash = "sha256-dRJAxeVGYcNjLWqJJ+9Z2FW3BHrgyGRzlgM2x5YG3AM=";
+  };
 
-  stripRoot = false;
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
     mkdir -p $out/share/fonts/truetype
-    mv $out/*/kochi-gothic-subst.ttf $out/share/fonts/truetype/kochi-gothic-subst-naga10.ttf
-    mv $out/*/kochi-mincho-subst.ttf $out/share/fonts/truetype/kochi-mincho-subst-naga10.ttf
-    shopt -s extglob dotglob
-    rm -rf $out/!(share)
-    shopt -u extglob dotglob
-  '';
+    mv */kochi-gothic-subst.ttf $out/share/fonts/truetype/kochi-gothic-subst-naga10.ttf
+    mv */kochi-mincho-subst.ttf $out/share/fonts/truetype/kochi-mincho-subst-naga10.ttf
 
-  sha256 = "sha256-SZ7ZJYuCYU0NxWHlEszbvFmyZxWeBtmPL204PjIrS64=";
+    runHook postInstall
+  '';
 
   meta = {
     description = "Japanese font, non-free replacement for MS Gothic and MS Mincho";
diff --git a/nixpkgs/pkgs/data/fonts/kode-mono/default.nix b/nixpkgs/pkgs/data/fonts/kode-mono/default.nix
new file mode 100644
index 000000000000..b68851c91dff
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/kode-mono/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "kode-mono";
+  version = "1.017";
+
+  src = fetchzip {
+    url = "https://github.com/isaozler/kode-mono/releases/download/${finalAttrs.version}/kode-mono-fonts.zip";
+    hash = "sha256-5bTciBQhWNUokOP3YzAwrvp7jeyiF4JMdJDX+6NXvLU=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm644 kode-mono-fonts/fonts/ttf/*.ttf      -t $out/share/fonts/truetype/
+    install -Dm644 kode-mono-fonts/fonts/variable/*.ttf -t $out/share/fonts/truetype/
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A custom-designed typeface explicitly created for the developer community";
+    homepage = "https://kodemono.com/";
+    changelog = "https://github.com/isaozler/kode-mono/blob/main/CHANGELOG.md";
+    license = licenses.ofl;
+    maintainers = [ maintainers.isaozler ];
+    platforms = platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/kreative-square-fonts/default.nix b/nixpkgs/pkgs/data/fonts/kreative-square-fonts/default.nix
index c9e51319733f..f6a0023bd11f 100644
--- a/nixpkgs/pkgs/data/fonts/kreative-square-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/kreative-square-fonts/default.nix
@@ -1,22 +1,24 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation {
   pname = "kreative-square-fonts";
   version = "unstable-2021-01-29";
-in
-fetchFromGitHub {
-  name = "${pname}-${version}";
 
-  owner = "kreativekorp";
-  repo = "open-relay";
-  rev = "084f05af3602307499981651eca56851bec01fca";
+  src = fetchFromGitHub {
+    owner = "kreativekorp";
+    repo = "open-relay";
+    rev = "084f05af3602307499981651eca56851bec01fca";
+    hash = "sha256-+ihosENczaGal3BGDIaJ/de0pf8txdtelSYMxPok6ww=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  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
+
+    runHook postInstall
   '';
-  sha256 = "15vvbbzv6b3jh7lxg77viycdd7yf3y8lxy54vs3rsrsxwncg0pak";
 
   meta = with lib; {
     description = "Fullwidth scalable monospace font designed specifically to support pseudographics, semigraphics, and private use characters";
diff --git a/nixpkgs/pkgs/data/fonts/lalezar-fonts/default.nix b/nixpkgs/pkgs/data/fonts/lalezar-fonts/default.nix
index 31a857bfda05..f54c17b51f3d 100644
--- a/nixpkgs/pkgs/data/fonts/lalezar-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/lalezar-fonts/default.nix
@@ -1,20 +1,24 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation {
   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
+  src = fetchFromGitHub {
+    owner = "BornaIz";
+    repo = "Lalezar";
+    rev = "238701c4241f207e92515f845a199be9131c1109";
+    hash = "sha256-95z58ABTx53aREXRpj9xgclX9kuGiQiiKBwqwnF6f8g=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/fonts/lalezar-fonts
     cp -v $( find . -name '*.ttf') $out/share/fonts/lalezar-fonts
+
+    runHook postInstall
   '';
-  sha256 = "0jmwhr2dqgj3vn0v26jh6c0id6n3wd6as3bq39xa870zlk7v307b";
 
   meta = with lib; {
     homepage = "https://github.com/BornaIz/Lalezar";
diff --git a/nixpkgs/pkgs/data/fonts/lao/default.nix b/nixpkgs/pkgs/data/fonts/lao/default.nix
index abe359410b3a..d7d5d3ddd4b1 100644
--- a/nixpkgs/pkgs/data/fonts/lao/default.nix
+++ b/nixpkgs/pkgs/data/fonts/lao/default.nix
@@ -1,16 +1,21 @@
-{ fetchzip, lib }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "lao";
   version = "0.0.20060226";
-in
-fetchzip {
-  name = "lao-${version}";
-  url = "mirror://debian/pool/main/f/fonts-lao/fonts-lao_${version}.orig.tar.xz";
-  sha256 = "sha256-Ti3DNOgLR5VBJ1mSe8M+qs4UYbCR7qOPgqxRfmHa+jY=";
 
-  postFetch = ''
+  src = fetchurl {
+    url = "mirror://debian/pool/main/f/fonts-${pname}/fonts-${pname}_${version}.orig.tar.xz";
+    hash = "sha256-DlgdyfhxxzVkNIL+NGsQ+PRlNkCuG3v2OahkIEYx60o=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/fonts
-    tar xf $downloadedFile --strip-components=1 -C $out/share/fonts fonts-lao-${version}/Phetsarath_OT.ttf
+    cp Phetsarath_OT.ttf $out/share/fonts
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/last-resort/default.nix b/nixpkgs/pkgs/data/fonts/last-resort/default.nix
index 8cad990ac973..1932fd6da8a9 100644
--- a/nixpkgs/pkgs/data/fonts/last-resort/default.nix
+++ b/nixpkgs/pkgs/data/fonts/last-resort/default.nix
@@ -1,19 +1,23 @@
-{ lib, fetchurl }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
-  version = "14.000";
-in fetchurl {
-  name = "last-resort-${version}";
+stdenvNoCC.mkDerivation rec {
+  pname = "last-resort";
+  version = "15.000";
 
-  url = "https://github.com/unicode-org/last-resort-font/releases/download/${version}/LastResortHE-Regular.ttf";
-  downloadToTemp = true;
+  src = fetchurl {
+    url = "https://github.com/unicode-org/last-resort-font/releases/download/${version}/LastResortHE-Regular.ttf";
+    hash = "sha256-Qyo/tuBvBHnG/LW8sUAy62xpeqlXfyfwjUCbr4vJEag=";
+  };
 
-  postFetch = ''
-    install -D -m 0644 $downloadedFile $out/share/fonts/truetype/LastResortHE-Regular.ttf
-  '';
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
 
-  recursiveHash = true;
-  sha256 = "sha256-rb69V4oExSFx4GpedpyVvGuS6o+MxmxTCSZhoe9kUhI=";
+    install -D -m 0644 $src $out/share/fonts/truetype/LastResortHE-Regular.ttf
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "Fallback font of last resort";
diff --git a/nixpkgs/pkgs/data/fonts/lato/default.nix b/nixpkgs/pkgs/data/fonts/lato/default.nix
index 76effcf97cd0..ff1cc62bee0e 100644
--- a/nixpkgs/pkgs/data/fonts/lato/default.nix
+++ b/nixpkgs/pkgs/data/fonts/lato/default.nix
@@ -1,16 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-fetchzip {
-  name = "lato-2.0";
+stdenvNoCC.mkDerivation {
+  pname = "lato";
+  version = "2.0";
 
-  url = "https://www.latofonts.com/download/Lato2OFL.zip";
+  src = fetchzip {
+    url = "https://www.latofonts.com/download/Lato2OFL.zip";
+    stripRoot = false;
+    hash = "sha256-n1TsqigCQIGqyGLGTjLtjHuBf/iCwRlnqh21IHfAuXI=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/lato
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "1amwn6vcaggxrd2s4zw21s2pr47zmzdf2xfy4x9lxa2cd9bkhvg5";
+    install -Dm644 Lato2OFL/*.ttf -t $out/share/fonts/lato
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://www.latofonts.com/";
diff --git a/nixpkgs/pkgs/data/fonts/league-gothic/default.nix b/nixpkgs/pkgs/data/fonts/league-gothic/default.nix
new file mode 100644
index 000000000000..fd12e0a86591
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/league-gothic/default.nix
@@ -0,0 +1,39 @@
+{ lib, fetchzip, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "league-gothic";
+  version = "1.601";
+
+  src = fetchzip {
+    url = "https://github.com/theleagueof/league-gothic/releases/download/${finalAttrs.version}/LeagueGothic-${finalAttrs.version}.tar.xz";
+    hash = "sha256-emkXKyQw4R0Zgg02oJsvBkqV0jmczP0tF0K2IKqJHMA=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/static/TTF/*.ttf
+    install -D -m444 -t $out/share/fonts/opentype $src/static/OTF/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "A revival of an old classic, Alternate Gothic #1";
+    longDescription = ''
+      League Gothic is a revival of an old classic, and one of our favorite
+      typefaces, Alternate Gothic #1. It was originally designed by Morris
+      Fuller Benton for the American Type Founders Company in 1903. The company
+      went bankrupt in 1993, and since the original typeface was created before
+      1923, the typeface is in the public domain.
+
+      We decided to make our own version, and contribute it to the Open Source
+      Type Movement. Thanks to a commission from the fine & patient folks over
+      at WND.com, it’s been revised & updated with contributions from Micah
+      Rich, Tyler Finck, and Dannci, who contributed extra glyphs.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/league-gothic";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/league-of-moveable-type/default.nix b/nixpkgs/pkgs/data/fonts/league-of-moveable-type/default.nix
index f6855dc99d66..905cf0a9adec 100644
--- a/nixpkgs/pkgs/data/fonts/league-of-moveable-type/default.nix
+++ b/nixpkgs/pkgs/data/fonts/league-of-moveable-type/default.nix
@@ -1,35 +1,46 @@
-{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";
+{ lib
+, symlinkJoin
+, the-neue-black
+, blackout
+, chunk
+, fanwood
+, goudy-bookletter-1911
+, junction-font
+, knewave
+, league-gothic
+, league-script-number-one
+, league-spartan
+, linden-hill
+, orbitron
+, ostrich-sans
+, prociono
+, raleway
+, sniglet
+, sorts-mill-goudy
+}:
+
+symlinkJoin {
+  name = "league-of-moveable-type";
+
+  paths = [
+    the-neue-black
+    blackout
+    chunk
+    fanwood
+    goudy-bookletter-1911
+    junction-font
+    knewave
+    league-gothic
+    league-script-number-one
+    league-spartan
+    linden-hill
+    orbitron
+    ostrich-sans
+    prociono
+    raleway
+    sniglet
+    sorts-mill-goudy
+  ];
 
   meta = {
     description = "Font Collection by The League of Moveable Type";
@@ -46,6 +57,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.ofl;
 
     platforms = lib.platforms.all;
-    maintainers = with lib.maintainers; [ bergey Profpatsch ];
+    maintainers = with lib.maintainers; [ bergey minijackson 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
deleted file mode 100644
index efbe6a4c41cb..000000000000
--- a/nixpkgs/pkgs/data/fonts/league-of-moveable-type/fonts.nix
+++ /dev/null
@@ -1,82 +0,0 @@
-[
-  {
-    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
deleted file mode 100644
index 4d41df4fdb85..000000000000
--- a/nixpkgs/pkgs/data/fonts/league-of-moveable-type/update.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/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/league-script-number-one/default.nix b/nixpkgs/pkgs/data/fonts/league-script-number-one/default.nix
new file mode 100644
index 000000000000..bc847f4f81c8
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/league-script-number-one/default.nix
@@ -0,0 +1,35 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "league-script-number-one";
+  version = "2011-05-25";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "225add0b37cf8268759ba4572e02630d9fb54ecf";
+    hash = "sha256-Z3Zrp0Os3On0tESVical1Qh6wY1H2Hc0OPTlkbtsrCI=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "A modern, coquettish script font";
+    longDescription = ''
+      This ain’t no Lucinda. League Script #1 is a modern, coquettish script
+      font that sits somewhere between your high school girlfriend’s love notes
+      and handwritten letters from the ’20s. Designed exclusively for the
+      League of Moveable Type, it includes ligatures and will act as the
+      framework for future script designs.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/league-script";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/league-spartan/default.nix b/nixpkgs/pkgs/data/fonts/league-spartan/default.nix
new file mode 100644
index 000000000000..d0e36e591491
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/league-spartan/default.nix
@@ -0,0 +1,40 @@
+{ lib, fetchzip, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "league-spartan";
+  version = "2.220";
+
+  src = fetchzip {
+    url = "https://github.com/theleagueof/league-spartan/releases/download/${finalAttrs.version}/LeagueSpartan-${finalAttrs.version}.tar.xz";
+    hash = "sha256-dkvWRYli8vk+E0DkZ2NWCJKfSfdo4jEcGo0puQpFVVc=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/static/TTF/*.ttf
+    install -D -m444 -t $out/share/fonts/opentype $src/static/OTF/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "A fantastic new revival of ATF's classic Spartan, a geometric sans-serif that has no problem kicking its enemies in the chest.";
+    longDescription = ''
+      A new classic, this is a bold, modern, geometric sans-serif that has no
+      problem kicking its enemies in the chest.
+
+      Taking a strong influence from ATF's classic Spartan family, we're
+      starting our own family out with a single strong weight. We've put a few
+      unique touches into a beautiful, historical typeface, and made sure to
+      include an extensive characterset – currently totaling over 300 glyphs.
+
+      Over time, the open-source license will allow us expand League Spartan
+      into a full family, with multiple weights and styles, and we're starting
+      by releasing our first Bold style for this exciting, modern classic now.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/league-spartan";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/lexend/default.nix b/nixpkgs/pkgs/data/fonts/lexend/default.nix
index 3efb1886b171..9bb00bf10595 100644
--- a/nixpkgs/pkgs/data/fonts/lexend/default.nix
+++ b/nixpkgs/pkgs/data/fonts/lexend/default.nix
@@ -5,13 +5,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "lexend";
-  version = "0.pre+date=2022-01-27";
+  version = "0.pre+date=2022-09-22";
 
   src = fetchFromGitHub {
     owner = "googlefonts";
     repo = pname;
-    rev = "57e6c14e2a9b457e8376044a31525c2100297e9c";
-    sha256 = "sha256-+tPggQIO50a8kOSnOVN/MR9ZwX5xZqYVNZO79eog9QA=";
+    rev = "cd26b9c2538d758138c20c3d2f10362ed613854b";
+    sha256 = "ZKogntyJ/44GBZmFwbtw5Ujw5Gnvv0tVB59ciKqR4c8=";
   };
 
   installPhase = ''
@@ -19,8 +19,8 @@ stdenvNoCC.mkDerivation rec {
 
     cd fonts
     for f in *; do
-      mkdir -p $out/share/fonts/truetype/lexend/$f
-      install $f/ttf/* $out/share/fonts/truetype/lexend/$f/
+      install -D -t $out/share/fonts/truetype/lexend/$f $f/ttf/*
+      install -D -t $out/share/fonts/variable/lexend/$f $f/variable/*
     done
 
     runHook postInstall
diff --git a/nixpkgs/pkgs/data/fonts/liberastika/default.nix b/nixpkgs/pkgs/data/fonts/liberastika/default.nix
index 5435a601d147..7c716c1a354b 100644
--- a/nixpkgs/pkgs/data/fonts/liberastika/default.nix
+++ b/nixpkgs/pkgs/data/fonts/liberastika/default.nix
@@ -1,23 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "liberastika";
   version = "1.1.5";
-in fetchzip rec {
-  name = "liberastika-${version}";
 
-  url = "mirror://sourceforge/project/lib-ka/liberastika-ttf-${version}.zip";
+  src = fetchzip {
+    url = "mirror://sourceforge/project/lib-ka/liberastika-ttf-${version}.zip";
+    stripRoot = false;
+    hash = "sha256-woUpOmxhj6eEw7PKJ8EyRcs3ORj0gCZhxHP5a5dy5z0=";
+  };
 
-  stripRoot = false;
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    install -Dm644 $out/*.ttf -t $out/share/fonts/truetype
-    shopt -s extglob dotglob
-    rm -rf $out/!(share)
-    shopt -u extglob dotglob
-  '';
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
 
-  sha256 = "sha256-1hoETOjPRUIzzM+NUR+g/Ph16jXmH2ARSlZHjgEwoeM=";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "Liberation Sans fork with improved cyrillic support";
@@ -25,7 +24,6 @@ in fetchzip rec {
 
     license = licenses.gpl2;
     platforms = platforms.all;
-    hydraPlatforms = [];
     maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/libertine/default.nix b/nixpkgs/pkgs/data/fonts/libertine/default.nix
index b3c8fd048b52..e24096e74f4e 100644
--- a/nixpkgs/pkgs/data/fonts/libertine/default.nix
+++ b/nixpkgs/pkgs/data/fonts/libertine/default.nix
@@ -1,18 +1,22 @@
 { lib, stdenv, fetchurl, fontforge }:
 
 stdenv.mkDerivation {
-  name = "linux-libertine-5.3.0";
+  pname = "linux-libertine";
+  version = "5.3.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/linuxlibertine/5.3.0/LinLibertineSRC_5.3.0_2012_07_02.tgz";
-    sha256 = "0x7cz6hvhpil1rh03rax9zsfzm54bh7r4bbrq8rz673gl9h47v0v";
+    hash = "sha256-G+xDYKJvHPMzwnktkg9cpNTv9E9d5QFgDjReuKH57HQ=";
   };
 
   sourceRoot = ".";
 
   nativeBuildInputs = [ fontforge ];
 
+  dontConfigure = true;
+
   buildPhase = ''
+    runHook preBuild
     for i in *.sfd; do
       fontforge -lang=ff -c \
         'Open($1);
@@ -28,20 +32,23 @@ stdenv.mkDerivation {
         Generate($1:r + ".enc");
         ' $i;
     done
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     install -m444 -Dt $out/share/fonts/opentype/public *.otf
     install -m444 -Dt $out/share/fonts/truetype/public *.ttf
     install -m444 -Dt $out/share/fonts/type1/public    *.pfb
     install -m444 -Dt $out/share/texmf/fonts/enc       *.enc
     install -m444 -Dt $out/share/texmf/fonts/map       *.map
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "Linux Libertine Fonts";
     homepage = "http://linuxlibertine.sf.net";
-    maintainers = [ ];
+    maintainers = with maintainers; [ erdnaxe ];
     license = licenses.ofl;
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/libertinus/default.nix b/nixpkgs/pkgs/data/fonts/libertinus/default.nix
index 8f58cb92baa4..cc60f8096531 100644
--- a/nixpkgs/pkgs/data/fonts/libertinus/default.nix
+++ b/nixpkgs/pkgs/data/fonts/libertinus/default.nix
@@ -1,18 +1,20 @@
-{ lib, fetchurl }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "libertinus";
   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;
+  src = fetchurl {
+    url = "https://github.com/alerque/libertinus/releases/download/v${version}/Libertinus-${version}.tar.xz";
+    hash = "sha256-f+nwInItHBzGfcLCihELO7VbrjV1GWFg0kIsiTM7OFA=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar xf $downloadedFile --strip=1
     install -m644 -Dt $out/share/fonts/opentype static/OTF/*.otf
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/libre-baskerville/default.nix b/nixpkgs/pkgs/data/fonts/libre-baskerville/default.nix
index a4be7b5b3e6b..56d83554e9ca 100644
--- a/nixpkgs/pkgs/data/fonts/libre-baskerville/default.nix
+++ b/nixpkgs/pkgs/data/fonts/libre-baskerville/default.nix
@@ -1,19 +1,24 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-fetchFromGitHub rec {
-  name = "libre-baskerville-1.000";
+stdenvNoCC.mkDerivation rec {
+  pname = "libre-baskerville";
+  version = "1.000";
 
-  owner = "impallari";
-  repo = "Libre-Baskerville";
-  rev = "2fba7c8e0a8f53f86efd3d81bc4c63674b0c613f";
+  src = fetchFromGitHub {
+    owner = "impallari";
+    repo = "Libre-Baskerville";
+    rev = "2fba7c8e0a8f53f86efd3d81bc4c63674b0c613f";
+    hash = "sha256-1EXi1hxFpc7pFsLbEj1xs9LqjeIf3XBol/8HdKNROUU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  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
-  '';
+    install -m444 -Dt $out/share/doc/${pname}-${version} README.md FONTLOG.txt
 
-  sha256 = "1kpji85d1mgwq8b4fh1isznrhsrv32la3wf058rwjmhx5a3l7yaj";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "A webfont family optimized for body text";
diff --git a/nixpkgs/pkgs/data/fonts/libre-bodoni/default.nix b/nixpkgs/pkgs/data/fonts/libre-bodoni/default.nix
index 63bbf8eba724..cd55c10d2e64 100644
--- a/nixpkgs/pkgs/data/fonts/libre-bodoni/default.nix
+++ b/nixpkgs/pkgs/data/fonts/libre-bodoni/default.nix
@@ -1,19 +1,24 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-fetchFromGitHub rec {
-  name = "libre-bodoni-2.000";
+stdenvNoCC.mkDerivation rec {
+  pname = "libre-bodoni";
+  version = "2.000";
 
-  owner = "impallari";
-  repo = "Libre-Bodoni";
-  rev = "995a40e8d6b95411d660cbc5bb3f726ffd080c7d";
+  src = fetchFromGitHub {
+    owner = "impallari";
+    repo = "Libre-Bodoni";
+    rev = "995a40e8d6b95411d660cbc5bb3f726ffd080c7d";
+    hash = "sha256-yfqVeT/JiAT+fsqkXUxqlz4sEEFwEJUdvFTAzuqejtk=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  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
-  '';
+    install -m444 -Dt $out/share/doc/${pname}-${version} README.md FONTLOG.txt
 
-  sha256 = "0my0i5a7f0d27m6dcdirjmlcnswqqfp8gl3ccxa5f2wkn3qlzkvz";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "Bodoni fonts adapted for today's web requirements";
diff --git a/nixpkgs/pkgs/data/fonts/libre-franklin/default.nix b/nixpkgs/pkgs/data/fonts/libre-franklin/default.nix
index b41ae8878cc2..f6fe791743cd 100644
--- a/nixpkgs/pkgs/data/fonts/libre-franklin/default.nix
+++ b/nixpkgs/pkgs/data/fonts/libre-franklin/default.nix
@@ -1,19 +1,24 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-fetchFromGitHub rec {
-  name = "libre-franklin-1.014";
+stdenvNoCC.mkDerivation rec {
+  pname = "libre-franklin";
+  version = "1.014";
 
-  owner = "impallari";
-  repo = "Libre-Franklin";
-  rev = "006293f34c47bd752fdcf91807510bc3f91a0bd3";
+  src = fetchFromGitHub {
+    owner = "impallari";
+    repo = "Libre-Franklin";
+    rev = "006293f34c47bd752fdcf91807510bc3f91a0bd3";
+    hash = "sha256-GR1KHiQ1lTOmU8eAPR2pxUlMpWiW2EDMG78VDjELxDU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  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
-  '';
+    install -m444 -Dt $out/share/doc/${pname}-${version} README.md FONTLOG.txt
 
-  sha256 = "0aq280m01pbirkzga432340aknf2m5ggalw0yddf40sqz7falykf";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "A reinterpretation and expansion based on the 1912 Morris Fuller Benton’s classic.";
diff --git a/nixpkgs/pkgs/data/fonts/linden-hill/default.nix b/nixpkgs/pkgs/data/fonts/linden-hill/default.nix
new file mode 100644
index 000000000000..9e452d34b99a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/linden-hill/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "linden-hill";
+  version = "2011-05-25";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "a3f7ae6c4cac1b7e5ce5269e1fcc6a2fbb9e31ee";
+    hash = "sha256-EjXcLjzVQeOJgLxGua8t0oMc+APOsONGGpG6VJVCgFw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "A digital version of Frederic Goudy’s Deepdene";
+    longDescription = ''
+      Linden Hill is a digital version of Frederic Goudy’s Deepdene. The
+      package includes roman and italic.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/linden-hill";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/linja-pi-pu-lukin/default.nix b/nixpkgs/pkgs/data/fonts/linja-pi-pu-lukin/default.nix
new file mode 100644
index 000000000000..40f330cec7c4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/linja-pi-pu-lukin/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation {
+  pname = "linja-pi-pu-lukin";
+  version = "unstable-2021-10-29";
+
+  src = fetchurl {
+    url = "https://web.archive.org/web/20211029000000/https://jansa-tp.github.io/linja-pi-pu-lukin/PuLukin.otf";
+    hash = "sha256-Mf7P9fLGiG7L555Q3wRaI/PRv/TIs0njLq2IzIbc5Wo=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D $src $out/share/fonts/opentype/linja-pi-pu-lukin.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A sitelen pona font resembling the style found in Toki Pona: The Language of Good (lipu pu), by jan Sa.";
+    homepage = "https://jansa-tp.github.io/linja-pi-pu-lukin/";
+    license = licenses.unfree; # license is unspecified in repository
+    platforms = platforms.all;
+    maintainers = with maintainers; [ somasis ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/linja-sike/default.nix b/nixpkgs/pkgs/data/fonts/linja-sike/default.nix
new file mode 100644
index 000000000000..88c723bff22b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/linja-sike/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchurl }:
+
+fetchurl {
+  pname = "linja-sike";
+  version = "5.0";
+
+  url = "https://wyub.github.io/tokipona/linja-sike-5.otf";
+
+  downloadToTemp = true;
+  recursiveHash = true;
+  postFetch = ''
+    install -D $downloadedFile $out/share/fonts/opentype/linja-sike.otf
+  '';
+
+  sha256 = "sha256-LkjG1Oao/LqKwI+eRZPzShTh7lz5DkooltXm7vxZC9w=";
+
+  meta = with lib; {
+    description = "An extensive sitelen pona font by lipamanka";
+    homepage = "https://docs.google.com/document/d/1d8kUIAVlB-JNgK3LWr_zVCuUOZTh2hF7CfC6xQgxsBs/edit?usp=sharing";
+    downloadPage = "https://wyub.github.io/tokipona/linjasike";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ somasis ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/lklug-sinhala/default.nix b/nixpkgs/pkgs/data/fonts/lklug-sinhala/default.nix
index 45f907f1cf07..817dbbb25312 100644
--- a/nixpkgs/pkgs/data/fonts/lklug-sinhala/default.nix
+++ b/nixpkgs/pkgs/data/fonts/lklug-sinhala/default.nix
@@ -1,16 +1,21 @@
-{ fetchzip, lib }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "lklug-sinhala";
   version = "0.6";
-in
-fetchzip {
-  name = "lklug-sinhala-${version}";
-  url = "mirror://debian/pool/main/f/fonts-lklug-sinhala/fonts-lklug-sinhala_${version}.orig.tar.xz";
-  sha256 = "sha256-Fy+QnAajA4yLf/I1vOQll5pRd0ZLfLe8UXq4XMC9qNc=";
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    tar xf $downloadedFile --strip-components=1 -C $out/share/fonts fonts-lklug-sinhala-${version}/lklug.ttf
+  src = fetchurl {
+    url = "mirror://debian/pool/main/f/fonts-${pname}/fonts-${pname}_${version}.orig.tar.xz";
+    hash = "sha256-oPCCa01PMQcCK5fEILgXjrGzoDg+UvxkqK6AgeQaKio=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/lmmath/default.nix b/nixpkgs/pkgs/data/fonts/lmmath/default.nix
index 0530141317b8..3881f0f0f4e7 100644
--- a/nixpkgs/pkgs/data/fonts/lmmath/default.nix
+++ b/nixpkgs/pkgs/data/fonts/lmmath/default.nix
@@ -1,18 +1,24 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "lmmath";
   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 = ''
+  src = fetchzip {
+    url = "http://www.gust.org.pl/projects/e-foundry/lm-math/download/latinmodern-math-1959.zip";
+    hash = "sha256-et/WMhfZZYgP0S7ZmI6MZK5owv9bSoMBXFX6yGSng5Y=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/fonts/opentype/
     mkdir -p $out/share/doc/latinmodern-math-${version}/
-    unzip -j $downloadedFile "*/otf/*.otf" -d $out/share/fonts/opentype/
-    unzip -j $downloadedFile "*/doc/*.txt" -d $out/share/doc/latinmodern-math-${version}/
+    cp otf/*.otf $out/share/fonts/opentype/
+    cp doc/*.txt $out/share/doc/latinmodern-math-${version}/
+
+    runHook postInstall
   '';
-  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";
diff --git a/nixpkgs/pkgs/data/fonts/lmodern/default.nix b/nixpkgs/pkgs/data/fonts/lmodern/default.nix
index af0e70331351..85aa7060ea05 100644
--- a/nixpkgs/pkgs/data/fonts/lmodern/default.nix
+++ b/nixpkgs/pkgs/data/fonts/lmodern/default.nix
@@ -1,26 +1,27 @@
-{ fetchzip }:
+{ lib, stdenvNoCC, fetchurl }:
 
-fetchzip {
-  name = "lmodern-2.005";
+stdenvNoCC.mkDerivation rec {
+  pname = "lmodern";
+  version = "2.005";
 
-  url = "mirror://debian/pool/main/l/lmodern/lmodern_2.005.orig.tar.gz";
+  src = fetchurl {
+    url = "mirror://debian/pool/main/l/${pname}/${pname}_${version}.orig.tar.gz";
+    hash = "sha256-xlUuZt6rjW0pX4t6PKWAHkkv3PisGCj7ZwatZPAUNxk=";
+  };
 
-  postFetch = ''
-    tar xzvf $downloadedFile
+  installPhase = ''
+    runHook preInstall
 
     mkdir -p $out/texmf-dist/
     mkdir -p $out/share/fonts/
 
-    cp -r lmodern-2.005/* $out/texmf-dist/
-    cp -r lmodern-2.005/fonts/{opentype,type1} $out/share/fonts/
+    cp -r * $out/texmf-dist/
+    cp -r fonts/{opentype,type1} $out/share/fonts/
 
-    ln -s -r $out/texmf* $out/share/
+    runHook postInstall
   '';
 
-  sha256 = "sha256-ySdKUt8o5FqmpdnYSzbGJ1f9t8VmKYXqPt53e1/E/FA=";
-
   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
index 64ae831767bb..53bccc4a40a7 100644
--- a/nixpkgs/pkgs/data/fonts/lohit-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/lohit-fonts/default.nix
@@ -1,35 +1,38 @@
-{ fetchzip, lib }:
+{ lib, stdenvNoCC, fetchurl }:
 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"; };
+    assamese        = { label = "Assamese";          version = "2.91.5"; hash = "sha256-Oo/hHHFg/Nu3eaZLMdBclY90lKU2AMFUclyXHxGaAgg="; };
+    bengali         = { label = "Bengali";           version = "2.91.5"; hash = "sha256-QGf94TdQS2c9+wSSDK4Mknw5ubCGTuvg0xoNaJdirBc="; };
+    devanagari      = { label = "Devanagari script"; version = "2.95.4"; hash = "sha256-6CbOCqOei5eO1zwNQZvB+fFDkqxvJnK82z+zmClhRAE="; };
+    gujarati        = { label = "Gujarati";          version = "2.92.4"; hash = "sha256-BpwibF0/HXDvXpDEek0fj73cxo2QC1hSfQ49Q/ZOZg8="; };
+    gurmukhi        = { label = "Gurmukhi script";   version = "2.91.2"; hash = "sha256-5iLFW2FEE5LBqoALi+3sUjwC0ADntsp259TP+bYwR9g="; }; # renamed from Punjabi
+    kannada         = { label = "Kannada";           version = "2.5.4" ; hash = "sha256-7y2u0tBdNYCeY7Y+aqhxXP7Qv6GglJeVO1wvM9CzyIQ="; };
+    malayalam       = { label = "Malayalam";         version = "2.92.2"; hash = "sha256-SzM38vuAlP9OMC8kUuHQylmH8TUjCeg1y/Zcu2I2bjA="; };
+    marathi         = { label = "Marathi";           version = "2.94.2"; hash = "sha256-jK1Gwcr5gqzRNkbIxs4V/OYgUlUEpU0OYzKDTkiMlqM="; };
+    nepali          = { label = "Nepali";            version = "2.94.2"; hash = "sha256-OX1ekxeSbVGOrdbZ3Jvu4nii0zkgbuij10JIzqRcFx4="; };
+    odia            = { label = "Odia";              version = "2.91.2"; hash = "sha256-3/eczBGGZj4QPs7KY0as9zk5HaBfhgz6YgU0qmwpVcA="; }; # renamed from Oriya
+    tamil-classical = { label = "Classical Tamil";   version = "2.5.4" ; hash = "sha256-6SsddTCEUHMoF7X4+i7eXimmMuktfFAl8uz95RwM+yg="; };
+    tamil           = { label = "Tamil";             version = "2.91.3"; hash = "sha256-8lcNw87o9lhQsKwCqwBSfx7rhcrH/eEqac7EsA9/w/E="; };
+    telugu          = { label = "Telugu";            version = "2.5.5" ; hash = "sha256-cZh93NfEB+5S1JeEowtBMJ0nbZsFGpbEp2WAtzxrA8A="; };
   };
   gplfonts = {
     # GPL fonts removed from later releases
-    kashmiri        = { label = "Kashmiri";          version = "2.4.3" ; 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"; };
+    kashmiri        = { label = "Kashmiri";          version = "2.4.3" ; hash = "sha256-6T2QaWnt3+e5nr4vbk44FouqmeWKzia1lSf8S/bvqCs="; };
+    konkani         = { label = "Konkani";           version = "2.4.3" ; hash = "sha256-hVy2rxrUTPDeNnugi3Bk7z0JqGmk4/yeUsAoI/4R7A8="; };
+    maithili        = { label = "Maithili";          version = "2.4.3" ; hash = "sha256-ikDcpJqdizAYRpgoebzqxOEeodJ6C3fO2rsqGzC0HCs="; };
+    sindhi          = { label = "Sindhi";            version = "2.4.3" ; hash = "sha256-wU3B9fh+8E1bFBMnakzmajY7eNKzed9+eYL5AOxyNQI="; };
   };
 
-  mkpkg = license: name: {label, version, sha256}: fetchzip {
-    name = "lohit-${name}-${version}";
+  mkpkg = license: pname: {label, version, hash}: stdenvNoCC.mkDerivation {
+    inherit pname version;
 
-    url = "https://releases.pagure.org/lohit/lohit-${name}-ttf-${version}.tar.gz";
+    src = fetchurl {
+      url = "https://releases.pagure.org/lohit/lohit-${pname}-ttf-${version}.tar.gz";
+      inherit hash;
+    };
 
-    postFetch = ''
-      tar -xzf $downloadedFile --strip-components=1
+    installPhase = ''
+      runHook preInstall
 
       mkdir -p $out/share/fonts/truetype
       cp -v *.ttf $out/share/fonts/truetype/
@@ -37,11 +40,11 @@ let
       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}/"
-    '';
+      mkdir -p "$out/share/doc/lohit-${pname}"
+      cp -v ChangeLog* COPYRIGHT* "$out/share/doc/lohit-${pname}/"
 
-    inherit sha256;
+      runHook postInstall
+    '';
 
     meta = {
       inherit license;
diff --git a/nixpkgs/pkgs/data/fonts/luculent/default.nix b/nixpkgs/pkgs/data/fonts/luculent/default.nix
index 9d61931db365..1347af957e46 100644
--- a/nixpkgs/pkgs/data/fonts/luculent/default.nix
+++ b/nixpkgs/pkgs/data/fonts/luculent/default.nix
@@ -1,17 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let version = "2.0.0"; in
-fetchzip {
-  name = "luculent-${version}";
-  url =  "http://www.eastfarthing.com/luculent/luculent.tar.xz";
+stdenvNoCC.mkDerivation rec {
+  pname = "luculent";
+  version = "2.0.0";
+
+  src = fetchurl {
+    url = "http://www.eastfarthing.com/${pname}/${pname}.tar.xz";
+    hash = "sha256-6NxLnTBnvHmTUTFa2wW0AuKPEbCqzaWQyiFVnF0sBqU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar -xJf $downloadedFile --strip-components=1
     mkdir -p $out/share/fonts/truetype
     cp *.ttf $out/share/fonts/truetype
-  '';
 
-  sha256 = "1m3g64galwna1xjxb1fczmfplm6c1fn3ra1ln7f0vkm0ah5m4lbv";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "luculent font";
diff --git a/nixpkgs/pkgs/data/fonts/lxgw-neoxihei/default.nix b/nixpkgs/pkgs/data/fonts/lxgw-neoxihei/default.nix
new file mode 100644
index 000000000000..234fd2c508f1
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/lxgw-neoxihei/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, fetchurl
+, stdenvNoCC
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "lxgw-neoxihei";
+  version = "1.010";
+
+  src = fetchurl {
+    url = "https://github.com/lxgw/LxgwNeoXiHei/releases/download/v${version}/LXGWNeoXiHei.ttf";
+    hash = "sha256-IIiQn2Qlac4ZFy/gVubrpqEpJIt0Dav2TEL29xDC7w4=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 $src $out/share/fonts/truetype/LXGWNeoXiHei.ttf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A Simplified Chinese sans-serif font derived from IPAex Gothic";
+    homepage = "https://github.com/lxgw/LxgwNeoXiHei";
+    license = licenses.ipa;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ zendo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/lxgw-wenkai/default.nix b/nixpkgs/pkgs/data/fonts/lxgw-wenkai/default.nix
index a5ead2274b80..65045dc6d284 100644
--- a/nixpkgs/pkgs/data/fonts/lxgw-wenkai/default.nix
+++ b/nixpkgs/pkgs/data/fonts/lxgw-wenkai/default.nix
@@ -1,17 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let version = "1.222"; in
-fetchzip {
-  name = "lxgw-wenkai-${version}";
-  url = "https://github.com/lxgw/LxgwWenKai/releases/download/v${version}/lxgw-wenkai-v${version}.tar.gz";
+stdenvNoCC.mkDerivation rec {
+  pname = "lxgw-wenkai";
+  version = "1.300";
+
+  src = fetchurl {
+    url = "https://github.com/lxgw/LxgwWenKai/releases/download/v${version}/${pname}-v${version}.tar.gz";
+    hash = "sha256-pPN8siF/8D78sEcXoF+vZ4BIeYWyXAuk4HBQJP+G3O8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar -xzvf $downloadedFile --strip-components=1
     mkdir -p $out/share/fonts/truetype
-    cp *.ttf $out/share/fonts/truetype
-  '';
+    mv *.ttf $out/share/fonts/truetype
 
-  sha256 = "sha256-u2NTEYZrotOHktc2R5RWMFqeZ775/IpYJSUBO6PWijM=";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://lxgw.github.io/";
diff --git a/nixpkgs/pkgs/data/fonts/manrope/default.nix b/nixpkgs/pkgs/data/fonts/manrope/default.nix
index 9bf4f32caeb2..e42d7879af74 100644
--- a/nixpkgs/pkgs/data/fonts/manrope/default.nix
+++ b/nixpkgs/pkgs/data/fonts/manrope/default.nix
@@ -1,21 +1,34 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
   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"/*
+  version = "4.505";
+
+  src = fetchFromGitHub {
+    owner = "sharanda";
+    repo = pname;
+    rev = "d79b66b10608610692d59f4107791d249d244416"; # no tags in repo
+    hash = "sha256-dxnCOkPUEG0knSekolx2+SGJR81vRK0wUrbzGH4KGD0=";
+  };
+
+  dontPatch = true;
+  dontConfigure = true;
+  dontBuild = true;
+  doCheck = false;
+  dontFixup = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 fonts/otf/*.otf -t $out/share/fonts/opentype
+    install -Dm644 fonts/ttf/*.ttf fonts/variable/*.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
   '';
+
   meta = with lib; {
     description = "Open-source modern sans-serif font family";
-    homepage = "https://github.com/sharanda/manrope";
+    homepage = "https://www.gent.media/manrope";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = with maintainers; [ dtzWill ];
diff --git a/nixpkgs/pkgs/data/fonts/maple-font/default.nix b/nixpkgs/pkgs/data/fonts/maple-font/default.nix
new file mode 100644
index 000000000000..3c870abab6ad
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/maple-font/default.nix
@@ -0,0 +1,72 @@
+{ lib
+, stdenv
+, unzip
+, fetchurl
+}:
+
+let
+  maple-font = { pname, sha256, desc }: stdenv.mkDerivation
+    rec{
+
+      inherit pname desc;
+      version = "6.3";
+      src = fetchurl {
+        url = "https://github.com/subframe7536/Maple-font/releases/download/v${version}/${pname}.zip";
+        inherit sha256;
+      };
+
+      # Work around the "unpacker appears to have produced no directories"
+      # case that happens when the archive doesn't have a subdirectory.
+      setSourceRoot = "sourceRoot=`pwd`";
+      nativeBuildInputs = [ unzip ];
+      installPhase = ''
+        find . -name '*.ttf'    -exec install -Dt $out/share/fonts/truetype {} \;
+        find . -name '*.otf'    -exec install -Dt $out/share/fonts/opentype {} \;
+        find . -name '*.woff2'  -exec install -Dt $out/share/fonts/woff2 {} \;
+      '';
+
+      meta = with lib; {
+        homepage = "https://github.com/subframe7536/Maple-font";
+        description = ''
+          Open source ${desc} font with round corner and ligatures for IDE and command line
+        '';
+        license = licenses.ofl;
+        platforms = platforms.all;
+        maintainers = with maintainers; [ oluceps ];
+      };
+    };
+
+in
+{
+  Mono = maple-font {
+    pname = "MapleMono";
+    sha256 = "sha256-Ap4OwP/QGFz9+xn12rekia1/pwRxZvv+H+ZmZiXcxcY=";
+    desc = "monospace";
+  };
+
+  NF = maple-font {
+    pname = "MapleMono-NF";
+    sha256 = "sha256-WZHFQRG+81TF5YgOT249c8VA8vAvYowiQx/pqsDuJ4o=";
+    desc = "Nerd Font";
+  };
+
+  SC-NF = maple-font {
+    pname = "MapleMono-SC-NF";
+    sha256 = "sha256-26odkmMljEwstRywDYJ7Dst5pfOXrtQTcrFFxbRwHcA=";
+    desc = "Nerd Font SC";
+  };
+
+  opentype = maple-font {
+    pname = "MapleMono-otf";
+    sha256 = "sha256-u2IuymjiosoSbdIW7h2QalagTI+eDMRSuhLgXy5RdRA=";
+    desc = "OpenType";
+  };
+
+  woff2 = maple-font {
+    pname = "MapleMono-woff2";
+    sha256 = "sha256-iv6Q/aYMlAkhaem8tFWAzqc9mVgWQXghBzcHJz1dg/Y=";
+    desc = "WOFF2.0";
+  };
+}
+
+
diff --git a/nixpkgs/pkgs/data/fonts/marathi-cursive/default.nix b/nixpkgs/pkgs/data/fonts/marathi-cursive/default.nix
index 8c228fd91a75..7f6bedc75e8b 100644
--- a/nixpkgs/pkgs/data/fonts/marathi-cursive/default.nix
+++ b/nixpkgs/pkgs/data/fonts/marathi-cursive/default.nix
@@ -1,19 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
-  version = "2.0";
-in fetchzip rec {
-  name = "marathi-cursive-${version}";
+stdenvNoCC.mkDerivation rec {
+  pname = "marathi-cursive";
+  version = "2.1";
 
-  url = "https://github.com/MihailJP/MarathiCursive/releases/download/v${version}/MarathiCursive-${version}.tar.xz";
+  src = fetchurl {
+    url = "https://github.com/MihailJP/MarathiCursive/releases/download/v${version}/MarathiCursive-${version}.tar.xz";
+    hash = "sha256-C/z8ALV9bht0SaYqACO5ulSVCk1d6wBwvpVC4ZLgtek=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  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
-  '';
+    install -m444 -Dt $out/share/doc/${pname}-${version} README *.txt
 
-  sha256 = "17pj60ajnjghxhxka8a046mz6vfwr79wnby7xd6pg5hgncin2hgg";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/MihailJP/MarathiCursive";
diff --git a/nixpkgs/pkgs/data/fonts/martian-mono/default.nix b/nixpkgs/pkgs/data/fonts/martian-mono/default.nix
new file mode 100644
index 000000000000..ca15d938d95f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/martian-mono/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "martian-mono";
+  version = "1.0.0";
+
+  src = fetchzip {
+    url = "https://github.com/evilmartians/mono/releases/download/v${version}/martian-mono-${version}-otf.zip";
+    sha256 = "sha256-hC08IHWqg+x3qoEf4EL98ZbGeqdwjnMpDovEiWrWPpI=";
+    stripRoot = false;
+  };
+
+  dontPatch = true;
+  dontConfigure = true;
+  dontBuild = true;
+  doCheck = false;
+  dontFixup = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 -t $out/share/fonts/opentype/ *.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Free and open-source monospaced font from Evil Martians";
+    homepage = "https://github.com/evilmartians/mono";
+    changelog = "https://github.com/evilmartians/mono/raw/v${version}/Changelog.md";
+    license = licenses.ofl;
+    maintainers = [ maintainers.marsam ];
+    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
index 80c887f58913..25923f3cfc77 100644
--- a/nixpkgs/pkgs/data/fonts/material-design-icons/default.nix
+++ b/nixpkgs/pkgs/data/fonts/material-design-icons/default.nix
@@ -1,25 +1,31 @@
-{ lib, fetchFromGitHub }:
+{ lib, fetchFromGitHub, stdenvNoCC }:
 
-let
-  version = "6.6.96";
-in fetchFromGitHub {
-  name = "material-design-icons-${version}";
-  owner  = "Templarian";
-  repo   = "MaterialDesign-Webfont";
-  rev    = "v${version}";
+stdenvNoCC.mkDerivation rec {
+  pname = "material-design-icons";
+  version = "7.2.96";
 
-  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/
+  src = fetchFromGitHub {
+    owner = "Templarian";
+    repo = "MaterialDesign-Webfont";
+    rev = "v${version}";
+    sha256 = "sha256-4r/l7QkD04OR74FZBH0l81hDY5TexEIIJnECYFKsGxM=";
+    sparseCheckout = [ "fonts" ];
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out/share/fonts/"{eot,truetype,woff,woff2}
+    cp fonts/*.eot "$out/share/fonts/eot/"
+    cp fonts/*.ttf "$out/share/fonts/truetype/"
+    cp fonts/*.woff "$out/share/fonts/woff/"
+    cp fonts/*.woff2 "$out/share/fonts/woff2/"
+
+    runHook postInstall
   '';
-  sha256 = "sha256-rfDb9meTF0Y0kiCQd11SgnntQnw34Ti/IXn35xaPO1M=";
 
   meta = with lib; {
-    description = "4600+ Material Design Icons from the Community";
+    description = "7000+ Material Design Icons from the Community";
     longDescription = ''
       Material Design Icons' growing icon collection allows designers and
       developers targeting various platforms to download icons in the format,
@@ -28,6 +34,6 @@ in fetchFromGitHub {
     homepage = "https://materialdesignicons.com";
     license = licenses.asl20;
     platforms = platforms.all;
-    maintainers = with maintainers; [ vlaci ];
+    maintainers = with maintainers; [ vlaci PlayerNameHere ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/material-icons/default.nix b/nixpkgs/pkgs/data/fonts/material-icons/default.nix
index 656be1b153eb..f03e8683e509 100644
--- a/nixpkgs/pkgs/data/fonts/material-icons/default.nix
+++ b/nixpkgs/pkgs/data/fonts/material-icons/default.nix
@@ -1,20 +1,24 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "material-icons";
   version = "3.0.1";
-in fetchFromGitHub {
-  name = "material-icons-${version}";
 
-  owner  = "google";
-  repo   = "material-design-icons";
-  rev    = version;
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "material-design-icons";
+    rev = version;
+    hash = "sha256-4FphNJCsaLWzlVR4TmXnDBid0EVj39fkeoh5j1leBZ8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar xf $downloadedFile --strip=1
     mkdir -p $out/share/fonts/truetype
     cp iconfont/*.ttf $out/share/fonts/truetype
+
+    runHook postInstall
   '';
-  sha256 = "1syy6v941lb8nqxhdf7mfx28v05lwrfnq53r3c1ym13x05l9kchp";
 
   meta = with lib; {
     description = "System status icons by Google, featuring material design";
diff --git a/nixpkgs/pkgs/data/fonts/material-symbols/default.nix b/nixpkgs/pkgs/data/fonts/material-symbols/default.nix
new file mode 100644
index 000000000000..5cd79834b3ca
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/material-symbols/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, rename
+}:
+
+stdenvNoCC.mkDerivation {
+  pname = "material-symbols";
+  version = "unstable-2023-01-07";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "material-design-icons";
+    rev = "511eea577b20d2b02ad77477750da1e44c66a52c";
+    sha256 = "sha256-ENoWeyV9Dw26pgjy0Xst+qpxJ/mjgfqrY2Du2VwzwCE=";
+    sparseCheckout = [ "variablefont" ];
+  };
+
+  nativeBuildInputs = [ rename ];
+
+  installPhase = ''
+    runHook preInstall
+
+    rename 's/\[FILL,GRAD,opsz,wght\]//g' variablefont/*
+    install -Dm755 variablefont/*.ttf -t $out/share/fonts/TTF
+    install -Dm755 variablefont/*.woff2 -t $out/share/fonts/woff2
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Material Symbols icons by Google";
+    homepage = "https://fonts.google.com/icons";
+    downloadPage = "https://github.com/google/material-design-icons";
+    license = lib.licenses.asl20;
+    maintainers = with maintainers; [ fufexan ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/medio/default.nix b/nixpkgs/pkgs/data/fonts/medio/default.nix
index c94046f085f9..5adcad008662 100644
--- a/nixpkgs/pkgs/data/fonts/medio/default.nix
+++ b/nixpkgs/pkgs/data/fonts/medio/default.nix
@@ -1,24 +1,29 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
 let
   majorVersion = "0";
   minorVersion = "200";
-  pname = "medio";
 in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "medio";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-S+CcwD4zGVk7cIFD6K4NnpE/0mrJq4RnDJC576rhcLQ=";
+    stripRoot = false;
+  };
 
-fetchzip {
-  name = "${pname}-font-${majorVersion}.${minorVersion}";
+  installPhase = ''
+    runHook preInstall
 
-  url = "http://dotcolon.net/DL/font/${pname}.zip";
-  sha256 = "0gxcmhjlsh2pzsmj78vw4v935ax7hfk533ddlhfhfma52zyxyh7x";
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
 
-  postFetch = ''
-    mkdir -p $out/share/fonts/opentype/${pname}
-    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+    runHook postInstall
   '';
 
   meta = with lib; {
-    homepage = "http://dotcolon.net/font/${pname}/";
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
     description = "Serif font designed by Sora Sagano";
     longDescription = ''
       Medio is a serif font designed by Sora Sagano, based roughly
@@ -26,7 +31,7 @@ fetchzip {
       but with hairline serifs in the style of a Didone.
     '';
     platforms = platforms.all;
-    maintainers = with maintainers; [ leenaars ];
+    maintainers = with maintainers; [ leenaars minijackson ];
     license = licenses.cc0;
   };
-}
+})
diff --git a/nixpkgs/pkgs/data/fonts/melete/default.nix b/nixpkgs/pkgs/data/fonts/melete/default.nix
new file mode 100644
index 000000000000..3d3e24ac81da
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/melete/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+let
+  majorVersion = "0";
+  minorVersion = "200";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "melete";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-y1xtNM1Oy92gOvbr9J71XNxb1JeTzOgxKms3G2YHK00=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
+    description = "A headline typeface that could be used as a movie title";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ minijackson ];
+    license = licenses.ofl;
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/meslo-lgs-nf/default.nix b/nixpkgs/pkgs/data/fonts/meslo-lgs-nf/default.nix
index 4d56af449cc2..51dacaba366c 100644
--- a/nixpkgs/pkgs/data/fonts/meslo-lgs-nf/default.nix
+++ b/nixpkgs/pkgs/data/fonts/meslo-lgs-nf/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "meslo-lgs-nf";
-  version = "2021-09-03";
+  version = "unstable-2023-04-03";
 
   src = fetchFromGitHub {
     owner = "romkatv";
     repo = "powerlevel10k-media";
-    rev = "389133fb8c9a2347929a23702ce3039aacc46c3d";
-    sha256 = "sha256-dWqRxjqsa/Tiv0Ww8VLHRDhftD3eqa1t2/T0irFeMFI=";
+    rev = "145eb9fbc2f42ee408dacd9b22d8e6e0e553f83d";
+    sha256 = "sha256-8xwVOlOP1SresbReNh1ce2Eu12KdIwdJSg6LKM+k2ng=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/data/fonts/mno16/default.nix b/nixpkgs/pkgs/data/fonts/mno16/default.nix
index eeb53904fe11..59597120c100 100644
--- a/nixpkgs/pkgs/data/fonts/mno16/default.nix
+++ b/nixpkgs/pkgs/data/fonts/mno16/default.nix
@@ -1,16 +1,18 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
   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 = ''
+  src = fetchzip {
+    url = "https://github.com/sevmeyer/${pname}/releases/download/${version}/${pname}-${version}.zip";
+    stripRoot = false;
+    hash = "sha256-xJQ9V7GlGUTEeYhqYFl/SemS6iqV0eW85YOn/tLgA+M=";
+  };
+
+  installPhase = ''
     mkdir -p $out/share/fonts/truetype
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype/
+    cp fonts/*.ttf $out/share/fonts/truetype/
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/mona-sans/default.nix b/nixpkgs/pkgs/data/fonts/mona-sans/default.nix
new file mode 100644
index 000000000000..b43a01b4fecf
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/mona-sans/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "mona-sans";
+  version = "1.0";
+
+  src = fetchFromGitHub {
+    rev = "v" + version;
+    owner = "github";
+    repo = pname;
+    sha256 = "iJhbSGNByOvtJd9hEh0g7Ht6eoAJ18jco0oHGqjOiLQ=";
+  };
+
+  installPhase = ''
+    install -m644 --target $out/share/fonts/truetype/mona-sans -D $src/dist/*.ttf
+  '';
+
+  meta = {
+    description = "A variable font from GitHub";
+    homepage = "https://github.com/github/mona-sans";
+    license = lib.licenses.ofl;
+    longDescription = ''
+      A strong and versatile typeface, designed together with Degarism and
+      inspired by industrial-era grotesques. Mona Sans works well across
+      product, web, and print. Made to work well together with Mona Sans's
+      sidekick, Hubot Sans.
+
+      Mona Sans is a variable font. Variable fonts enable different variations
+      of a typeface to be incorporated into one single file, and are supported
+      by all major browsers, allowing for performance benefits and granular
+      design control of the typeface's weight, width, and slant.
+    '';
+    maintainers = with lib.maintainers; [ drupol ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/monocraft/default.nix b/nixpkgs/pkgs/data/fonts/monocraft/default.nix
new file mode 100644
index 000000000000..c1e4be656ce1
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/monocraft/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, lib, fetchurl }:
+
+let
+  version = "2.4";
+  relArtifact = name: hash: fetchurl {
+    inherit name hash;
+    url = "https://github.com/IdreesInc/Monocraft/releases/download/v${version}/${name}";
+  };
+in
+stdenv.mkDerivation {
+  pname = "monocraft";
+  inherit version;
+
+  srcs = [
+    (relArtifact "Monocraft.otf" "sha256-PA1W+gOUStGw7cDmtEbG+B6M+sAYr8cft+Ckxj5LciU=")
+    (relArtifact "Monocraft.ttf" "sha256-S4j5v2bTJbhujT3Bt8daNN1YGYYP8zVPf9XXjuR64+o=")
+    (relArtifact "Monocraft-no-ligatures.ttf" "sha256-MuHfoP+dsXe+ODN4vWFIj50jwOxYyIiS0dd1tzVxHts=")
+    (relArtifact "Monocraft-nerd-fonts-patched.ttf" "sha256-QxMp8UwcRjWySNHWoNeX2sX9teZ4+tCFj+DG41azsXw=")
+  ];
+
+  sourceRoot = ".";
+  unpackCmd = ''cp "$curSrc" $(basename $curSrc)'';
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm644 -t $out/share/fonts/opentype *.otf
+    install -Dm644 -t $out/share/fonts/truetype *.ttf
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A programming font based on the typeface used in Minecraft";
+    homepage = "https://github.com/IdreesInc/Monocraft";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ zhaofengli ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/mononoki/default.nix b/nixpkgs/pkgs/data/fonts/mononoki/default.nix
index d48332b4a27f..d943d42be7ac 100644
--- a/nixpkgs/pkgs/data/fonts/mononoki/default.nix
+++ b/nixpkgs/pkgs/data/fonts/mononoki/default.nix
@@ -1,18 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  version = "1.3";
-in fetchzip {
-  name = "mononoki-${version}";
+stdenvNoCC.mkDerivation rec {
+  pname = "mononoki";
+  version = "1.6";
 
-  url = "https://github.com/madmalik/mononoki/releases/download/${version}/mononoki.zip";
+  src = fetchzip {
+    url = "https://github.com/madmalik/mononoki/releases/download/${version}/mononoki.zip";
+    stripRoot = false;
+    hash = "sha256-HQM9rzIJXLOScPEXZu0MzRlblLfbVVNJ+YvpONxXuwQ=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
     mkdir -p $out/share/fonts/mononoki
-    unzip -j $downloadedFile -d $out/share/fonts/mononoki
-  '';
+    cp * $out/share/fonts/mononoki
 
-  sha256 = "sha256-K2uOpJRmQ1NcDZfh6rorCF0MvGHFCsSW8J7Ue9OC/OY=";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/madmalik/mononoki";
diff --git a/nixpkgs/pkgs/data/fonts/montserrat/default.nix b/nixpkgs/pkgs/data/fonts/montserrat/default.nix
index 7d91f49eb3e4..6074018f5545 100644
--- a/nixpkgs/pkgs/data/fonts/montserrat/default.nix
+++ b/nixpkgs/pkgs/data/fonts/montserrat/default.nix
@@ -1,21 +1,27 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
   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
+  src = fetchFromGitHub {
+    owner = "JulietaUla";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-eVCRn2OtNI5NuYZBQy06HKnMMXhPPnFxI8m8kguZjg0=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/{otf,ttf,woff,woff2}
+
+    mv fonts/otf/*.otf $out/share/fonts/otf
+    mv fonts/ttf/*.ttf $out/share/fonts/ttf
+    mv fonts/webfonts/*.woff $out/share/fonts/woff
+    mv fonts/webfonts/*.woff2 $out/share/fonts/woff2
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/mph-2b-damase/default.nix b/nixpkgs/pkgs/data/fonts/mph-2b-damase/default.nix
index 10a8dc38d954..d5623d907bee 100644
--- a/nixpkgs/pkgs/data/fonts/mph-2b-damase/default.nix
+++ b/nixpkgs/pkgs/data/fonts/mph-2b-damase/default.nix
@@ -1,17 +1,21 @@
-{ fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-fetchzip {
-  name = "MPH-2B-Damase-2";
+stdenvNoCC.mkDerivation rec {
+  pname = "mph-2b-damase";
+  version = "2";
 
-  url = "http://www.wazu.jp/downloads/damase_v.2.zip";
+  src = fetchzip {
+    url = "https://web.archive.org/web/20160322114946/http://www.wazu.jp/downloads/damase_v.2.zip";
+    hash = "sha256-4x78D+c3ZBxfhTQQ4+gyxvrsuztHF2ItXLh4uA0PxvU=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "0yzf12z6fpbgycqwiz88f39iawdhjabadfa14wxar3nhl9n434ql";
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
 
-  meta = {
-  };
+    runHook postInstall
+  '';
+
+  meta = { };
 }
diff --git a/nixpkgs/pkgs/data/fonts/mplus-outline-fonts/default.nix b/nixpkgs/pkgs/data/fonts/mplus-outline-fonts/default.nix
index c3def549aa43..93e508ecd43c 100644
--- a/nixpkgs/pkgs/data/fonts/mplus-outline-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/mplus-outline-fonts/default.nix
@@ -1,16 +1,23 @@
-{ lib, fetchzip, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchurl, fetchFromGitHub }:
 
 let pname = "mplus-outline-fonts";
-in {
-  osdnRelease = fetchzip {
-    name = "${pname}-osdn";
-    url = "mirror://osdn/mplus-fonts/62344/mplus-TESTFLIGHT-063a.tar.xz";
-    sha256 = "sha256-+VN+aFx5hMlWwtk+FM+vL6G07+yEi9kYYsoQLSfMUZo=";
-    postFetch = ''
-      install -m444 -Dt $out/share/fonts/truetype/${pname} $out/*.ttf
-      shopt -s extglob dotglob
-      rm -rf $out/!(share)
-      shopt -u extglob dotglob
+in
+{
+  osdnRelease = stdenvNoCC.mkDerivation {
+    pname = "${pname}-osdn";
+    version = "063a";
+
+    src = fetchurl {
+      url = "mirror://osdn/mplus-fonts/62344/mplus-TESTFLIGHT-063a.tar.xz";
+      hash = "sha256-ROuXO0tq/1dN5FTbEF3cI+Z0nCKUc0vZyx4Nc05M3Xk=";
+    };
+
+    installPhase = ''
+      runHook preInstall
+
+      install -m444 -Dt $out/share/fonts/truetype/${pname} *.ttf
+
+      runHook postInstall
     '';
 
     meta = with lib; {
@@ -22,19 +29,25 @@ in {
     };
   };
 
-  githubRelease = fetchFromGitHub {
-    name = "${pname}-github";
-    owner = "coz-m";
-    repo = "MPLUS_FONTS";
-    rev = "336fec4e9e7c1e61bd22b82e6364686121cf3932";
-    sha256 = "sha256-LSIyrstJOszll72mxXIC7EW4KEMTFCaQwWs59j0UScE=";
-    postFetch = ''
+  githubRelease = stdenvNoCC.mkDerivation {
+    pname = "${pname}-github";
+    version = "unstable-2022-05-19";
+
+    src = fetchFromGitHub {
+      owner = "coz-m";
+      repo = "MPLUS_FONTS";
+      rev = "336fec4e9e7c1e61bd22b82e6364686121cf3932";
+      hash = "sha256-jzDDUs1dKjqNjsMeTA2/4vm+akIisnOuE2mPQS7IDSA=";
+    };
+
+    installPhase = ''
+      runHook preInstall
+
       mkdir -p $out/share/fonts/{truetype,opentype}/${pname}
-      mv $out/fonts/ttf/* $out/share/fonts/truetype/${pname}
-      mv $out/fonts/otf/* $out/share/fonts/opentype/${pname}
-      shopt -s extglob dotglob
-      rm -rf $out/!(share)
-      shopt -u extglob dotglob
+      mv fonts/ttf/* $out/share/fonts/truetype/${pname}
+      mv fonts/otf/* $out/share/fonts/opentype/${pname}
+
+      runHook postInstall
     '';
 
     meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/mro-unicode/default.nix b/nixpkgs/pkgs/data/fonts/mro-unicode/default.nix
index 9f4eda63d0fa..9a522c1c2a36 100644
--- a/nixpkgs/pkgs/data/fonts/mro-unicode/default.nix
+++ b/nixpkgs/pkgs/data/fonts/mro-unicode/default.nix
@@ -1,13 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchurl }:
 
-fetchzip {
-  name = "mro-unicode-2013-05-25";
+stdenvNoCC.mkDerivation {
+  pname = "mro-unicode";
+  version = "unstable-2013-05-25";
 
-  url = "https://github.com/phjamr/MroUnicode/raw/f297de070f7eba721a47c850e08efc119d3bfbe8/MroUnicode-Regular.ttf";
+  src = fetchurl {
+    url = "https://github.com/phjamr/MroUnicode/raw/f297de070f7eba721a47c850e08efc119d3bfbe8/MroUnicode-Regular.ttf";
+    hash = "sha256-hcQmTuRWxaU5KEMXg/O0b1olE8YxXWz0PAlqAJknR/0=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = "install -Dm644 $downloadedFile $out/share/fonts/truetype/MroUnicode-Regular.ttf";
+    install -Dm644 $src $out/share/fonts/truetype/MroUnicode-Regular.ttf
 
-  sha256 = "1i71bjd9gdyn8ladfncbfhz6xz1h8xx8yf876j1z8lh719410c8g";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/phjamr/MroUnicode";
diff --git a/nixpkgs/pkgs/data/fonts/myrica/default.nix b/nixpkgs/pkgs/data/fonts/myrica/default.nix
index c36292eb0014..5d8aa43a5b21 100644
--- a/nixpkgs/pkgs/data/fonts/myrica/default.nix
+++ b/nixpkgs/pkgs/data/fonts/myrica/default.nix
@@ -1,18 +1,24 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-fetchFromGitHub {
-  name = "myrica-2.011.20160403";
+stdenvNoCC.mkDerivation {
+  pname = "myrica";
+  version = "2.011.20160403";
 
-  owner = "tomokuni";
-  repo = "Myrica";
-  # commit does not exist on any branch on the target repository
-  rev = "b737107723bfddd917210f979ccc32ab3eb6dc20";
-  sha256 = "187rklcibbkai6m08173ca99qn8v7xpdfdv0izpymmavj85axm12";
+  src = fetchFromGitHub {
+    owner = "tomokuni";
+    repo = "Myrica";
+    # commit does not exist on any branch on the target repository
+    rev = "b737107723bfddd917210f979ccc32ab3eb6dc20";
+    hash = "sha256-kx+adbN2DsO81KJFt+FGAPZN+1NpE9xiagKZ4KyaJV0=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar --strip-components=1 -xzvf $downloadedFile
     mkdir -p $out/share/fonts/truetype
     cp product/*.TTC $out/share/fonts/truetype
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/nacelle/default.nix b/nixpkgs/pkgs/data/fonts/nacelle/default.nix
new file mode 100644
index 000000000000..2d670cdc229d
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nacelle/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+let
+  majorVersion = "1";
+  minorVersion = "00";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "nacelle";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-e4QsPiyfWEAYHWdwR3CkGc2UzuA3hZPYYlWtIubY0Oo=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
+    description = "A improved version of the Aileron font";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ minijackson ];
+    license = licenses.ofl;
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/nahid-fonts/default.nix b/nixpkgs/pkgs/data/fonts/nahid-fonts/default.nix
index fbceb3c927dc..d036eed35c96 100644
--- a/nixpkgs/pkgs/data/fonts/nahid-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/nahid-fonts/default.nix
@@ -1,19 +1,23 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
   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
+  src = fetchFromGitHub {
+    owner = "rastikerdar";
+    repo = "nahid-font";
+    rev = "v${version}";
+    hash = "sha256-r8/W0/pJV6OX954spIITvW7M6lIbZRpbsvEHErnXglg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/nahid-fonts {} \;
+
+    runHook postInstall
   '';
-  sha256 = "0df169sibq14j2mj727sq86c00jm1nz8565v85hkvh4zgz2plb7c";
 
   meta = with lib; {
     homepage = "https://github.com/rastikerdar/nahid-font";
diff --git a/nixpkgs/pkgs/data/fonts/nanum-gothic-coding/default.nix b/nixpkgs/pkgs/data/fonts/nanum-gothic-coding/default.nix
index 5066a2aef4dc..3798a33b66c6 100644
--- a/nixpkgs/pkgs/data/fonts/nanum-gothic-coding/default.nix
+++ b/nixpkgs/pkgs/data/fonts/nanum-gothic-coding/default.nix
@@ -1,19 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  version = "VER2.5";
-  fullName = "NanumGothicCoding-2.5";
+stdenvNoCC.mkDerivation rec {
+  pname = "nanum-gothic-coding";
+  version = "2.5";
 
-in fetchzip {
-  name = "nanum-gothic-coding";
-  url = "https://github.com/naver/nanumfont/releases/download/${version}/${fullName}.zip";
+  src = fetchzip {
+    url = "https://github.com/naver/nanumfont/releases/download/VER${version}/NanumGothicCoding-${version}.zip";
+    stripRoot = false;
+    hash = "sha256-jHbbCMUxn54iQMKdAWI3r8CDxi+5LLJh8ucQzq2Ukdc=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
     mkdir -p $out/share/fonts/NanumGothicCoding
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/NanumGothicCoding
-  '';
+    cp *.ttf $out/share/fonts/NanumGothicCoding
 
-  sha256 = "0b3pkhd6xn6393zi0dhj3ah08w1y1ji9fl6584bi0c8lanamf2pc";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "A contemporary monospaced sans-serif typeface with a warm touch";
diff --git a/nixpkgs/pkgs/data/fonts/nanum/default.nix b/nixpkgs/pkgs/data/fonts/nanum/default.nix
index 1aac2c53d821..64575a131029 100644
--- a/nixpkgs/pkgs/data/fonts/nanum/default.nix
+++ b/nixpkgs/pkgs/data/fonts/nanum/default.nix
@@ -1,20 +1,21 @@
-{ fetchzip, lib }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
-  version = "20170925";
-in
-fetchzip {
-  name = "nanum-${version}";
-  url = "mirror://ubuntu/pool/universe/f/fonts-nanum/fonts-nanum_${version}.orig.tar.xz";
-  sha256 = "sha256-lSTeQEuMmlQxiQqrx9tNScifE8nMOUDJF3lCfoAFIJk=";
+stdenvNoCC.mkDerivation rec {
+  pname = "nanum";
+  version = "20200506";
+
+  src = fetchurl {
+    url = "mirror://ubuntu/pool/universe/f/fonts-${pname}/fonts-${pname}_${version}.orig.tar.xz";
+    hash = "sha256-FXgDdIGYFRJQo898sDrvhE5AjpyYhJ3YieGRhGqsrUs=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    unpackDir="$TMPDIR/unpack"
-    mkdir "$unpackDir"
-    cd "$unpackDir"
-    tar xf "$downloadedFile" --strip-components=1
     mkdir -p $out/share/fonts
     cp *.ttf $out/share/fonts
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/nasin-nanpa/default.nix b/nixpkgs/pkgs/data/fonts/nasin-nanpa/default.nix
new file mode 100644
index 000000000000..cd05c667a248
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/nasin-nanpa/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "nasin-nanpa";
+  version = "2.5.1";
+
+  srcs = [
+    (fetchurl {
+      name = "nasin-nanpa.otf";
+      url = "https://github.com/ETBCOR/nasin-nanpa/releases/download/n${version}/nasin-nanpa-${version}.otf";
+      hash = "sha256-++uOrqFzQ6CB/OPEmBivpjMfAtFk3PSsCNpFBjOtGEg=";
+    })
+    (fetchurl {
+      name = "nasin-nanpa-lasina-kin.otf";
+      url = "https://github.com/ETBCOR/nasin-nanpa/releases/download/n${version}/nasin-nanpa-${version}-lasina-kin.otf";
+      hash = "sha256-4WIX74y2O4NaKi/JQrgTbOxlKDQKJ/F9wkQuoOdWuTI=";
+    })
+  ];
+
+  dontUnpack = true;
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/opentype
+    for src in $srcs; do
+        file=$(stripHash $src)
+        cp $src $out/share/fonts/opentype/$file
+    done
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/ETBCOR/nasin-nanpa";
+    description = "UCSUR OpenType monospaced font for the Toki Pona writing system, Sitelen Pona";
+    longDescription = ''
+      ni li nasin pi sitelen pona.
+      sitelen ale pi nasin ni li sama mute weka.
+      sitelen pi nasin ni li lon nasin UCSUR kin.
+    '';
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ somasis ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/national-park/default.nix b/nixpkgs/pkgs/data/fonts/national-park/default.nix
index 8ed251de53d5..4970e0d5920f 100644
--- a/nixpkgs/pkgs/data/fonts/national-park/default.nix
+++ b/nixpkgs/pkgs/data/fonts/national-park/default.nix
@@ -1,18 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
   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/
-  '';
+  src = fetchzip {
+    url = "https://files.cargocollective.com/c${version}/NationalPark.zip";
+    stripRoot = false;
+    hash = "sha256-VUboZZVJfKupnoHXo3RxetEEYimrr1DxghVZaaWnnw4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "044gh4xcasp8i9ny6z4nmns1am2pk5krc4ann2afq35v9bnl2q5d";
+    install -Dm644 *.otf -t $out/share/fonts/opentype/
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = ''Typeface designed to mimic the national park service
diff --git a/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix b/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix
index ceb0cb8b03af..123e5cb18abe 100644
--- a/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix
@@ -1,7 +1,6 @@
 { 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 ? []
@@ -32,7 +31,7 @@ let
     fName:
     fSha:
     (fetchurl {
-      url = "https://github.com/ryanoasis/nerd-fonts/releases/download/v${version}/${fName}.zip";
+      url = "https://github.com/ryanoasis/nerd-fonts/releases/download/v${version}/${fName}.tar.xz";
       sha256 = fSha;
     })
   ) selectedFontsShas;
@@ -42,9 +41,6 @@ stdenv.mkDerivation rec {
   inherit version;
   inherit srcs;
   pname = "nerdfonts";
-  nativeBuildInputs = [
-    unzip
-  ];
   sourceRoot = ".";
   buildPhase = ''
     echo "selected fonts are ${toString selectedFonts}"
@@ -58,6 +54,7 @@ stdenv.mkDerivation rec {
       rm -rfv $out/share/fonts/truetype/NerdFonts/*Windows\ Compatible.*
     ''}
   '';
+  passthru.updateScript = ./update.sh;
 
   meta = with lib; {
     description = "Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts";
diff --git a/nixpkgs/pkgs/data/fonts/nerdfonts/shas.nix b/nixpkgs/pkgs/data/fonts/nerdfonts/shas.nix
index 4194e57532dc..9e393f8e399c 100644
--- a/nixpkgs/pkgs/data/fonts/nerdfonts/shas.nix
+++ b/nixpkgs/pkgs/data/fonts/nerdfonts/shas.nix
@@ -1,52 +1,56 @@
 {
-  "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";
+  "3270" = "00cmrlx30jz3gd9c1cjw3ddhr82ngzwn1brwcr8l7fahxb7gvq7z";
+  "Agave" = "0gnr12b5ah1xadm53fj5x0532kx8g6v5wc82c391d18h2azbllbm";
+  "AnonymousPro" = "0lqmghnj33jfv8rn1cyvq50j27kc19n5lfjr2adwsy2qixk499p9";
+  "Arimo" = "07v7m5m9vijdwwm0d63j67ciy2nlpkfy18s6q2d555n6yfs2yyb4";
+  "AurulentSansMono" = "1ndrs7bl0lxfahnrv91y0vsbvs0p3ah56drsvz5r3qw7sr4ffr09";
+  "BigBlueTerminal" = "0mms77748yc9qlzank48qqdc4as41zfkhbspv2scklz0n76v1f74";
+  "BitstreamVeraSansMono" = "0wkg8r6bryv4q320hrc3x2c78n1jp44s99hmbwjjplzh1g0j5x49";
+  "CascadiaCode" = "0bmzji880wbc3c4krw47kzf8mzb9abvv6wjybhynd1rjf31i27fj";
+  "CodeNewRoman" = "0w5plvvwxxzmlz0ylah5an4j0mlbj292nqvfgj5v9p5kbw68qgrl";
+  "ComicShannsMono" = "1ybxyn85ygm4ipg371b204mi6x7303yqriysiggb5bsfas2ymq6m";
+  "Cousine" = "0bkwf3h6wy9n3ii9ii4s16951w65vz54yyrdwxngcmrwapcii9y5";
+  "DaddyTimeMono" = "1w5n170l63hfxh1xclw3jpf8amj60br6py4yx12yhqanp2zg0shj";
+  "DejaVuSansMono" = "1j22f5jnpmyli686r67c4c07g07ac78aq9wg8hy1vwblxfzdvq9f";
+  "DroidSansMono" = "13r1sglgwf05swnbn0mha2gpdqammzlg0p6h7c33af1vr7n8cnca";
+  "FantasqueSansMono" = "1k0p6gvas6mgwq0bbvpwbn3mm6yaaapgjqgk30fvpq9zvn4a26bf";
+  "FiraCode" = "14vbb3w6il32kd8my75vvv786azm7sxmdpba9np0qjx4rs8xdhbn";
+  "FiraMono" = "1iiz5cnhrb67793ww6pj5y5x9s1a5nlk9kqwbv92kxmbqakarlcb";
+  "Go-Mono" = "0zdxyid1kw2prszhj69pqyrba6ywsxwb0ynnmwvqnc99bp0lx7pw";
+  "Gohu" = "0bx4mayqm5rqgd5p3xqpwrqn7338yjcsa9a1vi2qx4gycbp94qh5";
+  "Hack" = "1p8l53k6fzjbx7sjl05bq7xxnxmn7026sdgmyxqx4crmy18qxywk";
+  "Hasklig" = "1fvzhfjd0xqmkc4wl3dpdigdq5ni2gz2x9ip7fmfz5y9ipnbyf36";
+  "HeavyData" = "0w3zxdr9dmfk4k1m9n0fzn18kfgzq97bxf7i9xqfqikh3r1bpzjw";
+  "Hermit" = "1cmhf1xinspa3fqx95h2z3qlbv2p90zba4chg9mpv46vz3dmmkki";
+  "iA-Writer" = "10spld7a70phczw60chg7y21m8afz8vdrc9jklkrh045fhskqbh6";
+  "IBMPlexMono" = "050a44156320yjb14l6ycfg2z7isk0qb57ds5s6ixla6hr0z4g4h";
+  "Inconsolata" = "02rar6g3zbbpxxxz37v7d5qzafn59bhp04iv3wk16kqxy0havgx5";
+  "InconsolataGo" = "0nx6j3v2fvhdw3ygmz65zwlj6zwrkpmf59wfxirpzkcqqsdh4zwl";
+  "InconsolataLGC" = "00s2051fz3k6jnsfmnlqnd2cghr9sj2pddi5gpid1i5x006rig7a";
+  "Iosevka" = "1byrmfbsqi06fsy958364jy694dnm7a7pcjsv64w6mwfsi5vjn1r";
+  "IosevkaTerm" = "1k65jfa0c7c6pvns7vfcxcfc3i1qcr6wg16qafbp9zggabbvl7aa";
+  "JetBrainsMono" = "0mbzvfl36a6mgb2dnjf8n3kkm28sz0xhv7s5lww141wpgj5jb4a9";
+  "Lekton" = "0xnqdjr8hawcn1na07f06bxqlvrxbv0n4mmgnivl0clib0nna566";
+  "LiberationMono" = "1mh0h85nqlh78xngy6wz354a33nk0gghic18pf0a38h3ryssb44c";
+  "Lilex" = "032gymxaijinbsbbyr0jhqdyr5vhvs83208cirdwx4yjgir32bj9";
+  "Meslo" = "0awd09634biwjxxzzh4r3a5w2n0y0bybc2yh98yplw096n5k4nyv";
+  "Monofur" = "1z49di4zn8yxpwgs876n30mjisjir9gax08vs1i8sll4kdms5znw";
+  "Monoid" = "09ynmda4chlv69aipp33h3h5c3imbqqmh1iwnggvim36ga1h49lm";
+  "Mononoki" = "15pkg8s18xxwkp7qhvnd473f854n4m9340kvgs2r7y5xgzagcmrf";
+  "MPlus" = "0kj3kjhi4v9w2izsgx6sfn0g8xi6p5qmsgbpip9nff7n2qlfg02s";
+  "NerdFontsSymbolsOnly" = "1yschcw29kbddin7cvbc19wchwyarg0p8sy4265j306kafcakzgd";
+  "Noto" = "0sdzd1r8wjl980vq19q6067m54fnrhkdj46q9zi27s9nnffcxwdr";
+  "OpenDyslexic" = "19fsq8z06iz89a12kks3j51vn9r0fzq51wl14284g0ffbf4ylzk8";
+  "Overpass" = "0qc66qqjshlxb9i28j48ii3wcaiy8dq8zdx9zvp6a3wbj13r9wa4";
+  "ProFont" = "18743axd1rcpyk92a4hq3ymxz143601h8zi466d2j1x1vxhk852f";
+  "ProggyClean" = "17l9c02zfh8ilgyrd91jzibmmpw44qagbvzr9s1dacllkg0d4sbj";
+  "RobotoMono" = "05z6ccnrhrn51yip6d37jjyilp8i2mr1afnxl4kam21kgkcmz3bv";
+  "ShareTechMono" = "15j2dfnikq5jfcvfgmrpnycbb3mfj6mq8q3dqnimba5hpdlrd95a";
+  "SourceCodePro" = "0qzqwaiig2988159byirz5wnn2qj9qprmlbjrr4ybckis12ipkp2";
+  "SpaceMono" = "08ys3zl33fnlclcai9d8w3iadvrdnp2z14rz0bjk78syzy4nqj3p";
+  "Terminus" = "1jj5xbf9mr772wn5l1qbal5hn6cixwin5qhswa8f9zr36vlh86ss";
+  "Tinos" = "0w9w3f4vrvcm59nhzvj0wchx6cdqk8akb77ghwc70pwd35s2xd3j";
+  "Ubuntu" = "02k4x2gvbbqsmxmjrf9x9pwwja7xhxs9bi4ryp6w8x2mml82yf2h";
+  "UbuntuMono" = "0vw41mkiqy6yv929zabs6nhms9x0nzrkvmpirvvmnzj7f70gy73p";
+  "VictorMono" = "006a8p809w6337395lkghlz26qslhcglhg383ic2gxgvng2vcyp0";
 }
diff --git a/nixpkgs/pkgs/data/fonts/nerdfonts/update.sh b/nixpkgs/pkgs/data/fonts/nerdfonts/update.sh
index b4c4aaa7cf2b..03acd617e6f0 100755
--- a/nixpkgs/pkgs/data/fonts/nerdfonts/update.sh
+++ b/nixpkgs/pkgs/data/fonts/nerdfonts/update.sh
@@ -5,9 +5,14 @@ latest_release=$(curl --silent https://api.github.com/repos/ryanoasis/nerd-fonts
 version=$(jq -r '.tag_name' <<<"$latest_release")
 
 dirname="$(dirname "$0")"
-echo \""${version#v}"\" >"$dirname/version.nix"
-
-echo Using version "$version"
+echo \""${version#v}"\" >"$dirname/version-new.nix"
+if diff -q "$dirname/version-new.nix" "$dirname/version.nix"; then
+    echo No new version available, current: $version
+    exit 0
+else
+    echo Updated to version "$version"
+    mv "$dirname/version-new.nix" "$dirname/version.nix"
+fi
 
 printf '{\n' > "$dirname/shas.nix"
 
@@ -15,7 +20,7 @@ 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 '  "%s" = "%s";\n' "${name%%.*}" "$(nix-prefetch-url "$url")" >>"$dirname/shas.nix"
+done < <(jq -r '.assets[] | select(.name | test("xz")) | .name, .browser_download_url' <<<"$latest_release")
 
 printf '}\n' >> "$dirname/shas.nix"
diff --git a/nixpkgs/pkgs/data/fonts/nerdfonts/version.nix b/nixpkgs/pkgs/data/fonts/nerdfonts/version.nix
index 8320adbf0258..1b137dcca25b 100644
--- a/nixpkgs/pkgs/data/fonts/nerdfonts/version.nix
+++ b/nixpkgs/pkgs/data/fonts/nerdfonts/version.nix
@@ -1 +1 @@
-"2.1.0"
+"3.0.2"
diff --git a/nixpkgs/pkgs/data/fonts/nika-fonts/default.nix b/nixpkgs/pkgs/data/fonts/nika-fonts/default.nix
index f497a184be01..f5076f3c93cb 100644
--- a/nixpkgs/pkgs/data/fonts/nika-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/nika-fonts/default.nix
@@ -1,19 +1,23 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
   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
+  src = fetchFromGitHub {
+    owner = "font-store";
+    repo = "NikaFont";
+    rev = "v${version}";
+    hash = "sha256-jDemm8IyjhoCOg4Bfsp0tzUR7m+JaswL5d7Kug+asJk=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/nika-fonts {} \;
+
+    runHook postInstall
   '';
-  sha256 = "1x34b2dqn1dymi1vmj5vrjcy2z8s0f3rr6cniyrz85plvid6x40i";
 
   meta = with lib; {
     homepage = "https://github.com/font-store/NikaFont/";
diff --git a/nixpkgs/pkgs/data/fonts/norwester/default.nix b/nixpkgs/pkgs/data/fonts/norwester/default.nix
index d4e4cf1ee0fe..f1236d5c05c1 100644
--- a/nixpkgs/pkgs/data/fonts/norwester/default.nix
+++ b/nixpkgs/pkgs/data/fonts/norwester/default.nix
@@ -1,19 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  version = "1.2";
+stdenvNoCC.mkDerivation rec {
   pname = "norwester";
-in fetchzip {
-  name = "${pname}-${version}";
+  version = "1.2";
+
+  src = fetchzip {
+    url = "http://jamiewilson.io/norwester/assets/norwester.zip";
+    stripRoot = false;
+    hash = "sha256-Ak/nobrQE/XYGWs/IhlZlTp74ff+s4adUR6Sht5Yf8g=";
+  };
 
-  url = "http://jamiewilson.io/norwester/assets/norwester.zip";
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
     mkdir -p $out/share/fonts/opentype
-    unzip -D -j $downloadedFile ${pname}-v${version}/${pname}.otf -d $out/share/fonts/opentype/
-  '';
+    cp ${pname}-v${version}/${pname}.otf $out/share/fonts/opentype/
 
-  sha256 = "1npsaiiz9g5z6315lnmynwcnrfl37fyxc7w1mhkw1xbzcnv74z4r";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "http://jamiewilson.io/norwester";
diff --git a/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix b/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
index 45366a8e5054..600074002f53 100644
--- a/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , stdenvNoCC
 , lib
+, gitUpdater
 , fetchFromGitHub
 , fetchurl
 , cairo
@@ -11,58 +12,84 @@
 , imagemagick
 , zopfli
 , buildPackages
+, variants ? [ ]
 }:
-
 let
-  mkNoto = { pname, weights }:
-    stdenvNoCC.mkDerivation {
+  notoLongDescription = ''
+    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.
+  '';
+in
+rec {
+  mkNoto =
+    { pname
+    , variants ? [ ]
+    , longDescription ? notoLongDescription
+    }:
+    stdenvNoCC.mkDerivation rec {
       inherit pname;
-      version = "2020-01-23";
+      version = "23.5.1";
 
       src = fetchFromGitHub {
-        owner = "googlefonts";
-        repo = "noto-fonts";
-        rev = "f4726a2ec36169abd02a6d8abe67c8ff0236f6d8";
-        sha256 = "0zc1r7zph62qmvzxqfflsprazjf6x1qnwc2ma27kyzh6v36gaykw";
+        owner = "notofonts";
+        repo = "notofonts.github.io";
+        rev = "noto-monthly-release-${version}";
+        hash = "sha256-tIzn9xBDVFT7h9+p2NltA0v0mvB1OH9rX9+eXvIPhv0=";
       };
 
+      _variants = map (variant: builtins.replaceStrings [ " " ] [ "" ] variant) variants;
+
       installPhase = ''
-        # We copy in reverse preference order -- unhinted first, then
-        # hinted -- to get the "best" version of each font while
+        # We check availability in order of variable -> otf -> ttf
+        # unhinted -- the hinted versions use autohint
         # 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
-      '';
+        # We have a mix of otf and ttf fonts
+        local out_font=$out/share/fonts/noto
+      '' + (if _variants == [ ] then ''
+        for folder in $(ls -d fonts/*/); do
+          if [[ -d "$folder"unhinted/variable-ttf ]]; then
+            install -m444 -Dt $out_font "$folder"unhinted/variable-ttf/*.ttf
+          elif [[ -d "$folder"unhinted/otf ]]; then
+            install -m444 -Dt $out_font "$folder"unhinted/otf/*.otf
+          else
+            install -m444 -Dt $out_font "$folder"unhinted/ttf/*.ttf
+          fi
+        done
+      '' else ''
+        for variant in $_variants; do
+          if [[ -d fonts/"$variant"/unhinted/variable-ttf ]]; then
+            install -m444 -Dt $out_font fonts/"$variant"/unhinted/variable-ttf/*.ttf
+          elif [[ -d fonts/"$variant"/unhinted/otf ]]; then
+            install -m444 -Dt $out_font fonts/"$variant"/unhinted/otf/*.otf
+          else
+            install -m444 -Dt $out_font fonts/"$variant"/unhinted/ttf/*.ttf
+          fi
+        done
+      '');
+
+      passthru.updateScript = gitUpdater {
+        rev-prefix = "noto-monthly-release-";
+      };
 
       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.
-        '';
+        inherit longDescription;
         license = licenses.ofl;
         platforms = platforms.all;
-        maintainers = with maintainers; [ mathnerd314 emily ];
+        maintainers = with maintainers; [ mathnerd314 emily jopejoe1 ];
       };
     };
 
-  mkNotoCJK = { typeface, version, rev, sha256 }:
+  mkNotoCJK = { typeface, version, sha256 }:
     stdenvNoCC.mkDerivation {
       pname = "noto-fonts-cjk-${lib.toLower typeface}";
       inherit version;
@@ -70,8 +97,9 @@ let
       src = fetchFromGitHub {
         owner = "googlefonts";
         repo = "noto-cjk";
-        inherit rev sha256;
-        sparseCheckout = "${typeface}/Variable/OTC";
+        rev = "${typeface}${version}";
+        inherit sha256;
+        sparseCheckout = [ "${typeface}/Variable/OTC" ];
       };
 
       installPhase = ''
@@ -100,104 +128,124 @@ let
         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-lgc-plus = mkNoto {
+    pname = "noto-fonts-lgc-plus";
+    variants = [
+      "Noto Sans"
+      "Noto Serif"
+      "Noto Sans Mono"
+      "Noto Music"
+      "Noto Sans Symbols"
+      "Noto Sans Symbols 2"
+      "Noto Sans Math"
+    ];
+    longDescription = ''
+      This package provides the Noto Fonts, but only for latin, greek
+      and cyrillic scripts, as well as some extra fonts. To create a
+      custom Noto package with custom variants, see the `mkNoto`
+      helper function.
+    '';
   };
 
   noto-fonts-cjk-sans = mkNotoCJK {
     typeface = "Sans";
     version = "2.004";
-    rev = "9f7f3c38eab63e1d1fddd8d50937fe4f1eacdb1d";
-    sha256 = "sha256-PWpcTBnBRK87ZuRI/PsGp2UMQgCCyfkLHwvB1mOl5K0=";
+    sha256 = "sha256-IgalJkiOAVjNxKaPAQWfb5hKeqclliR4qVXCq63FGWY=";
   };
 
   noto-fonts-cjk-serif = mkNotoCJK {
     typeface = "Serif";
-    version = "2.000";
-    rev = "9f7f3c38eab63e1d1fddd8d50937fe4f1eacdb1d";
-    sha256 = "sha256-1w66Ge7DZjbONGhxSz69uFhfsjMsDiDkrGl6NsoB7dY=";
+    version = "2.001";
+    sha256 = "sha256-y1103SS0qkZMhEL5+7kQZ+OBs5tRaqkqOcs4796Fzhg=";
   };
 
-  noto-fonts-emoji = let
-    version = "2.034";
-    emojiPythonEnv =
-      buildPackages.python3.withPackages (p: with p; [ fonttools nototools ]);
-  in stdenvNoCC.mkDerivation {
-    pname = "noto-fonts-emoji";
-    inherit version;
-
-    src = fetchFromGitHub {
-      owner = "googlefonts";
-      repo = "noto-emoji";
-      rev = "v${version}";
-      sha256 = "1d6zzk0ii43iqfnjbldwp8sasyx99lbjp1nfgqjla7ixld6yp98l";
-    };
+  noto-fonts-emoji =
+    let
+      version = "2.038";
+      emojiPythonEnv =
+        buildPackages.python3.withPackages (p: with p; [ fonttools nototools ]);
+    in
+    stdenvNoCC.mkDerivation {
+      pname = "noto-fonts-emoji";
+      inherit version;
 
-    depsBuildBuild = [
-      buildPackages.stdenv.cc
-      pkg-config
-      cairo
-    ];
+      src = fetchFromGitHub {
+        owner = "googlefonts";
+        repo = "noto-emoji";
+        rev = "v${version}";
+        sha256 = "1rgmcc6nqq805iqr8kvxxlk5cf50q714xaxk3ld6rjrd69kb8ix9";
+      };
 
-    nativeBuildInputs = [
-      imagemagick
-      zopfli
-      pngquant
-      which
-      emojiPythonEnv
-    ];
+      depsBuildBuild = [
+        buildPackages.stdenv.cc
+        pkg-config
+        cairo
+      ];
 
-    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
+      nativeBuildInputs = [
+        imagemagick
+        zopfli
+        pngquant
+        which
+        emojiPythonEnv
+      ];
 
-      # 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
-    '';
+      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
 
-    enableParallelBuilding = true;
+        # 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
+      '';
 
-    installPhase = ''
-      mkdir -p $out/share/fonts/noto
-      cp NotoColorEmoji.ttf fonts/NotoEmoji-Regular.ttf $out/share/fonts/noto
-    '';
+      enableParallelBuilding = true;
 
-    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 ];
+      installPhase = ''
+        runHook preInstall
+        mkdir -p $out/share/fonts/noto
+        cp NotoColorEmoji.ttf $out/share/fonts/noto
+        runHook postInstall
+      '';
+
+      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
+    stdenvNoCC.mkDerivation {
+      inherit pname version;
+
+      src = fetchurl {
+        url = "https://github.com/C1710/blobmoji/releases/download/v${version}/Blobmoji.ttf";
+        hash = "sha256-w9s7uF6E6nomdDmeKB4ATcGB/5A4sTwDvwHT3YGXz8g=";
+      };
+
+      dontUnpack = true;
+
+      installPhase = ''
+        runHook preInstall
+
+        install -Dm 444 $src $out/share/fonts/blobmoji/Blobmoji.ttf
+
+        runHook postInstall
       '';
 
       meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix b/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix
index 7d850ef71667..1b515b486f5f 100644
--- a/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix
+++ b/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix
@@ -1,5 +1,5 @@
 { fetchFromGitHub, lib, buildPythonPackage, pythonOlder
-, afdko, appdirs, attrs, black, booleanoperations, brotlipy, click
+, afdko, appdirs, attrs, booleanoperations, brotlipy, click
 , defcon, fontmath, fontparts, fontpens, fonttools, lxml
 , mutatormath, pathspec, psautohint, pyclipper, pytz, regex, scour
 , toml, typed-ast, ufonormalizer, ufoprocessor, unicodedata2, zopfli
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "nototools";
-  version = "0.2.16";
+  version = "0.2.17";
 
   disabled = pythonOlder "3.6";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "googlefonts";
     repo = "nototools";
     rev = "v${version}";
-    sha256 = "14rrdamkmhrykff8ln07fq9cm8zwj3k113lzwjcy0lgz23g51jyl";
+    sha256 = "0jxydivqzggirc31jv7b4mrsjkg646zmra5m4h0pk4amgy65rvyp";
   };
 
   postPatch = ''
@@ -28,7 +28,6 @@ buildPythonPackage rec {
     afdko
     appdirs
     attrs
-    black
     booleanoperations
     brotlipy
     click
@@ -53,7 +52,7 @@ buildPythonPackage rec {
     zopfli
   ];
 
-  checkInputs = [
+  nativeCheckInputs = [
     pillow
     six
     bash
@@ -70,9 +69,10 @@ buildPythonPackage rec {
     cp -r third_party $out
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Noto fonts support tools and scripts plus web site generation";
-    license = lib.licenses.asl20;
     homepage = "https://github.com/googlefonts/nototools";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/office-code-pro/default.nix b/nixpkgs/pkgs/data/fonts/office-code-pro/default.nix
index 0513baf48680..f05a7ddd319c 100644
--- a/nixpkgs/pkgs/data/fonts/office-code-pro/default.nix
+++ b/nixpkgs/pkgs/data/fonts/office-code-pro/default.nix
@@ -1,21 +1,24 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
   pname = "office-code-pro";
   version = "1.004";
-in fetchFromGitHub rec {
-  name = "${pname}-${version}";
 
-  owner = "nathco";
-  repo = "Office-Code-Pro";
-  rev = version;
+  src = fetchFromGitHub {
+    owner = "nathco";
+    repo = "Office-Code-Pro";
+    rev = version;
+    hash = "sha256-qzKTXYswkithZUJT0a3IifCq4RJFeKciZAPhYr2U1X4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar xf $downloadedFile --strip=1
-    install -m644 -Dt $out/share/doc/${name} README.md
+    install -m644 -Dt $out/share/doc/${pname}-${version} README.md
     install -m444 -Dt $out/share/fonts/opentype 'Fonts/Office Code Pro/OTF/'*.otf 'Fonts/Office Code Pro D/OTF/'*.otf
+
+    runHook postInstall
   '';
-  sha256 = "1bagwcaicn6q8qkqazz6wb3x30y4apmkga0mkv8fh6890hfhywr9";
 
   meta = with lib; {
     description = "A customized version of Source Code Pro";
diff --git a/nixpkgs/pkgs/data/fonts/oldsindhi/default.nix b/nixpkgs/pkgs/data/fonts/oldsindhi/default.nix
index e0e783fd80a5..88692d914564 100644
--- a/nixpkgs/pkgs/data/fonts/oldsindhi/default.nix
+++ b/nixpkgs/pkgs/data/fonts/oldsindhi/default.nix
@@ -1,25 +1,28 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "oldsindhi";
   version = "1.0";
-in fetchzip rec {
-  name = "oldsindhi-${version}";
 
-  url = "https://github.com/MihailJP/oldsindhi/releases/download/v${version}/OldSindhi-${version}.tar.xz";
+  src = fetchurl {
+    url = "https://github.com/MihailJP/${pname}/releases/download/v${version}/OldSindhi-${version}.tar.xz";
+    hash = "sha256-jOcl+mo6CJ9Lnn3nAUiXXHCJssovVgLoPrbGxj4uzQs=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar -xJf $downloadedFile --strip-components=1
     install -m444 -Dt $out/share/fonts/truetype *.ttf
-    install -m444 -Dt $out/share/doc/${name} README *.txt
-  '';
+    install -m444 -Dt $out/share/doc/${pname}-${version} README *.txt
 
-  sha256 = "03c483vbrwz2fpdfbys42fmik9788zxfmjmc4fgq4s2d0mraa0j1";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/MihailJP/oldsindhi";
     description = "Free Sindhi Khudabadi font";
     maintainers = with maintainers; [ mathnerd314 ];
-    license = with licenses; [mit ofl];
+    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
index ddff3666b0b4..33bf37c18bae 100644
--- a/nixpkgs/pkgs/data/fonts/oldstandard/default.nix
+++ b/nixpkgs/pkgs/data/fonts/oldstandard/default.nix
@@ -1,19 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "oldstandard";
   version = "2.2";
-in fetchzip rec {
-  name = "oldstandard-${version}";
 
-  url = "https://github.com/akryukov/oldstand/releases/download/v${version}/${name}.otf.zip";
+  src = fetchzip {
+    url = "https://github.com/akryukov/oldstand/releases/download/v${version}/${pname}-${version}.otf.zip";
+    stripRoot = false;
+    hash = "sha256-cDB5KJm87DK+GczZ3Nmn4l5ejqViswVbwrJ9XbhEh8I=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    unzip $downloadedFile
     install -m444 -Dt $out/share/fonts/opentype *.otf
-    install -m444 -Dt $out/share/doc/${name}    FONTLOG.txt
-  '';
+    install -m444 -Dt $out/share/doc/${pname}-${version}    FONTLOG.txt
 
-  sha256 = "1qwfsyp51grr56jcnkkmnrnl3r20pmhp9zh9g88kp64m026cah6n";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/akryukov/oldstand";
diff --git a/nixpkgs/pkgs/data/fonts/open-dyslexic/default.nix b/nixpkgs/pkgs/data/fonts/open-dyslexic/default.nix
index f22ce9f882f8..8a6b01b1d6d7 100644
--- a/nixpkgs/pkgs/data/fonts/open-dyslexic/default.nix
+++ b/nixpkgs/pkgs/data/fonts/open-dyslexic/default.nix
@@ -1,25 +1,28 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation {
+  pname = "open-dyslexic";
   version = "2016-06-23";
-in fetchzip {
-  name = "open-dyslexic-${version}";
 
-  url = "https://github.com/antijingoist/open-dyslexic/archive/20160623-Stable.zip";
+  src = fetchzip {
+    url = "https://github.com/antijingoist/open-dyslexic/archive/20160623-Stable.zip";
+    hash = "sha256-f/uavR3n0qHyqumZDw7r8Zy0om2RlJAKyWuGaUXSJ1s=";
+  };
 
-  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
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "1vl8z5rknh2hpr2f0v4b2qgs5kclx5pzyk8al7243k5db82a2cyi";
+    install -Dm644 otf/*.otf -t $out/share/fonts/opentype
+    install -Dm644 README.md -t $out/share/doc/open-dyslexic
+
+    runHook postInstall
+  '';
 
   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];
+    maintainers = [ maintainers.rycee ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/open-fonts/default.nix b/nixpkgs/pkgs/data/fonts/open-fonts/default.nix
index e503b1143033..6a628174f2e4 100644
--- a/nixpkgs/pkgs/data/fonts/open-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/open-fonts/default.nix
@@ -1,21 +1,21 @@
-{ lib, fetchurl }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
+stdenvNoCC.mkDerivation rec {
   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=";
+  src = fetchurl {
+    url = "https://github.com/kiwi0fruit/open-fonts/releases/download/${version}/open-fonts.tar.xz";
+    hash = "sha256-NJKbdrvgZz9G7mjAJYzN7rU/fo2xRFZA2BbQ+A56iPw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar xf $downloadedFile
     mkdir -p $out/share/fonts/truetype
-    install open-fonts/*.ttf $out/share/fonts/truetype
+    install *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/open-sans/default.nix b/nixpkgs/pkgs/data/fonts/open-sans/default.nix
index 0c7f8dce57a3..4883cd818b1c 100644
--- a/nixpkgs/pkgs/data/fonts/open-sans/default.nix
+++ b/nixpkgs/pkgs/data/fonts/open-sans/default.nix
@@ -1,21 +1,25 @@
-{ lib, fetchFromGitLab }:
+{ lib, stdenvNoCC, fetchFromGitLab }:
 
-let
+stdenvNoCC.mkDerivation {
   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
+  src = fetchFromGitLab {
+    domain = "salsa.debian.org";
+    owner = "fonts-team";
+    repo = "fonts-open-sans";
+    rev = "debian/1.11-1";
+    hash = "sha256-gkq5RPa83dND91q1hiA9Qokq1iA8gLQ8XvCNWe+e8Bw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/fonts/truetype
     cp *.ttf $out/share/fonts/truetype
+
+    runHook postInstall
   '';
-  sha256 = "146ginwx18z624z582lrnhil8jvi9bjg6843265bgxxrfmf75vhp";
 
   meta = with lib; {
     description = "Open Sans fonts";
diff --git a/nixpkgs/pkgs/data/fonts/openmoji/default.nix b/nixpkgs/pkgs/data/fonts/openmoji/default.nix
index 3a9b91deb28f..c9722f60f204 100644
--- a/nixpkgs/pkgs/data/fonts/openmoji/default.nix
+++ b/nixpkgs/pkgs/data/fonts/openmoji/default.nix
@@ -63,6 +63,12 @@ in stdenv.mkDerivation rec {
     nodePackages.lodash
   ];
 
+  postPatch = ''
+    # this is API change in glob >9
+    substituteInPlace helpers/generate-font-glyphs.js \
+      --replace "require('glob').sync" "require('glob').globSync"
+  '';
+
   buildPhase = ''
     runHook preBuild
 
diff --git a/nixpkgs/pkgs/data/fonts/orbitron/default.nix b/nixpkgs/pkgs/data/fonts/orbitron/default.nix
index f4a0a9600a15..7e6897552060 100644
--- a/nixpkgs/pkgs/data/fonts/orbitron/default.nix
+++ b/nixpkgs/pkgs/data/fonts/orbitron/default.nix
@@ -1,45 +1,48 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
-  version = "20110526";
-in fetchFromGitHub {
-  name = "orbitron-${version}";
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "orbitron";
+  version = "2011-05-25";
 
-  owner = "theleagueof";
-  repo = "orbitron";
-  rev = "13e6a52";
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "13e6a5222aa6818d81c9acd27edd701a2d744152";
+    hash = "sha256-zjNPVrDUxcQbrsg1/8fFa6Wenu1yuG/XDfKA7NVZ0rA=";
+  };
 
-  postFetch = ''
-    tar xf $downloadedFile --strip=1
-    install -m444 -Dt $out/share/fonts/opentype/orbitron *.otf
-    install -m444 -Dt $out/share/fonts/ttf/orbitron      *.ttf
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "1y9yzvpqs2v3ssnqk2iiglrh8amgsscnk8vmfgnqgqi9f4dhdvnv";
+    install -D -m444 -t $out/share/fonts/truetype $src/*.ttf
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://www.theleagueofmoveabletype.com/orbitron";
     downloadPage = "https://www.theleagueofmoveabletype.com/orbitron/download";
     description = "Geometric sans-serif for display purposes by Matt McInerney";
     longDescription = ''
-     Orbitron is a geometric sans-serif typeface intended for display
-     purposes. It features four weights (light, medium, bold, and
-     black), a stylistic alternative, small caps, and a ton of
-     alternate glyphs.
+      Orbitron 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.
+      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 ];
+    maintainers = with lib.maintainers; [ leenaars minijackson ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/data/fonts/ostrich-sans/default.nix b/nixpkgs/pkgs/data/fonts/ostrich-sans/default.nix
new file mode 100644
index 000000000000..67ca4b72823c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ostrich-sans/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "ostrich-sans";
+  version = "2014-04-18";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "a949d40d0576d12ba26e2a45e19c91fd0228c964";
+    hash = "sha256-vvTNtl+fO2zWooH1EvCmO/dPYYgCkj8Ckg5xfg1gtnw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "A gorgeous modern sans-serif with a very long neck";
+    longDescription = ''
+      A gorgeous modern sans-serif with a very long neck. With a whole slew of
+      styles & weights.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/ostrich-sans";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/overpass/default.nix b/nixpkgs/pkgs/data/fonts/overpass/default.nix
index 120098fd67f0..521c08c85cea 100644
--- a/nixpkgs/pkgs/data/fonts/overpass/default.nix
+++ b/nixpkgs/pkgs/data/fonts/overpass/default.nix
@@ -1,20 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "overpass";
   version = "3.0.5";
-in fetchzip rec {
-  name = "overpass-${version}";
 
-  url = "https://github.com/RedHatOfficial/Overpass/releases/download/v${version}/overpass-${version}.zip";
+  src = fetchzip {
+    url = "https://github.com/RedHatOfficial/Overpass/releases/download/v${version}/overpass-${version}.zip";
+    hash = "sha256-8AWT0/DELfNWXtZOejC90DbUSOtyGt9tSkcSuO7HP2o=";
+  };
 
-  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}
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "1fpyhd6x3i3g0xxjmyfnjsri1kkvci15fv7jp1bnza7k0hz0bnha";
+    install -Dm644 */*/*.otf -t $out/share/fonts/opentype
+    install -Dm644 */*/*.ttf -t $out/share/fonts/truetype
+    install -Dm644 *.md  -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://overpassfont.org/";
diff --git a/nixpkgs/pkgs/data/fonts/oxygenfonts/default.nix b/nixpkgs/pkgs/data/fonts/oxygenfonts/default.nix
index e34e49d98147..32d9273d6390 100644
--- a/nixpkgs/pkgs/data/fonts/oxygenfonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/oxygenfonts/default.nix
@@ -1,19 +1,24 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-fetchFromGitHub {
-  name = "oxygenfonts-20160824";
+stdenvNoCC.mkDerivation rec {
+  pname = "oxygenfonts";
+  version = "20160824";
 
-  owner = "vernnobile";
-  repo = "oxygenFont";
-  rev = "62db0ebe3488c936406685485071a54e3d18473b";
+  src = fetchFromGitHub {
+    owner = "vernnobile";
+    repo = "oxygenFont";
+    rev = "62db0ebe3488c936406685485071a54e3d18473b";
+    hash = "sha256-0LKq8nChkDAb6U1sOUyga/DvzpDmIjoRn+2PB9rok4w=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  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";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "Desktop/gui font for integrated use with the KDE desktop";
diff --git a/nixpkgs/pkgs/data/fonts/parastoo-fonts/default.nix b/nixpkgs/pkgs/data/fonts/parastoo-fonts/default.nix
index a3d273bb8ae1..a91596a66e51 100644
--- a/nixpkgs/pkgs/data/fonts/parastoo-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/parastoo-fonts/default.nix
@@ -1,20 +1,23 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
   pname = "parastoo-fonts";
   version = "2.0.1";
-in fetchFromGitHub {
-  name = "${pname}-${version}";
 
-  owner = "rastikerdar";
-  repo = "parastoo-font";
-  rev = "v${version}";
+  src = fetchFromGitHub {
+    owner = "rastikerdar";
+    repo = "parastoo-font";
+    rev = "v${version}";
+    hash = "sha256-E94B9R2h227D49dscCBsprmb7w0GrQ+2tWOWRf8FH30=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar xf $downloadedFile --strip=1
     find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/parastoo-fonts {} \;
+
+    runHook postInstall
   '';
-  sha256 = "sha256-4smobLS43DB7ISmbWDWX0IrtaeiyXpi1QpAiL8NyXoQ=";
 
   meta = with lib; {
     homepage = "https://github.com/rastikerdar/parastoo-font";
diff --git a/nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix b/nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix
index 4dd6093922cc..86646ae0ac5d 100644
--- a/nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix
+++ b/nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix
@@ -1,21 +1,27 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "paratype-pt-mono";
+  version = "2.005";
+
+  src = fetchzip {
+    urls = [
+      "https://company.paratype.com/system/attachments/631/original/ptmono.zip"
+      "http://rus.paratype.ru/system/attachments/631/original/ptmono.zip"
+    ];
+    stripRoot = false;
+    hash = "sha256-mfDAu/KGelC6wZpUCrUrLVZKo+XiKNBqcpMI8tH2tMw=";
+  };
 
-fetchzip {
-  name = "paratype-pt-mono";
+  installPhase = ''
+    runHook preInstall
 
-  urls = [
-    "https://company.paratype.com/system/attachments/631/original/ptmono.zip"
-    "http://rus.paratype.ru/system/attachments/631/original/ptmono.zip"
-  ];
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 *.txt -t $out/share/doc/paratype
 
-  postFetch = ''
-    mkdir -p $out/share/{doc,fonts}
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
-    unzip -j $downloadedFile \*.txt -d $out/share/doc/paratype
+    runHook postInstall
   '';
 
-  sha256 = "07kl82ngby55khvzsvn831ddpc0q8djgz2y6gsjixkyjfdk2xjjm";
-
   meta = with lib; {
     homepage = "http://www.paratype.ru/public/";
     description = "An open Paratype font";
@@ -29,4 +35,3 @@ fetchzip {
     maintainers = with maintainers; [ raskin ];
   };
 }
-
diff --git a/nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix b/nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix
index 8b47dd9ee1fb..dffd25c23aa5 100644
--- a/nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix
+++ b/nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix
@@ -1,21 +1,27 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "paratype-pt-sans";
+  version = "2.005";
+
+  src = fetchzip {
+    urls = [
+      "https://company.paratype.com/system/attachments/629/original/ptsans.zip"
+      "http://rus.paratype.ru/system/attachments/629/original/ptsans.zip"
+    ];
+    stripRoot = false;
+    hash = "sha256-34TqYXtWzkAstaGQBhJy+/hVk5tg6ZvHZ/kvUroWVLs=";
+  };
 
-fetchzip {
-  name = "paratype-pt-sans";
+  installPhase = ''
+    runHook preInstall
 
-  urls = [
-    "https://company.paratype.com/system/attachments/629/original/ptsans.zip"
-    "http://rus.paratype.ru/system/attachments/629/original/ptsans.zip"
-  ];
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 *.txt -t $out/share/doc/paratype
 
-  postFetch = ''
-    mkdir -p $out/share/{doc,fonts}
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
-    unzip -j $downloadedFile \*.txt -d $out/share/doc/paratype
+    runHook postInstall
   '';
 
-  sha256 = "01fkd417gv98jf3a6zyfi9w2dkqsbddy1vacga2672yf0kh1z1r0";
-
   meta = with lib; {
     homepage = "http://www.paratype.ru/public/";
     description = "An open Paratype font";
@@ -29,4 +35,3 @@ fetchzip {
     maintainers = with maintainers; [ raskin ];
   };
 }
-
diff --git a/nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix b/nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix
index a4142f757fcc..f346382d1f73 100644
--- a/nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix
+++ b/nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix
@@ -1,21 +1,27 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "paratype-pt-serif";
+  version = "2.005";
+
+  src = fetchzip {
+    urls = [
+      "https://company.paratype.com/system/attachments/634/original/ptserif.zip"
+      "http://rus.paratype.ru/system/attachments/634/original/ptserif.zip"
+    ];
+    stripRoot = false;
+    hash = "sha256-4L3t5NEHmj975fn8eBAkRUO1OL0xseNp9g7k7tt/O2c=";
+  };
 
-fetchzip {
-  name = "paratype-pt-serif";
+  installPhase = ''
+    runHook preInstall
 
-  urls = [
-    "https://company.paratype.com/system/attachments/634/original/ptserif.zip"
-    "http://rus.paratype.ru/system/attachments/634/original/ptserif.zip"
-  ];
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 *.txt -t $out/share/doc/paratype
 
-  postFetch = ''
-    mkdir -p $out/share/{doc,fonts}
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
-    unzip -j $downloadedFile \*.txt -d $out/share/doc/paratype
+    runHook postInstall
   '';
 
-  sha256 = "1iw5qi4ag3yp1lwmi91lb18gr768bqwl46xskaqnkhr9i9qp0v6d";
-
   meta = with lib; {
     homepage = "http://www.paratype.ru/public/";
     description = "An open Paratype font";
@@ -29,4 +35,3 @@ fetchzip {
     maintainers = with maintainers; [ raskin ];
   };
 }
-
diff --git a/nixpkgs/pkgs/data/fonts/pecita/default.nix b/nixpkgs/pkgs/data/fonts/pecita/default.nix
index f0bdbc3ea004..568363889ff2 100644
--- a/nixpkgs/pkgs/data/fonts/pecita/default.nix
+++ b/nixpkgs/pkgs/data/fonts/pecita/default.nix
@@ -1,29 +1,30 @@
-{ lib, fetchurl }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
+stdenvNoCC.mkDerivation {
+  pname = "pecita";
   version = "5.4";
-in
 
-fetchurl {
-  name = "pecita-${version}";
+  src = fetchurl {
+    url = "http://pecita.eu/b/Pecita.otf";
+    hash = "sha256-D9IZ+p4UFHUNt9me7D4vv0x6rMK9IaViKPliCEyX6t4=";
+  };
 
-  url = "http://pecita.eu/b/Pecita.otf";
+  dontUnpack = true;
 
-  downloadToTemp = true;
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
     mkdir -p $out/share/fonts/opentype
-    cp -v $downloadedFile $out/share/fonts/opentype/Pecita.otf
-  '';
+    cp -v $src $out/share/fonts/opentype/Pecita.otf
 
-  recursiveHash = true;
-  sha256 = "0pwm20f38lcbfkdqkpa2ydpc9kvmdg0ifc4h2dmipsnwbcb5rfwm";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "http://pecita.eu/police-en.php";
     description = "Handwritten font with connected glyphs";
     license = licenses.ofl;
     platforms = platforms.all;
-    maintainers = [maintainers.rycee];
+    maintainers = [ maintainers.rycee ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/penna/default.nix b/nixpkgs/pkgs/data/fonts/penna/default.nix
index 784f9d2573ef..e1a7fc181ddc 100644
--- a/nixpkgs/pkgs/data/fonts/penna/default.nix
+++ b/nixpkgs/pkgs/data/fonts/penna/default.nix
@@ -1,24 +1,29 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
 let
   majorVersion = "0";
-  minorVersion = "10";
-  pname = "penna";
+  minorVersion = "100";
 in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "penna";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-fmCJnEaoUGdW9JK3J7JSm5D4qOMRW7qVKPgVE7uCH5w=";
+    stripRoot = false;
+  };
 
-fetchzip {
-  name = "${pname}-font-${majorVersion}.${minorVersion}";
+  installPhase = ''
+    runHook preInstall
 
-  url = "http://dotcolon.net/DL/font/${pname}.zip";
-  sha256 = "0hk15yndm56l6rbdykpkry2flffx0567mgjcqcnsx1iyzwwla5km";
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
 
-  postFetch = ''
-    mkdir -p $out/share/fonts/opentype/${pname}
-    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+    runHook postInstall
   '';
 
   meta = with lib; {
-    homepage = "http://dotcolon.net/font/${pname}/";
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
     description = "Geometric sans serif designed by Sora Sagano";
     longDescription = ''
      Penna is a geometric sans serif designed by Sora Sagano,
@@ -26,7 +31,7 @@ fetchzip {
      with a small x-height.
     '';
     platforms = platforms.all;
-    maintainers = with maintainers; [ leenaars ];
+    maintainers = with maintainers; [ leenaars minijackson ];
     license = licenses.cc0;
   };
-}
+})
diff --git a/nixpkgs/pkgs/data/fonts/powerline-fonts/default.nix b/nixpkgs/pkgs/data/fonts/powerline-fonts/default.nix
index 3a2ae92c1e5a..ea2da0fe2ecf 100644
--- a/nixpkgs/pkgs/data/fonts/powerline-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/powerline-fonts/default.nix
@@ -1,22 +1,27 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-fetchFromGitHub {
-  name = "powerline-fonts-2018-11-11";
+stdenvNoCC.mkDerivation {
+  pname = "powerline-fonts";
+  version = "unstable-2018-11-11";
 
-  owner = "powerline";
-  repo = "fonts";
-  rev = "e80e3eba9091dac0655a0a77472e10f53e754bb0";
+  src = fetchFromGitHub {
+    owner = "powerline";
+    repo = "fonts";
+    rev = "e80e3eba9091dac0655a0a77472e10f53e754bb0";
+    hash = "sha256-GGfON6Z/0czCUAGxnqtndgDnaZGONFTU9/Hu4BGDHlk=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  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";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/powerline/fonts";
diff --git a/nixpkgs/pkgs/data/fonts/pretendard/default.nix b/nixpkgs/pkgs/data/fonts/pretendard/default.nix
index 40175dc54056..60ecc61c7ec3 100644
--- a/nixpkgs/pkgs/data/fonts/pretendard/default.nix
+++ b/nixpkgs/pkgs/data/fonts/pretendard/default.nix
@@ -1,21 +1,24 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
 let
   version = "1.3.3";
 
-  mkPretendard = { pname, typeface, sha256 }:
-    fetchzip {
-      name = "${pname}-${version}";
+  mkPretendard = { pname, typeface, hash }:
+    stdenvNoCC.mkDerivation {
+      inherit pname version;
 
-      url = "https://github.com/orioncactus/pretendard/releases/download/v${version}/${typeface}-${version}.zip";
-      inherit sha256;
+      src = fetchzip {
+        url = "https://github.com/orioncactus/pretendard/releases/download/v${version}/${typeface}-${version}.zip";
+        stripRoot = false;
+        inherit hash;
+      };
+
+      installPhase = ''
+        runHook preInstall
 
-      stripRoot = false;
+        install -Dm644 public/static/*.otf -t $out/share/fonts/opentype
 
-      postFetch = ''
-        mkdir -p $out/share/fonts/
-        install -Dm644 $out/public/static/*.otf -t $out/share/fonts/opentype
-        rm -rf $out/{public,web,LICENSE.txt}
+        runHook postInstall
       '';
 
       meta = with lib; {
@@ -32,18 +35,18 @@ in
   pretendard = mkPretendard {
     pname = "pretendard";
     typeface = "Pretendard";
-    sha256 = "sha256-lRHRdCAg3i3+3Y6j0dCXUgwLdeS/VeI6KNkbDKchNEY=";
+    hash = "sha256-xCEZlwTPhrNIO6WODl55wo2oin+iMYOL/rVaEybpzr0=";
   };
 
   pretendard-jp = mkPretendard {
     pname = "pretendard-jp";
     typeface = "PretendardJP";
-    sha256 = "sha256-VgGt/WoaaJJDAzw+gUQVgTQ+q34bdAaKUB4cA9eU0dQ=";
+    hash = "sha256-x0G7ULzkIJqZlK995+wWKHXZdWryUTRouGTa5LsJQzk=";
   };
 
   pretendard-std = mkPretendard {
     pname = "pretendard-std";
     typeface = "PretendardStd";
-    sha256 = "sha256-FOlZrr6CHPfUm9Q+Yoi0HLQUI7cAhQYq6P6sJGXBIWg=";
+    hash = "sha256-/I8LZhFB86/+o+IzUP+bSIq7scKPOL7k/6/Bom0ZSqg=";
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/prociono/default.nix b/nixpkgs/pkgs/data/fonts/prociono/default.nix
new file mode 100644
index 000000000000..8749c9d0736e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/prociono/default.nix
@@ -0,0 +1,34 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "prociono";
+  version = "2011-05-25";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "f9d9680de6d6f0c13939f23c9dd14cd7853cf844";
+    hash = "sha256-gC5E0Z0O2cnthoBEu+UOQLsr3/a/3/JPIx3WCPsXXtk=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/*.ttf
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "A roman serif with blackletter elements";
+    longDescription = ''
+      "Prociono" (pro-tsee-O-no) is an Esperanto word meaning either the star
+      Procyon or the animal species known as the raccoon. It is a roman serif
+      with blackletter elements.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/prociono";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/profont/default.nix b/nixpkgs/pkgs/data/fonts/profont/default.nix
index 3570bf7bf91a..e201d643afac 100644
--- a/nixpkgs/pkgs/data/fonts/profont/default.nix
+++ b/nixpkgs/pkgs/data/fonts/profont/default.nix
@@ -1,11 +1,11 @@
-{ lib, stdenv, fetchzip, mkfontscale }:
+{ lib, stdenv, fetchzip, xorg }:
 
 stdenv.mkDerivation {
   pname = "profont";
   version = "2019-11";
 
   # Note: stripRoot doesn't work because the archive
-  # constains the metadata directory `__MACOSX`.
+  # contains the metadata directory `__MACOSX`.
   src = fetchzip {
     url = "https://tobiasjung.name/downloadfile.php?file=profont-x11.zip";
     sha256 = "12dbm87wvcpmn7nzgzwlk45cybp091diara8blqm6129ps27z6kb";
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
 
   dontBuild = true;
 
-  nativeBuildInputs = [ mkfontscale ];
+  nativeBuildInputs = [ xorg.mkfontscale ];
 
   installPhase = ''
     mkdir -p "$out/share/fonts/misc"
diff --git a/nixpkgs/pkgs/data/fonts/proggyfonts/default.nix b/nixpkgs/pkgs/data/fonts/proggyfonts/default.nix
index 81ecb7354095..195b6ed1d39a 100644
--- a/nixpkgs/pkgs/data/fonts/proggyfonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/proggyfonts/default.nix
@@ -1,38 +1,41 @@
 { lib, stdenv, fetchurl, mkfontscale }:
 
-stdenv.mkDerivation {
-  name = "proggyfonts-0.1";
+stdenv.mkDerivation rec {
+  pname = "proggyfonts";
+  version = "0.1";
 
   src = fetchurl {
-    url = "https://web.archive.org/web/20150801042353/http://kaictl.net/software/proggyfonts-0.1.tar.gz";
-    sha256 = "1plcm1sjpa3hdqhhin48fq6zmz3ndm4md72916hd8ff0w6596q0n";
+    url = "https://web.archive.org/web/20150801042353/http://kaictl.net/software/proggyfonts-${version}.tar.gz";
+    hash = "sha256-SsLzZdR5icVJNbr5rcCPbagPPtWghbqs2Jxmrtufsa4=";
   };
 
   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
+  dontConfigure = true;
+  dontBuild = true;
 
-      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"
+  installPhase = ''
+    runHook preInstall
 
-      mkfontscale "$out/share/fonts/truetype"
-      mkfontdir   "$out/share/fonts/misc"
-    '';
+    # 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
 
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "1x196rp3wqjd7m57bgp5kfy5jmj97qncxi1vwibs925ji7dqzfgf";
+    install -D -m 644 *.bdf -t "$out/share/fonts/misc"
+    install -D -m 644 *.ttf -t "$out/share/fonts/truetype"
+    install -D -m 644 Licence.txt -t "$out/share/doc/$name"
+
+    mkfontscale "$out/share/fonts/truetype"
+    mkfontdir   "$out/share/fonts/misc"
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
-    homepage = "http://upperbounds.net";
+    homepage = "https://www.upperbounds.net";
     description = "A set of fixed-width screen fonts that are designed for code listings";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/data/fonts/public-sans/default.nix b/nixpkgs/pkgs/data/fonts/public-sans/default.nix
index be75da9e6654..068238897831 100644
--- a/nixpkgs/pkgs/data/fonts/public-sans/default.nix
+++ b/nixpkgs/pkgs/data/fonts/public-sans/default.nix
@@ -1,19 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "public-sans";
   version = "2.001";
-in fetchzip {
-  name = "public-sans-${version}";
 
-  url = "https://github.com/uswds/public-sans/releases/download/v${version}/public-sans-v${version}.zip";
+  src = fetchzip {
+    url = "https://github.com/uswds/public-sans/releases/download/v${version}/public-sans-v${version}.zip";
+    stripRoot = false;
+    hash = "sha256-XFs/UMXI/kdrW+53t8Mj26+Rn5p+LQ6KW2K2/ShoIag=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "sha256-Ba7D4J72GZQsGn0KINRib9BmHsAnoEsAwAOC+M3CkMU=";
+    install -Dm644 */*/*.otf -t $out/share/fonts/opentype
+    install -Dm644 */*/*.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "A strong, neutral, principles-driven, open source typeface for text or display";
diff --git a/nixpkgs/pkgs/data/fonts/quattrocento-sans/default.nix b/nixpkgs/pkgs/data/fonts/quattrocento-sans/default.nix
index 0d62a866e0f0..765959884232 100644
--- a/nixpkgs/pkgs/data/fonts/quattrocento-sans/default.nix
+++ b/nixpkgs/pkgs/data/fonts/quattrocento-sans/default.nix
@@ -1,25 +1,29 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "quattrocento-sans";
   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";
+  src = fetchzip {
+    url = "https://web.archive.org/web/20170709124317/http://www.impallari.com/media/releases/quattrocento-sans-v${version}.zip";
+    stripRoot = false;
+    hash = "sha256-L3aFZmaA94B9APxsp8bSBpocIlK3Ehvj/RFXVcW2nso=";
+  };
 
-  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}
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "0g8hnn92ks4y0jbizwj7yfa097lk887wqkqpqjdmc09sd2n44343";
+    install -Dm644 */*/QuattrocentoSans*.otf -t $out/share/fonts/opentype
+    install -Dm644 */FONTLOG.txt             -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "http://www.impallari.com/quattrocentosans/";
     description = "A classic, elegant and sober sans-serif typeface";
     license = licenses.ofl;
     platforms = platforms.all;
-    maintainers = [maintainers.rycee];
+    maintainers = [ maintainers.rycee ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/quattrocento/default.nix b/nixpkgs/pkgs/data/fonts/quattrocento/default.nix
index aa23175a04d4..a70396437ec1 100644
--- a/nixpkgs/pkgs/data/fonts/quattrocento/default.nix
+++ b/nixpkgs/pkgs/data/fonts/quattrocento/default.nix
@@ -1,25 +1,28 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "quattrocento";
   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";
+  src = fetchzip {
+    url = "https://web.archive.org/web/20170707001804/http://www.impallari.com/media/releases/quattrocento-v${version}.zip";
+    hash = "sha256-ntY6Wl6TI8F7SShMyD8mdOxVg4oz9kvJ7vKTyGdPLtE=";
+  };
 
-  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}
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "0f8l19y61y20sszn8ni8h9kgl0zy1gyzychg22z5k93ip4h7kfd0";
+    install -Dm644 */*.otf     -t $out/share/fonts/opentype
+    install -Dm644 FONTLOG.txt -t $out/share/doc/${pname}-${version}
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "http://www.impallari.com/quattrocento/";
     description = "A classic, elegant, sober and strong serif typeface";
     license = licenses.ofl;
     platforms = platforms.all;
-    maintainers = [maintainers.rycee];
+    maintainers = [ maintainers.rycee ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/raleway/default.nix b/nixpkgs/pkgs/data/fonts/raleway/default.nix
index ddded71a6fa2..ffaca35c6b9e 100644
--- a/nixpkgs/pkgs/data/fonts/raleway/default.nix
+++ b/nixpkgs/pkgs/data/fonts/raleway/default.nix
@@ -1,42 +1,40 @@
-{ lib, fetchFromGitHub }:
+{ lib, fetchzip, stdenvNoCC }:
 
-let
-  version = "2016-08-30";
-in fetchFromGitHub {
-  name = "raleway-${version}";
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "raleway";
+  version = "4.101";
 
-  owner = "impallari";
-  repo = "Raleway";
-  rev = "fa27f47b087fc093c6ae11cfdeb3999ac602929a";
+  src = fetchzip {
+    url = "https://github.com/theleagueof/raleway/releases/download/${finalAttrs.version}/Raleway-${finalAttrs.version}.tar.xz";
+    hash = "sha256-itNHIMoRjiaqYAJoDNetkCquv47VAfel8MAzwsd//Ww=";
+  };
 
-  postFetch = ''
-    tar xf $downloadedFile --strip=1
-    find . -name "*-Original.otf" -exec install -Dt $out/share/fonts/opentype {} \;
-    cp *.txt *.md -d $out
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "16jr7drqg2wib2q48ajlsa7rh1jxjibl1wd4rjndi49vfl463j60";
+    install -D -m444 -t $out/share/fonts/truetype $src/static/TTF/*.ttf
+    install -D -m444 -t $out/share/fonts/opentype $src/static/OTF/*.otf
+
+    runHook postInstall
+  '';
 
   meta = {
     description = "Raleway is an elegant sans-serif typeface family";
-
     longDescription = ''
       Initially designed by Matt McInerney as a single thin weight, it was
       expanded into a 9 weight family by Pablo Impallari and Rodrigo Fuenzalida
-      in 2012 and iKerned by Igino Marini. In 2013 the Italics where added.
+      in 2012 and iKerned by Igino Marini. In 2013 the Italics where added, and
+      most recently — a variable version.
 
-      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 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";
+    homepage = "https://www.theleagueofmoveabletype.com/raleway";
     license = lib.licenses.ofl;
-
-    maintainers = with lib.maintainers; [ Profpatsch ];
+    maintainers = with lib.maintainers; [ minijackson Profpatsch ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/data/fonts/recursive/default.nix b/nixpkgs/pkgs/data/fonts/recursive/default.nix
index 142f84ba7d9e..f634a8c5343a 100644
--- a/nixpkgs/pkgs/data/fonts/recursive/default.nix
+++ b/nixpkgs/pkgs/data/fonts/recursive/default.nix
@@ -1,20 +1,19 @@
-{ lib, fetchzip }:
+{ lib, fetchzip, stdenvNoCC }:
 
-let
-  version = "1.084";
-in
-fetchzip {
-  name = "recursive-${version}";
+stdenvNoCC.mkDerivation rec {
+  pname = "recursive";
+  version = "1.085";
 
-  url = "https://github.com/arrowtype/recursive/releases/download/v${version}/ArrowType-Recursive-${version}.zip";
+  src = fetchzip {
+    url = "https://github.com/arrowtype/recursive/releases/download/v${version}/ArrowType-Recursive-${version}.zip";
+    sha256 = "sha256-hnGnKnRoQN8vFStW8TjLrrTL1dWsthUEWxfaGF0b0vM=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts/
-    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  installPhase = ''
+    install -D -t $out/share/fonts/opentype/ $(find $src -type f -name '*.otf')
+    install -D -t $out/share/fonts/truetype/ $(find $src -type f -name '*.ttf')
   '';
 
-  sha256 = "sha256-YL09RVU9pgP0/aGRKECHzd5t1VmNDPtOFcRygWqIisg=";
 
   meta = with lib; {
     homepage = "https://recursive.design/";
diff --git a/nixpkgs/pkgs/data/fonts/redhat-official/default.nix b/nixpkgs/pkgs/data/fonts/redhat-official/default.nix
index 9daaffd0b4ba..76782d510509 100644
--- a/nixpkgs/pkgs/data/fonts/redhat-official/default.nix
+++ b/nixpkgs/pkgs/data/fonts/redhat-official/default.nix
@@ -1,23 +1,26 @@
-{ lib, fetchFromGitHub }:
-let
-  version = "4.0.2";
-in
-fetchFromGitHub {
-  name = "redhat-official-${version}";
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-  owner = "RedHatOfficial";
-  repo = "RedHatFont";
-  rev = version;
+stdenvNoCC.mkDerivation rec {
+  pname = "redhat-official";
+  version = "4.0.3";
+
+  src = fetchFromGitHub {
+    owner = "RedHatOfficial";
+    repo = "RedHatFont";
+    rev = version;
+    hash = "sha256-r43KtMIedNitb5Arg8fTGB3hrRZoA8oUHVEL24k4LeQ=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar xf $downloadedFile --strip=1
     for kind in mono proportional; do
       install -m444 -Dt $out/share/fonts/opentype fonts/$kind/static/otf/*.otf
       install -m444 -Dt $out/share/fonts/truetype fonts/$kind/static/ttf/*.ttf
     done
-  '';
 
-  sha256 = "sha256-904uQtbAdLx9MJudLk/vVk/+uK0nsPbWbAeXrWxTHm8=";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/RedHatOfficial/RedHatFont";
diff --git a/nixpkgs/pkgs/data/fonts/rhodium-libre/default.nix b/nixpkgs/pkgs/data/fonts/rhodium-libre/default.nix
index fc89d6525922..1c36f41b4839 100644
--- a/nixpkgs/pkgs/data/fonts/rhodium-libre/default.nix
+++ b/nixpkgs/pkgs/data/fonts/rhodium-libre/default.nix
@@ -1,22 +1,24 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
   pname = "RhodiumLibre";
   version = "1.2.0";
-in fetchFromGitHub {
-  name = "${pname}-${version}";
 
-  owner = "DunwichType";
-  repo = pname;
-  rev = version;
+  src = fetchFromGitHub {
+    owner = "DunwichType";
+    repo = pname;
+    rev = version;
+    hash = "sha256-YCQvUdjEAj4G71WCRCM0+NwiqRqwt1Ggeg9jb/oWEsY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  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";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "F/OSS/Libre font for Latin and Devanagari";
diff --git a/nixpkgs/pkgs/data/fonts/roboto-serif/default.nix b/nixpkgs/pkgs/data/fonts/roboto-serif/default.nix
new file mode 100644
index 000000000000..99e8ea58b4e4
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/roboto-serif/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenvNoCC
+, fetchurl
+, unzip
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "roboto-serif";
+  version = "1.008";
+
+  src = fetchurl {
+    url = "https://github.com/googlefonts/roboto-serif/releases/download/v${version}/RobotoSerifFonts-v${version}.zip";
+    hash = "sha256-Nm9DcxL0CgA51nGeZJPWSCipgqwnNPlhj0wHyGhLaYQ=";
+  };
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [
+    unzip
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 variable/*.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "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.
+    '';
+    homepage = "https://github.com/googlefonts/roboto-serif";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ wegank ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/roboto/default.nix b/nixpkgs/pkgs/data/fonts/roboto/default.nix
index fe13fdf89d1e..02ca82edf10f 100644
--- a/nixpkgs/pkgs/data/fonts/roboto/default.nix
+++ b/nixpkgs/pkgs/data/fonts/roboto/default.nix
@@ -1,18 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "roboto";
   version = "2.138";
-in fetchzip {
-  name = "roboto-${version}";
 
-  url = "https://github.com/google/roboto/releases/download/v${version}/roboto-unhinted.zip";
+  src = fetchzip {
+    url = "https://github.com/google/roboto/releases/download/v${version}/roboto-unhinted.zip";
+    stripRoot = false;
+    hash = "sha256-ue3PUZinBpcYgSho1Zrw1KHl7gc/GlN1GhWFk6g5QXE=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.ttf -x __MACOSX/\* -d $out/share/fonts/truetype
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "1s3c48wwvvwd3p4w3hfkri5v2c54j2bdxmd3bjv54klc5mrlh6z3";
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
 
   meta = {
     homepage = "https://github.com/google/roboto";
diff --git a/nixpkgs/pkgs/data/fonts/rounded-mgenplus/default.nix b/nixpkgs/pkgs/data/fonts/rounded-mgenplus/default.nix
index eccbddd1851d..688518150fc7 100644
--- a/nixpkgs/pkgs/data/fonts/rounded-mgenplus/default.nix
+++ b/nixpkgs/pkgs/data/fonts/rounded-mgenplus/default.nix
@@ -1,17 +1,25 @@
-{ lib, fetchzip, p7zip }:
+{ lib, stdenvNoCC, fetchurl, p7zip }:
 
-let
+stdenvNoCC.mkDerivation rec {
   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
+  src = fetchurl {
+    url = "https://osdn.jp/downloads/users/8/8598/${pname}-${version}.7z";
+    hash = "sha256-7OpnZJc9k5NiOPHAbtJGMQvsMg9j81DCvbfo0f7uJcw=";
+  };
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [ p7zip ];
+
+  installPhase = ''
+    runHook preInstall
+
     install -m 444 -D -t $out/share/fonts/${pname} ${pname}-*.ttf
+
+    runHook postInstall
   '';
-  sha256 = "0vwdknagdrl5dqwpb1x5lxkbfgvbx8dpg7cb6yamgz71831l05v1";
 
   meta = with lib; {
     description = "A Japanese font based on Rounded M+ and Noto Sans Japanese";
diff --git a/nixpkgs/pkgs/data/fonts/route159/default.nix b/nixpkgs/pkgs/data/fonts/route159/default.nix
index cbc89c550b3c..e19d25d61d0f 100644
--- a/nixpkgs/pkgs/data/fonts/route159/default.nix
+++ b/nixpkgs/pkgs/data/fonts/route159/default.nix
@@ -1,27 +1,32 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
 let
   majorVersion = "1";
   minorVersion = "10";
-  pname = "route159";
 in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "route159";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-1InyBW1LGbp/IU/ql9mvT14W3MTxJdWThFwRH6VHpTU=";
+    stripRoot = false;
+  };
 
-fetchzip {
-  name = "${pname}-font-${majorVersion}.${minorVersion}";
+  installPhase = ''
+    runHook preInstall
 
-  url = "http://dotcolon.net/DL/font/${pname}_${majorVersion}${minorVersion}.zip";
-  sha256 = "1nv5csg73arvvwpac7ylh4j9n0s3qp79rbv2s4jvs2bf6gqhsq7h";
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
 
-  postFetch = ''
-    mkdir -p $out/share/fonts/opentype/${pname}
-    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+    runHook postInstall
   '';
 
   meta = with lib; {
-    homepage = "http://dotcolon.net/font/${pname}/";
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
     description = "A weighted sans serif font";
     platforms = platforms.all;
-    maintainers = with maintainers; [ leenaars ];
+    maintainers = with maintainers; [ leenaars minijackson ];
     license = licenses.ofl;
   };
-}
+})
diff --git a/nixpkgs/pkgs/data/fonts/rubik/default.nix b/nixpkgs/pkgs/data/fonts/rubik/default.nix
index 37afebb5cc0b..dec500c119f1 100644
--- a/nixpkgs/pkgs/data/fonts/rubik/default.nix
+++ b/nixpkgs/pkgs/data/fonts/rubik/default.nix
@@ -95,7 +95,7 @@ stdenv.mkDerivation {
       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
+      expanded by Cyreal Fonts Team (Alexei Vanyashin and Nikita Kanarev). Existing
       glyphs were improved, and glyph set was expanded to GF Cyrillic Plus.
     '';
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/data/fonts/ruwudu/default.nix b/nixpkgs/pkgs/data/fonts/ruwudu/default.nix
new file mode 100644
index 000000000000..61f306c71024
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/ruwudu/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "ruwudu";
+  version = "2.000";
+
+  src = fetchzip {
+    url = "https://software.sil.org/downloads/r/ruwudu/Ruwudu-${version}.zip";
+    hash = "sha256-FP+ZHm1fKlozAAI2PbJ4r4v5OwRxBtYMRLmRwPbqx2I=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/{doc/${pname},fonts/truetype}
+    mv *.ttf $out/share/fonts/truetype/
+    mv *.txt documentation $out/share/doc/${pname}/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://software.sil.org/ruwudu/";
+    description = "Arabic script font for a style of writing used in Niger, West Africa";
+    license = licenses.ofl;
+    maintainers = [ maintainers.vbgl ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/sahel-fonts/default.nix b/nixpkgs/pkgs/data/fonts/sahel-fonts/default.nix
index 9079ba7fada0..860a0066270d 100644
--- a/nixpkgs/pkgs/data/fonts/sahel-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/sahel-fonts/default.nix
@@ -1,20 +1,23 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
   pname = "sahel-fonts";
   version = "3.4.0";
-in fetchFromGitHub {
-  name = "${pname}-${version}";
 
-  owner = "rastikerdar";
-  repo = "sahel-font";
-  rev = "v${version}";
+  src = fetchFromGitHub {
+    owner = "rastikerdar";
+    repo = "sahel-font";
+    rev = "v${version}";
+    hash = "sha256-U4tIICXZFK9pk7zdzRwBPIPYFUlYXPSebnItUJUgGJY=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar xf $downloadedFile --strip=1
     find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/sahel-fonts {} \;
+
+    runHook postInstall
   '';
-  sha256 = "sha256-MrKSgz9WpVgLS37uH/7S0LPBD/n3GLXeUCMBD7x5CG8=";
 
   meta = with lib; {
     homepage = "https://github.com/rastikerdar/sahel-font";
diff --git a/nixpkgs/pkgs/data/fonts/samim-fonts/default.nix b/nixpkgs/pkgs/data/fonts/samim-fonts/default.nix
index b29114e6b1c4..a1785e1b9373 100644
--- a/nixpkgs/pkgs/data/fonts/samim-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/samim-fonts/default.nix
@@ -1,20 +1,23 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
   pname = "samim-fonts";
-  version = "4.0.4";
-in fetchFromGitHub {
-  name = "${pname}-${version}";
+  version = "4.0.5";
 
-  owner = "rastikerdar";
-  repo = "samim-font";
-  rev = "v${version}";
+  src = fetchFromGitHub {
+    owner = "rastikerdar";
+    repo = "samim-font";
+    rev = "v${version}";
+    hash = "sha256-DVBMsNOVAVwzlZ3cDus/3CSsC05bLZalQ2KeueEvwXs=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar xf $downloadedFile --strip=1
     find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/samim-fonts {} \;
+
+    runHook postInstall
   '';
-  sha256 = "sha256-WYSJ2mAzAe5H0EaMYU3qNVcQ0lRuHsjZ11YmLnZ2FCo=";
 
   meta = with lib; {
     homepage = "https://github.com/rastikerdar/samim-font";
diff --git a/nixpkgs/pkgs/data/fonts/sampradaya/default.nix b/nixpkgs/pkgs/data/fonts/sampradaya/default.nix
index 749abb71dbd4..8c0545d2c7fe 100644
--- a/nixpkgs/pkgs/data/fonts/sampradaya/default.nix
+++ b/nixpkgs/pkgs/data/fonts/sampradaya/default.nix
@@ -1,16 +1,26 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchurl }:
 
-fetchzip {
-  name = "sampradaya-2015-05-26";
+stdenvNoCC.mkDerivation rec {
+  pname = "sampradaya";
+  version = "0.5.0";
 
-  url = "https://bitbucket.org/OorNaattaan/sampradaya/raw/afa9f7c6ab17e14bd7dd74d0acaec2f75454dfda/Sampradaya.ttf";
+  src = fetchurl {
+    url = "https://github.com/deepestblue/sampradaya/releases/download/v${version}/Sampradaya.ttf";
+    hash = "sha256-ygKMNzHvbLR2A5HHrfY2C9ZUg0yng+JL3cyg6sBKqeQ=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = "install -Dm644 $downloadedFile $out/share/fonts/truetype/Sampradaya.ttf";
+    install -Dm644 $src $out/share/fonts/truetype/Sampradaya.ttf
 
-  sha256 = "1pqyj5r5jc7dk8yyzl7i6qq2m9zvahcjj49a66wwzdby5zyw8dqv";
+    runHook postInstall
+  '';
 
   meta = with lib; {
-    homepage = "https://bitbucket.org/OorNaattaan/sampradaya/";
+    homepage = "https://github.com/deepestblue/sampradaya";
     description = "Unicode-compliant Grantha font";
     maintainers = with maintainers; [ mathnerd314 ];
     license = licenses.ofl; # See font metadata
diff --git a/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix b/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix
index ef923ba9a888..9f5cabe79881 100644
--- a/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix
+++ b/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix
@@ -1,21 +1,27 @@
-{ lib, fetchurl, libarchive }:
+{ lib, stdenvNoCC, fetchurl, p7zip }:
 
-let
-  version = "0.36.8";
-in fetchurl {
-  name = "sarasa-gothic-${version}";
+stdenvNoCC.mkDerivation rec {
+  pname = "sarasa-gothic";
+  version = "0.41.0";
 
-  # 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-lKrpaTVYmV3wr1Uj5Yqj1p1t0CYF0ApX7j+QFNfpdz0=";
+  src = fetchurl {
+    # 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";
+    hash = "sha256-3WcBuBTm3ASuCvLh+2R/idLKBjCTnk4qIRaOo590ugU=";
+  };
+
+  sourceRoot = ".";
 
-  recursiveHash = true;
-  downloadToTemp = true;
+  nativeBuildInputs = [ p7zip ];
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
     mkdir -p $out/share/fonts/truetype
-    ${libarchive}/bin/bsdtar -xf $downloadedFile -C $out/share/fonts/truetype
+    cp *.ttc $out/share/fonts/truetype
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/scheherazade/default.nix b/nixpkgs/pkgs/data/fonts/scheherazade/default.nix
index e91d108ade8e..9960248b0d75 100644
--- a/nixpkgs/pkgs/data/fonts/scheherazade/default.nix
+++ b/nixpkgs/pkgs/data/fonts/scheherazade/default.nix
@@ -1,28 +1,31 @@
-{ lib, fetchzip, version ? "3.300" }:
+{ lib, stdenvNoCC, fetchzip, version ? "3.300" }:
 
 let
   new = lib.versionAtLeast version "3.000";
-  sha256 = {
-    "2.100" = "1g5f5f9gzamkq3kqyf7vbzvl4rdj3wmjf6chdrbxksrm3rnb926z";
-    "3.300" = "1bja1ma1mnna0qlk3dis31cvq5z1kgcqj7wjp8ml03zc5mpa2wb2";
+  hash = {
+    "2.100" = "sha256-d2UyOOOnmE1afCwyIrM1bL3lQC7XRwh03hzetk/4V30=";
+    "3.300" = "sha256-LaaA6DWAE2dcwVVX4go9cJaiuwI6efYbPk82ym3W3IY=";
   }."${version}";
+  pname = "scheherazade${lib.optionalString new "-new"}";
+in
+stdenvNoCC.mkDerivation rec {
+  inherit pname version;
+
+  src = fetchzip {
+    url = "http://software.sil.org/downloads/r/scheherazade/Scheherazade${lib.optionalString new "New"}-${version}.zip";
+    inherit hash;
+  };
 
-in fetchzip rec {
-  name = "scheherazade${lib.optionalString new "-new"}-${version}";
+  installPhase = ''
+    runHook preInstall
 
-  url = "http://software.sil.org/downloads/r/scheherazade/Scheherazade${lib.optionalString new "New"}-${version}.zip";
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 FONTLOG.txt README.txt -t $out/share/doc
+    cp -r documentation $out/share/doc/
 
-  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}
+    runHook postInstall
   '';
 
-  inherit sha256;
-
   meta = with lib; {
     homepage = "https://software.sil.org/scheherazade/";
     description = "A font designed in a similar style to traditional Naskh typefaces";
diff --git a/nixpkgs/pkgs/data/fonts/scientifica/default.nix b/nixpkgs/pkgs/data/fonts/scientifica/default.nix
index bf5b887cc771..1f946ecb17af 100644
--- a/nixpkgs/pkgs/data/fonts/scientifica/default.nix
+++ b/nixpkgs/pkgs/data/fonts/scientifica/default.nix
@@ -1,25 +1,24 @@
-{ lib, fetchurl }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "scientifica";
   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;
+  src = fetchurl {
+    url = "https://github.com/NerdyPepper/scientifica/releases/download/v${version}/scientifica.tar";
+    hash = "sha256-8IV4aaDoRsbxddy4U90fEZ6henUhjmO38HNtWo4ein8=";
+  };
 
-  sha256 = "sha256-pVWkj/2lFpmWk0PPDrIMU4Gey7/m/9tzUsuD3ZDUAdc=";
+  installPhase = ''
+    runHook preInstall
 
-  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
+    install ttf/*.ttf $out/share/fonts/truetype
+    install otb/*.otb $out/share/fonts/misc
+    install bdf/*.bdf $out/share/fonts/misc
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/seshat/default.nix b/nixpkgs/pkgs/data/fonts/seshat/default.nix
index 71483a04cbb7..e86b0539c927 100644
--- a/nixpkgs/pkgs/data/fonts/seshat/default.nix
+++ b/nixpkgs/pkgs/data/fonts/seshat/default.nix
@@ -1,24 +1,29 @@
-{ lib,  fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
 let
   majorVersion = "0";
   minorVersion = "100";
-  pname = "seshat";
 in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "seshat";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-XgprDhzAbcTzZw2QOwpCnzusYheYmSlM+ApU+Y0wO2Q=";
+    stripRoot = false;
+  };
 
-fetchzip {
-  name = "${pname}-font-${majorVersion}.${minorVersion}";
+  installPhase = ''
+    runHook preInstall
 
-  url = "http://dotcolon.net/DL/font/${pname}.zip";
-  sha256 = "1zzgc2d0jrris92p3irmxjhdq8aj99alz0z7dlz25qf37lcilrir";
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
 
-  postFetch = ''
-    mkdir -p $out/share/fonts/opentype/${pname}
-    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+    runHook postInstall
   '';
 
   meta = with lib; {
-    homepage = "http://dotcolon.net/font/${pname}/";
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
     description = "Roman body font designed for main text by Sora Sagano";
     longDescription = ''
       Seshat is a Roman body font designed for the main text. By
@@ -31,7 +36,7 @@ fetchzip {
       It incorporates symbols and ligatures used in the European region.
     '';
     platforms = platforms.all;
-    maintainers = with maintainers; [ leenaars ];
+    maintainers = with maintainers; [ leenaars minijackson ];
     license = licenses.cc0;
   };
-}
+})
diff --git a/nixpkgs/pkgs/data/fonts/shabnam-fonts/default.nix b/nixpkgs/pkgs/data/fonts/shabnam-fonts/default.nix
index d5e7e2b243c3..c5f5e00e023a 100644
--- a/nixpkgs/pkgs/data/fonts/shabnam-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/shabnam-fonts/default.nix
@@ -1,20 +1,23 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
   pname = "shabnam-fonts";
   version = "5.0.1";
-in fetchFromGitHub {
-  name = "${pname}-${version}";
 
-  owner = "rastikerdar";
-  repo = "shabnam-font";
-  rev = "v${version}";
+  src = fetchFromGitHub {
+    owner = "rastikerdar";
+    repo = "shabnam-font";
+    rev = "v${version}";
+    hash = "sha256-H03GTKRVPiwU4edkr4x5upW4JCy6320Lo+cKK9FRMQs=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar xf $downloadedFile --strip=1
     find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/shabnam-fonts {} \;
+
+    runHook postInstall
   '';
-  sha256 = "sha256-m4G4UtW/0S9CsvaSF7QfthfIxGQ02E7SucdDm5s3G7A=";
 
   meta = with lib; {
     homepage = "https://github.com/rastikerdar/shabnam-font";
diff --git a/nixpkgs/pkgs/data/fonts/shrikhand/default.nix b/nixpkgs/pkgs/data/fonts/shrikhand/default.nix
index 684f3d0395e9..0db94ebd4ecb 100644
--- a/nixpkgs/pkgs/data/fonts/shrikhand/default.nix
+++ b/nixpkgs/pkgs/data/fonts/shrikhand/default.nix
@@ -1,15 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
-  version = "2016-03-03";
-in fetchzip {
-  name = "shrikhand-${version}";
+stdenvNoCC.mkDerivation {
+  pname = "shrikhand";
+  version = "unstable-2016-03-03";
 
-  url = "https://github.com/jonpinhorn/shrikhand/raw/c11c9b0720fba977fad7cb4f339ebacdba1d1394/build/Shrikhand-Regular.ttf";
+  src = fetchurl {
+    url = "https://github.com/jonpinhorn/shrikhand/raw/c11c9b0720fba977fad7cb4f339ebacdba1d1394/build/Shrikhand-Regular.ttf";
+    hash = "sha256-wHP1Bwu5Yw3a+RwDOHrmthsnuvwyCV4l6ma5EjA6EMA=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = "install -D -m644 $downloadedFile $out/share/fonts/truetype/Shrikhand-Regular.ttf";
+    install -D -m644 $src $out/share/fonts/truetype/Shrikhand-Regular.ttf
 
-  sha256 = "0s54k9cs1g2yz6lwg5gakqb12vg5qkfdz3pc8mh7mib2s6q926hs";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://jonpinhorn.github.io/shrikhand/";
diff --git a/nixpkgs/pkgs/data/fonts/siji/default.nix b/nixpkgs/pkgs/data/fonts/siji/default.nix
index adc6a79f10f4..4429729f7a5c 100644
--- a/nixpkgs/pkgs/data/fonts/siji/default.nix
+++ b/nixpkgs/pkgs/data/fonts/siji/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv, fetchFromGitHub, libfaketime, fonttosfnt, mkfontscale }:
+{ lib, stdenv, fetchFromGitHub, libfaketime, xorg }:
 
 stdenv.mkDerivation rec {
-  name = "siji-${version}";
+  pname = "siji";
   version = "2016-05-13";
 
   src = fetchFromGitHub {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "1408g4nxwdd682vjqpmgv0cp0bfnzzzwls62cjs9zrds16xa9dpf";
   };
 
-  nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];
+  nativeBuildInputs = [ libfaketime xorg.fonttosfnt xorg.mkfontscale ];
 
   buildPhase = ''
     # compress pcf fonts
diff --git a/nixpkgs/pkgs/data/fonts/sil-abyssinica/default.nix b/nixpkgs/pkgs/data/fonts/sil-abyssinica/default.nix
index c884b5567dd7..f01c50b42608 100644
--- a/nixpkgs/pkgs/data/fonts/sil-abyssinica/default.nix
+++ b/nixpkgs/pkgs/data/fonts/sil-abyssinica/default.nix
@@ -1,23 +1,29 @@
-{ fetchzip, lib }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  version = "1.500";
-in
-fetchzip {
-  name = "sil-abyssinica-${version}";
-  url = "mirror://debian/pool/main/f/fonts-sil-abyssinica/fonts-sil-abyssinica_${version}.orig.tar.xz";
-  sha256 = "sha256-fCa88wG2JfHTaHaBkuvoncbcbrh3XNzc8ewS3W+W/fM=";
+stdenvNoCC.mkDerivation rec {
+  pname = "sil-abyssinica";
+  version = "2.200";
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    tar xf $downloadedFile --strip-components=1 -C $out/share/fonts AbyssinicaSIL-${version}/AbyssinicaSIL-R.ttf
+  src = fetchzip {
+    url = "https://software.sil.org/downloads/r/abyssinica/AbyssinicaSIL-${version}.zip";
+    hash = "sha256-IdWMZHm9VoLVDO0//ISujxlXUxe0O6+aEcdP63YRmPg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/{fonts/truetype,doc/${pname}-${version}}
+    mv *.ttf $out/share/fonts/truetype/
+    mv *.txt documentation $out/share/doc/${pname}-${version}/
+
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "Unicode font for Ethiopian and Erythrean scripts (Amharic et al.)";
     homepage = "https://software.sil.org/abyssinica/";
     license = licenses.ofl;
-    maintainers = with lib.maintainers; [ serge ];
+    maintainers = with maintainers; [ serge ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/sil-padauk/default.nix b/nixpkgs/pkgs/data/fonts/sil-padauk/default.nix
index 1b574e2da2de..fe45da131738 100644
--- a/nixpkgs/pkgs/data/fonts/sil-padauk/default.nix
+++ b/nixpkgs/pkgs/data/fonts/sil-padauk/default.nix
@@ -1,27 +1,30 @@
-{ fetchzip, lib }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  version = "3.003";
-in
-fetchzip {
-  name = "sil-padauk-${version}";
-  url = "mirror://debian/pool/main/f/fonts-sil-padauk/fonts-sil-padauk_${version}.orig.tar.xz";
-  sha256 = "sha256-oK+EufbvsqXunTgcWj+DiNdfpRl+VPO60Wc9KYjZv5A=";
+stdenvNoCC.mkDerivation rec {
+  pname = "sil-padauk";
+  version = "5.001";
 
-  postFetch = ''
-    unpackDir="$TMPDIR/unpack"
-    mkdir "$unpackDir"
-    cd "$unpackDir"
-    tar xf "$downloadedFile" --strip-components=1
-    mkdir -p $out/share/fonts
-    cp *.ttf $out/share/fonts
+  src = fetchzip {
+    url = "https://software.sil.org/downloads/r/padauk/Padauk-${version}.zip";
+    hash = "sha256-rLzuDUd+idjTN0xQxblXQ9V2rQtJPN2EtWGmTRY1R7U=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    mv *.ttf $out/share/fonts/truetype/
+    mkdir -p $out/share/doc/${pname}-${version}
+    mv *.txt documentation/ $out/share/doc/${pname}-${version}/
+
+    runHook postInstall
   '';
 
   meta = with lib; {
-    description = "Burmese Unicode 6 TrueType font";
+    description = "A Unicode-based font family with broad support for writing systems that use the Myanmar script";
     homepage = "https://software.sil.org/padauk";
     license = licenses.ofl;
-    maintainers = with lib.maintainers; [ serge ];
+    maintainers = with maintainers; [ serge ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/sitelen-seli-kiwen/default.nix b/nixpkgs/pkgs/data/fonts/sitelen-seli-kiwen/default.nix
new file mode 100644
index 000000000000..de0fec7b6f3e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sitelen-seli-kiwen/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation {
+  pname = "sitelen-seli-kiwen";
+  version = "unstable-2022-06-28";
+
+  src = fetchzip {
+    url = "https://raw.githubusercontent.com/kreativekorp/sitelen-seli-kiwen/69132c99873894746c9710707aaeb2cea2609709/sitelenselikiwen.zip";
+    stripRoot = false;
+    hash = "sha256-viOLAj9Rn60bcQkkDHVuKHCE8KPnIz/L0hIJhum1SSQ=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/{opentype,truetype}
+    mv *.eot $out/share/fonts/opentype/
+    mv *.ttf $out/share/fonts/truetype/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A handwritten sitelen pona font supporting UCSUR";
+    homepage = "https://www.kreativekorp.com/software/fonts/sitelenselikiwen/";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ somasis ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/smiley-sans/default.nix b/nixpkgs/pkgs/data/fonts/smiley-sans/default.nix
new file mode 100644
index 000000000000..9c26bea80712
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/smiley-sans/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenvNoCC, fetchzip, nix-update-script }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "smiley-sans";
+  version = "1.1.1";
+
+  src = fetchzip {
+    url = "https://github.com/atelier-anchor/smiley-sans/releases/download/v${version}/smiley-sans-v${version}.zip";
+    sha256 = "sha256-/lsAZRHgmx1TMjm2O5Z0IOiHQM8LKJPXcBKZrlXt3RA=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm644 -t $out/share/fonts/opentype *.otf
+    install -Dm644 -t $out/share/fonts/truetype *.ttf
+    install -Dm644 -t $out/share/fonts/woff2 *.woff2
+    runHook postInstall
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = with lib; {
+    description = "A condensed and oblique Chinese typeface seeking a visual balance between the humanist and the geometric";
+    homepage = "https://atelier-anchor.com/typefaces/smiley-sans/";
+    changelog = "https://github.com/atelier-anchor/smiley-sans/blob/main/CHANGELOG.md";
+    license = licenses.ofl;
+    maintainers = [];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/sniglet/default.nix b/nixpkgs/pkgs/data/fonts/sniglet/default.nix
new file mode 100644
index 000000000000..ab60e9c56f7c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sniglet/default.nix
@@ -0,0 +1,33 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "sniglet";
+  version = "2011-05-25";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "5c6b0860bdd0d8c4f16222e4de3918c384db17c4";
+    hash = "sha256-fLT2hZT9o1Ka30EB/6oWwmalhVJ+swXLRFG99yRWd2c=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/*.ttf
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "A fun rounded display face that’s great for headlines";
+    longDescription = ''
+      A rounded display face that’s great for headlines. It comes with a full
+      character set, so you can type in Icelandic or even French!
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/sniglet";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/sorts-mill-goudy/default.nix b/nixpkgs/pkgs/data/fonts/sorts-mill-goudy/default.nix
new file mode 100644
index 000000000000..1edbbd9787ed
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/sorts-mill-goudy/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "sorts-mill-goudy";
+  version = "2011-05-25";
+
+  src = fetchFromGitHub {
+    owner = "theleagueof";
+    repo = finalAttrs.pname;
+    rev = "06072890c7b05f274215a24f17449655ccb2c8af";
+    hash = "sha256-NEfLBJatUmdUL5gJEimJHZfOd1OtI7pxTN97eWMODyM=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/*.ttf
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "A ‘revival’ of Goudy Oldstyle and Italic";
+    longDescription = ''
+      A 'revival' of Goudy Oldstyle and Italic, with features including small
+      capitals (in the roman only), oldstyle and lining figures, superscripts
+      and subscripts, fractions, ligatures, class-based kerning, case-sensitive
+      forms, and capital spacing. There is support for many languages using
+      latin scripts.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/sorts-mill-goudy";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/source-code-pro/default.nix b/nixpkgs/pkgs/data/fonts/source-code-pro/default.nix
index eaf82d412a1d..4d3f5155929b 100644
--- a/nixpkgs/pkgs/data/fonts/source-code-pro/default.nix
+++ b/nixpkgs/pkgs/data/fonts/source-code-pro/default.nix
@@ -1,18 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  version = "2.038";
-in fetchzip {
-  name = "source-code-pro-${version}";
+stdenvNoCC.mkDerivation rec {
+  pname = "source-code-pro";
+  version = "2.042";
 
-  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";
+  src = fetchzip {
+    url = "https://github.com/adobe-fonts/source-code-pro/releases/download/${version}R-u%2F1.062R-i%2F1.026R-vf/OTF-source-code-pro-${version}R-u_1.062R-i.zip";
+    stripRoot = false;
+    hash = "sha256-+BnfmD+AjObSoVxPvFAqbnMD2j5qf2YmbXGQtXoaiy0=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "027cf62zj27q7l3d4sqzdfgz423lzysihdg8cvmkk6z910a1v368";
+    install -Dm644 OTF/*.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
 
   meta = {
     description = "Monospaced font family for user interface and coding environments";
diff --git a/nixpkgs/pkgs/data/fonts/source-han-code-jp/default.nix b/nixpkgs/pkgs/data/fonts/source-han-code-jp/default.nix
index 7f12fee5067b..2a64680ee19b 100644
--- a/nixpkgs/pkgs/data/fonts/source-han-code-jp/default.nix
+++ b/nixpkgs/pkgs/data/fonts/source-han-code-jp/default.nix
@@ -1,19 +1,21 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
   pname = "source-han-code-jp";
-  version = "2.012R";
-in fetchzip {
-  name = "${pname}-${version}";
+  version = "2.012";
 
-  url = "https://github.com/adobe-fonts/${pname}/archive/${version}.zip";
+  src = fetchzip {
+    url = "https://github.com/adobe-fonts/${pname}/archive/${version}R.zip";
+    hash = "sha256-ljO/1/CaE9Yj+AN5xxlIr30/nV/axGQPO0fGACAZGCQ=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "16y5as1k864ghy3vzp8svr3q0sw57rv53za3f48700ksvxz5pwry";
+    install -Dm444 OTF/*.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
 
   meta = {
     description = "A monospaced Latin font suitable for coding";
diff --git a/nixpkgs/pkgs/data/fonts/source-han/default.nix b/nixpkgs/pkgs/data/fonts/source-han/default.nix
index 1672af411c04..2f9111865455 100644
--- a/nixpkgs/pkgs/data/fonts/source-han/default.nix
+++ b/nixpkgs/pkgs/data/fonts/source-han/default.nix
@@ -1,6 +1,7 @@
-{ stdenvNoCC
-, lib
-, fetchzip
+{ lib
+, stdenvNoCC
+, fetchurl
+, unzip
 }:
 
 let
@@ -8,21 +9,37 @@ let
     { family
     , description
     , rev
-    , sha256
-    , postFetch ? ''
-        install -m444 -Dt $out/share/fonts/opentype/source-han-${family} $downloadedFile
-      ''
+    , hash
     , 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}";
+    stdenvNoCC.mkDerivation rec {
+      pname = "source-han-${family}";
+      version = lib.removeSuffix "R" rev;
 
-      url = "https://github.com/adobe-fonts/source-han-${family}/releases/download/${rev}/SourceHan${Family}.ttc${zip}";
-      inherit sha256 postFetch;
+      src = fetchurl {
+        url = "https://github.com/adobe-fonts/source-han-${family}/releases/download/${rev}/SourceHan${Family}.ttc${zip}";
+        inherit hash;
+      };
+
+      nativeBuildInputs = lib.optionals (zip == ".zip") [ unzip ];
+
+      unpackPhase = lib.optionalString (zip == "") ''
+        cp $src SourceHan${Family}.ttc${zip}
+      '' + lib.optionalString (zip == ".zip") ''
+        unzip $src
+      '';
+
+      installPhase = ''
+        runHook preInstall
+
+        install -Dm444 *.ttc -t $out/share/fonts/opentype/${pname}
+
+        runHook postInstall
+      '';
 
       meta = {
         description = "An open source Pan-CJK ${description} typeface";
@@ -37,11 +54,7 @@ in
     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
-    '';
+    hash = "sha256-b1kRiprdpaf+Tp5rtTgwn34dPFQR+anTKvMqeVAbfk8=";
     zip = ".zip";
   };
 
@@ -49,11 +62,7 @@ in
     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
-    '';
+    hash = "sha256-RDgywab7gwT+YBO7F1KJvKOv0E/3+7Zi/pQl+UDsGcM=";
     zip = ".zip";
   };
 
@@ -61,6 +70,6 @@ in
     family = "mono";
     description = "monospaced";
     rev = "1.002";
-    sha256 = "010h1y469c21bjavwdmkpbwk3ny686inz8i062wh1dhcv8cnqk3c";
+    hash = "sha256-DBkkSN6QhI8R64M2h2iDqaNtxluJZeSJYAz8x6ZzWME=";
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/source-sans-pro/default.nix b/nixpkgs/pkgs/data/fonts/source-sans-pro/default.nix
index 879f5083e235..2a2d2c70f289 100644
--- a/nixpkgs/pkgs/data/fonts/source-sans-pro/default.nix
+++ b/nixpkgs/pkgs/data/fonts/source-sans-pro/default.nix
@@ -1,24 +1,28 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
 # Source Sans Pro got renamed to Source Sans 3 (see
 # https://github.com/adobe-fonts/source-sans/issues/192). This is the
 # last version named "Pro". It is useful for backward compatibility
 # with older documents/templates/etc.
-let
-  version = "3.006";
-in fetchzip {
+
+stdenvNoCC.mkDerivation rec {
   name = "source-sans-pro-${version}";
+  version = "3.006";
 
-  url = "https://github.com/adobe-fonts/source-sans/archive/${version}R.zip";
+  src = fetchzip {
+    url = "https://github.com/adobe-fonts/source-sans/archive/${version}R.zip";
+    hash = "sha256-1Savijgq3INuUN89MR0t748HOuGseXVw5Kd4hYwuVas=";
+  };
 
-  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
-  '';
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm444 OTF/*.otf -t $out/share/fonts/opentype
+    install -Dm444 TTF/*.ttf -t $out/share/fonts/truetype
+    install -Dm444 VAR/*.otf -t $out/share/fonts/variable
 
-  sha256 = "sha256-uWr/dFyLF65v0o6+oN/3RQoe4ziPspzGB1rgiBkoTYY=";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://adobe-fonts.github.io/source-sans/";
diff --git a/nixpkgs/pkgs/data/fonts/source-sans/default.nix b/nixpkgs/pkgs/data/fonts/source-sans/default.nix
index c16d0d2b8b4f..1433804ce71d 100644
--- a/nixpkgs/pkgs/data/fonts/source-sans/default.nix
+++ b/nixpkgs/pkgs/data/fonts/source-sans/default.nix
@@ -1,20 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "source-sans";
   version = "3.046";
-in fetchzip {
-  name = "source-sans-${version}";
 
-  url = "https://github.com/adobe-fonts/source-sans/archive/${version}R.zip";
+  src = fetchzip {
+    url = "https://github.com/adobe-fonts/source-sans/archive/${version}R.zip";
+    hash = "sha256-nBLEK+T5n1CdZK2zvCWIhF2MxPmiAwL9l55a55yHtgU=";
+  };
 
-  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
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "1wxdinnliq0xqbjrs0sqykwaggkmyqawfq862d9xn05g1pnxda94";
+    install -Dm444 OTF/*.otf -t $out/share/fonts/opentype
+    install -Dm444 TTF/*.ttf -t $out/share/fonts/truetype
+    install -Dm444 VAR/*.otf -t $out/share/fonts/variable
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://adobe-fonts.github.io/source-sans/";
diff --git a/nixpkgs/pkgs/data/fonts/source-serif-pro/default.nix b/nixpkgs/pkgs/data/fonts/source-serif-pro/default.nix
index a4d472d60856..698694faf507 100644
--- a/nixpkgs/pkgs/data/fonts/source-serif-pro/default.nix
+++ b/nixpkgs/pkgs/data/fonts/source-serif-pro/default.nix
@@ -1,24 +1,28 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
 # Source Serif Pro got renamed to Source Serif 4 (see
 # https://github.com/adobe-fonts/source-serif/issues/77). This is the
 # last version named "Pro". It is useful for backward compatibility
 # with older documents/templates/etc.
-let
+
+stdenvNoCC.mkDerivation rec {
+  pname = "source-serif-pro";
   version = "3.001";
-in fetchzip {
-  name = "source-serif-pro-${version}";
 
-  url = "https://github.com/adobe-fonts/source-serif/releases/download/${version}R/source-serif-pro-${version}R.zip";
+  src = fetchzip {
+    url = "https://github.com/adobe-fonts/source-serif/releases/download/${version}R/source-serif-pro-${version}R.zip";
+    hash = "sha256-chXoaPOACtQ7wz/etElXuIJH/yvUsP03WlxeCfqWF/w=";
+  };
 
-  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
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "sha256-rYWk8D41QMuuSP+cQMk8ttT7uX3a7gBk4OqjA7K9udk=";
+    install -Dm444 OTF/*.otf -t $out/share/fonts/opentype
+    install -Dm444 TTF/*.ttf -t $out/share/fonts/truetype
+    install -Dm444 VAR/*.otf -t $out/share/fonts/variable
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://adobe-fonts.github.io/source-serif/";
diff --git a/nixpkgs/pkgs/data/fonts/source-serif/default.nix b/nixpkgs/pkgs/data/fonts/source-serif/default.nix
index 855fe7e6e9e9..626b36f2705b 100644
--- a/nixpkgs/pkgs/data/fonts/source-serif/default.nix
+++ b/nixpkgs/pkgs/data/fonts/source-serif/default.nix
@@ -1,20 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "source-serif";
   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";
+  src = fetchzip {
+    url = "https://github.com/adobe-fonts/source-serif/releases/download/${version}R/source-serif-${version}.zip";
+    hash = "sha256-tGSMOwYBEZat7MI78wkPr6lgJdsOdOaIZb+IAOoOlq4=";
+  };
 
-  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
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "06814hcp20abca6p0ii61f23g6h1ibqyhq30lsva59wbwx5iha0h";
+    install -Dm444 OTF/*.otf -t $out/share/fonts/opentype
+    install -Dm444 TTF/*.ttf -t $out/share/fonts/truetype
+    install -Dm444 VAR/*.otf -t $out/share/fonts/variable
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://adobe-fonts.github.io/source-serif/";
diff --git a/nixpkgs/pkgs/data/fonts/spleen/default.nix b/nixpkgs/pkgs/data/fonts/spleen/default.nix
index 162197006ba7..55b88c961392 100644
--- a/nixpkgs/pkgs/data/fonts/spleen/default.nix
+++ b/nixpkgs/pkgs/data/fonts/spleen/default.nix
@@ -1,25 +1,31 @@
-{ lib, fetchurl, mkfontscale }:
+{ lib, stdenvNoCC, fetchurl, xorg }:
 
-let
+stdenvNoCC.mkDerivation rec {
   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
+  version = "2.0.0";
+
+  src = fetchurl {
+    url = "https://github.com/fcambus/spleen/releases/download/${version}/spleen-${version}.tar.gz";
+    hash = "sha256-d4d4s13UhwG4A9skemrIdZFUzl/Dq9XMC225ikS6Wgw=";
+  };
+
+  nativeBuildInputs = [ xorg.mkfontscale ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
     d="$out/share/fonts/misc"
     install -D -m 644 *.{pcf,bdf,otf} -t "$d"
     install -D -m 644 *.psfu -t "$out/share/consolefonts"
     install -m644 fonts.alias-spleen $d/fonts.alias
 
     # create fonts.dir so NixOS xorg module adds to fp
-    ${mkfontscale}/bin/mkfontdir "$d"
+    mkfontdir "$d"
+
+    runHook postInstall
   '';
-  sha256 = "sha256-6Imsa0ku8On63di0DOo0QxBa0t+tbtPRxM531EIiG94=";
 
   meta = with lib; {
     description = "Monospaced bitmap fonts";
diff --git a/nixpkgs/pkgs/data/fonts/stix-otf/default.nix b/nixpkgs/pkgs/data/fonts/stix-otf/default.nix
index 894fd22c36f9..c5505b7a7948 100644
--- a/nixpkgs/pkgs/data/fonts/stix-otf/default.nix
+++ b/nixpkgs/pkgs/data/fonts/stix-otf/default.nix
@@ -1,24 +1,28 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "stix-otf";
   version = "1.1.1";
-in fetchzip {
-  name = "stix-otf-${version}";
 
-  url = "http://ftp.fi.muni.cz/pub/linux/gentoo/distfiles/STIXv${version}-word.zip";
+  src = fetchzip {
+    url = "https://sources.debian.org/src/fonts-stix/1.1.1-4.1/STIXv${version}-word.zip";
+    stripRoot = false;
+    hash = "sha256-M3STue+RPHi8JgZZupV0dVLZYKBiFutbBOlanuKkD08=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "04d4qxq3i9fyapsmxk6d9v1xirjam8c74fyxs6n24d3gf2945zmw";
+    install -Dm644 Fonts/STIX-Word/*.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "http://www.stixfonts.org/";
     description = "Fonts for Scientific and Technical Information eXchange";
     license = licenses.ofl;
     platforms = platforms.all;
-    maintainers = [maintainers.rycee];
+    maintainers = [ maintainers.rycee ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/stix-two/default.nix b/nixpkgs/pkgs/data/fonts/stix-two/default.nix
index c05c1273a48e..86ceb388f86a 100644
--- a/nixpkgs/pkgs/data/fonts/stix-two/default.nix
+++ b/nixpkgs/pkgs/data/fonts/stix-two/default.nix
@@ -1,18 +1,22 @@
-{ lib, fetchzip }:
-let
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "stix-two";
   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";
+  src = fetchzip {
+    url = "https://github.com/stipub/stixfonts/raw/v${version}/zipfiles/STIX${builtins.replaceStrings [ "." ] [ "_" ] version}-all.zip";
+    stripRoot = false;
+    hash = "sha256-hfQmrw7HjlhQSA0rVTs84i3j3iMVR0k7tCRBcB6hEpU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "sha256-cBtZe/oq4bQCscSAhJ4YuTSghDleD9O/+3MHOJyI50o=";
+    install -Dm644 */*.otf -t $out/share/fonts/opentype
+    install -Dm644 */*.ttf -t $out/share/fonts/truetype
 
-  postFetch = ''
-    mkdir -p $out/share/fonts/
-    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/sudo/default.nix b/nixpkgs/pkgs/data/fonts/sudo/default.nix
index e1b43e39c605..26870d8003b9 100644
--- a/nixpkgs/pkgs/data/fonts/sudo/default.nix
+++ b/nixpkgs/pkgs/data/fonts/sudo/default.nix
@@ -1,16 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  version = "0.64";
-in fetchzip {
-  name = "sudo-font-${version}";
-  url = "https://github.com/jenskutilek/sudo-font/releases/download/v${version}/sudo.zip";
-  sha256 = "sha256-ewLTeIVY76eq5mHTnjIsJ5Q2CMuBqXJzxvjZTONPsr8=";
+stdenvNoCC.mkDerivation rec {
+  pname = "sudo-font";
+  version = "0.69";
 
-  postFetch = ''
-    mkdir -p $out/share/fonts/
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype/
+  src = fetchzip {
+    url = "https://github.com/jenskutilek/sudo-font/releases/download/v${version}/sudo.zip";
+    hash = "sha256-GXlQh9JRAzbwWKTJw/y003ywjaWtiQayHxiWPTPvIO0=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype/
+
+    runHook postInstall
   '';
+
   meta = with lib; {
     description = "Font for programmers and command line users";
     homepage = "https://www.kutilek.de/sudo-font/";
diff --git a/nixpkgs/pkgs/data/fonts/tai-languages/default.nix b/nixpkgs/pkgs/data/fonts/tai-languages/default.nix
index 71ca170afb1d..4e4c689b6ac6 100644
--- a/nixpkgs/pkgs/data/fonts/tai-languages/default.nix
+++ b/nixpkgs/pkgs/data/fonts/tai-languages/default.nix
@@ -1,24 +1,34 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchurl }:
 
 {
-tai-ahom = fetchzip {
-  name = "tai-ahom-2015-07-06";
+  tai-ahom = stdenvNoCC.mkDerivation rec {
+    pname = "tai-ahom";
+    version = "unstable-2015-07-06";
 
-  url = "https://github.com/enabling-languages/tai-languages/blob/b57a3ea4589af69bb8e87c6c4bb7cd367b52f0b7/ahom/.fonts/ttf/.original/AhomUnicode_FromMartin.ttf?raw=true";
+    src = fetchurl {
+      url = "https://github.com/enabling-languages/tai-languages/raw/b57a3ea4589af69bb8e87c6c4bb7cd367b52f0b7/ahom/.fonts/ttf/.original/AhomUnicode_FromMartin.ttf";
+      hash = "sha256-U1vcVf/VgXhvK1f2Iw2JKkd2EzJgz7KbHAwnUanX8n4=";
+    };
 
-  postFetch = "install -Dm644 $downloadedFile $out/share/fonts/truetype/AhomUnicode.ttf";
+    dontUnpack = true;
 
-  sha256 = "03h8ql9d5bzq4j521j0cz08ddf717bzim1nszh2aar6kn0xqnp9q";
+    installPhase = ''
+      runHook preInstall
 
-  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;
+      install -Dm644 $src $out/share/fonts/truetype/AhomUnicode.ttf
+
+      runHook postInstall
+    '';
+
+    meta = with lib; {
+      homepage = "https://github.com/enabling-languages/tai-languages";
+      description = "Unicode-compliant Tai Ahom font";
+      maintainers = with maintainers; [ mathnerd314 ];
+      license = licenses.ofl; # See font metadata
+      platforms = platforms.all;
+    };
   };
-};
 
-# TODO: package others (Khamti Shan, Tai Aiton, Tai Phake, and/or Assam Tai)
+  # TODO: package others (Khamti Shan, Tai Aiton, Tai Phake, and/or Assam Tai)
 
 }
diff --git a/nixpkgs/pkgs/data/fonts/takao/default.nix b/nixpkgs/pkgs/data/fonts/takao/default.nix
index dcbce858e011..353287d4d77b 100644
--- a/nixpkgs/pkgs/data/fonts/takao/default.nix
+++ b/nixpkgs/pkgs/data/fonts/takao/default.nix
@@ -1,20 +1,21 @@
-{ fetchzip, lib }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "takao";
   version = "00303.01";
-in
-fetchzip {
-  name = "takao-${version}";
-  url = "mirror://ubuntu/pool/universe/f/fonts-takao/fonts-takao_${version}.orig.tar.gz";
-  sha256 = "sha256-TlPq3iIv8vHlxYu5dkX/Lf6ediYKQaQ5uMbFvypQM/w=";
 
-  postFetch = ''
-    unpackDir="$TMPDIR/unpack"
-    mkdir "$unpackDir"
-    cd "$unpackDir"
-    tar xf "$downloadedFile" --strip-components=1
+  src = fetchurl {
+    url = "mirror://ubuntu/pool/universe/f/fonts-${pname}/fonts-${pname}_${version}.orig.tar.gz";
+    hash = "sha256-0wjHNv1yStp0q9D0WfwjgUYoUKcCrXA5jFO8PEVgq5k=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/fonts
     cp *.ttf $out/share/fonts
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/tamsyn/default.nix b/nixpkgs/pkgs/data/fonts/tamsyn/default.nix
index 6f0886e1d971..64955efd62e8 100644
--- a/nixpkgs/pkgs/data/fonts/tamsyn/default.nix
+++ b/nixpkgs/pkgs/data/fonts/tamsyn/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fontforge, mkfontscale }:
+{ lib, stdenv, fetchurl, fontforge, xorg }:
 
 let
   version = "1.11";
@@ -11,7 +11,7 @@ in stdenv.mkDerivation {
     sha256 = "0kpjzdj8sv5871b8827mjgj9dswk75h94jj5iia2bds18ih1pglp";
    };
 
-  nativeBuildInputs = [ fontforge mkfontscale ];
+  nativeBuildInputs = [ fontforge xorg.mkfontscale ];
 
   unpackPhase = ''
     tar -xzf $src --strip-components=1
diff --git a/nixpkgs/pkgs/data/fonts/tamzen/default.nix b/nixpkgs/pkgs/data/fonts/tamzen/default.nix
index 80212a14aebf..f589455e9811 100644
--- a/nixpkgs/pkgs/data/fonts/tamzen/default.nix
+++ b/nixpkgs/pkgs/data/fonts/tamzen/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, mkfontscale, lib, stdenv }:
+{ fetchFromGitHub, xorg, lib, stdenv }:
 
 stdenv.mkDerivation rec {
   pname = "tamzen-font";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "00x5fipzqimglvshhqwycdhaqslbvn3rl06jnswhyxfvz16ymj7s";
   };
 
-  nativeBuildInputs = [ mkfontscale ];
+  nativeBuildInputs = [ xorg.mkfontscale ];
 
   installPhase = ''
     install -m 644 -D otb/*.otb pcf/*.pcf -t "$out/share/fonts/misc"
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Bitmapped programming font based on Tamsyn";
     longDescription = ''
-    Tamzen is a monospace bitmap font. It is programatically forked
+    Tamzen is a monospace bitmap font. It is programmatically forked
     from Tamsyn version 1.11, which backports glyphs from older
     versions while deleting deliberately empty glyphs to allow
     secondary/fallback fonts to provide real glyphs at those codepoints.
diff --git a/nixpkgs/pkgs/data/fonts/tenderness/default.nix b/nixpkgs/pkgs/data/fonts/tenderness/default.nix
index 09ea566e7382..9149c081d493 100644
--- a/nixpkgs/pkgs/data/fonts/tenderness/default.nix
+++ b/nixpkgs/pkgs/data/fonts/tenderness/default.nix
@@ -1,27 +1,32 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
 let
   majorVersion = "0";
   minorVersion = "601";
-  pname = "tenderness";
 in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "tenderness";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-bwJKW+rY7/r2pBCSA6HYlaRMsI/U8UdW2vV4tmYuJww=";
+    stripRoot = false;
+  };
 
-fetchzip {
-  name = "${pname}-font-${majorVersion}.${minorVersion}";
+  installPhase = ''
+    runHook preInstall
 
-  url = "http://dotcolon.net/DL/font/${pname}_${majorVersion}${minorVersion}.zip";
-  sha256 = "0d88l5mzq0k63zsmb8d5w3hfqxy04vpv4j0j8nmj1xv6kikhhybh";
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
 
-  postFetch = ''
-    mkdir -p $out/share/fonts/opentype/${pname}
-    unzip -j $downloadedFile \*.otf  -d $out/share/fonts/opentype/${pname}
+    runHook postInstall
   '';
 
   meta = with lib; {
-    homepage = "http://dotcolon.net/font/${pname}/";
+    homepage = "http://dotcolon.net/font/${finalAttrs.pname}/";
     description = "Serif font designed by Sora Sagano with old-style figures";
     platforms = platforms.all;
-    maintainers = with maintainers; [ leenaars ];
+    maintainers = with maintainers; [ leenaars minijackson ];
     license = licenses.ofl;
   };
-}
+})
diff --git a/nixpkgs/pkgs/data/fonts/terminus-font-ttf/default.nix b/nixpkgs/pkgs/data/fonts/terminus-font-ttf/default.nix
index 3eca29882d80..2cd5da73d84d 100644
--- a/nixpkgs/pkgs/data/fonts/terminus-font-ttf/default.nix
+++ b/nixpkgs/pkgs/data/fonts/terminus-font-ttf/default.nix
@@ -1,14 +1,16 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  version = "4.49.1";
-in fetchzip {
-  name = "terminus-font-ttf-${version}";
+stdenvNoCC.mkDerivation rec {
+  pname = "terminus-font-ttf";
+  version = "4.49.3";
 
-  url = "https://files.ax86.net/terminus-ttf/files/${version}/terminus-ttf-${version}.zip";
+  src = fetchzip {
+    url = "https://files.ax86.net/terminus-ttf/files/${version}/terminus-ttf-${version}.zip";
+    hash = "sha256-dK7MH4I1RhsIGzcnRA+7f3P5oi9B63RA+uASVDNtxNI=";
+  };
 
-  postFetch = ''
-    unzip -j $downloadedFile
+  installPhase = ''
+    runHook preInstall
 
     for i in *.ttf; do
       local destname="$(echo "$i" | sed -E 's|-[[:digit:].]+\.ttf$|.ttf|')"
@@ -16,9 +18,9 @@ in fetchzip {
     done
 
     install -Dm 644 COPYING "$out/share/doc/terminus-font-ttf/COPYING"
-  '';
 
-  sha256 = "sha256-UaTnCamIRN/3xZsYt5nYzvykXQ3ri94a047sWOJ2RfU=";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "A clean fixed width TTF font";
diff --git a/nixpkgs/pkgs/data/fonts/terminus-font/default.nix b/nixpkgs/pkgs/data/fonts/terminus-font/default.nix
index 9ccf0371f192..5b405c12405f 100644
--- a/nixpkgs/pkgs/data/fonts/terminus-font/default.nix
+++ b/nixpkgs/pkgs/data/fonts/terminus-font/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, python3
-, bdftopcf, mkfontscale
+, bdftopcf, xorg
 }:
 
 stdenv.mkDerivation rec {
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   patches = [ ./SOURCE_DATE_EPOCH-for-otb.patch ];
 
   nativeBuildInputs =
-    [ python3 bdftopcf mkfontscale ];
+    [ python3 bdftopcf xorg.mkfontscale ];
 
   enableParallelBuilding = true;
 
@@ -24,6 +24,9 @@ stdenv.mkDerivation rec {
   '';
 
   installTargets = [ "install" "install-otb" "fontdir" ];
+  # fontdir depends on the previous two targets, but this is not known
+  # to make, so we need to disable parallelism:
+  enableParallelInstalling = false;
 
   meta = with lib; {
     description = "A clean fixed width font";
@@ -39,7 +42,7 @@ stdenv.mkDerivation rec {
       16x32. The styles are normal and bold (except for 6x12), plus
       EGA/VGA-bold for 8x14 and 8x16.
     '';
-    homepage = "http://terminus-font.sourceforge.net/";
+    homepage = "https://terminus-font.sourceforge.net/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ astsmtl ];
   };
diff --git a/nixpkgs/pkgs/data/fonts/tewi/default.nix b/nixpkgs/pkgs/data/fonts/tewi/default.nix
index 1cf31b5affe7..3e68042631c7 100644
--- a/nixpkgs/pkgs/data/fonts/tewi/default.nix
+++ b/nixpkgs/pkgs/data/fonts/tewi/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, python3
-, bdftopcf, mkfontscale
-, libfaketime, fonttosfnt
+, bdftopcf, xorg
+, libfaketime,
 }:
 
 stdenv.mkDerivation rec {
@@ -15,8 +15,8 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs =
-    [ python3 bdftopcf mkfontscale
-      libfaketime fonttosfnt
+    [ python3 bdftopcf xorg.mkfontscale
+      libfaketime xorg.fonttosfnt
     ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/data/fonts/tex-gyre/default.nix b/nixpkgs/pkgs/data/fonts/tex-gyre/default.nix
index 6ce5bd207862..c0ec9ee75202 100644
--- a/nixpkgs/pkgs/data/fonts/tex-gyre/default.nix
+++ b/nixpkgs/pkgs/data/fonts/tex-gyre/default.nix
@@ -28,7 +28,7 @@ let
       # 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 ];
+      maintainers = with maintainers; [ ];
       platforms = platforms.all;
     };
   };
diff --git a/nixpkgs/pkgs/data/fonts/the-neue-black/default.nix b/nixpkgs/pkgs/data/fonts/the-neue-black/default.nix
new file mode 100644
index 000000000000..3288925464fe
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/the-neue-black/default.nix
@@ -0,0 +1,33 @@
+{ lib, fetchzip, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "the-neue-black";
+  version = "1.007";
+
+  src = fetchzip {
+    url = "https://github.com/theleagueof/the-neue-black/releases/download/${finalAttrs.version}/TheNeueBlack-${finalAttrs.version}.tar.xz";
+    hash = "sha256-AsB6w1000xdl+pOPDXqqzQhru1T/VD0hIJ4gFec7mU4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/truetype $src/static/TTF/*.ttf
+    install -D -m444 -t $out/share/fonts/opentype $src/static/OTF/*.otf
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Tré Seals’ first open-source font, a typeface based on the Chicago Freedom Movement";
+    longDescription = ''
+      The open-source release of The Neue Black is in partnership with designer
+      Tré Seals of Vocal Type Co. The Neue Black is a display sans serif with a
+      robust character set that has over 25 ligatures and various inktrap
+      alternates.
+    '';
+    homepage = "https://www.theleagueofmoveabletype.com/the-neue-black";
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ minijackson ];
+  };
+})
diff --git a/nixpkgs/pkgs/data/fonts/theano/default.nix b/nixpkgs/pkgs/data/fonts/theano/default.nix
index 360d32f3e625..3a3107e13666 100644
--- a/nixpkgs/pkgs/data/fonts/theano/default.nix
+++ b/nixpkgs/pkgs/data/fonts/theano/default.nix
@@ -1,20 +1,25 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "theano";
   version = "2.0";
-in fetchzip rec {
-  name = "theano-${version}";
 
-  url = "https://github.com/akryukov/theano/releases/download/v${version}/theano-${version}.otf.zip";
+  src = fetchzip {
+    url = "https://github.com/akryukov/theano/releases/download/v${version}/theano-${version}.otf.zip";
+    stripRoot = false;
+    hash = "sha256-9wnwHcRHB+AToOvGwZSXvHkQ8hqMd7Sdl26Ty/IwbPw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  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}"
-  '';
+    mkdir -p $out/share/doc/${pname}-${version}
+    cp *.otf $out/share/fonts/opentype
+    cp *.txt $out/share/doc/${pname}-${version}
 
-  sha256 = "1my1symb7k80ys33iphsxvmf6432wx6vjdnxhzhkgrang1rhx1h8";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/akryukov/theano";
diff --git a/nixpkgs/pkgs/data/fonts/tibetan-machine/default.nix b/nixpkgs/pkgs/data/fonts/tibetan-machine/default.nix
index 67393a9c4ab9..4731bfcd365d 100644
--- a/nixpkgs/pkgs/data/fonts/tibetan-machine/default.nix
+++ b/nixpkgs/pkgs/data/fonts/tibetan-machine/default.nix
@@ -1,16 +1,21 @@
-{ fetchzip, lib }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "tibetan-machine";
   version = "1.901b";
-in
-fetchzip {
-  name = "tibetan-machine-${version}";
-  url = "mirror://debian/pool/main/f/fonts-tibetan-machine/fonts-tibetan-machine_${version}.orig.tar.bz2";
-  sha256 = "sha256-A+RgpFLsP4iTzl0PMRHaNzWGbDR5Qa38lRegNJ96ULo=";
 
-  postFetch = ''
+  src = fetchurl {
+    url = "mirror://debian/pool/main/f/fonts-${pname}/fonts-${pname}_${version}.orig.tar.bz2";
+    hash = "sha256-c/1Sgv7xKHpsJGjY9ZY2qOJHShGHL1robvphFNJOt5w=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/fonts
-    tar xf $downloadedFile --strip-components=1 -C $out/share/fonts ttf-tmuni-${version}/TibMachUni-${version}.ttf
+    cp *.ttf $out/share/fonts
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/times-newer-roman/default.nix b/nixpkgs/pkgs/data/fonts/times-newer-roman/default.nix
index 4bfe358d13ed..840e75c710b3 100644
--- a/nixpkgs/pkgs/data/fonts/times-newer-roman/default.nix
+++ b/nixpkgs/pkgs/data/fonts/times-newer-roman/default.nix
@@ -1,19 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation {
+  pname = "times-newer-roman";
   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";
+  src = fetchzip {
+    url = "https://web.archive.org/web/20210609022835/https://timesnewerroman.com/assets/TimesNewerRoman.zip";
+    stripRoot = false;
+    hash = "sha256-wO4rxyJNQyhRLpswCYKXdeiXy5G+iWyxulYCHZb60QM=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
     mkdir -p $out/share/fonts/opentype
-    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
-  '';
+    cp *.otf $out/share/fonts/opentype
 
-  hash = "sha256-Hx59RYLLwfimEQjEEes0lCpg6iql46DFwhQ7kVGiEzc=";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "A font that looks just like Times New Roman, except each character is 5-10% wider";
diff --git a/nixpkgs/pkgs/data/fonts/tipa/default.nix b/nixpkgs/pkgs/data/fonts/tipa/default.nix
index 6cebe2120fec..a0cc7106afe6 100644
--- a/nixpkgs/pkgs/data/fonts/tipa/default.nix
+++ b/nixpkgs/pkgs/data/fonts/tipa/default.nix
@@ -1,10 +1,11 @@
-{ stdenv, fetchurl }:
+{ lib, stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "tipa-1.3";
+stdenv.mkDerivation rec {
+  pname = "tipa";
+  version = "1.3";
 
   src = fetchurl {
-    url = "mirror://debian/pool/main/t/tipa/tipa_1.3.orig.tar.gz";
+    url = "mirror://debian/pool/main/t/tipa/${pname}_${version}.orig.tar.gz";
     sha256 = "1q1sisxdcd2zd9b7mnagr2mxf9v3n1r4s5892zx5ly4r0niyya9m";
   };
 
@@ -22,6 +23,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Phonetic font for TeX";
+    license = lib.licenses.lppl13c;
   };
 }
 
diff --git a/nixpkgs/pkgs/data/fonts/tlwg/default.nix b/nixpkgs/pkgs/data/fonts/tlwg/default.nix
index 9c03bbb162f5..4b0f780a38b5 100644
--- a/nixpkgs/pkgs/data/fonts/tlwg/default.nix
+++ b/nixpkgs/pkgs/data/fonts/tlwg/default.nix
@@ -1,22 +1,20 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, fontforge }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, autoconf-archive, fontforge }:
 
 stdenv.mkDerivation rec {
   pname = "tlwg";
-  version = "0.6.4";
+  version = "0.7.3";
 
   src = fetchFromGitHub {
     owner = "tlwg";
     repo = "fonts-tlwg";
     rev = "v${version}";
-    sha256 = "13bx98ygyyizb15ybdv3856lkxhx1fss8f7aiqmp0lk9zgw4mqyk";
+    sha256 = "hWiH5KJnYTdcrm+Kzn9HUQry8ry3SKzjA6/0536kCLQ=";
   };
 
-  nativeBuildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook autoconf-archive ];
 
   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";
diff --git a/nixpkgs/pkgs/data/fonts/tt2020/default.nix b/nixpkgs/pkgs/data/fonts/tt2020/default.nix
index c92e86032733..63b4e1834a3b 100644
--- a/nixpkgs/pkgs/data/fonts/tt2020/default.nix
+++ b/nixpkgs/pkgs/data/fonts/tt2020/default.nix
@@ -1,20 +1,23 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
   pname = "TT2020";
-  version = "2020-01-05";
-in
-fetchFromGitHub {
-  name = "${pname}-${version}";
-  owner = "ctrlcctrlv";
-  repo = pname;
-  rev = "2b418fab5f99f72a18b3b2e7e2745ac4e03aa612";
-  sha256 = "1z0nizvs0gp0xl7pn6xcjvsysxhnfm7aqfamplkyvya3fxvhncds";
+  version = "0.2.1";
+
+  src = fetchFromGitHub {
+    owner = "ctrlcctrlv";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-eAJzaookHcQ/7QNq/HUKA/O2liyKynJNdo6QuZ1Bv6k=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar xf $downloadedFile --strip=1
     install -Dm644 -t $out/share/fonts/truetype dist/*.ttf
     install -Dm644 -t $out/share/fonts/woff2 dist/*.woff2
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/ttf-bitstream-vera/default.nix b/nixpkgs/pkgs/data/fonts/ttf-bitstream-vera/default.nix
index 95e4ce2a52ab..e71888969f61 100644
--- a/nixpkgs/pkgs/data/fonts/ttf-bitstream-vera/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ttf-bitstream-vera/default.nix
@@ -1,20 +1,21 @@
-{ lib, fetchzip }:
-let
+{ lib, stdenvNoCC, fetchurl }:
+
+stdenvNoCC.mkDerivation rec {
   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";
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
+    hash = "sha256-21sn33u7MYA269t1rNPpjxvW62YI+3CmfUeM0kPReNw=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar -xjf $downloadedFile --strip-components=1
     install -m444 -Dt $out/share/fonts/truetype *.ttf
-  '';
 
-  sha256 = "179hal4yi3367jg8rsvqx6h2w4s0kn9zzrv8c47sslyg28g39s4m";
+    runHook postInstall
+  '';
 
-  meta = {
-  };
+  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
index 871bfb0099b2..673d946a1e9a 100644
--- a/nixpkgs/pkgs/data/fonts/ttf-envy-code-r/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ttf-envy-code-r/default.nix
@@ -1,20 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
   pname = "ttf-envy-code-r";
   version = "PR7";
-in fetchzip {
-  name = "${pname}-0.${version}";
 
-  url = "http://download.damieng.com/fonts/original/EnvyCodeR-${version}.zip";
+  src = fetchzip {
+    url = "http://download.damieng.com/fonts/original/EnvyCodeR-${version}.zip";
+    hash = "sha256-pJqC/sbNjxEwbVf2CVoXMBI5zvT3DqzRlKSqFT8I2sM=";
+  };
 
-  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}"
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "0x0r07nax68cmz7490x2crzzgdg4j8fg63wppcmjqm0230bggq2z";
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+    install -Dm644 *.txt -t $out/share/doc/${pname}
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://damieng.com/blog/tag/envy-code-r";
diff --git a/nixpkgs/pkgs/data/fonts/ttf-tw-moe/default.nix b/nixpkgs/pkgs/data/fonts/ttf-tw-moe/default.nix
index bf52d07c52e9..85b2ec1ce787 100644
--- a/nixpkgs/pkgs/data/fonts/ttf-tw-moe/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ttf-tw-moe/default.nix
@@ -1,18 +1,21 @@
-{ lib, fetchzip }:
-let
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "ttf-tw-moe";
   version = "2020-11-14";
-in
-fetchzip {
-  name = "ttf-tw-moe";
 
-  url = "https://github.com/Jiehong/TW-fonts/archive/${version}.zip";
+  src = fetchzip {
+    url = "https://github.com/Jiehong/TW-fonts/archive/${version}.zip";
+    hash = "sha256-9gy8xO93ViIPmpg1du0DbXVCR2FowourLH8nP9d6HK0=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile TW-fonts-${version}/\*.ttf -d $out/share/fonts/truetype
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "1jd3gjjfa4vadp6d499n0irz5b22z611kd7q5qgqf6s2fwbxfhiz";
+    install -Dm644 *.ttf -t $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "http://www.moe.gov.tw/";
diff --git a/nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix b/nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix
index ae1d3f9927fb..2641fc1bc940 100644
--- a/nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix
+++ b/nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "twemoji-color-font";
-  version = "13.1.0";
+  version = "14.0.2";
 
   # We fetch the prebuilt font because building it takes 1.5 hours on hydra.
   # Relevant issue: https://github.com/NixOS/nixpkgs/issues/97871
   src = fetchurl {
     url = "https://github.com/eosrei/twemoji-color-font/releases/download/v${version}/TwitterColorEmoji-SVGinOT-Linux-${version}.tar.gz";
-    sha256 = "sha256-V8DWUUAK+HLDPcq3izPs174PfUnaSeLByDpZwhUIX5Q=";
+    sha256 = "sha256-aCbiHqCNxd8myIeuTlYEaYfg9JCd+MAsc94FcUoDU8E=";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix b/nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix
index 92c01b427e2d..cb9021d68f3f 100644
--- a/nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix
+++ b/nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix
@@ -14,18 +14,18 @@
 }:
 
 let
-  version = "14.0.0";
+  version = "14.1.2";
 
   twemojiSrc = fetchFromGitHub {
     name = "twemoji";
-    owner = "twitter";
+    owner = "jdecked";
     repo = "twemoji";
     rev = "v${version}";
-    sha256 = "sha256-ar6rBYudMIMngMVe/IowDV3X8wA77JBA6g0x/M7YLMg=";
+    sha256 = "sha256-UQ4PwO4D1kw7JOMf6xSaRBfT822KwrvWBPDmaQjkRVQ=";
   };
 
   pythonEnv =
-    python3.withPackages (p: [ p.fonttools p.nototools ]);
+    python3.withPackages (ps: with ps; [ fonttools nototools ]);
 
 in
 stdenv.mkDerivation rec {
@@ -94,13 +94,12 @@ stdenv.mkDerivation rec {
   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.
+      A bitmap color emoji font built from Twitter's Twemoji emoji set
+      with support for ZWJ, skin tone diversity and country flags.
 
       This font uses Google’s CBDT format making it work on Android and Linux graphical stack.
     '';
-    homepage = "https://twemoji.twitter.com/";
+    homepage = "https://github.com/jdecked/twemoji";
     # In noto-emoji-fonts source
     ## noto-emoji code is in ASL 2.0 license
     ## Emoji fonts are under OFL license
@@ -112,6 +111,6 @@ stdenv.mkDerivation rec {
     # 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 ];
+    maintainers = with maintainers; [ emily ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/u001/default.nix b/nixpkgs/pkgs/data/fonts/u001/default.nix
index fc2f3a486369..c50e972a4d69 100644
--- a/nixpkgs/pkgs/data/fonts/u001/default.nix
+++ b/nixpkgs/pkgs/data/fonts/u001/default.nix
@@ -10,8 +10,6 @@ stdenvNoCC.mkDerivation rec {
     stripRoot = false;
   };
 
-  dontBuild = true;
-
   installPhase = ''
     runHook preInstall
 
diff --git a/nixpkgs/pkgs/data/fonts/ubuntu-font-family/default.nix b/nixpkgs/pkgs/data/fonts/ubuntu-font-family/default.nix
index 0f1d5b5a4cc0..331e34690a5e 100644
--- a/nixpkgs/pkgs/data/fonts/ubuntu-font-family/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ubuntu-font-family/default.nix
@@ -1,26 +1,32 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-fetchzip {
-  name = "ubuntu-font-family-0.83";
+stdenvNoCC.mkDerivation rec {
+  pname = "ubuntu-font-family";
+  version = "0.83";
 
-  url = "https://assets.ubuntu.com/v1/fad7939b-ubuntu-font-family-0.83.zip";
+  src = fetchzip {
+    url = "https://assets.ubuntu.com/v1/fad7939b-ubuntu-font-family-${version}.zip";
+    hash = "sha256-FAg1xn8Gcbwmuvqtg9SquSet4oTT9nqE+Izeq7ZMVcA=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/ubuntu
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "090y665h4kf2bi623532l6wiwkwnpd0xds0jr7560xwfwys1hiqh";
+    mkdir -p $out/share/fonts/ubuntu
+    mv *.ttf $out/share/fonts/ubuntu
+
+    runHook postInstall
+  '';
 
-  meta = {
+  meta = with lib; {
     description = "Ubuntu Font Family";
     longDescription = "The Ubuntu typeface has been specially
     created to complement the Ubuntu tone of voice. It has a
     contemporary style and contains characteristics unique to
     the Ubuntu brand that convey a precise, reliable and free attitude.";
     homepage = "http://font.ubuntu.com/";
-    license = lib.licenses.free;
-    platforms = lib.platforms.all;
-    maintainers = [ lib.maintainers.antono ];
+    license = licenses.free;
+    platforms = platforms.all;
+    maintainers = [ maintainers.antono ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix b/nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix
index 7bb9930ccfca..e9d78dd03a7c 100644
--- a/nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, bdftopcf
-, libfaketime, fonttosfnt, mkfontscale
+, libfaketime, xorg
 }:
 
 stdenv.mkDerivation {
@@ -24,8 +24,8 @@ stdenv.mkDerivation {
   sourceRoot = ".";
 
   nativeBuildInputs =
-    [ bdftopcf libfaketime fonttosfnt
-      mkfontscale
+    [ bdftopcf libfaketime xorg.fonttosfnt
+      xorg.mkfontscale
     ];
 
   buildPhase = ''
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
index 4733bcf04e72..27933b5b139d 100644
--- a/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
@@ -1,16 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "ultimate-oldschool-pc-font-pack";
   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= ''
+  src = fetchzip {
+    url = "https://int10h.org/oldschool-pc-fonts/download/oldschool_pc_font_pack_v${version}_linux.zip";
+    stripRoot = false;
+    hash = "sha256-54U8tZzvivTSOgmGesj9QbIgkSTm9w4quMhsuEc0Xy4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/fonts/truetype
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    cp */*.ttf $out/share/fonts/truetype
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/undefined-medium/default.nix b/nixpkgs/pkgs/data/fonts/undefined-medium/default.nix
index 5773aa94d5b5..3e3087c6abc8 100644
--- a/nixpkgs/pkgs/data/fonts/undefined-medium/default.nix
+++ b/nixpkgs/pkgs/data/fonts/undefined-medium/default.nix
@@ -1,16 +1,21 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-fetchzip rec {
-  name = "undefined-medium-1.0";
+stdenvNoCC.mkDerivation rec {
+  pname = "undefined-medium";
+  version = "1.1";
 
-  url = "https://github.com/andirueckel/undefined-medium/archive/v1.0.zip";
+  src = fetchzip {
+    url = "https://github.com/andirueckel/undefined-medium/archive/v1.1.zip";
+    hash = "sha256-iquxt7lo92y4AQZf23Ij5Qzg2U7buL3kGLksQSR6vac=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile ${name}/fonts/otf/\*.otf -d $out/share/fonts/opentype
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "1wa04jzbffshwcxm705yb5wja8wakn8j7fvim1mlih2z1sqw0njk";
+    install -Dm644 fonts/otf/*.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     homepage = "https://undefined-medium.com/";
diff --git a/nixpkgs/pkgs/data/fonts/unfonts-core/default.nix b/nixpkgs/pkgs/data/fonts/unfonts-core/default.nix
index 7f01d5531e15..5756a948f698 100644
--- a/nixpkgs/pkgs/data/fonts/unfonts-core/default.nix
+++ b/nixpkgs/pkgs/data/fonts/unfonts-core/default.nix
@@ -1,16 +1,20 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
+stdenvNoCC.mkDerivation rec {
   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
+  src = fetchurl {
+    url = "https://kldp.net/unfonts/release/2607-un-fonts-core-${version}.tar.gz";
+    hash = "sha256-OwpydPmqt+jw8ZOMAacOFYF2bVG0lLoUVoPzesVXkY4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     install -m444 -Dt $out/share/fonts/truetype *.ttf
+
+    runHook postInstall
   '';
 
   meta = with lib; {
@@ -20,7 +24,7 @@ in fetchzip {
       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
index fea90e8b8e76..1239b1238831 100644
--- a/nixpkgs/pkgs/data/fonts/uni-vga/default.nix
+++ b/nixpkgs/pkgs/data/fonts/uni-vga/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, perl, kbd, bdftopcf
-, libfaketime, fonttosfnt, mkfontscale
+, libfaketime, xorg
 }:
 
 stdenv.mkDerivation {
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
 
   nativeBuildInputs =
     [ bdftopcf libfaketime
-      fonttosfnt mkfontscale
+      xorg.fonttosfnt xorg.mkfontscale
     ] ++ lib.optionals stdenv.isLinux [ perl kbd ];
 
   postPatch = "patchShebangs .";
diff --git a/nixpkgs/pkgs/data/fonts/unifont/default.nix b/nixpkgs/pkgs/data/fonts/unifont/default.nix
index b8a780964661..dda2b3f5bcb4 100644
--- a/nixpkgs/pkgs/data/fonts/unifont/default.nix
+++ b/nixpkgs/pkgs/data/fonts/unifont/default.nix
@@ -1,22 +1,22 @@
-{ lib, stdenv, fetchurl, mkfontscale
-, libfaketime, fonttosfnt
+{ lib, stdenv, fetchurl, xorg
+, libfaketime
 }:
 
 stdenv.mkDerivation rec {
   pname = "unifont";
-  version = "14.0.04";
+  version = "15.0.04";
 
   ttf = fetchurl {
     url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.ttf";
-    hash = "sha256-IR0d3dxWZRHbJUx0bYPfd7ShubJUnN/+Cj6QHkbu/qg=";
+    hash = "sha256-kkSbEvWBrvcnBgHDdKJjpSYF6BJDEwmYSxVQbPkQ6so=";
   };
 
   pcf = fetchurl {
     url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.pcf.gz";
-    hash = "sha256-Q5lR7hX4+P+Q9fVDjw9GtLGqUIslsKOWnn8je85fH+0=";
+    hash = "sha256-rdzJuOkXYojgm5VfpshtJuCJYM0/iS+HnWMXEDsLQPg=";
   };
 
-  nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];
+  nativeBuildInputs = [ libfaketime xorg.fonttosfnt xorg.mkfontscale ];
 
   dontUnpack = true;
 
diff --git a/nixpkgs/pkgs/data/fonts/unifont_upper/default.nix b/nixpkgs/pkgs/data/fonts/unifont_upper/default.nix
index 1020c2f1f132..892ed5be2400 100644
--- a/nixpkgs/pkgs/data/fonts/unifont_upper/default.nix
+++ b/nixpkgs/pkgs/data/fonts/unifont_upper/default.nix
@@ -1,19 +1,23 @@
-{ lib, fetchurl }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
-  version = "14.0.04";
-in fetchurl rec {
-  name = "unifont_upper-${version}";
+stdenvNoCC.mkDerivation rec {
+  pname = "unifont_upper";
+  version = "15.0.04";
 
-  url = "mirror://gnu/unifont/unifont-${version}/${name}.ttf";
+  src = fetchurl {
+    url = "mirror://gnu/unifont/unifont-${version}/${pname}-${version}.ttf";
+    hash = "sha256-7iRcyKfGpv2rjVLPRNchxpXwj0KA5jlgDnCfG7byLLI=";
+  };
 
-  downloadToTemp = true;
+  dontUnpack = true;
 
-  recursiveHash = true;
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = "install -Dm644 $downloadedFile $out/share/fonts/truetype/unifont_upper.ttf";
+    install -Dm644 $src $out/share/fonts/truetype/unifont_upper.ttf
 
-  hash = "sha256-cNw+3Y/6h2TD6ZSaGO32NNyiTwCUSJsA3Q5W5/m+eLE=";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "Unicode font for glyphs above the Unicode Basic Multilingual Plane";
diff --git a/nixpkgs/pkgs/data/fonts/unscii/default.nix b/nixpkgs/pkgs/data/fonts/unscii/default.nix
index 5b4d2cb740fa..1b723cd313da 100644
--- a/nixpkgs/pkgs/data/fonts/unscii/default.nix
+++ b/nixpkgs/pkgs/data/fonts/unscii/default.nix
@@ -9,11 +9,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "unscii";
-  version = "1.1";
+  version = "2.1";
 
   src = fetchurl {
-    url = "http://pelulamu.net/${pname}/${pname}-${version}-src.tar.gz";
-    sha256 = "0qcxcnqz2nlwfzlrn115kkp3n8dd7593h762vxs6vfqm13i39lq1";
+    url = "http://viznut.fi/${pname}/${pname}-${version}-src.tar.gz";
+    sha256 = "0msvqrq7x36p76a2n5bzkadh95z954ayqa08wxd017g4jpa1a4jd";
   };
 
   nativeBuildInputs =
@@ -66,6 +66,6 @@ stdenv.mkDerivation rec {
     # version. The reduced version is public domain.
     license = "http://unifoundry.com/LICENSE.txt";
     maintainers = [ lib.maintainers.raskin ];
-    homepage = "http://pelulamu.net/unscii/";
+    homepage = "http://viznut.fi/unscii/";
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix b/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix
index a3c3f7b68aa7..f8006516e276 100644
--- a/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix
+++ b/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv, fetchurl, perl
-, bdftopcf, bdf2psf, mkfontdir
-, fonttosfnt
+, bdftopcf, bdf2psf, xorg
 , targetsDat  ? null
 , variantsDat ? null
 }:
@@ -17,7 +16,7 @@ stdenv.mkDerivation rec {
   # remove for version >1.3
   patches = [ ./determinism.patch ];
 
-  nativeBuildInputs = [ perl bdftopcf bdf2psf fonttosfnt mkfontdir ];
+  nativeBuildInputs = [ perl bdftopcf bdf2psf xorg.fonttosfnt xorg.mkfontdir ];
 
   # configure sizes, encodings and variants
   preConfigure =
diff --git a/nixpkgs/pkgs/data/fonts/vazir-code-font/default.nix b/nixpkgs/pkgs/data/fonts/vazir-code-font/default.nix
index 6702fd1b0220..6ba69b57feaf 100644
--- a/nixpkgs/pkgs/data/fonts/vazir-code-font/default.nix
+++ b/nixpkgs/pkgs/data/fonts/vazir-code-font/default.nix
@@ -1,20 +1,23 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
   pname = "vazir-code-font";
   version = "1.1.2";
-in fetchFromGitHub {
-  name = "${pname}-${version}";
 
-  owner = "rastikerdar";
-  repo = "vazir-code-font";
-  rev = "v${version}";
+  src = fetchFromGitHub {
+    owner = "rastikerdar";
+    repo = "vazir-code-font";
+    rev = "v${version}";
+    hash = "sha256-iBojse3eHr4ucZtPfpkN+mmO6sEExY8WcAallyPgMsI=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar xf $downloadedFile --strip=1
     find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/truetype {} \;
+
+    runHook postInstall
   '';
-  sha256 = "0ivwpn9xm2zwhwgg9mghyiy5v66cn4786w9j6rkff5cmzshv279r";
 
   meta = with lib; {
     homepage = "https://github.com/rastikerdar/vazir-code-font";
diff --git a/nixpkgs/pkgs/data/fonts/vazir-fonts/default.nix b/nixpkgs/pkgs/data/fonts/vazir-fonts/default.nix
index b8885298c084..d65b270c881f 100755
--- a/nixpkgs/pkgs/data/fonts/vazir-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/vazir-fonts/default.nix
@@ -1,20 +1,25 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
   pname = "vazir-fonts";
-  version = "32.0.0";
-in fetchFromGitHub {
-  name = "${pname}-${version}";
+  version = "33.003";
 
-  owner = "rastikerdar";
-  repo = "vazir-font";
-  rev = "v${version}";
+  src = fetchFromGitHub {
+    owner = "rastikerdar";
+    repo = "vazir-font";
+    rev = "v${version}";
+    hash = "sha256-C1UtfrRFzz0uv/hj8e7huXe4sNd5h7ozVhirWEAyXGg=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar xf $downloadedFile --strip=1
     find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/truetype {} \;
+
+    runHook postInstall
   '';
-  sha256 = "sha256-Uy8hgBtCcTLwXu9FkLN1WavUfP74Jf53ChxVGS3UBVM=";
 
   meta = with lib; {
     homepage = "https://github.com/rastikerdar/vazir-font";
diff --git a/nixpkgs/pkgs/data/fonts/vdrsymbols/default.nix b/nixpkgs/pkgs/data/fonts/vdrsymbols/default.nix
index 4b280df56441..5df82b31cfe5 100644
--- a/nixpkgs/pkgs/data/fonts/vdrsymbols/default.nix
+++ b/nixpkgs/pkgs/data/fonts/vdrsymbols/default.nix
@@ -1,15 +1,20 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchurl }:
 
-fetchzip {
-  name = "vdrsymbols-20100612";
+stdenvNoCC.mkDerivation rec {
+  pname = "vdrsymbols";
+  version = "20100612";
 
-  url = "http://andreas.vdr-developer.org/fonts/download/vdrsymbols-ttf-20100612.tgz";
+  src = fetchurl {
+    url = "http://andreas.vdr-developer.org/fonts/download/${pname}-ttf-${version}.tgz";
+    hash = "sha256-YxB+JcDkta5are+OQyP/WKDL0vllgn0m26bU9mQ3C/Q=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "0wpxns8zqic98c84j18dr4zmj092v07yq07vwwgzblr0rw9n6gzr";
+    install -Dm444 -t "$out/share/fonts/truetype" *.ttf
 
-  postFetch = ''
-    tar xvzf "$downloadedFile"
-    install -Dm444 -t "$out/share/fonts/truetype" */*.ttf
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/vegur/default.nix b/nixpkgs/pkgs/data/fonts/vegur/default.nix
index 2f03dac3914b..e03f25951b54 100644
--- a/nixpkgs/pkgs/data/fonts/vegur/default.nix
+++ b/nixpkgs/pkgs/data/fonts/vegur/default.nix
@@ -1,26 +1,32 @@
-{ lib, buildPackages, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
 let
-  version = "0.701";
-in fetchzip {
-  name = "vegur-font-${version}";
+  majorVersion = "0";
+  minorVersion = "701";
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "vegur";
+  version = "${majorVersion}.${minorVersion}";
 
-  # 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";
+  src = fetchzip {
+    url = "https://dotcolon.net/download/fonts/${finalAttrs.pname}_${majorVersion}${minorVersion}.zip";
+    hash = "sha256-sGb3mEb3g15ZiVCxEfAanly8zMUopLOOjw8W4qbXLPA=";
+    stripRoot = false;
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m444 -t $out/share/fonts/opentype $src/*.otf
 
-  postFetch = ''
-    ${buildPackages.rpmextract}/bin/rpmextract $downloadedFile
-    unzip vegur.zip
-    install -m444 -Dt $out/share/fonts/Vegur *.otf
+    runHook postInstall
   '';
-  sha256 = "0iisi2scq72lyj7pc1f36fhfjnm676n5byl4zaavhbxpdrbc6d1v";
 
   meta = with lib; {
     homepage = "http://dotcolon.net/font/vegur/";
     description = "A humanist sans serif font";
     platforms = platforms.all;
-    maintainers = [ maintainers.samueldr ];
+    maintainers = with maintainers; [ minijackson samueldr ];
     license = licenses.cc0;
   };
-}
+})
diff --git a/nixpkgs/pkgs/data/fonts/victor-mono/default.nix b/nixpkgs/pkgs/data/fonts/victor-mono/default.nix
index e351cea9fdb4..5c17ad653ebc 100644
--- a/nixpkgs/pkgs/data/fonts/victor-mono/default.nix
+++ b/nixpkgs/pkgs/data/fonts/victor-mono/default.nix
@@ -1,11 +1,8 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  version = "1.5.4";
-in
-fetchzip {
-  name = "victor-mono-${version}";
-  stripRoot = false;
+stdenvNoCC.mkDerivation rec {
+  pname = "victor-mono";
+  version = "1.5.5";
 
   # Upstream prefers we download from the website,
   # but we really insist on a more versioned resource.
@@ -14,19 +11,23 @@ fetchzip {
   # 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";
+  src = fetchzip {
+    url = "https://github.com/rubjo/victor-mono/raw/v${version}/public/VictorMonoAll.zip";
+    stripRoot = false;
+    hash = "sha256-l8XeKE9PtluiazZO0PXfkGCcnm5o+VZdL7NZ6w0tp80=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
     mkdir -p "$out/share/fonts/"
 
-    mv $out/OTF $out/share/fonts/opentype
-    mv $out/TTF $out/share/fonts/truetype
+    mv OTF $out/share/fonts/opentype
+    mv TTF $out/share/fonts/truetype
 
-    rm -r $out/{EOT,WOFF,WOFF2}
+    runHook postInstall
   '';
 
-  sha256 = "sha256-1si0d2lpuXaDcSc3giVMMMbZc/eKbHKU3wmwfYHZ8o0=";
-
   meta = with lib; {
     description = "Free programming font with cursive italics and ligatures";
     homepage = "https://rubjo.github.io/victor-mono";
diff --git a/nixpkgs/pkgs/data/fonts/vollkorn/default.nix b/nixpkgs/pkgs/data/fonts/vollkorn/default.nix
index 6c5836da5b05..deeeac19c939 100644
--- a/nixpkgs/pkgs/data/fonts/vollkorn/default.nix
+++ b/nixpkgs/pkgs/data/fonts/vollkorn/default.nix
@@ -1,22 +1,26 @@
-{ lib, stdenv, fetchzip }:
-let
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
   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 = ''
+  src = fetchzip {
+    url = "http://vollkorn-typeface.com/download/vollkorn-${builtins.replaceStrings ["."] ["-"] version}.zip";
+    stripRoot = false;
+    hash = "sha256-oG79GgCwCavbMFAPakza08IPmt13Gwujrkc/NKTai7g=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     mkdir -pv $out/share/{doc/${pname}-${version},fonts/{opentype,truetype,WOFF,WOFF2}}
-    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
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/fonts/weather-icons/default.nix b/nixpkgs/pkgs/data/fonts/weather-icons/default.nix
index a979dca44774..00f9cebac121 100644
--- a/nixpkgs/pkgs/data/fonts/weather-icons/default.nix
+++ b/nixpkgs/pkgs/data/fonts/weather-icons/default.nix
@@ -1,18 +1,21 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "weather-icons";
   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=";
+  src = fetchzip {
+    url = "https://github.com/erikflowers/weather-icons/archive/refs/tags/${version}.zip";
+    hash = "sha256-0ZFH2awUo4BkTpK1OsWZ4YKczJHo+HHM6ezGBJAmT+U=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile weather-icons-${version}/_docs/font-source/weathericons-regular.otf -d $out/share/fonts/opentype
-  '';
+  installPhase = ''
+    runHook preInstall
 
+    install -Dm644 _docs/font-source/weathericons-regular.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "Weather Icons";
diff --git a/nixpkgs/pkgs/data/fonts/whatsapp-emoji/default.nix b/nixpkgs/pkgs/data/fonts/whatsapp-emoji/default.nix
new file mode 100644
index 000000000000..5e34282891b9
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/whatsapp-emoji/default.nix
@@ -0,0 +1,46 @@
+{ stdenvNoCC
+, lib
+, fetchFromGitHub
+, imagemagick
+, nix-update-script
+, pngquant
+, python3Packages
+, which
+, zopfli
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "whatsapp-emoji-linux";
+  version = "2.23.2.72-1";
+
+  src = fetchFromGitHub {
+    rev = "refs/tags/${version}";
+    owner = "dmlls";
+    repo = "whatsapp-emoji-linux";
+    hash = "sha256-dwX+y8jCpR+SyiH13Os9VeXLDwmAYB7ARW2lAMl/7RE=";
+  };
+
+  makeFlags = [
+    "PREFIX=$(out)"
+  ];
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [
+    imagemagick
+    pngquant
+    python3Packages.nototools
+    which
+    zopfli
+  ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "WhatsApp Emoji for GNU/Linux";
+    homepage = "https://github.com/dmlls/whatsapp-emoji-linux";
+    maintainers = [ lib.maintainers.lucasew ];
+    sourceProvenance = [ lib.sourceTypes.fromSource ];
+    license = lib.licenses.unfree;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/work-sans/default.nix b/nixpkgs/pkgs/data/fonts/work-sans/default.nix
index 49722fc3e01a..07c5704b5171 100644
--- a/nixpkgs/pkgs/data/fonts/work-sans/default.nix
+++ b/nixpkgs/pkgs/data/fonts/work-sans/default.nix
@@ -1,19 +1,21 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "work-sans";
   version = "2.010";
-in
-fetchzip {
-  name = "work-sans-${version}";
 
-  url = "https://github.com/weiweihuanghuang/Work-Sans/archive/refs/tags/v${version}.zip";
+  src = fetchzip {
+    url = "https://github.com/weiweihuanghuang/Work-Sans/archive/refs/tags/v${version}.zip";
+    hash = "sha256-cedcx3CpcPZk3jxxIs5Bz78dxZNtOemvXnUBO6zl2dw=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile "*/fonts/*.ttf" -d $out/share/fonts/opentype
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "sha256-S4O5EoKY4w/p+MHeHRCmPyQRAOUfEwNiETxMgNcsrws=";
+    install -Dm644 fonts/variable/*.ttf fonts/static/TTF/*.ttf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "A grotesque sans";
diff --git a/nixpkgs/pkgs/data/fonts/wqy-microhei/default.nix b/nixpkgs/pkgs/data/fonts/wqy-microhei/default.nix
index f7d3b0333c5e..7c410e7d00e7 100644
--- a/nixpkgs/pkgs/data/fonts/wqy-microhei/default.nix
+++ b/nixpkgs/pkgs/data/fonts/wqy-microhei/default.nix
@@ -1,16 +1,21 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchurl }:
 
-fetchzip rec {
-  name = "wqy-microhei-0.2.0-beta";
+stdenvNoCC.mkDerivation rec {
+  pname = "wqy-microhei";
+  version = "0.2.0";
 
-  url = "mirror://sourceforge/wqy/${name}.tar.gz";
+  src = fetchurl {
+    url = "mirror://sourceforge/wqy/${pname}-${version}-beta.tar.gz";
+    hash = "sha256-KAKsgCOqNqZupudEWFTjoHjTd///QhaTQb0jeHH3IT4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar -xzf $downloadedFile --strip-components=1
     install -Dm644 wqy-microhei.ttc $out/share/fonts/wqy-microhei.ttc
-  '';
 
-  sha256 = "0i5jh7mkp371fxqmsvn7say075r641yl4hq26isjyrqvb8cv92a9";
+    runHook postInstall
+  '';
 
   meta = {
     description = "A (mainly) Chinese Unicode font";
@@ -20,4 +25,3 @@ fetchzip rec {
     platforms = lib.platforms.all;
   };
 }
-
diff --git a/nixpkgs/pkgs/data/fonts/wqy-zenhei/default.nix b/nixpkgs/pkgs/data/fonts/wqy-zenhei/default.nix
index 5d461d0f5b00..c59f74d45474 100644
--- a/nixpkgs/pkgs/data/fonts/wqy-zenhei/default.nix
+++ b/nixpkgs/pkgs/data/fonts/wqy-zenhei/default.nix
@@ -1,19 +1,21 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchurl }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "wqy-zenhei";
   version = "0.9.45";
-in fetchzip rec {
-  name = "wqy-zenhei-${version}";
 
-  url = "mirror://sourceforge/wqy/${name}.tar.gz";
+  src = fetchurl {
+    url = "mirror://sourceforge/wqy/${pname}-${version}.tar.gz";
+    hash = "sha256-5LfjBkdb+UJ9F1dXjw5FKJMMhMROqj8WfUxC8RDuddY=";
+  };
 
-  postFetch = ''
-    tar -xzf $downloadedFile --strip-components=1
-    mkdir -p $out/share/fonts
-    install -m644 *.ttc $out/share/fonts/
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "0hbjq6afcd63nsyjzrjf8fmm7pn70jcly7fjzjw23v36ffi0g255";
+    install -Dm644 *.ttc -t $out/share/fonts/
+
+    runHook postInstall
+  '';
 
   meta = {
     description = "A (mainly) Chinese Unicode font";
diff --git a/nixpkgs/pkgs/data/fonts/xkcd-font/default.nix b/nixpkgs/pkgs/data/fonts/xkcd-font/default.nix
index cfdd3c0eae0b..c1ddbe9fae6c 100644
--- a/nixpkgs/pkgs/data/fonts/xkcd-font/default.nix
+++ b/nixpkgs/pkgs/data/fonts/xkcd-font/default.nix
@@ -1,24 +1,24 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation rec {
   pname = "xkcd-font";
   version = "unstable-2017-08-24";
-in fetchFromGitHub {
-  name = "${pname}-${version}";
 
-  owner = "ipython";
-  repo = pname;
-  rev = "5632fde618845dba5c22f14adc7b52bf6c52d46d";
+  src = fetchFromGitHub {
+    owner = "ipython";
+    repo = pname;
+    rev = "5632fde618845dba5c22f14adc7b52bf6c52d46d";
+    hash = "sha256-1DgSx2L+OpXuPVSXbbl/hcZUyBK9ikPyGWuk6wNzlwc=";
+  };
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    install -Dm444 -t $out/share/fonts/opentype/ $out/xkcd/build/xkcd.otf
-    install -Dm444 -t $out/share/fonts/truetype/ $out/xkcd-script/font/xkcd-script.ttf
+    install -Dm444 -t $out/share/fonts/opentype/ xkcd/build/xkcd.otf
+    install -Dm444 -t $out/share/fonts/truetype/ xkcd-script/font/xkcd-script.ttf
 
-    shopt -s extglob dotglob
-    rm -rf $out/!(share)
-    shopt -u extglob dotglob
+    runHook postInstall
   '';
-  sha256 = "sha256-ITsJPs+ZXwUWYe2AmwyVZib8RV7bpiWHOUD8qEZRHHY=";
 
   meta = with lib; {
     description = "The xkcd font";
diff --git a/nixpkgs/pkgs/data/fonts/yanone-kaffeesatz/default.nix b/nixpkgs/pkgs/data/fonts/yanone-kaffeesatz/default.nix
index bd610938154d..99cd30f3dfa7 100644
--- a/nixpkgs/pkgs/data/fonts/yanone-kaffeesatz/default.nix
+++ b/nixpkgs/pkgs/data/fonts/yanone-kaffeesatz/default.nix
@@ -1,16 +1,22 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-fetchzip {
-  name = "yanone-kaffeesatz-2004";
+stdenvNoCC.mkDerivation rec {
+  pname = "yanone-kaffeesatz";
+  version = "2004";
 
-  url = "https://yanone.de/2015/data/UIdownloads/Yanone%20Kaffeesatz.zip";
+  src = fetchzip {
+    url = "https://yanone.de/2015/data/UIdownloads/Yanone%20Kaffeesatz.zip";
+    stripRoot = false;
+    hash = "sha256-8yAB73UJ77/c8/VLqiFeT1KtoBQzOh+vWrI+JA2dCoY=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "190c4wx7avy3kp98lsyml7kc0jw7csf5n79af2ypbkhsadfsy8di";
+    install -Dm644 *.otf -t $out/share/fonts/opentype
+
+    runHook postInstall
+  '';
 
   meta = {
     description = "The free font classic";
diff --git a/nixpkgs/pkgs/data/fonts/zilla-slab/default.nix b/nixpkgs/pkgs/data/fonts/zilla-slab/default.nix
index a244c04a65cd..886362d78e99 100644
--- a/nixpkgs/pkgs/data/fonts/zilla-slab/default.nix
+++ b/nixpkgs/pkgs/data/fonts/zilla-slab/default.nix
@@ -1,17 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
+stdenvNoCC.mkDerivation rec {
+  pname = "zilla-slab";
   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
+  src = fetchzip {
+    url = "https://github.com/mozilla/zilla-slab/releases/download/v${version}/Zilla-Slab-Fonts-v${version}.zip";
+    stripRoot = false;
+    hash = "sha256-yOHu+dSWlyI7w1N1teED9R1Fphso2bKAlYDC1KdqBCc=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/fonts/truetype
     cp -v zilla-slab/ttf/*.ttf $out/share/fonts/truetype/
+
+    runHook postInstall
   '';
-  sha256 = "1b1ys28hyjcl4qwbnsyi6527nj01g3d6id9jl23fv6f8fjm4ph0f";
 
   meta = with lib; {
     homepage = "https://github.com/mozilla/zilla-slab";
diff --git a/nixpkgs/pkgs/data/icons/apple-cursor/default.nix b/nixpkgs/pkgs/data/icons/apple-cursor/default.nix
new file mode 100644
index 000000000000..90898333b45c
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/apple-cursor/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, fetchzip
+, stdenv
+}:
+
+let
+  _src = variant: suffix: hash: fetchzip ({
+    name = variant;
+    url = "https://github.com/ful1e5/apple_cursor/releases/download/v${version}/${variant}.${suffix}";
+    hash = hash;
+  } // (if suffix == "zip" then { stripRoot = false; } else {}));
+
+  version = "2.0.0";
+  srcs = [
+    (_src "macOS-BigSur-White" "tar.gz" "sha256-3Ax2hMfkEL4cyJtGQpK3PqC/L5wtmgO0LsY4gkTQ2Bg=")
+    (_src "macOS-BigSur-White-Windows" "zip" "sha256-V6J2Ddgq46BkgxCWVReZrvE7CsOczzV7slOpilKFG9E=")
+    (_src "macOS-BigSur" "tar.gz" "sha256-VZWFf1AHum2xDJPMZrBmcyVrrmYGKwCdXOPATw7myOA=")
+    (_src "macOS-BigSur-Windows" "zip" "sha256-lp28ACsK8BXe6rSDELL4GdXb1QEdOVC8Y6eLofctkR4=")
+    (_src "macOS-Monterey-White" "tar.gz" "sha256-IfFYUbDW6mBe209iU1sBhFzolZd6YDVdJf+DPe9AQDM=")
+    (_src "macOS-Monterey-White-Windows" "zip" "sha256-gUuBFOi0nDBoX9TWPg4eQhCAhwYeEhfDEbYpc+XsQNE=")
+    (_src "macOS-Monterey" "tar.gz" "sha256-MHmaZs56Q1NbjkecvfcG1zAW85BCZDn5kXmxqVzPc7M=")
+    (_src "macOS-Monterey-Windows" "zip" "sha256-ajxEgq7besaRajLn0gTPpp4euOWVqbzc78u720PWlyE=")
+  ];
+in stdenv.mkDerivation rec {
+  pname = "apple_cursor";
+  inherit version;
+  inherit srcs;
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    install -dm 0755 $out/share/icons
+    cp -r macOS* $out/share/icons/
+  '';
+
+  meta = with lib; {
+    description = "Opensource macOS Cursors.";
+    homepage = "https://github.com/ful1e5/apple_cursor";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ colemickens ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/beauty-line-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/beauty-line-icon-theme/default.nix
index 66e5ac57dd17..dc332b0fc328 100644
--- a/nixpkgs/pkgs/data/icons/beauty-line-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/beauty-line-icon-theme/default.nix
@@ -18,9 +18,9 @@ stdenvNoCC.mkDerivation rec {
     owner = "gvolpe";
     repo = pname;
     rev = version;
-    sparseCheckout = ''
-      BeautyLine-V3
-    '';
+    sparseCheckout = [
+      "BeautyLine-V3"
+    ];
     sha256 = "sha256-IkkypAj250+OXbf19TampCnqYsSbJVIjeYlxJoyhpzk=";
   };
 
diff --git a/nixpkgs/pkgs/data/icons/bibata-cursors/default.nix b/nixpkgs/pkgs/data/icons/bibata-cursors/default.nix
index b27b96cb5efb..06c8becd64e5 100644
--- a/nixpkgs/pkgs/data/icons/bibata-cursors/default.nix
+++ b/nixpkgs/pkgs/data/icons/bibata-cursors/default.nix
@@ -3,47 +3,37 @@
 , fetchFromGitHub
 , fetchurl
 , clickgen
-, unzip
+, attrs
 }:
 
 stdenvNoCC.mkDerivation rec {
   pname = "bibata-cursors";
-  version = "1.1.2";
+  version = "2.0.3";
 
   src = fetchFromGitHub {
     owner = "ful1e5";
     repo = "Bibata_Cursor";
     rev = "v${version}";
-    sha256 = "1q2wdbrmdnr9mwiilm5cc9im3zwbl7yaj1zpy5wwn44ypq3hcngy";
+    sha256 = "zCk7qgPeae0BfzhxxU2Dk1SOWJQOxiWyJuzH/ri+Gq4=";
   };
 
-  bitmaps = fetchurl {
-    url = "https://github.com/ful1e5/Bibata_Cursor/releases/download/v${version}/bitmaps.zip";
-    sha256 = "1pcn6par0f0syyhzpzmqr3c6b9ri4lprkdd2ncwzdas01p2d9v1i";
-  };
-
-  nativeBuildInputs = [ unzip ];
-
-  buildInputs = [ clickgen ];
+  buildInputs = [ clickgen attrs ];
 
   buildPhase = ''
-    mkdir bitmaps
-    unzip $bitmaps -d bitmaps
-    rm -rf themes
-    cd builder && make build_unix
+    ctgen build.toml -p x11 -d 'bitmaps/Bibata-Modern-Amber' -n 'Bibata-Modern-Amber' -c 'Yellowish and rounded edge bibata cursors.'
+    ctgen build.toml -p x11 -d 'bitmaps/Bibata-Modern-Classic' -n 'Bibata-Modern-Classic' -c 'Black and rounded edge Bibata cursors.'
+    ctgen build.toml -p x11 -d 'bitmaps/Bibata-Modern-Ice' -n 'Bibata-Modern-Ice' -c 'White and rounded edge Bibata cursors.'
+
+    ctgen build.toml -p x11 -d 'bitmaps/Bibata-Original-Amber' -n 'Bibata-Original-Amber' -c 'Yellowish and sharp edge Bibata cursors.'
+    ctgen build.toml -p x11 -d 'bitmaps/Bibata-Original-Classic' -n 'Bibata-Original-Classic' -c 'Black and sharp edge Bibata cursors.'
+    ctgen build.toml -p x11 -d 'bitmaps/Bibata-Original-Ice' -n 'Bibata-Original-Ice' -c 'White and sharp edge Bibata cursors.'
   '';
 
   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";
diff --git a/nixpkgs/pkgs/data/icons/bibata-cursors/extra.nix b/nixpkgs/pkgs/data/icons/bibata-cursors/extra.nix
index 15a746eabffb..ed9a70a6d321 100644
--- a/nixpkgs/pkgs/data/icons/bibata-cursors/extra.nix
+++ b/nixpkgs/pkgs/data/icons/bibata-cursors/extra.nix
@@ -50,5 +50,7 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dtzWill AdsonCicilioti ];
+    # unmaintained as of Nov 9, 2022. unable to be build with clickgen version 2.x
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/data/icons/bibata-cursors/translucent.nix b/nixpkgs/pkgs/data/icons/bibata-cursors/translucent.nix
index efaf25c59f2b..fa01e05766b4 100644
--- a/nixpkgs/pkgs/data/icons/bibata-cursors/translucent.nix
+++ b/nixpkgs/pkgs/data/icons/bibata-cursors/translucent.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "bibata-cursors-translucent";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchFromGitHub {
     owner = "Silicasandwhich";
     repo = "Bibata_Cursor_Translucent";
     rev = "v${version}";
-    sha256 = "1ddnwqkxricnd731blckcxvksbgql8k4pfiz65591p81n5095k8y";
+    sha256 = "sha256-RroynJfdFpu+Wl9iw9NrAc9wNZsSxWI+heJXUTwEe7s=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/data/icons/capitaine-cursors-themed/default.nix b/nixpkgs/pkgs/data/icons/capitaine-cursors-themed/default.nix
new file mode 100644
index 000000000000..bd0147fecde3
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/capitaine-cursors-themed/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "capitaine-cursors-themed";
+  version = "5";
+
+  src = fetchzip {
+    url = "https://github.com/sainnhe/capitaine-cursors/releases/download/r${version}/Linux.zip";
+    stripRoot = false;
+    hash = "sha256-ipPpmZKU/xLA45fdOvxVbtFDCUsCYIvzeps/DjhFkNg=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/icons
+    cp -r ./ $out/share/icons
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A fork of the capitaine cursor theme, with some additional variants (Gruvbox, Nord, Palenight) and support for HiDPI";
+    homepage = "https://github.com/sainnhe/capitaine-cursors";
+    license = licenses.lgpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.math-42 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/catppuccin-cursors/default.nix b/nixpkgs/pkgs/data/icons/catppuccin-cursors/default.nix
new file mode 100644
index 000000000000..450484b46327
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/catppuccin-cursors/default.nix
@@ -0,0 +1,66 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, unzip
+}:
+
+let
+  dimensions = {
+    palette = [ "Frappe" "Latte" "Macchiato" "Mocha" ];
+    color = [ "Blue" "Dark" "Flamingo" "Green" "Lavender" "Light" "Maroon" "Mauve" "Peach" "Pink" "Red" "Rosewater" "Sapphire" "Sky" "Teal" "Yellow" ];
+  };
+  product = lib.attrsets.cartesianProductOfSets dimensions;
+  variantName = { palette, color }: (lib.strings.toLower palette) + color;
+  variants = map variantName product;
+in
+stdenvNoCC.mkDerivation rec {
+  pname = "catppuccin-cursors";
+  version = "0.2.0";
+  dontBuild = true;
+
+  src = fetchFromGitHub {
+    owner = "catppuccin";
+    repo = "cursors";
+    rev = "v${version}";
+    sha256 = "sha256-TgV5f8+YWR+h61m6WiBMg3aBFnhqShocZBdzZHSyU2c=";
+    sparseCheckout = [ "cursors" ];
+  };
+
+  nativeBuildInputs = [ unzip ];
+
+  outputs = variants ++ [ "out" ]; # dummy "out" output to prevent breakage
+
+  outputsToInstall = [];
+
+  installPhase = ''
+    runHook preInstall
+
+    for output in $(getAllOutputNames); do
+      if [ "$output" != "out" ]; then
+        local outputDir="''${!output}"
+        local iconsDir="$outputDir"/share/icons
+
+        mkdir -p "$iconsDir"
+
+        # Convert to kebab case with the first letter of each word capitalized
+        local variant=$(sed 's/\([A-Z]\)/-\1/g' <<< "$output")
+        local variant=''${variant^}
+
+        unzip "cursors/Catppuccin-$variant-Cursors.zip" -d "$iconsDir"
+      fi
+    done
+
+    # Needed to prevent breakage
+    mkdir -p "$out"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Catppuccin cursor theme based on Volantes";
+    homepage = "https://github.com/catppuccin/cursors";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ PlayerNameHere ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/catppuccin-papirus-folders/default.nix b/nixpkgs/pkgs/data/icons/catppuccin-papirus-folders/default.nix
new file mode 100644
index 000000000000..70529a6337b7
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/catppuccin-papirus-folders/default.nix
@@ -0,0 +1,54 @@
+{
+  stdenvNoCC,
+  lib,
+  fetchFromGitHub,
+  gtk3,
+  papirus-icon-theme,
+  flavor ? "mocha",
+  accent ? "blue"
+}: let
+  validAccents = ["blue" "flamingo" "green" "lavender" "maroon" "mauve" "peach" "pink" "red" "rosewater" "sapphire" "sky" "teal" "yellow"];
+  validFlavors = ["latte" "frappe" "macchiato" "mocha"];
+  pname = "catppuccin-papirus-folders";
+in
+  lib.checkListOfEnum "${pname}: accent colors" validAccents [ accent ]
+  lib.checkListOfEnum "${pname}: flavors" validFlavors [ flavor ]
+
+  stdenvNoCC.mkDerivation {
+    inherit pname;
+    version = "unstable-2023-08-02";
+
+    src = fetchFromGitHub {
+      owner = "catppuccin";
+      repo = "papirus-folders";
+      rev = "fcf96737fffc343a1bf129732c37d19f2d77fa5c";
+      sha256 = "sha256-3yjIGzN+/moP2OVGDIAy4zPqUroSjx3c2mJjdZGhTsY=";
+    };
+
+    nativeBuildInputs = [ gtk3 ];
+
+    postPatch = ''
+      patchShebangs ./papirus-folders
+    '';
+
+    installPhase = ''
+      runHook preInstall
+      mkdir -p $out/share/icons
+      cp -r --no-preserve=mode ${papirus-icon-theme}/share/icons/Papirus* $out/share/icons
+      cp -r src/* $out/share/icons/Papirus
+      for theme in $out/share/icons/*; do
+          USER_HOME=$HOME DISABLE_UPDATE_ICON_CACHE=1 \
+            ./papirus-folders -t $theme -o -C cat-${flavor}-${accent}
+          gtk-update-icon-cache --force $theme
+      done
+      runHook postInstall
+    '';
+
+    meta = with lib; {
+      description = "Soothing pastel theme for Papirus Icon Theme folders";
+      homepage = "https://github.com/catppuccin/papirus-folders";
+      license = licenses.mit;
+      platforms = platforms.linux;
+      maintainers = with maintainers; [ rubyowo ];
+    };
+  }
diff --git a/nixpkgs/pkgs/data/icons/colloid-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/colloid-icon-theme/default.nix
index c1ae9e416e43..8384b924a983 100644
--- a/nixpkgs/pkgs/data/icons/colloid-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/colloid-icon-theme/default.nix
@@ -13,18 +13,18 @@ let
   pname = "colloid-icon-theme";
 
 in
-lib.checkListOfEnum "${pname}: scheme variants" [ "default" "nord" "dracula" ] schemeVariants
+lib.checkListOfEnum "${pname}: scheme variants" [ "default" "nord" "dracula" "all" ] schemeVariants
 lib.checkListOfEnum "${pname}: color variants" [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" "all" ] colorVariants
 
 stdenvNoCC.mkDerivation rec {
   inherit pname;
-  version = "2022-04-22";
+  version = "2023-03-28";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    hash = "sha256-0lUdsTjIfZ76Mm327jE1uudxtKVQbt17fsel6c2RdVM=";
+    hash = "sha256-R7QKxZdcKUeTD6E9gj02Tu5tYv9JyqyH2sCsdOk9zTM=";
   };
 
   nativeBuildInputs = [
@@ -60,7 +60,7 @@ stdenvNoCC.mkDerivation rec {
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater { inherit pname version; };
+  passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
     description = "Colloid icon theme";
diff --git a/nixpkgs/pkgs/data/icons/comixcursors/default.nix b/nixpkgs/pkgs/data/icons/comixcursors/default.nix
index b63877b28209..1c4fdc195180 100644
--- a/nixpkgs/pkgs/data/icons/comixcursors/default.nix
+++ b/nixpkgs/pkgs/data/icons/comixcursors/default.nix
@@ -52,7 +52,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   installPhase = ''
-    for outputName in $outputs ; do
+    for outputName in $(getAllOutputNames) ; do
       if [ $outputName != out ]; then
         local outputDir=''${!outputName};
         local iconsDir=$outputDir/share/icons
diff --git a/nixpkgs/pkgs/data/icons/dracula-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/dracula-icon-theme/default.nix
new file mode 100644
index 000000000000..d09037cad114
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/dracula-icon-theme/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenvNoCC, fetchFromGitHub, jdupes }:
+
+stdenvNoCC.mkDerivation {
+  pname = "dracula-icon-theme";
+  version = "unstable-2021-07-21";
+
+  src = fetchFromGitHub {
+    owner = "m4thewz";
+    repo = "dracula-icons";
+    rev = "2d3c83caa8664e93d956cfa67a0f21418b5cdad8";
+    hash = "sha256-GY+XxTM22jyNq8kaB81zNfHRhfXujArFcyzDa8kjxCQ=";
+  };
+
+  nativeBuildInputs = [
+    jdupes
+  ];
+
+  dontDropIconThemeCache = true;
+
+  dontPatchELF = true;
+  dontRewriteSymlinks = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/icons/Dracula
+    cp -a * $out/share/icons/Dracula/
+    jdupes --quiet --link-soft --recurse $out/share
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Dracula Icon theme";
+    homepage = "https://github.com/m4thewz/dracula-icons";
+    platforms = platforms.linux;
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ therealr5 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/fluent-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/fluent-icon-theme/default.nix
new file mode 100644
index 000000000000..6933a0ecb928
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/fluent-icon-theme/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gtk3
+, hicolor-icon-theme
+, jdupes
+, roundedIcons ? false
+, blackPanelIcons ? false
+, allColorVariants ? false
+, colorVariants ? [ ]
+,
+}:
+let pname = "Fluent-icon-theme";
+in
+lib.checkListOfEnum "${pname}: available color variants" [ "standard" "green" "grey" "orange" "pink" "purple" "red" "yellow" "teal" ] colorVariants
+
+stdenvNoCC.mkDerivation rec {
+  inherit pname;
+  version = "2023-06-07";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    hash = "sha256-drEAjIY/lacqncSeVeNmeRX6v4PnLvGo66Na1fuFXRg=";
+  };
+
+  nativeBuildInputs = [ gtk3 jdupes ];
+
+  buildInputs = [ hicolor-icon-theme ];
+
+  # Unnecessary & slow fixup's
+  dontPatchELF = true;
+  dontRewriteSymlinks = true;
+  dontDropIconThemeCache = true;
+
+  postPatch = ''
+    patchShebangs install.sh
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    ./install.sh --dest $out/share/icons \
+      --name Fluent \
+      ${builtins.toString colorVariants} \
+      ${lib.optionalString allColorVariants "--all"} \
+      ${lib.optionalString roundedIcons "--round"} \
+      ${lib.optionalString blackPanelIcons "--black"}
+
+    jdupes --quiet --link-soft --recurse $out/share
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Fluent icon theme for linux desktops";
+    homepage = "https://github.com/vinceliuice/Fluent-icon-theme";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ icy-thought ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/gnome-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/gnome-icon-theme/default.nix
index 239cf052ca9e..44b92c465bbe 100644
--- a/nixpkgs/pkgs/data/icons/gnome-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/gnome-icon-theme/default.nix
@@ -9,8 +9,11 @@ stdenv.mkDerivation rec {
     sha256 = "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im";
   };
 
-  nativeBuildInputs = [
+  depsBuildBuild = [
     pkg-config
+  ];
+
+  nativeBuildInputs = [
     intltool
     iconnamingutils
     gtk2
@@ -18,11 +21,13 @@ stdenv.mkDerivation rec {
 
   dontDropIconThemeCache = true;
 
-  postInstall = ''
+  postInstall = lib.optionalString (!stdenv.hostPlatform.isMusl) ''
     # remove a tree of dirs with no files within
     rm -r "$out/share/locale"
   '';
 
+  allowedReferences = [ ];
+
   meta = with lib; {
     description = "Collection of icons for the GNOME 2 desktop";
     homepage = "https://download.gnome.org/sources/gnome-icon-theme/";
diff --git a/nixpkgs/pkgs/data/icons/hackneyed/default.nix b/nixpkgs/pkgs/data/icons/hackneyed/default.nix
new file mode 100644
index 000000000000..74aedaa3786e
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/hackneyed/default.nix
@@ -0,0 +1,34 @@
+{ lib, fetchzip, stdenvNoCC, fetchFromGitLab, xcursorgen, imagemagick6, inkscape }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "hackneyed";
+  version = "0.8.2";
+
+  src = fetchFromGitLab {
+    owner = "Enthymeme";
+    repo = "hackneyed-x11-cursors";
+    rev = version;
+    sha256 = "sha256-Wtrw/EzxCj4cAyfdBp0OJE4+c6FouW7+b6nFTLxdXNY=";
+  };
+
+  buildInputs = [ imagemagick6 inkscape xcursorgen ];
+
+  postPatch = ''
+    patchShebangs *.sh
+    substituteInPlace make-png.sh \
+      --replace /usr/bin/inkscape ${inkscape}/bin/inkscape
+  '';
+
+  enableParallelBuilding = true;
+
+  makeFlags = [ "PREFIX=$(out)" ];
+  buildFlags = [ "theme" "theme.left" ];
+
+  meta = with lib; {
+    homepage = "https://gitlab.com/Enthymeme/hackneyed-x11-cursors";
+    description = "A scalable cursor theme that resembles Windows 3.x/NT 3.x cursors";
+    platforms = platforms.all;
+    license = licenses.mit;
+    maintainers = with maintainers; [ somasis ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/hicolor-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/hicolor-icon-theme/default.nix
index 4fb1ada66540..096baa49acea 100644
--- a/nixpkgs/pkgs/data/icons/hicolor-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/hicolor-icon-theme/default.nix
@@ -15,5 +15,6 @@ stdenvNoCC.mkDerivation rec {
     description = "Default fallback theme used by implementations of the icon theme specification";
     homepage = "https://icon-theme.freedesktop.org/releases/";
     platforms = platforms.unix;
+    license = licenses.gpl2Only;
   };
 }
diff --git a/nixpkgs/pkgs/data/icons/kora-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/kora-icon-theme/default.nix
index 4c02e9943c29..a2c705c8f3da 100644
--- a/nixpkgs/pkgs/data/icons/kora-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/kora-icon-theme/default.nix
@@ -10,13 +10,13 @@
 
 stdenvNoCC.mkDerivation rec  {
   pname = "kora-icon-theme";
-  version = "1.5.3";
+  version = "1.5.7";
 
   src = fetchFromGitHub  {
     owner = "bikass";
     repo = "kora";
     rev = "v${version}";
-    sha256 = "sha256-j4W9w/icGjfkbbb0xYF3NfSFsp5RkNCc805E089JaFQ=";
+    sha256 = "sha256-VAlfrUWgxcG17ZTlA357gengXTilwuZOBscIzadAsaU=";
   };
 
   nativeBuildInputs = [
@@ -46,7 +46,6 @@ stdenvNoCC.mkDerivation rec  {
   '';
 
   passthru.updateScript = gitUpdater {
-    inherit pname version;
     rev-prefix = "v";
   };
 
diff --git a/nixpkgs/pkgs/data/icons/luna-icons/default.nix b/nixpkgs/pkgs/data/icons/luna-icons/default.nix
index 7efc6059bb87..05c5092e9b42 100644
--- a/nixpkgs/pkgs/data/icons/luna-icons/default.nix
+++ b/nixpkgs/pkgs/data/icons/luna-icons/default.nix
@@ -44,7 +44,7 @@ stdenvNoCC.mkDerivation rec {
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater {inherit pname version; };
+  passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
     description = "Icon pack based on marwaita and papirus icons";
diff --git a/nixpkgs/pkgs/data/icons/nordzy-cursor-theme/default.nix b/nixpkgs/pkgs/data/icons/nordzy-cursor-theme/default.nix
index ee18fe287727..394626cec337 100644
--- a/nixpkgs/pkgs/data/icons/nordzy-cursor-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/nordzy-cursor-theme/default.nix
@@ -5,24 +5,18 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "nordzy-cursor-theme";
-  version = "0.1.0";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "alvatip";
     repo = "Nordzy-cursors";
     rev = "v${version}";
-    sha256 = "XabfKFyeII7Xl+ozzpPnc4xFH4B7GzCTLq4M1QPSZPw=";
+    sha256 = "sha256-q9PEEyxejRQ8UCwbqsfOCL7M70pLCOLyCx8gEFmZkWA=";
   };
 
   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
+    cp -r Nordzy-cursors{,-white,-lefthand} $out/share/icons
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/icons/nordzy-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/nordzy-icon-theme/default.nix
index 28da45f4c347..cbe06641bc64 100644
--- a/nixpkgs/pkgs/data/icons/nordzy-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/nordzy-icon-theme/default.nix
@@ -8,13 +8,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "nordzy-icon-theme";
-  version = "1.6";
+  version = "1.8.5";
 
   src = fetchFromGitHub {
     owner = "alvatip";
     repo = "Nordzy-icon";
     rev = version;
-    sha256 = "sha256-syiJL5i7JJXiSedUtaaoCnAv/6NgRtB3um7A5Sp+Pek=";
+    sha256 = "sha256-ea5OBvZrwH5Wvd7aieI9x3S10E8qcyg99Mh9B5RHkjo=";
   };
 
   # In the post patch phase we should first make sure to patch shebangs.
diff --git a/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix b/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix
index 1caa99ff9f80..8434937a395a 100644
--- a/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix
+++ b/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "numix-icon-theme-circle";
-  version = "22.08.15";
+  version = "23.05.15";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "sha256-2Ay5wykXuXKwcGFvFKu6SIFKdWFMdBvHwgSrqNCszMM=";
+    sha256 = "sha256-jZ++x2xtwmCYqv1jdJuNM2sHpmvkv6gj8Xo4PN2Vjsk=";
   };
 
   nativeBuildInputs = [ gtk3 ];
@@ -34,7 +34,7 @@ stdenvNoCC.mkDerivation rec {
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater {inherit pname version; };
+  passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
     description = "Numix icon theme (circle version)";
diff --git a/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix b/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix
index 3c24621f42e7..c767d6b42240 100644
--- a/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix
+++ b/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "numix-icon-theme-square";
-  version = "22.08.15";
+  version = "23.05.15";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "sha256-VJsxZFzraCQPNr/zS7ElPk52Tq5YHrFxaQJMUuHcnLw=";
+    sha256 = "sha256-tcEVwc3Ez0h9JwiHyYfMvdTfUaivy4sH3QJR9tP1LSk=";
   };
 
   nativeBuildInputs = [ gtk3 ];
@@ -34,7 +34,7 @@ stdenvNoCC.mkDerivation rec {
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater {inherit pname version; };
+  passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
     description = "Numix icon theme (square version)";
diff --git a/nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix
index 18ba78ac24ec..af84d20c16a4 100644
--- a/nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix
@@ -11,13 +11,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "numix-icon-theme";
-  version = "22.08.16";
+  version = "23.04.26";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "sha256-EveIr5XYyQYhz0AqZQBql3j0LnD8taNdzB/6IV7Mz2k=";
+    sha256 = "sha256-6tkE23G67nH/aZjDEtW64RcZsBrcd9iNj1r9lDlUFsk=";
   };
 
   nativeBuildInputs = [
@@ -48,7 +48,7 @@ stdenvNoCC.mkDerivation rec {
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater { inherit pname version; };
+  passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
     description = "Numix icon theme";
diff --git a/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix
index 880fc6f42341..0548ac07cedb 100644
--- a/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "papirus-icon-theme";
-  version = "20220808";
+  version = "20230601";
 
   src = fetchFromGitHub {
     owner = "PapirusDevelopmentTeam";
     repo = pname;
     rev = version;
-    sha256 = "sha256-eOsqBIo7Bs/5mbD8x2Q+RO49Cqxd1KoqNbTsiV9RDWg=";
+    sha256 = "sha256-p47Vt1nR94bXtpWjNaIWJNKbdgFFMc0qCBeh2V98CJg=";
   };
 
   nativeBuildInputs = [ gtk3 papirus-folders ];
diff --git a/nixpkgs/pkgs/data/icons/papirus-nord/default.nix b/nixpkgs/pkgs/data/icons/papirus-nord/default.nix
new file mode 100644
index 000000000000..178b1ba3470a
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/papirus-nord/default.nix
@@ -0,0 +1,75 @@
+{ stdenvNoCC
+, lib
+, fetchFromGitHub
+, gtk3
+, getent
+, papirus-icon-theme
+, accent ? "frostblue1"
+}:
+let
+  validAccents = [
+    "auroragreen"
+    "auroragreenb"
+    "auroramagenta"
+    "auroramagentab"
+    "auroraorange"
+    "auroraorangeb"
+    "aurorared"
+    "auroraredb"
+    "aurorayellow"
+    "aurorayellowb"
+    "frostblue1"
+    "frostblue2"
+    "frostblue3"
+    "frostblue4"
+    "polarnight1"
+    "polarnight2"
+    "polarnight3"
+    "polarnight3"
+    "snowstorm1"
+    "snowstorm1b"
+  ];
+  pname = "papirus-nord";
+  version = "3.2.0";
+in
+lib.checkListOfEnum "${pname}: accent colors" validAccents [ accent ]
+
+stdenvNoCC.mkDerivation {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "adapta-projects";
+    repo = "papirus-nord";
+    rev = version;
+    sha256 = "sha256-KwwTDGJQ4zN9XH/pKFQDQ+EgyuSCFhN2PQAI35G+3YM=";
+  };
+
+  nativeBuildInputs = [ gtk3 getent ];
+
+  postPatch = ''
+    patchShebangs ./papirus-folders
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/icons
+    cp -r --no-preserve=mode ${papirus-icon-theme}/share/icons/Papirus* $out/share/icons
+    for size in 64x64 48x48 32x32 24x24 22x22; do
+      cp -f Icons/$size/* $out/share/icons/Papirus/$size/places
+    done
+    for theme in $out/share/icons/*; do
+        USER_HOME=$HOME DISABLE_UPDATE_ICON_CACHE=1 \
+          ./papirus-folders -t $theme -o -C ${accent}
+        gtk-update-icon-cache --force $theme
+    done
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Nord version of Papirus Icon Theme";
+    homepage = "https://github.com/Adapta-Projects/Papirus-Nord";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ aacebedo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/pop-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/pop-icon-theme/default.nix
index ddf3d1afe6d5..2a27122da5db 100644
--- a/nixpkgs/pkgs/data/icons/pop-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/pop-icon-theme/default.nix
@@ -10,13 +10,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "pop-icon-theme";
-  version = "2021-11-17";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = "icon-theme";
-    rev = "9998b20b78f3ff65ecbf2253bb863d1e669abe74";
-    sha256 = "0lwdmaxs9xj4bm21ldh64bzyb6iz5d5k1256iwvyjp725l7686cl";
+    rev = "v${version}";
+    sha256 = "sha256-7cDXEkqtPNQsyZvuYZhBSgAYshkDlP8o8umWGbNLtjw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/data/icons/qogir-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/qogir-icon-theme/default.nix
index e2f3e6cb3bb6..bfa4e33fc8ca 100644
--- a/nixpkgs/pkgs/data/icons/qogir-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/qogir-icon-theme/default.nix
@@ -13,18 +13,18 @@ let
   pname = "qogir-icon-theme";
 
 in
-lib.checkListOfEnum "${pname}: color variants" [ "default" "dark" "all" ] colorVariants
+lib.checkListOfEnum "${pname}: color variants" [ "standard" "dark" "all" ] colorVariants
 lib.checkListOfEnum "${pname}: theme variants" [ "default" "manjaro" "ubuntu" "all" ] themeVariants
 
 stdenvNoCC.mkDerivation rec {
   inherit pname;
-  version = "2022-07-20";
+  version = "2023-06-05";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "sha256-I+eojCTR3fXcp7v5Bdie9vstmJja9HB71aQSF5jLDD4=";
+    sha256 = "sha256-qiHmA/K4hdXVSFzergGhgssKR+kXp3X0cqtX1X5ayM4=";
   };
 
   nativeBuildInputs = [ gtk3 jdupes ];
@@ -56,7 +56,7 @@ stdenvNoCC.mkDerivation rec {
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater { inherit pname version; };
+  passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
     description = "Flat colorful design icon theme";
diff --git a/nixpkgs/pkgs/data/icons/rose-pine/default.nix b/nixpkgs/pkgs/data/icons/rose-pine/default.nix
new file mode 100644
index 000000000000..051294c5d3a8
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/rose-pine/default.nix
@@ -0,0 +1,47 @@
+{ stdenvNoCC
+, lib
+, fetchFromGitHub
+, gtk3
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "rose-pine-icon-theme";
+  version = "unstable-2022-09-01";
+
+  src = fetchFromGitHub {
+    owner = "rose-pine";
+    repo = "gtk";
+    rev = "7a4c40989fd42fd8d4a797f460c79fc4a085c304";
+    sha256 = "0q74wjyrsjyym770i3sqs071bvanwmm727xzv50wk6kzvpyqgi67";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+  ];
+
+  # avoid the makefile which is only for the theme maintainers
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/icons
+    mv icons/rose-pine-icons $out/share/icons/rose-pine
+    mv icons/rose-pine-dawn-icons $out/share/icons/rose-pine-dawn
+    mv icons/rose-pine-moon-icons $out/share/icons/rose-pine-moon
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Rosé Pine icon theme for GTK";
+    homepage = "https://github.com/rose-pine/gtk";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [romildo the-argus];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/simp1e-cursors/default.nix b/nixpkgs/pkgs/data/icons/simp1e-cursors/default.nix
new file mode 100644
index 000000000000..962f4ea2618a
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/simp1e-cursors/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenvNoCC, fetchFromGitLab, python3, librsvg, xcursorgen }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "simp1e-cursors";
+  version = "20221103.2";
+
+  src = fetchFromGitLab {
+    owner = "cursors";
+    repo = "simp1e";
+    rev = version;
+    sha256 = "sha256-3DCF6TwxWwYK5pF2Ykr3OwF76H7J03vLNZch/XoZZZk=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    (python3.withPackages (ps: with ps; [ pillow ]))
+    librsvg
+    xcursorgen
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+    patchShebangs ./build.sh ./cursor-generator
+    HOME=$TMP ./build.sh
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -dm 755 $out/share/icons
+    cp -r built_themes/* $out/share/icons/
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "An aesthetic cursor theme for Linux desktops";
+    homepage = "https://gitlab.com/cursors/simp1e";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ natto1784 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/super-tiny-icons/default.nix b/nixpkgs/pkgs/data/icons/super-tiny-icons/default.nix
new file mode 100644
index 000000000000..502086be41a2
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/super-tiny-icons/default.nix
@@ -0,0 +1,34 @@
+{ pkgs, lib, stdenvNoCC, fetchFromGitHub, }:
+
+stdenvNoCC.mkDerivation {
+  pname = "super-tiny-icons";
+  version = "unstable-2023-05-22";
+
+  src = fetchFromGitHub {
+    owner = "edent";
+    repo = "SuperTinyIcons";
+    rev = "69689fc05d6a14a865723a01b67c1af4741ed357";
+    sha256 = "F1Qw1SLP7+LEiUch0YjBXQcpfU17YLCBk8q6cM77plU=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/icons/SuperTinyIcons
+    find $src/images -type d -exec cp -r {} $out/share/icons/SuperTinyIcons/ \;
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Miniscule SVG versions of common logos";
+    longDescription = ''
+      Super Tiny Web Icons are minuscule SVG versions of your favourite logos.
+      The average size is under 568 bytes!
+    '';
+    homepage = "https://github.com/edent/SuperTinyIcons";
+    license = licenses.mit;
+    maintainers = [ maintainers.h7x4 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/tango-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/tango-icon-theme/default.nix
index 9e6b0666a118..a607748c7c38 100644
--- a/nixpkgs/pkgs/data/icons/tango-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/tango-icon-theme/default.nix
@@ -13,8 +13,8 @@ stdenv.mkDerivation rec {
 
   patches = [ ./rsvg-convert.patch ];
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ intltool iconnamingutils imagemagick librsvg ];
+  nativeBuildInputs = [ pkg-config intltool ];
+  buildInputs = [ iconnamingutils imagemagick librsvg ];
   propagatedBuildInputs = [ gnome-icon-theme hicolor-icon-theme ];
   # still missing parent icon themes: cristalsvg
 
@@ -24,9 +24,10 @@ stdenv.mkDerivation rec {
 
   postInstall = '''${gtk.out}/bin/gtk-update-icon-cache' "$out/share/icons/Tango" '';
 
-  meta = {
+  meta = with lib; {
     description = "A basic set of icons";
     homepage = "http://tango.freedesktop.org/Tango_Icon_Library";
-    platforms = lib.platforms.linux;
+    platforms = platforms.linux;
+    license = licenses.publicDomain;
   };
 }
diff --git a/nixpkgs/pkgs/data/icons/tela-circle-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/tela-circle-icon-theme/default.nix
index dcff587dd357..d5c29013c51a 100644
--- a/nixpkgs/pkgs/data/icons/tela-circle-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/tela-circle-icon-theme/default.nix
@@ -1,6 +1,8 @@
 { lib
 , stdenvNoCC
 , fetchFromGitHub
+, adwaita-icon-theme
+, libsForQt5
 , gtk3
 , hicolor-icon-theme
 , jdupes
@@ -13,17 +15,17 @@
 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
+lib.checkListOfEnum "${pname}: color variants" [ "standard" "black" "blue" "brown" "green" "grey" "orange" "pink" "purple" "red" "yellow" "manjaro" "ubuntu" "dracula" "nord" ] colorVariants
 
 stdenvNoCC.mkDerivation rec {
   inherit pname;
-  version = "2022-03-07";
+  version = "2023-04-16";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "vQeWGZmurvT/UQJ1dx6t+ZeKdJ1Oq9TdHBADw64x18g=";
+    sha256 = "OHI/kT4HMlWUTxIeGXjtuIYBzQKM3XTGXuE9cviNDTM=";
   };
 
   nativeBuildInputs = [
@@ -32,6 +34,8 @@ stdenvNoCC.mkDerivation rec {
   ];
 
   propagatedBuildInputs = [
+    adwaita-icon-theme
+    libsForQt5.breeze-icons
     hicolor-icon-theme
   ];
 
@@ -42,21 +46,23 @@ stdenvNoCC.mkDerivation rec {
   dontPatchELF = true;
   dontRewriteSymlinks = true;
 
+  postPatch = ''
+    patchShebangs install.sh
+  '';
+
   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 --link-soft --recurse $out/share
+    jdupes --quiet --link-soft --recurse $out/share
 
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater {inherit pname version; };
+  passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
     description = "Flat and colorful personality icon theme";
diff --git a/nixpkgs/pkgs/data/icons/tela-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/tela-icon-theme/default.nix
index 56491fe4443b..2b98e09eca29 100644
--- a/nixpkgs/pkgs/data/icons/tela-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/tela-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "tela-icon-theme";
-  version = "2022-02-21";
+  version = "2023-02-03";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "sha256-tnhu//q0Vl7MiMeHopB1Gwokkw/P+nDOo4HKizjxC0Y=";
+    sha256 = "sha256-W3gGn4ioTg/iOWTa5hfwx6FWzpFilpG8IXwaO5/YAvk=";
   };
 
   nativeBuildInputs = [ gtk3 jdupes ];
diff --git a/nixpkgs/pkgs/data/icons/vanilla-dmz/default.nix b/nixpkgs/pkgs/data/icons/vanilla-dmz/default.nix
index 0d3f273d5bb2..22b66b1c65dc 100644
--- a/nixpkgs/pkgs/data/icons/vanilla-dmz/default.nix
+++ b/nixpkgs/pkgs/data/icons/vanilla-dmz/default.nix
@@ -25,18 +25,30 @@ stdenvNoCC.mkDerivation rec {
   dontDropIconThemeCache = true;
 
   buildPhase = ''
-    cd DMZ-White/pngs; ./make.sh; cd -
-    cd DMZ-Black/pngs; ./make.sh; cd -
+    runHook preBuild
+
+    for theme in DMZ-{White,Black}; do
+      pushd $theme/pngs
+      ./make.sh
+      popd
+    done
+
+    runHook postBuild
   '';
 
   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
+    runHook preInstall
+
+    for theme in DMZ-{White,Black}; do
+      mkdir -p $out/share/icons/$theme/cursors
+      cp -a $theme/xcursors/* $out/share/icons/$theme/cursors/
+      install -m644 $theme/index.theme $out/share/icons/$theme/index.theme
+    done
+
+    ln -s $out/share/icons/{DMZ-White,Vanilla-DMZ}
+    ln -s $out/share/icons/{DMZ-Black,Vanilla-DMZ-AA}
 
-    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
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/icons/vimix-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/vimix-icon-theme/default.nix
index 7ef0abb85c22..d402c6d5ffce 100644
--- a/nixpkgs/pkgs/data/icons/vimix-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/vimix-icon-theme/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenvNoCC
 , fetchFromGitHub
+, gitUpdater
 , gtk3
 , hicolor-icon-theme
 , jdupes
@@ -11,22 +12,27 @@ let
   pname = "vimix-icon-theme";
 
 in
-lib.checkListOfEnum "${pname}: color variants" [ "standard" "Amethyst" "Beryl" "Doder" "Ruby" "Black" "White" ] colorVariants
+lib.checkListOfEnum "${pname}: color variants" [ "standard" "Amethyst" "Beryl" "Doder" "Ruby" "Jade" "Black" "White" ] colorVariants
 
 stdenvNoCC.mkDerivation rec {
   inherit pname;
-  version = "2021-11-09";
+  version = "2023-01-18";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "1ali128027yw5kllip7p32c92pby5gaqs0i393m3bp69547np1d4";
+    sha256 = "5EgTWF6qu12VYVi7w5BOp7IleN4IevLZR0hH9x/qbGo=";
   };
 
-  nativeBuildInputs = [ gtk3 jdupes ];
+  nativeBuildInputs = [
+    gtk3
+    jdupes
+  ];
 
-  propagatedBuildInputs = [ hicolor-icon-theme ];
+  propagatedBuildInputs = [
+    hicolor-icon-theme
+  ];
 
   dontDropIconThemeCache = true;
 
@@ -34,21 +40,25 @@ stdenvNoCC.mkDerivation rec {
   dontPatchELF = true;
   dontRewriteSymlinks = true;
 
+  postPatch = ''
+    patchShebangs install.sh
+  '';
+
   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
+    jdupes --quiet --link-soft --recurse $out/share
 
     runHook postInstall
   '';
 
+  passthru.updateScript = gitUpdater { };
+
   meta = with lib; {
     description = "A Material Design icon theme based on Paper icon theme";
     homepage = "https://github.com/vinceliuice/vimix-icon-theme";
diff --git a/nixpkgs/pkgs/data/icons/volantes-cursors/default.nix b/nixpkgs/pkgs/data/icons/volantes-cursors/default.nix
new file mode 100644
index 000000000000..b7ef49135e93
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/volantes-cursors/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, inkscape
+, xcursorgen
+}:
+stdenv.mkDerivation {
+  pname = "volantes-cursors";
+  version = "2022-08-27";
+
+  src = fetchFromGitHub {
+    owner = "varlesh";
+    repo = "volantes-cursors";
+    rev = "b13a4bbf6bd1d7e85fadf7f2ecc44acc198f8d01";
+    hash = "sha256-vJe1S+YHrUBwJSwt2+InTu5ho2FOtz7FjDxu0BIA1Js=";
+  };
+
+  strictDeps = true;
+  nativeBuildInputs = [ inkscape xcursorgen ];
+
+  makeTargets = [ "build" ];
+
+  makeFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
+
+  meta = with lib; {
+    homepage = "https://www.pling.com/p/1356095/";
+    description = "Classic cursor theme with a flying style";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ jordanisaacs ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/whitesur-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/whitesur-icon-theme/default.nix
index 8708ee28807d..8733d20e9fab 100644
--- a/nixpkgs/pkgs/data/icons/whitesur-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/whitesur-icon-theme/default.nix
@@ -6,23 +6,34 @@
 , jdupes
 , boldPanelIcons ? false
 , blackPanelIcons ? false
+, alternativeIcons ? false
 , themeVariants ? []
 }:
 
-let
-  pname = "Whitesur-icon-theme";
+let pname = "Whitesur-icon-theme";
 in
-lib.checkListOfEnum "${pname}: theme variants" [ "default" "purple" "pink" "red" "orange" "yellow" "green" "grey" "nord" "all" ] themeVariants
+lib.checkListOfEnum "${pname}: theme variants" [
+  "default"
+  "purple"
+  "pink"
+  "red"
+  "orange"
+  "yellow"
+  "green"
+  "grey"
+  "nord"
+  "all"
+] themeVariants
 
 stdenvNoCC.mkDerivation rec {
   inherit pname;
-  version = "2022-05-11";
+  version = "2023-01-08";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "sha256-7Bbkjbh6nZdYot0tJMWFuW1Jnl9U4KOLN/n+z92UWh4=";
+    hash = "sha256-xqKGZPlGl8kNZ4AQYZWAywL+6UxwGzYOZ9WvB85JKZk=";
   };
 
   nativeBuildInputs = [ gtk3 jdupes ];
@@ -32,7 +43,6 @@ stdenvNoCC.mkDerivation rec {
   # These fixup steps are slow and unnecessary
   dontPatchELF = true;
   dontRewriteSymlinks = true;
-
   dontDropIconThemeCache = true;
 
   postPatch = ''
@@ -45,6 +55,7 @@ stdenvNoCC.mkDerivation rec {
     ./install.sh --dest $out/share/icons \
       --name WhiteSur \
       --theme ${builtins.toString themeVariants} \
+      ${lib.optionalString alternativeIcons "--alternative"} \
       ${lib.optionalString boldPanelIcons "--bold"} \
       ${lib.optionalString blackPanelIcons "--black"}
 
diff --git a/nixpkgs/pkgs/data/icons/zafiro-icons/default.nix b/nixpkgs/pkgs/data/icons/zafiro-icons/default.nix
index d9a62462e97c..2f0c03220daf 100644
--- a/nixpkgs/pkgs/data/icons/zafiro-icons/default.nix
+++ b/nixpkgs/pkgs/data/icons/zafiro-icons/default.nix
@@ -64,7 +64,7 @@ stdenvNoCC.mkDerivation rec {
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater { inherit pname version; };
+  passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
     description = "Icon pack flat with light colors";
diff --git a/nixpkgs/pkgs/data/misc/cacert/default.nix b/nixpkgs/pkgs/data/misc/cacert/default.nix
index 0ed4f95f8cf0..baa714576b62 100644
--- a/nixpkgs/pkgs/data/misc/cacert/default.nix
+++ b/nixpkgs/pkgs/data/misc/cacert/default.nix
@@ -17,10 +17,20 @@
 }:
 
 let
-  blocklist = writeText "cacert-blocklist.txt" (lib.concatStringsSep "\n" blacklist);
+  blocklist = writeText "cacert-blocklist.txt" (lib.concatStringsSep "\n" (blacklist ++ [
+    # Mozilla does not trust new certificates issued by these CAs after 2022/11/30¹
+    # in their products, but unfortunately we don't have such a fine-grained
+    # solution for most system packages², so we decided to eject these.
+    #
+    # [1] https://groups.google.com/a/mozilla.org/g/dev-security-policy/c/oxX69KFvsm4/m/yLohoVqtCgAJ
+    # [2] https://utcc.utoronto.ca/~cks/space/blog/linux/CARootStoreTrustProblem
+    "TrustCor ECA-1"
+    "TrustCor RootCert CA-1"
+    "TrustCor RootCert CA-2"
+  ]));
   extraCertificatesBundle = writeText "cacert-extra-certificates-bundle.crt" (lib.concatStringsSep "\n\n" extraCertificateStrings);
 
-  srcVersion = "3.80";
+  srcVersion = "3.89.1";
   version = if nssOverride != null then nssOverride.version else srcVersion;
   meta = with lib; {
     homepage = "https://curl.haxx.se/docs/caextract.html";
@@ -35,7 +45,7 @@ let
 
     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 = "sha256-wL8f0sfimmsCswliK6r8RD7skMiTS7FV2ku5iYh4S2o=";
+      hash = "sha256-OtrtuecMPF9AYDv2CgHjNhkKbb4Bkp05XxawH+hKAVY=";
     };
 
     dontBuild = true;
diff --git a/nixpkgs/pkgs/data/misc/cacert/update.sh b/nixpkgs/pkgs/data/misc/cacert/update.sh
index 9ad5ede0f7ef..d578102ad56b 100755
--- a/nixpkgs/pkgs/data/misc/cacert/update.sh
+++ b/nixpkgs/pkgs/data/misc/cacert/update.sh
@@ -1,7 +1,7 @@
 #!/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.
+# Build both the cacert package and an overridden 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.
diff --git a/nixpkgs/pkgs/data/misc/clash-geoip/default.nix b/nixpkgs/pkgs/data/misc/clash-geoip/default.nix
new file mode 100644
index 000000000000..1ee29916ca33
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/clash-geoip/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenvNoCC, fetchurl, nix-update-script }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "clash-geoip";
+  version = "20230512";
+
+  src = fetchurl {
+    url = "https://github.com/Dreamacro/maxmind-geoip/releases/download/${version}/Country.mmdb";
+    sha256 = "sha256-/QIii+f7pOzXXlhDQV6XGHpyjAlCS/OONalbPSnmArE=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/etc/clash
+    install -Dm 0644 $src -D $out/etc/clash/Country.mmdb
+    runHook postInstall
+  '';
+
+  passthru = {
+    updateScript = nix-update-script { };
+  };
+
+  meta = with lib; {
+    description = "A GeoLite2 data created by MaxMind";
+    homepage = "https://github.com/Dreamacro/maxmind-geoip";
+    license = licenses.unfree;
+    maintainers = [];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/cldr-annotations/default.nix b/nixpkgs/pkgs/data/misc/cldr-annotations/default.nix
index cdc7a978e6bf..6d06d49eb711 100644
--- a/nixpkgs/pkgs/data/misc/cldr-annotations/default.nix
+++ b/nixpkgs/pkgs/data/misc/cldr-annotations/default.nix
@@ -1,18 +1,23 @@
-{ lib, fetchzip }:
+{ lib, stdenvNoCC, fetchzip }:
 
-let
-  version = "41.0";
-in fetchzip rec {
-  name = "cldr-annotations-${version}";
+stdenvNoCC.mkDerivation rec {
+  pname = "cldr-annotations";
+  version = "43.0";
 
-  url = "https://unicode.org/Public/cldr/${lib.versions.major version}/cldr-common-${version}.zip";
+  src = fetchzip {
+    url = "https://unicode.org/Public/cldr/${lib.versions.major version}/cldr-common-${version}.zip";
+    stripRoot = false;
+    hash = "sha256-L8ikzRpSw4mDCV79TiUqhPHWC0PmGi4i4He0OAB54R0=";
+  };
 
-  postFetch = ''
-    mkdir -p $out/share/unicode/cldr
-    unzip -d $out/share/unicode/cldr $downloadedFile 'common/annotations/*' 'common/annotationsDerived/*'
-  '';
+  installPhase = ''
+    runHook preInstall
 
-  sha256 = "sha256-3dHVZGx3FmR97fzhlTSx/xp6YTAV+sMExl6gpLzl1MY=";
+    mkdir -p $out/share/unicode/cldr/common
+    mv common/annotations{,Derived} -t $out/share/unicode/cldr/common
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "Names and keywords for Unicode characters from the Common Locale Data Repository";
diff --git a/nixpkgs/pkgs/data/misc/colemak-dh/default.nix b/nixpkgs/pkgs/data/misc/colemak-dh/default.nix
index f36832ff42d8..0ce188bdc906 100644
--- a/nixpkgs/pkgs/data/misc/colemak-dh/default.nix
+++ b/nixpkgs/pkgs/data/misc/colemak-dh/default.nix
@@ -9,14 +9,12 @@ stdenvNoCC.mkDerivation rec {
 
   src = fetchFromGitHub {
     owner = "ColemakMods";
-    repo  = "mod-dh";
+    repo = "mod-dh";
     rev = "e846a5bd24d59ed15ba70b3a9d5363a38ca51d09";
-    sha256  = "sha256-RFOpN+tIMfakb7AZN0ock9eq2mytvL0DWedvQV67+ks=";
-    sparseCheckout = "console";
+    sha256 = "sha256-RFOpN+tIMfakb7AZN0ock9eq2mytvL0DWedvQV67+ks=";
+    sparseCheckout = [ "console" ];
   };
 
-  phases = [ "unpackPhase" "installPhase" ];
-
   installPhase = ''
     runHook preInstall
 
diff --git a/nixpkgs/pkgs/data/misc/dbip-country-lite/default.nix b/nixpkgs/pkgs/data/misc/dbip-country-lite/default.nix
new file mode 100644
index 000000000000..ffa2ec24974b
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/dbip-country-lite/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, stdenvNoCC
+, fetchurl
+, dbip-country-lite
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "dbip-country-lite";
+  version = "2023-06";
+
+  src = fetchurl {
+    url = "https://download.db-ip.com/free/dbip-country-lite-${version}.mmdb.gz";
+    hash = "sha256-H+f7OhI03qhgpldF05Nc5ohPIPNhyVRCwiVqeWkvIbc=";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preBuild
+
+    gzip -c -d "$src" > dbip-country-lite.mmdb
+    install -Dm444 dbip-country-lite.mmdb "$out/share/dbip/dbip-country-lite.mmdb"
+
+    runHook postBuild
+  '';
+
+  passthru.mmdb = "${dbip-country-lite}/share/dbip/dbip-country-lite.mmdb";
+
+  meta = with lib; {
+    description = "The free IP to Country Lite database by DB-IP";
+    homepage = "https://db-ip.com/db/download/ip-to-country-lite";
+    license = licenses.cc-by-40;
+    maintainers = with maintainers; [ nickcao ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix b/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix
index 98f1c9e59639..36186b972653 100644
--- a/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix
+++ b/nixpkgs/pkgs/data/misc/ddccontrol-db/default.nix
@@ -1,32 +1,21 @@
 { lib, stdenv
-, autoconf
-, automake
-, libtool
+, autoreconfHook
 , intltool
 , fetchFromGitHub
 }:
 
 stdenv.mkDerivation rec {
   pname = "ddccontrol-db";
-  version = "20220414";
+  version = "20230424";
 
   src = fetchFromGitHub {
     owner = "ddccontrol";
-    repo = "ddccontrol-db";
+    repo = pname;
     rev = version;
-    sha256 = "sha256-HlzwtcrnPnAAa3C1AwfS6P13mfXKXlwdlDDtVLcHPCA=";
+    sha256 = "sha256-qi6dDh6Zk1GpHBpQ+aatAmG9lCdesnJRhK3jVjKYKcQ=";
   };
 
-  preConfigure = ''
-    ./autogen.sh
-  '';
-
-  nativeBuildInputs = [ autoconf automake ];
-  buildInputs =
-    [
-      libtool
-      intltool
-    ];
+  nativeBuildInputs = [ autoreconfHook intltool ];
 
   meta = with lib; {
     description = "Monitor database for DDCcontrol";
diff --git a/nixpkgs/pkgs/data/misc/dns-root-data/default.nix b/nixpkgs/pkgs/data/misc/dns-root-data/default.nix
index e09ff07a9e84..abf945e9df55 100644
--- a/nixpkgs/pkgs/data/misc/dns-root-data/default.nix
+++ b/nixpkgs/pkgs/data/misc/dns-root-data/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "DNS root data including root zone and DNSSEC key";
     maintainers = with maintainers; [ fpletz vcunat ];
+    license = licenses.gpl3Plus;
   };
 }
diff --git a/nixpkgs/pkgs/data/misc/dtv-scan-tables/default.nix b/nixpkgs/pkgs/data/misc/dtv-scan-tables/default.nix
new file mode 100644
index 000000000000..fdd18cec8df4
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/dtv-scan-tables/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, fetchurl
+, v4l-utils
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dtv-scan-tables";
+  version = "2022-04-30-57ed29822750";
+
+  src = fetchurl {
+    url = "https://linuxtv.org/downloads/${pname}/${pname}-${version}.tar.bz2";
+    hash = "sha256-amJoqjkkWTePo6E5IvwBWj+mP/gi9LDWTTPXE1Cm7J4=";
+  };
+
+  nativeBuildInputs = [
+    v4l-utils
+  ];
+
+  sourceRoot = "usr/share/dvb";
+
+  makeFlags = [
+    "PREFIX=$(out)"
+  ];
+
+  allowedReferences = [ ];
+
+  meta = with lib; {
+    # git repo with current revision is here:
+    #downloadPage = "https://git.linuxtv.org/dtv-scan-tables.git";
+    # Weekly releases are supposed to be here
+    downloadPage = "https://linuxtv.org/downloads/dtv-scan-tables/";
+    # but sometimes they lag behind several weeks or even months.
+    description = "Digital TV (DVB) channel/transponder scan tables";
+    homepage = "https://www.linuxtv.org/wiki/index.php/Dtv-scan-tables";
+    license = with licenses; [ gpl2Only lgpl21Only ];
+    longDescription = ''
+      When scanning for dvb channels,
+      most applications require an initial set of
+      transponder coordinates (frequencies etc.).
+      These coordinates differ, depending of the
+      receiver's location or on the satellite.
+      The package delivers a collection of transponder
+      tables ready to be used by software like "dvbv5-scan".
+    '';
+    maintainers = with maintainers; [ yarny ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/fedora-backgrounds/default.nix b/nixpkgs/pkgs/data/misc/fedora-backgrounds/default.nix
index 3089e721a7c9..59bb95b00978 100644
--- a/nixpkgs/pkgs/data/misc/fedora-backgrounds/default.nix
+++ b/nixpkgs/pkgs/data/misc/fedora-backgrounds/default.nix
@@ -31,4 +31,37 @@ in {
     patches = [ ./f34-fix-xfce-path.patch ];
   };
 
+  f35 = fedoraBackground rec {
+    version = "35.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-7t78sQ0BIkzgJ+phO55Bomyz02d8Vx1LAtSkjX8ppgE=";
+    };
+    # Fix broken symlinks in the Xfce background directory.
+    patches = [ ./f35-fix-xfce-path.patch ];
+  };
+
+  f36 = fedoraBackground rec {
+    version = "36.1.2";
+    src = fetchurl {
+      url = "https://github.com/fedoradesign/backgrounds/releases/download/v${version}/f${lib.versions.major version}-backgrounds-${version}.tar.xz";
+      hash = "sha256-DZr1YHltojl02X/3sErqB/29JBDy/7lDZKnHD+KouHc=";
+    };
+  };
+
+  f37 = fedoraBackground rec {
+    version = "37.0.5";
+    src = fetchurl {
+      url = "https://github.com/fedoradesign/backgrounds/releases/download/v${version}/f${lib.versions.major version}-backgrounds-${version}.tar.xz";
+      hash = "sha256-bkjxJDDU0dZURKIK1sd+EOnPt9vvJ5HqHkc6OhPBBn0=";
+    };
+  };
+
+  f38 = fedoraBackground rec {
+    version = "38.1.1";
+    src = fetchurl {
+      url = "https://github.com/fedoradesign/backgrounds/releases/download/v${version}/f${lib.versions.major version}-backgrounds-${version}.tar.xz";
+      hash = "sha256-YSNP7GhS5i5mJDsa4UwsXJm8Tv43r9JxrcYIbkXQKm4=";
+    };
+  };
 }
diff --git a/nixpkgs/pkgs/data/misc/fedora-backgrounds/f35-fix-xfce-path.patch b/nixpkgs/pkgs/data/misc/fedora-backgrounds/f35-fix-xfce-path.patch
new file mode 100644
index 000000000000..425a09cb0ccd
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/fedora-backgrounds/f35-fix-xfce-path.patch
@@ -0,0 +1,26 @@
+diff --git a/default/Makefile b/default/Makefile
+index 2041ce2..f31a0f2 100644
+--- a/default/Makefile
++++ b/default/Makefile
+@@ -1,7 +1,7 @@
+ WP_NAME=f35
+ WP_BIGNAME=F35
+ 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/extras/Makefile b/extras/Makefile
+index 95e92e4..4d43a22 100644
+--- a/extras/Makefile
++++ b/extras/Makefile
+@@ -45,7 +45,7 @@ install:
+ 	    $(LN_S) ../../../../backgrounds/f35/extras/$${theme}.png \
+ 	            $(KDE_BG_DIR)/F35_$${theme}/contents/images/$${res}.png ; \
+ 	  done; \
+-	  $(LN_S) ../backgrounds/f35/extras/$${theme}.png \
++	  $(LN_S) ../../backgrounds/f35/extras/$${theme}.png \
+ 			$(XFCE_BG_DIR)/f35-$${theme}.png ;\
+ 	done;
+ 
diff --git a/nixpkgs/pkgs/data/misc/fedora-backgrounds/generic.nix b/nixpkgs/pkgs/data/misc/fedora-backgrounds/generic.nix
index 5ebc6ff367e9..aa6e4137f521 100644
--- a/nixpkgs/pkgs/data/misc/fedora-backgrounds/generic.nix
+++ b/nixpkgs/pkgs/data/misc/fedora-backgrounds/generic.nix
@@ -31,6 +31,11 @@ stdenvNoCC.mkDerivation {
 
   installFlags = [
     "DESTDIR=$(out)"
+
+    # The Xfce background directory is assumed to be in installed in an
+    # FHS-compliant system. This is only effective for v36.0.0 and later
+    # versions where the following variable is used.
+    "WP_DIR_LN=$(DESTDIR)/share/backgrounds/$(WP_NAME)"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/misc/hackage/default.nix b/nixpkgs/pkgs/data/misc/hackage/default.nix
index 2e8c660d9472..b283f2025e0d 100644
--- a/nixpkgs/pkgs/data/misc/hackage/default.nix
+++ b/nixpkgs/pkgs/data/misc/hackage/default.nix
@@ -2,7 +2,7 @@
 # and callHackage
 { lib, fetchurl }:
 let
-  pin = builtins.fromJSON (builtins.readFile ./pin.json);
+  pin = lib.importJSON ./pin.json;
 in
 fetchurl {
   inherit (pin) url sha256;
diff --git a/nixpkgs/pkgs/data/misc/hackage/pin.json b/nixpkgs/pkgs/data/misc/hackage/pin.json
index 0678176b571d..9208597dc1bf 100644
--- a/nixpkgs/pkgs/data/misc/hackage/pin.json
+++ b/nixpkgs/pkgs/data/misc/hackage/pin.json
@@ -1,6 +1,6 @@
 {
-  "commit": "7a6596613e0d6549f329cb3c2862b035667e0fc3",
-  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/7a6596613e0d6549f329cb3c2862b035667e0fc3.tar.gz",
-  "sha256": "07sm18dn6lsi8xjhfhm7dyw62lpln9wyhafkigc6f3xaqblz3ap4",
-  "msg": "Update from Hackage at 2022-08-07T14:05:30Z"
+  "commit": "4744eb212287f09a540ba7de2a4837b504956ed4",
+  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/4744eb212287f09a540ba7de2a4837b504956ed4.tar.gz",
+  "sha256": "1lwdnjmndmixnv8saq68g45skf9yc3zq9npjm8gv9pdga7vy3m96",
+  "msg": "Update from Hackage at 2023-05-31T06:44:49Z"
 }
diff --git a/nixpkgs/pkgs/data/misc/iana-etc/default.nix b/nixpkgs/pkgs/data/misc/iana-etc/default.nix
index 6f90669b8192..de19347e3403 100644
--- a/nixpkgs/pkgs/data/misc/iana-etc/default.nix
+++ b/nixpkgs/pkgs/data/misc/iana-etc/default.nix
@@ -2,10 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "iana-etc";
-  version = "20220520";
+  version = "20230316";
+
   src = fetchzip {
     url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz";
-    sha256 = "sha256-LSrfNb4fUJEGSPJ+StlAbTE9LbOPDrRJLKTDSkuyoZQ=";
+    sha256 = "sha256-5acFYPSwevEw5tZNbQDpui3stWuMdnhaKHqC8lhnsOY=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/data/misc/libkkc-data/default.nix b/nixpkgs/pkgs/data/misc/libkkc-data/default.nix
index 7fcd2fbf516f..516dd61c60f3 100644
--- a/nixpkgs/pkgs/data/misc/libkkc-data/default.nix
+++ b/nixpkgs/pkgs/data/misc/libkkc-data/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, python2, libkkc }:
+{ lib, stdenv, fetchurl, fetchpatch, python3, libkkc }:
 
 stdenv.mkDerivation rec {
   pname = "libkkc-data";
@@ -9,7 +9,16 @@ stdenv.mkDerivation rec {
     sha256 = "16avb50jasq2f1n9xyziky39dhlnlad0991pisk3s11hl1aqfrwy";
   };
 
-  nativeBuildInputs = [ python2.pkgs.marisa ];
+  patches = [
+    (fetchpatch {
+      name = "build-python3.patch";
+      url = "https://github.com/ueno/libkkc/commit/ba1c1bd3eb86d887fc3689c3142732658071b5f7.patch";
+      relative = "data/templates/libkkc-data";
+      hash = "sha256-q4zUclJtDQ1E5v2PW00zRZz6GXllLUcp2h3tugufrRU=";
+    })
+  ];
+
+  nativeBuildInputs = [ python3.pkgs.marisa ];
 
   strictDeps = true;
 
diff --git a/nixpkgs/pkgs/data/misc/media-player-info/default.nix b/nixpkgs/pkgs/data/misc/media-player-info/default.nix
index 56e4ace41f4d..652298d1656d 100644
--- a/nixpkgs/pkgs/data/misc/media-player-info/default.nix
+++ b/nixpkgs/pkgs/data/misc/media-player-info/default.nix
@@ -1,31 +1,28 @@
 { lib, stdenv, fetchurl, pkg-config, python3, udev, systemd }:
 
-let
-  name = "media-player-info-24";
-in
+stdenv.mkDerivation rec {
+  pname = "media-player-info";
+  version = "24";
 
-  stdenv.mkDerivation {
-    inherit name;
+  src = fetchurl {
+    url = "https://www.freedesktop.org/software/media-player-info/${pname}-${version}.tar.gz";
+    sha256 = "0d0i7av8v369hzvlynwlrbickv1brlzsmiky80lrjgjh1gdldkz6";
+  };
 
-    src = fetchurl {
-      url = "https://www.freedesktop.org/software/media-player-info/${name}.tar.gz";
-      sha256 = "0d0i7av8v369hzvlynwlrbickv1brlzsmiky80lrjgjh1gdldkz6";
-    };
+  buildInputs = [ udev systemd ];
+  nativeBuildInputs = [ pkg-config python3 ];
 
-    buildInputs = [ udev systemd ];
-    nativeBuildInputs = [ pkg-config python3 ];
+  postPatch = ''
+    patchShebangs ./tools
+  '';
 
-    postPatch = ''
-      patchShebangs ./tools
-    '';
+  configureFlags = [ "--with-udevdir=${placeholder "out"}/lib/udev" ];
 
-    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;
-    };
-  }
+  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/mobile-broadband-provider-info/default.nix b/nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix
index 85f45ec516df..4113b3500188 100644
--- a/nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix
+++ b/nixpkgs/pkgs/data/misc/mobile-broadband-provider-info/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mobile-broadband-provider-info";
-  version = "20220725";
+  version = "20230416";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-SEWuAcKH8t+wIrxi1ZoUiHP/xKZz9RAgViZXQm1jKs0=";
+    sha256 = "sha256-4+FAqi23abKZ0d+GqJDpSKuZ1NOIMTAsRS0ft/hWiuw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/data/misc/osinfo-db/default.nix b/nixpkgs/pkgs/data/misc/osinfo-db/default.nix
index ba912854f7c7..e563c2133187 100644
--- a/nixpkgs/pkgs/data/misc/osinfo-db/default.nix
+++ b/nixpkgs/pkgs/data/misc/osinfo-db/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "osinfo-db";
-  version = "20220727";
+  version = "20230308";
 
   src = fetchurl {
     url = "https://releases.pagure.org/libosinfo/${pname}-${version}.tar.xz";
-    sha256 = "sha256-IpHlI07Ymagww28rQFb/XnYjX0uge1k0IfSGUpBjTV4=";
+    sha256 = "sha256-VGugTsxekzui1/PztDM6KYDUrk38UoSYm5xUdY8rkIg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/data/misc/papirus-folders/default.nix b/nixpkgs/pkgs/data/misc/papirus-folders/default.nix
index 92bfe362bcda..24fbeb0b0e23 100644
--- a/nixpkgs/pkgs/data/misc/papirus-folders/default.nix
+++ b/nixpkgs/pkgs/data/misc/papirus-folders/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "papirus-folders";
-  version = "1.12.0";
+  version = "1.12.1";
 
   src = fetchFromGitHub {
     owner = "PapirusDevelopmentTeam";
     repo = "papirus-folders";
     rev = "v${version}";
-    sha256 = "sha256-ZZMEZCWO+qW76eqa+TgxWGVz69VkSCPcttLoCrH7ppY=";
+    sha256 = "sha256-Dus9f2m5Wj46Url7N3UYEvBAankppzGzdJHGPH3CT3g=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/data/misc/poppler-data/default.nix b/nixpkgs/pkgs/data/misc/poppler-data/default.nix
index 6d35279b6de2..392761a9bd25 100644
--- a/nixpkgs/pkgs/data/misc/poppler-data/default.nix
+++ b/nixpkgs/pkgs/data/misc/poppler-data/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "poppler-data";
-  version = "0.4.11";
+  version = "0.4.12";
 
   src = fetchurl {
     url = "https://poppler.freedesktop.org/${pname}-${version}.tar.gz";
-    sha256 = "LOwFzRuwOvmKiwah4i9ubhplseLzgWyzBpuwh0gl8Iw=";
+    sha256 = "yDW2QKQM41fhuDZmqr2V7f+iTd3dSbja/2OtuFHNq3Q=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/data/misc/publicsuffix-list/default.nix b/nixpkgs/pkgs/data/misc/publicsuffix-list/default.nix
index db74b74f22d9..d5608036b5e3 100644
--- a/nixpkgs/pkgs/data/misc/publicsuffix-list/default.nix
+++ b/nixpkgs/pkgs/data/misc/publicsuffix-list/default.nix
@@ -1,18 +1,24 @@
-{ lib, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-let
+stdenvNoCC.mkDerivation {
   pname = "publicsuffix-list";
-  version = "2021-09-03";
-in fetchFromGitHub {
-  name = "${pname}-${version}";
-  owner = "publicsuffix";
-  repo = "list";
-  rev = "2533d032871e1ef1f410fc0754b848d4587c8021";
-  sha256 = "sha256-Q8uIXM1CMu8dlWcVoL17M1XRGu3kG7Y7jpx0oHQh+2I=";
+  version = "unstable-2023-02-16";
+
+  src = fetchFromGitHub {
+    owner = "publicsuffix";
+    repo = "list";
+    rev = "8ec4d3049fe139f92937b6137155c33b81dcaf18";
+    hash = "sha256-wA8zk0iADFNP33veIf+Mfx22zdMzHsMNWEizMp1SnuA=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar xf $downloadedFile --strip=1
     install -Dm0444 public_suffix_list.dat tests/test_psl.txt -t $out/share/publicsuffix
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/misc/scowl/default.nix b/nixpkgs/pkgs/data/misc/scowl/default.nix
index e1709ae35cf3..4bfe201beb48 100644
--- a/nixpkgs/pkgs/data/misc/scowl/default.nix
+++ b/nixpkgs/pkgs/data/misc/scowl/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ unzip zip perl aspell dos2unix ];
   buildInputs = lib.optional (!stdenv.isLinux) libiconv;
 
-  NIX_CFLAGS_COMPILE = "-Wno-narrowing";
+  env.NIX_CFLAGS_COMPILE = "-Wno-narrowing";
 
   preConfigure = ''
     patchShebangs .
diff --git a/nixpkgs/pkgs/data/misc/shared-desktop-ontologies/default.nix b/nixpkgs/pkgs/data/misc/shared-desktop-ontologies/default.nix
index fd797d8d63f0..fdbd2991cdee 100644
--- a/nixpkgs/pkgs/data/misc/shared-desktop-ontologies/default.nix
+++ b/nixpkgs/pkgs/data/misc/shared-desktop-ontologies/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    homepage = "http://oscaf.sourceforge.net/";
+    homepage = "https://oscaf.sourceforge.net/";
     description = "Ontologies necessary for the Nepomuk semantic desktop";
     longDescription = ''
       The shared-desktop-ontologies package brings the semantic web to the
diff --git a/nixpkgs/pkgs/data/misc/sing-geoip/default.nix b/nixpkgs/pkgs/data/misc/sing-geoip/default.nix
new file mode 100644
index 000000000000..b27a61ef0201
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/sing-geoip/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, stdenvNoCC
+, buildGoModule
+, fetchFromGitHub
+, dbip-country-lite
+}:
+
+let
+  generator = buildGoModule rec {
+    pname = "sing-geoip";
+    version = "20230512";
+
+    src = fetchFromGitHub {
+      owner = "SagerNet";
+      repo = pname;
+      rev = "refs/tags/${version}";
+      hash = "sha256-Zm+5N/37hoHpH/TLNJrHeaBXI8G1jEpM1jz6Um8edNE=";
+    };
+
+    vendorHash = "sha256-ejXAdsJwXhqet+Ca+pDLWwu0gex79VcIxW6rmhRnbTQ=";
+
+    meta = with lib; {
+      description = "GeoIP data for sing-box";
+      homepage = "https://github.com/SagerNet/sing-geoip";
+      license = licenses.gpl3Plus;
+      maintainers = with maintainers; [ linsui ];
+    };
+  };
+in
+stdenvNoCC.mkDerivation rec {
+  inherit (generator) pname;
+  inherit (dbip-country-lite) version;
+
+  dontUnpack = true;
+
+  nativeBuildInputs = [ generator ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    ${pname} ${dbip-country-lite.mmdb} geoip.db
+    ${pname} ${dbip-country-lite.mmdb} geoip-cn.db cn
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 geoip.db $out/share/sing-box/geoip.db
+    install -Dm644 geoip-cn.db $out/share/sing-box/geoip-cn.db
+
+    runHook postInstall
+  '';
+
+  passthru = { inherit generator; };
+
+  meta = generator.meta // {
+    inherit (dbip-country-lite.meta) license;
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/sing-geosite/default.nix b/nixpkgs/pkgs/data/misc/sing-geosite/default.nix
new file mode 100644
index 000000000000..55ba01c61559
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/sing-geosite/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, substituteAll
+, v2ray-domain-list-community
+}:
+
+let
+  patch = substituteAll {
+    src = ./main.go;
+    geosite_data = "${v2ray-domain-list-community}/share/v2ray/geosite.dat";
+  };
+in
+buildGoModule rec {
+  pname = "sing-geosite";
+  inherit (v2ray-domain-list-community) version;
+
+  src = fetchFromGitHub {
+    owner = "SagerNet";
+    repo = "sing-geosite";
+    rev = "4a32d56c1705f77668beb5828df0b0a051efdeb9";
+    hash = "sha256-P/EBcwJI2G9327BNi84R+q6BABx9DEKpN6ETTp8Q4NU=";
+  };
+
+  vendorHash = "sha256-uQOmUXT2wd40DwwTCMnFFKd47eu+BPBDjiCGtUNFoKY=";
+
+  patchPhase = ''
+    sed -i -e '/func main()/,/^}/d' -e '/"io"/a "io/ioutil"' main.go
+    cat ${patch} >> main.go
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+    go run -v .
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm644 geosite.db $out/share/sing-box/geosite.db
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "community managed domain list";
+    homepage = "https://github.com/SagerNet/sing-geosite";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ linsui ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/misc/sing-geosite/main.go b/nixpkgs/pkgs/data/misc/sing-geosite/main.go
new file mode 100644
index 000000000000..d059d99ffe1e
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/sing-geosite/main.go
@@ -0,0 +1,19 @@
+func main() {
+	outputFile, err := os.Create("geosite.db")
+	if err != nil {
+		panic(err)
+	}
+	defer outputFile.Close()
+	vData, err := ioutil.ReadFile("@geosite_data@")
+	if err != nil {
+		panic(err)
+	}
+	domainMap, err := parse(vData)
+	if err != nil {
+		panic(err)
+	}
+	err = geosite.Write(outputFile, domainMap)
+	if err != nil {
+		panic(err)
+	}
+}
diff --git a/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix b/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix
index 20778f1e5e91..2cbcad3fb880 100644
--- a/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix
+++ b/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "spdx-license-list-data";
-  version = "3.18";
+  version = "3.20";
 
   src = fetchFromGitHub {
     owner = "spdx";
     repo = "license-list-data";
     rev = "v${version}";
-    hash = "sha256-iXuGJzURcRyiq2rVP5jabOmFByF0YuiZg4HPCM6mk3A=";
+    hash = "sha256-qMVUP1EpeeO+i5RfnAt/Idz+pR9dVyCT4Ss9lEJgj6k=";
   };
 
   # List of file formats to package.
diff --git a/nixpkgs/pkgs/data/misc/tzdata/0001-Add-exe-extension-for-MS-Windows-binaries.patch b/nixpkgs/pkgs/data/misc/tzdata/0001-Add-exe-extension-for-MS-Windows-binaries.patch
new file mode 100644
index 000000000000..af90ce57949a
--- /dev/null
+++ b/nixpkgs/pkgs/data/misc/tzdata/0001-Add-exe-extension-for-MS-Windows-binaries.patch
@@ -0,0 +1,15 @@
+diff --git a/Makefile b/Makefile
+index a9a989e..4da737b 100644
+--- a/Makefile
++++ b/Makefile
+@@ -606,8 +606,8 @@ install:	all $(DATA) $(REDO) $(MANS)
+ 			-t '$(DESTDIR)$(TZDEFAULT)'
+ 		cp -f $(TABDATA) '$(DESTDIR)$(TZDIR)/.'
+ 		cp tzselect '$(DESTDIR)$(BINDIR)/.'
+-		cp zdump '$(DESTDIR)$(ZDUMPDIR)/.'
+-		cp zic '$(DESTDIR)$(ZICDIR)/.'
++		cp zdump.exe '$(DESTDIR)$(ZDUMPDIR)/.'
++		cp zic.exe '$(DESTDIR)$(ZICDIR)/.'
+ 		cp libtz.a '$(DESTDIR)$(LIBDIR)/.'
+ 		$(RANLIB) '$(DESTDIR)$(LIBDIR)/libtz.a'
+ 		cp -f newctime.3 newtzset.3 '$(DESTDIR)$(MANDIR)/man3/.'
diff --git a/nixpkgs/pkgs/data/misc/tzdata/default.nix b/nixpkgs/pkgs/data/misc/tzdata/default.nix
index b149f448da72..98aeb7638e12 100644
--- a/nixpkgs/pkgs/data/misc/tzdata/default.nix
+++ b/nixpkgs/pkgs/data/misc/tzdata/default.nix
@@ -2,21 +2,25 @@
 
 stdenv.mkDerivation rec {
   pname = "tzdata";
-  version = "2022a";
+  version = "2023c";
 
-  srcs =
-    [ (fetchurl {
-        url = "https://data.iana.org/time-zones/releases/tzdata${version}.tar.gz";
-        sha256 = "0r0nhwpk9nyxj5kkvjy58nr5d85568m04dcb69c4y3zmykczyzzg";
-      })
-      (fetchurl {
-        url = "https://data.iana.org/time-zones/releases/tzcode${version}.tar.gz";
-        sha256 = "1iysv8fdkm79k8wh8jizmjmq075q4qjhk090vxjy57my6dz5wmzq";
-      })
-    ];
+  srcs = [
+    (fetchurl {
+      url = "https://data.iana.org/time-zones/releases/tzdata${version}.tar.gz";
+      hash = "sha256-P1ELXRtK6bs45IWqMCp3azF/s2N722QExK33tsrdllw=";
+    })
+    (fetchurl {
+      url = "https://data.iana.org/time-zones/releases/tzcode${version}.tar.gz";
+      hash = "sha256-RtF/K7Ga1zKQ8DogMAYVLg+g17EeW3FGfEqCOBGyFOc=";
+    })
+  ];
 
   sourceRoot = ".";
 
+  patches = lib.optionals stdenv.hostPlatform.isWindows [
+    ./0001-Add-exe-extension-for-MS-Windows-binaries.patch
+  ];
+
   outputs = [ "out" "bin" "man" "dev" ];
   propagatedBuildOutputs = [];
 
@@ -34,22 +38,18 @@ stdenv.mkDerivation rec {
     "CFLAGS+=-DZIC_BLOAT_DEFAULT=\\\"fat\\\""
     "cc=${stdenv.cc.targetPrefix}cc"
     "AR=${stdenv.cc.targetPrefix}ar"
+  ] ++ lib.optionals stdenv.hostPlatform.isWindows [
+    "CFLAGS+=-DHAVE_DIRECT_H"
+    "CFLAGS+=-DHAVE_SETENV=0"
+    "CFLAGS+=-DHAVE_SYMLINK=0"
+    "CFLAGS+=-DRESERVE_STD_EXT_IDS"
   ];
 
-  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
-  '';
+  installFlags = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+    "zic=${buildPackages.tzdata.bin}/bin/zic"
+  ];
 
   postInstall =
     ''
diff --git a/nixpkgs/pkgs/data/misc/unicode-character-database/default.nix b/nixpkgs/pkgs/data/misc/unicode-character-database/default.nix
index 26d31a292119..3c21a6f29560 100644
--- a/nixpkgs/pkgs/data/misc/unicode-character-database/default.nix
+++ b/nixpkgs/pkgs/data/misc/unicode-character-database/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "unicode-character-database";
-  version = "14.0.0";
+  version = "15.0.0";
 
   src = fetchurl {
     url = "https://www.unicode.org/Public/zipped/${version}/UCD.zip";
-    sha256 = "sha256-AzpSdrXXr4hEWJ+ONILzl3qDhecdEH03UFVGUXjCNgA=";
+    sha256 = "sha256-X73kAPPmh9JcybCo0w12GedssvTD6Fup347BMSy2cYw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/data/misc/unicode-emoji/default.nix b/nixpkgs/pkgs/data/misc/unicode-emoji/default.nix
index 9fe9ff78f804..ae14a27c8b7f 100644
--- a/nixpkgs/pkgs/data/misc/unicode-emoji/default.nix
+++ b/nixpkgs/pkgs/data/misc/unicode-emoji/default.nix
@@ -1,35 +1,46 @@
 { lib
+, stdenvNoCC
 , fetchurl
 , symlinkJoin
 }:
 
 let
-  version = "14.0";
-
-  fetchData = { file, sha256 }: fetchurl {
-    url = "https://www.unicode.org/Public/emoji/${version}/${file}";
-    inherit sha256;
-    downloadToTemp = true;
-    recursiveHash = true;
-    postFetch = ''
+  version = "15.0";
+
+  fetchData = { suffix, hash }: stdenvNoCC.mkDerivation {
+    pname = "unicode-emoji-${suffix}";
+    inherit version;
+
+    src = fetchurl {
+      url = "https://www.unicode.org/Public/emoji/${version}/emoji-${suffix}.txt";
+      inherit hash;
+    };
+
+    dontUnpack = true;
+
+    installPhase = ''
+      runHook preInstall
+
       installDir="$out/share/unicode/emoji"
       mkdir -p "$installDir"
-      mv "$downloadedFile" "$installDir/${file}"
+      cp "$src" "$installDir/emoji-${suffix}.txt"
+
+      runHook postInstall
     '';
   };
 
   srcs = {
     emoji-sequences = fetchData {
-      file = "emoji-sequences.txt";
-      sha256 = "sha256-4helD/0oe+UmNIuVxPx/P0R9V10EY/RccewdeemeGxE=";
+      suffix = "sequences";
+      hash = "sha256-XCIi2KQy2JagMaaML1SwT79HsPzi5phT8euKPpRetW0=";
     };
     emoji-test = fetchData {
-      file = "emoji-test.txt";
-      sha256 = "sha256-DDOVhnFzfvowINzBZ7dGYMZnL4khyRWVzrLL95djsUg=";
+      suffix = "test";
+      hash = "sha256-hEXyOsg4jglr4Z0CYuFPzv+Fb/Ugk/I1bciUhfGoU9s=";
     };
     emoji-zwj-sequences = fetchData {
-      file = "emoji-zwj-sequences.txt";
-      sha256 = "sha256-owlGLICFkyEsIHz/DUZucxjBmgVO40A69BCJPbIYDA0=";
+      suffix = "zwj-sequences";
+      hash = "sha256-/jV/kRe3dGZ2Bjdl1YcTft+bJZA6eSvVSTW/CFZ5EYI=";
     };
   };
 in
diff --git a/nixpkgs/pkgs/data/misc/unihan-database/default.nix b/nixpkgs/pkgs/data/misc/unihan-database/default.nix
index 8fb065d6b00d..fc0826d7f283 100644
--- a/nixpkgs/pkgs/data/misc/unihan-database/default.nix
+++ b/nixpkgs/pkgs/data/misc/unihan-database/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "unihan-database";
-  version = "14.0.0";
+  version = "15.0.0";
 
   src = fetchurl {
     url = "https://www.unicode.org/Public/zipped/${version}/Unihan.zip";
-    hash = "sha256-KuRRmyuCzU0VN5wX5Xv7EsM8D1TaSXfeA7KwS88RhS0=";
+    hash = "sha256-JLFUaR/JfLRCZ7kl1iBkKXCGs/iWtXqBgce21CcCoCY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix b/nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix
index 8fc5d744850e..0f89ee5cf3f1 100644
--- a/nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix
+++ b/nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix
@@ -3,14 +3,14 @@
 let
   generator = pkgsBuildBuild.buildGoModule rec {
     pname = "v2ray-domain-list-community";
-    version = "20220808014309";
+    version = "20230601044045";
     src = fetchFromGitHub {
       owner = "v2fly";
       repo = "domain-list-community";
       rev = version;
-      sha256 = "sha256-pqe6AjXDTN71tShD41/tQFljRiH7qJaZ8w5lcTs6dxk=";
+      hash = "sha256-AVJinqMaVIxq6Tne1b5N6yuszLQ0sgmAtH+sd+sbInA=";
     };
-    vendorSha256 = "sha256-Igx8yGWWVmVEogvbrosaK13LVs+ZZuYLBNji7iSfzdo=";
+    vendorHash = "sha256-lPOn296ngMCYdXoGNDG9okkLC5ryjKIL+UP98lyaKcg=";
     meta = with lib; {
       description = "community managed domain list";
       homepage = "https://github.com/v2fly/domain-list-community";
diff --git a/nixpkgs/pkgs/data/misc/v2ray-geoip/default.nix b/nixpkgs/pkgs/data/misc/v2ray-geoip/default.nix
index 0788bff7f368..5dbaa6c9c93b 100644
--- a/nixpkgs/pkgs/data/misc/v2ray-geoip/default.nix
+++ b/nixpkgs/pkgs/data/misc/v2ray-geoip/default.nix
@@ -1,28 +1,69 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, pkgsBuildBuild
+, jq
+, moreutils
+, dbip-country-lite
+}:
 
-stdenv.mkDerivation rec {
-  pname = "v2ray-geoip";
-  version = "202208040058";
+let
+  generator = pkgsBuildBuild.buildGoModule {
+    pname = "v2ray-geoip";
+    version = "unstable-2023-03-27";
 
-  src = fetchFromGitHub {
-    owner = "v2fly";
-    repo = "geoip";
-    rev = "97174fe0eeb28838b0e5e805687d230df773e661";
-    sha256 = "sha256-hodJ4HQHbv9voSS847pAHd3YSmfkV7fKyJhEUApVN+w=";
+    src = fetchFromGitHub {
+      owner = "v2fly";
+      repo = "geoip";
+      rev = "9321a7f5e301a957228eba44845144b4555b6658";
+      hash = "sha256-S30XEgzA9Vrq7I7REfO/WN/PKpcjcI7KZnrL4uw/Chs=";
+    };
+
+    vendorHash = "sha256-bAXeA1pDIUuEvzTLydUIX6S6fm6j7CUQmBG+7xvxUcc=";
+
+    meta = with lib; {
+      description = "GeoIP for V2Ray";
+      homepage = "https://github.com/v2fly/geoip";
+      license = licenses.cc-by-sa-40;
+      maintainers = with maintainers; [ nickcao ];
+    };
   };
+  input = {
+    type = "maxmindMMDB";
+    action = "add";
+    args = {
+      uri = dbip-country-lite.mmdb;
+    };
+  };
+in
+stdenvNoCC.mkDerivation {
+  inherit (generator) pname src;
+  inherit (dbip-country-lite) version;
+
+  nativeBuildInputs = [
+    jq
+    moreutils
+  ];
+
+  postPatch = ''
+    jq '.input[0] |= ${builtins.toJSON input}' config.json | sponge config.json
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+    ${generator}/bin/geoip
+    runHook postBuild
+  '';
 
   installPhase = ''
     runHook preInstall
-    install -m 0644 geoip.dat -D $out/share/v2ray/geoip.dat
+    install -Dm444 -t "$out/share/v2ray" output/dat/{cn,geoip-only-cn-private,geoip,private}.dat
     runHook postInstall
   '';
 
-  passthru.updateScript = ./update.sh;
+  passthru.generator = generator;
 
-  meta = with lib; {
-    description = "GeoIP for V2Ray";
-    homepage = "https://github.com/v2fly/geoip";
-    license = licenses.cc-by-sa-40;
-    maintainers = with maintainers; [ nickcao ];
+  meta = generator.meta // {
+    inherit (dbip-country-lite.meta) license;
   };
 }
diff --git a/nixpkgs/pkgs/data/misc/v2ray-geoip/update.sh b/nixpkgs/pkgs/data/misc/v2ray-geoip/update.sh
deleted file mode 100755
index e39012e30a51..000000000000
--- a/nixpkgs/pkgs/data/misc/v2ray-geoip/update.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#! /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
index 1bf0abc41ae5..873a5d599b94 100644
--- a/nixpkgs/pkgs/data/misc/wireless-regdb/default.nix
+++ b/nixpkgs/pkgs/data/misc/wireless-regdb/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "wireless-regdb";
-  version = "2022.08.12";
+  version = "2023.05.03";
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/network/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-Wcj30Xlm23Gyf5DnNe6PW0LKNSdpSoxebptWvTecO4Q=";
+    sha256 = "sha256-8lTQirN2WuriuFYiLhGpXUSu9RmmZjh3xx72j65MjBI=";
   };
 
   dontBuild = true;
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
index f05788076a69..9a81fbb6e1b4 100644
--- a/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix
+++ b/nixpkgs/pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
     ''; # */
 
   meta = {
-    homepage = "http://www.w3.org/TR/xhtml1/";
+    homepage = "https://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/themes/adapta-kde/default.nix b/nixpkgs/pkgs/data/themes/adapta-kde/default.nix
index 4feeeaa6c002..a93e78480b00 100644
--- a/nixpkgs/pkgs/data/themes/adapta-kde/default.nix
+++ b/nixpkgs/pkgs/data/themes/adapta-kde/default.nix
@@ -13,11 +13,6 @@ stdenv.mkDerivation rec {
 
   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";
diff --git a/nixpkgs/pkgs/data/themes/adi1090x-plymouth-themes/default.nix b/nixpkgs/pkgs/data/themes/adi1090x-plymouth-themes/default.nix
new file mode 100644
index 000000000000..10356feed623
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/adi1090x-plymouth-themes/default.nix
@@ -0,0 +1,63 @@
+{
+  stdenv,
+  fetchurl,
+  lib,
+  unzip,
+  # To select only certain themes, pass `selected_themes` as a list of strings.
+  # reference ./shas.nix for available themes
+  selected_themes ? [],
+}: let
+  version = "2020-12-28";
+  # this file is generated via ./update.sh
+  # borrowed from pkgs/data/fonts/nerdfonts
+  themeShas = import ./shas.nix;
+  knownThemes = builtins.attrNames themeShas;
+  selectedThemes =
+    if (selected_themes == [])
+    then knownThemes
+    else let
+      unknown = lib.subtractLists knownThemes selected_themes;
+    in
+      if (unknown != [])
+      then throw "Unknown theme(s): ${lib.concatStringsSep " " unknown}"
+      else selected_themes;
+  srcs = lib.lists.forEach selectedThemes (
+    name: (fetchurl {
+      url = themeShas.${name}.url;
+      sha256 = themeShas.${name}.sha;
+    })
+  );
+in
+  stdenv.mkDerivation {
+    pname = "adi1090x-plymouth-themes";
+    inherit version srcs;
+
+    nativeBuildInputs = [
+      unzip
+    ];
+
+    sourceRoot = ".";
+    unpackCmd = "tar xzf $curSrc";
+
+    installPhase = ''
+      mkdir -p $out/share/plymouth/themes
+      for theme in ${toString selectedThemes}; do
+        mv $theme $out/share/plymouth/themes/$theme
+      done
+      find $out/share/plymouth/themes/ -name \*.plymouth -exec sed -i "s@\/usr\/@$out\/@" {} \;
+    '';
+
+    meta = with lib; {
+      description = "Plymouth boot themes from adi1090x";
+      longDescription = ''
+        A variety of plymouth boot screens by adi1090x.  Using the default value
+        of `selected_themes` will install all themes (~524M).  Consider overriding
+        this with a list of the string names of each theme to install.  Check
+        ./shas.nix for available themes.
+      '';
+      homepage = "https://github.com/adi1090x/plymouth-themes";
+      license = licenses.gpl3;
+      platforms = platforms.linux;
+      maintainers = with maintainers; [slwst];
+    };
+  }
diff --git a/nixpkgs/pkgs/data/themes/adi1090x-plymouth-themes/shas.nix b/nixpkgs/pkgs/data/themes/adi1090x-plymouth-themes/shas.nix
new file mode 100644
index 000000000000..cb128478cdfe
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/adi1090x-plymouth-themes/shas.nix
@@ -0,0 +1,322 @@
+{
+  "abstract_ring" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_1/abstract_ring.tar.gz";
+    sha = "133gifr4571b14ci44jmm49j91yhq785yx4b3h6yvx0188liibr2";
+  };
+  "abstract_ring_alt" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_1/abstract_ring_alt.tar.gz";
+    sha = "157yg2y4vfwjfly2paq2xn1p6h2wrbvvzwy4lbpbhlmhyhrymjvj";
+  };
+  "alienware" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_1/alienware.tar.gz";
+    sha = "1i3i0gj927drbgivcx3fqj6fqdwm2gqy0wrwfkdqdjyqzq1286a5";
+  };
+  "angular" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_1/angular.tar.gz";
+    sha = "06n3ix7k8zpraqc75wy4fnk1bzcyhfajjxjq9kyy470wgsjrw6p4";
+  };
+  "angular_alt" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_1/angular_alt.tar.gz";
+    sha = "1l1iy9p0k4a8mcdps30avscjp6wfv20m9zy376r18y7xwcz19qbj";
+  };
+  "black_hud" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_1/black_hud.tar.gz";
+    sha = "13y32zxcshnfyjxs0r7f1sz010sr6brsaap90im2cb4rlvp0ajsz";
+  };
+  "blockchain" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_1/blockchain.tar.gz";
+    sha = "1f60nvrk506bqw47g90wzbvn3bp5h1gbi0ll5f3bd6wj77qfk05i";
+  };
+  "circle" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_1/circle.tar.gz";
+    sha = "04085lkh4i5diszpr1w5xnhnngp8ba1ckalcjj5s8hm8lk6wd4nc";
+  };
+  "circle_alt" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_1/circle_alt.tar.gz";
+    sha = "0awbjrd31fv2cb0q7n58h5iji29di8n550bmpz5qdg6xn55baqqx";
+  };
+  "circle_flow" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_1/circle_flow.tar.gz";
+    sha = "0ffxgjmx5la55dn3nyqgxi8fyd1ci4wckmvfaa6s1kyd7xsk8785";
+  };
+  "circle_hud" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_1/circle_hud.tar.gz";
+    sha = "0sd28d0ac7wvkwmbrnvg42bccz6y4iyl2wp1pg7awwjxvag0azlf";
+  };
+  "circuit" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_1/circuit.tar.gz";
+    sha = "1jzlr6c47n3zs0f1cafgjy92sks5060d1gs0774kxc0c96bysypg";
+  };
+  "colorful" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_1/colorful.tar.gz";
+    sha = "18lbyffvhdav5cjh0xnidf09amryf5dcj5rizl9z7ghxpz2z57pr";
+  };
+  "colorful_loop" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_1/colorful_loop.tar.gz";
+    sha = "0qcn19gxl9w2q0w7lihi8wnlwlh8h3k0ddbp3ww9wcw1q0wsy1vi";
+  };
+  "colorful_sliced" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_1/colorful_sliced.tar.gz";
+    sha = "0d9lafg76w2y77ywj1f1p5n1ci2q9jnfqfd16akf6f28h0iz1f9r";
+  };
+  "connect" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_1/connect.tar.gz";
+    sha = "1a0z59l391xv795d8mhcwa816wlmzyl75pwiizvvra2a0i8g6wz0";
+  };
+  "cross_hud" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_1/cross_hud.tar.gz";
+    sha = "188wj6hkvryawmw4r3bwcsvqxx52h10jb4ddq3jx7sh2rz1kpvwa";
+  };
+  "cubes" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_1/cubes.tar.gz";
+    sha = "0bydagjwfkvbhgr7sv903a7pjkrmrdz6vh22i4qjx5rhzw2wvvsk";
+  };
+  "cuts" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_1/cuts.tar.gz";
+    sha = "0znz82zzgyqkfprvzhkzv974amcnxqdg38ajsm4d7wlagc52zs0d";
+  };
+  "cuts_alt" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_1/cuts_alt.tar.gz";
+    sha = "1bgs4v5kkh96m1xh29wjmdxinfsxh4g7lg9fk1nqj87igdg7wwss";
+  };
+  "cyanide" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_2/cyanide.tar.gz";
+    sha = "04aklg9il310iv7zjpan6z4ha7gvh1b0yzgwi91679vm38cg0593";
+  };
+  "cybernetic" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_2/cybernetic.tar.gz";
+    sha = "0ad75fcra24bjzs4pqn89l19wb4rcjph63j71lv60m0rz75vgjfb";
+  };
+  "dark_planet" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_2/dark_planet.tar.gz";
+    sha = "03i2knrfi56f8lbc8hs8rqa4jg432nsmjn74wibb04ppmvm8f47j";
+  };
+  "darth_vader" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_2/darth_vader.tar.gz";
+    sha = "0mlxy17l1hjf3nq390wc26n4x3c45n5hmks75zkzjz3l5ac1fah6";
+  };
+  "deus_ex" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_2/deus_ex.tar.gz";
+    sha = "1mllj0xj9g1nn01vcq0xsfcwd0qnmk1s3vj5d03f9qp513k8qzdl";
+  };
+  "dna" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_2/dna.tar.gz";
+    sha = "0xcf4vxd99w3d44bhrdk1yqsfcakix6cd7hdpjsgccgs1jd02hi1";
+  };
+  "double" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_2/double.tar.gz";
+    sha = "07gxkzqrp0cfisdkq0wqfiai37m2yr2fhcpdpazmzkkxnm4qf25y";
+  };
+  "dragon" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_2/dragon.tar.gz";
+    sha = "0ypr1vyl6zilfzncymlh2s1ivxr7n88kfaygmz2y83l332asjs66";
+  };
+  "flame" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_2/flame.tar.gz";
+    sha = "0kvly5rgp47a4lby3blb1dird9xwy9y9c8a0wg17qfvz3zr69r0g";
+  };
+  "glitch" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_2/glitch.tar.gz";
+    sha = "0s0kmrw01wj9i7qd7zbwvmfbbh7r3jfkc4522jv44m4rl6r4h84c";
+  };
+  "glowing" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_2/glowing.tar.gz";
+    sha = "19nkbk2cw6j763idz5z7l71lx529xcgyx1dcd9qd356x9ifdw206";
+  };
+  "green_blocks" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_2/green_blocks.tar.gz";
+    sha = "0x8pgsyfbchy7z6d4rijsk2nml6fl1xwba0f0h3lw9i6359k7j3j";
+  };
+  "green_loader" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_2/green_loader.tar.gz";
+    sha = "00rdpy1gbc4ikxx487w3k27z622z2rjcsi0d18i23s5p3xqd1l3a";
+  };
+  "hexagon" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_2/hexagon.tar.gz";
+    sha = "0yk47hs5qfv09q5df4x6j82ivrxfxh1bxsw8p8x7hcmlb08dh6g6";
+  };
+  "hexagon_2" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_2/hexagon_2.tar.gz";
+    sha = "175im23q769s2if3xi8j669r0b5y0dagz8rsbvq7kghznzw4abc2";
+  };
+  "hexagon_alt" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_2/hexagon_alt.tar.gz";
+    sha = "1ayhw1gzrb98hf7f77b6ka5wi19ymp3mljhhgm5lx8w8pwawsxnb";
+  };
+  "hexagon_dots" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_2/hexagon_dots.tar.gz";
+    sha = "0pdw9ih9fsxvv394yc5vfj7nlq7mca9w05y0s631gnsdzgqxsyd6";
+  };
+  "hexagon_dots_alt" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_2/hexagon_dots_alt.tar.gz";
+    sha = "0aff3bgpva41b4jk4mp0fxdvli286x4pk3q9ysvps7z7srw4fvvn";
+  };
+  "hexagon_hud" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_2/hexagon_hud.tar.gz";
+    sha = "0wpmsffdp59dy2g5ggprgr7l50rf131c7v8pbgpir230lpn10xzi";
+  };
+  "hexagon_red" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_2/hexagon_red.tar.gz";
+    sha = "0fgmma5j6fnjykpwplji4rm57d07l9shfpay079gz1nhbhnq3rkl";
+  };
+  "hexa_retro" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_3/hexa_retro.tar.gz";
+    sha = "1cbyhqhv2ysx9w8cpbfidrm0w70wssp4fld0q1g01fgcbg93b7mf";
+  };
+  "hud" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_3/hud.tar.gz";
+    sha = "0s01p1n75ckwa69iy5v2z2cg85ipzgx356n4yvdyi1jh9pnl22k9";
+  };
+  "hud_2" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_3/hud_2.tar.gz";
+    sha = "1bvkl5f0fwi7xzy23pj3p7c98fbz2zk8abz7frxr0pp0xj3ql87i";
+  };
+  "hud_3" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_3/hud_3.tar.gz";
+    sha = "1n5qqkp0qb4mlpp7g20hpvazgwxw4gjb2p0ys0q2bglb3amzc2xr";
+  };
+  "hud_space" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_3/hud_space.tar.gz";
+    sha = "0dhajnica048smn5wpwc13ij0n9g6c10a0qxgi4rwiczr7p9vajj";
+  };
+  "ibm" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_3/ibm.tar.gz";
+    sha = "0xri6x716ma3y7d59yn9vm7skw5y53kn6s2ivfrvlfsac9n1zj4m";
+  };
+  "infinite_seal" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_3/infinite_seal.tar.gz";
+    sha = "0r9plydfdc35s2is1zi3pbx3s0bs5hqkim3laiav8fv3rzq0f3lq";
+  };
+  "ironman" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_3/ironman.tar.gz";
+    sha = "0af6qfdqj0n5qgsxg6nnrs2k8xas6cd18jw96mrwfcckpfz091cm";
+  };
+  "liquid" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_3/liquid.tar.gz";
+    sha = "0ghavh6nj68kwcgvrnwbabkzn44zq0m2ic1b2cl278d2vffzqv87";
+  };
+  "loader" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_3/loader.tar.gz";
+    sha = "1zlba3mra45ii0gahlw8v1vq1j7nbfjq62pcjn43vb40zcc1j873";
+  };
+  "loader_2" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_3/loader_2.tar.gz";
+    sha = "1yw4n9bw483pl7m3ks2ajgfldslgyc4gb1kw61fszfp5x4l3k4rg";
+  };
+  "loader_alt" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_3/loader_alt.tar.gz";
+    sha = "1pi97pfhg13wq5s8hai4fd31s6bcfq09r969fl216yxksj8h69wj";
+  };
+  "lone" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_3/lone.tar.gz";
+    sha = "0413mxr8lqlznbps5c4qgbhm0zpz8dlkbdj67r9gvzi9v020qjgl";
+  };
+  "metal_ball" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_3/metal_ball.tar.gz";
+    sha = "129q23q992fxfi976px5r68sf8wqbac3zby4yjh97s48zm83rzb5";
+  };
+  "motion" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_3/motion.tar.gz";
+    sha = "0g84ac8ps69ihic2z7gr4nlwib9ra86il2fdl7rl7w5nc8xzhx1y";
+  };
+  "optimus" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_3/optimus.tar.gz";
+    sha = "1l4bmbiqqypwqvyhcd561nnxhrq5zif8pmkyk2hdwscbq6rlbc7r";
+  };
+  "owl" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_3/owl.tar.gz";
+    sha = "03gqqcvp4320qy1d3az1k2a8rj97alk8qzgkz6xg4akz9ccd731y";
+  };
+  "pie" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_3/pie.tar.gz";
+    sha = "1j479l428gq1b2g0g2ybkf81jzad69n59kphm0ns5gfv6khx10ga";
+  };
+  "pixels" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_3/pixels.tar.gz";
+    sha = "13rfdd9v7h0k2wbwr428h2w8dv5vhhbw03wvirlmafsbhmgjz5xs";
+  };
+  "polaroid" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_3/polaroid.tar.gz";
+    sha = "096iz34hpmicixrdrqaxmx8m83vggm90xqz4zyy5vkpcy3vl60mf";
+  };
+  "red_loader" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_4/red_loader.tar.gz";
+    sha = "0n2jmfy558rma6knraskb7rgccvnayxh7csl0jaarx2xl9zxzzay";
+  };
+  "rings" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_4/rings.tar.gz";
+    sha = "1g9p2cdn1w7dmy2z017xdkv6rm50gdb5qqd8a0y0662fzph5adg0";
+  };
+  "rings_2" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_4/rings_2.tar.gz";
+    sha = "07v4mq1lpw9vfzg0rfxmkyfhyhz3nv5zab5kf10bjjgpjq8c9fi3";
+  };
+  "rog" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_4/rog.tar.gz";
+    sha = "13lcrsdk1v1xn7fxn54xbk1jkh55kmsf813q1v7x8a2l8p9pl0hp";
+  };
+  "rog_2" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_4/rog_2.tar.gz";
+    sha = "0cgc1y1jrb689h9wd7jf3wvf9r996k4ik965v4wclmp9wra5gflk";
+  };
+  "seal" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_4/seal.tar.gz";
+    sha = "0ip23x69ljdj1bwxlhvz3fbg3ia47m2aw6d122v2rqhwqasmy40n";
+  };
+  "seal_2" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_4/seal_2.tar.gz";
+    sha = "1fc91n6ys2fl8xbzdj0ywck87xnyn1gp4jvjk307w49jmkpdzs15";
+  };
+  "seal_3" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_4/seal_3.tar.gz";
+    sha = "1l2jlxhhaf5whbvbdf31ypcasalx4fsd4yn90xybmjq7b27bz5b2";
+  };
+  "sliced" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_4/sliced.tar.gz";
+    sha = "0363lwq3rwdcz3fg47f6kch150vxspvpjdqzg87aahli30kkjfdi";
+  };
+  "sphere" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_4/sphere.tar.gz";
+    sha = "1zjlwign7f2zd70qkg25adbbmq8ndm9b44gc4pa0ls64i6yfd6fz";
+  };
+  "spin" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_4/spin.tar.gz";
+    sha = "0hwjc4i69zmzw7cpmsrhmx00w5k5y46m317m1imw2ycmhm0jicm5";
+  };
+  "spinner_alt" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_4/spinner_alt.tar.gz";
+    sha = "1ifs9xxd1cxvgjcnqjfw2zxkcapssv10hvchjrlf9nl60ayyp4m4";
+  };
+  "splash" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_4/splash.tar.gz";
+    sha = "12l8hwzmi68mjqgl384wf1fscvnzwp4a3vmlsb2zcbfwhrs5q717";
+  };
+  "square" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_4/square.tar.gz";
+    sha = "1mpyrivchsj2gr8flwj0g45vb792fvjjb5jmkn9xz1glrxxs7zww";
+  };
+  "square_hud" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_4/square_hud.tar.gz";
+    sha = "1lvv00r5rg8yjwibfqncka1s0p59fnpklhz3v6ifbs7ynlyp0kag";
+  };
+  "target" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_4/target.tar.gz";
+    sha = "1ipsd3rjclmwzg2l4bxpj0mgfl5bwxs1ihf498660zhm0bqqpgpr";
+  };
+  "target_2" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_4/target_2.tar.gz";
+    sha = "16lipy5c0pyyb1idwj1zchfr8g0cy6qr46c87b8g1kv2g96n5cn6";
+  };
+  "tech_a" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_4/tech_a.tar.gz";
+    sha = "0fn8aib05kmjxnp7j2bmgrs3avaj6bn06kxz55bw8fdg8ihxnxg0";
+  };
+  "tech_b" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_4/tech_b.tar.gz";
+    sha = "03i8jcvql76mhcq0dqaj2wygfza72fc7c22vfcyp38cx1lm6ilbv";
+  };
+  "unrap" = {
+    url = "https://github.com/adi1090x/files/raw/1f8b8d834eb0978d8b0260ffd161e9997b3ee0a2/plymouth-themes/themes/pack_4/unrap.tar.gz";
+    sha = "08gqwb11539kz5178ga6f96jv82xmyyzv44q6d05ajcw3pxk5j4c";
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/adi1090x-plymouth-themes/update.sh b/nixpkgs/pkgs/data/themes/adi1090x-plymouth-themes/update.sh
new file mode 100755
index 000000000000..82eb9916553a
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/adi1090x-plymouth-themes/update.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash --keep GITHUB_TOKEN -p nix-prefetch jq
+
+set -eo pipefail
+
+curl_args=( '--silent' )
+
+# optionally takes a GITHUB_TOKEN to overcome api rate limiting.
+if [ -n "$GITHUB_TOKEN" ]; then curl_args+=( --header "authorization: Bearer ${GITHUB_TOKEN}" ); fi
+
+# get last master ref
+curl_args+=( --url https://api.github.com/repos/adi1090x/files/commits/master )
+last_ref=$(curl "${curl_args[@]}" | jq -r '.sha' )
+
+unset curl_args[-1]
+curl_args+=( https://api.github.com/repos/adi1090x/files/git/trees/$last_ref\?recursive=1 )
+
+theme_archives=$(curl "${curl_args[@]}" \
+  | jq '.tree | map(select(.path| test("^plymouth-themes/themes/pack_.*tar.gz$"))| .path)')
+
+dirname="$(dirname "$0")"
+
+printf '{\n' > "$dirname/shas.nix"
+
+repo_url="https://github.com/adi1090x/files/raw/$last_ref"
+
+while
+  read -r file_path
+do
+    name=$(basename $file_path)
+    printf '  "%s" = {\n    url = "%s";\n    sha = "%s";\n  };\n' "${name%%.*}" "$repo_url/$file_path" "$(nix-prefetch-url "$repo_url/$file_path")" >>"$dirname/shas.nix"
+done < <(jq -r '.[]' <<<"$theme_archives")
+
+printf '}\n' >> "$dirname/shas.nix"
diff --git a/nixpkgs/pkgs/data/themes/adw-gtk3/default.nix b/nixpkgs/pkgs/data/themes/adw-gtk3/default.nix
new file mode 100644
index 000000000000..b7c144441104
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/adw-gtk3/default.nix
@@ -0,0 +1,43 @@
+{ stdenvNoCC
+, lib
+, fetchFromGitHub
+, nix-update-script
+, meson
+, ninja
+, sassc
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "adw-gtk3";
+  version = "4.5";
+
+  src = fetchFromGitHub {
+    owner = "lassekongo83";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-x6ul5NZDWqEQfLzmpR7X5HgUmHNSbpuTnCquVEHFHL8=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    sassc
+  ];
+
+  postPatch = ''
+    chmod +x gtk/src/adw-gtk3-dark/gtk-3.0/install-dark-theme.sh
+    patchShebangs gtk/src/adw-gtk3-dark/gtk-3.0/install-dark-theme.sh
+  '';
+
+  passthru = {
+    updateScript = nix-update-script { };
+  };
+
+  meta = with lib; {
+    description = "The theme from libadwaita ported to GTK-3";
+    homepage = "https://github.com/lassekongo83/adw-gtk3";
+    license = licenses.lgpl21Only;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ ciferkey ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/adwaita-qt/default.nix b/nixpkgs/pkgs/data/themes/adwaita-qt/default.nix
index 869c9beb9b7c..88bec5d09d62 100644
--- a/nixpkgs/pkgs/data/themes/adwaita-qt/default.nix
+++ b/nixpkgs/pkgs/data/themes/adwaita-qt/default.nix
@@ -1,18 +1,19 @@
-{ mkDerivation
-, stdenv
+{ stdenv
 , lib
 , fetchFromGitHub
 , nix-update-script
 , cmake
 , ninja
 , qtbase
+, qtwayland
 , qt5
 , xorg
+, useQt6 ? false
 }:
 
-mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "adwaita-qt";
-  version = "1.4.1";
+  version = "1.4.2";
 
   outputs = [ "out" "dev" ];
 
@@ -20,7 +21,7 @@ mkDerivation rec {
     owner = "FedoraQt";
     repo = pname;
     rev = version;
-    sha256 = "sha256-t9vv1KcMUg8Qe7lhVMN4GO+VPoT7QzeoQ6hV4fesA8U=";
+    sha256 = "sha256-K/+SL52C+M2OC4NL+mhBnm/9BwH0KNNTGIDmPwuUwkM=";
   };
 
   nativeBuildInputs = [
@@ -30,9 +31,19 @@ mkDerivation rec {
 
   buildInputs = [
     qtbase
-    qt5.qtx11extras
   ] ++ lib.optionals stdenv.isLinux [
     xorg.libxcb
+  ] ++ lib.optionals (!useQt6) [
+    qt5.qtx11extras
+  ] ++ lib.optionals useQt6 [
+    qtwayland
+  ];
+
+  # Qt setup hook complains about missing `wrapQtAppsHook` otherwise.
+  dontWrapQtApps = true;
+
+  cmakeFlags = lib.optionals useQt6 [
+    "-DUSE_QT6=true"
   ];
 
   postPatch = ''
@@ -42,9 +53,7 @@ mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = nix-update-script {
-      attrPath = pname;
-    };
+    updateScript = nix-update-script { };
   };
 
   meta = with lib; {
@@ -53,6 +62,5 @@ mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members ++ (with maintainers; [ ]);
     platforms = platforms.all;
-    broken = stdenv.isDarwin; # broken since 2021-12-05 on hydra, broken until qt515 will be used for darwin
   };
 }
diff --git a/nixpkgs/pkgs/data/themes/arc-kde/default.nix b/nixpkgs/pkgs/data/themes/arc-kde/default.nix
index 267e1b8b8b5d..2b41baa63494 100644
--- a/nixpkgs/pkgs/data/themes/arc-kde/default.nix
+++ b/nixpkgs/pkgs/data/themes/arc-kde/default.nix
@@ -2,22 +2,17 @@
 
 stdenv.mkDerivation rec {
   pname = "arc-kde-theme";
-  version = "20220810";
+  version = "20220908";
 
   src = fetchFromGitHub {
     owner = "PapirusDevelopmentTeam";
     repo = "arc-kde";
     rev = version;
-    sha256 = "sha256-atL0sW3AedQl7PabOQOjeJ5U8a4/J4x0rxFCbxJ4ONA=";
+    sha256 = "sha256-dxk8YpJB4XaZHD/O+WvQUFKJD2TE38VZyC5orn4N7BA=";
   };
 
   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";
diff --git a/nixpkgs/pkgs/data/themes/arc/default.nix b/nixpkgs/pkgs/data/themes/arc/default.nix
index ef05338cf5ae..17089285f276 100644
--- a/nixpkgs/pkgs/data/themes/arc/default.nix
+++ b/nixpkgs/pkgs/data/themes/arc/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "arc-theme";
-  version = "20220405";
+  version = "20221218";
 
   src = fetchFromGitHub {
     owner = "jnsh";
     repo = pname;
     rev = version;
-    sha256 = "sha256-CBj/SpBWH5xdNCQSJquqIntcmfARI7Cud76Tp8txXL4=";
+    sha256 = "sha256-7VmqsUCeG5GwmrVdt9BJj0eZ/1v+no/05KwGFb7E9ns=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/data/themes/base16-schemes/default.nix b/nixpkgs/pkgs/data/themes/base16-schemes/default.nix
new file mode 100644
index 000000000000..b4e3b1c87d6f
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/base16-schemes/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub, ... }:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "base16-schemes";
+  version = "unstable-2022-12-16";
+
+  src = fetchFromGitHub {
+    owner = "tinted-theming";
+    repo = "base16-schemes";
+    rev = "cf6bc892a24af19e11383adedc6ce7901f133ea7";
+    sha256 = "sha256-U9pfie3qABp5sTr3M9ga/jX8C807FeiXlmEZnC4ZM58=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/themes/
+    install *.yaml $out/share/themes/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "All the color schemes for use in base16 packages";
+    homepage = finalAttrs.src.meta.homepage;
+    maintainers = [ maintainers.DamienCassou ];
+    license = licenses.mit;
+  };
+})
diff --git a/nixpkgs/pkgs/data/themes/breath-theme/default.nix b/nixpkgs/pkgs/data/themes/breath-theme/default.nix
new file mode 100644
index 000000000000..79bca7720207
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/breath-theme/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, cmake
+, extra-cmake-modules
+, kdecoration
+, plasma-workspace
+, qtbase
+}:
+
+stdenv.mkDerivation {
+  pname = "breath-theme";
+  version = "unstable-2022-12-22";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.manjaro.org";
+    owner = "themes";
+    group = "artwork";
+    repo = "breath";
+    rev = "98822e7d903f16116bfb02ff9921824c139d7bbc";
+    sha256 = "sha256-gvzhHOuOhxV3TC3UZeVpxeSDLpCJV+SaapcJ5mbHskY=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+
+    kdecoration
+    plasma-workspace
+    qtbase
+  ];
+
+  dontWrapQtApps = true;
+
+  cmakeFlags = [ "-DBUILD_PLASMA_THEMES=ON" "-DBUILD_SDDM_THEME=ON" ];
+
+  meta = with lib; {
+    description = "Manjaro KDE default theme";
+    homepage = "https://gitlab.manjaro.org/artwork/themes/breath";
+    license = licenses.cc-by-sa-40;
+    maintainers = with maintainers; [ huantian ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/catppuccin-gtk/default.nix b/nixpkgs/pkgs/data/themes/catppuccin-gtk/default.nix
index b9bc042dd09c..47cdc6e8ce9c 100644
--- a/nixpkgs/pkgs/data/themes/catppuccin-gtk/default.nix
+++ b/nixpkgs/pkgs/data/themes/catppuccin-gtk/default.nix
@@ -2,69 +2,71 @@
 , stdenvNoCC
 , fetchFromGitHub
 , gtk3
+, colloid-gtk-theme
 , gnome-themes-extra
 , gtk-engine-murrine
+, python3
 , sassc
-, which
-, tweaks ? [ ]
+, accents ? [ "blue" ]
 , size ? "standard"
+, tweaks ? [ ]
+, variant ? "frappe"
 }:
 let
+  validAccents = [ "blue" "flamingo" "green" "lavender" "maroon" "mauve" "peach" "pink" "red" "rosewater" "sapphire" "sky" "teal" "yellow" ];
   validSizes = [ "standard" "compact" ];
-  validTweaks = [ "nord" "dracula" "black" "rimless" "normal" ];
-
-  unknownTweaks = lib.subtractLists validTweaks tweaks;
-  illegalMix = !(lib.elem "nord" tweaks) && !(lib.elem "dracula" tweaks);
-
-  assertIllegal = lib.assertMsg illegalMix ''
-    Tweaks "nord" and "dracula" cannot be mixed. Tweaks: ${toString tweaks}
-  '';
-
-  assertSize = lib.assertMsg (lib.elem size validSizes) ''
-    You entered a wrong size: ${size}
-    Valid sizes are: ${toString validSizes}
-  '';
+  validTweaks = [ "black" "rimless" "normal" ];
+  validVariants = [ "latte" "frappe" "macchiato" "mocha" ];
 
-  assertUnknown = lib.assertMsg (unknownTweaks == [ ]) ''
-    You entered wrong tweaks: ${toString unknownTweaks}
-    Valid tweaks are: ${toString validTweaks}
-  '';
+  pname = "catppuccin-gtk";
 in
 
-assert assertIllegal;
-assert assertSize;
-assert assertUnknown;
+lib.checkListOfEnum "${pname}: theme accent" validAccents accents
+lib.checkListOfEnum "${pname}: color variant" validVariants [variant]
+lib.checkListOfEnum "${pname}: size variant" validSizes [size]
+lib.checkListOfEnum "${pname}: tweaks" validTweaks tweaks
 
 stdenvNoCC.mkDerivation rec {
-  pname = "catppuccin-gtk";
-  version = "unstable-2022-08-01";
+  inherit pname;
+  version = "0.4.1";
 
   src = fetchFromGitHub {
-    repo = "gtk";
     owner = "catppuccin";
-    rev = "87a79fd2bf07accc694455df30a32a82b1b31f4f";
-    sha256 = "sha256-dKHTQva0BYkO6VPNfY/pzRn/V1ghX+tYqbnM9hTAMeE=";
+    repo = "gtk";
+    rev = "v${version}";
+    sha256 = "sha256-dzRXt9/OdPyiy3mu9pmPYeu69OXCnR+zEqbD1C5BKqM=";
   };
 
-  nativeBuildInputs = [ gtk3 sassc which ];
+  nativeBuildInputs = [ gtk3 sassc ];
 
-  buildInputs = [ gnome-themes-extra ];
+  buildInputs = [
+    gnome-themes-extra
+    (python3.withPackages (ps: [ ps.catppuccin ]))
+  ];
 
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
+  postUnpack = ''
+    rm -rf source/colloid
+    cp -r ${colloid-gtk-theme.src} source/colloid
+    chmod -R +w source/colloid
+  '';
+
   postPatch = ''
-    patchShebangs --build clean-old-theme.sh install.sh
+    patchShebangs --build colloid/clean-old-theme.sh colloid/install.sh
   '';
 
   installPhase = ''
     runHook preInstall
 
+    mkdir -p $out/share/themes
     export HOME=$(mktemp -d)
 
-    mkdir -p $out/share/themes
-    bash install.sh -d $out/share/themes -t all \
-      ${lib.optionalString (size != "") "-s ${size}"} \
-      ${lib.optionalString (tweaks != []) "--tweaks " + builtins.toString tweaks}
+    python3 install.py ${variant} \
+      ${lib.optionalString (accents != []) "--accent " + builtins.toString accents} \
+      ${lib.optionalString (size != []) "--size " + size} \
+      ${lib.optionalString (tweaks != []) "--tweaks " + builtins.toString tweaks} \
+      --dest $out/share/themes
 
     runHook postInstall
   '';
diff --git a/nixpkgs/pkgs/data/themes/catppuccin-kde/default.nix b/nixpkgs/pkgs/data/themes/catppuccin-kde/default.nix
new file mode 100644
index 000000000000..9ce72c9b2ef8
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/catppuccin-kde/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, flavour ? [ "frappe" ]
+, accents ? [ "blue" ]
+, winDecStyles ? [ "modern" ]
+}:
+
+let
+  validFlavours = [ "mocha" "macchiato" "frappe" "latte" ];
+  validAccents = [ "rosewater" "flamingo" "pink" "mauve" "red" "maroon" "peach" "yellow" "green" "teal" "sky" "sapphire" "blue" "lavender" ];
+  validWinDecStyles = [ "modern" "classic" ];
+
+  installScript = ./install.sh;
+in
+
+  lib.checkListOfEnum "Invalid accent, valid accents are ${toString validAccents}" validAccents accents
+  lib.checkListOfEnum "Invalid flavour, valid flavours are ${toString validFlavours}" validFlavours flavour
+  lib.checkListOfEnum "Invalid window decoration style, valid styles are ${toString validWinDecStyles}" validWinDecStyles winDecStyles
+
+stdenvNoCC.mkDerivation rec {
+  pname = "kde";
+  version = "0.2.4";
+
+  src = fetchFromGitHub {
+    owner = "catppuccin";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-w77lzeSisx/PPxctMJKIdRJenq0s8HwR8gLmgNh4SH8=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    patchShebangs .
+    for WINDECSTYLE in ${toString winDecStyles}; do
+      for FLAVOUR in ${toString flavour}; do
+        for ACCENT in ${toString accents}; do
+          FLAVOUR=$FLAVOUR ACCENT=$ACCENT WINDECSTYLE=$WINDECSTYLE bash ${installScript}
+        done;
+      done;
+    done;
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Soothing pastel theme for KDE";
+    homepage = "https://github.com/catppuccin/kde";
+    license = licenses.mit;
+    maintainers = with maintainers; [ michaelBelsanti ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/catppuccin-kde/install.sh b/nixpkgs/pkgs/data/themes/catppuccin-kde/install.sh
new file mode 100755
index 000000000000..dec90274b450
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/catppuccin-kde/install.sh
@@ -0,0 +1,263 @@
+COLORDIR=$out/share/color-schemes
+AURORAEDIR=$out/share/aurorae/themes
+LOOKANDFEELDIR=$out/share/plasma/look-and-feel
+DESKTOPTHEMEDIR=$out/share/plasma/desktoptheme
+
+FLAVOUR=${FLAVOUR^}
+ACCENT=${ACCENT^}
+WINDECSTYLE=${WINDECSTYLE^}
+
+echo "Creating theme directories.."
+mkdir -p $COLORDIR
+mkdir -p $AURORAEDIR
+mkdir -p $LOOKANDFEELDIR
+mkdir -p $DESKTOPTHEMEDIR
+mkdir ./dist
+
+# Sets accent based on the pallet selected (Best to fold this in your respective editor)
+if [[ $ACCENT == "Rosewater" ]]; then
+    if [[ $FLAVOUR == "Mocha" ]]; then
+        ACCENTCOLOR=#f5e0dc
+    elif [[ $FLAVOUR == "Macchiato" ]]; then
+        ACCENTCOLOR=#f4dbd6
+    elif [[ $FLAVOUR == "Frappe" ]]; then
+        ACCENTCOLOR=#f2d5cf
+    elif [[ $FLAVOUR == "Latte" ]]; then
+        ACCENTCOLOR=#dc8a78
+    fi
+    echo "Accent Rosewater(1) was selected!"
+elif [[ $ACCENT == "Flamingo" ]]; then
+    if [[ $FLAVOUR == "Mocha" ]]; then
+        ACCENTCOLOR=#f2cdcd
+    elif [[ $FLAVOUR == "Macchiato" ]]; then
+        ACCENTCOLOR=#f0c6c6
+    elif [[ $FLAVOUR == "Frappe" ]]; then
+        ACCENTCOLOR=#eebebe
+    elif [[ $FLAVOUR == "Latte" ]]; then
+        ACCENTCOLOR=#dd7878
+    fi
+    echo "Accent Flamingo(2) was selected!"
+    ACCENT="2"
+elif [[ $ACCENT == "Pink" ]]; then
+    if [[ $FLAVOUR == "Mocha" ]]; then
+        ACCENTCOLOR=#f5c2e7
+    elif [[ $FLAVOUR == "Macchiato" ]]; then
+        ACCENTCOLOR=#f5bde6
+    elif [[ $FLAVOUR == "Frappe" ]]; then
+        ACCENTCOLOR=#f4b8e4
+    elif [[ $FLAVOUR == "Latte" ]]; then
+        ACCENTCOLOR=#ea76cb
+    fi
+    echo "Accent Pink(3) was selected!"
+elif [[ $ACCENT == "Mauve" ]]; then
+    if [[ $FLAVOUR == "Mocha" ]]; then
+        ACCENTCOLOR=#cba6f7
+    elif [[ $FLAVOUR == "Macchiato" ]]; then
+        ACCENTCOLOR=#c6a0f6
+    elif [[ $FLAVOUR == "Frappe" ]]; then
+        ACCENTCOLOR=#ca9ee6
+    elif [[ $FLAVOUR == "Latte" ]]; then
+        ACCENTCOLOR=#8839ef
+    fi
+    echo "Accent Mauve(4) was selected!"
+elif [[ $ACCENT == "Red" ]]; then
+    if [[ $FLAVOUR == "Mocha" ]]; then
+        ACCENTCOLOR=#f38ba8
+    elif [[ $FLAVOUR == "Macchiato" ]]; then
+        ACCENTCOLOR=#ed8796
+    elif [[ $FLAVOUR == "Frappe" ]]; then
+        ACCENTCOLOR=#e78284
+    elif [[ $FLAVOUR == "Latte" ]]; then
+        ACCENTCOLOR=#d20f39
+    fi
+    echo "Accent Red(5) was selected!"
+elif [[ $ACCENT == "Maroon" ]]; then
+    if [[ $FLAVOUR == "Mocha" ]]; then
+        ACCENTCOLOR=#eba0ac
+    elif [[ $FLAVOUR == "Macchiato" ]]; then
+        ACCENTCOLOR=#ee99a0
+    elif [[ $FLAVOUR == "Frappe" ]]; then
+        ACCENTCOLOR=#ea999c
+    elif [[ $FLAVOUR == "Latte" ]]; then
+        ACCENTCOLOR=#e64553
+    fi
+    echo "Accent Maroon(6) was selected!"
+elif [[ $ACCENT == "Peach" ]]; then
+    if [[ $FLAVOUR == "Mocha" ]]; then
+        ACCENTCOLOR=#fab387
+    elif [[ $FLAVOUR == "Macchiato" ]]; then
+        ACCENTCOLOR=#f5a97f
+    elif [[ $FLAVOUR == "Frappe" ]]; then
+        ACCENTCOLOR=#ef9f76
+    elif [[ $FLAVOUR == "Latte" ]]; then
+        ACCENTCOLOR=#fe640b
+    fi
+    echo "Accent Peach(7) was selected!"
+elif [[ $ACCENT == "Yellow" ]]; then
+    if [[ $FLAVOUR == "Mocha" ]]; then
+        ACCENTCOLOR=#f9e2af
+    elif [[ $FLAVOUR == "Macchiato" ]]; then
+        ACCENTCOLOR=#eed49f
+    elif [[ $FLAVOUR == "Frappe" ]]; then
+        ACCENTCOLOR=#e5c890
+    elif [[ $FLAVOUR == "Latte" ]]; then
+        ACCENTCOLOR=#df8e1d
+    fi
+    echo "Accent Yellow(8) was selected!"
+elif [[ $ACCENT == "Green" ]]; then
+    if [[ $FLAVOUR == "Mocha" ]]; then
+        ACCENTCOLOR=#a6e3a1
+    elif [[ $FLAVOUR == "Macchiato" ]]; then
+        ACCENTCOLOR=#a6da95
+    elif [[ $FLAVOUR == "Frappe" ]]; then
+        ACCENTCOLOR=#a6d189
+    elif [[ $FLAVOUR == "Latte" ]]; then
+        ACCENTCOLOR=#40a02b
+    fi
+    echo "Accent Green(9) was selected!"
+elif [[ $ACCENT == "Teal" ]]; then
+    if [[ $FLAVOUR == "Mocha" ]]; then
+        ACCENTCOLOR=#94e2d5
+    elif [[ $FLAVOUR == "Macchiato" ]]; then
+        ACCENTCOLOR=#8bd5ca
+    elif [[ $FLAVOUR == "Frappe" ]]; then
+        ACCENTCOLOR=#81c8be
+    elif [[ $FLAVOUR == "Latte" ]]; then
+        ACCENTCOLOR=#179299
+    fi
+    echo "Accent Teal(10) was selected!"
+elif [[ $ACCENT == "Sky" ]]; then
+    if [[ $FLAVOUR == "Mocha" ]]; then
+        ACCENTCOLOR=#89dceb
+    elif [[ $FLAVOUR == "Macchiato" ]]; then
+        ACCENTCOLOR=#91d7e3
+    elif [[ $FLAVOUR == "Frappe" ]]; then
+        ACCENTCOLOR=#99d1db
+    elif [[ $FLAVOUR == "Latte" ]]; then
+        ACCENTCOLOR=#04a5e5
+    fi
+    echo "Accent Sky(11) was selected!"
+elif [[ $ACCENT == "Sapphire" ]]; then
+    if [[ $FLAVOUR == "Mocha" ]]; then
+        ACCENTCOLOR=#74c7ec
+    elif [[ $FLAVOUR == "Macchiato" ]]; then
+        ACCENTCOLOR=#7dc4e4
+    elif [[ $FLAVOUR == "Frappe" ]]; then
+        ACCENTCOLOR=#85c1dc
+    elif [[ $FLAVOUR == "Latte" ]]; then
+        ACCENTCOLOR=#209fb5
+    fi
+    echo "Accent Sapphire(12) was selected!"
+elif [[ $ACCENT == "Blue" ]]; then
+    if [[ $FLAVOUR == "Mocha" ]]; then
+        ACCENTCOLOR=#89b4fa
+    elif [[ $FLAVOUR == "Macchiato" ]]; then
+        ACCENTCOLOR=#8aadf4
+    elif [[ $FLAVOUR == "Frappe" ]]; then
+        ACCENTCOLOR=#8caaee
+    elif [[ $FLAVOUR == "Latte" ]]; then
+        ACCENTCOLOR=#1e66f5
+    fi
+    echo "Accent Blue(13) was selected!"
+elif [[ $ACCENT == "Lavender" ]]; then
+    if [[ $FLAVOUR == "Mocha" ]]; then
+        ACCENTCOLOR=#b4befe
+    elif [[ $FLAVOUR == "Macchiato" ]]; then
+        ACCENTCOLOR=#b7bdf8
+    elif [[ $FLAVOUR == "Frappe" ]]; then
+        ACCENTCOLOR=#babbf1
+    elif [[ $FLAVOUR == "Latte" ]]; then
+        ACCENTCOLOR=#7287fd
+    fi
+    echo "Accent Lavender(14) was selected!"
+else echo "Not a valid accent" && exit
+fi
+
+if [[ $WINDECSTYLE == "Modern" ]]; then
+    WINDECSTYLECODE=__aurorae__svg__Catppuccin$FLAVOUR-Modern
+elif [[ $WINDECSTYLE == "Classic" ]]; then
+    WINDECSTYLECODE=__aurorae__svg__Catppuccin$FLAVOUR-Classic
+fi
+
+function ModifyLightlyPlasma {
+
+    rm -rf $DESKTOPTHEMEDIR/lightly-plasma-git/icons/*
+    rm -rf $DESKTOPTHEMEDIR/lightly-plasma-git/translucent
+    rm $DESKTOPTHEMEDIR/lightly-plasma-git/widgets/tabbar.svgz
+    rm $DESKTOPTHEMEDIR/lightly-plasma-git/dialogs/background.svgz
+
+    # Copy Patches
+    cp $DESKTOPTHEMEDIR/lightly-plasma-git/solid/* $DESKTOPTHEMEDIR/lightly-plasma-git -Rf
+    cp ./Patches/glowbar.svg $DESKTOPTHEMEDIR/lightly-plasma-git/widgets -rf
+    cp ./Patches/background.svg $DESKTOPTHEMEDIR/lightly-plasma-git/widgets -rf
+    cp ./Patches/panel-background.svgz $DESKTOPTHEMEDIR/lightly-plasma-git/widgets
+
+    # Modify description to state that it has been modified by the KDE Catppuccin Installer
+    sed -e s/A\ plasma\ style\ with\ close\ to\ the\ look\ of\ the\ newest\ Lightly./*MODIFIED\ BY\ CATPPUCCIN\ KDE\ INSTALLER*\ A\ plasma\ style\ with\ close\ to\ the\ look\ of\ the\ newest\ Lightly./g $DESKTOPTHEMEDIR/lightly-plasma-git/metadata.desktop >> $DESKTOPTHEMEDIR/lightly-plasma-git/newMetadata.desktop
+    cp -f $DESKTOPTHEMEDIR/metadata.desktop $DESKTOPTHEMEDIR/lightly-plasma-git/metadata.desktop && rm $DESKTOPTHEMEDIR/metadata.desktop
+}
+
+function AuroraeInstall {
+    if [[ $WINDECSTYLE == "Modern" ]]; then
+        cp ./Resources/aurorae/Catppuccin$FLAVOUR-Modern $AURORAEDIR -r;
+    elif [[ $WINDECSTYLE == "Classic" ]]; then
+        cp ./Resources/aurorae/Catppuccin$FLAVOUR-Classic $AURORAEDIR -r;
+    fi
+}
+
+function BuildColorscheme {
+    # Add Metadata & Replace Accent in colors file
+    sed -e s/--accentColor/$ACCENTCOLOR/g -e s/--flavour/$FLAVOUR/g -e s/--accentName/$ACCENT/g ./Resources/base.colors > ./dist/base.colors
+    # Hydrate Metadata with Pallet + Accent Info
+    sed -e s/--accentName/$ACCENT/g -e s/--flavour/$FLAVOUR/g ./Resources/metadata.desktop > ./dist/Catppuccin-$FLAVOUR-$ACCENT/metadata.desktop
+    # Modify 'defaults' to set the correct Aurorae Theme
+    sed -e s/--accentName/$ACCENT/g -e s/--flavour/$FLAVOUR/g -e s/--aurorae/$WINDECSTYLECODE/g ./Resources/defaults > ./dist/Catppuccin-$FLAVOUR-$ACCENT/contents/defaults
+    # Hydrate Dummy colors according to Pallet
+    FLAVOURNAME=$FLAVOUR ACCENTNAME=$ACCENT ./Installer/color-build.sh -o ./dist/Catppuccin$FLAVOUR$ACCENT.colors -s ./dist/base.colors
+}
+
+function BuildSplashScreen {
+    # Hydrate Dummy colors according to Pallet
+    FLAVOURNAME=$FLAVOUR ./Installer/color-build.sh -s ./Resources/splash/images/busywidget.svg -o ./dist/$GLOBALTHEMENAME/contents/splash/images/_busywidget.svg
+    # Replace Accent in colors file
+    sed ./dist/$GLOBALTHEMENAME/contents/splash/images/_busywidget.svg -e s/REPLACE--ACCENT/$ACCENTCOLOR/g > ./dist/$GLOBALTHEMENAME/contents/splash/images/busywidget.svg
+    # Cleanup temporary file
+    rm ./dist/$GLOBALTHEMENAME/contents/splash/images/_busywidget.svg
+    # Hydrate Dummy colors according to Pallet (QML file)
+    FLAVOURNAME=$FLAVOUR ./Installer/color-build.sh -s ./Resources/splash/Splash.qml -o ./dist/$GLOBALTHEMENAME/contents/splash/Splash.qml
+    # Add CTP Logo
+    # TODO: Switch between latte & mocha logo based on Pallet
+    cp ./Resources/splash/images/Logo.png ./dist/$GLOBALTHEMENAME/contents/splash/images
+}
+
+# Prepare Global Theme Folder
+GLOBALTHEMENAME="Catppuccin-$FLAVOUR-$ACCENT"
+cp -r ./Resources/Catppuccin-$FLAVOUR-Global ./dist/$GLOBALTHEMENAME
+mkdir -p ./dist/$GLOBALTHEMENAME/contents/splash/images
+
+# Build SplashScreen
+echo "Building SplashScreen.."
+BuildSplashScreen
+
+# Build Colorscheme
+echo "Building Colorscheme.."
+# Generate Color scheme
+BuildColorscheme
+
+# Install Colorscheme
+echo "Installing Colorscheme.."
+mv ./dist/Catppuccin$FLAVOUR$ACCENT.colors $COLORDIR
+
+# Install Global Theme.
+echo "Installing Global Theme.."
+cp -r ./dist/$GLOBALTHEMENAME $LOOKANDFEELDIR
+
+# echo "Modifying lightly plasma theme.."
+# ModifyLightlyPlasma
+
+echo "Installing aurorae theme.."
+AuroraeInstall
+
+# Cleanup
+echo "Cleaning up.."
+rm -rf ./dist
diff --git a/nixpkgs/pkgs/data/themes/catppuccin-kvantum/default.nix b/nixpkgs/pkgs/data/themes/catppuccin-kvantum/default.nix
new file mode 100644
index 000000000000..222f9178ff4f
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/catppuccin-kvantum/default.nix
@@ -0,0 +1,38 @@
+{
+  lib,
+  stdenvNoCC,
+  fetchFromGitHub,
+  accent ? "Blue",
+  variant ? "Frappe",
+}: let
+  pname = "catppuccin-kvantum";
+in
+  lib.checkListOfEnum "${pname}: theme accent" ["Blue" "Flamingo" "Green" "Lavender" "Maroon" "Mauve" "Peach" "Pink" "Red" "Rosewater" "Sapphire" "Sky" "Teal" "Yellow"] [accent]
+  lib.checkListOfEnum "${pname}: color variant" ["Latte" "Frappe" "Macchiato" "Mocha"] [variant]
+
+  stdenvNoCC.mkDerivation {
+    inherit pname;
+    version = "unstable-2022-07-04";
+
+    src = fetchFromGitHub {
+      owner = "catppuccin";
+      repo = "Kvantum";
+      rev = "d1e174c85311de9715aefc1eba4b8efd6b2730fc";
+      sha256 = "sha256-IrHo8pnR3u90bq12m7FEXucUF79+iub3I9vgH5h86Lk=";
+    };
+
+    installPhase = ''
+      runHook preInstall
+      mkdir -p $out/share/Kvantum
+      cp -a src/Catppuccin-${variant}-${accent} $out/share/Kvantum
+      runHook postInstall
+    '';
+
+    meta = with lib; {
+      description = "Soothing pastel theme for Kvantum";
+      homepage = "https://github.com/catppuccin/Kvantum";
+      license = licenses.mit;
+      platforms = platforms.linux;
+      maintainers = with maintainers; [ggwpaiushtha];
+    };
+  }
diff --git a/nixpkgs/pkgs/data/themes/catppuccin-plymouth/default.nix b/nixpkgs/pkgs/data/themes/catppuccin-plymouth/default.nix
new file mode 100644
index 000000000000..69a07f46d0df
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/catppuccin-plymouth/default.nix
@@ -0,0 +1,43 @@
+{ stdenvNoCC
+, lib
+, fetchFromGitHub
+, variant ? "macchiato"
+}:
+
+let
+  pname = "catppuccin-plymouth";
+  validVariants = [ "latte" "frappe" "macchiato" "mocha" ];
+in
+lib.checkListOfEnum "${pname}: color variant" validVariants [ variant ]
+
+stdenvNoCC.mkDerivation rec {
+  inherit pname;
+  version = "unstable-2022-12-10";
+
+  src = fetchFromGitHub {
+    owner = "catppuccin";
+    repo = "plymouth";
+    rev = "d4105cf336599653783c34c4a2d6ca8c93f9281c";
+    hash = "sha256-quBSH8hx3gD7y1JNWAKQdTk3CmO4t1kVo4cOGbeWlNE=";
+  };
+
+  sourceRoot = "source/themes/catppuccin-${variant}";
+
+  installPhase = ''
+    runHook preInstall
+
+    sed -i 's:\(^ImageDir=\)/usr:\1'"$out"':' catppuccin-${variant}.plymouth
+    mkdir -p $out/share/plymouth/themes/catppuccin-${variant}
+    cp * $out/share/plymouth/themes/catppuccin-${variant}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Soothing pastel theme for Plymouth";
+    homepage = "https://github.com/catppuccin/plymouth";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.spectre256 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/colloid-gtk-theme/default.nix b/nixpkgs/pkgs/data/themes/colloid-gtk-theme/default.nix
index dabe19d68d71..c71c86269e71 100644
--- a/nixpkgs/pkgs/data/themes/colloid-gtk-theme/default.nix
+++ b/nixpkgs/pkgs/data/themes/colloid-gtk-theme/default.nix
@@ -19,17 +19,17 @@ in
 lib.checkListOfEnum "${pname}: theme variants" [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" "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" "dracula" "rimless" "normal" ] tweaks
+lib.checkListOfEnum "${pname}: tweaks" [ "nord" "black" "dracula" "gruvbox" "rimless" "normal" ] tweaks
 
 stdenvNoCC.mkDerivation rec {
   inherit pname;
-  version = "2022-07-18";
+  version = "2023.04.11";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    hash = "sha256-dWYRTwfQRMBdg+htxpWatF325rToaovF/43LxX6I1GI=";
+    hash = "sha256-lVHDQmu9GLesasmI2GQ0hx4f2NtgaM4IlJk/hXe2XzY=";
   };
 
   nativeBuildInputs = [
@@ -46,7 +46,7 @@ stdenvNoCC.mkDerivation rec {
   ];
 
   postPatch = ''
-    patchShebangs install.sh clean-old-theme.sh
+    patchShebangs install.sh
   '';
 
   installPhase = ''
@@ -59,12 +59,12 @@ stdenvNoCC.mkDerivation rec {
       ${lib.optionalString (tweaks != []) "--tweaks " + builtins.toString tweaks} \
       --dest $out/share/themes
 
-    jdupes --link-soft --recurse $out/share
+    jdupes --quiet --link-soft --recurse $out/share
 
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater { inherit pname version; };
+  passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
     description = "A modern and clean Gtk theme";
diff --git a/nixpkgs/pkgs/data/themes/colloid-kde/default.nix b/nixpkgs/pkgs/data/themes/colloid-kde/default.nix
index ebfc339ead51..8c2dcb8a8738 100644
--- a/nixpkgs/pkgs/data/themes/colloid-kde/default.nix
+++ b/nixpkgs/pkgs/data/themes/colloid-kde/default.nix
@@ -34,7 +34,7 @@ stdenvNoCC.mkDerivation rec {
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater { inherit pname version; };
+  passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
     description = "A clean and concise theme for KDE Plasma desktop";
diff --git a/nixpkgs/pkgs/data/themes/dracula-theme/default.nix b/nixpkgs/pkgs/data/themes/dracula-theme/default.nix
index 326e004070b3..b555b9197403 100644
--- a/nixpkgs/pkgs/data/themes/dracula-theme/default.nix
+++ b/nixpkgs/pkgs/data/themes/dracula-theme/default.nix
@@ -1,10 +1,10 @@
-{ lib, stdenv, fetchFromGitHub, gtk-engine-murrine }:
+{ lib, stdenvNoCC, fetchFromGitHub, gtk-engine-murrine }:
 
 let
   themeName = "Dracula";
-  version = "3.0";
+  version = "4.0.0";
 in
-stdenv.mkDerivation {
+stdenvNoCC.mkDerivation {
   pname = "dracula-theme";
   inherit version;
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     owner = "dracula";
     repo = "gtk";
     rev = "v${version}";
-    sha256 = "sha256-7DUT/DfvCSo9GiJzqhqvegNCARB0eGtPQ6oUQG/Uja0=";
+    hash = "sha256-q3/uBd+jPFhiVAllyhqf486Jxa0mnCDSIqcm/jwGtJA=";
   };
 
   propagatedUserEnvPkgs = [
diff --git a/nixpkgs/pkgs/data/themes/flat-remix-gnome/default.nix b/nixpkgs/pkgs/data/themes/flat-remix-gnome/default.nix
index 23e3ce832275..54fa01cf40bd 100644
--- a/nixpkgs/pkgs/data/themes/flat-remix-gnome/default.nix
+++ b/nixpkgs/pkgs/data/themes/flat-remix-gnome/default.nix
@@ -7,25 +7,25 @@
 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/20220510/Makefile#L38
+  # https://github.com/daniruiz/flat-remix-gnome/blob/20221107/Makefile#L38
   fake-dconf = writeScriptBin "dconf" "echo -n";
 in
 stdenv.mkDerivation rec {
   pname = "flat-remix-gnome";
-  version = "20220622";
+  version = "20221107";
 
   src = fetchFromGitHub {
     owner = "daniruiz";
     repo = pname;
     rev = version;
-    hash = "sha256-fm1YOKI6TLkCnkkPZkp8I0xWkNrZt4sVktYZyD5foKU=";
+    hash = "sha256-5V3ECbQe3/5bhHnMR1pzvehs1eh0u9U7E1voDiqo9cY=";
   };
 
   nativeBuildInputs = [ glib fake-dconf ];
   makeFlags = [ "PREFIX=$(out)" ];
 
   # make install will back up this file, it will fail if the file doesn't exist.
-  # https://github.com/daniruiz/flat-remix-gnome/blob/20220510/Makefile#L56
+  # https://github.com/daniruiz/flat-remix-gnome/blob/20221107/Makefile#L56
   preInstall = ''
     mkdir -p $out/share/gnome-shell/
     touch $out/share/gnome-shell/gnome-shell-theme.gresource
diff --git a/nixpkgs/pkgs/data/themes/fluent-gtk-theme/default.nix b/nixpkgs/pkgs/data/themes/fluent-gtk-theme/default.nix
new file mode 100644
index 000000000000..3359e6e1b128
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/fluent-gtk-theme/default.nix
@@ -0,0 +1,76 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gitUpdater
+, gnome-themes-extra
+, gtk-engine-murrine
+, jdupes
+, sassc
+, themeVariants ? [] # default: blue
+, colorVariants ? [] # default: all
+, sizeVariants ? [] # default: standard
+, tweaks ? []
+}:
+
+let
+  pname = "fluent-gtk-theme";
+
+in
+lib.checkListOfEnum "${pname}: theme variants" [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" "all" ] themeVariants
+lib.checkListOfEnum "${pname}: color variants" [ "standard" "light" "dark" ] colorVariants
+lib.checkListOfEnum "${pname}: size variants" [ "standard" "compact" ] sizeVariants
+lib.checkListOfEnum "${pname}: tweaks" [ "solid" "float" "round" "blur" "noborder" "square" ] tweaks
+
+stdenvNoCC.mkDerivation rec {
+  inherit pname;
+  version = "2022-12-15";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    hash = "sha256-lGT6MIpc7cdAznZlbSJJ7aBzZPHucyfR8ZNMdJI0LP8=";
+  };
+
+  nativeBuildInputs = [
+    jdupes
+    sassc
+  ];
+
+  buildInputs = [
+    gnome-themes-extra
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  postPatch = ''
+    patchShebangs install.sh
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    name= HOME="$TMPDIR" ./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
+
+    jdupes --quiet --link-soft --recurse $out/share
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = gitUpdater { };
+
+  meta = with lib; {
+    description = "Fluent design gtk theme";
+    homepage = "https://github.com/vinceliuice/Fluent-gtk-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/graphite-gtk-theme/default.nix b/nixpkgs/pkgs/data/themes/graphite-gtk-theme/default.nix
index 132e2e9c3762..5376a618aa92 100644
--- a/nixpkgs/pkgs/data/themes/graphite-gtk-theme/default.nix
+++ b/nixpkgs/pkgs/data/themes/graphite-gtk-theme/default.nix
@@ -27,13 +27,13 @@ lib.checkListOfEnum "${pname}: grub screens" [ "1080p" "2k" "4k" ] grubScreens
 
 stdenvNoCC.mkDerivation rec {
   inherit pname;
-  version = "2022-03-22";
+  version = "2022-09-02";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
-    rev = "7ab6a1b7eda81e914405a9931408b1d5c73e6891";
-    sha256 = "maYHA+AICoPiZo62IJ52UFUhOZh+6m2e9z6Kz0zrsSc=";
+    rev = version;
+    sha256 = "PaqEkl0E3pUEJDEv1WwUqcjzAcQniN8rUGhVgbOxuhA=";
   };
 
   nativeBuildInputs = [
@@ -81,12 +81,12 @@ stdenvNoCC.mkDerivation rec {
       )
     ''}
 
-    jdupes -L -r $out/share
+    jdupes --quiet --link-soft --recurse $out/share
 
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater { inherit pname version; };
+  passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
     description = "Flat Gtk+ theme based on Elegant Design";
diff --git a/nixpkgs/pkgs/data/themes/greybird/default.nix b/nixpkgs/pkgs/data/themes/greybird/default.nix
index a52c0d0357bc..730a6112af27 100644
--- a/nixpkgs/pkgs/data/themes/greybird/default.nix
+++ b/nixpkgs/pkgs/data/themes/greybird/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "greybird";
-  version = "3.23.1";
+  version = "3.23.2";
 
   src = fetchFromGitHub {
     owner = "shimmerproject";
     repo = pname;
     rev = "v${version}";
-    sha256 = "hfi2TBRrZTSN43tYKMPvb/dWwwUE7RakKTMBziHnCWA=";
+    sha256 = "h4sPjKpTufaunVP0d4Z5x/K+vRW1FpuLrMJjydx/a6w=";
   };
 
   nativeBuildInputs = [
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     gtk-engine-murrine
   ];
 
-  passthru.updateScript = gitUpdater { inherit pname version; rev-prefix = "v"; };
+  passthru.updateScript = gitUpdater { rev-prefix = "v"; };
 
   meta = with lib; {
     description = "Grey and blue theme from the Shimmer Project for GTK-based environments";
diff --git a/nixpkgs/pkgs/data/themes/gruvbox-gtk-theme/default.nix b/nixpkgs/pkgs/data/themes/gruvbox-gtk-theme/default.nix
new file mode 100644
index 000000000000..a221918ad10d
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/gruvbox-gtk-theme/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gnome-themes-extra
+, gtk-engine-murrine
+}:
+stdenvNoCC.mkDerivation rec {
+  pname = "gruvbox-gtk-theme";
+  version = "unstable-2022-12-09";
+
+  src = fetchFromGitHub {
+    owner = "Fausto-Korpsvart";
+    repo = "Gruvbox-GTK-Theme";
+    rev = "c3172d8dcba66f4125a014d280d41e23f0b95cad";
+    sha256 = "1411mjlcj1d6kw3d3h1w9zsr0a08bzl5nddkkbv7w7lf67jy9b22";
+  };
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  buildInputs = [
+    gnome-themes-extra
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a themes/* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A Gtk theme based on the Gruvbox colour pallete";
+    homepage = "https://www.pling.com/p/1681313/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.math-42 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/jade1/default.nix b/nixpkgs/pkgs/data/themes/jade1/default.nix
index 42979c8c81b3..30857639dd76 100644
--- a/nixpkgs/pkgs/data/themes/jade1/default.nix
+++ b/nixpkgs/pkgs/data/themes/jade1/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "theme-jade1";
-  version = "1.14";
+  version = "1.15";
 
   src = fetchurl {
     url = "https://github.com/madmaxms/theme-jade-1/releases/download/v${version}/jade-1-theme.tar.xz";
-    sha256 = "01p1g0gy6d1c8aa9y7inhn6zhm0qy0fzmwlniiv07h15g32appvd";
+    sha256 = "sha256-VfV3dVpA3P0ChRjpxuh6C9loxr5t3s1xK0BP3DOCeQ4=";
   };
 
   sourceRoot = ".";
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
index 3d0c298cadae..57da762b9d64 100644
--- a/nixpkgs/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix
+++ b/nixpkgs/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix
@@ -6,19 +6,19 @@
 , kwin
 , kdelibs4support
 , libepoxy
-, libXdmcp
+, libxcb
 , lib
 }:
 
 stdenv.mkDerivation rec {
   pname = "kde-rounded-corners";
-  version = "unstable-2022-06-17";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "matinlotfali";
     repo = "KDE-Rounded-Corners";
-    rev = "015ef5cd65e9ec89e4a1ae057f2251eda03715e2";
-    hash = "sha256-NJ7icavofSUPPww1Ro7p0yY2EQ78S4KVCuj9yPuYwd8=";
+    rev = "v${version}";
+    hash = "sha256-5b23QCyjPMC6iba84Y2WEar5uXzxg2GonRv3e4mLQlQ=";
   };
 
   postConfigure = ''
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ cmake extra-cmake-modules wrapQtAppsHook ];
-  buildInputs = [ kwin kdelibs4support libepoxy libXdmcp ];
+  buildInputs = [ kwin kdelibs4support libepoxy libxcb ];
 
   meta = with lib; {
     description = "Rounds the corners of your windows";
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
index 6e0b99118bc4..6e9db943c91c 100644
--- a/nixpkgs/pkgs/data/themes/kwin-decorations/sierra-breeze-enhanced/default.nix
+++ b/nixpkgs/pkgs/data/themes/kwin-decorations/sierra-breeze-enhanced/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sierra-breeze-enhanced";
-  version = "1.1.0";
+  version = "1.3.3";
 
   src = fetchFromGitHub {
     owner = "kupiqu";
     repo = "SierraBreezeEnhanced";
     rev = "V${version}";
-    sha256 = "sha256-G1Ra7ld34AMPLZM0+3iEJHRFRMHVewZKTTXfmiu7PAk=";
+    sha256 = "sha256-zTUTsSzy4p0Y7RPOidCtxTjjyvPRyWSQCxA5sUzXcLc=";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules wrapQtAppsHook ];
diff --git a/nixpkgs/pkgs/data/themes/layan-gtk-theme/default.nix b/nixpkgs/pkgs/data/themes/layan-gtk-theme/default.nix
index 7892fbe9f316..597734ae9aef 100644
--- a/nixpkgs/pkgs/data/themes/layan-gtk-theme/default.nix
+++ b/nixpkgs/pkgs/data/themes/layan-gtk-theme/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "layan-gtk-theme";
-  version = "2021-06-30";
+  version = "2023-05-23";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "sha256-FI8+AJlcPHGOzxN6HUKLtPGLe8JTfTQ9Az9NsvVUK7g=";
+    sha256 = "sha256-R8QxDMOXzDIfioAvvescLAu6NjJQ9zhf/niQTXZr+yA=";
   };
 
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
diff --git a/nixpkgs/pkgs/data/themes/layan-kde/default.nix b/nixpkgs/pkgs/data/themes/layan-kde/default.nix
index 40cd6c055bf1..3b030337b7bc 100644
--- a/nixpkgs/pkgs/data/themes/layan-kde/default.nix
+++ b/nixpkgs/pkgs/data/themes/layan-kde/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater {inherit pname version; };
+  passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
     description = "A flat Design theme for KDE Plasma desktop";
diff --git a/nixpkgs/pkgs/data/themes/lightly-boehs/default.nix b/nixpkgs/pkgs/data/themes/lightly-boehs/default.nix
new file mode 100644
index 000000000000..10c30a431e7c
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/lightly-boehs/default.nix
@@ -0,0 +1,42 @@
+{ mkDerivation
+, lib
+, kdecoration
+, fetchFromGitHub
+, cmake
+, extra-cmake-modules
+, plasma-workspace
+, qtbase
+, qt5
+}:
+
+mkDerivation rec {
+  pname = "lightly-boehs";
+  version = "0.4.1";
+
+  src = fetchFromGitHub {
+    owner = "boehs";
+    repo = "Lightly";
+    rev = "1a831f7ff19ce93c04489faec74e389a216fdf11";
+    sha256 = "Icw+xVmuCB59ltyZJKyIeHI/yGfM2SbPrVzTVLqHWd4=";
+  };
+
+  buildInputs = [
+    kdecoration
+    plasma-workspace
+    qtbase
+    qt5.qtx11extras
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  meta = with lib; {
+    description = "A fork of the Lightly breeze theme style that aims to be visually modern and minimalistic";
+    homepage = "https://github.com/boehs/Lightly";
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.hikari ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/marwaita-manjaro/default.nix b/nixpkgs/pkgs/data/themes/marwaita-manjaro/default.nix
index 5cbf4c192085..e00fe5ff2254 100644
--- a/nixpkgs/pkgs/data/themes/marwaita-manjaro/default.nix
+++ b/nixpkgs/pkgs/data/themes/marwaita-manjaro/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "marwaita-manjaro";
-  version = "10.3";
+  version = "17.0";
 
   src = fetchFromGitHub {
     owner = "darkomarko42";
     repo = pname;
     rev = version;
-    sha256 = "0qihxipk7ya6n3p9kg20bk6plnb85pg3ahwd02qq4bqfiw6mx3gw";
+    sha256 = "sha256-lNHzO5wxAFL1axLlxefXyJue0Zu6bM53AUNm74IE4y8=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/data/themes/marwaita/default.nix b/nixpkgs/pkgs/data/themes/marwaita/default.nix
index e9819fae1da7..a16cf43cfe29 100644
--- a/nixpkgs/pkgs/data/themes/marwaita/default.nix
+++ b/nixpkgs/pkgs/data/themes/marwaita/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "marwaita";
-  version = "14.0";
+  version = "17";
 
   src = fetchFromGitHub {
     owner = "darkomarko42";
     repo = pname;
     rev = version;
-    sha256 = "sha256-G8oarWGx4DQ8ftmaWYpzV94cabDXbiJcVVgs70AG0Gs=";
+    sha256 = "sha256-9yPgcWtk8w2AyOav1sfQFuH8wnX37ho836NgUnQbFRE=";
   };
 
   buildInputs = [
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater { inherit pname version; };
+  passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
     description = "GTK theme supporting Budgie, Pantheon, Mate, Xfce4 and GNOME desktops";
diff --git a/nixpkgs/pkgs/data/themes/matcha/default.nix b/nixpkgs/pkgs/data/themes/matcha/default.nix
index dcf6988f5939..eccff020ce58 100644
--- a/nixpkgs/pkgs/data/themes/matcha/default.nix
+++ b/nixpkgs/pkgs/data/themes/matcha/default.nix
@@ -1,23 +1,37 @@
 { lib
-, stdenv
+, stdenvNoCC
 , fetchFromGitHub
 , gdk-pixbuf
 , gtk-engine-murrine
+, jdupes
 , librsvg
 , gitUpdater
+, colorVariants ? [] # default: all
+, themeVariants ? [] # default: blue
 }:
 
-stdenv.mkDerivation rec {
+let
   pname = "matcha-gtk-theme";
-  version = "2022-06-07";
+
+in
+lib.checkListOfEnum "${pname}: color variants" [ "standard" "light" "dark" ] colorVariants
+lib.checkListOfEnum "${pname}: theme variants" [ "aliz" "azul" "sea" "pueril" "all" ] themeVariants
+
+stdenvNoCC.mkDerivation rec {
+  inherit pname;
+  version = "2023-04-03";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "26xa9EGo2hci08Zw+X/A0Pn0VHxU8yfvRMiRusml+tc=";
+    sha256 = "mr9X7p/H8H2QKZxAQC9j/8OLK4D3EnWLxriFlh16diE=";
   };
 
+  nativeBuildInputs = [
+    jdupes
+  ];
+
   buildInputs = [
     gdk-pixbuf
     librsvg
@@ -33,15 +47,23 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     runHook preInstall
+
     mkdir -p $out/share/themes
-    name= ./install.sh --dest $out/share/themes
-    install -D -t $out/share/gtksourceview-3.0/styles src/extra/gedit/matcha.xml
+
+    name= ./install.sh \
+      ${lib.optionalString (colorVariants != []) "--color " + builtins.toString colorVariants} \
+      ${lib.optionalString (themeVariants != []) "--theme " + builtins.toString themeVariants} \
+      --dest $out/share/themes
+
     mkdir -p $out/share/doc/${pname}
     cp -a src/extra/firefox $out/share/doc/${pname}
+
+    jdupes --quiet --link-soft --recurse $out/share
+
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater {inherit pname version; };
+  passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
     description = "A stylish flat Design theme for GTK based desktop environments";
diff --git a/nixpkgs/pkgs/data/themes/material-kwin-decoration/default.nix b/nixpkgs/pkgs/data/themes/material-kwin-decoration/default.nix
index 463f86111ee9..ba81e1f62987 100644
--- a/nixpkgs/pkgs/data/themes/material-kwin-decoration/default.nix
+++ b/nixpkgs/pkgs/data/themes/material-kwin-decoration/default.nix
@@ -17,15 +17,21 @@
 
 mkDerivation rec {
   pname = "material-kwin-decoration";
-  version = "unstable-2022-01-19";
+  version = "unstable-2023-01-15";
 
   src = fetchFromGitHub {
     owner = "Zren";
     repo = "material-decoration";
-    rev = "973949761f609f9c676c5b2b7c6d9560661d34c3";
-    sha256 = "sha256-n+yUmBUrkS+06qLnzl2P6CTQZZbDtJLy+2mDPCcQz9M=";
+    rev = "0e989e5b815b64ee5bca989f983da68fa5556644";
+    sha256 = "sha256-Ncn5jxkuN4ZBWihfycdQwpJ0j4sRpBGMCl6RNiH4mXg=";
   };
 
+  # Remove -Werror since it uses deprecated methods
+  postPatch = ''
+    substituteInPlace ./CMakeLists.txt \
+      --replace "add_definitions (-Wall -Werror)" "add_definitions (-Wall)"
+  '';
+
   nativeBuildInputs = [ cmake extra-cmake-modules ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/data/themes/mojave/default.nix b/nixpkgs/pkgs/data/themes/mojave/default.nix
index 4fc9b0ab8c02..43a933c11bda 100644
--- a/nixpkgs/pkgs/data/themes/mojave/default.nix
+++ b/nixpkgs/pkgs/data/themes/mojave/default.nix
@@ -1,5 +1,5 @@
 { lib
-, stdenv
+, stdenvNoCC
 , fetchFromGitHub
 , fetchurl
 , glib
@@ -29,16 +29,16 @@ 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 {
+stdenvNoCC.mkDerivation rec {
   inherit pname;
-  version = "2022-06-07";
+  version = "2022-10-21";
 
   srcs = [
     (fetchFromGitHub {
       owner = "vinceliuice";
       repo = pname;
       rev = version;
-      sha256 = "sha256-OEqB2PSZ5KoxXAUhlyT1PRUzckVz+jTCIoAqP8gVqTk=";
+      sha256 = "sha256-0OqQXyv/fcbKTzvQUVIbUw5Y27hU1bzwx/0DelMEZIs=";
     })
   ]
   ++
@@ -114,14 +114,14 @@ stdenv.mkDerivation rec {
       install -D -t $out/share/wallpapers ../"macOS Mojave Wallpapers"/*
     ''}
 
-    # Replace duplicate files with hardlinks to the first file in each
+    # Replace duplicate files with soft links to the first file in each
     # set of duplicates, reducing the installed size in about 53%
-    jdupes -L -r $out/share
+    jdupes --quiet --link-soft --recurse $out/share
 
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater {inherit pname version; };
+  passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
     description = "Mac OSX Mojave like theme for GTK based desktop environments";
diff --git a/nixpkgs/pkgs/data/themes/nixos-bgrt-plymouth/default.nix b/nixpkgs/pkgs/data/themes/nixos-bgrt-plymouth/default.nix
new file mode 100644
index 000000000000..0486aed864f4
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/nixos-bgrt-plymouth/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, unstableGitUpdater
+}:
+
+stdenv.mkDerivation {
+  name = "nixos-bgrt-plymouth";
+  version = "unstable-2023-03-10";
+
+  src = fetchFromGitHub {
+    repo = "plymouth-theme-nixos-bgrt";
+    owner = "helsinki-systems";
+    rev = "0771e04f13b6b908d815b506472afb1c9a2c81ae";
+    hash = "sha256-aF4Ro5z4G6LS40ENwFDH8CgV7ldfhzqekuSph/DMQoo=";
+  };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/plymouth/themes/nixos-bgrt
+    cp -r $src/{*.plymouth,images} $out/share/plymouth/themes/nixos-bgrt/
+    substituteInPlace $out/share/plymouth/themes/nixos-bgrt/*.plymouth --replace '@IMAGES@' "$out/share/plymouth/themes/nixos-bgrt/images"
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = unstableGitUpdater { };
+
+  meta = with lib; {
+    description = "BGRT theme with a spinning NixOS logo";
+    homepage = "https://github.com/helsinki-systems/plymouth-theme-nixos-bgrt";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lilyinstarlight ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/nordic/default.nix b/nixpkgs/pkgs/data/themes/nordic/default.nix
index c29bb69bf7b1..8d977671fe7d 100644
--- a/nixpkgs/pkgs/data/themes/nordic/default.nix
+++ b/nixpkgs/pkgs/data/themes/nordic/default.nix
@@ -7,70 +7,70 @@
 
 stdenv.mkDerivation rec {
   pname = "nordic";
-  version = "unstable-2022-06-21";
+  version = "unstable-2023-05-12";
 
   srcs = [
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "bb5e31ec1488b1fd5641aa10f65f36d8714b5dba";
-      sha256 = "sha256-wTWHdao/1RLqUmqh/9gEyhERGymFWHqiC97JD28LSgk=";
+      rev = "399246cdcbdb1a714c5bb294857cd5a6494b6006";
+      sha256 = "sha256-0yZ4QYcdcGHEw6tdcXAKZ4e+mhNNmvihBxp2sLgTuu8=";
       name = "Nordic";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "e1fb044a14b5c7fe1f6c2de42bfb5fdfb1448415";
-      sha256 = "sha256-oWwc+bzeAf0NoYfA2r2oGpeciVUWFC7yJzlUAYfpdTY=";
+      rev = "3599ddb6f8b7de936cf106bddd4f929ddfe88b1c";
+      sha256 = "sha256-ft5UbBnjP0xNFFVwk5Elvrpcj273OupjM+MGJVlvJZQ=";
       name = "Nordic-standard-buttons";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "4c7c9f2d670a6f0c9cff1ec31fab67c826fdcc0f";
-      sha256 = "sha256-txKClsygX2IUGF8oOG6gDY6Y3v28kJthjdPrPEOZarQ=";
+      rev = "b03b66d5badadc2e5ff27b8745a2308b8fafaa61";
+      sha256 = "sha256-6dORsGfYi7q8z7JWA3Y9oqVs9bhT/gbdSrcgJcebGP8=";
       name = "Nordic-darker";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "8abe28ff07c190b8c343aacb6a0ce58e62abbd74";
-      sha256 = "sha256-tk9VZtwpIuBcWu1ERJLnlhM71pkrNEUzu8PDb+IEnpw=";
+      rev = "e19b75f56e5c328352c183fc960a0be54e99836e";
+      sha256 = "sha256-deKHT0dE5tsUo7+vkzxQ/eRon7COrOAWolw17VtKhiE=";
       name = "Nordic-darker-standard-buttons";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "9764e0f1af100731f77bf7f15792639d0032e5ed";
-      sha256 = "sha256-3vxrbxUhPj6PKWpjyCruhFxYz9nPfo1DHferYUD7enU=";
+      rev = "b134b4a1299b3c4a2d9543707ec2b5a0fc97987c";
+      sha256 = "sha256-XSDwc0/59sUHkS0holvujmr/p6vX79648l9cxJqunuM=";
       name = "Nordic-bluish-accent";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "407316a3fd5e07d183474aea4cae28bb958afa6c";
-      sha256 = "sha256-SvLTqDXjy8c4rZo0cZ83kfuiGd2+hyGvwILxVCz65jQ=";
+      rev = "a4efbc09470b36f4cf6af60b5fdfeb8e09282fb3";
+      sha256 = "sha256-Qgrl6p0AhbhK0+aM8hu85Kz/Lz/b2Nn8uWS+WpTGjU4=";
       name = "Nordic-bluish-accent-standard-buttons";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = "${pname}-polar";
-      rev = "1ffa167c4807e4b22e0934aee41403721877bc56";
-      sha256 = "sha256-Xat5YWnxTBnvnUfs1o5EhdmDezmOXtqry97Yc8O+WYM=";
+      rev = "0d44fb16d0f07ef8615fd7740317a518d2b9411f";
+      sha256 = "sha256-388251/Tg4jyn7c8zkrUxVFooN9O67xk2NTSeYa0VvI=";
       name = "Nordic-Polar";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = "${pname}-polar";
-      rev = "9bc68223edf7ad9dc83032d7d51ccc53f9440337";
-      sha256 = "sha256-XjGjijBky/iPcoUGDRrwwoZ5f2gbLchmQizkQN+Opjg=";
+      rev = "0eea9185946fee20b6d7472548226a3652dea7ae";
+      sha256 = "sha256-8JFrmGKn8cl1x3TeDPee1zbMmtypJ9kALv/PRqRHGAU=";
       name = "Nordic-Polar-standard-buttons";
     })
   ];
diff --git a/nixpkgs/pkgs/data/themes/numix-solarized/default.nix b/nixpkgs/pkgs/data/themes/numix-solarized/default.nix
index efc8236c4514..af06075de7d3 100644
--- a/nixpkgs/pkgs/data/themes/numix-solarized/default.nix
+++ b/nixpkgs/pkgs/data/themes/numix-solarized/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "numix-solarized-gtk-theme";
-  version = "20210831";
+  version = "20230408";
 
   src = fetchFromGitHub {
     owner = "Ferdi265";
     repo = pname;
     rev = version;
-    sha256 = "1q8qhpw0hfv625sm626zp4vbz2106b0g5m11ygk87s6kbxrfg6lr";
+    sha256 = "sha256-r5xCe8Ew+/SuCUaZ0yjlumORTy/y1VwbQQjQ6uEyGsY=";
   };
 
   nativeBuildInputs = [ python3 sassc glib gdk-pixbuf inkscape ];
diff --git a/nixpkgs/pkgs/data/themes/obsidian2/default.nix b/nixpkgs/pkgs/data/themes/obsidian2/default.nix
index 251dde481fd2..86b06f823535 100644
--- a/nixpkgs/pkgs/data/themes/obsidian2/default.nix
+++ b/nixpkgs/pkgs/data/themes/obsidian2/default.nix
@@ -1,27 +1,45 @@
-{ lib, stdenv, fetchurl, gtk-engine-murrine }:
+{ lib
+, stdenvNoCC
+, fetchurl
+, gtk-engine-murrine
+, jdupes
+, gitUpdater
+}:
 
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
   pname = "theme-obsidian2";
-  version = "2.20";
+  version = "2.23";
 
   src = fetchurl {
     url = "https://github.com/madmaxms/theme-obsidian-2/releases/download/v${version}/obsidian-2-theme.tar.xz";
-    sha256 = "0bbw8far4fjz7fiy205wnzp9ibnvqspfcjkinhjj8l0s272h7wjp";
+    sha256 = "sha256-yJoMS5XrHlMss+rdJ+xLJx0F9Hs1Cc+MFk+xyhRXaf0=";
   };
 
   sourceRoot = ".";
 
-  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+  nativeBuildInputs = [
+    jdupes
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
 
   installPhase = ''
     runHook preInstall
     mkdir -p $out/share/themes
     cp -a Obsidian-2* $out/share/themes
+    jdupes --quiet --link-soft --recurse $out/share
     runHook postInstall
   '';
 
+  passthru.updateScript = gitUpdater {
+    url = "https://github.com/madmaxms/theme-obsidian-2";
+    rev-prefix = "v";
+  };
+
   meta = with lib; {
-    description = "Gnome theme, based upon Adwaita-Maia dark skin";
+    description = "Gnome theme based upon Adwaita-Maia dark skin";
     homepage = "https://github.com/madmaxms/theme-obsidian-2";
     license = with licenses; [ gpl3Only ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/data/themes/orchis-theme/default.nix b/nixpkgs/pkgs/data/themes/orchis-theme/default.nix
index da647306ede6..2d07ac3ae380 100644
--- a/nixpkgs/pkgs/data/themes/orchis-theme/default.nix
+++ b/nixpkgs/pkgs/data/themes/orchis-theme/default.nix
@@ -5,29 +5,34 @@
 , gnome-themes-extra
 , gtk-engine-murrine
 , sassc
-, tweaks ? [ ] # can be "solid" "compact" "black" "primary"
+, border-radius ? null # Suggested: 2 < value < 16
+, tweaks ? [ ] # can be "solid" "compact" "black" "primary" "macos" "submenu" "nord|dracula"
 , withWallpapers ? false
 }:
 
 let
-  validTweaks = [ "solid" "compact" "black" "primary" ];
-  unknownTweaks = lib.subtractLists validTweaks tweaks;
+  pname = "orchis-theme";
+
+  validTweaks = [ "solid" "compact" "black" "primary" "macos" "submenu" "nord" "dracula" ];
+
+  nordXorDracula = with builtins; lib.assertMsg (!(elem "nord" tweaks) || !(elem "dracula" tweaks)) ''
+    ${pname}: dracula and nord cannot be mixed. Tweaks ${toString tweaks}
+  '';
 in
-assert lib.assertMsg (unknownTweaks == [ ]) ''
-  You entered wrong tweaks: ${toString unknownTweaks}
-  Valid tweaks are: ${toString validTweaks}
-'';
+
+assert nordXorDracula;
+lib.checkListOfEnum "${pname}: theme tweaks" validTweaks tweaks
 
 stdenvNoCC.mkDerivation
 rec {
-  pname = "orchis-theme";
-  version = "2022-07-20";
+  inherit pname;
+  version = "2023-05-27";
 
   src = fetchFromGitHub {
     repo = "Orchis-theme";
     owner = "vinceliuice";
     rev = version;
-    sha256 = "sha256-0T9D42XwyvIb5XeXdqXbyahVHNcSeT469lSgWSisNvA=";
+    hash = "sha256-I1a8y9dAJqFgnhyMqfupSdGvbbScf6tSYKlAhAzY4Dk=";
   };
 
   nativeBuildInputs = [ gtk3 sassc ];
@@ -42,7 +47,9 @@ rec {
 
   installPhase = ''
     runHook preInstall
-    bash install.sh -d $out/share/themes -t all ${lib.optionalString (tweaks != []) "--tweaks " + builtins.toString tweaks}
+    bash install.sh -d $out/share/themes -t all \
+      ${lib.optionalString (tweaks != []) "--tweaks " + builtins.toString tweaks} \
+      ${lib.optionalString (border-radius != null) ("--round " + builtins.toString border-radius + "px")}
     ${lib.optionalString withWallpapers ''
       mkdir -p $out/share/backgrounds
       cp src/wallpaper/{1080p,2k,4k}.jpg $out/share/backgrounds
diff --git a/nixpkgs/pkgs/data/themes/qogir-kde/default.nix b/nixpkgs/pkgs/data/themes/qogir-kde/default.nix
index 30ef4ed82d36..44182aa3f45a 100644
--- a/nixpkgs/pkgs/data/themes/qogir-kde/default.nix
+++ b/nixpkgs/pkgs/data/themes/qogir-kde/default.nix
@@ -36,7 +36,7 @@ stdenvNoCC.mkDerivation rec {
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater { inherit pname version; };
+  passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
     description = "A flat Design theme for KDE Plasma desktop";
diff --git a/nixpkgs/pkgs/data/themes/qogir/default.nix b/nixpkgs/pkgs/data/themes/qogir/default.nix
index f6ea2c61aa89..e435ce549450 100644
--- a/nixpkgs/pkgs/data/themes/qogir/default.nix
+++ b/nixpkgs/pkgs/data/themes/qogir/default.nix
@@ -24,13 +24,13 @@ lib.checkListOfEnum "${pname}: tweaks" [ "image" "square" "round" ] tweaks
 
 stdenv.mkDerivation rec {
   inherit pname;
-  version = "2022-07-17";
+  version = "2023-05-24";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "NGgTToaSJBwmHnZjWbJ3dSJg9Mmfchj3W0xgK0CMb9M=";
+    sha256 = "L19pbmJJFr1xi4ZTp0ocxmdMvWmtkK2zquOFfbV+P5Q=";
   };
 
   nativeBuildInputs = [
@@ -69,16 +69,16 @@ stdenv.mkDerivation rec {
 
     rm $out/share/themes/*/{AUTHORS,COPYING}
 
-    jdupes --link-soft --recurse $out/share
+    jdupes --quiet --link-soft --recurse $out/share
 
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater { inherit pname version; };
+  passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
     description = "Flat Design theme for GTK based desktop environments";
-    homepage = "https://vinceliuice.github.io/Qogir-theme";
+    homepage = "https://github.com/vinceliuice/Qogir-theme";
     license = licenses.gpl3Only;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
diff --git a/nixpkgs/pkgs/data/themes/rose-pine-gtk/default.nix b/nixpkgs/pkgs/data/themes/rose-pine-gtk/default.nix
index d139876e1429..4211864139df 100644
--- a/nixpkgs/pkgs/data/themes/rose-pine-gtk/default.nix
+++ b/nixpkgs/pkgs/data/themes/rose-pine-gtk/default.nix
@@ -1,20 +1,20 @@
-{ stdenv
-, fetchFromGitHub
+{ stdenvNoCC
 , lib
+, fetchFromGitHub
 , gnome-themes-extra
 , gtk-engine-murrine
 , gtk_engines
 }:
 
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
   pname = "rose-pine-gtk-theme";
-  version = "unstable-2021-02-22";
+  version = "unstable-2022-09-01";
 
   src = fetchFromGitHub {
     owner = "rose-pine";
     repo = "gtk";
-    rev = "9cd2dd449f911973ec549231a57a070d256da9fd";
-    sha256 = "0lqx8dmv754ix3xbg7h440x964n0bg4lb06vbzvsydnbx79h7lvy";
+    rev = "7a4c40989fd42fd8d4a797f460c79fc4a085c304";
+    sha256 = "0q74wjyrsjyym770i3sqs071bvanwmm727xzv50wk6kzvpyqgi67";
   };
 
   buildInputs = [
@@ -26,11 +26,18 @@ stdenv.mkDerivation rec {
     gtk-engine-murrine # murrine engine for Gtk2
   ];
 
+  # avoid the makefile which is only for theme maintainers
+  dontBuild = true;
+
   installPhase = ''
     runHook preInstall
+
     mkdir -p $out/share/themes
-    cp -a Rose-Pine $out/share/themes
-    rm $out/share/themes/*/LICENSE
+    mv gtk3/rose-pine-gtk $out/share/themes/rose-pine
+    mv gtk3/rose-pine-moon-gtk $out/share/themes/rose-pine-moon
+    mv gtk3/rose-pine-dawn-gtk $out/share/themes/rose-pine-dawn
+    mv gnome_shell/moon/gnome-shell $out/share/themes/rose-pine-moon
+
     runHook postInstall
   '';
 
@@ -39,6 +46,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/rose-pine/gtk";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
-    maintainers = [ maintainers.romildo ];
+    maintainers = with maintainers; [romildo the-argus];
   };
 }
diff --git a/nixpkgs/pkgs/data/themes/sweet-nova/default.nix b/nixpkgs/pkgs/data/themes/sweet-nova/default.nix
new file mode 100644
index 000000000000..5c89964eeaf6
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/sweet-nova/default.nix
@@ -0,0 +1,51 @@
+{ fetchFromGitHub
+, gitUpdater
+, lib
+, stdenvNoCC
+}:
+
+stdenvNoCC.mkDerivation {
+  pname = "sweet-nova";
+  version = "unstable-2023-04-02";
+
+  src = fetchFromGitHub {
+    owner = "EliverLara";
+    repo = "Sweet";
+    rev = "8a5d5a7d975567b5ae101b9f9d436fb1db2d9b24";
+    hash = "sha256-FVcXBxcS5oFsvAUDcwit7EIfgIQznl8AYYxqQ797ddU=";
+  };
+
+  buildPhase = ''
+    runHook preBuild
+    cd kde
+    mkdir -p aurorae/themes
+    mv aurorae/Sweet-Dark aurorae/themes/Sweet-Dark
+    mv aurorae/Sweet-Dark-transparent aurorae/themes/Sweet-Dark-transparent
+    rm aurorae/.shade.svg
+    mv colorschemes color-schemes
+    mkdir -p plasma/look-and-feel
+    mv look-and-feel plasma/look-and-feel/com.github.eliverlara.sweet
+    mv sddm sddm-Sweet
+    mkdir -p sddm/themes
+    mv sddm-Sweet sddm/themes/Sweet
+    mv cursors icons
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -d $out/share
+    cp -r Kvantum aurorae color-schemes icons konsole plasma sddm $out/share
+    runHook postInstall
+  '';
+
+  passthru.updateScript = gitUpdater { };
+
+  meta = with lib; {
+    description = "A dark and colorful, blurry theme for the KDE Plasma desktop";
+    homepage = "https://github.com/EliverLara/Sweet";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.dr460nf1r3 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/tokyo-night-gtk/default.nix b/nixpkgs/pkgs/data/themes/tokyo-night-gtk/default.nix
new file mode 100644
index 000000000000..a117562174e5
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/tokyo-night-gtk/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gtk-engine-murrine
+}:
+
+stdenvNoCC.mkDerivation {
+  pname = "tokyo-night-gtk";
+  version = "2023.01.17";
+
+  src = fetchFromGitHub {
+    owner = "Fausto-Korpsvart";
+    repo = "Tokyo-Night-GTK-Theme";
+    rev = "f7ae3421ac0d415ca57fb6224e093e12b8a980bb";
+    sha256 = "sha256-90V55pRfgiaP1huhD+3456ziJ2EU24iNQHt5Ro+g+M0=";
+  };
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a themes/* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A GTK theme based on the Tokyo Night colour palette.";
+    homepage = "www.pling.com/p/1681315/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = with lib.maintainers; [ garaiza-93 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/vimix/default.nix b/nixpkgs/pkgs/data/themes/vimix/default.nix
index dc13b4abfb6b..f9dbf73b3a99 100644
--- a/nixpkgs/pkgs/data/themes/vimix/default.nix
+++ b/nixpkgs/pkgs/data/themes/vimix/default.nix
@@ -1,26 +1,41 @@
 { lib
-, stdenv
+, stdenvNoCC
 , fetchFromGitHub
 , gnome-shell
 , gtk-engine-murrine
 , gtk_engines
+, jdupes
 , sassc
 , gitUpdater
+, themeVariants ? [] # default: doder (blue)
+, colorVariants ? [] # default: all
+, sizeVariants ? [] # default: standard
+, tweaks ? []
 }:
 
-stdenv.mkDerivation rec {
+let
   pname = "vimix-gtk-themes";
-  version = "2022-04-24";
+
+in
+lib.checkListOfEnum "${pname}: theme variants" [ "doder" "beryl" "ruby" "amethyst" "jade" "grey" "all" ] themeVariants
+lib.checkListOfEnum "${pname}: color variants" [ "standard" "light" "dark" ] colorVariants
+lib.checkListOfEnum "${pname}: size variants" [ "standard" "compact" "all" ] sizeVariants
+lib.checkListOfEnum "${pname}: tweaks" [ "flat" "grey" "mix" "translucent" ] tweaks
+
+stdenvNoCC.mkDerivation rec {
+  inherit pname;
+  version = "2023-01-25";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "0q0ahm060qvr7r9j3x9lxidjnwf032c2g1pcqw9mz93iy7vfn358";
+    sha256 = "4IJMLSUsZvtPfuMS+NYkKo8K3laec2YJk20d5tL0vKI=";
   };
 
   nativeBuildInputs = [
     gnome-shell  # needed to determine the gnome-shell version
+    jdupes
     sassc
   ];
 
@@ -39,12 +54,18 @@ stdenv.mkDerivation rec {
   installPhase = ''
     runHook preInstall
     mkdir -p $out/share/themes
-    name= HOME="$TMPDIR" ./install.sh --all --dest $out/share/themes
+    name= HOME="$TMPDIR" ./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
     rm $out/share/themes/*/{AUTHORS,LICENSE}
+    jdupes --quiet --link-soft --recurse $out/share
     runHook postInstall
   '';
 
-  passthru.updateScript = gitUpdater {inherit pname version; };
+  passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
     description = "Flat Material Design theme for GTK based desktop environments";
diff --git a/nixpkgs/pkgs/data/themes/whitesur/default.nix b/nixpkgs/pkgs/data/themes/whitesur/default.nix
index 825772880d6e..c01c8e08166e 100644
--- a/nixpkgs/pkgs/data/themes/whitesur/default.nix
+++ b/nixpkgs/pkgs/data/themes/whitesur/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, gitUpdater
 , glib
 , gnome-shell
 , gnome-themes-extra
@@ -32,13 +33,13 @@ lib.checkListOfEnum "${pname}: panel size" [ "default" "smaller" "bigger" ] (sin
 
 stdenv.mkDerivation rec {
   pname = "whitesur-gtk-theme";
-  version = "2022-02-21";
+  version = "2023-02-07";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "1bqgbkx7qhpj9vbqcxb69p67m8ix3avxr81pdpdi56g9gqbnkpfc";
+    sha256 = "sha256-RGYD2+ZTUTPyFbaHvXU9VD3W6WTNeg3ifY+DAR3MmtI=";
   };
 
   nativeBuildInputs = [
@@ -60,10 +61,10 @@ stdenv.mkDerivation rec {
     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
+    substituteInPlace shell/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'
+    substituteInPlace shell/lib-core.sh --replace 'MY_HOME=$(getent passwd "''${MY_USERNAME}" | cut -d: -f6)' 'MY_HOME=/tmp'
   '';
 
   dontBuild = true;
@@ -83,11 +84,13 @@ stdenv.mkDerivation rec {
       ${lib.optionalString (panelSize != null) ("--panel-size " + panelSize)} \
       --dest $out/share/themes
 
-    jdupes --link-soft --recurse $out/share
+    jdupes --quiet --link-soft --recurse $out/share
 
     runHook postInstall
   '';
 
+  passthru.updateScript = gitUpdater { };
+
   meta = with lib; {
     description = "MacOS Big Sur like theme for Gnome desktops";
     homepage = "https://github.com/vinceliuice/WhiteSur-gtk-theme";
diff --git a/nixpkgs/pkgs/data/themes/yaru/default.nix b/nixpkgs/pkgs/data/themes/yaru/default.nix
index 18c471e4f96b..b4e50252fe53 100644
--- a/nixpkgs/pkgs/data/themes/yaru/default.nix
+++ b/nixpkgs/pkgs/data/themes/yaru/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yaru";
-  version = "22.04.4";
+  version = "23.04.4";
 
   src = fetchFromGitHub {
     owner = "ubuntu";
     repo = "yaru";
     rev = version;
-    sha256 = "sha256-EnlzjJDbiMIImn0XmiurK++JnD/kBqv4Mw6B/ps8d4Y=";
+    hash = "sha256-8MtRYNJJVhZzE5Ds1HSk+Ej3FUD/z2hGZAsuCeGzWb4=";
   };
 
   nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];