summary refs log tree commit diff
path: root/pkgs/data
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/data')
-rw-r--r--pkgs/data/documentation/anarchism/default.nix12
-rw-r--r--pkgs/data/documentation/gnome-user-docs/default.nix16
-rw-r--r--pkgs/data/documentation/man-pages-posix/default.nix24
-rw-r--r--pkgs/data/documentation/man-pages/default.nix16
-rw-r--r--pkgs/data/documentation/rnrs/common.nix2
-rw-r--r--pkgs/data/documentation/scheme-manpages/default.nix10
-rw-r--r--pkgs/data/documentation/stdman/default.nix4
-rw-r--r--pkgs/data/documentation/zeal/default.nix6
-rw-r--r--pkgs/data/fonts/3270font/default.nix11
-rw-r--r--pkgs/data/fonts/agave/default.nix4
-rw-r--r--pkgs/data/fonts/alegreya-sans/default.nix4
-rw-r--r--pkgs/data/fonts/alegreya/default.nix4
-rw-r--r--pkgs/data/fonts/andagii/default.nix2
-rw-r--r--pkgs/data/fonts/andika/default.nix4
-rw-r--r--pkgs/data/fonts/anonymous-pro/default.nix2
-rw-r--r--pkgs/data/fonts/caladea/cambria-alias.conf2
-rw-r--r--pkgs/data/fonts/cantarell-fonts/default.nix22
-rw-r--r--pkgs/data/fonts/carlito/calibri-alias.conf2
-rw-r--r--pkgs/data/fonts/cascadia-code/default.nix4
-rw-r--r--pkgs/data/fonts/charis-sil/default.nix4
-rw-r--r--pkgs/data/fonts/cherry/default.nix4
-rw-r--r--pkgs/data/fonts/clearlyU/default.nix4
-rw-r--r--pkgs/data/fonts/comic-neue/default.nix43
-rw-r--r--pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf2
-rw-r--r--pkgs/data/fonts/corefonts/default.nix6
-rw-r--r--pkgs/data/fonts/corefonts/no-op.conf2
-rw-r--r--pkgs/data/fonts/courier-prime/default.nix24
-rw-r--r--pkgs/data/fonts/cozette/default.nix2
-rw-r--r--pkgs/data/fonts/creep/default.nix4
-rw-r--r--pkgs/data/fonts/curie/default.nix29
-rw-r--r--pkgs/data/fonts/dejavu-fonts/default.nix8
-rw-r--r--pkgs/data/fonts/dina/default.nix50
-rw-r--r--pkgs/data/fonts/doulos-sil/default.nix4
-rw-r--r--pkgs/data/fonts/edwin/default.nix29
-rw-r--r--pkgs/data/fonts/efont-unicode/default.nix54
-rw-r--r--pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix4
-rw-r--r--pkgs/data/fonts/emojione/default.nix22
-rw-r--r--pkgs/data/fonts/envypn-font/default.nix4
-rw-r--r--pkgs/data/fonts/et-book/default.nix4
-rw-r--r--pkgs/data/fonts/eunomia/default.nix2
-rw-r--r--pkgs/data/fonts/f5_6/default.nix2
-rw-r--r--pkgs/data/fonts/ferrum/default.nix2
-rw-r--r--pkgs/data/fonts/fira-code/default.nix9
-rw-r--r--pkgs/data/fonts/fira-code/symbols.nix4
-rw-r--r--pkgs/data/fonts/fira-mono/default.nix4
-rw-r--r--pkgs/data/fonts/fixedsys-excelsior/default.nix10
-rw-r--r--pkgs/data/fonts/font-awesome-5/default.nix4
-rw-r--r--pkgs/data/fonts/fraunces/default.nix25
-rw-r--r--pkgs/data/fonts/gentium/default.nix18
-rw-r--r--pkgs/data/fonts/go-font/default.nix6
-rw-r--r--pkgs/data/fonts/gohufont/default.nix4
-rw-r--r--pkgs/data/fonts/google-fonts/default.nix36
-rw-r--r--pkgs/data/fonts/gubbi/default.nix4
-rw-r--r--pkgs/data/fonts/ibm-plex/default.nix4
-rw-r--r--pkgs/data/fonts/inconsolata/default.nix8
-rw-r--r--pkgs/data/fonts/inconsolata/lgc.nix4
-rw-r--r--pkgs/data/fonts/input-fonts/default.nix86
-rw-r--r--pkgs/data/fonts/inter-ui/default.nix29
-rw-r--r--pkgs/data/fonts/inter/default.nix4
-rw-r--r--pkgs/data/fonts/iosevka/bin.nix49
-rw-r--r--pkgs/data/fonts/iosevka/default.nix120
-rw-r--r--pkgs/data/fonts/iosevka/package.json28
-rwxr-xr-xpkgs/data/fonts/iosevka/update-bin.sh28
-rwxr-xr-xpkgs/data/fonts/iosevka/update-default.sh21
-rw-r--r--pkgs/data/fonts/iosevka/variants.nix27
-rw-r--r--pkgs/data/fonts/jetbrains-mono/default.nix12
-rw-r--r--pkgs/data/fonts/jost/default.nix4
-rw-r--r--pkgs/data/fonts/joypixels/default.nix105
-rw-r--r--pkgs/data/fonts/julia-mono/default.nix31
-rw-r--r--pkgs/data/fonts/kanit/default.nix39
-rw-r--r--pkgs/data/fonts/kanji-stroke-order-font/default.nix4
-rw-r--r--pkgs/data/fonts/kochi-substitute/default.nix6
-rw-r--r--pkgs/data/fonts/kreative-square-fonts/default.nix28
-rw-r--r--pkgs/data/fonts/last-resort/default.nix24
-rw-r--r--pkgs/data/fonts/lato/default.nix4
-rw-r--r--pkgs/data/fonts/league-of-moveable-type/default.nix8
-rw-r--r--pkgs/data/fonts/liberation-fonts/default.nix9
-rw-r--r--pkgs/data/fonts/liberation-sans-narrow/default.nix4
-rw-r--r--pkgs/data/fonts/libertine/default.nix4
-rw-r--r--pkgs/data/fonts/libre-caslon/default.nix4
-rw-r--r--pkgs/data/fonts/lmmath/default.nix2
-rw-r--r--pkgs/data/fonts/lobster-two/default.nix80
-rw-r--r--pkgs/data/fonts/merriweather/default.nix2
-rw-r--r--pkgs/data/fonts/meslo-lg/default.nix9
-rw-r--r--pkgs/data/fonts/meslo-lgs-nf/default.nix26
-rw-r--r--pkgs/data/fonts/migmix/default.nix4
-rw-r--r--pkgs/data/fonts/migu/default.nix4
-rw-r--r--pkgs/data/fonts/mno16/default.nix2
-rw-r--r--pkgs/data/fonts/monoid/default.nix20
-rw-r--r--pkgs/data/fonts/mononoki/default.nix4
-rw-r--r--pkgs/data/fonts/montserrat/default.nix37
-rw-r--r--pkgs/data/fonts/myrica/default.nix1
-rw-r--r--pkgs/data/fonts/nafees/default.nix6
-rw-r--r--pkgs/data/fonts/navilu/default.nix4
-rw-r--r--pkgs/data/fonts/nerdfonts/default.nix2
-rw-r--r--pkgs/data/fonts/nerdfonts/shas.nix100
-rwxr-xr-xpkgs/data/fonts/nerdfonts/update.sh2
-rw-r--r--pkgs/data/fonts/noto-fonts/default.nix48
-rw-r--r--pkgs/data/fonts/noto-fonts/tools.nix62
-rw-r--r--pkgs/data/fonts/oldstandard/default.nix2
-rw-r--r--pkgs/data/fonts/open-fonts/default.nix28
-rw-r--r--pkgs/data/fonts/open-sans/default.nix4
-rw-r--r--pkgs/data/fonts/orbitron/default.nix3
-rw-r--r--pkgs/data/fonts/paratype-pt/mono.nix6
-rw-r--r--pkgs/data/fonts/paratype-pt/sans.nix6
-rw-r--r--pkgs/data/fonts/paratype-pt/serif.nix6
-rw-r--r--pkgs/data/fonts/poly/default.nix6
-rw-r--r--pkgs/data/fonts/powerline-symbols/default.nix18
-rw-r--r--pkgs/data/fonts/profont/default.nix4
-rw-r--r--pkgs/data/fonts/proggyfonts/default.nix4
-rw-r--r--pkgs/data/fonts/recursive/default.nix7
-rw-r--r--pkgs/data/fonts/ricty/default.nix8
-rw-r--r--pkgs/data/fonts/rictydiminished-with-firacode/default.nix4
-rw-r--r--pkgs/data/fonts/roboto-mono/default.nix4
-rw-r--r--pkgs/data/fonts/roboto-slab/default.nix4
-rw-r--r--pkgs/data/fonts/sarasa-gothic/default.nix4
-rw-r--r--pkgs/data/fonts/scheherazade/default.nix24
-rw-r--r--pkgs/data/fonts/scientifica/default.nix32
-rw-r--r--pkgs/data/fonts/siji/default.nix10
-rw-r--r--pkgs/data/fonts/spleen/default.nix4
-rw-r--r--pkgs/data/fonts/stix-two/default.nix27
-rw-r--r--pkgs/data/fonts/sudo/default.nix10
-rw-r--r--pkgs/data/fonts/tamsyn/default.nix4
-rw-r--r--pkgs/data/fonts/tamzen/default.nix4
-rw-r--r--pkgs/data/fonts/tempora-lgc/default.nix9
-rw-r--r--pkgs/data/fonts/terminus-font-ttf/default.nix4
-rw-r--r--pkgs/data/fonts/terminus-font/default.nix4
-rw-r--r--pkgs/data/fonts/termsyn/default.nix26
-rw-r--r--pkgs/data/fonts/tewi/default.nix4
-rw-r--r--pkgs/data/fonts/tex-gyre-math/default.nix6
-rw-r--r--pkgs/data/fonts/tex-gyre/default.nix6
-rw-r--r--pkgs/data/fonts/times-newer-roman/default.nix25
-rw-r--r--pkgs/data/fonts/tlwg/default.nix4
-rw-r--r--pkgs/data/fonts/ttf-bitstream-vera/default.nix4
-rw-r--r--pkgs/data/fonts/ttf-tw-moe/default.nix30
-rw-r--r--pkgs/data/fonts/twemoji-color-font/default.nix30
-rw-r--r--pkgs/data/fonts/twitter-color-emoji/default.nix47
-rw-r--r--pkgs/data/fonts/ucs-fonts/default.nix4
-rw-r--r--pkgs/data/fonts/undefined-medium/default.nix1
-rw-r--r--pkgs/data/fonts/uni-vga/default.nix4
-rw-r--r--pkgs/data/fonts/unifont/default.nix12
-rw-r--r--pkgs/data/fonts/unifont_upper/default.nix4
-rw-r--r--pkgs/data/fonts/unscii/default.nix26
-rw-r--r--pkgs/data/fonts/uw-ttyp0/default.nix4
-rw-r--r--pkgs/data/fonts/vazir-code-font/default.nix26
-rw-r--r--pkgs/data/fonts/vegur/default.nix2
-rw-r--r--pkgs/data/fonts/vista-fonts-chs/default.nix24
-rw-r--r--pkgs/data/fonts/vista-fonts-chs/no-op.conf2
-rw-r--r--pkgs/data/fonts/vista-fonts/default.nix26
-rw-r--r--pkgs/data/fonts/vista-fonts/no-op.conf2
-rw-r--r--pkgs/data/fonts/vollkorn/default.nix29
-rw-r--r--pkgs/data/fonts/xits-math/default.nix4
-rw-r--r--pkgs/data/icons/arc-icon-theme/default.nix6
-rw-r--r--pkgs/data/icons/beauty-line-icon-theme/default.nix39
-rw-r--r--pkgs/data/icons/bibata-cursors/default.nix6
-rw-r--r--pkgs/data/icons/bibata-cursors/extra.nix6
-rw-r--r--pkgs/data/icons/bibata-cursors/translucent.nix8
-rw-r--r--pkgs/data/icons/capitaine-cursors/default.nix30
-rw-r--r--pkgs/data/icons/elementary-xfce-icon-theme/default.nix12
-rw-r--r--pkgs/data/icons/faba-icon-theme/default.nix4
-rw-r--r--pkgs/data/icons/faba-mono-icons/default.nix4
-rw-r--r--pkgs/data/icons/flat-remix-icon-theme/default.nix8
-rw-r--r--pkgs/data/icons/gnome-icon-theme/default.nix8
-rw-r--r--pkgs/data/icons/gruvbox-dark-icons-gtk/default.nix34
-rw-r--r--pkgs/data/icons/hicolor-icon-theme/default.nix4
-rw-r--r--pkgs/data/icons/hicolor-icon-theme/setup-hook.sh6
-rw-r--r--pkgs/data/icons/humanity-icon-theme/default.nix6
-rw-r--r--pkgs/data/icons/iconpack-jade/default.nix10
-rw-r--r--pkgs/data/icons/iconpack-obsidian/default.nix14
-rw-r--r--pkgs/data/icons/iso-flags/default.nix45
-rw-r--r--pkgs/data/icons/kora-icon-theme/default.nix46
-rw-r--r--pkgs/data/icons/luna-icons/default.nix13
-rw-r--r--pkgs/data/icons/maia-icon-theme/default.nix18
-rw-r--r--pkgs/data/icons/mint-x-icons/default.nix52
-rw-r--r--pkgs/data/icons/moka-icon-theme/default.nix4
-rw-r--r--pkgs/data/icons/numix-cursor-theme/default.nix15
-rw-r--r--pkgs/data/icons/numix-icon-theme-circle/default.nix10
-rw-r--r--pkgs/data/icons/numix-icon-theme-square/default.nix10
-rw-r--r--pkgs/data/icons/numix-icon-theme/default.nix14
-rw-r--r--pkgs/data/icons/oranchelo-icon-theme/default.nix37
-rw-r--r--pkgs/data/icons/paper-icon-theme/default.nix6
-rw-r--r--pkgs/data/icons/papirus-icon-theme/default.nix18
-rw-r--r--pkgs/data/icons/papirus-maia-icon-theme/default.nix4
-rw-r--r--pkgs/data/icons/pop-icon-theme/default.nix8
-rw-r--r--pkgs/data/icons/qogir-icon-theme/default.nix19
-rw-r--r--pkgs/data/icons/quintom-cursor-theme/default.nix28
-rw-r--r--pkgs/data/icons/tango-icon-theme/default.nix6
-rw-r--r--pkgs/data/icons/tela-icon-theme/default.nix42
-rw-r--r--pkgs/data/icons/vanilla-dmz/default.nix26
-rw-r--r--pkgs/data/icons/whitesur-icon-theme/default.nix63
-rw-r--r--pkgs/data/icons/zafiro-icons/default.nix6
-rw-r--r--pkgs/data/machine-learning/mnist/default.nix6
-rw-r--r--pkgs/data/misc/adapta-backgrounds/default.nix6
-rw-r--r--pkgs/data/misc/brise/default.nix4
-rw-r--r--pkgs/data/misc/cacert/default.nix93
-rw-r--r--pkgs/data/misc/cacert/fix-unicode-ca-names.patch20
-rw-r--r--pkgs/data/misc/cacert/setup-hook.sh6
-rwxr-xr-xpkgs/data/misc/cacert/update.sh42
-rw-r--r--pkgs/data/misc/cldr-emoji-annotation/default.nix8
-rw-r--r--pkgs/data/misc/combinatorial_designs/default.nix6
-rw-r--r--pkgs/data/misc/common-licenses/default.nix28
-rw-r--r--pkgs/data/misc/conway_polynomials/default.nix12
-rw-r--r--pkgs/data/misc/ddccontrol-db/default.nix16
-rw-r--r--pkgs/data/misc/elliptic_curves/default.nix10
-rw-r--r--pkgs/data/misc/fedora-backgrounds/default.nix34
-rw-r--r--pkgs/data/misc/fedora-backgrounds/f33-fix-xfce-path.patch15
-rw-r--r--pkgs/data/misc/fedora-backgrounds/f34-fix-xfce-path.patch13
-rw-r--r--pkgs/data/misc/fedora-backgrounds/generic.nix43
-rw-r--r--pkgs/data/misc/freepats/default.nix4
-rw-r--r--pkgs/data/misc/geolite-legacy/default.nix4
-rw-r--r--pkgs/data/misc/graphs/default.nix10
-rw-r--r--pkgs/data/misc/hackage/default.nix10
-rw-r--r--pkgs/data/misc/hackage/pin.json6
-rw-r--r--pkgs/data/misc/iana-etc/default.nix8
-rw-r--r--pkgs/data/misc/libkkc-data/default.nix8
-rw-r--r--pkgs/data/misc/mailcap/default.nix8
-rw-r--r--pkgs/data/misc/media-player-info/default.nix6
-rw-r--r--pkgs/data/misc/mime-types/default.nix4
-rw-r--r--pkgs/data/misc/miscfiles/default.nix4
-rw-r--r--pkgs/data/misc/mobile-broadband-provider-info/default.nix15
-rw-r--r--pkgs/data/misc/nixos-artwork/icons.nix26
-rw-r--r--pkgs/data/misc/nixos-artwork/wallpapers.nix4
-rw-r--r--pkgs/data/misc/osinfo-db/default.nix10
-rw-r--r--pkgs/data/misc/pari-galdata/default.nix6
-rw-r--r--pkgs/data/misc/pari-seadata-small/default.nix6
-rw-r--r--pkgs/data/misc/polytopes_db/default.nix6
-rw-r--r--pkgs/data/misc/poppler-data/default.nix8
-rw-r--r--pkgs/data/misc/rime-data/default.nix66
-rw-r--r--pkgs/data/misc/rime-data/fetchSchema.nix137
-rwxr-xr-xpkgs/data/misc/rime-data/generateFetchSchema.sh43
-rw-r--r--pkgs/data/misc/scowl/default.nix13
-rw-r--r--pkgs/data/misc/shared-desktop-ontologies/default.nix13
-rw-r--r--pkgs/data/misc/shared-mime-info/default.nix49
-rw-r--r--pkgs/data/misc/sound-theme-freedesktop/default.nix4
-rw-r--r--pkgs/data/misc/spdx-license-list-data/default.nix21
-rw-r--r--pkgs/data/misc/tzdata/default.nix18
-rw-r--r--pkgs/data/misc/unicode-character-database/default.nix4
-rw-r--r--pkgs/data/misc/unicode-emoji/default.nix5
-rw-r--r--pkgs/data/misc/unihan-database/default.nix4
-rw-r--r--pkgs/data/misc/wireless-regdb/default.nix8
-rw-r--r--pkgs/data/misc/xorg-rgb/default.nix21
-rw-r--r--pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/3.1.nix4
-rw-r--r--pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/4.1.nix4
-rw-r--r--pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/default.nix4
-rw-r--r--pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix4
-rw-r--r--pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix4
-rw-r--r--pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix4
-rw-r--r--pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.4.nix4
-rw-r--r--pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix4
-rw-r--r--pkgs/data/sgml+xml/schemas/xml-dtd/docbook/generic.nix4
-rw-r--r--pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix6
-rw-r--r--pkgs/data/soundfonts/fluid/default.nix4
-rw-r--r--pkgs/data/themes/adapta-kde/default.nix8
-rw-r--r--pkgs/data/themes/adapta/default.nix10
-rw-r--r--pkgs/data/themes/adementary/default.nix4
-rw-r--r--pkgs/data/themes/adwaita-qt/default.nix25
-rw-r--r--pkgs/data/themes/albatross/default.nix6
-rw-r--r--pkgs/data/themes/amber/default.nix10
-rw-r--r--pkgs/data/themes/ant-theme/ant-bloody.nix4
-rw-r--r--pkgs/data/themes/ant-theme/ant-dracula.nix34
-rw-r--r--pkgs/data/themes/ant-theme/ant-nebula.nix4
-rw-r--r--pkgs/data/themes/ant-theme/ant.nix4
-rw-r--r--pkgs/data/themes/arc-kde/default.nix8
-rw-r--r--pkgs/data/themes/arc/default.nix49
-rw-r--r--pkgs/data/themes/blackbird/default.nix8
-rw-r--r--pkgs/data/themes/canta/default.nix14
-rw-r--r--pkgs/data/themes/cdetheme/default.nix6
-rw-r--r--pkgs/data/themes/clearlooks-phenix/default.nix4
-rw-r--r--pkgs/data/themes/dracula-theme/default.nix36
-rw-r--r--pkgs/data/themes/e17gtk/default.nix8
-rw-r--r--pkgs/data/themes/equilux-theme/default.nix8
-rw-r--r--pkgs/data/themes/flat-remix-gnome/default.nix38
-rw-r--r--pkgs/data/themes/flat-remix-gtk/default.nix33
-rw-r--r--pkgs/data/themes/gnome-breeze/default.nix8
-rw-r--r--pkgs/data/themes/greybird/default.nix10
-rw-r--r--pkgs/data/themes/gruvbox-dark-gtk/default.nix27
-rw-r--r--pkgs/data/themes/jade1/default.nix20
-rw-r--r--pkgs/data/themes/juno/default.nix45
-rw-r--r--pkgs/data/themes/kde2/default.nix8
-rw-r--r--pkgs/data/themes/layan-gtk-theme/default.nix38
-rw-r--r--pkgs/data/themes/lounge/default.nix10
-rw-r--r--pkgs/data/themes/marwaita-manjaro/default.nix46
-rw-r--r--pkgs/data/themes/marwaita-peppermint/default.nix46
-rw-r--r--pkgs/data/themes/marwaita-pop_os/default.nix46
-rw-r--r--pkgs/data/themes/marwaita-ubuntu/default.nix46
-rw-r--r--pkgs/data/themes/marwaita/default.nix12
-rw-r--r--pkgs/data/themes/matcha/default.nix14
-rw-r--r--pkgs/data/themes/materia-kde/default.nix23
-rw-r--r--pkgs/data/themes/materia-theme/default.nix46
-rw-r--r--pkgs/data/themes/mojave/default.nix71
-rw-r--r--pkgs/data/themes/nordic-polar/default.nix35
-rw-r--r--pkgs/data/themes/nordic/default.nix100
-rw-r--r--pkgs/data/themes/numix-solarized/default.nix21
-rw-r--r--pkgs/data/themes/numix-sx/default.nix8
-rw-r--r--pkgs/data/themes/numix/default.nix8
-rw-r--r--pkgs/data/themes/obsidian2/default.nix20
-rw-r--r--pkgs/data/themes/onestepback/default.nix4
-rw-r--r--pkgs/data/themes/openzone/default.nix24
-rw-r--r--pkgs/data/themes/orchis-theme/default.nix45
-rw-r--r--pkgs/data/themes/orion/default.nix18
-rw-r--r--pkgs/data/themes/paper-gtk/default.nix4
-rw-r--r--pkgs/data/themes/plano/default.nix10
-rw-r--r--pkgs/data/themes/plata/default.nix16
-rw-r--r--pkgs/data/themes/pop-gtk/default.nix10
-rw-r--r--pkgs/data/themes/qogir/default.nix10
-rw-r--r--pkgs/data/themes/qtcurve/default.nix35
-rw-r--r--pkgs/data/themes/shades-of-gray/default.nix4
-rw-r--r--pkgs/data/themes/sierra/default.nix4
-rw-r--r--pkgs/data/themes/skeu/default.nix46
-rw-r--r--pkgs/data/themes/snowblind/default.nix4
-rw-r--r--pkgs/data/themes/solarc/default.nix6
-rw-r--r--pkgs/data/themes/stilo/default.nix10
-rw-r--r--pkgs/data/themes/sweet/default.nix32
-rw-r--r--pkgs/data/themes/ubuntu-themes/default.nix16
-rw-r--r--pkgs/data/themes/venta/default.nix47
-rw-r--r--pkgs/data/themes/vertex/default.nix8
-rw-r--r--pkgs/data/themes/vimix/default.nix14
-rw-r--r--pkgs/data/themes/whitesur/default.nix56
-rw-r--r--pkgs/data/themes/yaru-remix/default.nix28
-rw-r--r--pkgs/data/themes/yaru/default.nix31
-rw-r--r--pkgs/data/themes/zuki/default.nix10
321 files changed, 3914 insertions, 1564 deletions
diff --git a/pkgs/data/documentation/anarchism/default.nix b/pkgs/data/documentation/anarchism/default.nix
index 5b63e104d9d..b9cedffa194 100644
--- a/pkgs/data/documentation/anarchism/default.nix
+++ b/pkgs/data/documentation/anarchism/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitLab, xdg_utils }:
+{ lib, stdenv, fetchFromGitLab, xdg-utils }:
 
 stdenv.mkDerivation rec {
   pname = "anarchism";
@@ -8,27 +8,25 @@ stdenv.mkDerivation rec {
     domain = "salsa.debian.org";
     owner = "debian";
     repo = pname;
-    rev = "debian%2F${version}"; # %2F = urlquote("/")
+    rev = "debian/${version}";
     sha256 = "04ylk0y5b3jml2awmyz7m1hnymni8y1n83m0k6ychdh0px8frhm5";
   };
 
-  phases = [ "unpackPhase" "postPatch" "installPhase" ];
-
   postPatch = ''
     substituteInPlace debian/anarchism.desktop \
-      --replace "/usr/bin/xdg-open" "${xdg_utils}/bin/xdg-open"
+      --replace "/usr/bin/xdg-open" "${xdg-utils}/bin/xdg-open"
     substituteInPlace debian/anarchism.desktop \
       --replace "file:///usr" "file://$out"
   '';
 
   installPhase = ''
-    mkdir -p $out/share/doc/anarchism $out/share/applications $out/share/icons/hicolor/scalable/apps 
+    mkdir -p $out/share/doc/anarchism $out/share/applications $out/share/icons/hicolor/scalable/apps
     cp -r {html,markdown} $out/share/doc/anarchism
     cp debian/anarchism.svg $out/share/icons/hicolor/scalable/apps
     cp debian/anarchism.desktop $out/share/applications
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://www.anarchistfaq.org/";
     changelog = "http://anarchism.pageabode.com/afaq/new.html";
     description = "Exhaustive exploration of Anarchist theory and practice";
diff --git a/pkgs/data/documentation/gnome-user-docs/default.nix b/pkgs/data/documentation/gnome-user-docs/default.nix
index 294f210c21f..ded70a91c95 100644
--- a/pkgs/data/documentation/gnome-user-docs/default.nix
+++ b/pkgs/data/documentation/gnome-user-docs/default.nix
@@ -1,7 +1,7 @@
-{ stdenv
+{ lib, stdenv
 , fetchurl
 , gettext
-, gnome3
+, gnome
 , itstool
 , libxml2
 , yelp-tools
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-user-docs";
-  version = "3.36.2";
+  version = "40.3";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-user-docs/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0n4rbrq5zww6gjjmicyw5hlvzi8azc6m4sisak15snkp6v4f93qr";
+    url = "mirror://gnome/sources/gnome-user-docs/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "PeBXr6KsDebKcH9KdsKTLcvFVsHQ0cwCBWXcGHYpLM0=";
   };
 
   nativeBuildInputs = [
@@ -26,16 +26,16 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "User and system administration help for the GNOME desktop";
     homepage = "https://help.gnome.org/users/gnome-help/";
     license = licenses.cc-by-30;
     maintainers = teams.gnome.members;
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/data/documentation/man-pages-posix/default.nix b/pkgs/data/documentation/man-pages-posix/default.nix
index 8a76bcb2c44..1d9ddda377b 100644
--- a/pkgs/data/documentation/man-pages-posix/default.nix
+++ b/pkgs/data/documentation/man-pages-posix/default.nix
@@ -1,21 +1,27 @@
-{stdenv, fetchurl}:
+{lib, stdenv, fetchurl}:
+
+let
+  year = "2017";
+  minor = "a";
+in
 
 stdenv.mkDerivation rec {
-  name = "man-pages-posix-2013-a";
+  pname = "man-pages-posix";
+  version = "${year}${minor}";
 
   src = fetchurl {
-    url = "mirror://kernel/linux/docs/man-pages/man-pages-posix/${name}.tar.xz";
-    sha256 = "0258j05zdrxpgdj8nndbyi7bvrs8fxdksb0xbfrylzgzfmf3lqqr";
+    url = "mirror://kernel/linux/docs/man-pages/man-pages-posix/${pname}-${year}-${minor}.tar.xz";
+    sha256 = "ce67bb25b5048b20dad772e405a83f4bc70faf051afa289361c81f9660318bc3";
   };
 
-  preBuild =
-    ''
-      makeFlagsArray=(MANDIR=$out/share/man)
-    '';
+  makeFlags = [
+    "MANDIR=${placeholder "out"}/share/man"
+  ];
 
   meta = {
     description = "POSIX man-pages (0p, 1p, 3p)";
     homepage = "https://www.kernel.org/doc/man-pages/";
-    platforms = stdenv.lib.platforms.unix;
+    platforms = lib.platforms.unix;
+    maintainers = [ lib.maintainers.sternenseemann ];
   };
 }
diff --git a/pkgs/data/documentation/man-pages/default.nix b/pkgs/data/documentation/man-pages/default.nix
index 58aaf8c47ca..79a48acd9f2 100644
--- a/pkgs/data/documentation/man-pages/default.nix
+++ b/pkgs/data/documentation/man-pages/default.nix
@@ -1,26 +1,30 @@
-{ stdenv, fetchurl }:
+{ lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
   pname = "man-pages";
-  version = "5.08";
+  version = "5.12";
 
   src = fetchurl {
     url = "mirror://kernel/linux/docs/man-pages/${pname}-${version}.tar.xz";
-    sha256 = "1xzp3f6wvw3wplk1a1x09zfv0jp0pdc9wh95czndh3h8z0qwv9yf";
+    sha256 = "07ip4f70nyxn24wy0fin6klq1hm1cjjvzr9zh5baqzssl1hckxbs";
   };
 
-  makeFlags = [ "MANDIR=$(out)/share/man" ];
+  makeFlags = [ "prefix=$(out)" ];
   postInstall = ''
     # conflict with shadow-utils
     rm $out/share/man/man5/passwd.5 \
        $out/share/man/man3/getspnam.3
+
+    # The manpath executable looks up manpages from PATH. And this package won't
+    # appear in PATH unless it has a /bin folder
+    mkdir -p $out/bin
   '';
   outputDocdev = "out";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Linux development manual pages";
     homepage = "https://www.kernel.org/doc/man-pages/";
-    repositories.git = "http://git.kernel.org/pub/scm/docs/man-pages/man-pages";
+    repositories.git = "https://git.kernel.org/pub/scm/docs/man-pages/man-pages";
     license = licenses.gpl2Plus;
     platforms = with platforms; unix;
     priority = 30; # if a package comes with its own man page, prefer it
diff --git a/pkgs/data/documentation/rnrs/common.nix b/pkgs/data/documentation/rnrs/common.nix
index 3443846c83c..7ba5fe07450 100644
--- a/pkgs/data/documentation/rnrs/common.nix
+++ b/pkgs/data/documentation/rnrs/common.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ texinfo ];
 
-  # Tell the builder about the name of the report.  
+  # Tell the builder about the name of the report.
   reportName = name;
 
   builder = ./builder.sh;
diff --git a/pkgs/data/documentation/scheme-manpages/default.nix b/pkgs/data/documentation/scheme-manpages/default.nix
index 345fb99b7bb..900f28edc8d 100644
--- a/pkgs/data/documentation/scheme-manpages/default.nix
+++ b/pkgs/data/documentation/scheme-manpages/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "scheme-manpages-unstable";
-  version = "2020-08-14";
+  version = "2021-03-11";
 
   src = fetchFromGitHub {
     owner = "schemedoc";
     repo = "manpages";
-    rev = "2e99a0aea9c0327e3c2dcfb9b7a2f8f528b4fe43";
-    sha256 = "0ykj4i8mx50mgyz9q63glfnc0mw1lf89hwsflpnbizjda5b4s0fp";
+    rev = "d0163a4e29d29b2f0beb762be4095775134f5ef9";
+    sha256 = "0a8f7rq458c7985chwn1qb9yxcwyr0hl39r9vlvm5j687hy3igs2";
   };
 
   dontBuild = true;
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     cp -r man3/ man7/ $out/share/man/
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Unix manual pages for R6RS and R7RS";
     homepage = "https://github.com/schemedoc/manpages";
     license = licenses.mit;
diff --git a/pkgs/data/documentation/stdman/default.nix b/pkgs/data/documentation/stdman/default.nix
index de50f612861..9308c538d35 100644
--- a/pkgs/data/documentation/stdman/default.nix
+++ b/pkgs/data/documentation/stdman/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, curl, fetchFromGitHub }:
+{ lib, stdenv, curl, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "stdman";
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ curl ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Formatted C++17 stdlib man pages (cppreference)";
     longDescription = "stdman is a tool that parses archived HTML
       files from cppreference and generates groff-formatted manual
diff --git a/pkgs/data/documentation/zeal/default.nix b/pkgs/data/documentation/zeal/default.nix
index 4551dc21179..8c806b87d4b 100644
--- a/pkgs/data/documentation/zeal/default.nix
+++ b/pkgs/data/documentation/zeal/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, extra-cmake-modules, pkgconfig
+{ lib, fetchFromGitHub, cmake, extra-cmake-modules, pkg-config
 , qtbase, qtimageformats, qtwebengine, qtx11extras, mkDerivation
 , libarchive, libXdmcp, libpthreadstubs, xcbutilkeysyms  }:
 
@@ -22,7 +22,7 @@ mkDerivation rec {
       -e 's@^project.*@project(Zeal VERSION ${version})@'
   '';
 
-  nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig ];
+  nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ];
 
   buildInputs = [
     qtbase qtimageformats qtwebengine qtx11extras
@@ -30,7 +30,7 @@ mkDerivation rec {
     libXdmcp libpthreadstubs xcbutilkeysyms
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A simple offline API documentation browser";
     longDescription = ''
       Zeal is a simple offline API documentation browser inspired by Dash (macOS
diff --git a/pkgs/data/fonts/3270font/default.nix b/pkgs/data/fonts/3270font/default.nix
index 3338b778415..d737c9383f1 100644
--- a/pkgs/data/fonts/3270font/default.nix
+++ b/pkgs/data/fonts/3270font/default.nix
@@ -1,24 +1,25 @@
 { lib, fetchzip }:
 let
-  version = "2.0.4";
+  version = "2.3.0";
 in
-fetchzip rec {
+fetchzip {
   name = "3270font-${version}";
 
-  url = "https://github.com/rbanffy/3270font/releases/download/v${version}/3270_fonts_ece94f6.zip";
+  url = "https://github.com/rbanffy/3270font/releases/download/v${version}/3270_fonts_fd00815.zip";
 
-  sha256 = "04q7dnrlq5hm30iibh3jafb33m5lwsgb3g9n9i188sg02ydkrsl9";
+  sha256 = "0ny2jcsfa1kfzkm979dfzqv756ijm5xirm02ln7a4kwhxxsm5xr1";
 
   postFetch = ''
     mkdir -p $out/share/fonts/
     unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
     unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
-    unzip -j $downloadedFile \*.woff -d $out/share/fonts/woff
+    unzip -j $downloadedFile \*.afm -d $out/share/fonts/type1
   '';
 
   meta = with lib; {
     description = "Monospaced font based on IBM 3270 terminals";
     homepage = "https://github.com/rbanffy/3270font";
+    changelog = "https://github.com/rbanffy/3270font/blob/v${version}/CHANGELOG.md";
     license = [ licenses.bsd3 licenses.ofl ];
     maintainers = [ maintainers.marsam ];
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/agave/default.nix b/pkgs/data/fonts/agave/default.nix
index 0c2cd1609f6..39ef6e34aaa 100644
--- a/pkgs/data/fonts/agave/default.nix
+++ b/pkgs/data/fonts/agave/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "agave";
-  version = "22";
+  version = "35";
 in fetchurl {
   name = "${pname}-${version}";
   url = "https://github.com/agarick/agave/releases/download/v${version}/Agave-Regular.ttf";
@@ -13,7 +13,7 @@ in fetchurl {
     install -D $downloadedFile $out/share/fonts/truetype/Agave-Regular.ttf
   '';
 
-  sha256 = "1jb8f0xcv5z0l5nyx733b6zclswi82vrh2nwyyhbqzgqrl4y1h6s";
+  sha256 = "10shwsl1illdafnc352j439lklrxksip1vlh4jc934cr9qf4c1fz";
 
   meta = with lib; {
     description = "truetype monospaced typeface designed for X environments";
diff --git a/pkgs/data/fonts/alegreya-sans/default.nix b/pkgs/data/fonts/alegreya-sans/default.nix
index 47984334165..cc0cd6cac9b 100644
--- a/pkgs/data/fonts/alegreya-sans/default.nix
+++ b/pkgs/data/fonts/alegreya-sans/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "alegreya-sans";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     install -D -m 444 fonts/webfonts/*.woff2 -t $out/share/fonts/woff2
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Humanist sans serif family with a calligraphic feeling";
     longDescription = ''
 Alegreya Sans is a humanist sans serif family with a calligraphic feeling that conveys a dynamic and varied rhythm. This gives a pleasant feeling to readers of long texts.
diff --git a/pkgs/data/fonts/alegreya/default.nix b/pkgs/data/fonts/alegreya/default.nix
index 99a7131dc11..b2ec1de0cc8 100644
--- a/pkgs/data/fonts/alegreya/default.nix
+++ b/pkgs/data/fonts/alegreya/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "alegreya";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     install -D -m 444 fonts/webfonts/*.woff2 -t $out/share/fonts/woff2
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An elegant and versatile font family for comfortable reading";
     longDescription = ''
 Alegreya is a typeface originally intended for literature. Among its crowning characteristics, it conveys a dynamic and varied rhythm which facilitates the reading of long texts. Also, it provides freshness to the page while referring to the calligraphic letter, not as a literal interpretation, but rather in a contemporary typographic language.
diff --git a/pkgs/data/fonts/andagii/default.nix b/pkgs/data/fonts/andagii/default.nix
index 700680a54b2..6d0b5f483ec 100644
--- a/pkgs/data/fonts/andagii/default.nix
+++ b/pkgs/data/fonts/andagii/default.nix
@@ -20,7 +20,7 @@ in fetchzip {
   meta = with lib; {
     homepage = "http://www.i18nguy.com/unicode/unicode-font.html";
     description = "Unicode Plane 1 Osmanya script font";
-    maintainers = with maintainers; [ raskin rycee ];
+    maintainers = with maintainers; [ raskin ];
     license = "unknown";
     platforms = platforms.all;
   };
diff --git a/pkgs/data/fonts/andika/default.nix b/pkgs/data/fonts/andika/default.nix
index 5fa2f1b2710..aaa380098a2 100644
--- a/pkgs/data/fonts/andika/default.nix
+++ b/pkgs/data/fonts/andika/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "5.000";
+  version = "6.001";
 in
   fetchzip rec {
     name = "andika-${version}";
@@ -14,7 +14,7 @@ in
       unzip -j $downloadedFile \*OFL.txt \*OFL-FAQ.txt \*README.txt \*FONTLOG.txt -d "$out/share/doc/${name}"
     '';
 
-    sha256 = "1jy9vpcprpd1k48p20wh6jhyn909ibia8lr5i747p41l0s8a7lqy";
+    sha256 = "sha256-ukPFBLjHQbOosQ1h0ImVlz8HhNNMp0e41SjzUhQaZtc=";
 
     meta = with lib; {
       homepage = "https://software.sil.org/andika";
diff --git a/pkgs/data/fonts/anonymous-pro/default.nix b/pkgs/data/fonts/anonymous-pro/default.nix
index 0f8289fe18a..cb6ec6d8944 100644
--- a/pkgs/data/fonts/anonymous-pro/default.nix
+++ b/pkgs/data/fonts/anonymous-pro/default.nix
@@ -23,7 +23,7 @@ in fetchzip rec {
       most Western and Central European Latin-based languages, plus
       Greek and Cyrillic. It is designed by Mark Simonson.
     '';
-    maintainers = with maintainers; [ raskin rycee ];
+    maintainers = with maintainers; [ raskin ];
     license = licenses.ofl;
     platforms = platforms.all;
   };
diff --git a/pkgs/data/fonts/caladea/cambria-alias.conf b/pkgs/data/fonts/caladea/cambria-alias.conf
index f763e2a8c34..78452961e8e 100644
--- a/pkgs/data/fonts/caladea/cambria-alias.conf
+++ b/pkgs/data/fonts/caladea/cambria-alias.conf
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
 <fontconfig>
   <!-- Configure Caladea as a metric-compatible alias for the
        Microsoft Cambria font family. -->
diff --git a/pkgs/data/fonts/cantarell-fonts/default.nix b/pkgs/data/fonts/cantarell-fonts/default.nix
index 4c3459d0f11..011e88dc1d2 100644
--- a/pkgs/data/fonts/cantarell-fonts/default.nix
+++ b/pkgs/data/fonts/cantarell-fonts/default.nix
@@ -1,14 +1,12 @@
-{ stdenv, fetchurl, meson, ninja, gettext, appstream-glib, gnome3 }:
+{ lib, stdenv, fetchurl, meson, ninja, gettext, appstream-glib, gnome }:
 
-let
+stdenv.mkDerivation rec {
   pname = "cantarell-fonts";
-  version = "0.111";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
+  version = "0.301";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "05hpnhihwm9sxlq1qn993g03pwkmpjbn0dvnba71r1gfjv0jp2w5";
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "3d35db0ac03f9e6b0d5a53577591b714238985f4cfc31a0aa17f26cd74675e83";
   };
 
   nativeBuildInputs = [ meson ninja gettext appstream-glib ];
@@ -21,18 +19,18 @@ in stdenv.mkDerivation rec {
 
   outputHashAlgo = "sha256";
   outputHashMode = "recursive";
-  outputHash = "12ps2gjv1lmzbmkv16vgjmaahl3ayadpniyrx0z31sqn443r57hq";
+  outputHash = "1sczskw2kv3qy39i9mzw2lkl94a90bjgv5ln9acy5kh4gb2zmy7z";
 
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
 
   meta = {
     description = "Default typeface used in the user interface of GNOME since version 3.0";
-    platforms = stdenv.lib.platforms.all;
-    license = stdenv.lib.licenses.ofl;
-    maintainers = with stdenv.lib.maintainers; [ ];
+    platforms = lib.platforms.all;
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ ];
   };
 }
diff --git a/pkgs/data/fonts/carlito/calibri-alias.conf b/pkgs/data/fonts/carlito/calibri-alias.conf
index 294af3b6c78..bbffff23721 100644
--- a/pkgs/data/fonts/carlito/calibri-alias.conf
+++ b/pkgs/data/fonts/carlito/calibri-alias.conf
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
 <fontconfig>
   <!-- Configure Carlito as a metric-compatible alias for the
        Microsoft Calibri font family. -->
diff --git a/pkgs/data/fonts/cascadia-code/default.nix b/pkgs/data/fonts/cascadia-code/default.nix
index 220d2684eef..c223f9366af 100644
--- a/pkgs/data/fonts/cascadia-code/default.nix
+++ b/pkgs/data/fonts/cascadia-code/default.nix
@@ -1,13 +1,13 @@
 { lib, fetchzip }:
 let
-  version = "2007.01";
+  version = "2106.17";
 in
 fetchzip {
   name = "cascadia-code-${version}";
 
   url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaCode-${version}.zip";
 
-  sha256 = "173dpr0k4y5b02ps9426pyaazl2pxj1kw5l5jrikbi6zjv4590gb";
+  sha256 = "sha256-EsXD6gY3q3KIk37vYPz731lLz5989cd+s5fz5rKIn2k=";
 
   postFetch = ''
     mkdir -p $out/share/fonts/
diff --git a/pkgs/data/fonts/charis-sil/default.nix b/pkgs/data/fonts/charis-sil/default.nix
index 44b40c72b58..75f1d89be77 100644
--- a/pkgs/data/fonts/charis-sil/default.nix
+++ b/pkgs/data/fonts/charis-sil/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "5.000";
+  version = "6.001";
 in
   fetchzip rec {
     name = "charis-sil-${version}";
@@ -14,7 +14,7 @@ in
       unzip -j $downloadedFile \*OFL.txt \*OFL-FAQ.txt \*README.txt \*FONTLOG.txt -d "$out/share/doc/${name}"
     '';
 
-    sha256 = "1a220s8n0flvcdkazqf5g10v6r55s2an308slvvarynpj6l7x27n";
+    sha256 = "sha256-eKSOvYuTMpAnTk4sRiWFUDJrTsF+K5716ALCepaUU08=";
 
     meta = with lib; {
       homepage = "https://software.sil.org/charis";
diff --git a/pkgs/data/fonts/cherry/default.nix b/pkgs/data/fonts/cherry/default.nix
index a69aa3684ab..53d9149091e 100644
--- a/pkgs/data/fonts/cherry/default.nix
+++ b/pkgs/data/fonts/cherry/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fonttosfnt, mkfontdir }:
+{ lib, stdenv, fetchFromGitHub, fonttosfnt, mkfontdir }:
 
 stdenv.mkDerivation rec {
   pname = "cherry";
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     mkfontdir $out/share/fonts/misc
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "cherry font";
     homepage = "https://github.com/turquoise-hexagon/cherry";
     license = licenses.mit;
diff --git a/pkgs/data/fonts/clearlyU/default.nix b/pkgs/data/fonts/clearlyU/default.nix
index 84cf3ebc538..5c97d3b7134 100644
--- a/pkgs/data/fonts/clearlyU/default.nix
+++ b/pkgs/data/fonts/clearlyU/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fonttosfnt, mkfontscale, libfaketime }:
+{ lib, stdenv, fetchurl, fonttosfnt, mkfontscale, libfaketime }:
 
 stdenv.mkDerivation rec {
   pname = "clearlyU";
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     mkfontdir "$fontDir"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Unicode font";
     license = licenses.mit;
     maintainers = [ maintainers.raskin ];
diff --git a/pkgs/data/fonts/comic-neue/default.nix b/pkgs/data/fonts/comic-neue/default.nix
index 709d93dc2c9..7485d435cb2 100644
--- a/pkgs/data/fonts/comic-neue/default.nix
+++ b/pkgs/data/fonts/comic-neue/default.nix
@@ -1,32 +1,35 @@
-{ lib, fetchzip }:
+{ lib, stdenv, fetchzip }:
 
-let
-  version = "2.3";
-in fetchzip rec {
-  name = "comic-neue-${version}";
+stdenv.mkDerivation rec {
+  pname = "comic-neue";
+  version = "2.51";
 
-  url = "http://comicneue.com/${name}.zip";
+  src = fetchzip {
+    url = "http://comicneue.com/${pname}-${version}.zip";
+    sha256 = "sha256-DjRZtFnJOtZnxhfpgU5ihZFAonRK608/BQztCAExIU0=";
+    stripRoot = false; # because it comes with a __MACOSX directory
+  };
 
-  postFetch = ''
-    mkdir -vp $out/share/{doc,fonts}
-    unzip -j $downloadedFile OTF/\*.otf   -d $out/share/fonts/opentype
-    unzip -j $downloadedFile Web/\*.ttf   -d $out/share/fonts/truetype
-    unzip -j $downloadedFile Web/\*.eot   -d $out/share/fonts/EOT
-    unzip -j $downloadedFile Web/\*.woff  -d $out/share/fonts/WOFF
-    unzip -j $downloadedFile Web/\*.woff2 -d $out/share/fonts/WOFF2
-    unzip -j $downloadedFile \*.pdf FONTLOG.txt OFL-FAQ.txt SIL-License.txt -d $out/share/doc/${name}
+  installPhase = ''
+    mkdir -pv $out/share/{doc/${pname}-${version},fonts/{opentype,truetype,WOFF,WOFF2}}
+    cp -v ${pname}-${version}/{FONTLOG,OFL-FAQ,OFL}.txt $out/share/doc/
+    cp -v ${pname}-${version}/Booklet-ComicNeue.pdf $out/share/doc/
+    cp -v ${pname}-${version}/OTF/ComicNeue-Angular/*.otf $out/share/fonts/opentype
+    cp -v ${pname}-${version}/OTF/ComicNeue/*.otf $out/share/fonts/opentype
+    cp -v ${pname}-${version}/TTF/ComicNeue-Angular/*.ttf $out/share/fonts/truetype
+    cp -v ${pname}-${version}/TTF/ComicNeue/*.ttf $out/share/fonts/truetype
+    cp -v ${pname}-${version}/WebFonts/*.woff $out/share/fonts/WOFF
+    cp -v ${pname}-${version}/WebFonts/*.woff2 $out/share/fonts/WOFF2
   '';
 
-  sha256 = "1gs4vhys0m3qsw06qaxzyi81f06w5v66kbyl64yw3pq2rb656779";
-
   meta = with lib; {
     homepage = "http://comicneue.com/";
     description = "A casual type face: Make your lemonade stand look like a fortune 500 company";
     longDescription = ''
-      It is inspired by Comic Sans but more regular.  The font was
-      designed by Craig Rozynski.  It is available in two variants:
-      Comic Neue and Comic Neue Angular.  The former having round and
-      the latter angular terminals.  Both variants come in Light,
+      ComicNeue is inspired by Comic Sans but more regular. It was
+      designed by Craig Rozynski. It is available in two variants:
+      Comic Neue and Comic Neue Angular. The former having round and
+      the latter angular terminals. Both variants come in Light,
       Regular, and Bold weights with Oblique variants.
     '';
     license = licenses.ofl;
diff --git a/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf b/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf
index be5f6cca866..e1362ec4f5f 100644
--- a/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf
+++ b/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
 <fontconfig>
   <!-- Configure Comic Relief as a metric-compatible alias for the
        Microsoft Comic Sans font family. -->
diff --git a/pkgs/data/fonts/corefonts/default.nix b/pkgs/data/fonts/corefonts/default.nix
index e4107cd4b99..c37d3251a9d 100644
--- a/pkgs/data/fonts/corefonts/default.nix
+++ b/pkgs/data/fonts/corefonts/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cabextract }:
+{ lib, stdenv, fetchurl, cabextract }:
 
 let
 
@@ -59,9 +59,9 @@ stdenv.mkDerivation {
 
   outputHashAlgo = "sha256";
   outputHashMode = "recursive";
-  outputHash = "0baadsrgpqj15fgjmcn0aim0k0nk7mvivcxinw1zwg61kkcwhalx";
+  outputHash = "089d2m9bvaacj36qdq77pcazji0sbbr796shic3k52cpxkjnzbwh";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://corefonts.sourceforge.net/";
     description = "Microsoft's TrueType core fonts for the Web";
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/corefonts/no-op.conf b/pkgs/data/fonts/corefonts/no-op.conf
index 503e62cfa29..3f8a9b9b544 100644
--- a/pkgs/data/fonts/corefonts/no-op.conf
+++ b/pkgs/data/fonts/corefonts/no-op.conf
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
 <fontconfig>
   <!-- This configuation is intentionally left empty in order to
        override any other font package that may wish to set up an
diff --git a/pkgs/data/fonts/courier-prime/default.nix b/pkgs/data/fonts/courier-prime/default.nix
new file mode 100644
index 00000000000..81788b322cf
--- /dev/null
+++ b/pkgs/data/fonts/courier-prime/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchzip }:
+
+let
+  version = "unstable-2019-12-05";
+  repo = "CourierPrime";
+  rev = "7f6d46a766acd9391d899090de467c53fd9c9cb0";
+in fetchzip rec {
+  name = "courier-prime-${version}";
+  url = "https://github.com/quoteunquoteapps/${repo}/archive/${rev}/${name}.zip";
+  sha256 = "1xh4pkksm6zrafhb69q4lq093q6pl245zi9qhqw3x6c1ab718704";
+
+  postFetch = ''
+    unzip $downloadedFile
+    install -m444 -Dt $out/share/fonts/truetype ${repo}-${rev}/fonts/ttf/*.ttf
+  '';
+
+  meta = with lib; {
+    description = "Monospaced font designed specifically for screenplays";
+    homepage = "https://github.com/quoteunquoteapps/CourierPrime";
+    license = licenses.ofl;
+    maintainers = [ maintainers.austinbutler ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/data/fonts/cozette/default.nix b/pkgs/data/fonts/cozette/default.nix
index a5bc752c4ca..3550facfc11 100644
--- a/pkgs/data/fonts/cozette/default.nix
+++ b/pkgs/data/fonts/cozette/default.nix
@@ -19,7 +19,7 @@ fetchzip rec {
   '';
 
   meta = with lib; {
-    description = "A bitmap programming font optimized for coziness.";
+    description = "A bitmap programming font optimized for coziness";
     homepage = "https://github.com/slavfox/cozette";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/creep/default.nix b/pkgs/data/fonts/creep/default.nix
index 7c7ad4d5aa9..d4748544af5 100644
--- a/pkgs/data/fonts/creep/default.nix
+++ b/pkgs/data/fonts/creep/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, libfaketime
+{ lib, stdenv, fetchFromGitHub, libfaketime
 , fonttosfnt, mkfontscale
 }:
 
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     mkfontdir "$out/share/fonts/misc"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A pretty sweet 4px wide pixel font";
     homepage = "https://github.com/romeovs/creep";
     license = licenses.mit;
diff --git a/pkgs/data/fonts/curie/default.nix b/pkgs/data/fonts/curie/default.nix
new file mode 100644
index 00000000000..fd21d1964a2
--- /dev/null
+++ b/pkgs/data/fonts/curie/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchurl }:
+
+let
+  version = "1.0";
+in fetchurl rec {
+  name = "curie-${version}";
+
+  url = "https://github.com/NerdyPepper/curie/releases/download/v${version}/curie-v${version}.tar.gz";
+
+  downloadToTemp = true;
+
+  recursiveHash = true;
+
+  sha256 = "sha256-twPAzsbTveYW0rQd7FYZz5AMZgvPbNmn5c7Nfzn7B0A=";
+
+  postFetch = ''
+    tar xzf $downloadedFile
+    mkdir -p $out/share/fonts/misc
+    install *.otb $out/share/fonts/misc
+  '';
+
+  meta = with lib; {
+    description = "An upscaled version of scientifica";
+    homepage = "https://github.com/NerdyPepper/curie";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
diff --git a/pkgs/data/fonts/dejavu-fonts/default.nix b/pkgs/data/fonts/dejavu-fonts/default.nix
index 839cb80a6b9..aed90b103b4 100644
--- a/pkgs/data/fonts/dejavu-fonts/default.nix
+++ b/pkgs/data/fonts/dejavu-fonts/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, stdenv, fontforge, perl, perlPackages }:
+{ fetchFromGitHub, lib, stdenv, fontforge, perl, perlPackages }:
 
 let
   version = "2.37";
@@ -18,9 +18,9 @@ let
     # Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
     # DejaVu changes are in public domain
     # See http://dejavu-fonts.org/wiki/License for details
-    license = stdenv.lib.licenses.free;
+    license = lib.licenses.free;
 
-    platforms = stdenv.lib.platforms.all;
+    platforms = lib.platforms.all;
   };
 
   full-ttf = stdenv.mkDerivation {
@@ -31,7 +31,7 @@ let
     src = fetchFromGitHub {
       owner = "dejavu-fonts";
       repo = "dejavu-fonts";
-      rev = "version_${stdenv.lib.replaceStrings ["."] ["_"] version}";
+      rev = "version_${lib.replaceStrings ["."] ["_"] version}";
       sha256 = "1xknlg2h287dx34v2n5r33bpcl4biqf0cv7nak657rjki7s0k4bk";
     };
 
diff --git a/pkgs/data/fonts/dina/default.nix b/pkgs/data/fonts/dina/default.nix
index 1a8ac344a53..3b5d75acb50 100644
--- a/pkgs/data/fonts/dina/default.nix
+++ b/pkgs/data/fonts/dina/default.nix
@@ -1,55 +1,61 @@
-{ stdenv, fetchurl, unzip
-, bdftopcf, mkfontscale, fontforge
+{ lib, stdenv, fetchurl, unzip
+, bdftopcf, mkfontscale, fonttosfnt
 }:
 
 stdenv.mkDerivation {
   pname = "dina-font";
   version = "2.92";
 
+  outputs = [ "out" "bdf" ];
+
   src = fetchurl {
     url = "http://www.donationcoder.com/Software/Jibz/Dina/downloads/Dina.zip";
     sha256 = "1kq86lbxxgik82aywwhawmj80vsbz3hfhdyhicnlv9km7yjvnl8z";
   };
 
   nativeBuildInputs =
-    [ unzip bdftopcf mkfontscale fontforge ];
+    [ unzip bdftopcf mkfontscale fonttosfnt ];
 
-  patchPhase = "sed -i 's/microsoft-cp1252/ISO8859-1/' *.bdf";
+  postPatch = ''
+    sed -i 's/microsoft-cp1252/ISO8859-1/' *.bdf
+  '';
 
   buildPhase = ''
+    runHook preBuild
+
     newName() {
-      test "''${1:5:1}" = i && _it=Italic || _it=
-      case ''${1:6:3} in
-        400) test -z $it && _weight=Medium ;;
-        700) _weight=Bold ;;
-      esac
-      _pt=''${1%.bdf}
-      _pt=''${_pt#*-}
-      echo "Dina$_weight$_it$_pt"
+        test "''${1:5:1}" = i && _it=Italic || _it=
+        case ''${1:6:3} in
+            400) test -z $it && _weight=Medium ;;
+            700) _weight=Bold ;;
+        esac
+        _pt=''${1%.bdf}
+        _pt=''${_pt#*-}
+        echo "Dina$_weight$_it$_pt"
     }
 
-    # convert bdf fonts to pcf
-    for i in *.bdf; do
-      bdftopcf -t -o $(newName "$i").pcf "$i"
+    for f in *.bdf; do
+        name=$(newName "$f")
+        bdftopcf -t -o "$name.pcf" "$f"
+        fonttosfnt -v -o "$name.otb" "$f"
     done
     gzip -n -9 *.pcf
 
-    # convert bdf fonts to otb
-    for i in *.bdf; do
-      fontforge -lang=ff -c "Open(\"$i\"); Generate(\"$(newName $i).otb\")"
-    done
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
+
     install -D -m 644 -t "$out/share/fonts/misc" *.pcf.gz *.otb
     install -D -m 644 -t "$bdf/share/fonts/misc" *.bdf
     mkfontdir "$out/share/fonts/misc"
     mkfontdir "$bdf/share/fonts/misc"
-  '';
 
-  outputs = [ "out" "bdf" ];
+    runHook postInstall
+  '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A monospace bitmap font aimed at programmers";
     longDescription = ''
       Dina is a monospace bitmap font, primarily aimed at programmers. It is
diff --git a/pkgs/data/fonts/doulos-sil/default.nix b/pkgs/data/fonts/doulos-sil/default.nix
index 3de4cfc0cae..a1e686a320e 100644
--- a/pkgs/data/fonts/doulos-sil/default.nix
+++ b/pkgs/data/fonts/doulos-sil/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "5.000";
+  version = "6.001";
 in
   fetchzip rec {
     name = "doulos-sil-${version}";
@@ -14,7 +14,7 @@ in
       unzip -j $downloadedFile \*OFL.txt \*OFL-FAQ.txt \*README.txt \*FONTLOG.txt -d "$out/share/doc/${name}"
     '';
 
-    sha256 = "04a9cr7jbw7d8llcj8xsqp9rp8w6gcgbd9sdwvi02kz7jhqa0vad";
+    sha256 = "sha256-MkeLLT7EAeSuCMxVVxVfajHufxr+xMLIz2hf3wF3U4o=";
 
     meta = with lib; {
       homepage = "https://software.sil.org/doulos";
diff --git a/pkgs/data/fonts/edwin/default.nix b/pkgs/data/fonts/edwin/default.nix
new file mode 100644
index 00000000000..4b1688dbc55
--- /dev/null
+++ b/pkgs/data/fonts/edwin/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchurl }:
+
+let
+  version = "0.52";
+in fetchurl {
+  name = "edwin-${version}";
+
+  url = "https://github.com/MuseScoreFonts/Edwin/archive/refs/tags/v${version}.tar.gz";
+
+  downloadToTemp = true;
+
+  recursiveHash = true;
+
+  sha256 = "sha256-e0ADK72ECl+QMvLWtFJfeHBmuEwzr9M+Kqvkd5Z2mmo=";
+
+  postFetch = ''
+    tar xzf $downloadedFile
+    mkdir -p $out/share/fonts/opentype
+    install Edwin-${version}/*.otf $out/share/fonts/opentype
+  '';
+
+  meta = with lib; {
+    description = "A text font for musical scores";
+    homepage = "https://github.com/MuseScoreFonts/Edwin";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
diff --git a/pkgs/data/fonts/efont-unicode/default.nix b/pkgs/data/fonts/efont-unicode/default.nix
new file mode 100644
index 00000000000..f4ea61cbc9e
--- /dev/null
+++ b/pkgs/data/fonts/efont-unicode/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenv, fetchzip, libfaketime, xorg }:
+
+stdenv.mkDerivation rec {
+  pname = "efont-unicode";
+  version = "0.4.2";
+
+  src = fetchzip {
+    url = "http://openlab.ring.gr.jp/efont/dist/unicode-bdf/${pname}-bdf-${version}.tar.bz2";
+    sha256 = "0bib3jgikq8s1m96imw4mlgbl5cbq1bs5sqig74s2l2cdfx3jaqc";
+  };
+
+  nativeBuildInputs = with xorg;
+    [ libfaketime bdftopcf fonttosfnt mkfontscale ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    # convert bdf fonts to pcf
+    for f in *.bdf; do
+        bdftopcf -t -o "''${f%.bdf}.pcf" "$f"
+    done
+    gzip -n -9 *.pcf
+
+    # convert bdf fonts to otb
+    for f in *.bdf; do
+        faketime -f "1970-01-01 00:00:01" \
+        fonttosfnt -v -m 2 -o "''${f%.bdf}.otb" "$f"
+    done
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    dir=share/fonts/misc
+    install -D -m 644 -t "$out/$dir" *.otb *.pcf.gz
+    install -D -m 644 -t "$bdf/$dir" *.bdf
+    mkfontdir "$out/$dir"
+    mkfontdir "$bdf/$dir"
+
+    runHook postInstall
+  '';
+
+  outputs = [ "out" "bdf" ];
+
+  meta = with lib; {
+    description = "The /efont/ Unicode bitmap font";
+    homepage = "http://openlab.ring.gr.jp/efont/unicode/";
+    license = licenses.bsd3;
+    platforms = platforms.all;
+    maintainers = [ maintainers.ncfavier ];
+  };
+}
diff --git a/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix b/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix
index e9c646d32d0..2f7a804ad08 100644
--- a/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix
+++ b/pkgs/data/fonts/emacs-all-the-icons-fonts/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "3.2.0";
+  version = "5.0.0";
 in fetchzip {
   name = "emacs-all-the-icons-fonts-${version}";
 
@@ -12,7 +12,7 @@ in fetchzip {
     unzip -j $downloadedFile \*.ttf -d $out/share/fonts/all-the-icons
   '';
 
-  sha256 = "0ps8q9nkx67ivgn8na4s012360v36jwr0951rsg7j6dyyw9g41jq";
+  sha256 = "0vc9bkm4pcc05llcd2c9zr3d88h3zmci0izla5wnw8hg1n0rsrii";
 
   meta = with lib; {
     description = "Icon fonts for emacs all-the-icons";
diff --git a/pkgs/data/fonts/emojione/default.nix b/pkgs/data/fonts/emojione/default.nix
index 71bd2216da2..629e46fe797 100644
--- a/pkgs/data/fonts/emojione/default.nix
+++ b/pkgs/data/fonts/emojione/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, inkscape_0, imagemagick, potrace, svgo, scfbuild }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, inkscape, imagemagick, potrace, svgo, scfbuild }:
 
 stdenv.mkDerivation rec {
   pname = "emojione";
@@ -11,13 +11,29 @@ stdenv.mkDerivation rec {
     sha256 = "1781kxfbhnvylypbkwxc3mx6hi0gcjisfjr9cf0jdz4d1zkf09b3";
   };
 
+  patches = [
+    # Fix build with Inkscape 1.0
+    # https://github.com/eosrei/twemoji-color-font/pull/82
+    (fetchpatch {
+      url = "https://github.com/eosrei/twemoji-color-font/commit/208ad63c2ceb38c528b5237abeb2b85ceedc1d37.patch";
+      sha256 = "7tDWIkpcdir1V6skgXSM3r0FwHy0F6PyJ07OPRsSStA=";
+      postFetch = ''
+        substituteInPlace $out \
+          --replace "inkscape --without-gui" "inkscape --export-png" \
+          --replace TWEMOJI EMOJIONE \
+          --replace "the assets" "the emojione assets" \
+          --replace twemoji emojione
+      '';
+    })
+  ];
+
   preBuild = ''
     sed -i 's,SCFBUILD :=.*,SCFBUILD := scfbuild,' Makefile
     # Shut up inkscape's warnings
     export HOME="$NIX_BUILD_ROOT"
   '';
 
-  nativeBuildInputs = [ inkscape_0 imagemagick potrace svgo scfbuild ];
+  nativeBuildInputs = [ inkscape imagemagick potrace svgo scfbuild ];
 
   enableParallelBuilding = true;
 
@@ -25,7 +41,7 @@ stdenv.mkDerivation rec {
     install -Dm755 build/EmojiOneColor-SVGinOT.ttf $out/share/fonts/truetype/EmojiOneColor-SVGinOT.ttf
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Open source emoji set";
     homepage = "http://emojione.com/";
     license = licenses.cc-by-40;
diff --git a/pkgs/data/fonts/envypn-font/default.nix b/pkgs/data/fonts/envypn-font/default.nix
index 0d69b812c4c..dbfb85f881f 100644
--- a/pkgs/data/fonts/envypn-font/default.nix
+++ b/pkgs/data/fonts/envypn-font/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libfaketime
+{ lib, stdenv, fetchurl, libfaketime
 , fonttosfnt, mkfontscale
 }:
 
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
     mkfontdir "$out/share/fonts/misc"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = ''
       Readable bitmap font inspired by Envy Code R
     '';
diff --git a/pkgs/data/fonts/et-book/default.nix b/pkgs/data/fonts/et-book/default.nix
index 58586ba7db6..c410826b2fb 100644
--- a/pkgs/data/fonts/et-book/default.nix
+++ b/pkgs/data/fonts/et-book/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ lib, fetchFromGitHub }:
 
 fetchFromGitHub rec {
   rev = "7e8f02dadcc23ba42b491b39e5bdf16e7b383031";
@@ -13,7 +13,7 @@ fetchFromGitHub rec {
     cp -t $out/share/fonts/truetype et-book-${rev}/source/4-ttf/*.ttf
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "The typeface used in Edward Tufte’s books.";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/eunomia/default.nix b/pkgs/data/fonts/eunomia/default.nix
index e68f528ff38..272649582c3 100644
--- a/pkgs/data/fonts/eunomia/default.nix
+++ b/pkgs/data/fonts/eunomia/default.nix
@@ -19,7 +19,7 @@ fetchzip {
 
   meta = with lib; {
     homepage = "http://dotcolon.net/font/eunomia/";
-    description = "A futuristic decorative font.";
+    description = "A futuristic decorative font";
     platforms = platforms.all;
     maintainers = with maintainers; [ leenaars ];
     license = licenses.ofl;
diff --git a/pkgs/data/fonts/f5_6/default.nix b/pkgs/data/fonts/f5_6/default.nix
index 175648198ce..112111faa3d 100644
--- a/pkgs/data/fonts/f5_6/default.nix
+++ b/pkgs/data/fonts/f5_6/default.nix
@@ -19,7 +19,7 @@ fetchzip {
 
   meta = with lib; {
     homepage = "http://dotcolon.net/font/${pname}/";
-    description = "A weighted decorative font.";
+    description = "A weighted decorative font";
     platforms = platforms.all;
     maintainers = with maintainers; [ leenaars ];
     license = licenses.ofl;
diff --git a/pkgs/data/fonts/ferrum/default.nix b/pkgs/data/fonts/ferrum/default.nix
index fe40252ab23..3f122d22daf 100644
--- a/pkgs/data/fonts/ferrum/default.nix
+++ b/pkgs/data/fonts/ferrum/default.nix
@@ -19,7 +19,7 @@ fetchzip {
 
   meta = with lib; {
     homepage = "http://dotcolon.net/font/${pname}/";
-    description = "A decorative font.";
+    description = "A decorative font";
     platforms = platforms.all;
     maintainers = with maintainers; [ leenaars ];
     license = licenses.cc0;
diff --git a/pkgs/data/fonts/fira-code/default.nix b/pkgs/data/fonts/fira-code/default.nix
index 4f0fb1e81c1..d5c5d0e000a 100644
--- a/pkgs/data/fonts/fira-code/default.nix
+++ b/pkgs/data/fonts/fira-code/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip }:
+{ lib, fetchzip }:
 
 let
   version = "5.2";
@@ -7,14 +7,15 @@ in fetchzip {
 
   url = "https://github.com/tonsky/FiraCode/releases/download/${version}/Fira_Code_v${version}.zip";
 
+  # only extract the variable font because everything else is a duplicate
   postFetch = ''
     mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile '*-VF.ttf' -d $out/share/fonts/truetype
   '';
 
-  sha256 = "16v62wj872ba4w7qxn4l6zjgqh7lrpwh1xax1bp1x9dpz08mnq06";
+  sha256 = "1wbfjgvr9m5azl5w49y0hpqzgcraw6spd1wnxgxlzfx57x6gcw0k";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/tonsky/FiraCode";
     description = "Monospace font with programming ligatures";
     longDescription = ''
diff --git a/pkgs/data/fonts/fira-code/symbols.nix b/pkgs/data/fonts/fira-code/symbols.nix
index 624616bdd58..e226c351a33 100644
--- a/pkgs/data/fonts/fira-code/symbols.nix
+++ b/pkgs/data/fonts/fira-code/symbols.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip }:
+{ lib, fetchzip }:
 
 fetchzip {
   name = "fira-code-symbols-20160811";
@@ -12,7 +12,7 @@ fetchzip {
 
   sha256 = "19krsp22rin74ix0i19v4bh1c965g18xkmz1n55h6n6qimisnbkm";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "FiraCode unicode ligature glyphs in private use area";
     longDescription = ''
       FiraCode uses ligatures, which some editors don’t support.
diff --git a/pkgs/data/fonts/fira-mono/default.nix b/pkgs/data/fonts/fira-mono/default.nix
index d29d6304cee..2aef2fc4b05 100644
--- a/pkgs/data/fonts/fira-mono/default.nix
+++ b/pkgs/data/fonts/fira-mono/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip }:
+{ lib, fetchzip }:
 
 fetchzip {
   name = "fira-mono-3.206";
@@ -12,7 +12,7 @@ fetchzip {
 
   sha256 = "1ci3fxhdwabvfj4nl16pwcgqnh7s2slp8vblribk8zkpx8cbp1dj";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://mozilla.github.io/Fira/";
     description = "Monospace font for Firefox OS";
     longDescription = ''
diff --git a/pkgs/data/fonts/fixedsys-excelsior/default.nix b/pkgs/data/fonts/fixedsys-excelsior/default.nix
index c8d2d1c2a9e..8bdbc2d4c4f 100644
--- a/pkgs/data/fonts/fixedsys-excelsior/default.nix
+++ b/pkgs/data/fonts/fixedsys-excelsior/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl } :
+{ lib, fetchurl } :
 
 let
   major = "3";
@@ -21,10 +21,10 @@ in fetchurl rec {
   sha256 = "32d6f07f1ff08c764357f8478892b2ba5ade23427af99759f34a0ba24bcd2e37";
 
   meta = {
-    description = "Pan-unicode version of Fixedsys, a classic DOS font.";
+    description = "Pan-unicode version of Fixedsys, a classic DOS font";
     homepage = "http://www.fixedsysexcelsior.com/";
-    platforms = stdenv.lib.platforms.all;
-    license = stdenv.lib.licenses.publicDomain;
-    maintainers = [ stdenv.lib.maintainers.ninjatrappeur ];
+    platforms = lib.platforms.all;
+    license = lib.licenses.publicDomain;
+    maintainers = [ lib.maintainers.ninjatrappeur ];
   };
 }
diff --git a/pkgs/data/fonts/font-awesome-5/default.nix b/pkgs/data/fonts/font-awesome-5/default.nix
index bcf02f1328e..7f251232ebc 100644
--- a/pkgs/data/fonts/font-awesome-5/default.nix
+++ b/pkgs/data/fonts/font-awesome-5/default.nix
@@ -39,7 +39,7 @@ in {
     sha256 = "1j8i32dq6rrlv3kf2hnq81iqks06kczaxjks7nw3zyq1231winm9";
   };
   v5 = font-awesome {
-    version = "5.10.2";
-    sha256 = "0bg28zn2lhrcyj7mbavphkvw3hrbnjsnn84305ax93nj3qd0d4hx";
+    version = "5.15.3";
+    sha256 = "sha256-EDxk/yO3nMmtM/ytrAEgPYSBbep3rA3NrKkiqf3OsU0=";
   };
 }
diff --git a/pkgs/data/fonts/fraunces/default.nix b/pkgs/data/fonts/fraunces/default.nix
new file mode 100644
index 00000000000..d5879d6c2bc
--- /dev/null
+++ b/pkgs/data/fonts/fraunces/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+let
+  version = "1.000";
+in
+fetchzip {
+  name = "fraunces-${version}";
+
+  url = "https://github.com/undercasetype/Fraunces/releases/download/${version}/UnderCaseType_Fraunces_${version}.zip";
+
+  sha256 = "0qgl140qkn9p87x7pk60fd3lj206y5h0fq2xkcj2qiv3sxbqxwqb";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    description = "A display, “Old Style” soft-serif typeface inspired by early 20th century typefaces";
+    homepage = "https://github.com/undercasetype/Fraunces";
+    license = licenses.ofl;
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/data/fonts/gentium/default.nix b/pkgs/data/fonts/gentium/default.nix
index 3622e1c3b3c..ac8839f075b 100644
--- a/pkgs/data/fonts/gentium/default.nix
+++ b/pkgs/data/fonts/gentium/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "5.000";
+  version = "6.001";
 in fetchzip rec {
   name = "gentium-${version}";
 
@@ -10,12 +10,20 @@ in fetchzip rec {
   postFetch = ''
     mkdir -p $out/share/{doc,fonts}
     unzip -l $downloadedFile
-    unzip -j $downloadedFile \*.ttf                                          -d $out/share/fonts/truetype
-    unzip -j $downloadedFile \*/FONTLOG.txt \*/GENTIUM-FAQ.txt \*/README.txt -d $out/share/doc/${name}
-    unzip -j $downloadedFile \*/documentation/\*                             -d $out/share/doc/${name}/documentation
+    unzip -j $downloadedFile \*.ttf \
+      -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \
+      \*/FONTLOG.txt \
+      \*/README.txt \
+      -d $out/share/doc/${name}
+    unzip -j $downloadedFile \
+      \*/documentation/\*.html \
+      \*/documentation/\*.txt \
+      -x \*/documentation/source/\* \
+      -d $out/share/doc/${name}/documentation
   '';
 
-  sha256 = "1qr2wjdmm93167b0w9cidlf3wwsyjx4838ja9jmm4jkyian5whhp";
+  sha256 = "sha256-DeoMTJ2nhTBtNQYG55lIMvnulqpk/KTeIqgpb5eiTIA=";
 
   meta = with lib; {
     homepage = "https://software.sil.org/gentium/";
diff --git a/pkgs/data/fonts/go-font/default.nix b/pkgs/data/fonts/go-font/default.nix
index e887f0ffef1..ed17dfc9054 100644
--- a/pkgs/data/fonts/go-font/default.nix
+++ b/pkgs/data/fonts/go-font/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit }:
+{ lib, fetchgit }:
 
 let
   version = "2017-03-30";
@@ -17,12 +17,12 @@ in (fetchgit {
 
   sha256 = "1488426ya2nzmwjas947fx9h5wzxrp9wasn8nkjqf0y0mpd4f1xz";
 }) // {
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://blog.golang.org/go-fonts";
     description = "The Go font family";
     license = licenses.bsd3;
     maintainers = with maintainers; [ sternenseemann ];
-    platforms = stdenv.lib.platforms.all;
+    platforms = lib.platforms.all;
     hydraPlatforms = [];
   };
 }
diff --git a/pkgs/data/fonts/gohufont/default.nix b/pkgs/data/fonts/gohufont/default.nix
index ac82c82ae3d..f28e3d5ba61 100644
--- a/pkgs/data/fonts/gohufont/default.nix
+++ b/pkgs/data/fonts/gohufont/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchFromGitHub
+{ lib, stdenv, fetchurl, fetchFromGitHub
 , mkfontscale, bdf2psf, bdftopcf
 , fonttosfnt, libfaketime
 }:
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
     mkfontdir "$fontDir"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = ''
       A monospace bitmap font well suited for programming and terminal use
     '';
diff --git a/pkgs/data/fonts/google-fonts/default.nix b/pkgs/data/fonts/google-fonts/default.nix
index 7a3b488212d..9689fddd391 100644
--- a/pkgs/data/fonts/google-fonts/default.nix
+++ b/pkgs/data/fonts/google-fonts/default.nix
@@ -1,36 +1,27 @@
-{ stdenv, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
-stdenv.mkDerivation {
+stdenvNoCC.mkDerivation {
   pname = "google-fonts";
-  version = "2019-07-14";
+  version = "unstable-2021-06-12";
+
+  outputs = [ "out" "adobeBlank" ];
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "fonts";
-    rev = "f113126dc4b9b1473d9354a86129c9d7b837aa1a";
-    sha256 = "0safw5prpa63mqcyfw3gr3a535w4c9hg5ayw5pkppiwil7n3pyxs";
+    rev = "370c795d7e5f9b02db9a793c2779e2c8f94c6adc";
+    sha256 = "sha256-XKjxmupY2KuefCtKZMXWaba1TnNwdYM/P0xGXOtBGmM=";
   };
 
-  phases = [ "unpackPhase" "patchPhase" "installPhase" ];
-
   patchPhase = ''
     # These directories need to be removed because they contain
     # older or duplicate versions of fonts also present in other
     # directories. This causes non-determinism in the install since
     # the installation order of font files with the same name is not
     # fixed.
-    rm -rv ofl/alefhebrew \
-      ofl/misssaintdelafield \
-      ofl/mrbedford \
-      ofl/siamreap \
-      ofl/terminaldosislight
-
-    # See comment above, the structure of these is a bit odd
-    # We keep the ofl/<font>/static/ variants
-    rm -rv ofl/comfortaa/*.ttf \
-      ofl/mavenpro/*.ttf \
-      ofl/muli/*.ttf \
-      ofl/oswald/*.ttf
+    rm -rv ofl/cabincondensed \
+           ofl/signikanegative \
+           ofl/signikanegativesc
 
     if find . -name "*.ttf" | sed 's|.*/||' | sort | uniq -c | sort -n | grep -v '^.*1 '; then
       echo "error: duplicate font names"
@@ -38,12 +29,17 @@ stdenv.mkDerivation {
     fi
   '';
 
+  dontBuild = true;
+
   installPhase = ''
+    adobeBlankDest=$adobeBlank/share/fonts/truetype
+    install -m 444 -Dt $adobeBlankDest ofl/adobeblank/AdobeBlank-Regular.ttf
+    rm -r ofl/adobeblank
     dest=$out/share/fonts/truetype
     find . -name '*.ttf' -exec install -m 444 -Dt $dest '{}' +
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://fonts.google.com";
     description = "Font files available from Google Fonts";
     license = with licenses; [ asl20 ofl ufl ];
diff --git a/pkgs/data/fonts/gubbi/default.nix b/pkgs/data/fonts/gubbi/default.nix
index 2d1c520e610..9ae46d08992 100644
--- a/pkgs/data/fonts/gubbi/default.nix
+++ b/pkgs/data/fonts/gubbi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fontforge }:
+{ lib, stdenv, fetchFromGitHub, fontforge }:
 
 stdenv.mkDerivation rec {
   pname = "gubbi-font";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   installPhase = "install -Dm444 -t $out/share/fonts/truetype/ Gubbi.ttf";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     inherit (src.meta) homepage;
     description = "A Kannada font";
     license = licenses.gpl3Plus;
diff --git a/pkgs/data/fonts/ibm-plex/default.nix b/pkgs/data/fonts/ibm-plex/default.nix
index 4e1001adb69..cd33a834acc 100644
--- a/pkgs/data/fonts/ibm-plex/default.nix
+++ b/pkgs/data/fonts/ibm-plex/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "5.1.0";
+  version = "5.1.3";
 
 in fetchzip {
   name = "ibm-plex-${version}";
@@ -13,7 +13,7 @@ in fetchzip {
     unzip -j $downloadedFile "OpenType/*/*.otf" -d $out/share/fonts/opentype
   '';
 
-  sha256 = "1lcbj6zkpnsq38s2xkx3z4d7bd43k630lmzmgdcv1w05gjij0pw5";
+  sha256 = "0w07fkhav2lqdyki7ipnkpji5ngwarlhsyliy0ip7cd29x24ys5h";
 
   meta = with lib; {
     description = "IBM Plex Typeface";
diff --git a/pkgs/data/fonts/inconsolata/default.nix b/pkgs/data/fonts/inconsolata/default.nix
index 10568073e4b..327b7fa2ca5 100644
--- a/pkgs/data/fonts/inconsolata/default.nix
+++ b/pkgs/data/fonts/inconsolata/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, google-fonts }:
+{ lib, stdenv, google-fonts }:
 
 stdenv.mkDerivation {
   pname = "inconsolata";
@@ -6,13 +6,13 @@ stdenv.mkDerivation {
   inherit (google-fonts) src version;
 
   installPhase = ''
-    install -m644 --target $out/share/fonts/truetype/inconsolata -D $src/ofl/inconsolata/*.ttf
+    install -m644 --target $out/share/fonts/truetype/inconsolata -D $src/ofl/inconsolata/static/*.ttf
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://www.levien.com/type/myfonts/inconsolata.html";
     description = "A monospace font for both screen and print";
-    maintainers = with maintainers; [ mikoim raskin rycee ];
+    maintainers = with maintainers; [ mikoim raskin ];
     license = licenses.ofl;
     platforms = platforms.all;
   };
diff --git a/pkgs/data/fonts/inconsolata/lgc.nix b/pkgs/data/fonts/inconsolata/lgc.nix
index e69e6e02a22..945fafcfcc5 100644
--- a/pkgs/data/fonts/inconsolata/lgc.nix
+++ b/pkgs/data/fonts/inconsolata/lgc.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchFromGitHub, fontforge}:
+{lib, stdenv, fetchFromGitHub, fontforge}:
 
 stdenv.mkDerivation rec {
   pname = "inconsolata-lgc";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     install -m444 -Dt $out/share/doc/${pname}-${version} LICENSE README
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Fork of Inconsolata font, with proper support of Cyrillic and Greek";
     longDescription = ''
       Inconsolata is one of the most suitable font for programmers created by Raph
diff --git a/pkgs/data/fonts/input-fonts/default.nix b/pkgs/data/fonts/input-fonts/default.nix
index 2db7e259a35..36a18c1f8f1 100644
--- a/pkgs/data/fonts/input-fonts/default.nix
+++ b/pkgs/data/fonts/input-fonts/default.nix
@@ -1,33 +1,78 @@
-{ stdenv, requireFile, unzip }:
+{ lib
+, stdenv
+, fetchzip
+, python3
+, config
+, acceptLicense ? config.input-fonts.acceptLicense or false
+}:
 
-stdenv.mkDerivation {
-  pname = "input-fonts";
-  version = "2019-11-25"; # date of the download and checksum
+let
 
-  src = requireFile {
-    name = "Input-Font.zip";
-    url = "https://input.fontbureau.com/download/";
-    sha256 = "10rax2a7vzidcs7kyfg5lv5bwp9i7kvjpdcsd10p0517syijkp3b";
-  };
+  throwLicense = throw ''
+    Input is available free of charge for private/unpublished usage. This includes things like your personal coding app or for composing plain text documents.
+    To use it, you need to agree to its license: https://input.djr.com/license/
+
+    You can express acceptance by setting acceptLicense to true in your
+    configuration. Note that this is not a free license so it requires allowing
+    unfree licenses.
+
+    configuration.nix:
+      nixpkgs.config.allowUnfree = true;
+      nixpkgs.config.input-fonts.acceptLicense = true;
+
+    config.nix:
+      allowUnfree = true;
+      input-fonts.acceptLicense = true;
+
+    If you would like to support this project, consider purchasing a license at <http://input.djr.com/buy>.
+  '';
 
-  nativeBuildInputs = [ unzip ];
+  releaseDate = "2015-06-24";
 
-  phases = [ "unpackPhase" "installPhase" ];
+in
 
-  sourceRoot = ".";
+stdenv.mkDerivation rec {
+  pname = "input-fonts";
+  version = "1.2";
+
+  src =
+    assert !acceptLicense -> throwLicense;
+    fetchzip {
+      name = "input-fonts-${version}";
+      # Add .zip parameter so that zip unpackCmd can match it.
+      url = "https://input.djr.com/build/?fontSelection=whole&a=0&g=0&i=0&l=0&zero=0&asterisk=0&braces=0&preset=default&line-height=1.2&accept=I+do&email=&.zip";
+      sha256 = "BESZ4Bjgm2hvQ7oPpMvYSlE8EqvQjqHZtXWIovqyIzA=";
+      stripRoot = false;
+
+      extraPostFetch = ''
+        # Reset the timestamp to release date for determinism.
+        PATH=${lib.makeBinPath [ python3.pkgs.fonttools ]}:$PATH
+        for ttf_file in $out/Input_Fonts/*/*/*.ttf; do
+          ttx_file=$(dirname "$ttf_file")/$(basename "$ttf_file" .ttf).ttx
+          ttx "$ttf_file"
+          rm "$ttf_file"
+          touch -m -t ${builtins.replaceStrings [ "-" ] [ "" ] releaseDate}0000 "$ttx_file"
+          ttx --recalc-timestamp "$ttx_file"
+          rm "$ttx_file"
+        done
+      '';
+    };
+
+  dontConfigure = true;
+  dontBuild = true;
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/fonts/truetype
     find Input_Fonts -name "*.ttf" -exec cp -a {} "$out"/share/fonts/truetype/ \;
     mkdir -p "$out"/share/doc
     cp -a *.txt "$out"/share/doc/
-  '';
 
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "15sdhqqqd4jgk80fw7ncx49avi9cxbdgyrvnrfya0066x4q4r6lv";
+    runHook postInstall
+  '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Fonts for Code, from Font Bureau";
     longDescription = ''
       Input is a font family designed for computer programming, data,
@@ -42,9 +87,12 @@ stdenv.mkDerivation {
       generous spacing, large punctuation, and easily distinguishable
       characters — but without the limitations of a fixed width.
     '';
-    homepage = "https://input.fontbureau.com";
+    homepage = "https://input.djr.com/";
     license = licenses.unfree;
-    maintainers = with maintainers; [ romildo ];
+    maintainers = with maintainers; [
+      jtojnar
+      romildo
+    ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/data/fonts/inter-ui/default.nix b/pkgs/data/fonts/inter-ui/default.nix
deleted file mode 100644
index 37b48f7ceb2..00000000000
--- a/pkgs/data/fonts/inter-ui/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, fetchzip }:
-
-# XXX: IMPORTANT:
-# For compat, keep this at the last version that used the name "Inter UI"
-# For newer versions, which are now simply named "Inter",
-# see the expression for `inter` (../inter/default.nix).
-let
-  version = "3.2";
-in fetchzip {
-  name = "inter-ui-${version}";
-
-  url = "https://github.com/rsms/inter/releases/download/v${version}/Inter-UI-${version}.zip";
-
-  postFetch = ''
-    mkdir -p $out/share/fonts/opentype
-    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
-  '';
-
-  sha256 = "01d2ql803jrhss6g60djvs08x9xl7z6b3snkn03vqnrajdgifcl4";
-
-  meta = with lib; {
-    homepage = "https://rsms.me/inter/";
-    description = "A typeface specially designed for user interfaces";
-    license = licenses.ofl;
-    platforms = platforms.all;
-    maintainers = with maintainers; [ demize ];
-  };
-}
-
diff --git a/pkgs/data/fonts/inter/default.nix b/pkgs/data/fonts/inter/default.nix
index 9c7ef62c769..ca01acd0c54 100644
--- a/pkgs/data/fonts/inter/default.nix
+++ b/pkgs/data/fonts/inter/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "3.11";
+  version = "3.19";
 in fetchzip {
   name = "inter-${version}";
 
@@ -12,7 +12,7 @@ in fetchzip {
     unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
   '';
 
-  sha256 = "1bk4q478jy84ylgm1mmh23n8cw1cd3k7gvfih77sd7ya1zv26vl1";
+  sha256 = "sha256-8p15thg3xyvCA/8dH2jGQoc54nzESFDyv5m47FgWrSI=";
 
   meta = with lib; {
     homepage = "https://rsms.me/inter/";
diff --git a/pkgs/data/fonts/iosevka/bin.nix b/pkgs/data/fonts/iosevka/bin.nix
index ee1bd74faf5..27577047eca 100644
--- a/pkgs/data/fonts/iosevka/bin.nix
+++ b/pkgs/data/fonts/iosevka/bin.nix
@@ -1,28 +1,39 @@
-{ stdenv, fetchzip }:
+{ stdenv, lib, fetchurl, iosevka, unzip
+, variant ? ""
+}:
 
 let
-  version = "3.4.1";
-in fetchzip {
-  name = "iosevka-bin-${version}";
+  name = "iosevka" + lib.optionalString (variant != "") "-" + variant;
 
-  url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/ttc-iosevka-${version}.zip";
+  variantHashes = import ./variants.nix;
+  validVariants = map (lib.removePrefix "iosevka-")
+    (builtins.attrNames (builtins.removeAttrs variantHashes [ "iosevka" ]));
+in stdenv.mkDerivation rec {
+  pname = "${name}-bin";
+  version = "7.0.4";
 
-  postFetch = ''
+  src = fetchurl {
+    url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/ttc-${name}-${version}.zip";
+    sha256 = variantHashes.${name} or (throw ''
+      No such variant "${variant}" for package iosevka-bin.
+      Valid variants are: ${lib.concatStringsSep ", " validVariants}.
+    '');
+  };
+
+  nativeBuildInputs = [ unzip ];
+
+  dontInstall = true;
+
+  unpackPhase = ''
     mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.ttc -d $out/share/fonts/truetype
+    unzip -d $out/share/fonts/truetype $src
   '';
 
-  sha256 = "0qqzgfplib6jdn1fra7fwx25jkzlw21brj45q8gn3gxvndvqabvd";
-
-  meta = with stdenv.lib; {
-    homepage = "https://be5invis.github.io/Iosevka/";
-    downloadPage = "https://github.com/be5invis/Iosevka/releases";
-    description = ''
-      Slender monospace sans-serif and slab-serif typeface inspired by Pragmata
-      Pro, M+ and PF DIN Mono, designed to be the ideal font for programming.
-    '';
-    license = licenses.ofl;
-    platforms = platforms.all;
-    maintainers = [ maintainers.cstrahan ];
+  meta = iosevka.meta // {
+    maintainers = with lib.maintainers; [
+      cstrahan
+    ];
   };
+
+  passthru.updateScript = ./update-bin.sh;
 }
diff --git a/pkgs/data/fonts/iosevka/default.nix b/pkgs/data/fonts/iosevka/default.nix
index 5167c494fa0..04e5b48bd0b 100644
--- a/pkgs/data/fonts/iosevka/default.nix
+++ b/pkgs/data/fonts/iosevka/default.nix
@@ -1,69 +1,100 @@
-{ stdenv, lib, pkgs, fetchFromGitHub, nodejs, nodePackages, remarshal
-, ttfautohint-nox, otfcc
+{ stdenv, lib, nodejs, nodePackages, remarshal
+, ttfautohint-nox
+  # Custom font set options.
+  # See https://typeof.net/Iosevka/customizer
+  # Can be a raw TOML string, or a Nix attrset.
 
-# Custom font set options.
-# See https://github.com/be5invis/Iosevka#build-your-own-style
-# Ex:
-# privateBuildPlan = {
-#   family = "Iosevka Expanded";
-#
-#   design = [
-#     "sans"
-#     "expanded"
-#   ];
-# };
+  # Ex:
+  # privateBuildPlan = ''
+  #   [buildPlans.iosevka-custom]
+  #   family = "Iosevka Custom"
+  #   spacing = "normal"
+  #   serifs = "sans"
+  #
+  #   [buildPlans.iosevka-custom.variants.design]
+  #   capital-j = "serifless"
+  #
+  #   [buildPlans.iosevka-custom.variants.italic]
+  #   i = "tailed"
+  # '';
+
+  # Or:
+  # privateBuildPlan = {
+  #   family = "Iosevka Custom";
+  #   spacing = "normal";
+  #   serifs = "sans";
+  #
+  #   variants = {
+  #     design.capital-j = "serifless";
+  #     italic.i = "tailed";
+  #   };
+  # }
 , privateBuildPlan ? null
   # Extra parameters. Can be used for ligature mapping.
-  # It must be a raw toml string.
-  #
+  # It must be a raw TOML string.
+
   # Ex:
-  # [[iosevka.compLig]]
-  # unicode = 57808 # 0xe1d0
-  # featureTag = 'XHS0'
-  # sequence = "+>"
+  # extraParameters = ''
+  #   [[iosevka.compLig]]
+  #   unicode = 57808 # 0xe1d0
+  #   featureTag = 'XHS0'
+  #   sequence = "+>"
+  # '';
 , extraParameters ? null
   # Custom font set name. Required if any custom settings above.
 , set ? null }:
 
 assert (privateBuildPlan != null) -> set != null;
+assert (extraParameters != null) -> set != null;
 
+let
+  # We don't know the attribute name for the Iosevka package as it
+  # changes not when our update script is run (which in turn updates
+  # node-packages.json, but when node-packages/generate.sh is run
+  # (which updates node-packages.nix).
+  #
+  # Doing it this way ensures that the package can always be built,
+  # although possibly an older version than ioseva-bin.
+  nodeIosevka = (
+    lib.findSingle
+      (drv: drv ? packageName && drv.packageName == "iosevka")
+      (throw "no 'iosevka' package found in nodePackages")
+      (throw "multiple 'iosevka' packages found in nodePackages")
+      (lib.attrValues nodePackages)
+  ).override (drv: { dontNpmInstall = true; });
+in
 stdenv.mkDerivation rec {
   pname = if set != null then "iosevka-${set}" else "iosevka";
-
-  version = "3.2.2";
-
-  src = fetchFromGitHub {
-    owner = "be5invis";
-    repo = "Iosevka";
-    rev = "v${version}";
-    sha256 = "1wbnp6gr3ywvspwk6i0jn68zwjmsd38arn4n2dkh7mdkrmvah81k";
-  };
+  inherit (nodeIosevka) version src;
 
   nativeBuildInputs = [
     nodejs
-    nodePackages."iosevka-build-deps-../../data/fonts/iosevka"
+    nodeIosevka
     remarshal
-    otfcc
     ttfautohint-nox
   ];
 
-  privateBuildPlanJSON =
-    builtins.toJSON { buildPlans.${pname} = privateBuildPlan; };
+  buildPlan =
+    if builtins.isAttrs privateBuildPlan
+      then builtins.toJSON { buildPlans.${pname} = privateBuildPlan; }
+    else privateBuildPlan;
+
   inherit extraParameters;
-  passAsFile = [ "privateBuildPlanJSON" "extraParameters" ];
+  passAsFile = [ "buildPlan" "extraParameters" ];
 
   configurePhase = ''
     runHook preConfigure
-    ${lib.optionalString (privateBuildPlan != null) ''
-      remarshal -i "$privateBuildPlanJSONPath" -o private-build-plans.toml -if json -of toml
+    ${lib.optionalString (builtins.isAttrs privateBuildPlan) ''
+      remarshal -i "$buildPlanPath" -o private-build-plans.toml -if json -of toml
+    ''}
+    ${lib.optionalString (builtins.isString privateBuildPlan) ''
+      cp "$buildPlanPath" private-build-plans.toml
     ''}
     ${lib.optionalString (extraParameters != null) ''
-      echo -e "\n" >> parameters.toml
-      cat "$extraParametersPath" >> parameters.toml
+      echo -e "\n" >> params/parameters.toml
+      cat "$extraParametersPath" >> params/parameters.toml
     ''}
-    ln -s ${
-      nodePackages."iosevka-build-deps-../../data/fonts/iosevka"
-    }/lib/node_modules/iosevka-build-deps/node_modules .
+    ln -s ${nodeIosevka}/lib/node_modules/iosevka/node_modules .
     runHook postConfigure
   '';
 
@@ -74,14 +105,20 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
+    runHook preInstall
     fontdir="$out/share/fonts/truetype"
     install -d "$fontdir"
     install "dist/$pname/ttf"/* "$fontdir"
+    runHook postInstall
   '';
 
   enableParallelBuilding = true;
 
-  meta = with stdenv.lib; {
+  passthru = {
+    updateScript = ./update-default.sh;
+  };
+
+  meta = with lib; {
     homepage = "https://be5invis.github.io/Iosevka";
     downloadPage = "https://github.com/be5invis/Iosevka/releases";
     description = ''
@@ -96,6 +133,7 @@ stdenv.mkDerivation rec {
       ttuegel
       babariviere
       rileyinman
+      AluisioASG
     ];
   };
 }
diff --git a/pkgs/data/fonts/iosevka/package.json b/pkgs/data/fonts/iosevka/package.json
deleted file mode 100644
index bc772960882..00000000000
--- a/pkgs/data/fonts/iosevka/package.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-	"name": "iosevka-build-deps",
-	"version": "3.2.2",
-	"scripts": {
-		"build": "verda -f verdafile.js"
-	},
-	"dependencies": {
-		"@iarna/toml": "^2.2.5",
-		"cldr": "^5.5.4",
-		"ejs": "^3.1.3",
-		"fs-extra": "^9.0.0",
-		"object-assign": "^4.1.1",
-		"otfcc-ttcize": "^0.10.2",
-		"patel": "^0.33.1",
-		"prettier": "^2.0.5",
-		"semver": "^7.1.3",
-		"spiro": "^2.0.0",
-		"stylus": "^0.54.7",
-		"topsort": "^0.0.2",
-		"ttf2woff": "^2.0.1",
-		"ttf2woff2": "^3.0.0",
-		"typo-geom": "^0.8.0",
-		"unicode-13.0.0": "^0.8.0",
-		"unorm": "^1.6.0",
-		"verda": "^1.0.1",
-		"which": "^2.0.2"
-	}
-}
diff --git a/pkgs/data/fonts/iosevka/update-bin.sh b/pkgs/data/fonts/iosevka/update-bin.sh
new file mode 100755
index 00000000000..a402f152d8a
--- /dev/null
+++ b/pkgs/data/fonts/iosevka/update-bin.sh
@@ -0,0 +1,28 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p curl jq
+
+set -euo pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+release=$(curl -s https://api.github.com/repos/be5invis/Iosevka/releases/latest)
+
+oldVersion=$(nix-instantiate --eval -E 'with import ../../../.. {}; lib.getVersion iosevka-bin' | tr -d '"')
+version=$(echo "$release" | jq -r .tag_name | tr -d v)
+
+if test "$oldVersion" = "$version"; then
+	echo "New version same as old version, nothing to do." >&2
+	exit 0
+fi
+
+sed -i "s/$oldVersion/$version/" bin.nix
+
+{
+	echo '# This file was autogenerated. DO NOT EDIT!'
+	echo '{'
+	for asset in $(echo "$release" | jq -r '.assets[].name | select(startswith("ttc"))'); do
+		printf '  %s = "%s";\n' \
+			$(echo "$asset" | sed -r "s/^ttc-(.*)-$version.zip$/\1/") \
+			$(nix-prefetch-url "https://github.com/be5invis/Iosevka/releases/download/v$version/$asset")
+	done
+	echo '}'
+} >variants.nix
diff --git a/pkgs/data/fonts/iosevka/update-default.sh b/pkgs/data/fonts/iosevka/update-default.sh
new file mode 100755
index 00000000000..208ea6101ac
--- /dev/null
+++ b/pkgs/data/fonts/iosevka/update-default.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p common-updater-scripts coreutils gawk replace
+set -euo pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+nixpkgs=../../../..
+repo=https://github.com/be5invis/Iosevka
+
+# Discover the latest version.
+current_version=$(nix-instantiate "$nixpkgs" --eval --strict -A iosevka.version | tr -d '"')
+new_version=$(list-git-tags "$repo" | sort --reverse --version-sort | awk 'match($0, /^v([0-9.]+)$/, m) { print m[1]; exit; }')
+if [[ "$new_version" == "$current_version" ]]; then
+    echo "iosevka: no update found"
+    exit
+fi
+
+# Update the source package in nodePackages.
+current_source="$repo/archive/v$current_version.tar.gz"
+new_source="$repo/archive/v$new_version.tar.gz"
+replace-literal -ef "$current_source" "$new_source" ../../../development/node-packages/node-packages.json
+echo "iosevka: $current_version -> $new_version (after nodePackages update)"
diff --git a/pkgs/data/fonts/iosevka/variants.nix b/pkgs/data/fonts/iosevka/variants.nix
new file mode 100644
index 00000000000..1f3da2a205d
--- /dev/null
+++ b/pkgs/data/fonts/iosevka/variants.nix
@@ -0,0 +1,27 @@
+# This file was autogenerated. DO NOT EDIT!
+{
+  iosevka = "10aa8bsykkfi3aplw4j7smj0brcbni3jxqzjbpsbv5b15wzvkm7y";
+  iosevka-aile = "0pa79n41xha9rdj4vzz8cpmdhf0h4fjyphjl12i9qxh5znjr4yyz";
+  iosevka-curly = "0shk75qdm5acfbxdvv985gnhaz3dys8wpshiis6y2raz8sam48qg";
+  iosevka-curly-slab = "0z297s1bl2rrrmr3a4cds4cx4cw69p2y05jv999bkw9vrd6a5ij9";
+  iosevka-etoile = "05h62ybd6b54b51h6m6dq3phvrw4jfcc6cyp1x44shj4az2ia17w";
+  iosevka-slab = "07rp7rp3rjzzn6vnx3zbfizd924xhl702kcyq9qlif9g285l85nl";
+  iosevka-ss01 = "1rvshgyhcq2cay9dssap9mhinhljn92adrbf8lbkaabf3fcyd19h";
+  iosevka-ss02 = "0bscxfjhm1is7b7amr5jjj5wpxm1yps4cns47r4w26a0ad4lzf6b";
+  iosevka-ss03 = "1l4mzv1w7wkjs4629hrj7svd3wwhjfvby0qsbq2fr71ngz4gdvva";
+  iosevka-ss04 = "0mj5l316bji6mazgkzi5vigbfbgfnif0llmgacg0l5qayzaafqb1";
+  iosevka-ss05 = "1gfc7b05fvf1m5vhlvbzxzim8qfcqf16dg8qmzdv625dk1mg2llf";
+  iosevka-ss06 = "1n3mfn8h9gmf7ymc6f5ky5n70nn0nb2l8grj26hm9047cvbxcjqm";
+  iosevka-ss07 = "0bffazcb6k7qd3c3fxg426mcgjzc5xncv8nsiz71frhi9crplprv";
+  iosevka-ss08 = "1kv6v7n2qbgl185kfh401mjvs2iim6l3cw9zzghhfx6qv7xy0dcd";
+  iosevka-ss09 = "0da9kcsxk4vllnxjlslm394lr3bhdsw4a2mi95szplipbf748jcp";
+  iosevka-ss10 = "0935y7m603n3rfv38gmja7jhjmc6xrcx61psb3sznp7mlmi0dn7x";
+  iosevka-ss11 = "1hh0b8qaas4bxz0sa8zi5sr4rmqrpgxfzaq53fsmxy7pzjkhjz09";
+  iosevka-ss12 = "118ibl1i7981kjvf8g0rqrckh2chnxvyivk5wwmxhkw43x06ffjf";
+  iosevka-ss13 = "1licqy5dy5z4s91yh086i0m362lavaqq6zr13715zaqh7ard7hva";
+  iosevka-ss14 = "0y1f5hva9kpj9l3a56n6vbr8zbydd9c0knvsbpg68lcgmybfc97m";
+  iosevka-ss15 = "11pm6frf74y27ym4kmh98pn2cqlab6msj0cxpah36ckpzkm5zdqq";
+  iosevka-ss16 = "0z77549ydrbdhw96gc1zl3sg4s16cq7l56pwkfk9ificm1rwf1nm";
+  iosevka-ss17 = "0zm34lfgrlcb97a8dx1g056qy6rr7722b1k6hm9dp676mi5va2cw";
+  iosevka-ss18 = "0jmz975gny6fc7vf5cn8a4bl0y8pzdwlvfh0km9x7ijp711pw42p";
+}
diff --git a/pkgs/data/fonts/jetbrains-mono/default.nix b/pkgs/data/fonts/jetbrains-mono/default.nix
index f81c0ed90f9..0ba7fd835c3 100644
--- a/pkgs/data/fonts/jetbrains-mono/default.nix
+++ b/pkgs/data/fonts/jetbrains-mono/default.nix
@@ -1,27 +1,25 @@
 { lib, fetchzip }:
 
 let
-  version = "2.001";
+  version = "2.225";
 in
 fetchzip {
   name = "JetBrainsMono-${version}";
 
-  url = "https://github.com/JetBrains/JetBrainsMono/releases/download/v${version}/JetBrains.Mono.${version}.zip";
+  url = "https://github.com/JetBrains/JetBrainsMono/releases/download/v${version}/JetBrainsMono-${version}.zip";
 
-  sha256 = "06rh8dssq6qzgb9rri3an2ka24j47c0i8yhgq81yyg471spc39h1";
+  sha256 = "1k8xmjaingz50626hd73hqbp196kg3zndiy0aqb88z5cw9nd0fva";
 
   postFetch = ''
     mkdir -p $out/share/fonts
     unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
-    unzip -j $downloadedFile \*.eot -d $out/share/fonts/eot
-    unzip -j $downloadedFile \*.woff -d $out/share/fonts/woff
-    unzip -j $downloadedFile \*.woff2 -d $out/share/fonts/woff2
   '';
 
   meta = with lib; {
     description = "A typeface made for developers";
     homepage = "https://jetbrains.com/mono/";
-    license = licenses.asl20;
+    changelog = "https://github.com/JetBrains/JetBrainsMono/blob/v${version}/Changelog.md";
+    license = licenses.ofl;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.all;
   };
diff --git a/pkgs/data/fonts/jost/default.nix b/pkgs/data/fonts/jost/default.nix
index fc06a7e9843..457cb0d03c9 100644
--- a/pkgs/data/fonts/jost/default.nix
+++ b/pkgs/data/fonts/jost/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchzip}:
+{lib, fetchzip}:
 
 let
   version = "3.5";
@@ -13,7 +13,7 @@ in fetchzip {
 
   sha256="0l78vhmbsyfmrva5wc76pskhxqryyg8q5xddpj9g5wqsddy525dq";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/indestructible-type/Jost";
     description = "A sans serif font by Indestructible Type";
     license = licenses.ofl;
diff --git a/pkgs/data/fonts/joypixels/default.nix b/pkgs/data/fonts/joypixels/default.nix
index 1b107f9cb82..59381727566 100644
--- a/pkgs/data/fonts/joypixels/default.nix
+++ b/pkgs/data/fonts/joypixels/default.nix
@@ -1,24 +1,103 @@
-{ stdenv, fetchurl }:
+{ lib, stdenv
+, fetchurl
+, config
+, acceptLicense ? config.joypixels.acceptLicense or false
+}:
+
+let
+  inherit (stdenv.hostPlatform.parsed) kernel;
+
+  systemSpecific = {
+    darwin = rec {
+      systemTag =  "nix-darwin";
+      capitalized = systemTag;
+      fontFile = "JoyPixels-SBIX.ttf";
+    };
+  }.${kernel.name} or rec {
+    systemTag = "nixos";
+    capitalized = "NixOS";
+    fontFile = "joypixels-android.ttf";
+  };
+
+  joypixels-free-license = with systemSpecific; {
+    spdxId = "LicenseRef-JoyPixels-Free-6.0";
+    fullName = "JoyPixels Free License Agreement 6.0";
+    url = "https://cdn.joypixels.com/distributions/${systemTag}/license/free-license.pdf";
+    free = false;
+  };
+
+  joypixels-license-appendix = with systemSpecific; {
+    spdxId = "LicenseRef-JoyPixels-NixOS-Appendix";
+    fullName = "JoyPixels ${capitalized} License Appendix";
+    url = "https://cdn.joypixels.com/distributions/${systemTag}/appendix/joypixels-license-appendix.pdf";
+    free = false;
+  };
+
+  throwLicense = throw ''
+    Use of the JoyPixels font requires acceptance of the license.
+      - ${joypixels-free-license.fullName} [1]
+      - ${joypixels-license-appendix.fullName} [2]
+
+    You can express acceptance by setting acceptLicense to true in your
+    configuration. Note that this is not a free license so it requires allowing
+    unfree licenses.
+
+    configuration.nix:
+      nixpkgs.config.allowUnfree = true;
+      nixpkgs.config.joypixels.acceptLicense = true;
+
+    config.nix:
+      allowUnfree = true;
+      joypixels.acceptLicense = true;
+
+    [1]: ${joypixels-free-license.url}
+    [2]: ${joypixels-license-appendix.url}
+  '';
+
+in
 
 stdenv.mkDerivation rec {
   pname = "joypixels";
-  version = "6.0.0";
+  version = "6.6.0";
 
-  src = fetchurl {
-    url = "https://cdn.joypixels.com/arch-linux/font/${version}/joypixels-android.ttf";
-    sha256 = "1vxqsqs93g4jyp01r47lrpcm0fmib2n1vysx32ksmfxmprimb75s";
-  };
+  src = assert !acceptLicense -> throwLicense;
+    with systemSpecific; fetchurl {
+      name = fontFile;
+      url = "https://cdn.joypixels.com/distributions/${systemTag}/font/${version}/${fontFile}";
+      sha256 = {
+        darwin = "0qcmb2vn2nykyikzgnlma627zhks7ksy1vkgvpcmqwyxq4bd38d7";
+      }.${kernel.name} or "17gjaz7353zyprmds64p01qivy2r8pwf88nvvhi57idas2qd604n";
+    };
 
   dontUnpack = true;
 
-  installPhase = ''
-    install -Dm644 $src $out/share/fonts/truetype/joypixels.ttf
+  installPhase = with systemSpecific; ''
+    runHook preInstall
+
+    install -Dm644 $src $out/share/fonts/truetype/${fontFile}
+
+    runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
-    description = "Emoji as a Service (formerly EmojiOne)";
-    homepage = "https://www.joypixels.com/";
-    license = licenses.unfree;
-    maintainers = with maintainers; [ jtojnar ];
+  meta = with lib; {
+    description = "The finest emoji you can use legally (formerly EmojiOne)";
+    longDescription = ''
+      Updated for 2021! JoyPixels 6.6 includes 3,559 originally crafted icon
+      designs and is 100% Unicode 13.1 compatible. We offer the largest
+      selection of files ranging from png, svg, iconjar, sprites, and fonts.
+    '';
+    homepage = "https://www.joypixels.com/fonts";
+    license =
+      let
+        free-license = joypixels-free-license;
+        appendix = joypixels-license-appendix;
+      in with systemSpecific; {
+        spdxId = "LicenseRef-JoyPixels-Free-6.0-with-${capitalized}-Appendix";
+        fullName = "${free-license.fullName} with ${appendix.fullName}";
+        url = free-license.url;
+        appendixUrl = appendix.url;
+        free = false;
+      };
+    maintainers = with maintainers; [ toonn jtojnar ];
   };
 }
diff --git a/pkgs/data/fonts/julia-mono/default.nix b/pkgs/data/fonts/julia-mono/default.nix
new file mode 100644
index 00000000000..014d6bd6f85
--- /dev/null
+++ b/pkgs/data/fonts/julia-mono/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchzip }:
+
+let
+  version = "0.040";
+
+in
+fetchzip {
+  name = "JuliaMono-ttf-${version}";
+  url = "https://github.com/cormullion/juliamono/releases/download/v${version}/JuliaMono-ttf.tar.gz";
+  sha256 = "sha256-Rrsvs682aWXZqydnOifXTJMa4uPl/aCGbVNRPGxkZng=";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/truetype
+    tar xf $downloadedFile -C $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    description = "A monospaced font for scientific and technical computing";
+    longDescription = ''
+      JuliaMono is a monospaced typeface designed for use in text editing
+      environments that require a wide range of specialist and technical Unicode
+      characters. It was intended as a fun experiment to be presented at the
+      2020 JuliaCon conference in Lisbon, Portugal (which of course didn’t
+      physically happen in Lisbon, but online).
+    '';
+    maintainers = with maintainers; [ suhr ];
+    platforms = with platforms; all;
+    homepage = "https://cormullion.github.io/pages/2020-07-26-JuliaMono/";
+    license = licenses.ofl;
+  };
+}
diff --git a/pkgs/data/fonts/kanit/default.nix b/pkgs/data/fonts/kanit/default.nix
new file mode 100644
index 00000000000..9b5be79061c
--- /dev/null
+++ b/pkgs/data/fonts/kanit/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "kanit";
+  version = "unstable-2020-06-16";
+
+  src = fetchFromGitHub {
+    owner = "cadsondemak";
+    repo = pname;
+    rev = "467dfe842185681d8042cd608b8291199dd37cda";
+    sha256 = "0p0klb0376r8ki4ap2j99j7jcsq6wgb7m1hf3j1dkncwm7ikmg3h";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/doc/${pname}/css/ $out/share/fonts/{opentype,truetype}
+
+    cp $src/OFL.txt $src/documentation/{BRIEF.md,features.html} $out/share/doc/${pname}
+    cp $src/documentation/css/fonts.css $out/share/doc/${pname}/css
+    cp $src/fonts/otf/*.otf $out/share/fonts/opentype
+    cp $src/fonts/ttf/*.ttf $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    homepage = "https://cadsondemak.github.io/kanit/";
+    description = "A loopless Thai and sans serif Latin typeface for contemporary and futuristic uses";
+    longDescription = ''
+      Kanit means mathematics in Thai, and the Kanit typeface family is a formal
+      Loopless Thai and Sans Latin design. It is a combination of concepts,
+      mixing a Humanist Sans Serif motif with the curves of Capsulated Geometric
+      styles that makes it suitable for various uses, contemporary and
+      futuristic. A notable detail is that the stroke terminals have flat angles,
+      which allows the design to enjoy decreased spacing between letters while
+      preserving readability and legibility at smaller point sizes.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.toastal ];
+  };
+}
diff --git a/pkgs/data/fonts/kanji-stroke-order-font/default.nix b/pkgs/data/fonts/kanji-stroke-order-font/default.nix
index 7b8444c3cde..80c97024ac3 100644
--- a/pkgs/data/fonts/kanji-stroke-order-font/default.nix
+++ b/pkgs/data/fonts/kanji-stroke-order-font/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ lib, stdenv, fetchurl }:
 
 let
   version = "4.003";
@@ -17,7 +17,7 @@ in stdenv.mkDerivation {
     cp *.txt $out/share/doc/kanji-stroke-order
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Font containing stroke order diagrams for over 6500 kanji, 180 kana and other characters";
     homepage = "https://sites.google.com/site/nihilistorguk/";
 
diff --git a/pkgs/data/fonts/kochi-substitute/default.nix b/pkgs/data/fonts/kochi-substitute/default.nix
index cf89a8fcb8f..071db9b13df 100644
--- a/pkgs/data/fonts/kochi-substitute/default.nix
+++ b/pkgs/data/fonts/kochi-substitute/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, dpkg }:
+{ lib, stdenv, fetchurl, dpkg }:
 
 let version = "20030809";
 in
@@ -42,7 +42,7 @@ stdenv.mkDerivation {
       from the naga10 font.
     '';
     homepage = "https://osdn.net/projects/efont/";
-    license = stdenv.lib.licenses.wadalab;
-    maintainers = [ stdenv.lib.maintainers.auntie ];
+    license = lib.licenses.wadalab;
+    maintainers = [ lib.maintainers.auntie ];
   };
 }
diff --git a/pkgs/data/fonts/kreative-square-fonts/default.nix b/pkgs/data/fonts/kreative-square-fonts/default.nix
new file mode 100644
index 00000000000..c9e51319733
--- /dev/null
+++ b/pkgs/data/fonts/kreative-square-fonts/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "kreative-square-fonts";
+  version = "unstable-2021-01-29";
+in
+fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "kreativekorp";
+  repo = "open-relay";
+  rev = "084f05af3602307499981651eca56851bec01fca";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    install -Dm444 -t $out/share/fonts/truetype/ KreativeSquare/KreativeSquare.ttf
+    install -Dm444 -t $out/share/fonts/truetype/ KreativeSquare/KreativeSquareSM.ttf
+  '';
+  sha256 = "15vvbbzv6b3jh7lxg77viycdd7yf3y8lxy54vs3rsrsxwncg0pak";
+
+  meta = with lib; {
+    description = "Fullwidth scalable monospace font designed specifically to support pseudographics, semigraphics, and private use characters";
+    homepage = "https://www.kreativekorp.com/software/fonts/ksquare.shtml";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.linus ];
+  };
+}
diff --git a/pkgs/data/fonts/last-resort/default.nix b/pkgs/data/fonts/last-resort/default.nix
new file mode 100644
index 00000000000..31fb300e591
--- /dev/null
+++ b/pkgs/data/fonts/last-resort/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchurl }:
+
+let
+  version = "13.001";
+in fetchurl {
+  name = "last-resort-${version}";
+
+  url = "https://github.com/unicode-org/last-resort-font/releases/download/${version}/LastResortHE-Regular.ttf";
+  downloadToTemp = true;
+
+  postFetch = ''
+    install -D -m 0644 $downloadedFile $out/share/fonts/truetype/LastResortHE-Regular.ttf
+  '';
+
+  recursiveHash = true;
+  sha256 = "08mi65j46fv6a3y3pqnglqdjxjnbzg25v25f7c1zyk3c285m14hq";
+
+  meta = with lib; {
+    description = "Fallback font of last resort";
+    homepage = "https://github.com/unicode-org/last-resort-font";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ V ];
+  };
+}
diff --git a/pkgs/data/fonts/lato/default.nix b/pkgs/data/fonts/lato/default.nix
index 2b9f6c1114f..76effcf97cd 100644
--- a/pkgs/data/fonts/lato/default.nix
+++ b/pkgs/data/fonts/lato/default.nix
@@ -3,7 +3,7 @@
 fetchzip {
   name = "lato-2.0";
 
-  url = "http://www.latofonts.com/download/Lato2OFL.zip";
+  url = "https://www.latofonts.com/download/Lato2OFL.zip";
 
   postFetch = ''
     mkdir -p $out/share/fonts
@@ -13,7 +13,7 @@ fetchzip {
   sha256 = "1amwn6vcaggxrd2s4zw21s2pr47zmzdf2xfy4x9lxa2cd9bkhvg5";
 
   meta = with lib; {
-    homepage = "http://www.latofonts.com/";
+    homepage = "https://www.latofonts.com/";
 
     description = ''
       Sans-serif typeface family designed in Summer 2010 by Łukasz Dziedzic
diff --git a/pkgs/data/fonts/league-of-moveable-type/default.nix b/pkgs/data/fonts/league-of-moveable-type/default.nix
index 9a80b9a43df..f6855dc99d6 100644
--- a/pkgs/data/fonts/league-of-moveable-type/default.nix
+++ b/pkgs/data/fonts/league-of-moveable-type/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, unzip, raleway}:
+{lib, stdenv, fetchurl, unzip, raleway}:
 
 let
 
@@ -43,9 +43,9 @@ stdenv.mkDerivation rec {
 
     homepage = "https://www.theleagueofmoveabletype.com/";
 
-    license = stdenv.lib.licenses.ofl;
+    license = lib.licenses.ofl;
 
-    platforms = stdenv.lib.platforms.all;
-    maintainers = with stdenv.lib.maintainers; [ bergey Profpatsch ];
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [ bergey Profpatsch ];
   };
 }
diff --git a/pkgs/data/fonts/liberation-fonts/default.nix b/pkgs/data/fonts/liberation-fonts/default.nix
index 838a8d4c769..04ee3781b6b 100644
--- a/pkgs/data/fonts/liberation-fonts/default.nix
+++ b/pkgs/data/fonts/liberation-fonts/default.nix
@@ -1,7 +1,8 @@
-{ stdenv, fetchFromGitHub, fontforge, python3 }:
+{ lib, stdenv, fetchFromGitHub, fontforge, python3 }:
 let
   inherit (python3.pkgs) fonttools;
 
+  commonNativeBuildInputs = [ fontforge python3 ];
   common =
     { version, repo, sha256, nativeBuildInputs, postPatch ? null }:
       stdenv.mkDerivation rec {
@@ -26,7 +27,7 @@ let
           install -m444 -Dt $out/share/doc/${pname}-${version} README      || true
         '';
 
-        meta = with stdenv.lib; {
+        meta = with lib; {
           description = "Liberation Fonts, replacements for Times New Roman, Arial, and Courier New";
           longDescription = ''
             The Liberation Fonts are intended to be replacements for the three most
@@ -50,13 +51,13 @@ in
   liberation_ttf_v1 = common {
     repo = "liberation-1.7-fonts";
     version = "1.07.5";
-    nativeBuildInputs = [ fontforge ];
+    nativeBuildInputs = commonNativeBuildInputs ;
     sha256 = "1ffl10mf78hx598sy9qr5m6q2b8n3mpnsj73bwixnd4985gsz56v";
   };
   liberation_ttf_v2 = common {
     repo = "liberation-fonts";
     version = "2.1.0";
-    nativeBuildInputs = [ fontforge fonttools ];
+    nativeBuildInputs = commonNativeBuildInputs ++ [ fonttools ];
     postPatch = ''
       substituteInPlace scripts/setisFixedPitch-fonttools.py --replace \
         'font = ttLib.TTFont(fontfile)' \
diff --git a/pkgs/data/fonts/liberation-sans-narrow/default.nix b/pkgs/data/fonts/liberation-sans-narrow/default.nix
index 373704f25f5..281bfa4c42b 100644
--- a/pkgs/data/fonts/liberation-sans-narrow/default.nix
+++ b/pkgs/data/fonts/liberation-sans-narrow/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fontforge, python3Packages, python3 }:
+{ lib, stdenv, fetchFromGitHub, fontforge, python3Packages, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "liberation-sans-narrow";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     install -m444 -Dt $out/doc/${pname}-${version} AUTHORS ChangeLog COPYING License.txt README.rst
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Liberation Sans Narrow Font Family is a replacement for Arial Narrow";
     longDescription = ''
       Liberation Sans Narrow is a font originally created by Ascender
diff --git a/pkgs/data/fonts/libertine/default.nix b/pkgs/data/fonts/libertine/default.nix
index bd47998b924..2120c5965e2 100644
--- a/pkgs/data/fonts/libertine/default.nix
+++ b/pkgs/data/fonts/libertine/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fontforge }:
+{ lib, stdenv, fetchurl, fontforge }:
 
 stdenv.mkDerivation {
   name = "linux-libertine-5.3.0";
@@ -38,7 +38,7 @@ stdenv.mkDerivation {
     install -m444 -Dt $out/share/texmf/fonts/map       *.map
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Linux Libertine Fonts";
     homepage = "http://linuxlibertine.sf.net";
     maintainers = [ maintainers.volth ];
diff --git a/pkgs/data/fonts/libre-caslon/default.nix b/pkgs/data/fonts/libre-caslon/default.nix
index 1b5e5b1be69..d89d4c41c0f 100644
--- a/pkgs/data/fonts/libre-caslon/default.nix
+++ b/pkgs/data/fonts/libre-caslon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "libre-caslon";
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   outputHashMode = "recursive";
   outputHash = "05aajwny99yqzn1nnq1blx6h7rl54x056y12hyawfbigkzxhscns";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Caslon fonts based on hand-lettered American Caslons of 1960s";
     homepage = "http://www.impallari.com/librecaslon";
     license = licenses.ofl;
diff --git a/pkgs/data/fonts/lmmath/default.nix b/pkgs/data/fonts/lmmath/default.nix
index a66bd48c897..0530141317b 100644
--- a/pkgs/data/fonts/lmmath/default.nix
+++ b/pkgs/data/fonts/lmmath/default.nix
@@ -15,7 +15,7 @@ in fetchzip rec {
   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.";
+    description = "The Latin Modern Math (LM Math) font completes the modernization of the Computer Modern family of typefaces designed and programmed by Donald E. Knuth";
     homepage = "http://www.gust.org.pl/projects/e-foundry/lm-math";
     # "The Latin Modern Math font is licensed under the GUST Font License (GFL),
     # which is a free license, legally equivalent to the LaTeX Project Public
diff --git a/pkgs/data/fonts/lobster-two/default.nix b/pkgs/data/fonts/lobster-two/default.nix
deleted file mode 100644
index d5a46b43fb4..00000000000
--- a/pkgs/data/fonts/lobster-two/default.nix
+++ /dev/null
@@ -1,80 +0,0 @@
-{stdenv, fetchurl}:
-
-let
-
-  # HG revision in which this version of the font can be fount.
-  rev = "8e98053718f9a15184c93d6530885791be71b756";
-
-  urlBase = "https://googlefontdirectory.googlecode.com/hg-history/${rev}/ofl/lobstertwo";
-
-  # Just a small convenience function.
-  fetch = {name, path ? "/src", sha256}:
-    {
-      inherit name;
-      file = fetchurl {
-        url = "${urlBase}${path}/${name}";
-        inherit sha256;
-      };
-    };
-
-  fontlog =
-    fetch {
-      name = "FONTLOG.txt";
-      path = "";
-      sha256 = "0n405i8m70q95y8w43gzr5yvkj7gx7rd3xa4rx6y8qcqv5g7v9if";
-    };
-
-  bold =
-    fetch {
-      name = "LobsterTwo-Bold.otf";
-      sha256 = "0gkayn96vvgngs9xnmcyyf16q4payk79ghvl354rl93ayb3gf7x0";
-    };
-
-  boldItalic =
-    fetch {
-      name = "LobsterTwo-BoldItalic.otf";
-      sha256 = "0wznqkvwjqi9s4bg10fpp2345by3nxa0m0w6b3al3zaqyx2p1dxp";
-    };
-
-  italic =
-    fetch {
-      name = "LobsterTwo-Italic.otf";
-      sha256 = "0lpnzwgwl5fm6gqy8bylbryz0hy94mf1mp615y5sh0wikdvk570z";
-    };
-
-  regular =
-    fetch {
-      name = "LobsterTwo-Regular.otf";
-      sha256 = "147m3sa3sqqbkbw1hgjdwnw8w0y37x58g5p09s7q2vm74flcpbq1";
-    };
-in
-
-  stdenv.mkDerivation rec {
-    pname = "lobstertwo";
-    version = "1.006";
-
-    phases = ["installPhase"];
-
-    installPhase = ''
-      mkdir -p $out/share/fonts/opentype
-      mkdir -p $out/share/doc/${pname}-${version}
-      cp -v ${fontlog.file} $out/share/doc/${pname}-${version}/${fontlog.name}
-      cp -v ${bold.file} $out/share/fonts/opentype/${bold.name}
-      cp -v ${boldItalic.file} $out/share/fonts/opentype/${boldItalic.name}
-      cp -v ${italic.file} $out/share/fonts/opentype/${italic.name}
-      cp -v ${regular.file} $out/share/fonts/opentype/${regular.name}
-    '';
-
-    outputHashAlgo = "sha256";
-    outputHashMode = "recursive";
-    outputHash = "0if9l8pzwgfnbdjg5yblcy08dwn9yj3wzz29l0fycia46xlzd4ym";
-
-    meta = with stdenv.lib; {
-      homepage = "https://github.com/librefonts/lobstertwo";
-      description = "Script font with many ligatures";
-      license = licenses.ofl;
-      platforms = platforms.all;
-      maintainers = [maintainers.rycee];
-      broken = true; # googlecode.com RIP; can be built from sources
-    };
-  }
diff --git a/pkgs/data/fonts/merriweather/default.nix b/pkgs/data/fonts/merriweather/default.nix
index 1768c44bc03..d1b3359df26 100644
--- a/pkgs/data/fonts/merriweather/default.nix
+++ b/pkgs/data/fonts/merriweather/default.nix
@@ -27,7 +27,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/SorkinType/Merriweather";
-    description = "Merriweather was designed to be a text face that is pleasant to read on screens";
+    description = "A text face designed to be pleasant to read on screens";
     license = licenses.ofl;
     platforms = platforms.all;
     maintainers = with maintainers; [ emily ];
diff --git a/pkgs/data/fonts/meslo-lg/default.nix b/pkgs/data/fonts/meslo-lg/default.nix
index 2837e488389..a55fb65c56c 100644
--- a/pkgs/data/fonts/meslo-lg/default.nix
+++ b/pkgs/data/fonts/meslo-lg/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, unzip }:
+{ lib, stdenv, fetchurl, unzip }:
 
 stdenv.mkDerivation rec {
   version = "1.2.1";
@@ -21,7 +21,6 @@ stdenv.mkDerivation rec {
 
   sourceRoot = ".";
 
-  phases = [ "unpackPhase" "installPhase" ];
   unpackPhase = ''
     unzip -j ${meslo-lg}
     unzip -j ${meslo-lg-dz}
@@ -39,8 +38,8 @@ stdenv.mkDerivation rec {
   meta = {
     description = "A customized version of Apple’s Menlo-Regular font";
     homepage = "https://github.com/andreberg/Meslo-Font/";
-    license = stdenv.lib.licenses.asl20;
-    maintainers = with stdenv.lib.maintainers; [ balajisivaraman ];
-    platforms = with stdenv.lib.platforms; all;
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ balajisivaraman ];
+    platforms = with lib.platforms; all;
   };
 }
diff --git a/pkgs/data/fonts/meslo-lgs-nf/default.nix b/pkgs/data/fonts/meslo-lgs-nf/default.nix
new file mode 100644
index 00000000000..305bd69f2da
--- /dev/null
+++ b/pkgs/data/fonts/meslo-lgs-nf/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "meslo-lgs-nf";
+  version = "2020-03-22";
+
+  src = fetchFromGitHub {
+    owner = "romkatv";
+    repo = "powerlevel10k-media";
+    rev = "32c7d40239c93507277f14522be90b5750f442c9";
+    sha256 = "10hq4whai1rqj495w4n80p0y21am8rihm4rc40xq7241d6dzilrd";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp $src/*.ttf $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    description = "Meslo Nerd Font patched for Powerlevel10k";
+    homepage = "https://github.com/romkatv/powerlevel10k-media";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bbigras ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/data/fonts/migmix/default.nix b/pkgs/data/fonts/migmix/default.nix
index 1b3313d4e02..bcc0666f035 100644
--- a/pkgs/data/fonts/migmix/default.nix
+++ b/pkgs/data/fonts/migmix/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip }:
+{ lib, stdenv, fetchzip }:
 
 stdenv.mkDerivation rec {
   pname = "migmix";
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   outputHashMode = "recursive";
   outputHash = "1fhh8wg6lxwrnsg9rl4ihffl0bsp1wqa5gps9fx60kr6j9wpvmbg";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A high-quality Japanese font based on M+ fonts and IPA fonts";
     homepage = "http://mix-mplus-ipa.osdn.jp/migmix";
     license = licenses.ipa;
diff --git a/pkgs/data/fonts/migu/default.nix b/pkgs/data/fonts/migu/default.nix
index 530fd4f543f..09992ef5ec8 100644
--- a/pkgs/data/fonts/migu/default.nix
+++ b/pkgs/data/fonts/migu/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip }:
+{ lib, stdenv, fetchzip }:
 
 stdenv.mkDerivation rec {
   pname = "migu";
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   outputHashMode = "recursive";
   outputHash = "0nbpn21cxdd6gsgr3fadzjsnz84f2swpf81wmscmjgvd56ngndzh";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A high-quality Japanese font based on modified M+ fonts and IPA fonts";
     homepage = "http://mix-mplus-ipa.osdn.jp/migu/";
     license = licenses.ipa;
diff --git a/pkgs/data/fonts/mno16/default.nix b/pkgs/data/fonts/mno16/default.nix
index 1b311d2c25a..eeb53904fe1 100644
--- a/pkgs/data/fonts/mno16/default.nix
+++ b/pkgs/data/fonts/mno16/default.nix
@@ -15,7 +15,7 @@ in fetchzip rec {
 
   meta = with lib; {
     description = "minimalist monospaced font";
-    homepage = "https://sev.dev/fonts/mno16"; 
+    homepage = "https://sev.dev/fonts/mno16";
     license = licenses.cc0;
   };
 }
diff --git a/pkgs/data/fonts/monoid/default.nix b/pkgs/data/fonts/monoid/default.nix
index f62f4961fc7..77ef87152ac 100644
--- a/pkgs/data/fonts/monoid/default.nix
+++ b/pkgs/data/fonts/monoid/default.nix
@@ -1,19 +1,25 @@
-{ stdenv, fetchFromGitHub, python2 }:
-# Python 3 support requires https://github.com/larsenwork/monoid/pull/233 to be merged
+{ lib, stdenv, fetchFromGitHub, fetchpatch, python3 }:
 
 stdenv.mkDerivation {
   pname = "monoid";
-  version = "2016-07-21";
+  version = "2018-06-03";
 
   src = fetchFromGitHub {
     owner = "larsenwork";
     repo = "monoid";
-    rev = "e9d77ec18c337dc78ceae787a673328615f0b120";
-    sha256 = "07h5q6cn6jjpmxp9vyag1bxx481waz344sr2kfs7d37bba8yjydj";
+    rev = "a331c7c5f402c449f623e0d0895bd2fd8dc30ccf";
+    sha256 = "sha256-RV6lxv5CjywTMcuPMj6rdjLKrap7zLJ7niaNeF//U1Y=";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/larsenwork/monoid/pull/233/commits/f84f2ed61301ee84dadd16351314394f22ebed2f.patch";
+      sha256 = "sha256-CxfFHlR7TB64pvrfzVfUDkPwuRO2UdGOhXwW98c+oQU=";
+    })
+  ];
+
   nativeBuildInputs = [
-    (python2.withPackages (pp: with pp; [
+    (python3.withPackages (pp: with pp; [
       fontforge
     ]))
   ];
@@ -33,7 +39,7 @@ stdenv.mkDerivation {
     install -m444 -Dt $out/share/doc            Readme.md
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://larsenwork.com/monoid";
     description = "Customisable coding font with alternates, ligatures and contextual positioning";
     license = [ licenses.ofl licenses.mit ];
diff --git a/pkgs/data/fonts/mononoki/default.nix b/pkgs/data/fonts/mononoki/default.nix
index 195c39c0e81..d48332b4a27 100644
--- a/pkgs/data/fonts/mononoki/default.nix
+++ b/pkgs/data/fonts/mononoki/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "1.2";
+  version = "1.3";
 in fetchzip {
   name = "mononoki-${version}";
 
@@ -12,7 +12,7 @@ in fetchzip {
     unzip -j $downloadedFile -d $out/share/fonts/mononoki
   '';
 
-  sha256 = "19y4xg7ilm21h9yynyrwcafdqn05zknpmmjrb37qim6p0cy2glff";
+  sha256 = "sha256-K2uOpJRmQ1NcDZfh6rorCF0MvGHFCsSW8J7Ue9OC/OY=";
 
   meta = with lib; {
     homepage = "https://github.com/madmalik/mononoki";
diff --git a/pkgs/data/fonts/montserrat/default.nix b/pkgs/data/fonts/montserrat/default.nix
index de8ea80b017..41135122f05 100644
--- a/pkgs/data/fonts/montserrat/default.nix
+++ b/pkgs/data/fonts/montserrat/default.nix
@@ -1,29 +1,28 @@
-# Originally packaged for ArchLinux.
-#
-# https://aur.archlinux.org/packages/ttf-montserrat/
-
-{ lib, fetchzip }:
+{ lib, fetchFromGitHub }:
 
 let
-  version = "1.0";
-in fetchzip {
-  name = "montserrat-${version}";
-
-  url = "https://marvid.fr/~eeva/mirror/Montserrat.tar.gz";
+  pname = "montserrat";
+  version = "7.210";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+  owner = "JulietaUla";
+  repo = pname;
+  rev = "v${version}";
+  sha256 = "sha256-C6T0Iz1rFC+EsKFJRil2jGTMQ4X7wR80E3eORL5qi0U=";
 
   postFetch = ''
-    tar -xzf $downloadedFile --strip-components=1
-    mkdir -p $out/share/fonts/montserrat
-    cp *.ttf $out/share/fonts/montserrat
+    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
   '';
 
-  sha256 = "11sdgvhaqg59mq71aqwqp2mb428984hjxy7hd1vasia9kgk8259w";
-
   meta = with lib; {
     description = "A geometric sans serif font with extended latin support (Regular, Alternates, Subrayada)";
-    homepage    = "https://www.fontspace.com/julieta-ulanovsky/montserrat";
-    license     = licenses.ofl;
-    platforms   = platforms.all;
-    maintainers = with maintainers; [ scolobb ];
+    homepage = "https://www.fontspace.com/julieta-ulanovsky/montserrat";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ scolobb jk ];
   };
 }
diff --git a/pkgs/data/fonts/myrica/default.nix b/pkgs/data/fonts/myrica/default.nix
index aa5ee0ff1c3..c36292eb001 100644
--- a/pkgs/data/fonts/myrica/default.nix
+++ b/pkgs/data/fonts/myrica/default.nix
@@ -5,6 +5,7 @@ fetchFromGitHub {
 
   owner = "tomokuni";
   repo = "Myrica";
+  # commit does not exist on any branch on the target repository
   rev = "b737107723bfddd917210f979ccc32ab3eb6dc20";
   sha256 = "187rklcibbkai6m08173ca99qn8v7xpdfdv0izpymmavj85axm12";
 
diff --git a/pkgs/data/fonts/nafees/default.nix b/pkgs/data/fonts/nafees/default.nix
index 11e1ccb5645..e23528aefe8 100644
--- a/pkgs/data/fonts/nafees/default.nix
+++ b/pkgs/data/fonts/nafees/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, unzip}:
+{lib, stdenv, fetchurl, unzip}:
 
 stdenv.mkDerivation {
   name = "nafees";
@@ -56,7 +56,7 @@ stdenv.mkDerivation {
     # more like a modified BSD, but still contains the GPLv2 embedded
     # font exception, and some not-for-resale language.
     license = "unknown";
-    platforms = stdenv.lib.platforms.all;
-    maintainers = with stdenv.lib.maintainers; [ bergey ];
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [ bergey ];
   };
 }
diff --git a/pkgs/data/fonts/navilu/default.nix b/pkgs/data/fonts/navilu/default.nix
index 0433ad22de5..afd9f85741c 100644
--- a/pkgs/data/fonts/navilu/default.nix
+++ b/pkgs/data/fonts/navilu/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fontforge }:
+{ lib, stdenv, fetchFromGitHub, fontforge }:
 
 stdenv.mkDerivation rec {
   pname = "navilu-font";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   installPhase = "install -Dm444 -t $out/share/fonts/truetype/ Navilu.ttf";
 
-  meta = with stdenv.lib; src.meta // {
+  meta = with lib; src.meta // {
     description = "A Kannada handwriting font";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/nerdfonts/default.nix b/pkgs/data/fonts/nerdfonts/default.nix
index bf98effb150..ceb0cb8b03a 100644
--- a/pkgs/data/fonts/nerdfonts/default.nix
+++ b/pkgs/data/fonts/nerdfonts/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
     ''}
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts";
     longDescription = ''
       Nerd Fonts is a project that attempts to patch as many developer targeted
diff --git a/pkgs/data/fonts/nerdfonts/shas.nix b/pkgs/data/fonts/nerdfonts/shas.nix
index e360dd042b1..4194e57532d 100644
--- a/pkgs/data/fonts/nerdfonts/shas.nix
+++ b/pkgs/data/fonts/nerdfonts/shas.nix
@@ -1,52 +1,52 @@
 {
-	"3270" = "1k71zsijasn6013c58pgf52xw3h9gkqdjlsa177wlldz8qxb16xk";
-	"Agave" = "0jgm31wvmckb71qc9l0nj3sg4zq2vw67piaxr6h8zkakcl2mysha";
-	"AnonymousPro" = "0s3n8rrr9kfqd8gxjxksp7p8bc3q7qhcrpyq8090dksvmbcks6xm";
-	"Arimo" = "1k7ldfx6dmy9sigzsvi9qwms510nddw634g8xrn0vwnw6d7infk8";
-	"AurulentSansMono" = "0q35948dai8qc7gfvas8sfn5s7b64b2y4f9psz6xslrv7nw8lcaz";
-	"BigBlueTerminal" = "0ymw2m2xjsx77brm79aws26icwcf2a1d7q3p3ipsd25g4cgqcd2v";
-	"BitstreamVeraSansMono" = "1n2298g1fn8jb1fbvw74289n7nnmjddn7zxh88gnl58pwz8ra5dk";
-	"CascadiaCode" = "1q4l5a7b7ab6h1bs5pq734r9pp3fw9b59gdk1g4hyn2w61h0kdcj";
-	"CodeNewRoman" = "1mgxawj3pblaxy0y9w0hzlfgipiskmc5p028m82zh1wyaplmh2pa";
-	"Cousine" = "0jr0gxrsba3dhchp53vd67qq2pgfnvmvcwbv99l1700p539bcvy1";
-	"DaddyTimeMono" = "1n6vwykz084fxgylayizxc210f4ms2ijfws5b2hvl2kqmy2q6jk4";
-	"DejaVuSansMono" = "03qfrkzmhnn8dwgx4qhiigbz4dxs3957hydlr0j8vxl89j8c9g1z";
-	"DroidSansMono" = "187cbcn4a2whrl8dag1ix6j1v3jgv5z2jdfw1w1z9llm1znvpp7z";
-	"FantasqueSansMono" = "147h15k3ni0w6chxkrah2fk4klhdhq8y1d3nbx763h9ia3mnggv6";
-	"FiraCode" = "1rx7zrkq0584k6hrh6dx30xrnz5nq379xyw73pfd4gxaxnh9mpi1";
-	"FiraMono" = "0f2daidakhmbbd5ph6985rghjmr87k7xzmmmf9n851dxvfyndsgl";
-	"Go-Mono" = "1bzh3pgyn87j27kw7x5h02rqzhh21pm6d0zhxd5iqi5qq5mj0nvm";
-	"Gohu" = "1rlkprjg9nz1s69s4ancmxii6l907qachl116gngbj8gjv3g1x21";
-	"Hack" = "052mav170lwxkgzg3hij4zvnmfwyrddn45gn07a33gpzzicjx1bh";
-	"Hasklig" = "0vyb0z0m04pn8477d6a711vjwb3nhvpn5fxfwnz37av9jmz3i9vk";
-	"HeavyData" = "065rhq7z52dp211inw3vszwc5zrd5s0w1kmgnrh68bxc0js0xqyb";
-	"Hermit" = "1ij9pjr517jxk3dlsrzmnqivsfq5i5ai6pd8hznmrkb3360cn7sm";
-	"iA-Writer" = "0clksrxw6xcv5c1pbd8rl2rc3r15iak1qv8v6bn0j2mccjcss64z";
-	"IBMPlexMono" = "0xkfkpnkkrvjfiv624l7lpmfji107y7645w6ah47ijyg47yxkmsg";
-	"Inconsolata" = "14gbwc0k3d1j496w6pv9kry1pglswzd0armsdb0g1mqgzfdf1ci1";
-	"InconsolataGo" = "0c6yhx242d82dalyjas42qniy0jagqs47cfsfarwmzar6zg3lj5m";
-	"InconsolataLGC" = "1746nl1rz4hscfgbmd8642wq3z1wizvfjb50y3yyjsc1ixc1f0pd";
-	"Iosevka" = "1qqd4xh98vxb99rh2a2qv9gjclilhaw84pyqdpbx225qhvw9xlkb";
-	"JetBrainsMono" = "1kc8fyk1aczxkmn8dzv1gy6xfi2jywgahd8np576v2dn8kx16844";
-	"Lekton" = "0mny5j9bns9104wg2wmabdw0sl80c7i3dzp4j5mxh8jybx929d3i";
-	"LiberationMono" = "19bpm893assmmnfvlvhz8df54c9pr2kfv2b6anlr4g64hliy1c1h";
-	"Meslo" = "08zm8nqskhrqkw80wl460zbvsrvs5fp2njlcv867phpqna9hyqzh";
-	"Monofur" = "0f5khqgdxi4g0qm5n48r1sk4pd2wlk987d8yxwks2mcsqa6fraqj";
-	"Monoid" = "0m7i82jfiwqmi9lhv8lmq2n723ihn0isxi5559478qbdy5b104dd";
-	"Mononoki" = "074avnvfl260pcrli4h5bc55yqr4mgd54paf80qcnh101qsz325w";
-	"MPlus" = "03mrfhzfmmqjfl7fa81v1ih3fdr3q2k439w6pjbd2zvl806l92yq";
-	"Noto" = "1jmycnf4fflijs730vbyj258kajkxv0j42655a7hvpapym7z940z";
-	"OpenDyslexic" = "0ma62xg6cy8l4chfhqvm64zzhx3mrzdj6gxwnvx8plqy3j4dn3by";
-	"Overpass" = "1xs2z3ch7dd32zb5l1axzd78hyskimqglcjcrb7n4ic85qm55xxm";
-	"ProFont" = "0ck4rprj0w29pv3qm4n1zg6cdq76m3kaag0ka4q1qqcnhga67zr7";
-	"ProggyClean" = "0sk3gk6zj61nbv94xv6z8y67sr5blg9n079d8srv7bbw9dv96i8g";
-	"RobotoMono" = "1nhbr9zc0cz81pdj95rrb56bwdkmmbqmk429nf60j35pkcqmvk8x";
-	"ShareTechMono" = "1h79myy0my3jyrvqcrgfdsjqrwwm5fdy2nmzp3ynyi769p7z1dwr";
-	"SourceCodePro" = "06cnsdmm84kzjlwwcmhwpj7pyfqinqpmww1c13i21l611fg6hwd7";
-	"SpaceMono" = "1xmmf2gdsa3ycl3pgpr3zr919qh702wjvc5k4hsdivvs2lzfdgmk";
-	"Terminus" = "0g2ybs225fwxmvwfnanc32jc2lfnag3agmliv1vrb5mxyqzm53gj";
-	"Tinos" = "077n4k6yh4qbirfkl02zqn3057kymspr10zcbfkf4ldvifa36pjd";
-	"Ubuntu" = "1lzdrgb8vk5dwicxhvkgbain5phf88g3zgv5ya2ihh052xsl3qih";
-	"UbuntuMono" = "0wa8ri7f3g8vwd194q812qh8nzplnmhl5ak0yhgilmm44s46ad0h";
-	"VictorMono" = "18z92kwggfqwrd5m09yda55hcb4b159278lps6f9hr8icwki6v9q";
+  "3270" = "1k71zsijasn6013c58pgf52xw3h9gkqdjlsa177wlldz8qxb16xk";
+  "Agave" = "0jgm31wvmckb71qc9l0nj3sg4zq2vw67piaxr6h8zkakcl2mysha";
+  "AnonymousPro" = "0s3n8rrr9kfqd8gxjxksp7p8bc3q7qhcrpyq8090dksvmbcks6xm";
+  "Arimo" = "1k7ldfx6dmy9sigzsvi9qwms510nddw634g8xrn0vwnw6d7infk8";
+  "AurulentSansMono" = "0q35948dai8qc7gfvas8sfn5s7b64b2y4f9psz6xslrv7nw8lcaz";
+  "BigBlueTerminal" = "0ymw2m2xjsx77brm79aws26icwcf2a1d7q3p3ipsd25g4cgqcd2v";
+  "BitstreamVeraSansMono" = "1n2298g1fn8jb1fbvw74289n7nnmjddn7zxh88gnl58pwz8ra5dk";
+  "CascadiaCode" = "1q4l5a7b7ab6h1bs5pq734r9pp3fw9b59gdk1g4hyn2w61h0kdcj";
+  "CodeNewRoman" = "1mgxawj3pblaxy0y9w0hzlfgipiskmc5p028m82zh1wyaplmh2pa";
+  "Cousine" = "0jr0gxrsba3dhchp53vd67qq2pgfnvmvcwbv99l1700p539bcvy1";
+  "DaddyTimeMono" = "1n6vwykz084fxgylayizxc210f4ms2ijfws5b2hvl2kqmy2q6jk4";
+  "DejaVuSansMono" = "03qfrkzmhnn8dwgx4qhiigbz4dxs3957hydlr0j8vxl89j8c9g1z";
+  "DroidSansMono" = "187cbcn4a2whrl8dag1ix6j1v3jgv5z2jdfw1w1z9llm1znvpp7z";
+  "FantasqueSansMono" = "147h15k3ni0w6chxkrah2fk4klhdhq8y1d3nbx763h9ia3mnggv6";
+  "FiraCode" = "1rx7zrkq0584k6hrh6dx30xrnz5nq379xyw73pfd4gxaxnh9mpi1";
+  "FiraMono" = "0f2daidakhmbbd5ph6985rghjmr87k7xzmmmf9n851dxvfyndsgl";
+  "Go-Mono" = "1bzh3pgyn87j27kw7x5h02rqzhh21pm6d0zhxd5iqi5qq5mj0nvm";
+  "Gohu" = "1rlkprjg9nz1s69s4ancmxii6l907qachl116gngbj8gjv3g1x21";
+  "Hack" = "052mav170lwxkgzg3hij4zvnmfwyrddn45gn07a33gpzzicjx1bh";
+  "Hasklig" = "0vyb0z0m04pn8477d6a711vjwb3nhvpn5fxfwnz37av9jmz3i9vk";
+  "HeavyData" = "065rhq7z52dp211inw3vszwc5zrd5s0w1kmgnrh68bxc0js0xqyb";
+  "Hermit" = "1ij9pjr517jxk3dlsrzmnqivsfq5i5ai6pd8hznmrkb3360cn7sm";
+  "iA-Writer" = "0clksrxw6xcv5c1pbd8rl2rc3r15iak1qv8v6bn0j2mccjcss64z";
+  "IBMPlexMono" = "0xkfkpnkkrvjfiv624l7lpmfji107y7645w6ah47ijyg47yxkmsg";
+  "Inconsolata" = "14gbwc0k3d1j496w6pv9kry1pglswzd0armsdb0g1mqgzfdf1ci1";
+  "InconsolataGo" = "0c6yhx242d82dalyjas42qniy0jagqs47cfsfarwmzar6zg3lj5m";
+  "InconsolataLGC" = "1746nl1rz4hscfgbmd8642wq3z1wizvfjb50y3yyjsc1ixc1f0pd";
+  "Iosevka" = "1qqd4xh98vxb99rh2a2qv9gjclilhaw84pyqdpbx225qhvw9xlkb";
+  "JetBrainsMono" = "1kc8fyk1aczxkmn8dzv1gy6xfi2jywgahd8np576v2dn8kx16844";
+  "Lekton" = "0mny5j9bns9104wg2wmabdw0sl80c7i3dzp4j5mxh8jybx929d3i";
+  "LiberationMono" = "19bpm893assmmnfvlvhz8df54c9pr2kfv2b6anlr4g64hliy1c1h";
+  "Meslo" = "08zm8nqskhrqkw80wl460zbvsrvs5fp2njlcv867phpqna9hyqzh";
+  "Monofur" = "0f5khqgdxi4g0qm5n48r1sk4pd2wlk987d8yxwks2mcsqa6fraqj";
+  "Monoid" = "0m7i82jfiwqmi9lhv8lmq2n723ihn0isxi5559478qbdy5b104dd";
+  "Mononoki" = "074avnvfl260pcrli4h5bc55yqr4mgd54paf80qcnh101qsz325w";
+  "MPlus" = "03mrfhzfmmqjfl7fa81v1ih3fdr3q2k439w6pjbd2zvl806l92yq";
+  "Noto" = "1jmycnf4fflijs730vbyj258kajkxv0j42655a7hvpapym7z940z";
+  "OpenDyslexic" = "0ma62xg6cy8l4chfhqvm64zzhx3mrzdj6gxwnvx8plqy3j4dn3by";
+  "Overpass" = "1xs2z3ch7dd32zb5l1axzd78hyskimqglcjcrb7n4ic85qm55xxm";
+  "ProFont" = "0ck4rprj0w29pv3qm4n1zg6cdq76m3kaag0ka4q1qqcnhga67zr7";
+  "ProggyClean" = "0sk3gk6zj61nbv94xv6z8y67sr5blg9n079d8srv7bbw9dv96i8g";
+  "RobotoMono" = "1nhbr9zc0cz81pdj95rrb56bwdkmmbqmk429nf60j35pkcqmvk8x";
+  "ShareTechMono" = "1h79myy0my3jyrvqcrgfdsjqrwwm5fdy2nmzp3ynyi769p7z1dwr";
+  "SourceCodePro" = "06cnsdmm84kzjlwwcmhwpj7pyfqinqpmww1c13i21l611fg6hwd7";
+  "SpaceMono" = "1xmmf2gdsa3ycl3pgpr3zr919qh702wjvc5k4hsdivvs2lzfdgmk";
+  "Terminus" = "0g2ybs225fwxmvwfnanc32jc2lfnag3agmliv1vrb5mxyqzm53gj";
+  "Tinos" = "077n4k6yh4qbirfkl02zqn3057kymspr10zcbfkf4ldvifa36pjd";
+  "Ubuntu" = "1lzdrgb8vk5dwicxhvkgbain5phf88g3zgv5ya2ihh052xsl3qih";
+  "UbuntuMono" = "0wa8ri7f3g8vwd194q812qh8nzplnmhl5ak0yhgilmm44s46ad0h";
+  "VictorMono" = "18z92kwggfqwrd5m09yda55hcb4b159278lps6f9hr8icwki6v9q";
 }
diff --git a/pkgs/data/fonts/nerdfonts/update.sh b/pkgs/data/fonts/nerdfonts/update.sh
index ccfab174dd8..b4c4aaa7cf2 100755
--- a/pkgs/data/fonts/nerdfonts/update.sh
+++ b/pkgs/data/fonts/nerdfonts/update.sh
@@ -15,7 +15,7 @@ while
   read -r name
   read -r url
 do
-    printf '\t"%s" = "%s";\n' "${name%.*}" "$(nix-prefetch-url "$url")" >>"$dirname/shas.nix"
+    printf '  "%s" = "%s";\n' "${name%.*}" "$(nix-prefetch-url "$url")" >>"$dirname/shas.nix"
 done < <(jq -r '.assets[] | .name, .browser_download_url' <<<"$latest_release")
 
 printf '}\n' >> "$dirname/shas.nix"
diff --git a/pkgs/data/fonts/noto-fonts/default.nix b/pkgs/data/fonts/noto-fonts/default.nix
index e077fc30344..07fba382286 100644
--- a/pkgs/data/fonts/noto-fonts/default.nix
+++ b/pkgs/data/fonts/noto-fonts/default.nix
@@ -4,13 +4,13 @@
 , fetchFromGitHub
 , fetchurl
 , fetchzip
-, optipng
 , cairo
-, python3Packages
-, pkgconfig
+, python3
+, pkg-config
 , pngquant
 , which
 , imagemagick
+, zopfli
 }:
 
 let
@@ -110,25 +110,40 @@ in
   };
 
   noto-fonts-emoji = let
-    version = "unstable-2019-10-22";
+    version = "2.028";
+    emojiPythonEnv =
+      python3.withPackages (p: with p; [ fonttools nototools ]);
   in stdenv.mkDerivation {
     pname = "noto-fonts-emoji";
-    inherit version;
+    version = builtins.replaceStrings [ "_" ] [ "." ] version;
 
     src = fetchFromGitHub {
-      owner = "googlei18n";
+      owner = "googlefonts";
       repo = "noto-emoji";
-      rev = "018aa149d622a4fea11f01c61a7207079da301bc";
-      sha256 = "0qmnnjpp5lza6g5m3ki6hj46p891h9vl42k3acd0qw8i0jj5yn2c";
+      rev = "v${version}";
+      sha256 = "0dy7px7wfl6bqkfzz82jm4gvbjp338ddsx0mwfl6m7z48l7ng4v6";
     };
 
-    buildInputs = [ cairo ];
-    nativeBuildInputs = [ pngquant optipng which cairo pkgconfig imagemagick ]
-                     ++ (with python3Packages; [ python fonttools nototools ]);
+    nativeBuildInputs = [
+      cairo
+      imagemagick
+      zopfli
+      pngquant
+      which
+      pkg-config
+      emojiPythonEnv
+    ];
 
     postPatch = ''
-      sed -i 's,^PNGQUANT :=.*,PNGQUANT := ${pngquant}/bin/pngquant,' Makefile
-      patchShebangs flag_glyph_name.py
+      patchShebangs *.py
+      patchShebangs third_party/color_emoji/*.py
+      # remove check for virtualenv, since we handle
+      # python requirements using python.withPackages
+      sed -i '/ifndef VIRTUAL_ENV/,+2d' Makefile
+
+      # Make the build verbose so it won't get culled by Hydra thinking that
+      # it somehow got stuck doing nothing.
+      sed -i 's;\t@;\t;' Makefile
     '';
 
     enableParallelBuilding = true;
@@ -139,9 +154,8 @@ in
     '';
 
     meta = with lib; {
-      inherit version;
       description = "Color and Black-and-White emoji fonts";
-      homepage = "https://github.com/googlei18n/noto-emoji";
+      homepage = "https://github.com/googlefonts/noto-emoji";
       license = with licenses; [ ofl asl20 ];
       platforms = platforms.all;
       maintainers = with maintainers; [ mathnerd314 ];
@@ -163,9 +177,9 @@ in
       install -D $src $out/share/fonts/blobmoji/Blobmoji.ttf
     '';
 
-    meta = with stdenv.lib; {
+    meta = with lib; {
       description = "Noto Emoji with extended Blob support";
-      homepage = https://github.com/C1710/blobmoji;
+      homepage = "https://github.com/C1710/blobmoji";
       license = with licenses; [ ofl asl20 ];
       platforms = platforms.all;
       maintainers = with maintainers; [ rileyinman ];
diff --git a/pkgs/data/fonts/noto-fonts/tools.nix b/pkgs/data/fonts/noto-fonts/tools.nix
index 3cc1570161e..791aa6534d2 100644
--- a/pkgs/data/fonts/noto-fonts/tools.nix
+++ b/pkgs/data/fonts/noto-fonts/tools.nix
@@ -1,32 +1,62 @@
-{ fetchFromGitHub, lib, fetchpatch, buildPythonPackage, isPy3k, fonttools, numpy, pillow, six, bash }:
+{ fetchFromGitHub, lib, buildPythonPackage, pythonOlder
+, afdko, appdirs, attrs, black, booleanoperations, brotlipy, click
+, defcon, fontmath, fontparts, fontpens, fonttools, lxml
+, mutatormath, pathspec, psautohint, pyclipper, pytz, regex, scour
+, toml, typed-ast, ufonormalizer, ufoprocessor, unicodedata2, zopfli
+, pillow, six, bash, setuptools-scm }:
 
 buildPythonPackage rec {
   pname = "nototools";
-  version = "unstable-2019-10-21";
+  version = "0.2.13";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "googlefonts";
     repo = "nototools";
-    rev = "cae92ce958bee37748bf0602f5d7d97bb6db98ca";
-    sha256 = "1jqr0dz23rjqiyxw1w69l6ry16dwdcf3c6cysiy793g2v7pir2yi";
+    rev = "v${version}";
+    sha256 = "0ggp65xgkf9y7jamncm65lkm84wapsa47abf133pcb702875v8jz";
   };
 
-  propagatedBuildInputs = [ fonttools numpy ];
-
-  patches = lib.optionals isPy3k [
-    # Additional Python 3 compat https://github.com/googlefonts/nototools/pull/497
-    (fetchpatch {
-      url = "https://github.com/googlefonts/nototools/commit/ded1f311b3260f015b5c5b80f05f7185392c4eff.patch";
-      sha256 = "0bn0rlbddxicw0h1dnl0cibgj6xjalja2qcm563y7kk3z5cdwhgq";
-    })
-  ];
-
   postPatch = ''
-    sed -ie "s^join(_DATA_DIR_PATH,^join(\"$out/third_party/ucd\",^" nototools/unicode_data.py
+    sed -i 's/use_scm_version=.*,/version="${version}",/' setup.py
   '';
 
+  nativeBuildInputs = [ setuptools-scm ];
+
+  propagatedBuildInputs = [
+    afdko
+    appdirs
+    attrs
+    black
+    booleanoperations
+    brotlipy
+    click
+    defcon
+    fontmath
+    fontparts
+    fontpens
+    fonttools
+    lxml
+    mutatormath
+    pathspec
+    psautohint
+    pyclipper
+    pytz
+    regex
+    scour
+    toml
+    typed-ast
+    ufonormalizer
+    ufoprocessor
+    unicodedata2
+    zopfli
+  ];
+
   checkInputs = [
-    pillow six bash
+    pillow
+    six
+    bash
   ];
 
   checkPhase = ''
diff --git a/pkgs/data/fonts/oldstandard/default.nix b/pkgs/data/fonts/oldstandard/default.nix
index 5284ec7e119..ddff3666b0b 100644
--- a/pkgs/data/fonts/oldstandard/default.nix
+++ b/pkgs/data/fonts/oldstandard/default.nix
@@ -18,7 +18,7 @@ in fetchzip rec {
   meta = with lib; {
     homepage = "https://github.com/akryukov/oldstand";
     description = "An attempt to revive a specific type of Modern style of serif typefaces";
-    maintainers = with maintainers; [ raskin rycee ];
+    maintainers = with maintainers; [ raskin ];
     license = licenses.ofl;
     platforms = platforms.all;
   };
diff --git a/pkgs/data/fonts/open-fonts/default.nix b/pkgs/data/fonts/open-fonts/default.nix
new file mode 100644
index 00000000000..e503b114303
--- /dev/null
+++ b/pkgs/data/fonts/open-fonts/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchurl }:
+
+let
+  pname = "open-fonts";
+  version = "0.7.0";
+in
+fetchurl {
+  name = "${pname}-${version}";
+
+  url = "https://github.com/kiwi0fruit/open-fonts/releases/download/${version}/open-fonts.tar.xz";
+  downloadToTemp = true;
+  recursiveHash = true;
+  sha256 = "sha256-bSP9Flotoo3E5vRU3eKOUAPD2fmkWseWYWG4y0S07+4=";
+
+  postFetch = ''
+    tar xf $downloadedFile
+    mkdir -p $out/share/fonts/truetype
+    install open-fonts/*.ttf $out/share/fonts/truetype
+  '';
+
+  meta = with lib; {
+    description = "A collection of beautiful free and open source fonts";
+    homepage = "https://github.com/kiwi0fruit/open-fonts";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
diff --git a/pkgs/data/fonts/open-sans/default.nix b/pkgs/data/fonts/open-sans/default.nix
index e92f7580252..0c9cf7b6a35 100644
--- a/pkgs/data/fonts/open-sans/default.nix
+++ b/pkgs/data/fonts/open-sans/default.nix
@@ -9,7 +9,7 @@ in fetchFromGitLab {
   domain = "salsa.debian.org";
   owner = "fonts-team";
   repo = "fonts-open-sans";
-  rev = "debian%2F1.11-1"; # URL-encoded form of "debian/1.11-1" tag
+  rev = "debian/1.11-1";
   postFetch = ''
     tar xf $downloadedFile --strip=1
     mkdir -p $out/share/fonts/truetype
@@ -26,6 +26,6 @@ in fetchFromGitLab {
     homepage = "https://www.opensans.com";
     license = licenses.asl20;
     platforms = platforms.all;
-    maintainers = [ maintainers.worldofpeace ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/data/fonts/orbitron/default.nix b/pkgs/data/fonts/orbitron/default.nix
index 4c00b086e10..f4a0a9600a1 100644
--- a/pkgs/data/fonts/orbitron/default.nix
+++ b/pkgs/data/fonts/orbitron/default.nix
@@ -20,8 +20,7 @@ in fetchFromGitHub {
   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'';
+    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
diff --git a/pkgs/data/fonts/paratype-pt/mono.nix b/pkgs/data/fonts/paratype-pt/mono.nix
index 54dbe3abf4e..4dd6093922c 100644
--- a/pkgs/data/fonts/paratype-pt/mono.nix
+++ b/pkgs/data/fonts/paratype-pt/mono.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchzip }:
+{ lib, fetchzip }:
 
 fetchzip {
   name = "paratype-pt-mono";
 
-  url = [
+  urls = [
     "https://company.paratype.com/system/attachments/631/original/ptmono.zip"
     "http://rus.paratype.ru/system/attachments/631/original/ptmono.zip"
   ];
@@ -16,7 +16,7 @@ fetchzip {
 
   sha256 = "07kl82ngby55khvzsvn831ddpc0q8djgz2y6gsjixkyjfdk2xjjm";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://www.paratype.ru/public/";
     description = "An open Paratype font";
 
diff --git a/pkgs/data/fonts/paratype-pt/sans.nix b/pkgs/data/fonts/paratype-pt/sans.nix
index afaba6804f8..8b47dd9ee1f 100644
--- a/pkgs/data/fonts/paratype-pt/sans.nix
+++ b/pkgs/data/fonts/paratype-pt/sans.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchzip }:
+{ lib, fetchzip }:
 
 fetchzip {
   name = "paratype-pt-sans";
 
-  url = [
+  urls = [
     "https://company.paratype.com/system/attachments/629/original/ptsans.zip"
     "http://rus.paratype.ru/system/attachments/629/original/ptsans.zip"
   ];
@@ -16,7 +16,7 @@ fetchzip {
 
   sha256 = "01fkd417gv98jf3a6zyfi9w2dkqsbddy1vacga2672yf0kh1z1r0";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://www.paratype.ru/public/";
     description = "An open Paratype font";
 
diff --git a/pkgs/data/fonts/paratype-pt/serif.nix b/pkgs/data/fonts/paratype-pt/serif.nix
index a6f21e425f8..a4142f757fc 100644
--- a/pkgs/data/fonts/paratype-pt/serif.nix
+++ b/pkgs/data/fonts/paratype-pt/serif.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchzip }:
+{ lib, fetchzip }:
 
 fetchzip {
   name = "paratype-pt-serif";
 
-  url = [
+  urls = [
     "https://company.paratype.com/system/attachments/634/original/ptserif.zip"
     "http://rus.paratype.ru/system/attachments/634/original/ptserif.zip"
   ];
@@ -16,7 +16,7 @@ fetchzip {
 
   sha256 = "1iw5qi4ag3yp1lwmi91lb18gr768bqwl46xskaqnkhr9i9qp0v6d";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://www.paratype.ru/public/";
     description = "An open Paratype font";
 
diff --git a/pkgs/data/fonts/poly/default.nix b/pkgs/data/fonts/poly/default.nix
index 05b411a5ba3..50dfb502035 100644
--- a/pkgs/data/fonts/poly/default.nix
+++ b/pkgs/data/fonts/poly/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, unzip }:
+{ lib, stdenv, fetchurl, unzip }:
 
 stdenv.mkDerivation rec {
   name = "poly";
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
       and languages that use the Latin script and its variants.
     '';
     homepage = "http://www.fontsquirrel.com/fonts/poly";
-    license = stdenv.lib.licenses.ofl;
-    maintainers = with stdenv.lib.maintainers; [ relrod ];
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [ relrod ];
   };
 }
diff --git a/pkgs/data/fonts/powerline-symbols/default.nix b/pkgs/data/fonts/powerline-symbols/default.nix
new file mode 100644
index 00000000000..69e3bb59df6
--- /dev/null
+++ b/pkgs/data/fonts/powerline-symbols/default.nix
@@ -0,0 +1,18 @@
+{ lib, runCommandNoCC, powerline }:
+
+let
+  inherit (powerline) version;
+in runCommandNoCC "powerline-symbols-${version}" {
+  meta = {
+    inherit (powerline.meta) license;
+    priority = (powerline.meta.priority or 0) + 1;
+    maintainers = with lib.maintainers; [ midchildan ];
+  };
+} ''
+  install -Dm644 \
+    ${powerline.src}/font/PowerlineSymbols.otf \
+    $out/share/fonts/OTF/PowerlineSymbols.otf
+  install -Dm644 \
+    ${powerline.src}/font/10-powerline-symbols.conf \
+    $out/etc/fonts/conf.d/10-powerline-symbols.conf
+''
diff --git a/pkgs/data/fonts/profont/default.nix b/pkgs/data/fonts/profont/default.nix
index 6297a8fbb20..3570bf7bf91 100644
--- a/pkgs/data/fonts/profont/default.nix
+++ b/pkgs/data/fonts/profont/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip, mkfontscale }:
+{ lib, stdenv, fetchzip, mkfontscale }:
 
 stdenv.mkDerivation {
   pname = "profont";
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
     mkfontdir "$out/share/fonts/misc"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://tobiasjung.name/profont/";
     description = "A monospaced font created to be a most readable font for programming";
     maintainers = with maintainers; [ myrl ];
diff --git a/pkgs/data/fonts/proggyfonts/default.nix b/pkgs/data/fonts/proggyfonts/default.nix
index 7ddfd69aeeb..81ecb735409 100644
--- a/pkgs/data/fonts/proggyfonts/default.nix
+++ b/pkgs/data/fonts/proggyfonts/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, mkfontscale }:
+{ lib, stdenv, fetchurl, mkfontscale }:
 
 stdenv.mkDerivation {
   name = "proggyfonts-0.1";
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
   outputHashMode = "recursive";
   outputHash = "1x196rp3wqjd7m57bgp5kfy5jmj97qncxi1vwibs925ji7dqzfgf";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://upperbounds.net";
     description = "A set of fixed-width screen fonts that are designed for code listings";
     license = licenses.mit;
diff --git a/pkgs/data/fonts/recursive/default.nix b/pkgs/data/fonts/recursive/default.nix
index 7f3b9562e89..320e0cd7266 100644
--- a/pkgs/data/fonts/recursive/default.nix
+++ b/pkgs/data/fonts/recursive/default.nix
@@ -1,21 +1,20 @@
 { lib, fetchzip }:
 
 let
-  version = "1.057";
+  version = "1.078";
 in
 fetchzip {
   name = "recursive-${version}";
 
-  url = "https://github.com/arrowtype/recursive/releases/download/${version}/Recursive-${version}.zip";
+  url = "https://github.com/arrowtype/recursive/releases/download/v${version}/ArrowType-Recursive-${version}.zip";
 
   postFetch = ''
     mkdir -p $out/share/fonts/
     unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
     unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
-    unzip -j $downloadedFile \*.woff2 -d $out/share/fonts/woff2
   '';
 
-  sha256 = "0qsqldnhgl93h1izminjajjymvyxsw91ngdbxlhgbqvadg77325y";
+  sha256 = "0vmdcqz6rlshfk653xpanyxps96p85b1spqahl3yiy29mq4xfdn3";
 
   meta = with lib; {
     homepage = "https://recursive.design/";
diff --git a/pkgs/data/fonts/ricty/default.nix b/pkgs/data/fonts/ricty/default.nix
index 13cb056dc45..6bdd331c72c 100644
--- a/pkgs/data/fonts/ricty/default.nix
+++ b/pkgs/data/fonts/ricty/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, google-fonts, migu, fontforge, which }:
+{ lib, stdenv, fetchurl, google-fonts, migu, fontforge, which }:
 
 stdenv.mkDerivation rec {
   pname = "ricty";
   version = "4.1.1";
 
   src = fetchurl {
-      url = "http://www.yusa.lab.uec.ac.jp/~yusa/ricty/ricty_generator-${version}.sh";
+      url = "https://rictyfonts.github.io/files/ricty_generator-${version}.sh";
       sha256 = "03fngb8f5hl7ifigdm5yljhs4z2x80cq8y8kna86d07ghknhzgw6";
   };
 
@@ -27,9 +27,9 @@ stdenv.mkDerivation rec {
     install -m644 --target $out/share/fonts/truetype/ricty -D Ricty-*.ttf
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A high-quality Japanese font based on Inconsolata and Migu 1M";
-    homepage = "http://www.yusa.lab.uec.ac.jp/~yusa/ricty.html";
+    homepage = "https://rictyfonts.github.io";
     license = licenses.unfree;
     maintainers = [ maintainers.mikoim ];
   };
diff --git a/pkgs/data/fonts/rictydiminished-with-firacode/default.nix b/pkgs/data/fonts/rictydiminished-with-firacode/default.nix
index 0f90c13d11e..ceed8307004 100644
--- a/pkgs/data/fonts/rictydiminished-with-firacode/default.nix
+++ b/pkgs/data/fonts/rictydiminished-with-firacode/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, fontforge, python3 }:
+{ lib, stdenv, fetchgit, fontforge, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "rictydiminished-with-firacode";
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     ]))
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/hakatashi/RictyDiminished-with-FiraCode";
     description = "The best Japanese programming font meets the awesome ligatures of Firacode";
     license = licenses.ofl;
diff --git a/pkgs/data/fonts/roboto-mono/default.nix b/pkgs/data/fonts/roboto-mono/default.nix
index 9bb65526801..fd3372123c6 100644
--- a/pkgs/data/fonts/roboto-mono/default.nix
+++ b/pkgs/data/fonts/roboto-mono/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ lib, stdenv, fetchurl }:
 
 let
   # Latest commit touching the robotomono tree
@@ -67,7 +67,7 @@ stdenv.mkDerivation {
   outputHashMode = "recursive";
   outputHash = "0fkx2z97k29n1392bf76iwdyz44yp86hmqah7ai6bikzlia38qa0";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://www.google.com/fonts/specimen/Roboto+Mono";
     description = "Google Roboto Mono fonts";
     longDescription = ''
diff --git a/pkgs/data/fonts/roboto-slab/default.nix b/pkgs/data/fonts/roboto-slab/default.nix
index 1fec03b46fe..dc37c825856 100644
--- a/pkgs/data/fonts/roboto-slab/default.nix
+++ b/pkgs/data/fonts/roboto-slab/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation {
   pname = "roboto-slab";
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   outputHashMode = "recursive";
   outputHash = "0g663npi5lkvwcqafd4cjrm90ph0nv1lig7d19xzfymnj47qpj8x";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://www.google.com/fonts/specimen/Roboto+Slab";
     description = "Roboto Slab Typeface by Google";
     longDescription = ''
diff --git a/pkgs/data/fonts/sarasa-gothic/default.nix b/pkgs/data/fonts/sarasa-gothic/default.nix
index 9fce696b6e8..5bc691e7244 100644
--- a/pkgs/data/fonts/sarasa-gothic/default.nix
+++ b/pkgs/data/fonts/sarasa-gothic/default.nix
@@ -1,12 +1,12 @@
 { lib, fetchurl, libarchive }:
 
 let
-  version = "0.12.11";
+  version = "0.32.9";
 in fetchurl {
   name = "sarasa-gothic-${version}";
 
   url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${version}/sarasa-gothic-ttc-${version}.7z";
-  sha256 = "0vcp8583by7pfqinq8p2jx2bn4dqq816x4bxgv05k0kb9ziwj7aj";
+  sha256 = "0mwaj9dq26f36ddywjm7m0is1jml2kpmqm46b16c8avvr97c65z5";
 
   recursiveHash = true;
   downloadToTemp = true;
diff --git a/pkgs/data/fonts/scheherazade/default.nix b/pkgs/data/fonts/scheherazade/default.nix
index e7651f22d6a..848daa899ed 100644
--- a/pkgs/data/fonts/scheherazade/default.nix
+++ b/pkgs/data/fonts/scheherazade/default.nix
@@ -1,11 +1,16 @@
-{ lib, fetchzip }:
+{ lib, fetchzip, version ? "3.100" }:
 
 let
-  version = "2.100";
+  new = lib.versionAtLeast version "3.000";
+  sha256 = {
+    "2.100" = "1g5f5f9gzamkq3kqyf7vbzvl4rdj3wmjf6chdrbxksrm3rnb926z";
+    "3.100" = "0svnc7l3z3vvm27zx6msyx56n2fpv6ywb5lm75bym48slkccypn7";
+  }."${version}";
+
 in fetchzip rec {
-  name = "scheherazade-${version}";
+  name = "scheherazade${lib.optionalString new "-new"}-${version}";
 
-  url = "http://software.sil.org/downloads/r/scheherazade/Scheherazade-${version}.zip";
+  url = "http://software.sil.org/downloads/r/scheherazade/Scheherazade${lib.optionalString new "New"}-${version}.zip";
 
   postFetch = ''
     mkdir -p $out/share/{doc,fonts}
@@ -15,16 +20,17 @@ in fetchzip rec {
     unzip -j $downloadedFile \*/documentation/\*           -d $out/share/doc/${name}/documentation
   '';
 
-  sha256 = "1g5f5f9gzamkq3kqyf7vbzvl4rdj3wmjf6chdrbxksrm3rnb926z";
+  inherit sha256;
 
   meta = with lib; {
     homepage = "https://software.sil.org/scheherazade/";
     description = "A font designed in a similar style to traditional Naskh typefaces";
     longDescription = ''
-      Scheherazade, named after the heroine of the classic Arabian Nights tale,
-      is designed in a similar style to traditional typefaces such as Monotype
-      Naskh, extended to cover the Unicode Arabic repertoire through Unicode
-      8.0.
+
+      Scheherazade${lib.optionalString new " New"}, named after the heroine of
+      the classic Arabian Nights tale, is designed in a similar style to
+      traditional typefaces such as Monotype Naskh, extended to cover the
+      Unicode Arabic repertoire through Unicode ${if new then "13.0" else "8.0"}.
 
       Scheherazade provides a “simplified” rendering of Arabic script, using
       basic connecting glyphs but not including a wide variety of additional
diff --git a/pkgs/data/fonts/scientifica/default.nix b/pkgs/data/fonts/scientifica/default.nix
new file mode 100644
index 00000000000..d8eda3e9232
--- /dev/null
+++ b/pkgs/data/fonts/scientifica/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchurl }:
+
+let
+  version = "2.2";
+in fetchurl rec {
+  name = "scientifica-${version}";
+
+  url = "https://github.com/NerdyPepper/scientifica/releases/download/v${version}/scientifica.tar";
+
+  downloadToTemp = true;
+
+  recursiveHash = true;
+
+  sha256 = "sha256-mkZnuW+CB20t6MEpEeQR1CWkIUtqgVwrKN4sezQRaB4=";
+
+  postFetch = ''
+    tar xf $downloadedFile
+    mkdir -p $out/share/fonts/truetype
+    mkdir -p $out/share/fonts/misc
+    install scientifica/ttf/*.ttf $out/share/fonts/truetype
+    install scientifica/otb/*.otb $out/share/fonts/misc
+    install scientifica/bdf/*.bdf $out/share/fonts/misc
+  '';
+
+  meta = with lib; {
+    description = "Tall and condensed bitmap font for geeks";
+    homepage = "https://github.com/NerdyPepper/scientifica";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
diff --git a/pkgs/data/fonts/siji/default.nix b/pkgs/data/fonts/siji/default.nix
index fb13f82263d..adc6a79f10f 100644
--- a/pkgs/data/fonts/siji/default.nix
+++ b/pkgs/data/fonts/siji/default.nix
@@ -1,11 +1,13 @@
-{ stdenv, fetchzip, libfaketime, fonttosfnt, mkfontscale }:
+{ lib, stdenv, fetchFromGitHub, libfaketime, fonttosfnt, mkfontscale }:
 
 stdenv.mkDerivation rec {
   name = "siji-${version}";
   version = "2016-05-13";
 
-  src = fetchzip {
-    url = "https://github.com/stark/siji/archive/95369afac3e661cb6d3329ade5219992c88688c1.zip";
+  src = fetchFromGitHub {
+    owner = "stark";
+    repo = "siji";
+    rev = "3cbb7fe938c33aaadbb657803ea5946e5157d6e2";
     sha256 = "1408g4nxwdd682vjqpmgv0cp0bfnzzzwls62cjs9zrds16xa9dpf";
   };
 
@@ -32,7 +34,7 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "bdf" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/stark/siji";
     description = "An iconic bitmap font based on Stlarch with additional glyphs";
     license = licenses.gpl2;
diff --git a/pkgs/data/fonts/spleen/default.nix b/pkgs/data/fonts/spleen/default.nix
index 726f60938bb..162197006ba 100644
--- a/pkgs/data/fonts/spleen/default.nix
+++ b/pkgs/data/fonts/spleen/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "spleen";
-  version = "1.8.2";
+  version = "1.9.1";
 in fetchurl {
   name = "${pname}-${version}";
   url = "https://github.com/fcambus/spleen/releases/download/${version}/spleen-${version}.tar.gz";
@@ -19,7 +19,7 @@ in fetchurl {
     # create fonts.dir so NixOS xorg module adds to fp
     ${mkfontscale}/bin/mkfontdir "$d"
   '';
-  sha256 = "0195d8ssmd8hc0q941z6zwnccffxajv4vylypsndxf28f3ikawby";
+  sha256 = "sha256-6Imsa0ku8On63di0DOo0QxBa0t+tbtPRxM531EIiG94=";
 
   meta = with lib; {
     description = "Monospaced bitmap fonts";
diff --git a/pkgs/data/fonts/stix-two/default.nix b/pkgs/data/fonts/stix-two/default.nix
index e6e4009020a..c05c1273a48 100644
--- a/pkgs/data/fonts/stix-two/default.nix
+++ b/pkgs/data/fonts/stix-two/default.nix
@@ -1,25 +1,22 @@
-{ stdenv, fetchFromGitHub }:
-
+{ lib, fetchzip }:
 let
-  version = "2.0.2";
-in fetchFromGitHub {
+  version = "2.13";
+in
+fetchzip {
   name = "stix-two-${version}";
 
-  owner = "stipub";
-  repo = "stixfonts";
-  rev = "v${version}";
+  url = "https://github.com/stipub/stixfonts/raw/v${version}/zipfiles/STIX${builtins.replaceStrings [ "." ] [ "_" ] version}-all.zip";
+
+  sha256 = "sha256-cBtZe/oq4bQCscSAhJ4YuTSghDleD9O/+3MHOJyI50o=";
 
   postFetch = ''
-    tar xf $downloadedFile --strip=1
-    install -m444 -Dt $out/share/fonts/opentype/ OTF/*.otf
-    install -m444 -Dt $out/share/fonts/woff/     WOFF/*.woff
-    install -m444 -Dt $out/share/fonts/woff2/    WOFF2/*.woff2
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
   '';
 
-  sha256 = "1ah8s0cb67yv4ll8zfs01mdh9m5i2lbkrfbmkhi1xdid6pxsk32x";
-
-  meta = with stdenv.lib; {
-    homepage = "http://www.stixfonts.org/";
+  meta = with lib; {
+    homepage = "https://www.stixfonts.org/";
     description = "Fonts for Scientific and Technical Information eXchange";
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/sudo/default.nix b/pkgs/data/fonts/sudo/default.nix
index 48ca0fea1e4..bc8396a7a21 100644
--- a/pkgs/data/fonts/sudo/default.nix
+++ b/pkgs/data/fonts/sudo/default.nix
@@ -1,24 +1,22 @@
 { lib, fetchzip }:
 
 let
-  version = "0.50";
+  version = "0.55.2";
 in fetchzip {
   name = "sudo-font-${version}";
-  url = "https://github.com/jenskutilek/sudo-font/raw/v${version}/dist/sudo.zip";
-  sha256 = "1mk81r9p7ks6av3rj06c6n9vx2qv2hwx6zfbc2mk1filxjirk1ll";
+  url = "https://github.com/jenskutilek/sudo-font/releases/download/v${version}/sudo.zip";
+  sha256 = "0r7w58r80yblyzlh6qb57pmafxb3frg1iny644bfr3p64j4cbzzb";
 
   postFetch = ''
     mkdir -p $out/share/fonts/
     unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype/
-    unzip -j $downloadedFile \*.woff -d $out/share/fonts/woff/
-    unzip -j $downloadedFile \*.woff2 -d $out/share/fonts/woff2/
   '';
   meta = with lib; {
     description = "Font for programmers and command line users";
     homepage = "https://www.kutilek.de/sudo-font/";
+    changelog = "https://github.com/jenskutilek/sudo-font/raw/v${version}/sudo/FONTLOG.txt";
     license = licenses.ofl;
     maintainers = with maintainers; [ dtzWill ];
     platforms = platforms.all;
   };
 }
-
diff --git a/pkgs/data/fonts/tamsyn/default.nix b/pkgs/data/fonts/tamsyn/default.nix
index 4d1e58a6bb3..6f0886e1d97 100644
--- a/pkgs/data/fonts/tamsyn/default.nix
+++ b/pkgs/data/fonts/tamsyn/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fontforge, mkfontscale }:
+{ lib, stdenv, fetchurl, fontforge, mkfontscale }:
 
 let
   version = "1.11";
@@ -34,7 +34,7 @@ in stdenv.mkDerivation {
     mkfontdir "$out/share/fonts/misc"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A monospace bitmap font aimed at programmers";
     longDescription = ''Tamsyn is a monospace bitmap font, primarily aimed at
     programmers. It was derived from Gilles Boccon-Gibod's MonteCarlo. Tamsyn
diff --git a/pkgs/data/fonts/tamzen/default.nix b/pkgs/data/fonts/tamzen/default.nix
index 026ec63d670..80212a14aeb 100644
--- a/pkgs/data/fonts/tamzen/default.nix
+++ b/pkgs/data/fonts/tamzen/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, mkfontscale, stdenv }:
+{ fetchFromGitHub, mkfontscale, lib, stdenv }:
 
 stdenv.mkDerivation rec {
   pname = "tamzen-font";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     mkfontdir "$out/share/fonts/misc"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Bitmapped programming font based on Tamsyn";
     longDescription = ''
     Tamzen is a monospace bitmap font. It is programatically forked
diff --git a/pkgs/data/fonts/tempora-lgc/default.nix b/pkgs/data/fonts/tempora-lgc/default.nix
index d20acad663c..ecafc9572bd 100644
--- a/pkgs/data/fonts/tempora-lgc/default.nix
+++ b/pkgs/data/fonts/tempora-lgc/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl}:
+{lib, stdenv, fetchurl}:
 let
   srcs = [
     (fetchurl {
@@ -25,7 +25,6 @@ stdenv.mkDerivation {
   name = "tempora-lgc";
   inherit nativeBuildInputs;
   inherit srcs;
-  phases = "installPhase";
   installPhase = ''
     mkdir -p "$out/share/fonts/opentype/public"
     cp ${toString srcs} "$out/share/fonts/opentype/public"
@@ -35,8 +34,8 @@ stdenv.mkDerivation {
   outputHash = "1kwj31cjgdirqvh6bxs4fnvvr1ppaz6z8w40kvhkivgs69jglmzw";
 
   meta = {
-    description = ''Tempora font'';
-    license = stdenv.lib.licenses.gpl2 ;
-    maintainers = [stdenv.lib.maintainers.raskin];
+    description = "Tempora font";
+    license = lib.licenses.gpl2 ;
+    maintainers = [lib.maintainers.raskin];
   };
 }
diff --git a/pkgs/data/fonts/terminus-font-ttf/default.nix b/pkgs/data/fonts/terminus-font-ttf/default.nix
index f9d25a0128e..1a65798891f 100644
--- a/pkgs/data/fonts/terminus-font-ttf/default.nix
+++ b/pkgs/data/fonts/terminus-font-ttf/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "4.47.0";
+  version = "4.49.1";
 in fetchzip {
   name = "terminus-font-ttf-${version}";
 
@@ -18,7 +18,7 @@ in fetchzip {
     install -Dm 644 COPYING "$out/share/doc/terminus-font-ttf/COPYING"
   '';
 
-  sha256 = "1mnx3vlnl0r15yzsa4zb9qqab4hpi603gdwhlbw960wg03i3xn8z";
+  sha256 = "sha256-UaTnCamIRN/3xZsYt5nYzvykXQ3ri94a047sWOJ2RfU=";
 
   meta = with lib; {
     description = "A clean fixed width TTF font";
diff --git a/pkgs/data/fonts/terminus-font/default.nix b/pkgs/data/fonts/terminus-font/default.nix
index bbde1dd252c..fca357706a6 100644
--- a/pkgs/data/fonts/terminus-font/default.nix
+++ b/pkgs/data/fonts/terminus-font/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, python3
+{ lib, stdenv, fetchurl, python3
 , libfaketime, fonttosfnt
 , bdftopcf, mkfontscale
 }:
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
 
   installTargets = [ "install" "fontdir" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A clean fixed width font";
     longDescription = ''
       Terminus Font is designed for long (8 and more hours per day) work
diff --git a/pkgs/data/fonts/termsyn/default.nix b/pkgs/data/fonts/termsyn/default.nix
new file mode 100644
index 00000000000..50450a04e2d
--- /dev/null
+++ b/pkgs/data/fonts/termsyn/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchurl, mkfontscale }:
+
+stdenv.mkDerivation rec {
+  pname = "termsyn";
+  version = "1.8.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/termsyn/termsyn-${version}.tar.gz";
+    sha256 = "15vsmc3nmzl0pkgdpr2993da7p38fiw2rvcg01pwldzmpqrmkpn6";
+  };
+
+  nativeBuildInputs = [ mkfontscale ];
+
+  installPhase = ''
+    install -m 644 -D *.pcf -t "$out/share/fonts"
+    install -m 644 -D *.psfu -t "$out/share/kbd/consolefonts"
+    mkfontdir "$out/share/fonts"
+  '';
+
+  meta = with lib; {
+    description = "Monospaced font based on terminus and tamsyn";
+    homepage = "https://sourceforge.net/projects/termsyn/";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ sophrosyne ];
+  };
+}
diff --git a/pkgs/data/fonts/tewi/default.nix b/pkgs/data/fonts/tewi/default.nix
index 7821cc66041..1cf31b5affe 100644
--- a/pkgs/data/fonts/tewi/default.nix
+++ b/pkgs/data/fonts/tewi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, python3
+{ lib, stdenv, fetchFromGitHub, python3
 , bdftopcf, mkfontscale
 , libfaketime, fonttosfnt
 }:
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     mkfontdir "$fontDir"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A nice bitmap font, readable even at small sizes";
     longDescription = ''
       Tewi is a bitmap font, readable even at very small font sizes. This is
diff --git a/pkgs/data/fonts/tex-gyre-math/default.nix b/pkgs/data/fonts/tex-gyre-math/default.nix
index cd3c3ab00b1..95038d3f9cf 100644
--- a/pkgs/data/fonts/tex-gyre-math/default.nix
+++ b/pkgs/data/fonts/tex-gyre-math/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip }:
+{ lib, stdenv, fetchzip }:
 
 let
   variants = {
@@ -48,7 +48,7 @@ let
       outputHashMode = "recursive";
       inherit outputHash;
 
-      meta = with stdenv.lib; {
+      meta = with lib; {
         longDescription = ''
           TeX Gyre ${displayName} Math is a math companion for the TeX Gyre
           ${displayName} family of fonts (see
@@ -64,4 +64,4 @@ let
       };
     };
 in
-  stdenv.lib.mapAttrs mkVariant variants
+  lib.mapAttrs mkVariant variants
diff --git a/pkgs/data/fonts/tex-gyre/default.nix b/pkgs/data/fonts/tex-gyre/default.nix
index 197d14c3f03..6ce5bd20786 100644
--- a/pkgs/data/fonts/tex-gyre/default.nix
+++ b/pkgs/data/fonts/tex-gyre/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip }:
+{ lib, stdenv, fetchzip }:
 
 let
   mkVariant = variant: { version, abbreviation, sha256, outputHash }: stdenv.mkDerivation {
@@ -22,7 +22,7 @@ let
     outputHashMode = "recursive";
     inherit outputHash;
 
-    meta = with stdenv.lib; {
+    meta = with lib; {
       homepage = "http://www.gust.org.pl/projects/e-foundry/tex-gyre";
       # "The TeX Gyre fonts are licensed under the GUST Font License (GFL),
       # which is a free license, legally equivalent to the LaTeX Project Public
@@ -32,7 +32,7 @@ let
       platforms = platforms.all;
     };
   };
-in stdenv.lib.mapAttrs mkVariant {
+in lib.mapAttrs mkVariant {
   adventor = {
     version = "2_501";
     sha256 = "0qjg3x0adfppyx3x33cm07ww9i9sl88xaq07m7wfip8rmyp567fn";
diff --git a/pkgs/data/fonts/times-newer-roman/default.nix b/pkgs/data/fonts/times-newer-roman/default.nix
new file mode 100644
index 00000000000..6122883c615
--- /dev/null
+++ b/pkgs/data/fonts/times-newer-roman/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip }:
+
+let
+  version = "unstable-2018-09-11";
+in
+fetchzip {
+  name = "times-newer-roman-${version}";
+
+  url = "https://web.archive.org/web/20210609022835/https://timesnewerroman.com/assets/TimesNewerRoman.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+  '';
+
+  hash = "sha256-Hx59RYLLwfimEQjEEes0lCpg6iql46DFwhQ7kVGiEzc=";
+
+  meta = with lib; {
+    description = "A font that looks just like Times New Roman, except each character is 5-10% wider";
+    homepage = "https://timesnewerroman.com/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ samuelgrf ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/data/fonts/tlwg/default.nix b/pkgs/data/fonts/tlwg/default.nix
index 2e3a0a95c05..9c03bbb162f 100644
--- a/pkgs/data/fonts/tlwg/default.nix
+++ b/pkgs/data/fonts/tlwg/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, fontforge }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, fontforge }:
 
 stdenv.mkDerivation rec {
   pname = "tlwg";
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   preAutoreconf = "echo ${version} > VERSION";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A collection of Thai scalable fonts available under free licenses";
     homepage = "https://linux.thai.net/projects/fonts-tlwg";
     license = with licenses; [ gpl2 publicDomain lppl13c free ];
diff --git a/pkgs/data/fonts/ttf-bitstream-vera/default.nix b/pkgs/data/fonts/ttf-bitstream-vera/default.nix
index f485f43b60c..95e4ce2a52a 100644
--- a/pkgs/data/fonts/ttf-bitstream-vera/default.nix
+++ b/pkgs/data/fonts/ttf-bitstream-vera/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip }:
+{ lib, fetchzip }:
 let
   pname = "ttf-bitstream-vera";
   version = "1.10";
@@ -6,7 +6,7 @@ in
 fetchzip rec {
   name = "${pname}-${version}";
 
-  url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.bz2";
+  url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.bz2";
 
   postFetch = ''
     tar -xjf $downloadedFile --strip-components=1
diff --git a/pkgs/data/fonts/ttf-tw-moe/default.nix b/pkgs/data/fonts/ttf-tw-moe/default.nix
new file mode 100644
index 00000000000..bf52d07c52e
--- /dev/null
+++ b/pkgs/data/fonts/ttf-tw-moe/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchzip }:
+let
+  version = "2020-11-14";
+in
+fetchzip {
+  name = "ttf-tw-moe";
+
+  url = "https://github.com/Jiehong/TW-fonts/archive/${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile TW-fonts-${version}/\*.ttf -d $out/share/fonts/truetype
+  '';
+
+  sha256 = "1jd3gjjfa4vadp6d499n0irz5b22z611kd7q5qgqf6s2fwbxfhiz";
+
+  meta = with lib; {
+    homepage = "http://www.moe.gov.tw/";
+    description = "Set of KAI and SONG fonts from the Ministry of Education of Taiwan";
+    version = version;
+    longDescription = ''
+      Installs 2 TTF fonts: MOESongUN and TW-MOE-Std-Kai.
+      Both are provided by the Ministry of Education of Taiwan; each character's shape
+      closely follows the official recommendation, and can be used as for teaching purposes.
+    '';
+    license = licenses.cc-by-nd-30;
+    maintainers = [ maintainers.jiehong ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/data/fonts/twemoji-color-font/default.nix b/pkgs/data/fonts/twemoji-color-font/default.nix
index ed04aa78ae1..ae1d3f9927f 100644
--- a/pkgs/data/fonts/twemoji-color-font/default.nix
+++ b/pkgs/data/fonts/twemoji-color-font/default.nix
@@ -1,27 +1,27 @@
-{ stdenv, fetchFromGitHub, inkscape_0, imagemagick, potrace, svgo, scfbuild }:
+{ lib
+, stdenv
+, fetchurl
+}:
 
 stdenv.mkDerivation rec {
   pname = "twemoji-color-font";
-  version = "12.0.1";
-  src = fetchFromGitHub {
-    owner = "eosrei";
-    repo = "twemoji-color-font";
-    rev = "v${version}";
-    sha256 = "00pbgqpkq21wl8fs0q1xp49xb10m48b9sz8cdc58flkd2vqfssw2";
+  version = "13.1.0";
+
+  # We fetch the prebuilt font because building it takes 1.5 hours on hydra.
+  # Relevant issue: https://github.com/NixOS/nixpkgs/issues/97871
+  src = fetchurl {
+    url = "https://github.com/eosrei/twemoji-color-font/releases/download/v${version}/TwitterColorEmoji-SVGinOT-Linux-${version}.tar.gz";
+    sha256 = "sha256-V8DWUUAK+HLDPcq3izPs174PfUnaSeLByDpZwhUIX5Q=";
   };
 
-  nativeBuildInputs = [ inkscape_0 imagemagick potrace svgo scfbuild ];
-  # silence inkscape errors about non-writable home
-  preBuild = "export HOME=\"$NIX_BUILD_ROOT\"";
-  makeFlags = [ "SCFBUILD=${scfbuild}/bin/scfbuild" ];
-  enableParallelBuilding = true;
+  dontBuild = true;
 
   installPhase = ''
-    install -Dm755 build/TwitterColorEmoji-SVGinOT.ttf $out/share/fonts/truetype/TwitterColorEmoji-SVGinOT.ttf
-    install -Dm644 linux/fontconfig/56-twemoji-color.conf $out/etc/fonts/conf.d/56-twemoji-color.conf
+    install -Dm755 TwitterColorEmoji-SVGinOT.ttf $out/share/fonts/truetype/TwitterColorEmoji-SVGinOT.ttf
+    install -Dm644 fontconfig/46-twemoji-color.conf $out/etc/fonts/conf.d/46-twemoji-color.conf
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Color emoji SVGinOT font using Twitter Unicode 10 emoji with diversity and country flags";
     longDescription = ''
       A color and B&W emoji SVGinOT font built from the Twitter Emoji for
diff --git a/pkgs/data/fonts/twitter-color-emoji/default.nix b/pkgs/data/fonts/twitter-color-emoji/default.nix
index ac3930853cf..6cceee558a9 100644
--- a/pkgs/data/fonts/twitter-color-emoji/default.nix
+++ b/pkgs/data/fonts/twitter-color-emoji/default.nix
@@ -1,11 +1,10 @@
 # Based upon https://src.fedoraproject.org/rpms/twitter-twemoji-fonts
 # The main difference is that we use “Twitter Color Emoji” name (which is recognized by upstream fontconfig)
 
-{ stdenv
+{ lib, stdenv
 , fetchFromGitHub
-, fetchpatch
 , cairo
-, graphicsmagick
+, imagemagick
 , pkg-config
 , pngquant
 , python3
@@ -15,16 +14,19 @@
 }:
 
 let
-  version = "12.1.5";
+  version = "13.0.2";
 
   twemojiSrc = fetchFromGitHub {
     name = "twemoji";
     owner = "twitter";
     repo = "twemoji";
     rev = "v${version}";
-    sha256 = "0acinlv2l3s1jga2i9wh16mvgkxw4ipzgvjx8c80zd104lpdpgd9";
+    sha256 = "069pyq09jfzwp3xla8vmhbyyam32x2iyp0s29xcxlkj22p99bg6d";
   };
 
+  pythonEnv =
+    python3.withPackages (p: [ p.fonttools p.nototools ]);
+
 in
 stdenv.mkDerivation rec {
   pname = "twitter-color-emoji";
@@ -44,37 +46,28 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     cairo
-    graphicsmagick
+    imagemagick
     pkg-config
     pngquant
-    python3
-    python3.pkgs.nototools
+    pythonEnv
     which
     zopfli
   ];
 
-  patches = [
-    # ImageMagick -> GraphicsMagick
-    (fetchpatch {
-      url = "https://src.fedoraproject.org/rpms/twitter-twemoji-fonts/raw/07778605d50696f6aa929020e82611a01d254c90/f/noto-emoji-use-gm.patch";
-      sha256 = "06vg16z79s5adyjy8r3mr8fd391b1hi4xkqvbzkmnjwaai7p08lk";
-    })
-  ];
-
   postPatch = let
-    templateSubstitutions = stdenv.lib.concatStringsSep "; " [
-      ''s#Noto Color Emoji#Twitter Color Emoji#''
-      ''s#NotoColorEmoji#TwitterColorEmoji#''
+    templateSubstitutions = lib.concatStringsSep "; " [
+      "s#Noto Color Emoji#Twitter Color Emoji#"
+      "s#NotoColorEmoji#TwitterColorEmoji#"
       ''s#Copyright .* Google Inc\.#Twitter, Inc and other contributors.#''
-      ''s# Version .*# ${version}#''
-      ''s#.*is a trademark.*##''
+      "s# Version .*# ${version}#"
+      "s#.*is a trademark.*##"
       ''s#Google, Inc\.#Twitter, Inc and other contributors#''
-      ''s#http://www.google.com/get/noto/#https://twemoji.twitter.com/#''
-      ''s#.*is licensed under.*#      Creative Commons Attribution 4.0 International#''
-      ''s#http://scripts.sil.org/OFL#http://creativecommons.org/licenses/by/4.0/#''
+      "s#http://www.google.com/get/noto/#https://twemoji.twitter.com/#"
+      "s#.*is licensed under.*#      Creative Commons Attribution 4.0 International#"
+      "s#http://scripts.sil.org/OFL#http://creativecommons.org/licenses/by/4.0/#"
     ];
   in ''
-    patchShebangs ./flag_glyph_name.py
+    ${noto-fonts-emoji.postPatch}
 
     sed '${templateSubstitutions}' NotoColorEmoji.tmpl.ttx.tmpl > TwitterColorEmoji.tmpl.ttx.tmpl
     pushd ${twemojiSrc.name}/assets/72x72/
@@ -88,6 +81,8 @@ stdenv.mkDerivation rec {
     "EMOJI=TwitterColorEmoji"
     "EMOJI_SRC_DIR=${twemojiSrc.name}/assets/72x72"
     "BODY_DIMENSIONS=76x72"
+    # twemoji contains some codepoints noto doesn't like
+    "BYPASS_SEQUENCE_CHECK=True"
   ];
 
   enableParallelBuilding = true;
@@ -96,7 +91,7 @@ stdenv.mkDerivation rec {
     install -Dm644 TwitterColorEmoji.ttf $out/share/fonts/truetype/TwitterColorEmoji.ttf
   '';
 
-  meta = with stdenv.lib; {
+  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
diff --git a/pkgs/data/fonts/ucs-fonts/default.nix b/pkgs/data/fonts/ucs-fonts/default.nix
index 71c42c46b5d..7bb9930ccfc 100644
--- a/pkgs/data/fonts/ucs-fonts/default.nix
+++ b/pkgs/data/fonts/ucs-fonts/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, bdftopcf
+{ lib, stdenv, fetchurl, bdftopcf
 , libfaketime, fonttosfnt, mkfontscale
 }:
 
@@ -51,7 +51,7 @@ stdenv.mkDerivation {
 
   outputs = [ "out" "bdf" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html";
     description = "Unicode bitmap fonts";
     license = licenses.publicDomain;
diff --git a/pkgs/data/fonts/undefined-medium/default.nix b/pkgs/data/fonts/undefined-medium/default.nix
index 4c13a297c6f..5773aa94d5b 100644
--- a/pkgs/data/fonts/undefined-medium/default.nix
+++ b/pkgs/data/fonts/undefined-medium/default.nix
@@ -21,7 +21,6 @@ fetchzip rec {
       whatever else you can think of … it’s pretty undefined.
     '';
     license = licenses.ofl;
-    maintainers = [ maintainers.rycee ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/data/fonts/uni-vga/default.nix b/pkgs/data/fonts/uni-vga/default.nix
index 65db46ca2ca..56ba36b1eb4 100644
--- a/pkgs/data/fonts/uni-vga/default.nix
+++ b/pkgs/data/fonts/uni-vga/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchurl, perl, kbd, bdftopcf
+{ lib, stdenv, fetchurl, perl, kbd, bdftopcf
 , libfaketime, fonttosfnt, mkfontscale
 }:
 
-with stdenv.lib;
+with lib;
 
 stdenv.mkDerivation {
   name = "uni-vga";
diff --git a/pkgs/data/fonts/unifont/default.nix b/pkgs/data/fonts/unifont/default.nix
index 685b5c452f2..7fb7387179a 100644
--- a/pkgs/data/fonts/unifont/default.nix
+++ b/pkgs/data/fonts/unifont/default.nix
@@ -1,24 +1,24 @@
-{ stdenv, fetchurl, mkfontscale
+{ lib, stdenv, fetchurl, mkfontscale
 , libfaketime, fonttosfnt
 }:
 
 stdenv.mkDerivation rec {
   pname = "unifont";
-  version = "13.0.01";
+  version = "13.0.05";
 
   ttf = fetchurl {
     url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.ttf";
-    sha256 = "0y5bd7i5hp9ks6d3qq0bshywba7g90i3074wckpn9m8shh98ngcg";
+    sha256 = "0ff7zbyqi45q0171rl9ckj6lpfhcj8a9850d8j89m7wbwky32isf";
   };
 
   pcf = fetchurl {
     url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.pcf.gz";
-    sha256 = "05zgz00n514cijqh9qcvr4iz0bla4hd028cvi1jlh0ic6fkafix8";
+    sha256 = "16n666p6rs6l4r8grh67gy4ls33qfnbb5xk7cksywzjwdh42js0r";
   };
 
   nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];
 
-  phases = [ "buildPhase" "installPhase" ];
+  dontUnpack = true;
 
   buildPhase =
     ''
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
       mkfontscale
     '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Unicode font for Base Multilingual Plane";
     homepage = "http://unifoundry.com/unifont.html";
 
diff --git a/pkgs/data/fonts/unifont_upper/default.nix b/pkgs/data/fonts/unifont_upper/default.nix
index 153c6272ca2..04480aaeec7 100644
--- a/pkgs/data/fonts/unifont_upper/default.nix
+++ b/pkgs/data/fonts/unifont_upper/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "12.1.03";
+  version = "13.0.05";
 in fetchzip rec {
   name = "unifont_upper-${version}";
 
@@ -9,7 +9,7 @@ in fetchzip rec {
 
   postFetch = "install -Dm644 $downloadedFile $out/share/fonts/truetype/unifont_upper.ttf";
 
-  sha256 = "1w0bg276cyv6xs6clld8gv4w88rj9fw9rc8zs9ahc6y9hv677knj";
+  sha256 = "1cpi44fzsiq3yqg38763awgri1ma46421c3v8167bsxzsx7vzlkp";
 
   meta = with lib; {
     description = "Unicode font for glyphs above the Unicode Basic Multilingual Plane";
diff --git a/pkgs/data/fonts/unscii/default.nix b/pkgs/data/fonts/unscii/default.nix
index 724d015a7c3..5b4d2cb740f 100644
--- a/pkgs/data/fonts/unscii/default.nix
+++ b/pkgs/data/fonts/unscii/default.nix
@@ -1,7 +1,12 @@
-{ stdenv, fetchurl, perl, bdftopcf
+{ lib, stdenv, fetchurl, perl, bdftopcf
 , fontforge, SDL, SDL_image, mkfontscale
 }:
 
+let
+  perlenv = perl.withPackages (p: with p; [
+    TextCharWidth
+  ]);
+in
 stdenv.mkDerivation rec {
   pname = "unscii";
   version = "1.1";
@@ -12,11 +17,23 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs =
-    [ (perl.withPackages (p: [ p.TextCharWidth ]))
+    [ perlenv
       bdftopcf fontforge SDL SDL_image
       mkfontscale
     ];
 
+  # Fixes shebang -> wrapper problem on Darwin
+  postPatch = ''
+    for perltool in *.pl; do
+      substituteInPlace Makefile \
+        --replace "./$perltool" "${perlenv}/bin/perl ./$perltool"
+    done
+  '';
+
+  makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
+
   preConfigure = ''
     patchShebangs .
   '';
@@ -44,12 +61,11 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "extra" ];
 
   meta = {
-    inherit version;
-    description = ''Bitmapped character-art-friendly Unicode fonts'';
+    description = "Bitmapped character-art-friendly Unicode fonts";
     # Basically GPL2+ with font exception — because of the Unifont-augmented
     # version. The reduced version is public domain.
     license = "http://unifoundry.com/LICENSE.txt";
-    maintainers = [ stdenv.lib.maintainers.raskin ];
+    maintainers = [ lib.maintainers.raskin ];
     homepage = "http://pelulamu.net/unscii/";
   };
 }
diff --git a/pkgs/data/fonts/uw-ttyp0/default.nix b/pkgs/data/fonts/uw-ttyp0/default.nix
index b0e58faed60..a3c3f7b68aa 100644
--- a/pkgs/data/fonts/uw-ttyp0/default.nix
+++ b/pkgs/data/fonts/uw-ttyp0/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, perl
+{ lib, stdenv, fetchurl, perl
 , bdftopcf, bdf2psf, mkfontdir
 , fonttosfnt
 , targetsDat  ? null
@@ -80,7 +80,7 @@ stdenv.mkDerivation rec {
     runHook postConfigure
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Monospace bitmap screen fonts for X11";
     homepage = "https://people.mpi-inf.mpg.de/~uwe/misc/uw-ttyp0/";
     license = with licenses; [ free mit ];
diff --git a/pkgs/data/fonts/vazir-code-font/default.nix b/pkgs/data/fonts/vazir-code-font/default.nix
new file mode 100644
index 00000000000..6702fd1b022
--- /dev/null
+++ b/pkgs/data/fonts/vazir-code-font/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub }:
+
+let
+  pname = "vazir-code-font";
+  version = "1.1.2";
+in fetchFromGitHub {
+  name = "${pname}-${version}";
+
+  owner = "rastikerdar";
+  repo = "vazir-code-font";
+  rev = "v${version}";
+
+  postFetch = ''
+    tar xf $downloadedFile --strip=1
+    find . -name '*.ttf' -exec install -m444 -Dt $out/share/fonts/truetype {} \;
+  '';
+  sha256 = "0ivwpn9xm2zwhwgg9mghyiy5v66cn4786w9j6rkff5cmzshv279r";
+
+  meta = with lib; {
+    homepage = "https://github.com/rastikerdar/vazir-code-font";
+    description = "A Persian (farsi) Monospaced Font for coding";
+    license = licenses.publicDomain;
+    platforms = platforms.all;
+    maintainers = [ maintainers.dearrude ];
+  };
+}
diff --git a/pkgs/data/fonts/vegur/default.nix b/pkgs/data/fonts/vegur/default.nix
index af6c00e32c8..2f03dac3914 100644
--- a/pkgs/data/fonts/vegur/default.nix
+++ b/pkgs/data/fonts/vegur/default.nix
@@ -18,7 +18,7 @@ in fetchzip {
 
   meta = with lib; {
     homepage = "http://dotcolon.net/font/vegur/";
-    description = "A humanist sans serif font.";
+    description = "A humanist sans serif font";
     platforms = platforms.all;
     maintainers = [ maintainers.samueldr ];
     license = licenses.cc0;
diff --git a/pkgs/data/fonts/vista-fonts-chs/default.nix b/pkgs/data/fonts/vista-fonts-chs/default.nix
index 5902356703a..7c5d9dbba6e 100644
--- a/pkgs/data/fonts/vista-fonts-chs/default.nix
+++ b/pkgs/data/fonts/vista-fonts-chs/default.nix
@@ -1,15 +1,23 @@
-{ lib, fetchzip, buildPackages }:
+{ lib, stdenvNoCC, fetchurl, cabextract }:
 
-# Modified from vista-fonts
+stdenvNoCC.mkDerivation {
+  pname = "vista-fonts-chs";
+  version = "1";
 
-fetchzip {
-  name = "vista-fonts-chs-1";
+  src = fetchurl {
+    url = "http://web.archive.org/web/20161221192937if_/http://download.microsoft.com/download/d/6/e/d6e2ff26-5821-4f35-a18b-78c963b1535d/VistaFont_CHS.EXE";
+    # Alternative mirror:
+    # http://www.eeo.cn/download/font/VistaFont_CHS.EXE
+    sha256 = "1qwm30b8aq9piyqv07hv8b5bac9ms40rsdf8pwix5dyk8020i8xi";
+  };
 
-  url = "http://download.microsoft.com/download/d/6/e/d6e2ff26-5821-4f35-a18b-78c963b1535d/VistaFont_CHS.EXE";
+  nativeBuildInputs = [ cabextract ];
 
-  postFetch = ''
-    ${buildPackages.cabextract}/bin/cabextract --lowercase --filter '*.TTF' $downloadedFile
+  unpackPhase = ''
+    cabextract --lowercase --filter '*.TTF' $src
+  '';
 
+  installPhase = ''
     mkdir -p $out/share/fonts/truetype
     cp *.ttf $out/share/fonts/truetype
 
@@ -20,8 +28,6 @@ fetchzip {
       --subst-var-by fontname "Microsoft YaHei"
   '';
 
-  sha256 = "1zwrgck84k80gpg7493jdnxnv9ajxk5c7qndinnmqydnrw239zbw";
-
   meta = {
     description = "TrueType fonts from Microsoft Windows Vista For Simplified Chinese (Microsoft YaHei)";
     homepage = "https://www.microsoft.com/typography/fonts/family.aspx?FID=350";
diff --git a/pkgs/data/fonts/vista-fonts-chs/no-op.conf b/pkgs/data/fonts/vista-fonts-chs/no-op.conf
index 2d00b624488..20d1b49d158 100644
--- a/pkgs/data/fonts/vista-fonts-chs/no-op.conf
+++ b/pkgs/data/fonts/vista-fonts-chs/no-op.conf
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
 <fontconfig>
   <!-- This configuation is intentionally left empty in order to
        override any other font package that may wish to set up an
diff --git a/pkgs/data/fonts/vista-fonts/default.nix b/pkgs/data/fonts/vista-fonts/default.nix
index df7a6e5383b..ca2ae302b3e 100644
--- a/pkgs/data/fonts/vista-fonts/default.nix
+++ b/pkgs/data/fonts/vista-fonts/default.nix
@@ -1,14 +1,22 @@
-{stdenv, fetchzip, cabextract}:
+{ lib, stdenvNoCC, fetchurl, cabextract }:
 
-fetchzip {
-  name = "vista-fonts-1";
+stdenvNoCC.mkDerivation {
+  pname = "vista-fonts";
+  version = "1";
 
-  url = "https://web.archive.org/web/20171225132744/http://download.microsoft.com/download/E/6/7/E675FFFC-2A6D-4AB0-B3EB-27C9F8C8F696/PowerPointViewer.exe";
+  src = fetchurl {
+    url = "mirror://sourceforge/mscorefonts2/cabs/PowerPointViewer.exe";
+    sha256 = "07vhjdw8iip7gxk6wvp4myhvbn9619g10j9qvpbzz4ihima57ry4";
+  };
+
+  nativeBuildInputs = [ cabextract ];
 
-  postFetch = ''
-    ${cabextract}/bin/cabextract --lowercase --filter ppviewer.cab $downloadedFile
-    ${cabextract}/bin/cabextract --lowercase --filter '*.TTF' ppviewer.cab
+  unpackPhase = ''
+    cabextract --lowercase --filter ppviewer.cab $src
+    cabextract --lowercase --filter '*.TTF' ppviewer.cab
+  '';
 
+  installPhase = ''
     mkdir -p $out/share/fonts/truetype
     cp *.ttf $out/share/fonts/truetype
 
@@ -21,12 +29,10 @@ fetchzip {
     done
   '';
 
-  sha256 = "1l27zg5jraa16zm11d3qz1w7m6f1ih3xy5avww454ylm50fw6z11";
-
   meta = {
     description = "Some TrueType fonts from Microsoft Windows Vista (Calibri, Cambria, Candara, Consolas, Constantia, Corbel)";
     homepage = "http://www.microsoft.com/typography/ClearTypeFonts.mspx";
-    license = stdenv.lib.licenses.unfree; # haven't read the EULA, but we probably can't redistribute these files, so...
+    license = lib.licenses.unfree; # haven't read the EULA, but we probably can't redistribute these files, so...
 
     # Set a non-zero priority to allow easy overriding of the
     # fontconfig configuration files.
diff --git a/pkgs/data/fonts/vista-fonts/no-op.conf b/pkgs/data/fonts/vista-fonts/no-op.conf
index 503e62cfa29..3f8a9b9b544 100644
--- a/pkgs/data/fonts/vista-fonts/no-op.conf
+++ b/pkgs/data/fonts/vista-fonts/no-op.conf
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
 <fontconfig>
   <!-- This configuation is intentionally left empty in order to
        override any other font package that may wish to set up an
diff --git a/pkgs/data/fonts/vollkorn/default.nix b/pkgs/data/fonts/vollkorn/default.nix
new file mode 100644
index 00000000000..6c5836da5b0
--- /dev/null
+++ b/pkgs/data/fonts/vollkorn/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchzip }:
+let
+  pname = "vollkorn";
+  version = "4.105";
+in
+fetchzip {
+  name = "${pname}-${version}";
+  url = "http://vollkorn-typeface.com/download/vollkorn-${builtins.replaceStrings ["."] ["-"] version}.zip";
+  sha256 = "0srff2nqs7353mqcpmvaq156lamfh621py4h1771n0l9ix2c8mss";
+  stripRoot = false;
+
+  postFetch = ''
+    mkdir -pv $out/share/{doc/${pname}-${version},fonts/{opentype,truetype,WOFF,WOFF2}}
+    unzip $downloadedFile
+    cp -v {Fontlog,OFL-FAQ,OFL}.txt $out/share/doc/${pname}-${version}/
+    cp -v PS-OTF/*.otf $out/share/fonts/opentype
+    cp -v TTF/*.ttf $out/share/fonts/truetype
+    cp -v WOFF/*.woff $out/share/fonts/WOFF
+    cp -v WOFF2/*.woff2 $out/share/fonts/WOFF2
+  '';
+
+  meta = with lib; {
+    homepage = "http://vollkorn-typeface.com/";
+    description = "The free and healthy typeface for bread and butter use";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.schmittlauch ];
+  };
+}
diff --git a/pkgs/data/fonts/xits-math/default.nix b/pkgs/data/fonts/xits-math/default.nix
index dfb38973edd..9e3c013f44d 100644
--- a/pkgs/data/fonts/xits-math/default.nix
+++ b/pkgs/data/fonts/xits-math/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, python3Packages}:
+{ lib, stdenv, fetchFromGitHub, python3Packages}:
 
 stdenv.mkDerivation rec {
   pname = "xits-math";
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     install -m444 -Dt $out/share/fonts/opentype *.otf
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/alif-type/xits";
     description = "OpenType implementation of STIX fonts with math support";
     license = licenses.ofl;
diff --git a/pkgs/data/icons/arc-icon-theme/default.nix b/pkgs/data/icons/arc-icon-theme/default.nix
index ab80305d528..88184b585ec 100644
--- a/pkgs/data/icons/arc-icon-theme/default.nix
+++ b/pkgs/data/icons/arc-icon-theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, gtk3, gnome3, moka-icon-theme, gnome-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, gtk3, gnome, moka-icon-theme, gnome-icon-theme, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "arc-icon-theme";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [
     moka-icon-theme
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gnome-icon-theme
     hicolor-icon-theme
   ];
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   postFixup = "gtk-update-icon-cache $out/share/icons/Arc";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Arc icon theme";
     homepage = "https://github.com/horst3180/arc-icon-theme";
     license = licenses.gpl3;
diff --git a/pkgs/data/icons/beauty-line-icon-theme/default.nix b/pkgs/data/icons/beauty-line-icon-theme/default.nix
new file mode 100644
index 00000000000..2942315f7da
--- /dev/null
+++ b/pkgs/data/icons/beauty-line-icon-theme/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, fetchzip, breeze-icons, gtk3, gnome-icon-theme, hicolor-icon-theme, mint-x-icons, pantheon }:
+
+stdenv.mkDerivation rec {
+  pname = "BeautyLine";
+  version = "0.0.1";
+
+  src = fetchzip {
+    name = "${pname}-${version}";
+    url = "https://github.com/gvolpe/BeautyLine/releases/download/${version}/BeautyLine.tar.gz";
+    sha256 = "030bjk333fr9wm1nc740q8i31rfsgf3vg6cvz36xnvavx3q363l7";
+  };
+
+  nativeBuildInputs = [ gtk3 ];
+
+  # ubuntu-mono is also required but missing in ubuntu-themes (please add it if it is packaged at some point)
+  propagatedBuildInputs = [
+    breeze-icons
+    gnome-icon-theme
+    hicolor-icon-theme
+    mint-x-icons
+    pantheon.elementary-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    mkdir -p $out/share/icons/${pname}
+    cp -r * $out/share/icons/${pname}/
+    gtk-update-icon-cache $out/share/icons/${pname}
+  '';
+
+  meta = with lib; {
+    description = "BeautyLine icon theme";
+    homepage = "https://www.gnome-look.org/p/1425426/";
+    platforms = platforms.linux;
+    license = [ licenses.publicDomain ];
+    maintainers = with maintainers; [ gvolpe ];
+  };
+}
diff --git a/pkgs/data/icons/bibata-cursors/default.nix b/pkgs/data/icons/bibata-cursors/default.nix
index 670746d5d1a..04fb6281f25 100644
--- a/pkgs/data/icons/bibata-cursors/default.nix
+++ b/pkgs/data/icons/bibata-cursors/default.nix
@@ -1,4 +1,4 @@
-{ stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape_0, xcursorgen, python3 }:
+{ lib, stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape, xcursorgen, python3 }:
 
 let
   py = python3.withPackages(ps: [ ps.pillow ]);
@@ -25,7 +25,7 @@ in stdenvNoCC.mkDerivation rec {
 
   nativeBuildInputs  = [
     gnome-themes-extra
-    inkscape_0
+    inkscape
     xcursorgen
     py
   ];
@@ -41,7 +41,7 @@ in stdenvNoCC.mkDerivation rec {
     done
   '';
 
-  meta = with stdenvNoCC.lib; {
+  meta = with lib; {
     description = "Material Based Cursor";
     homepage = "https://github.com/KaizIqbal/Bibata_Cursor";
     license = licenses.gpl3;
diff --git a/pkgs/data/icons/bibata-cursors/extra.nix b/pkgs/data/icons/bibata-cursors/extra.nix
index c353a049f07..f59b12ec76a 100644
--- a/pkgs/data/icons/bibata-cursors/extra.nix
+++ b/pkgs/data/icons/bibata-cursors/extra.nix
@@ -1,4 +1,4 @@
-{ stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape_0, xcursorgen, python3 }:
+{ lib, stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape, xcursorgen, python3 }:
 
 let
   py = python3.withPackages(ps: [ ps.pillow ]);
@@ -25,7 +25,7 @@ in stdenvNoCC.mkDerivation rec {
 
   nativeBuildInputs  = [
     gnome-themes-extra
-    inkscape_0
+    inkscape
     xcursorgen
     py
   ];
@@ -41,7 +41,7 @@ in stdenvNoCC.mkDerivation rec {
     done
   '';
 
-  meta = with stdenvNoCC.lib; {
+  meta = with lib; {
     description = "Cursors Based on Bibata";
     homepage = "https://github.com/KaizIqbal/Bibata_Extra_Cursor";
     license = licenses.gpl3;
diff --git a/pkgs/data/icons/bibata-cursors/translucent.nix b/pkgs/data/icons/bibata-cursors/translucent.nix
index 4b215d071ab..d1e2814a8aa 100644
--- a/pkgs/data/icons/bibata-cursors/translucent.nix
+++ b/pkgs/data/icons/bibata-cursors/translucent.nix
@@ -1,9 +1,9 @@
-{ stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape_0, xcursorgen }:
+{ lib, stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape, xcursorgen }:
 
 stdenvNoCC.mkDerivation rec {
   pname = "bibata-cursors-translucent";
   version = "unstable-2019-09-13";
-  
+
   src = fetchFromGitHub {
     owner = "Silicasandwhich";
     repo = "Bibata_Cursor_Translucent";
@@ -18,7 +18,7 @@ stdenvNoCC.mkDerivation rec {
 
   nativeBuildInputs  = [
     gnome-themes-extra
-    inkscape_0
+    inkscape
     xcursorgen
   ];
 
@@ -31,7 +31,7 @@ stdenvNoCC.mkDerivation rec {
     cp -pr Bibata_* $out/share/icons/
   '';
 
-  meta = with stdenvNoCC.lib; {
+  meta = with lib; {
     description = "Translucent Varient of the Material Based Cursor";
     homepage = "https://github.com/Silicasandwhich/Bibata_Cursor_Translucent";
     license = licenses.gpl3;
diff --git a/pkgs/data/icons/capitaine-cursors/default.nix b/pkgs/data/icons/capitaine-cursors/default.nix
index 73ae4fe915f..075dbc922bd 100644
--- a/pkgs/data/icons/capitaine-cursors/default.nix
+++ b/pkgs/data/icons/capitaine-cursors/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitHub
-, inkscape_0, xcursorgen, bc }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, makeFontsConf
+, inkscape, xcursorgen, bc }:
 
 stdenv.mkDerivation rec {
   pname = "capitaine-cursors";
@@ -12,12 +12,24 @@ stdenv.mkDerivation rec {
     sha256 = "0652ydy73x29z7wc6ccyqihmfg4bk0ksl7yryycln6c7i0iqfmc9";
   };
 
+  patches = [
+    # Fixes the build on inscape => 1.0, without this it generates empty cursor files
+    (fetchpatch {
+      name = "inkscape-1.0-compat";
+      url = "https://github.com/keeferrourke/capitaine-cursors/commit/9da0b53e6098ed023c5c24c6ef6bfb1f68a79924.patch";
+      sha256 = "0lx5i60ahy6a2pir4zzlqn5lqsv6claqg8mv17l1a028h9aha3cv";
+    })
+  ];
+
   postPatch = ''
     patchShebangs .
   '';
 
-  buildInputs  =[
-    inkscape_0
+  # Complains about not being able to find the fontconfig config file otherwise
+  FONTCONFIG_FILE = makeFontsConf { fontDirectories = [ ]; };
+
+  buildInputs = [
+    inkscape
     xcursorgen
     bc
   ];
@@ -35,15 +47,11 @@ stdenv.mkDerivation rec {
     cp -pr dist/light $out/share/icons/capitaine-cursors-white
   '';
 
-  meta = with stdenv.lib; {
-    description = ''
-      An x-cursor theme inspired by macOS and based on KDE Breeze
-    '';
+  meta = with lib; {
+    description = "An x-cursor theme inspired by macOS and based on KDE Breeze";
     homepage = "https://github.com/keeferrourke/capitaine-cursors";
     license = licenses.lgpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [
-      eadwu
-    ];
+    maintainers = with maintainers; [ eadwu ];
   };
 }
diff --git a/pkgs/data/icons/elementary-xfce-icon-theme/default.nix b/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
index 52f9c8c821f..384086204c1 100644
--- a/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
+++ b/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchFromGitHub, pkgconfig, gdk-pixbuf, optipng, librsvg, gtk3, pantheon, gnome3, gnome-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, pkg-config, gdk-pixbuf, optipng, librsvg, gtk3, pantheon, gnome, gnome-icon-theme, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-xfce-icon-theme";
-  version = "0.15.1";
+  version = "0.15.2";
 
   src = fetchFromGitHub {
     owner = "shimmerproject";
     repo = "elementary-xfce";
     rev = "v${version}";
-    sha256 = "1rl15kh9c7qxw4pvwmw44fb4v3vwh6zin4wpx55bnvm5j76y6p3f";
+    sha256 = "sha256-E8f6UU/4Y9Nfk7LjDcdyV+TdeVj/zl3oFCyEu3Gz27w=";
   };
 
   nativeBuildInputs = [
-    pkgconfig
+    pkg-config
     gdk-pixbuf
     librsvg
     optipng
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [
     pantheon.elementary-icon-theme
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gnome-icon-theme
     hicolor-icon-theme
   ];
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     make icon-caches
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Elementary icons for Xfce and other GTK desktops like GNOME";
     homepage = "https://github.com/shimmerproject/elementary-xfce";
     license = licenses.gpl2;
diff --git a/pkgs/data/icons/faba-icon-theme/default.nix b/pkgs/data/icons/faba-icon-theme/default.nix
index 9df47f8faa7..6ccd4c4622f 100644
--- a/pkgs/data/icons/faba-icon-theme/default.nix
+++ b/pkgs/data/icons/faba-icon-theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, meson, ninja, python3, gtk3, pantheon, gnome-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, meson, ninja, python3, gtk3, pantheon, gnome-icon-theme, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   name = "${package-name}-${version}";
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     patchShebangs meson/post_install.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A sexy and modern icon theme with Tango influences";
     homepage = "https://snwh.org/moka";
     license = with licenses; [ cc-by-sa-40 gpl3 ];
diff --git a/pkgs/data/icons/faba-mono-icons/default.nix b/pkgs/data/icons/faba-mono-icons/default.nix
index e403ba753ec..0627c87bfc5 100644
--- a/pkgs/data/icons/faba-mono-icons/default.nix
+++ b/pkgs/data/icons/faba-mono-icons/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, gtk3, moka-icon-theme, faba-icon-theme, gnome-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, gtk3, moka-icon-theme, faba-icon-theme, gnome-icon-theme, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "faba-mono-icons";
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     done
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "The full set of Faba monochrome panel icons";
     homepage = "https://snwh.org/moka";
     license = licenses.gpl3;
diff --git a/pkgs/data/icons/flat-remix-icon-theme/default.nix b/pkgs/data/icons/flat-remix-icon-theme/default.nix
index b0b115f096f..743bcba54de 100644
--- a/pkgs/data/icons/flat-remix-icon-theme/default.nix
+++ b/pkgs/data/icons/flat-remix-icon-theme/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub , gtk3, breeze-icons, pantheon, gnome-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub , gtk3, breeze-icons, pantheon, gnome-icon-theme, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec  {
   pname = "flat-remix-icon-theme";
-  version = "20200116";
+  version = "20200710";
 
   src = fetchFromGitHub  {
     owner = "daniruiz";
     repo = "flat-remix";
     rev = version;
-    sha256 = "14n5wydhd5ifmsbj770s2qg2ksd3xa3m61qxydid6jq39k0lxbd8";
+    sha256 = "0rlrmgimvs9rrj64g5jn04jgyi7wmn2dnsk7ckmxk6p8cdfjd0hx";
   };
 
   nativeBuildInputs = [
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec  {
     done
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Flat remix is a pretty simple icon theme inspired on material design";
     homepage = "https://drasite.com/flat-remix";
     license = with licenses; [ gpl3 ];
diff --git a/pkgs/data/icons/gnome-icon-theme/default.nix b/pkgs/data/icons/gnome-icon-theme/default.nix
index 30dacbae740..0e6a2fc67c4 100644
--- a/pkgs/data/icons/gnome-icon-theme/default.nix
+++ b/pkgs/data/icons/gnome-icon-theme/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchurl, pkgconfig, intltool, iconnamingutils, gtk2 }:
+{ lib, stdenv, fetchurl, pkg-config, intltool, iconnamingutils, gtk2 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-icon-theme";
   version = "3.12.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-icon-theme/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    url = "mirror://gnome/sources/gnome-icon-theme/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im";
   };
 
   nativeBuildInputs = [
-    pkgconfig
+    pkg-config
     intltool
     iconnamingutils
     gtk2
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     rm -r "$out/share/locale"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Collection of icons for the GNOME 2 desktop";
     homepage = "https://download.gnome.org/sources/gnome-icon-theme/";
     license = licenses.gpl3Plus;
diff --git a/pkgs/data/icons/gruvbox-dark-icons-gtk/default.nix b/pkgs/data/icons/gruvbox-dark-icons-gtk/default.nix
new file mode 100644
index 00000000000..7b779191b6b
--- /dev/null
+++ b/pkgs/data/icons/gruvbox-dark-icons-gtk/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchFromGitHub, gtk3, breeze-icons, gnome-icon-theme, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  pname = "gruvbox-dark-icons-gtk";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "jmattheis";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1fks2rrrb62ybzn8gqan5swcgksrb579vk37bx4xpwkc552dz2z2";
+  };
+
+  nativeBuildInputs = [ gtk3 ];
+
+  propagatedBuildInputs = [ breeze-icons gnome-icon-theme hicolor-icon-theme ];
+
+  installPhase = ''
+    mkdir -p $out/share/icons/oomox-gruvbox-dark
+    rm README.md
+    cp -r * $out/share/icons/oomox-gruvbox-dark
+    gtk-update-icon-cache $out/share/icons/oomox-gruvbox-dark
+  '';
+
+  dontDropIconThemeCache = true;
+
+  meta = with lib; {
+    description = "Gruvbox icons for GTK based desktop environments";
+    homepage = "https://github.com/jmattheis/gruvbox-dark-gtk";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.nomisiv ];
+  };
+}
diff --git a/pkgs/data/icons/hicolor-icon-theme/default.nix b/pkgs/data/icons/hicolor-icon-theme/default.nix
index 5eefce81a12..3a8839844f1 100644
--- a/pkgs/data/icons/hicolor-icon-theme/default.nix
+++ b/pkgs/data/icons/hicolor-icon-theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
   name = "hicolor-icon-theme-0.17";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   setupHook = ./setup-hook.sh;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Default fallback theme used by implementations of the icon theme specification";
     homepage = "https://icon-theme.freedesktop.org/releases/";
     platforms = platforms.unix;
diff --git a/pkgs/data/icons/hicolor-icon-theme/setup-hook.sh b/pkgs/data/icons/hicolor-icon-theme/setup-hook.sh
index 0fd9bf85d83..df7cac08b05 100644
--- a/pkgs/data/icons/hicolor-icon-theme/setup-hook.sh
+++ b/pkgs/data/icons/hicolor-icon-theme/setup-hook.sh
@@ -28,17 +28,17 @@ symlinkParentIconThemes() {
             theme_name="${theme%/*}"
             theme_name="${theme_name##*/}"
             echo "  theme: $theme_name"
-            inheritance=$(sed -rne 's,^Inherits=(.*)$,\1,p' $theme)
+            inheritance=$(sed -rne 's,^Inherits=(.*)$,\1,p' "$theme")
             IFS=',' read -ra parent_themes <<< "$inheritance"
             for parent_theme in "${parent_themes[@]}"; do
                 parent_path=""
                 if [ -e "$out/share/icons/$parent_theme" ]; then
-                    parent_path="$(realpath $out/share/icons/$parent_theme)"
+                    parent_path="$(realpath "$out/share/icons/$parent_theme")"
                 else
                     IFS=':' read -ra dirs <<< $XDG_ICON_DIRS
                     for parent_dir in  "${dirs[@]}"; do
                         if [ -e "$parent_dir/icons/$parent_theme/index.theme" ]; then
-                            parent_path=$(realpath "$parent_dir/icons/$parent_theme")
+                            parent_path="$(realpath "$parent_dir/icons/$parent_theme")"
                             ln -s "$parent_path" "$out/share/icons/"
                             break
                         fi
diff --git a/pkgs/data/icons/humanity-icon-theme/default.nix b/pkgs/data/icons/humanity-icon-theme/default.nix
index 62085110f51..12e2d0a06d6 100644
--- a/pkgs/data/icons/humanity-icon-theme/default.nix
+++ b/pkgs/data/icons/humanity-icon-theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gtk3, gnome3, hicolor-icon-theme }:
+{ lib, stdenv, fetchurl, gtk3, gnome, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "humanity-icon-theme";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   ];
 
   propagatedBuildInputs = [
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     hicolor-icon-theme
   ];
 
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Humanity icons from Ubuntu";
     homepage = "https://launchpad.net/humanity/";
     license = licenses.gpl2;
diff --git a/pkgs/data/icons/iconpack-jade/default.nix b/pkgs/data/icons/iconpack-jade/default.nix
index 619fd0205b5..3a5fe541985 100644
--- a/pkgs/data/icons/iconpack-jade/default.nix
+++ b/pkgs/data/icons/iconpack-jade/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, gtk3, gnome-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, gtk3, gnome-icon-theme, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "iconpack-jade";
-  version = "1.23";
+  version = "1.25";
 
   src = fetchFromGitHub {
     owner = "madmaxms";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1q29ikfssn1vmwws3dry4ssq6b44afd9sb7dwv3rdqg0frabpj1m";
+    sha256 = "0pwz3l5i93s84iwkn1jq8a150ma96788a0n41xq2cgy00j8h8xh0";
   };
 
   nativeBuildInputs = [ gtk3 ];
@@ -26,10 +26,10 @@ stdenv.mkDerivation rec {
     done
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Icon pack based upon Faenza and Mint-X";
     homepage = "https://github.com/madmaxms/iconpack-jade";
-    license = licenses.lgpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/data/icons/iconpack-obsidian/default.nix b/pkgs/data/icons/iconpack-obsidian/default.nix
index 01443578057..13b314e1ae0 100644
--- a/pkgs/data/icons/iconpack-obsidian/default.nix
+++ b/pkgs/data/icons/iconpack-obsidian/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, fetchFromGitHub, gtk3, gnome-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, gtk3, gnome-icon-theme, mint-x-icons, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "iconpack-obsidian";
-  version = "4.12";
+  version = "4.15";
 
   src = fetchFromGitHub {
     owner = "madmaxms";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0139ps707mh1zkypaxsqzy58mmsm5whdxxx2nbsmqfswb7qisz2b";
+    sha256 = "1f32isq1xyn9b6p1nx5rssqgg9gw0jp9ld19860xk29fspmlfb8n";
   };
 
   nativeBuildInputs = [ gtk3 ];
 
-  propagatedBuildInputs = [ gnome-icon-theme hicolor-icon-theme ];
-  # still missing parent themes: Ambiant-MATE, Mint-X, Faenza-Dark, KFaenza
+  propagatedBuildInputs = [ gnome-icon-theme mint-x-icons hicolor-icon-theme ];
+  # still missing parent themes: Ambiant-MATE, Faenza-Dark, KFaenza
 
   dontDropIconThemeCache = true;
 
@@ -27,10 +27,10 @@ stdenv.mkDerivation rec {
     done
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Gnome icon pack based upon Faenza";
     homepage = "https://github.com/madmaxms/iconpack-obsidian";
-    license = licenses.lgpl3;
+    license = licenses.gpl3Only;
     # darwin cannot deal with file names differing only in case
     platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
diff --git a/pkgs/data/icons/iso-flags/default.nix b/pkgs/data/icons/iso-flags/default.nix
new file mode 100644
index 00000000000..57cc1752f18
--- /dev/null
+++ b/pkgs/data/icons/iso-flags/default.nix
@@ -0,0 +1,45 @@
+{ lib, stdenv
+, fetchFromGitHub
+, perl
+, inkscape
+, librsvg
+, targets ? [ "all" ]
+}:
+
+stdenv.mkDerivation {
+  pname = "iso-flags";
+  version = "unstable-18012020";
+
+  src = fetchFromGitHub {
+    owner = "joielechong";
+    repo = "iso-country-flags-svg-collection";
+    rev = "9ebbd577b9a70fbfd9a1931be80c66e0d2f31a9d";
+    sha256 = "17bm7w4md56xywixfvp7vr3d6ihvxk3383i9i4rpmgm6qa9dyxdl";
+  };
+
+  nativeBuildInputs = [
+    perl
+    inkscape
+    librsvg
+    (perl.withPackages(pp: with pp; [ JSON XMLLibXML ]))
+  ];
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  buildFlags = targets;
+
+  installPhase = ''
+    mkdir -p $out/share
+    mv build $out/share/iso-flags
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/joielechong/iso-country-flags-svg-collection";
+    description = "248 country flag SVG & PNG icons with different icon styles";
+    license = [ licenses.publicDomain ];
+    platforms = platforms.linux; # the output assets should work anywhere, but unsure about the tools to build them...
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/pkgs/data/icons/kora-icon-theme/default.nix b/pkgs/data/icons/kora-icon-theme/default.nix
new file mode 100644
index 00000000000..9e50fb0c136
--- /dev/null
+++ b/pkgs/data/icons/kora-icon-theme/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv, fetchFromGitHub , gtk3, adwaita-icon-theme, breeze-icons, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec  {
+  pname = "kora-icon-theme";
+  version = "1.4.4";
+
+  src = fetchFromGitHub  {
+    owner = "bikass";
+    repo = "kora";
+    rev = "v${version}";
+    sha256 = "sha256-79C/M5WXQswA1xuA6pwVSRlDtQC9+EzkwSEV3SdPzBc=";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    adwaita-icon-theme
+    breeze-icons
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/icons
+    mv kora* $out/share/icons/
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache -f $theme
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "An SVG icon theme in four variants";
+    homepage = "https://github.com/bikass/kora";
+    license = with licenses; [ gpl3Only ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ bloomvdomino ];
+  };
+}
diff --git a/pkgs/data/icons/luna-icons/default.nix b/pkgs/data/icons/luna-icons/default.nix
index 3125df5fe1c..0a0cba1e98e 100644
--- a/pkgs/data/icons/luna-icons/default.nix
+++ b/pkgs/data/icons/luna-icons/default.nix
@@ -1,4 +1,5 @@
-{ stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , gtk3
 , breeze-icons
@@ -8,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "luna-icons";
-  version = "2020-08-09";
+  version = "1.2";
 
   src = fetchFromGitHub {
     owner = "darkomarko42";
     repo = pname;
-    rev = "d32aacabcc018212c460833327e1b54a716a5a23";
-    sha256 = "1f1ypxcvmd97afn7612i8gxmbrj80vx45vqrrh3n0p65jw5lg7zc";
+    rev = version;
+    sha256 = "0kjnmclil21m9vgybk958nzzlbwryp286rajlgxg05wgjnby4cxk";
   };
 
   nativeBuildInputs = [
@@ -36,13 +37,13 @@ stdenv.mkDerivation rec {
     cp -a Luna* $out/share/icons
 
     for theme in $out/share/icons/*; do
-      gtk-update-icon-cache $theme
+      gtk-update-icon-cache "$theme"
     done
 
     runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Icon pack based on marwaita and papirus icons";
     homepage = "https://github.com/darkomarko42/Luna-Icons";
     license = [ licenses.gpl3Only ];
diff --git a/pkgs/data/icons/maia-icon-theme/default.nix b/pkgs/data/icons/maia-icon-theme/default.nix
index ee539981fbc..32365b70184 100644
--- a/pkgs/data/icons/maia-icon-theme/default.nix
+++ b/pkgs/data/icons/maia-icon-theme/default.nix
@@ -1,4 +1,12 @@
-{ stdenv, fetchFromGitLab, cmake, extra-cmake-modules, gtk3, kdeFrameworks, hicolor-icon-theme }:
+{ lib, stdenv
+, fetchFromGitLab
+, cmake
+, extra-cmake-modules
+, gtk3
+, plasma-framework
+, kwindowsystem
+, hicolor-icon-theme
+}:
 
 stdenv.mkDerivation {
   pname = "maia-icon-theme";
@@ -17,8 +25,8 @@ stdenv.mkDerivation {
     cmake
     extra-cmake-modules
     gtk3
-    kdeFrameworks.plasma-framework
-    kdeFrameworks.kwindowsystem
+    plasma-framework
+    kwindowsystem
   ];
 
   propagatedBuildInputs = [
@@ -27,13 +35,15 @@ stdenv.mkDerivation {
 
   dontDropIconThemeCache = true;
 
+  dontWrapQtApps = true;
+
   postInstall = ''
     for theme in $out/share/icons/*; do
       gtk-update-icon-cache $theme
     done
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Icons based on Breeze and Super Flat Remix";
     homepage = "https://gitlab.manjaro.org/artwork/themes/maia";
     license = licenses.lgpl3;
diff --git a/pkgs/data/icons/mint-x-icons/default.nix b/pkgs/data/icons/mint-x-icons/default.nix
deleted file mode 100644
index 213ba877dc6..00000000000
--- a/pkgs/data/icons/mint-x-icons/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ stdenv
-, fetchurl
-, gnome-icon-theme
-, gtk3
-, hicolor-icon-theme
-, humanity-icon-theme
-, ubuntu-themes
-}:
-
-stdenv.mkDerivation rec {
-  pname = "mint-x-icons";
-  version = "1.5.5";
-
-  src = fetchurl {
-    url = "http://packages.linuxmint.com/pool/main/m/${pname}/${pname}_${version}.tar.xz";
-    sha256 = "0nq3si06m98b71f33wism0bvlvib57rm96msf0wx852ginw3a5yd";
-  };
-
-  nativeBuildInputs = [
-    gtk3
-  ];
-
-  propagatedBuildInputs = [
-    gnome-icon-theme
-    hicolor-icon-theme
-    humanity-icon-theme
-    ubuntu-themes # provides the  parent icon theme: ubuntu-mono-dark
-  ];
-
-  dontDropIconThemeCache = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/share/icons
-    cp -vai usr/share/icons/* $out/share/icons
-
-    for theme in $out/share/icons/*; do
-      gtk-update-icon-cache $theme
-    done
-
-    runHook postInstall
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Mint/metal theme based on mintified versions of Clearlooks Revamp, Elementary and Faenza";
-    homepage = "https://github.com/linuxmint/mint-x-icons";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/pkgs/data/icons/moka-icon-theme/default.nix b/pkgs/data/icons/moka-icon-theme/default.nix
index d481f2df8d6..5e67fdc9cc9 100644
--- a/pkgs/data/icons/moka-icon-theme/default.nix
+++ b/pkgs/data/icons/moka-icon-theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, meson, ninja, gtk3, python3, faba-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, meson, ninja, gtk3, python3, faba-icon-theme, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "moka-icon-theme";
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     patchShebangs meson/post_install.py
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An icon theme designed with a minimal flat style using simple geometry and bright colours";
     homepage = "https://snwh.org/moka";
     license = with licenses; [ cc-by-sa-40 gpl3 ];
diff --git a/pkgs/data/icons/numix-cursor-theme/default.nix b/pkgs/data/icons/numix-cursor-theme/default.nix
index 6445628e9bb..377cf05ac17 100644
--- a/pkgs/data/icons/numix-cursor-theme/default.nix
+++ b/pkgs/data/icons/numix-cursor-theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, inkscape_0, xcursorgen }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, inkscape, xcursorgen }:
 
 stdenv.mkDerivation rec {
   version = "1.1";
@@ -12,7 +12,16 @@ stdenv.mkDerivation rec {
     sha256 = "0p8h48wsy3z5dz9vdnp01fpn6q8ky0h74l5qgixlip557bsa1spi";
   };
 
-  nativeBuildInputs = [ inkscape_0 xcursorgen ];
+  nativeBuildInputs = [ inkscape xcursorgen ];
+
+  patches = [
+    # Remove when https://github.com/numixproject/numix-cursor-theme/pull/7 is merged
+    (fetchpatch {
+      url = "https://github.com/stephaneyfx/numix-cursor-theme/commit/3b647bf768cebb8f127b88e3786f6a9640460197.patch";
+      sha256 = "174kmhlvv76wwvndkys78aqc32051sqg3wzc0xg6b7by4agrbg76";
+      name = "support-inkscape-1-in-numix-cursor-theme.patch";
+    })
+  ];
 
   buildPhase = ''
     patchShebangs .
@@ -24,7 +33,7 @@ stdenv.mkDerivation rec {
     cp -dr --no-preserve='ownership' Numix-Cursor{,-Light} $out/share/icons/
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Numix cursor theme";
     homepage = "https://numixproject.github.io";
     license = licenses.gpl3;
diff --git a/pkgs/data/icons/numix-icon-theme-circle/default.nix b/pkgs/data/icons/numix-icon-theme-circle/default.nix
index f43ca473f0d..7fe16f016cc 100644
--- a/pkgs/data/icons/numix-icon-theme-circle/default.nix
+++ b/pkgs/data/icons/numix-icon-theme-circle/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, gtk3, numix-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, gtk3, numix-icon-theme, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "numix-icon-theme-circle";
-  version = "20.07.11";
+  version = "21.04.14";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "0vj3d3wb12ksnkm99s32k7nrf9m5j83zzvkd0rwk8l0b30df975j";
+    sha256 = "1z8c0179r8g0y9zh4383brsfhkcyfy79dc8hw94p9zjn5a66547w";
   };
 
   nativeBuildInputs = [ gtk3 ];
@@ -34,10 +34,10 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Numix icon theme (circle version)";
     homepage = "https://numixproject.github.io";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     # darwin cannot deal with file names differing only in case
     platforms = platforms.linux;
     maintainers = with maintainers; [ romildo ];
diff --git a/pkgs/data/icons/numix-icon-theme-square/default.nix b/pkgs/data/icons/numix-icon-theme-square/default.nix
index 51a2100d3aa..9c7b1786a6e 100644
--- a/pkgs/data/icons/numix-icon-theme-square/default.nix
+++ b/pkgs/data/icons/numix-icon-theme-square/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, gtk3, numix-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, gtk3, numix-icon-theme, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "numix-icon-theme-square";
-  version = "20.07.11";
+  version = "21.04.14";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "07jy8l2r6grn7pabn3dnkc8j7xdykl7k57br30c6v61ss8paf2rw";
+    sha256 = "0ndxjp173dwz78m41mn818mh4bdsxa2ypv4wrwicx0v4d8z90ddj";
   };
 
   nativeBuildInputs = [ gtk3 ];
@@ -34,10 +34,10 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Numix icon theme (square version)";
     homepage = "https://numixproject.github.io";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     # darwin cannot deal with file names differing only in case
     platforms = platforms.linux;
     maintainers = with maintainers; [ romildo ];
diff --git a/pkgs/data/icons/numix-icon-theme/default.nix b/pkgs/data/icons/numix-icon-theme/default.nix
index 30e212629e8..194a36021a9 100644
--- a/pkgs/data/icons/numix-icon-theme/default.nix
+++ b/pkgs/data/icons/numix-icon-theme/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, gtk3, gnome-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, gtk3, gnome-icon-theme, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "numix-icon-theme";
-  version = "20.06.07";
+  version = "21.04.14";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "1yp9parc8ihmai8pswf4qzrqd88qpls87ipq8ylx38yqns7wsn4h";
+    sha256 = "1ilzqh9f7skdfg5sl97zfgwrzvwa1zna22dpq0954gyyzvy7k7lg";
   };
 
   nativeBuildInputs = [ gtk3 ];
@@ -18,18 +18,22 @@ stdenv.mkDerivation rec {
   dontDropIconThemeCache = true;
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/icons
     cp -a Numix{,-Light} $out/share/icons/
 
     for theme in $out/share/icons/*; do
       gtk-update-icon-cache $theme
     done
+
+    runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Numix icon theme";
     homepage = "https://numixproject.github.io";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     # darwin cannot deal with file names differing only in case
     platforms = platforms.linux;
     maintainers = with maintainers; [ romildo ];
diff --git a/pkgs/data/icons/oranchelo-icon-theme/default.nix b/pkgs/data/icons/oranchelo-icon-theme/default.nix
new file mode 100644
index 00000000000..9288b9307f5
--- /dev/null
+++ b/pkgs/data/icons/oranchelo-icon-theme/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, gtk3, plasma5Packages, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  pname = "oranchelo-icon-theme";
+  version = "0.8.0.1";
+
+  src = fetchFromGitHub {
+    owner = "OrancheloTeam";
+    repo = pname;
+    rev = "096c8c8d550ac9a85f5f34f3f30243e6f198df2d";
+    sha256 = "sha256-TKi42SA33pGKdrPtGTpvxFbOP+5N93Y4BvO4CRTveLM=";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    plasma5Packages.breeze-icons
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    mkdir -p $out/share/icons
+    cp -r $Oranchelo* $out/share/icons/
+  '';
+
+  meta = with lib; {
+    description = "Oranchelo icon theme";
+    homepage = "https://github.com/OrancheloTeam/oranchelo-icon-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ _414owen ];
+  };
+}
diff --git a/pkgs/data/icons/paper-icon-theme/default.nix b/pkgs/data/icons/paper-icon-theme/default.nix
index 585190a7b38..a8eb1a8736d 100644
--- a/pkgs/data/icons/paper-icon-theme/default.nix
+++ b/pkgs/data/icons/paper-icon-theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, meson, ninja, gtk3, python3, gnome3, gnome-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, meson, ninja, gtk3, python3, gnome, gnome-icon-theme, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "paper-icon-theme";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   ];
 
   propagatedBuildInputs = [
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gnome-icon-theme
     hicolor-icon-theme
   ];
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     gtk-update-icon-cache "$out"/share/icons/Paper-Mono-Dark;
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Modern icon theme designed around bold colours and simple geometric shapes";
     homepage = "https://snwh.org/paper";
     license = with licenses; [ cc-by-sa-40 lgpl3 ];
diff --git a/pkgs/data/icons/papirus-icon-theme/default.nix b/pkgs/data/icons/papirus-icon-theme/default.nix
index 9227ceb4915..adc2c5fb197 100644
--- a/pkgs/data/icons/papirus-icon-theme/default.nix
+++ b/pkgs/data/icons/papirus-icon-theme/default.nix
@@ -1,19 +1,17 @@
-{ stdenv, fetchFromGitHub, gtk3, pantheon, breeze-icons, gnome-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, gtk3, pantheon, breeze-icons, gnome-icon-theme, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "papirus-icon-theme";
-  version = "20200801";
+  version = "20210701";
 
   src = fetchFromGitHub {
     owner = "PapirusDevelopmentTeam";
     repo = pname;
     rev = version;
-    sha256 = "0w9ks8izxv7mkh82fnclfcdf6mif991dsbbnxsqmcbvljrmjval2";
+    sha256 = "sha256-eqSZBcypwnNX92SGG17MWlnsVzk0jOTdjtEaWMbQsMs=";
   };
 
-  nativeBuildInputs = [
-    gtk3
-  ];
+  nativeBuildInputs = [ gtk3 ];
 
   propagatedBuildInputs = [
     pantheon.elementary-icon-theme
@@ -25,20 +23,22 @@ stdenv.mkDerivation rec {
   dontDropIconThemeCache = true;
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/icons
     mv {,e}Papirus* $out/share/icons
 
     for theme in $out/share/icons/*; do
       gtk-update-icon-cache $theme
     done
+    runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Papirus icon theme";
     homepage = "https://github.com/PapirusDevelopmentTeam/papirus-icon-theme";
-    license = licenses.lgpl3;
+    license = licenses.gpl3Only;
     # darwin gives hash mismatch in source, probably because of file names differing only in case
     platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
+    maintainers = with maintainers; [ romildo fortuneteller2k ];
   };
 }
diff --git a/pkgs/data/icons/papirus-maia-icon-theme/default.nix b/pkgs/data/icons/papirus-maia-icon-theme/default.nix
index 4cfe50d7836..814d9ced017 100644
--- a/pkgs/data/icons/papirus-maia-icon-theme/default.nix
+++ b/pkgs/data/icons/papirus-maia-icon-theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, gtk3, breeze-icons, gnome-icon-theme, papirus-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, cmake, gtk3, breeze-icons, gnome-icon-theme, papirus-icon-theme, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "papirus-maia-icon-theme";
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     done
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Manjaro variation of Papirus icon theme";
     homepage = "https://github.com/Ste74/papirus-maia-icon-theme";
     license = licenses.lgpl3;
diff --git a/pkgs/data/icons/pop-icon-theme/default.nix b/pkgs/data/icons/pop-icon-theme/default.nix
index 76b393dcf79..1bcfab57b4a 100644
--- a/pkgs/data/icons/pop-icon-theme/default.nix
+++ b/pkgs/data/icons/pop-icon-theme/default.nix
@@ -1,10 +1,10 @@
-{ stdenv
+{ lib, stdenv
 , fetchFromGitHub
 , meson
 , ninja
 , gtk3
 , breeze-icons
-, gnome3
+, gnome
 , pantheon
 , hicolor-icon-theme
 }:
@@ -28,14 +28,14 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [
     breeze-icons
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     pantheon.elementary-icon-theme
     hicolor-icon-theme
   ];
 
   dontDropIconThemeCache = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Icon theme for Pop!_OS with a semi-flat design and raised 3D motifs";
     homepage = "https://github.com/pop-os/icon-theme";
     license = with licenses; [ cc-by-sa-40 gpl3 ];
diff --git a/pkgs/data/icons/qogir-icon-theme/default.nix b/pkgs/data/icons/qogir-icon-theme/default.nix
index 2a9a895b6ca..00de4f6760c 100644
--- a/pkgs/data/icons/qogir-icon-theme/default.nix
+++ b/pkgs/data/icons/qogir-icon-theme/default.nix
@@ -1,32 +1,39 @@
-{ stdenv, fetchFromGitHub, gtk3, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, gtk3, hicolor-icon-theme, jdupes }:
 
 stdenv.mkDerivation rec {
   pname = "qogir-icon-theme";
-  version = "2020-06-22";
+  version = "2021-07-14";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "0s5fhwfhn4qgk198jw736byxdrfm42l5m681pllbhg02j8ld4iik";
+    sha256 = "0anma2ss3yqr9njx4ay2nyxjkgnj7ky17c93ipwgrvgsv8jk5nn2";
   };
 
-  nativeBuildInputs = [ gtk3 ];
+  nativeBuildInputs = [ gtk3 jdupes ];
 
   propagatedBuildInputs = [ hicolor-icon-theme ];
 
   dontDropIconThemeCache = true;
 
+  # These fixup steps are slow and unnecessary.
+  dontPatchELF = true;
+  dontRewriteSymlinks = true;
+
   installPhase = ''
+    runHook preInstall
     patchShebangs install.sh
     mkdir -p $out/share/icons
     name= ./install.sh -d $out/share/icons
+    jdupes -l -r $out/share/icons
+    runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Flat colorful design icon theme";
     homepage = "https://github.com/vinceliuice/Qogir-icon-theme";
-    license = with licenses; [ gpl3 ];
+    license = with licenses; [ gpl3Only ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ romildo ];
   };
diff --git a/pkgs/data/icons/quintom-cursor-theme/default.nix b/pkgs/data/icons/quintom-cursor-theme/default.nix
new file mode 100644
index 00000000000..645b2ac5473
--- /dev/null
+++ b/pkgs/data/icons/quintom-cursor-theme/default.nix
@@ -0,0 +1,28 @@
+{ stdenvNoCC, fetchFromGitLab, lib }:
+
+stdenvNoCC.mkDerivation {
+  pname = "quintom-cursor-theme";
+  version = "unstable-2019-10-24";
+
+  src = fetchFromGitLab {
+    owner = "Burning_Cube";
+    repo = "quintom-cursor-theme";
+    rev = "d23e57333e816033cf20481bdb47bb1245ed5d4d";
+    hash = "sha256-Sec2DSnWYal6wzYzP9W+DDuTKHsFHWdRYyMzliMU5bU=A";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/icons
+    for theme in "Quintom_Ink" "Quintom_Snow"; do
+      cp -r "$theme Cursors/$theme" $out/share/icons/
+    done
+  '';
+
+  meta = with lib; {
+    description = "A cursor theme designed to look decent";
+    homepage = "https://gitlab.com/Burning_Cube/quintom-cursor-theme";
+    platforms = platforms.unix;
+    license = with licenses; [ cc-by-sa-40 gpl3Only ];
+    maintainers = with maintainers; [ frogamic ];
+  };
+}
diff --git a/pkgs/data/icons/tango-icon-theme/default.nix b/pkgs/data/icons/tango-icon-theme/default.nix
index f1b59c2f538..09d0875ca8a 100644
--- a/pkgs/data/icons/tango-icon-theme/default.nix
+++ b/pkgs/data/icons/tango-icon-theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, intltool, pkgconfig, iconnamingutils, imagemagick, librsvg
+{ lib, stdenv, fetchurl, intltool, pkg-config, iconnamingutils, imagemagick, librsvg
 , gtk/*any version*/, gnome-icon-theme, hicolor-icon-theme
 }:
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   patches = [ ./rsvg-convert.patch ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ intltool iconnamingutils imagemagick librsvg ];
   propagatedBuildInputs = [ gnome-icon-theme hicolor-icon-theme ];
   # still missing parent icon themes: cristalsvg
@@ -26,6 +26,6 @@ stdenv.mkDerivation rec {
   meta = {
     description = "A basic set of icons";
     homepage = "http://tango.freedesktop.org/Tango_Icon_Library";
-    platforms = stdenv.lib.platforms.linux;
+    platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/data/icons/tela-icon-theme/default.nix b/pkgs/data/icons/tela-icon-theme/default.nix
new file mode 100644
index 00000000000..aaf32fdf16d
--- /dev/null
+++ b/pkgs/data/icons/tela-icon-theme/default.nix
@@ -0,0 +1,42 @@
+{ fetchFromGitHub, gtk3, hicolor-icon-theme, jdupes, lib, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "tela-icon-theme";
+  version = "2021-01-21";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "0gphy4aq2qjcg79k6rc0q5901mn3q76qhckn5vxvmypn9n3lb9ph";
+  };
+
+  nativeBuildInputs = [ gtk3 jdupes ];
+
+  propagatedBuildInputs = [ hicolor-icon-theme ];
+
+  dontDropIconThemeCache = true;
+
+  # These fixup steps are slow and unnecessary.
+  dontPatchELF = true;
+  dontRewriteSymlinks = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    patchShebangs install.sh
+    mkdir -p $out/share/icons
+    ./install.sh -a -d $out/share/icons
+    jdupes -l -r $out/share/icons
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A flat colorful Design icon theme";
+    homepage = "https://github.com/vinceliuice/tela-icon-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/pkgs/data/icons/vanilla-dmz/default.nix b/pkgs/data/icons/vanilla-dmz/default.nix
index c92a8052700..55ba320bc98 100644
--- a/pkgs/data/icons/vanilla-dmz/default.nix
+++ b/pkgs/data/icons/vanilla-dmz/default.nix
@@ -1,21 +1,34 @@
-{ stdenv, lib, fetchzip, xorg, hicolor-icon-theme }:
+{ stdenv
+, lib
+, fetchzip
+, xorg
+, hicolor-icon-theme
+}:
 
 stdenv.mkDerivation rec {
   pname = "vanilla-dmz";
-  version = "0.4.4";
+  version = "0.4.5";
+
   src = fetchzip {
-    url = "http://ftp.de.debian.org/debian/pool/main/d/dmz-cursor-theme/dmz-cursor-theme_${version}.tar.gz";
-    sha256 = "1l0c0svk7dy0d7icg7j2181wdn3fvks5gmyqnvjk749ppy5ks8mj";
+    url = "mirror://debian/pool/main/d/dmz-cursor-theme/dmz-cursor-theme_${version}.tar.xz";
+    sha256 = "14r8fri4byyzavzdifpga6118hxqjwpzd11xxj28s16zxcanq16m";
   };
-  buildInputs = [ xorg.xcursorgen ];
+
+  buildInputs = [
+    xorg.xcursorgen
+  ];
+
   propagatedBuildInputs = [
     hicolor-icon-theme
   ];
+
   dontDropIconThemeCache = true;
+
   buildPhase = ''
     cd DMZ-White/pngs; ./make.sh; cd -
     cd DMZ-Black/pngs; ./make.sh; cd -
   '';
+
   installPhase = ''
     install -d $out/share/icons/Vanilla-DMZ/cursors
     cp -a DMZ-White/xcursors/* $out/share/icons/Vanilla-DMZ/cursors
@@ -25,11 +38,12 @@ stdenv.mkDerivation rec {
     cp -a DMZ-Black/xcursors/* $out/share/icons/Vanilla-DMZ-AA/cursors
     install -Dm644 DMZ-Black/index.theme $out/share/icons/Vanilla-DMZ-AA/index.theme
   '';
+
   meta = with lib; {
     homepage = "http://jimmac.musichall.cz";
     description = "A style neutral scalable cursor theme";
     platforms = platforms.all;
-    license = licenses.cc-by-nc-sa-30;
+    license = licenses.cc-by-sa-30;
     maintainers = with maintainers; [ cstrahan ];
   };
 }
diff --git a/pkgs/data/icons/whitesur-icon-theme/default.nix b/pkgs/data/icons/whitesur-icon-theme/default.nix
new file mode 100644
index 00000000000..95f41caca1a
--- /dev/null
+++ b/pkgs/data/icons/whitesur-icon-theme/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gtk3
+, gnome
+, gnome-icon-theme
+, hicolor-icon-theme
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "Whitesur-icon-theme";
+  version = "2021-05-20";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "KboUYozTleOBKNun66g2oj7u/36hyQsPtRSk/x/LAWo=";
+  };
+
+  nativeBuildInputs = [ gtk3 ];
+
+  buildInputs = [
+    gnome-icon-theme
+    gnome.adwaita-icon-theme
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/icons/WhiteSur{,-dark}/status
+    echo "$out/share/icons/WhiteSur/status $out/share/icons/WhiteSur-dark/status" | xargs -n 1 cp -r src/status/{16,22,24,32,symbolic}
+    echo "$out/share/icons/WhiteSur $out/share/icons/WhiteSur-dark" | xargs -n 1 cp -r ./{COPYING,AUTHORS} src/index.theme src/{actions,animations,apps,categories,devices,emblems,mimes,places} links/{actions,apps,categories,devices,emblems,mimes,places,status}
+
+    # Change icon color for dark theme
+    sed -i "s/#363636/#dedede/g" $out/share/icons/WhiteSur-dark/{actions,devices,places,status}/{16,22,24}/*
+    sed -i "s/#363636/#dedede/g" $out/share/icons/WhiteSur-dark/actions/32/*
+    sed -i "s/#363636/#dedede/g" $out/share/icons/WhiteSur-dark/{actions,apps,categories,emblems,devices,mimes,places,status}/symbolic/*
+
+    for f in actions animations apps categories devices emblems mimes places status; do
+      ln -sf $out/share/icons/WhiteSur/$f $out/share/icons/WhiteSur/$f@2x
+      ln -sf $out/share/icons/WhiteSur-dark/$f $out/share/icons/WhiteSur-dark/$f@2x
+    done
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "MacOS Big Sur style icon theme for Linux desktops";
+    homepage = "https://github.com/vinceliuice/WhiteSur-icon-theme";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ icy-thought ];
+  };
+
+}
diff --git a/pkgs/data/icons/zafiro-icons/default.nix b/pkgs/data/icons/zafiro-icons/default.nix
index a8dc4539a7d..f6c56aa3c0f 100644
--- a/pkgs/data/icons/zafiro-icons/default.nix
+++ b/pkgs/data/icons/zafiro-icons/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, gtk3, breeze-icons, gnome-icon-theme, numix-icon-theme, numix-icon-theme-circle, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, gtk3, breeze-icons, gnome-icon-theme, numix-icon-theme, numix-icon-theme-circle, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "zafiro-icons";
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "zayronxio";
     repo = pname;
-    rev = "${version}";
+    rev = version;
     sha256 = "05h8qm9izjbp8pnl9jpbw3y9sddhp0zmg94fm1k4d4hhdqnakqhv";
   };
 
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     gtk-update-icon-cache "$out"/share/icons/Zafiro-icons
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Icon pack flat with light colors";
     homepage = "https://github.com/zayronxio/Zafiro-icons";
     license = with licenses; [ gpl3 ];
diff --git a/pkgs/data/machine-learning/mnist/default.nix b/pkgs/data/machine-learning/mnist/default.nix
index 44a70ac5d1e..b4c4d43e99a 100644
--- a/pkgs/data/machine-learning/mnist/default.nix
+++ b/pkgs/data/machine-learning/mnist/default.nix
@@ -1,4 +1,4 @@
-{ stdenvNoCC, fetchurl }:
+{ lib, stdenvNoCC, fetchurl }:
 let
   srcs = {
     train-images = fetchurl {
@@ -29,8 +29,8 @@ in
       ln -s "${srcs.test-images}" "$out/${srcs.test-images.name}"
       ln -s "${srcs.test-labels}" "$out/${srcs.test-labels.name}"
     '';
-    phases = [ "installPhase" ];
-    meta = with stdenvNoCC.lib; {
+    dontUnpack = true;
+    meta = with lib; {
       description = "A large database of handwritten digits";
       longDescription = ''
         The MNIST database (Modified National Institute of Standards and
diff --git a/pkgs/data/misc/adapta-backgrounds/default.nix b/pkgs/data/misc/adapta-backgrounds/default.nix
index 1c35d3deef9..6debaa9ebe2 100644
--- a/pkgs/data/misc/adapta-backgrounds/default.nix
+++ b/pkgs/data/misc/adapta-backgrounds/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, glib }:
+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, glib }:
 
 stdenv.mkDerivation rec {
   pname = "adapta-backgrounds";
@@ -11,9 +11,9 @@ stdenv.mkDerivation rec {
     sha256 = "04hmbmzf97rsii8gpwy3wkljy5xhxmlsl34d63s6hfy05knclydj";
   };
 
-  nativeBuildInputs = [ meson ninja pkgconfig glib ];
+  nativeBuildInputs = [ meson ninja pkg-config glib ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Wallpaper collection for adapta-project";
     homepage = "https://github.com/adapta-project/adapta-backgrounds";
     license = with licenses; [ gpl2 cc-by-sa-40 ];
diff --git a/pkgs/data/misc/brise/default.nix b/pkgs/data/misc/brise/default.nix
index 4f5b2e972e1..f4e1a6d2905 100644
--- a/pkgs/data/misc/brise/default.nix
+++ b/pkgs/data/misc/brise/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, librime }:
+{ lib, stdenv, fetchFromGitHub, librime }:
 
 stdenv.mkDerivation {
   name = "brise-unstable-2017-09-16";
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Rime Schema Repository";
     longDescription = ''
       This software is a collection of data packages used by Rime
diff --git a/pkgs/data/misc/cacert/default.nix b/pkgs/data/misc/cacert/default.nix
index f72431c5a27..b4a8ebc4ef2 100644
--- a/pkgs/data/misc/cacert/default.nix
+++ b/pkgs/data/misc/cacert/default.nix
@@ -1,24 +1,36 @@
-{ stdenv, fetchurl, nss, python3
+{ lib, stdenv, fetchurl, nss, python3
 , blacklist ? []
-, includeEmail ? false
+
+# Used for tests only
+, runCommand
+, cacert
+, openssl
 }:
 
-with stdenv.lib;
+with lib;
 
 let
+  version = "3.66";
 
-  certdata2pem = fetchurl {
-    name = "certdata2pem.py";
-    url = "https://salsa.debian.org/debian/ca-certificates/raw/debian/20170717/mozilla/certdata2pem.py";
-    sha256 = "1d4q27j1gss0186a5m8bs5dk786w07ccyq0qi6xmd2zr1a8q16wy";
-  };
-
+  underscoreVersion = builtins.replaceStrings ["."] ["_"] version;
 in
 
 stdenv.mkDerivation {
-  name = "nss-cacert-${nss.version}";
+  name = "nss-cacert-${version}";
+
+  src = fetchurl {
+    url = "mirror://mozilla/security/nss/releases/NSS_${underscoreVersion}_RTM/src/nss-${version}.tar.gz";
+    sha256 = "1jfdnh5l4k57r2vb07s06hqi7m2qzk0d9x25lsdsrw3cflx9x9w9";
+  };
 
-  src = nss.src;
+  certdata2pem = fetchurl {
+    name = "certdata2pem.py";
+    urls = [
+      "https://salsa.debian.org/debian/ca-certificates/raw/debian/20170717/mozilla/certdata2pem.py"
+      "https://git.launchpad.net/ubuntu/+source/ca-certificates/plain/mozilla/certdata2pem.py?id=47e49e1e0a8a1ca74deda27f88fe181191562957"
+    ];
+    sha256 = "1d4q27j1gss0186a5m8bs5dk786w07ccyq0qi6xmd2zr1a8q16wy";
+  };
 
   outputs = [ "out" "unbundled" ];
 
@@ -31,12 +43,8 @@ stdenv.mkDerivation {
     ${concatStringsSep "\n" (map (c: ''"${c}"'') blacklist)}
     EOF
 
-    cat ${certdata2pem} > certdata2pem.py
-    patch -p1 < ${./fix-unicode-ca-names.patch}
-    ${optionalString includeEmail ''
-      # Disable CAs used for mail signing
-      substituteInPlace certdata2pem.py --replace \[\'CKA_TRUST_EMAIL_PROTECTION\'\] '''
-    ''}
+    # copy from the store, otherwise python will scan it for imports
+    cat "$certdata2pem" > certdata2pem.py
   '';
 
   buildPhase = ''
@@ -60,11 +68,60 @@ stdenv.mkDerivation {
 
   setupHook = ./setup-hook.sh;
 
+  passthru.updateScript = ./update.sh;
+  passthru.tests = {
+    # Test that building this derivation with a blacklist works, and that UTF-8 is supported.
+    blacklist-utf8 = let
+      blacklistCAToFingerprint = {
+        # "blacklist" uses the CA name from the NSS bundle, but we check for presence using the SHA256 fingerprint.
+        "CFCA EV ROOT" = "5C:C3:D7:8E:4E:1D:5E:45:54:7A:04:E6:87:3E:64:F9:0C:F9:53:6D:1C:CC:2E:F8:00:F3:55:C4:C5:FD:70:FD";
+        "NetLock Arany (Class Gold) Főtanúsítvány" = "6C:61:DA:C3:A2:DE:F0:31:50:6B:E0:36:D2:A6:FE:40:19:94:FB:D1:3D:F9:C8:D4:66:59:92:74:C4:46:EC:98";
+      };
+      mapBlacklist = f: concatStringsSep "\n" (mapAttrsToList f blacklistCAToFingerprint);
+    in runCommand "verify-the-cacert-filter-output" {
+      cacert = cacert.unbundled;
+      cacertWithExcludes = (cacert.override {
+        blacklist = builtins.attrNames blacklistCAToFingerprint;
+      }).unbundled;
+
+      nativeBuildInputs = [ openssl ];
+    } ''
+      isPresent() {
+        # isPresent <unbundled-dir> <ca name> <ca sha256 fingerprint>
+        for f in $1/etc/ssl/certs/*.crt; do
+          fingerprint="$(openssl x509 -in "$f" -noout -fingerprint -sha256 | cut -f2 -d=)"
+          if [[ "x$fingerprint" == "x$3" ]]; then
+            return 0
+          fi
+        done
+        return 1
+      }
+
+      # Ensure that each certificate is in the main "cacert".
+      ${mapBlacklist (caName: caFingerprint: ''
+        isPresent "$cacert" "${caName}" "${caFingerprint}" || ({
+          echo "CA fingerprint ${caFingerprint} (${caName}) is missing from the CA bundle. Consider picking a different CA for the blacklist test." >&2
+          exit 1
+        })
+      '')}
+
+      # Ensure that each certificate is NOT in the "cacertWithExcludes".
+      ${mapBlacklist (caName: caFingerprint: ''
+        isPresent "$cacertWithExcludes" "${caName}" "${caFingerprint}" && ({
+          echo "CA fingerprint ${caFingerprint} (${caName}) is present in the cacertWithExcludes bundle." >&2
+          exit 1
+        })
+      '')}
+
+      touch $out
+    '';
+  };
+
   meta = {
     homepage = "https://curl.haxx.se/docs/caextract.html";
     description = "A bundle of X.509 certificates of public Certificate Authorities (CA)";
     platforms = platforms.all;
-    maintainers = with maintainers; [ fpletz ];
+    maintainers = with maintainers; [ andir fpletz lukegb ];
     license = licenses.mpl20;
   };
 }
diff --git a/pkgs/data/misc/cacert/fix-unicode-ca-names.patch b/pkgs/data/misc/cacert/fix-unicode-ca-names.patch
deleted file mode 100644
index 07d3629196a..00000000000
--- a/pkgs/data/misc/cacert/fix-unicode-ca-names.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/certdata2pem.py	2017-08-01 23:10:00.000000000 +0300
-+++ b/certdata2pem.py	2017-08-01 23:08:21.131297636 +0300
-@@ -88,7 +88,7 @@
- \# Read blacklist.
- blacklist = []
- if os.path.exists('blacklist.txt'):
--    for line in open('blacklist.txt', 'r'):
-+    for line in io.open('blacklist.txt', 'r', encoding='utf-8'):
-         line = line.strip()
-         if line.startswith('#') or len(line) == 0:
-             continue
-@@ -101,7 +101,7 @@
-     if obj['CKA_CLASS'] != 'CKO_NSS_TRUST':
-         continue
-     if obj['CKA_LABEL'] in blacklist:
--        print("Certificate %s blacklisted, ignoring." % obj['CKA_LABEL'])
-+        print("Certificate %s blacklisted, ignoring." % unicode(obj['CKA_LABEL']).encode('utf-8'))
-     elif obj['CKA_TRUST_SERVER_AUTH'] == 'CKT_NSS_TRUSTED_DELEGATOR':
-         trust[obj['CKA_LABEL']] = True
-     elif obj['CKA_TRUST_EMAIL_PROTECTION'] == 'CKT_NSS_TRUSTED_DELEGATOR':
diff --git a/pkgs/data/misc/cacert/setup-hook.sh b/pkgs/data/misc/cacert/setup-hook.sh
index 77b68a5c251..93b682fbbd1 100644
--- a/pkgs/data/misc/cacert/setup-hook.sh
+++ b/pkgs/data/misc/cacert/setup-hook.sh
@@ -1,3 +1,7 @@
 export NIX_SSL_CERT_FILE=@out@/etc/ssl/certs/ca-bundle.crt
-# left for compatibility
+
+# compatibility
+#  - openssl
 export SSL_CERT_FILE=@out@/etc/ssl/certs/ca-bundle.crt
+#  - Haskell x509-system
+export SYSTEM_CERTIFICATE_PATH=@out@/etc/ssl/certs/ca-bundle.crt
diff --git a/pkgs/data/misc/cacert/update.sh b/pkgs/data/misc/cacert/update.sh
new file mode 100755
index 00000000000..1c286dc6206
--- /dev/null
+++ b/pkgs/data/misc/cacert/update.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p nix common-updater-scripts jq
+
+# Build both the cacert package and an overriden version where we use the source attribute of NSS.
+# Cacert and NSS are both from the same upstream sources. They are decoupled as
+# the cacert output only cares about a few infrequently changing files in the
+# sources while the NSS source code changes frequently.
+#
+# By having cacert on a older source revision that produces the same
+# certificate output as a newer version we can avoid large amounts of
+# unnecessary rebuilds.
+#
+# As of this writing there are a few magnitudes more packages depending on
+# cacert than on nss.
+#
+# If the current nixpkgs revision contains the attribute `nss_latest` that will
+# be used instead of `nss`. This is done to help the stable branch maintenance
+# where (usually) after branch-off during the first Firefox upgrade that
+# requries a new NSS version that attribute is introduced.
+# By having this change in the unstable branch we can safely carry it from
+# release to release without requiring more backport churn on those doing the
+# stable maintenance.
+
+
+set -ex
+
+BASEDIR="$(dirname "$0")/../../../.."
+
+
+CURRENT_PATH=$(nix-build --no-out-link -A cacert.out)
+PATCHED_PATH=$(nix-build --no-out-link -E "with import $BASEDIR {}; let nss_pkg = pkgs.nss_latest or pkgs.nss; in (cacert.overrideAttrs (_: { inherit (nss_pkg) src version; })).out")
+
+# Check the hash of the etc subfolder
+# We can't check the entire output as that contains the nix-support folder
+# which contains the output path itself.
+CURRENT_HASH=$(nix-hash "$CURRENT_PATH/etc")
+PATCHED_HASH=$(nix-hash "$PATCHED_PATH/etc")
+
+if [[ "$CURRENT_HASH" !=  "$PATCHED_HASH" ]]; then
+    NSS_VERSION=$(nix-instantiate --json --eval -E "with import $BASEDIR {}; nss.version" | jq -r .)
+    update-source-version cacert "$NSS_VERSION"
+fi
diff --git a/pkgs/data/misc/cldr-emoji-annotation/default.nix b/pkgs/data/misc/cldr-emoji-annotation/default.nix
index f2dc4213e00..e51f5639cbc 100644
--- a/pkgs/data/misc/cldr-emoji-annotation/default.nix
+++ b/pkgs/data/misc/cldr-emoji-annotation/default.nix
@@ -1,24 +1,24 @@
-{ stdenv
+{ lib, stdenv
 , fetchFromGitHub
 , autoreconfHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "cldr-emoji-annotation";
-  version = "37.0_13.0_0_1";
+  version = "37.0_13.0_0_2";
 
   src = fetchFromGitHub {
     owner = "fujiwarat";
     repo = "cldr-emoji-annotation";
     rev = version;
-    sha256 = "19cqxyrap3p7djzzs99pndjbcvzmdv86n2m1sw2zqiwpirw7y1sy";
+    sha256 = "0la3h6l58j9jfjvzwz65x56ijx7sppirwpqbqc06if4c2g0kzswj";
   };
 
   nativeBuildInputs = [
     autoreconfHook
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Emoji annotation files in CLDR";
     homepage = "https://www.unicode.org/";
     license = licenses.unicode-dfs-2016;
diff --git a/pkgs/data/misc/combinatorial_designs/default.nix b/pkgs/data/misc/combinatorial_designs/default.nix
index 5df7343f3be..5457b4e54d4 100644
--- a/pkgs/data/misc/combinatorial_designs/default.nix
+++ b/pkgs/data/misc/combinatorial_designs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchurl
 }:
 
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     mv * "$out/share/combinatorial_designs"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Data for Combinatorial Designs";
     longDescription = ''
       Current content:
@@ -26,6 +26,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.publicDomain;
     platforms = platforms.all;
-    maintainers = with maintainers; [ timokau ];
+    maintainers = teams.sage.members;
   };
 }
diff --git a/pkgs/data/misc/common-licenses/default.nix b/pkgs/data/misc/common-licenses/default.nix
new file mode 100644
index 00000000000..a0c21b5d900
--- /dev/null
+++ b/pkgs/data/misc/common-licenses/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, fetchurl
+, lib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "common-licenses";
+  version = "11.1";
+
+  src = fetchurl {
+    url = "http://deb.debian.org/debian/pool/main/b/base-files/base-files_${version}.tar.xz";
+    sha256 = "1i3hgd9vs14k819k441iibcgmi2zavnpqbnppyn2cz70kd830nbm";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share
+    cp -r licenses $out/share/common-licenses
+    cat debian/base-files.links | grep common-licenses | sed -e "s|usr|$out|g" -e "s|^|ln -s |g" | bash -x
+  '';
+
+  meta = with lib; {
+    description = "common-licenses extracted from debian base-files package";
+    homepage = "https://tracker.debian.org/pkg/base-files";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/pkgs/data/misc/conway_polynomials/default.nix b/pkgs/data/misc/conway_polynomials/default.nix
index 48b538fe183..cabc28a89ce 100644
--- a/pkgs/data/misc/conway_polynomials/default.nix
+++ b/pkgs/data/misc/conway_polynomials/default.nix
@@ -1,13 +1,13 @@
-{ stdenv
+{ lib, stdenv
 , fetchurl
-, python
+, python2
 }:
 
 stdenv.mkDerivation rec {
   pname = "conway_polynomials";
   version = "0.5";
 
-  pythonEnv = python.withPackages (ps: with ps; [ six ]);
+  pythonEnv = python2.withPackages (ps: with ps; [ six ]);
 
   src = fetchurl {
     url = "mirror://sageupstream/conway_polynomials/conway_polynomials-${version}.tar.bz2";
@@ -34,10 +34,10 @@ stdenv.mkDerivation rec {
     ${pythonEnv.interpreter} ${spkg-install}
   '';
 
-  meta = with stdenv.lib; {
-    description = "Contains a small database of Conway polynomials.";
+  meta = with lib; {
+    description = "Contains a small database of Conway polynomials";
     license = licenses.gpl2;
     platforms = platforms.all;
-    maintainers = with maintainers; [ timokau ];
+    maintainers = teams.sage.members;
   };
 }
diff --git a/pkgs/data/misc/ddccontrol-db/default.nix b/pkgs/data/misc/ddccontrol-db/default.nix
index d0d18d47335..d79fc73d61b 100644
--- a/pkgs/data/misc/ddccontrol-db/default.nix
+++ b/pkgs/data/misc/ddccontrol-db/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , autoconf
 , automake
 , libtool
@@ -6,13 +6,15 @@
 , fetchFromGitHub
 }:
 
-stdenv.mkDerivation {
-  name = "ddccontrol-db-20180908";
+stdenv.mkDerivation rec {
+  pname = "ddccontrol-db";
+  version = "20210505";
+
   src = fetchFromGitHub {
     owner = "ddccontrol";
     repo = "ddccontrol-db";
-    rev = "5f211be363f77dc43e39f911b30f4fb19a2d7a84";
-    sha256 = "0vi3bzxpjdkn791vri68k7dah4v2liscniz7hxrarhl4fxlicc0w";
+    rev = version;
+    sha256 = "sha256-k0Bcf1I/g2sFnX3y4qyWG7Z3W7K6YeZ9trUFSJ4NhSo=";
   };
 
   preConfigure = ''
@@ -27,11 +29,11 @@ stdenv.mkDerivation {
       intltool
     ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Monitor database for DDCcontrol";
     homepage = "https://github.com/ddccontrol/ddccontrol-db";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.pakhfn ];
+    maintainers = [ lib.maintainers.pakhfn ];
   };
 }
diff --git a/pkgs/data/misc/elliptic_curves/default.nix b/pkgs/data/misc/elliptic_curves/default.nix
index 49b8736b084..98259400021 100644
--- a/pkgs/data/misc/elliptic_curves/default.nix
+++ b/pkgs/data/misc/elliptic_curves/default.nix
@@ -1,6 +1,6 @@
-{ stdenv
+{ lib, stdenv
 , fetchurl
-, python
+, python2
 }:
 
 stdenv.mkDerivation rec {
@@ -30,10 +30,10 @@ stdenv.mkDerivation rec {
     export SAGE_SHARE="$out/share"
     export PYTHONPATH=$PWD
 
-    ${python.interpreter} ${spkg-install}
+    ${python2.interpreter} ${spkg-install}
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Databases of elliptic curves";
     longDescription = ''
       Includes two databases:
@@ -45,6 +45,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl2;
     platforms = platforms.all;
-    maintainers = with maintainers; [ timokau ];
+    maintainers = teams.sage.members;
   };
 }
diff --git a/pkgs/data/misc/fedora-backgrounds/default.nix b/pkgs/data/misc/fedora-backgrounds/default.nix
new file mode 100644
index 00000000000..3089e721a7c
--- /dev/null
+++ b/pkgs/data/misc/fedora-backgrounds/default.nix
@@ -0,0 +1,34 @@
+{ callPackage, lib, fetchurl }:
+
+let
+  fedoraBackground = callPackage ./generic.nix { };
+in {
+  f32 = fedoraBackground rec {
+    version = "32.2.2";
+    src = fetchurl {
+      url = "https://github.com/fedoradesign/backgrounds/releases/download/v${version}/f${lib.versions.major version}-backgrounds-${version}.tar.xz";
+      hash = "sha256-1F75aae7Jj7M2IPn/vWKcUF+O5mZ0Yey7hWuFj/4Fhg=";
+    };
+  };
+
+  f33 = fedoraBackground rec {
+    version = "33.0.7";
+    src = fetchurl {
+      url = "https://github.com/fedoradesign/backgrounds/releases/download/v${version}/f${lib.versions.major version}-backgrounds-${version}.tar.xz";
+      hash = "sha256-lAn5diEYebCo2ZJCOn9rD87rOasUU0qnSOr0EnZKW4o=";
+    };
+    # Fix broken symlinks in the Xfce background directory.
+    patches = [ ./f33-fix-xfce-path.patch ];
+  };
+
+  f34 = fedoraBackground rec {
+    version = "34.0.1";
+    src = fetchurl {
+      url = "https://github.com/fedoradesign/backgrounds/releases/download/v${version}/f${lib.versions.major version}-backgrounds-${version}.tar.xz";
+      hash = "sha256-0gotgQ4N0yE8WZbsu7B3jmUIZrycbqjEMxZl01JcJj4=";
+    };
+    # Fix broken symlinks in the Xfce background directory.
+    patches = [ ./f34-fix-xfce-path.patch ];
+  };
+
+}
diff --git a/pkgs/data/misc/fedora-backgrounds/f33-fix-xfce-path.patch b/pkgs/data/misc/fedora-backgrounds/f33-fix-xfce-path.patch
new file mode 100644
index 00000000000..eabdacddaa5
--- /dev/null
+++ b/pkgs/data/misc/fedora-backgrounds/f33-fix-xfce-path.patch
@@ -0,0 +1,15 @@
+diff --git a/default/Makefile b/default/Makefile
+index ec8095a..9391f8f 100644
+--- a/default/Makefile
++++ b/default/Makefile
+@@ -48,8 +48,8 @@ install:
+ 	
+ 	#~ XFCE background
+ 	$(MKDIR) $(XFCE_BG_DIR)
+-	$(LN_S) ../default/$(WP_NAME)-02-day.png \
++	$(LN_S) ../../backgrounds/$(WP_NAME)/default/$(WP_NAME)-02-day.png \
+ 			$(XFCE_BG_DIR)/$(WP_NAME).png
+ 	for tod in 01-dawn 03-dusk 04-night; do \
+-	   $(LN_S) ../default/$(WP_NAME)-$${tod}.png $(XFCE_BG_DIR)/$(WP_NAME)-$${tod}.png; \
++	   $(LN_S) ../../backgrounds/$(WP_NAME)/default/$(WP_NAME)-$${tod}.png $(XFCE_BG_DIR)/$(WP_NAME)-$${tod}.png; \
+ 	done;
diff --git a/pkgs/data/misc/fedora-backgrounds/f34-fix-xfce-path.patch b/pkgs/data/misc/fedora-backgrounds/f34-fix-xfce-path.patch
new file mode 100644
index 00000000000..84792766713
--- /dev/null
+++ b/pkgs/data/misc/fedora-backgrounds/f34-fix-xfce-path.patch
@@ -0,0 +1,13 @@
+diff --git a/default/Makefile b/default/Makefile
+index 172d5d9..540a1c0 100644
+--- a/default/Makefile
++++ b/default/Makefile
+@@ -1,7 +1,7 @@
+ WP_NAME=f34
+ WP_BIGNAME=F34
+ WP_DIR=$(DESTDIR)/usr/share/backgrounds/$(WP_NAME)
+-WP_DIR_LN=/usr/share/backgrounds/$(WP_NAME)
++WP_DIR_LN=$(DESTDIR)/usr/share/backgrounds/$(WP_NAME)
+ GNOME_BG_DIR=$(DESTDIR)/usr/share/gnome-background-properties
+ KDE_BG_DIR=$(DESTDIR)/usr/share/wallpapers
+ MATE_BG_DIR=$(DESTDIR)/usr/share/mate-background-properties
diff --git a/pkgs/data/misc/fedora-backgrounds/generic.nix b/pkgs/data/misc/fedora-backgrounds/generic.nix
new file mode 100644
index 00000000000..5ebc6ff367e
--- /dev/null
+++ b/pkgs/data/misc/fedora-backgrounds/generic.nix
@@ -0,0 +1,43 @@
+{ lib
+, stdenvNoCC
+, coreutils
+}:
+
+{ version
+, src
+, patches ? [ ]
+}:
+
+stdenvNoCC.mkDerivation {
+  inherit patches src version;
+
+  pname = "fedora${lib.versions.major version}-backgrounds";
+
+  dontBuild = true;
+
+  postPatch = ''
+    for f in default/Makefile extras/Makefile; do
+      substituteInPlace $f \
+        --replace "usr/share" "share" \
+        --replace "/usr/bin/" "" \
+        --replace "/bin/" ""
+    done
+
+    for f in $(find . -name '*.xml'); do
+      substituteInPlace $f \
+        --replace "/usr/share" "$out/share"
+    done;
+  '';
+
+  installFlags = [
+    "DESTDIR=$(out)"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/fedoradesign/backgrounds";
+    description = "A set of default and supplemental wallpapers for Fedora";
+    license = licenses.cc-by-sa-40;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/data/misc/freepats/default.nix b/pkgs/data/misc/freepats/default.nix
index a1fa49bae27..3ba5e1b61de 100644
--- a/pkgs/data/misc/freepats/default.nix
+++ b/pkgs/data/misc/freepats/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
   name = "freepats-20060219";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   installPhase = ''mkdir "$out"; cp -r . "$out"'';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Instrument patches, for MIDI synthesizers";
     longDescription = ''
       Freepats is a project to create a free and open set of instrument
diff --git a/pkgs/data/misc/geolite-legacy/default.nix b/pkgs/data/misc/geolite-legacy/default.nix
index 4fcbe8d0283..735a6608949 100644
--- a/pkgs/data/misc/geolite-legacy/default.nix
+++ b/pkgs/data/misc/geolite-legacy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ lib, stdenv, fetchurl }:
 
 let
   fetchDB = src: sha256: fetchurl {
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
     "asnum/GeoIPASNumv6.dat.gz"
     "1qyq4h8cja62giv6q1qqc502vsq53wzz1kx80mgvwngmycrxa21k";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "GeoLite Legacy IP geolocation databases";
     homepage = "https://geolite.maxmind.com/download/geoip";
     license = licenses.cc-by-sa-30;
diff --git a/pkgs/data/misc/graphs/default.nix b/pkgs/data/misc/graphs/default.nix
index 14551c6a4a4..93a0d75aaf6 100644
--- a/pkgs/data/misc/graphs/default.nix
+++ b/pkgs/data/misc/graphs/default.nix
@@ -1,14 +1,14 @@
-{ stdenv
+{ lib, stdenv
 , fetchurl
 }:
 
 stdenv.mkDerivation rec {
   pname = "graphs";
-  version = "20161026";
+  version = "20210214";
 
   src = fetchurl {
     url = "mirror://sageupstream/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "0a2b5lly9nifphvknz88rrhfbbc8vqnlqcv19zdpfq8h8nnyjbb2";
+    sha256 = "sha256-ByN8DZhTYRUFw4n9e7klAMh0P1YxurtND0Xf2DMvN0E=";
   };
 
   installPhase = ''
@@ -16,10 +16,10 @@ stdenv.mkDerivation rec {
     cp * "$out/share/graphs/"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A database of graphs";
     license = licenses.gpl2;
     platforms = platforms.all;
-    maintainers = with maintainers; [ timokau ];
+    maintainers = teams.sage.members;
   };
 }
diff --git a/pkgs/data/misc/hackage/default.nix b/pkgs/data/misc/hackage/default.nix
index b1b8d6ce902..e559281303d 100644
--- a/pkgs/data/misc/hackage/default.nix
+++ b/pkgs/data/misc/hackage/default.nix
@@ -1,6 +1,10 @@
+# Hackage database snapshot, used by maintainers/scripts/regenerate-hackage-packages.sh
+# and callHackage
 { fetchurl }:
-
+let
+  pin = builtins.fromJSON (builtins.readFile ./pin.json);
+in
 fetchurl {
-  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/edb0920a8dbbd592d67a781d0b905728515ab623.tar.gz";
-  sha256 = "08yvpwzw7c3xw3w970ysykj44vglqfiq057kx0axk81s68v83rcy";
+  inherit (pin) url sha256;
+  passthru.updateScript = ../../../../maintainers/scripts/haskell/update-hackage.sh;
 }
diff --git a/pkgs/data/misc/hackage/pin.json b/pkgs/data/misc/hackage/pin.json
new file mode 100644
index 00000000000..98b19c54a30
--- /dev/null
+++ b/pkgs/data/misc/hackage/pin.json
@@ -0,0 +1,6 @@
+{
+  "commit": "51c018b566e360a908addb7fcabf98fc0fbaafbe",
+  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/51c018b566e360a908addb7fcabf98fc0fbaafbe.tar.gz",
+  "sha256": "0xbc0z6zx60c0m3ck0iaa5xsw7d5phk2d8wh66w66j7ci7dyah85",
+  "msg": "Update from Hackage at 2021-07-21T05:42:12Z"
+}
diff --git a/pkgs/data/misc/iana-etc/default.nix b/pkgs/data/misc/iana-etc/default.nix
index 4f9a98dccff..60735eb4782 100644
--- a/pkgs/data/misc/iana-etc/default.nix
+++ b/pkgs/data/misc/iana-etc/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchzip }:
+{ lib, fetchzip }:
 
 let
-  version = "20200729";
+  version = "20210225";
 in fetchzip {
   name = "iana-etc-${version}";
   url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz";
-  sha256 = "05cymmisfvpyd7fwzc6axvm5fsi1v6hzs0pjr4xp1i95wvpz7qpm";
+  sha256 = "sha256-NVvZG3EJEYOXFDTBXD5m9sg/8msyMiBMkiZr+ZxWZ/g=";
 
   postFetch = ''
     tar -xzvf $downloadedFile --strip-components=1
     install -D -m0644 -t $out/etc services protocols
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/Mic92/iana-etc";
     description = "IANA protocol and port number assignments (/etc/protocols and /etc/services)";
     platforms = platforms.unix;
diff --git a/pkgs/data/misc/libkkc-data/default.nix b/pkgs/data/misc/libkkc-data/default.nix
index aeb15057abf..7fcd2fbf516 100644
--- a/pkgs/data/misc/libkkc-data/default.nix
+++ b/pkgs/data/misc/libkkc-data/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, marisa, libkkc }:
+{ lib, stdenv, fetchurl, python2, libkkc }:
 
 stdenv.mkDerivation rec {
   pname = "libkkc-data";
@@ -9,9 +9,11 @@ stdenv.mkDerivation rec {
     sha256 = "16avb50jasq2f1n9xyziky39dhlnlad0991pisk3s11hl1aqfrwy";
   };
 
-  nativeBuildInputs = [ marisa ];
+  nativeBuildInputs = [ python2.pkgs.marisa ];
 
-  meta = with stdenv.lib; {
+  strictDeps = true;
+
+  meta = with lib; {
     description = "Language model data package for libkkc";
     homepage    = "https://github.com/ueno/libkkc";
     license     = licenses.gpl3Plus;
diff --git a/pkgs/data/misc/mailcap/default.nix b/pkgs/data/misc/mailcap/default.nix
index 725d4ded0eb..56d10e5b350 100644
--- a/pkgs/data/misc/mailcap/default.nix
+++ b/pkgs/data/misc/mailcap/default.nix
@@ -1,23 +1,23 @@
 { lib, fetchzip }:
 
 let
-  version = "2.1.48";
+  version = "2.1.52";
 
 in fetchzip {
   name = "mailcap-${version}";
 
   url = "https://releases.pagure.org/mailcap/mailcap-${version}.tar.xz";
-  sha256 = "08d0avz8971hkggd60dk9yyd14izz24yag3prpfafbvm670jlmqg";
+  sha256 = "sha256-2GRNg3zoMPMaOk2zoAx5sVIzjbQhnYJuaO8nrzWujVc=";
 
   postFetch = ''
     tar -xavf $downloadedFile --strip-components=1
     substituteInPlace mailcap --replace "/usr/bin/" ""
-    gzip mailcap.4
+    gzip mailcap.5
     sh generate-nginx-mimetypes.sh < mime.types > nginx-mime.types
 
     install -D -m0644 nginx-mime.types $out/etc/nginx/mime.types
     install -D -m0644 -t $out/etc mailcap mime.types
-    install -D -m0644 -t $out/share/man/man4 mailcap.4.gz
+    install -D -m0644 -t $out/share/man/man5 mailcap.5.gz
   '';
 
   meta = with lib; {
diff --git a/pkgs/data/misc/media-player-info/default.nix b/pkgs/data/misc/media-player-info/default.nix
index 0307bf8d0ed..56e4ace41f4 100644
--- a/pkgs/data/misc/media-player-info/default.nix
+++ b/pkgs/data/misc/media-player-info/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, python3, udev, systemd }:
+{ lib, stdenv, fetchurl, pkg-config, python3, udev, systemd }:
 
 let
   name = "media-player-info-24";
@@ -13,7 +13,7 @@ in
     };
 
     buildInputs = [ udev systemd ];
-    nativeBuildInputs = [ pkgconfig python3 ];
+    nativeBuildInputs = [ pkg-config python3 ];
 
     postPatch = ''
       patchShebangs ./tools
@@ -21,7 +21,7 @@ in
 
     configureFlags = [ "--with-udevdir=${placeholder "out"}/lib/udev" ];
 
-    meta = with stdenv.lib; {
+    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;
diff --git a/pkgs/data/misc/mime-types/default.nix b/pkgs/data/misc/mime-types/default.nix
index b18b66a227e..77b67e48f92 100644
--- a/pkgs/data/misc/mime-types/default.nix
+++ b/pkgs/data/misc/mime-types/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip }:
+{ lib, fetchzip }:
 
 let
   version = "9";
@@ -11,7 +11,7 @@ in fetchzip rec {
   '';
   sha256 = "0gyla4wfiaccs0qh0hw7n08kdpnkkssglcg0z2jblb2lsdr4qna0";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A database of common mappings of file extensions to MIME types";
     homepage = "https://packages.gentoo.org/packages/app-misc/mime-types";
     license = licenses.gpl2;
diff --git a/pkgs/data/misc/miscfiles/default.nix b/pkgs/data/misc/miscfiles/default.nix
index 3d1caf9ae51..783dc29ecb2 100644
--- a/pkgs/data/misc/miscfiles/default.nix
+++ b/pkgs/data/misc/miscfiles/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl}:
+{lib, stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
   name = "miscfiles-1.5";
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "005588vfrwx8ghsdv9p7zczj9lbc9a3r4m5aphcaqv8gif4siaka";
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://www.gnu.org/software/miscfiles/";
     license = licenses.gpl2Plus;
     description = "Collection of files not of crucial importance for sysadmins";
diff --git a/pkgs/data/misc/mobile-broadband-provider-info/default.nix b/pkgs/data/misc/mobile-broadband-provider-info/default.nix
index c9f24c9e85e..49755dbd8ad 100644
--- a/pkgs/data/misc/mobile-broadband-provider-info/default.nix
+++ b/pkgs/data/misc/mobile-broadband-provider-info/default.nix
@@ -1,21 +1,26 @@
-{ stdenv, fetchurl, gnome3 }:
+{ lib, stdenv, fetchurl, gnome, libxslt }:
 
 stdenv.mkDerivation rec {
   pname = "mobile-broadband-provider-info";
-  version = "20190116";
+  version = "20201225";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic";
+    sha256 = "1g9x2i4xjm2sagaha07n9psacbylrwfrmfqkp17gjwhpyi6w0zqd";
   };
 
+  nativeBuildInputs = [
+    # fixes configure: error: xsltproc not found
+    libxslt
+  ];
+
   passthru = {
-    updateScript = gnome3.updateScript {
+    updateScript = gnome.updateScript {
       packageName = pname;
     };
   };
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Mobile broadband service provider database";
     homepage = "https://wiki.gnome.org/Projects/NetworkManager/MobileBroadband/ServiceProviders";
     license = licenses.publicDomain;
diff --git a/pkgs/data/misc/nixos-artwork/icons.nix b/pkgs/data/misc/nixos-artwork/icons.nix
index caab674393a..af8a157d491 100644
--- a/pkgs/data/misc/nixos-artwork/icons.nix
+++ b/pkgs/data/misc/nixos-artwork/icons.nix
@@ -1,13 +1,25 @@
-{ stdenv, fetchFromGitHub, imagemagick }:
+{ stdenv
+, fetchFromGitHub
+, imagemagick
+}:
 
 stdenv.mkDerivation {
-  name = "nixos-icons-2017-03-16";
-  srcs = fetchFromGitHub {
+  pname = "nixos-icons";
+  version = "2021-02-24";
+
+  src = fetchFromGitHub {
     owner = "NixOS";
     repo = "nixos-artwork";
-    rev = "783ca1249fc4cfe523ad4e541f37e2229891bc8b";
-    sha256 = "0wp08b1gh2chs1xri43wziznyjcplx0clpsrb13wzyscv290ay5a";
+    rev = "488c22aad523c709c44169d3e88d34b4691c20dc";
+    sha256 = "ZoanCzn4pqGB1fyMzMyGQVT0eIhNdL7ZHJSn1VZWVRs=";
   };
-  makeFlags = [ "DESTDIR=$(out)" "prefix=" ];
-  nativeBuildInputs = [ imagemagick ];
+
+  nativeBuildInputs = [
+    imagemagick
+  ];
+
+  makeFlags = [
+    "DESTDIR=${placeholder "out"}"
+    "prefix="
+  ];
 }
diff --git a/pkgs/data/misc/nixos-artwork/wallpapers.nix b/pkgs/data/misc/nixos-artwork/wallpapers.nix
index 36242db4621..f8d22637cf3 100644
--- a/pkgs/data/misc/nixos-artwork/wallpapers.nix
+++ b/pkgs/data/misc/nixos-artwork/wallpapers.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ lib, stdenv, fetchurl }:
 
 let
   mkNixBackground = { name, src, description }:
@@ -33,7 +33,7 @@ _EOF
         kdeFilePath = "${pkg}/share/wallpapers/${name}/contents/images/${src.name}";
       };
 
-      meta = with stdenv.lib; {
+      meta = with lib; {
         inherit description;
         homepage = "https://github.com/NixOS/nixos-artwork";
         license = licenses.free;
diff --git a/pkgs/data/misc/osinfo-db/default.nix b/pkgs/data/misc/osinfo-db/default.nix
index d12eec8d8e3..17a63debdc6 100644
--- a/pkgs/data/misc/osinfo-db/default.nix
+++ b/pkgs/data/misc/osinfo-db/default.nix
@@ -1,23 +1,21 @@
-{ stdenv, fetchurl, osinfo-db-tools, gettext, libxml2 }:
+{ lib, stdenv, fetchurl, osinfo-db-tools, gettext, libxml2 }:
 
 stdenv.mkDerivation rec {
   pname = "osinfo-db";
-  version = "20200804";
+  version = "20210312";
 
   src = fetchurl {
     url = "https://releases.pagure.org/libosinfo/${pname}-${version}.tar.xz";
-    sha256 = "1gx8yky41kz2f03r7gvxgq8naysnrf8apsss61xqaxmmyd080z0v";
+    sha256 = "sha256-dUjsCeRFynN4xc65njntyohX+Ck4MeCzy1WPQjCHDhA=";
   };
 
   nativeBuildInputs = [ osinfo-db-tools gettext libxml2 ];
 
-  phases = [ "installPhase" ];
-
   installPhase = ''
     osinfo-db-import --dir "$out/share/osinfo" "${src}"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Osinfo database of information about operating systems for virtualization provisioning tools";
     homepage = "https://gitlab.com/libosinfo/osinfo-db/";
     license = licenses.gpl2Plus;
diff --git a/pkgs/data/misc/pari-galdata/default.nix b/pkgs/data/misc/pari-galdata/default.nix
index b07be5a0c05..c7673462805 100644
--- a/pkgs/data/misc/pari-galdata/default.nix
+++ b/pkgs/data/misc/pari-galdata/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchurl
 }:
 
@@ -16,11 +16,11 @@ stdenv.mkDerivation {
     cp -R * "$out/share/pari/"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "PARI database needed to compute Galois group in degrees 8 through 11";
     homepage = "http://pari.math.u-bordeaux.fr/";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
-    maintainers = with maintainers; [ timokau ];
+    maintainers = teams.sage.members;
   };
 }
diff --git a/pkgs/data/misc/pari-seadata-small/default.nix b/pkgs/data/misc/pari-seadata-small/default.nix
index 01ffd6db64f..86516fe1ddb 100644
--- a/pkgs/data/misc/pari-seadata-small/default.nix
+++ b/pkgs/data/misc/pari-seadata-small/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchurl
 }:
 
@@ -16,11 +16,11 @@ stdenv.mkDerivation {
     cp -R * "$out/share/pari/"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "PARI database needed by ellap for large primes";
     homepage = "http://pari.math.u-bordeaux.fr/";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
-    maintainers = with maintainers; [ timokau ];
+    maintainers = teams.sage.members;
   };
 }
diff --git a/pkgs/data/misc/polytopes_db/default.nix b/pkgs/data/misc/polytopes_db/default.nix
index 8fec9a85426..8e9e7b44a4a 100644
--- a/pkgs/data/misc/polytopes_db/default.nix
+++ b/pkgs/data/misc/polytopes_db/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchurl
 }:
 
@@ -16,10 +16,10 @@ stdenv.mkDerivation rec {
     cp -R * "$out/share/reflexive_polytopes/"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Reflexive polytopes database";
     license = licenses.gpl2;
     platforms = platforms.all;
-    maintainers = with maintainers; [ timokau ];
+    maintainers = teams.sage.members;
   };
 }
diff --git a/pkgs/data/misc/poppler-data/default.nix b/pkgs/data/misc/poppler-data/default.nix
index c06e63d3e69..5d6e7b8e80d 100644
--- a/pkgs/data/misc/poppler-data/default.nix
+++ b/pkgs/data/misc/poppler-data/default.nix
@@ -1,16 +1,16 @@
-{ fetchurl, stdenv, cmake, ninja }:
+{ fetchurl, lib, stdenv, cmake, ninja }:
 
 stdenv.mkDerivation rec {
-  name = "poppler-data-0.4.9";
+  name = "poppler-data-0.4.10";
 
   src = fetchurl {
     url = "https://poppler.freedesktop.org/${name}.tar.gz";
-    sha256 = "04i0wgdkn5lhda8cyxd1ll4a2p41pwqrwd47n9mdpl7cx5ypx70z";
+    sha256 = "0c3vjs3p7rjc4yfacnhd865r27czmzwcr4j2z4jldi68dvvcwbvf";
   };
 
   nativeBuildInputs = [ cmake ninja ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://poppler.freedesktop.org/";
     description = "Encoding files for Poppler, a PDF rendering library";
     platforms = platforms.all;
diff --git a/pkgs/data/misc/rime-data/default.nix b/pkgs/data/misc/rime-data/default.nix
new file mode 100644
index 00000000000..371a07d3ec1
--- /dev/null
+++ b/pkgs/data/misc/rime-data/default.nix
@@ -0,0 +1,66 @@
+{ lib, stdenv, fetchFromGitHub, librime }:
+
+stdenv.mkDerivation {
+  pname = "rime-data";
+  version = "0.38.20210628";
+
+  src = fetchFromGitHub {
+    owner = "rime";
+    repo = "plum";
+    rev = "0b835e347cad9c2d7038cfe82df5b5d1fe1c0327";
+    sha256 = "0mja4wyazxdc6fr7pzij5ah4rzwxv4s12s64vfn5ikx1ias1f8ib";
+  };
+
+  buildInputs = [ librime ];
+
+  buildFlags = [ "all" ];
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  preBuild = import ./fetchSchema.nix fetchFromGitHub;
+
+  postPatch = ''
+    # Disable git operations.
+    sed -i /fetch_or_update_package$/d scripts/install-packages.sh
+  '';
+
+  meta = with lib; {
+    description = "Schema data of Rime Input Method Engine";
+    longDescription = ''
+      Rime-data provides schema data for Rime Input Method Engine.
+    '';
+    homepage = "https://rime.im";
+    license = with licenses; [
+      # rime-array
+      # rime-combo-pinyin
+      # rime-double-pinyin
+      # rime-middle-chinese
+      # rime-scj
+      # rime-soutzoe
+      # rime-stenotype
+      # rime-wugniu
+      gpl3Only
+
+      # plum
+      # rime-bopomofo
+      # rime-cangjie
+      # rime-emoji
+      # rime-essay
+      # rime-ipa
+      # rime-jyutping
+      # rime-luna-pinyin
+      # rime-prelude
+      # rime-quick
+      # rime-stroke
+      # rime-terra-pinyin
+      # rime-wubi
+      lgpl3Only
+
+      # rime-pinyin-simp
+      asl20
+
+      # rime-cantonese
+      cc-by-40
+    ];
+    maintainers = [ maintainers.pengmeiyu ];
+  };
+}
diff --git a/pkgs/data/misc/rime-data/fetchSchema.nix b/pkgs/data/misc/rime-data/fetchSchema.nix
new file mode 100644
index 00000000000..7bf7d8477c5
--- /dev/null
+++ b/pkgs/data/misc/rime-data/fetchSchema.nix
@@ -0,0 +1,137 @@
+# Generated using generateFetchSchema.sh
+fetchFromGitHub:
+''
+mkdir -p package/rime
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-array";
+  rev = "8514193da939bc8888ad6a744f5e5921d4baebc7";
+  sha256 = "1fy7pcq7d8m0wzkkhklmv6p370ms9lqc1zpndyy2xjamzrbb9l83";
+}} package/rime/array
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-bopomofo";
+  rev = "c7618f4f5728e1634417e9d02ea50d82b71956ab";
+  sha256 = "0g77nv0jrwqnbqqna0ib0kqcy6l5zl62kh49ny67d6bjwnwz9186";
+}} package/rime/bopomofo
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-cangjie";
+  rev = "8dfad9e537f18821b71ba28773315d9c670ae245";
+  sha256 = "029kw9nx6x0acg4f0m8wj1ziqffffhy9yyj51nlx17cnia0qcrby";
+}} package/rime/cangjie
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-cantonese";
+  rev = "b6f800c74eb639816d56d0d5601aaa96c8963178";
+  sha256 = "1a4ksacbz8l30y3y5c017d0hzwik8knplglb3yswy7l4hsvaanyh";
+}} package/rime/cantonese
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-combo-pinyin";
+  rev = "a84065a86b272c76215215bd6f03c506b6e7097c";
+  sha256 = "1f0b4kakw0x26gmx7xi4f94nbjlb8lvi9bks4f92jswa045vnd87";
+}} package/rime/combo-pinyin
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-double-pinyin";
+  rev = "69bf85d4dfe8bac139c36abbd68d530b8b6622ea";
+  sha256 = "093wif5avvvw45fqbwj5wkbxrychy4pagl4mwsmbrayc8jkp69ak";
+}} package/rime/double-pinyin
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-emoji";
+  rev = "4c8c51f4a3bc7298c99376eda9bbd86070fc4fa1";
+  sha256 = "0175jqh210fncafqckr9zzaw55qpswmqjrykwms1apmc68l43122";
+}} package/rime/emoji
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-essay";
+  rev = "9db2e77305e75798baf3ec8dcf1f82785b5e1be9";
+  sha256 = "03ypkkaadd5qmyg26n24a66cll90xvcimgbmiyv4d33jradiqg22";
+}} package/rime/essay
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-ipa";
+  rev = "22b71710e029bcb412e9197192a638ab11bc2abf";
+  sha256 = "0zdk4f9qkfj3q5hmjnairj1lv6f6y27mic12k886n6sxywwbwr2k";
+}} package/rime/ipa
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-jyutping";
+  rev = "1e24baa6998815c716c581effe8ec65ee87c4e8c";
+  sha256 = "0s2rckpwlrm3n7w1csnqyi5p9mkpp3z87s7mrm2vc9sv06rpv7zl";
+}} package/rime/jyutping
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-luna-pinyin";
+  rev = "623adb022b094d540218b287c2e601509eee3347";
+  sha256 = "06pcwp09l5wkqv7792gbsl31xnlb3gr9q6bgbp94vvq6m2ycahqz";
+}} package/rime/luna-pinyin
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-middle-chinese";
+  rev = "9fad7a7c0c26167d5e6e85db8df48a15c7f7d4f0";
+  sha256 = "0a0bqrlzg0k692xblqnh1rh1fwwqqb205xwxlihgji85n8ibcgph";
+}} package/rime/middle-chinese
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-pinyin-simp";
+  rev = "b0e84cda02c613ebdedc127a26131b3800f45a8e";
+  sha256 = "05v804qr3a9xvjzp9yid7231fi2l2yrl47ybbvql61z9k36ab094";
+}} package/rime/pinyin-simp
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-prelude";
+  rev = "3de303ffaa731dba07b0462ce59f4767e1219ad2";
+  sha256 = "0g7a0bla58rh1v3md59k6adk185pilb4z8i2i0pqdl4nwqp40n2p";
+}} package/rime/prelude
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-quick";
+  rev = "3fe5911ba608cb2df1b6301b76ad1573bd482a76";
+  sha256 = "08bh87ym5qvw55lyw20l3m7jd4c2z5rvil8h5q8790r7z6j6ijy9";
+}} package/rime/quick
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-scj";
+  rev = "cab5a0858765eff0553dd685a2d61d5536e9149c";
+  sha256 = "0ard2bjp4896a8dimmcwyjwgmp9kl4rz92yc92jnd3y4rgwl6fvk";
+}} package/rime/scj
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-soutzoe";
+  rev = "beeaeca72d8e17dfd1e9af58680439e9012987dc";
+  sha256 = "0jyqx0q9s0qxn168l5n8zav8jcl2g5ppr7pa8jm1vwrllf20slcc";
+}} package/rime/soutzoe
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-stenotype";
+  rev = "f3e9189d5ce33c55d3936cc58e39d0c88b3f0c88";
+  sha256 = "0dl6px7lrh3xa87knjzwzdcwjj1k1dg4l72q7lb48an4s9f1cy5d";
+}} package/rime/stenotype
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-stroke";
+  rev = "ea8576d1accd6fda339e96b415caadb56e2a07d1";
+  sha256 = "07h6nq9867hjrd2v3h1pnr940sdrw4mqrzj43siz1rzjxz3s904r";
+}} package/rime/stroke
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-terra-pinyin";
+  rev = "ce7b9249612f575d2f43d51fcacd31d1b4e0ef1b";
+  sha256 = "0vm303f4lrdmdmif5klrp6w29vn9z2vzw33cw0y83pcnz39wiads";
+}} package/rime/terra-pinyin
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-wubi";
+  rev = "f1876f08f1d4a9696395be0070c0e8e4353c44cb";
+  sha256 = "1d9y9rqssacria9d0hla96czsqv2wkfm6z926m1x269ryv96zxvk";
+}} package/rime/wubi
+ln -sv ${fetchFromGitHub {
+  owner = "rime";
+  repo = "rime-wugniu";
+  rev = "abd1ee98efbf170258fcf43875c21a4259e00b61";
+  sha256 = "0qn54d3cclny106ixdw08r5n6wn52ffs1hgrma3k0j4pv0kr9nlq";
+}} package/rime/wugniu
+''
diff --git a/pkgs/data/misc/rime-data/generateFetchSchema.sh b/pkgs/data/misc/rime-data/generateFetchSchema.sh
new file mode 100755
index 00000000000..e7c05c41028
--- /dev/null
+++ b/pkgs/data/misc/rime-data/generateFetchSchema.sh
@@ -0,0 +1,43 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p nix-prefetch-git -p jq
+
+imlist=(
+    array
+    bopomofo
+    cangjie
+    cantonese
+    combo-pinyin
+    double-pinyin
+    emoji
+    essay
+    ipa
+    jyutping
+    luna-pinyin
+    middle-chinese
+    pinyin-simp
+    prelude
+    quick
+    scj
+    soutzoe
+    stenotype
+    stroke
+    terra-pinyin
+    wubi
+    wugniu
+)
+
+echo "# Generated using generateFetchSchema.sh"
+echo "fetchFromGitHub:"
+echo \'\'
+echo "mkdir -p package/rime"
+for im in ${imlist[@]}; do
+    tempFile=$(mktemp)
+    echo "ln -sv \${fetchFromGitHub {"
+    echo "  owner = \"rime\";"
+    echo "  repo = \"rime-$im\";"
+    nix-prefetch-git --quiet https://github.com/rime/rime-$im \
+        | jq '{ rev: .rev, sha256: .sha256 }' \
+        | jq -r 'to_entries | map("  \(.key) = \"\(.value)\";") | .[]'
+    echo "}} package/rime/$im"
+done
+echo \'\'
diff --git a/pkgs/data/misc/scowl/default.nix b/pkgs/data/misc/scowl/default.nix
index 686582b48ce..15c2699d8bb 100644
--- a/pkgs/data/misc/scowl/default.nix
+++ b/pkgs/data/misc/scowl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, unzip, zip, libiconv, perl, aspell, dos2unix
+{ lib, stdenv, fetchFromGitHub, unzip, zip, libiconv, perl, aspell, dos2unix
 , singleWordlist ? null
 }:
 
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ unzip zip perl aspell dos2unix ];
-  buildInputs = stdenv.lib.optional (!stdenv.isLinux) libiconv;
+  buildInputs = lib.optional (!stdenv.isLinux) libiconv;
 
   NIX_CFLAGS_COMPILE = "-Wno-narrowing";
 
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     export PERL5LIB="$PERL5LIB''${PERL5LIB:+:}$PWD/varcon"
   '';
 
-  postBuild = stdenv.lib.optionalString (singleWordlist == null) ''
+  postBuild = lib.optionalString (singleWordlist == null) ''
     (
     cd scowl/speller
     make aspell
@@ -102,11 +102,10 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    inherit version;
     description = "Spell checker oriented word lists";
-    license = stdenv.lib.licenses.mit;
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.unix;
+    license = lib.licenses.mit;
+    maintainers = [lib.maintainers.raskin];
+    platforms = lib.platforms.unix;
     homepage = "http://wordlist.aspell.net/";
   };
 }
diff --git a/pkgs/data/misc/shared-desktop-ontologies/default.nix b/pkgs/data/misc/shared-desktop-ontologies/default.nix
index 7e628567b6e..88f9eec8fca 100644
--- a/pkgs/data/misc/shared-desktop-ontologies/default.nix
+++ b/pkgs/data/misc/shared-desktop-ontologies/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchurl, cmake }:
+{ lib, stdenv, fetchurl, cmake }:
 
 stdenv.mkDerivation rec {
   name = "shared-desktop-ontologies-0.11.0";
-  
+
   src = fetchurl {
     url = "mirror://sourceforge/oscaf/${name}.tar.bz2";
     sha256 = "1m5vnijg7rnwg41vig2ckg632dlczzdab1gsq51g4x7m9k1fdbw2";
   };
-  
-  buildInputs = [ cmake ];
-  
-  meta = with stdenv.lib; {
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with lib; {
     homepage = "http://oscaf.sourceforge.net/";
     description = "Ontologies necessary for the Nepomuk semantic desktop";
     longDescription = ''
@@ -23,4 +23,3 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.sander ];
   };
 }
-
diff --git a/pkgs/data/misc/shared-mime-info/default.nix b/pkgs/data/misc/shared-mime-info/default.nix
index 4d286ad0f0a..416bf009518 100644
--- a/pkgs/data/misc/shared-mime-info/default.nix
+++ b/pkgs/data/misc/shared-mime-info/default.nix
@@ -1,40 +1,63 @@
 { stdenv
-, fetchurl
-, pkgconfig
+, lib
+, fetchFromGitLab
+, fetchpatch
+, meson
+, ninja
+, pkg-config
 , gettext
-, perlPackages
 , itstool
 , libxml2
 , glib
+, shared-mime-info
 }:
 
 stdenv.mkDerivation rec {
   pname = "shared-mime-info";
-  version = "1.13.1";
+  version = "2.1";
 
-  src = fetchurl {
-    url = "https://gitlab.freedesktop.org/xdg/${pname}/uploads/5349e18c86eb96eee258a5c1f19122d0/${pname}-${version}.tar.xz";
-    sha256 = "1bic8z5nz08qxv1x6zlxnx2j4cmlzm12kygrn3rrh1djqxdhma3f";
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = "xdg";
+    repo = pname;
+    rev = version;
+    sha256 = "07bxv44p43pqq4ymfnyy50yli7lwdqymhvclna42rkn1cazq3vb5";
   };
 
+  patches = [
+    # xmlto is only used for building the docs, which are not installed anyways.
+    (fetchpatch {
+      name = "xmlto-optional.patch";
+      url = "https://gitlab.freedesktop.org/xdg/shared-mime-info/-/merge_requests/110.patch";
+      sha256 = "0p5gxlcmn8ji5bc7pd105s1halqwa1d28lfx9yj43rn6mav7allx";
+    })
+  ];
+
   nativeBuildInputs = [
-    pkgconfig
+    meson
+    ninja
+    pkg-config
     gettext
     itstool
-  ] ++ (with perlPackages; [
-    perl XMLParser
-  ]);
+    libxml2
+  ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) shared-mime-info;
 
   buildInputs = [
     libxml2
     glib
   ];
 
-  meta = with stdenv.lib; {
+  strictDeps = true;
+
+  mesonFlags = [
+    "-Dupdate-mimedb=true"
+  ];
+
+  meta = with lib; {
     description = "A database of common MIME types";
     homepage = "http://freedesktop.org/wiki/Software/shared-mime-info";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
-    maintainers = [ maintainers.mimame ];
+    maintainers = teams.freedesktop.members ++ [ maintainers.mimame ];
   };
 }
diff --git a/pkgs/data/misc/sound-theme-freedesktop/default.nix b/pkgs/data/misc/sound-theme-freedesktop/default.nix
index 90829006194..2b750a7e9e1 100644
--- a/pkgs/data/misc/sound-theme-freedesktop/default.nix
+++ b/pkgs/data/misc/sound-theme-freedesktop/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, intltool }:
+{ lib, stdenv, fetchurl, intltool }:
 
 stdenv.mkDerivation rec {
   pname = "sound-theme-freedesktop";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ intltool ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Freedesktop reference sound theme";
     homepage = "http://freedesktop.org/wiki/Specifications/sound-theme-spec";
     # See http://cgit.freedesktop.org/sound-theme-freedesktop/tree/CREDITS:
diff --git a/pkgs/data/misc/spdx-license-list-data/default.nix b/pkgs/data/misc/spdx-license-list-data/default.nix
index 6d2c58afdb2..107d3804e62 100644
--- a/pkgs/data/misc/spdx-license-list-data/default.nix
+++ b/pkgs/data/misc/spdx-license-list-data/default.nix
@@ -1,26 +1,29 @@
-{ stdenv, lib, fetchFromGitHub }:
+{ stdenvNoCC, lib, fetchFromGitHub }:
 
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
   pname = "spdx-license-list-data";
-  version = "3.10";
+  version = "3.13";
 
   src = fetchFromGitHub {
     owner = "spdx";
     repo = "license-list-data";
     rev = "v${version}";
-    sha256 = "1zza0jrs82112dcjqgkyck2b7hv4kg9s10pmlripi6c1rs37av14";
+    sha256 = "184qfz8jifkd4jvqkdfmcgplf12cdx83gynb7mxzmkfg2xymlr0g";
   };
 
-  phases = [ "unpackPhase" "installPhase" ];
-
   installPhase = ''
+    runHook preInstall
+
     install -vDt $out/json json/licenses.json
+
+    runHook postInstall
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Various data formats for the SPDX License List";
     homepage = "https://github.com/spdx/license-list-data";
-    license = lib.licenses.cc0;
-    platforms = lib.platforms.all;
+    license = licenses.cc0;
+    maintainers = with maintainers; [ oxzi ];
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/data/misc/tzdata/default.nix b/pkgs/data/misc/tzdata/default.nix
index 367ee06390c..aa3d9e787b6 100644
--- a/pkgs/data/misc/tzdata/default.nix
+++ b/pkgs/data/misc/tzdata/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchurl, buildPackages }:
+{ lib, stdenv, fetchurl, buildPackages }:
 
 stdenv.mkDerivation rec {
   pname = "tzdata";
-  version = "2019c";
+  version = "2021a";
 
   srcs =
     [ (fetchurl {
         url = "https://data.iana.org/time-zones/releases/tzdata${version}.tar.gz";
-        sha256 = "0z7w1yv37cfk8yhix2cillam091vgp1j4g8fv84261q9mdnq1ivr";
+        sha256 = "022fn6gkmp7pamlgab04x0dm5hnyn2m2fcnyr3pvm36612xd5rrr";
       })
       (fetchurl {
         url = "https://data.iana.org/time-zones/releases/tzcode${version}.tar.gz";
-        sha256 = "1m3y2rnf1nggxxhxplab5zdd5whvar3ijyrv7lifvm82irkd7szn";
+        sha256 = "1l02b0jiwp3fl0xd6227i69d26rmx3yrnq0ssq9vvdmm4jhvyipb";
       })
     ];
 
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
     "MANDIR=$(man)/share/man"
     "AWK=awk"
     "CFLAGS=-DHAVE_LINK=0"
+    "CFLAGS+=-DZIC_BLOAT_DEFAULT=\\\"fat\\\""
     "cc=${stdenv.cc.targetPrefix}cc"
     "AR=${stdenv.cc.targetPrefix}ar"
   ];
@@ -44,7 +45,7 @@ stdenv.mkDerivation rec {
   preInstall = ''
      mv zic.o zic.o.orig
      mv zic zic.orig
-     make $makeFlags cc=cc AR=ar zic
+     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
@@ -63,9 +64,14 @@ stdenv.mkDerivation rec {
 
   setupHook = ./tzdata-setup-hook.sh;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "http://www.iana.org/time-zones";
     description = "Database of current and historical time zones";
+    changelog = "https://github.com/eggert/tz/blob/${version}/NEWS";
+    license = with licenses; [
+      bsd3 # tzcode
+      publicDomain # tzdata
+    ];
     platforms = platforms.all;
     maintainers = with maintainers; [ fpletz ];
   };
diff --git a/pkgs/data/misc/unicode-character-database/default.nix b/pkgs/data/misc/unicode-character-database/default.nix
index e52f21713ed..0f0a4d5fa15 100644
--- a/pkgs/data/misc/unicode-character-database/default.nix
+++ b/pkgs/data/misc/unicode-character-database/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchurl
 , unzip
 }:
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Unicode Character Database";
     homepage = "https://www.unicode.org/";
     license = licenses.unicode-dfs-2016;
diff --git a/pkgs/data/misc/unicode-emoji/default.nix b/pkgs/data/misc/unicode-emoji/default.nix
index b7705d7ee5b..b91afb08f60 100644
--- a/pkgs/data/misc/unicode-emoji/default.nix
+++ b/pkgs/data/misc/unicode-emoji/default.nix
@@ -1,7 +1,6 @@
-{ stdenv
+{ lib
 , fetchurl
 , symlinkJoin
-, lib
 }:
 
 let
@@ -50,7 +49,7 @@ symlinkJoin rec {
 
   passthru = srcs;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Unicode Emoji Data Files";
     homepage = "https://home.unicode.org/emoji/";
     license = licenses.unicode-dfs-2016;
diff --git a/pkgs/data/misc/unihan-database/default.nix b/pkgs/data/misc/unihan-database/default.nix
index d5d62403cc3..02632b92644 100644
--- a/pkgs/data/misc/unihan-database/default.nix
+++ b/pkgs/data/misc/unihan-database/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchurl
 , unzip
 }:
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Unicode Han Database";
     homepage = "https://www.unicode.org/";
     license = licenses.unicode-dfs-2016;
diff --git a/pkgs/data/misc/wireless-regdb/default.nix b/pkgs/data/misc/wireless-regdb/default.nix
index cc22606c0d6..ca57640e4ab 100644
--- a/pkgs/data/misc/wireless-regdb/default.nix
+++ b/pkgs/data/misc/wireless-regdb/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl }:
+{ lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
   pname = "wireless-regdb";
-  version = "2020.04.29";
+  version = "2021.04.21";
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/network/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0yicda474ygahv8da18h1p4yf42s6x2f208mlwcw4xsrxld07zc9";
+    sha256 = "sha256-nkwCsqlxDfTb2zJ8OWEujLuuZJWYev7drrqyjB6j2Po=";
   };
 
   dontBuild = true;
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     "PREFIX="
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Wireless regulatory database for CRDA";
     homepage = "http://wireless.kernel.org/en/developers/Regulatory/";
     license = licenses.isc;
diff --git a/pkgs/data/misc/xorg-rgb/default.nix b/pkgs/data/misc/xorg-rgb/default.nix
index e976fe1358d..205fcabc713 100644
--- a/pkgs/data/misc/xorg-rgb/default.nix
+++ b/pkgs/data/misc/xorg-rgb/default.nix
@@ -1,21 +1,22 @@
-{stdenv, fetchurl, pkgconfig, xorgproto}:
+{ lib, stdenv, fetchurl, pkg-config, xorgproto }:
+
 stdenv.mkDerivation rec {
   pname = "rgb";
   version = "1.0.6";
 
   src = fetchurl {
-    url = "http://xorg.freedesktop.org/archive/individual/app/rgb-${version}.tar.bz2";
+    url = "https://xorg.freedesktop.org/archive/individual/app/rgb-${version}.tar.bz2";
     sha256 = "1c76zcjs39ljil6f6jpx1x17c8fnvwazz7zvl3vbjfcrlmm7rjmv";
   };
 
-  nativeBuildInputs = [pkgconfig];
-  buildInputs = [xorgproto];
-  meta = {
-    inherit version;
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ xorgproto ];
+
+  meta = with lib; {
     description = "X11 colorname to RGB mapping database";
-    license = stdenv.lib.licenses.mit;
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.linux;
-    homepage = "http://xorg.freedesktop.org/";
+    license = licenses.mit;
+    maintainers = [ maintainers.raskin ];
+    platforms = platforms.linux;
+    homepage = "https://xorg.freedesktop.org/";
   };
 }
diff --git a/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/3.1.nix b/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/3.1.nix
index 0faad5b594f..b1db3638682 100644
--- a/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/3.1.nix
+++ b/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/3.1.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, unzip }:
+{ lib, stdenv, fetchurl, unzip }:
 
 let
 
@@ -32,6 +32,6 @@ stdenv.mkDerivation {
     '';
 
   meta = {
-    platforms = stdenv.lib.platforms.unix;
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/4.1.nix b/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/4.1.nix
index 4b0ced9daae..85d7ab16796 100644
--- a/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/4.1.nix
+++ b/pkgs/data/sgml+xml/schemas/sgml-dtd/docbook/4.1.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, unzip }:
+{ lib, stdenv, fetchurl, unzip }:
 
 let
 
@@ -32,6 +32,6 @@ stdenv.mkDerivation {
     '';
 
   meta = {
-    platforms = stdenv.lib.platforms.unix;
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/default.nix b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/default.nix
index a3b7067b2a4..1c6e57b3e7a 100644
--- a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/default.nix
+++ b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl}:
+{lib, stdenv, fetchurl}:
 
 stdenv.mkDerivation {
   name = "docbook-xml-ebnf-1.2b1";
@@ -20,6 +20,6 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    platforms = stdenv.lib.platforms.unix;
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix
index de126da9f90..8a10defa0fb 100644
--- a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix
+++ b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, unzip, findXMLCatalogs}:
+{lib, stdenv, fetchurl, unzip, findXMLCatalogs}:
 
 let
 
@@ -12,7 +12,7 @@ let
 in
 
 import ./generic.nix {
-  inherit stdenv unzip findXMLCatalogs;
+  inherit lib stdenv unzip findXMLCatalogs;
   name = "docbook-xml-4.1.2";
   src = fetchurl {
     url = "http://www.docbook.org/xml/4.1.2/docbkx412.zip";
diff --git a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix
index f894db24827..9a9abc0588b 100644
--- a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix
+++ b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix
@@ -1,7 +1,7 @@
-{stdenv, fetchurl, unzip, findXMLCatalogs}:
+{lib, stdenv, fetchurl, unzip, findXMLCatalogs}:
 
 import ./generic.nix {
-  inherit stdenv unzip findXMLCatalogs;
+  inherit lib stdenv unzip findXMLCatalogs;
   name = "docbook-xml-4.2";
   src = fetchurl {
     url = "http://www.docbook.org/xml/4.2/docbook-xml-4.2.zip";
diff --git a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix
index dc2ec36ccef..4d821ce2ffb 100644
--- a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix
+++ b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix
@@ -1,7 +1,7 @@
-{stdenv, fetchurl, unzip, findXMLCatalogs}:
+{lib, stdenv, fetchurl, unzip, findXMLCatalogs}:
 
 import ./generic.nix {
-  inherit stdenv unzip findXMLCatalogs;
+  inherit lib stdenv unzip findXMLCatalogs;
   name = "docbook-xml-4.3";
   src = fetchurl {
     url = "http://www.docbook.org/xml/4.3/docbook-xml-4.3.zip";
diff --git a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.4.nix b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.4.nix
index 93b03d85457..ca847d3e436 100644
--- a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.4.nix
+++ b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.4.nix
@@ -1,7 +1,7 @@
-{stdenv, fetchurl, unzip, findXMLCatalogs}:
+{lib, stdenv, fetchurl, unzip, findXMLCatalogs}:
 
 import ./generic.nix {
-  inherit stdenv unzip findXMLCatalogs;
+  inherit lib stdenv unzip findXMLCatalogs;
   name = "docbook-xml-4.4";
   src = fetchurl {
     url = "http://www.docbook.org/xml/4.4/docbook-xml-4.4.zip";
diff --git a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix
index 5bdb63e69da..7be810fe307 100644
--- a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix
+++ b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix
@@ -1,7 +1,7 @@
-{stdenv, fetchurl, unzip, findXMLCatalogs}:
+{lib, stdenv, fetchurl, unzip, findXMLCatalogs}:
 
 import ./generic.nix {
-  inherit stdenv unzip findXMLCatalogs;
+  inherit lib stdenv unzip findXMLCatalogs;
   name = "docbook-xml-4.5";
   src = fetchurl {
     url = "http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip";
diff --git a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/generic.nix b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/generic.nix
index 41c4b73d3f6..3d6edd300ec 100644
--- a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/generic.nix
+++ b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook/generic.nix
@@ -1,4 +1,4 @@
-{ stdenv, unzip, src, name, postInstall ? "true", meta ? {}, findXMLCatalogs }:
+{ lib, stdenv, unzip, src, name, postInstall ? "true", meta ? {}, findXMLCatalogs }:
 
 stdenv.mkDerivation {
   inherit src name postInstall;
@@ -18,6 +18,6 @@ stdenv.mkDerivation {
   '';
 
   meta = meta // {
-    platforms = stdenv.lib.platforms.unix;
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix b/pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix
index 383a8750f1f..c698098e6c1 100644
--- a/pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix
+++ b/pkgs/data/sgml+xml/schemas/xml-dtd/xhtml1/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libxml2 }:
+{ lib, stdenv, fetchurl, libxml2 }:
 
 stdenv.mkDerivation {
   name = "xhtml1-20020801";
@@ -20,13 +20,13 @@ stdenv.mkDerivation {
       xmlcatalog --noout --create $cat
       grep PUBLIC DTD/*.soc | while read x; do
           eval a=($x)
-          xmlcatalog --noout --add public "''${a[1]}" "''${a[2]}" $cat 
+          xmlcatalog --noout --add public "''${a[1]}" "''${a[2]}" $cat
       done
     ''; # */
 
   meta = {
     homepage = "http://www.w3.org/TR/xhtml1/";
     description = "DTDs for XHTML 1.0, the Extensible HyperText Markup Language";
-    platforms = stdenv.lib.platforms.unix;
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/data/soundfonts/fluid/default.nix b/pkgs/data/soundfonts/fluid/default.nix
index c1c318383a0..1f84a6fd1ee 100644
--- a/pkgs/data/soundfonts/fluid/default.nix
+++ b/pkgs/data/soundfonts/fluid/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation {
   name = "Fluid-3";
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
     install -Dm644 "FluidR3 GM2-2.SF2" $out/share/soundfonts/FluidR3_GM2-2.sf2
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Frank Wen's pro-quality GM/GS soundfont";
     homepage = "http://www.hammersound.net/";
     license = licenses.mit;
diff --git a/pkgs/data/themes/adapta-kde/default.nix b/pkgs/data/themes/adapta-kde/default.nix
index fed16da929c..4feeeaa6c00 100644
--- a/pkgs/data/themes/adapta-kde/default.nix
+++ b/pkgs/data/themes/adapta-kde/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "adapta-kde-theme";
@@ -21,8 +21,8 @@ stdenv.mkDerivation rec {
   meta = {
     description = "A port of the Adapta theme for Plasma";
     homepage = "https://git.io/adapta-kde";
-    license = stdenv.lib.licenses.gpl3;
-    maintainers = [ stdenv.lib.maintainers.tadfisher ];
-    platforms = stdenv.lib.platforms.all;
+    license = lib.licenses.gpl3;
+    maintainers = [ lib.maintainers.tadfisher ];
+    platforms = lib.platforms.all;
   };
 }
diff --git a/pkgs/data/themes/adapta/default.nix b/pkgs/data/themes/adapta/default.nix
index a9a80143fc9..fc6e5b8c355 100644
--- a/pkgs/data/themes/adapta/default.nix
+++ b/pkgs/data/themes/adapta/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, parallel, sassc, inkscape_0, libxml2, glib, gdk-pixbuf, librsvg, gtk-engine-murrine, gnome3 }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, parallel, sassc, inkscape, libxml2, glib, gdk-pixbuf, librsvg, gtk-engine-murrine, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "adapta-gtk-theme";
@@ -15,13 +15,13 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     autoreconfHook
-    pkgconfig
+    pkg-config
     parallel
     sassc
-    inkscape_0
+    inkscape
     libxml2
     glib.dev
-    gnome3.gnome-shell
+    gnome.gnome-shell
   ];
 
   buildInputs = [
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     "--disable-unity"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An adaptive GTK theme based on Material Design Guidelines";
     homepage = "https://github.com/adapta-project/adapta-gtk-theme";
     license = with licenses; [ gpl2 cc-by-sa-30 ];
diff --git a/pkgs/data/themes/adementary/default.nix b/pkgs/data/themes/adementary/default.nix
index 4c8362b346b..8b03132bfcb 100644
--- a/pkgs/data/themes/adementary/default.nix
+++ b/pkgs/data/themes/adementary/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, gtk3, sassc }:
+{ lib, stdenv, fetchFromGitHub, gtk3, sassc }:
 
 stdenv.mkDerivation rec {
   pname = "adementary-theme";
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     ./install.sh -d $out/share/themes
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Adwaita-based GTK theme with design influence from elementary OS and Vertex GTK theme";
     homepage    = "https://github.com/hrdwrrsk/adementary-theme";
     license     = licenses.gpl3;
diff --git a/pkgs/data/themes/adwaita-qt/default.nix b/pkgs/data/themes/adwaita-qt/default.nix
index ace93fa4495..fa69afe50c5 100644
--- a/pkgs/data/themes/adwaita-qt/default.nix
+++ b/pkgs/data/themes/adwaita-qt/default.nix
@@ -1,14 +1,24 @@
-{ mkDerivation, lib, fetchFromGitHub, nix-update-script, cmake, ninja, qtbase, pantheon }:
+{ mkDerivation
+, stdenv
+, lib
+, fetchFromGitHub
+, nix-update-script
+, cmake
+, ninja
+, qtbase
+, qt5
+, xorg
+}:
 
 mkDerivation rec {
   pname = "adwaita-qt";
-  version = "1.1.4";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "FedoraQt";
     repo = pname;
     rev = version;
-    sha256 = "19s97wm96g3828dp8m85j3lsn1n6h5h2zqk4652hcqcgq6xb6gv5";
+    sha256 = "sha256-3uHa7veLzaSIm9WSR/Z0X+aSdXziO1TnI/CQgccrKYg=";
   };
 
   nativeBuildInputs = [
@@ -18,11 +28,14 @@ mkDerivation rec {
 
   buildInputs = [
     qtbase
+    qt5.qtx11extras
+  ] ++ lib.optionals stdenv.isLinux [
+    xorg.libxcb
   ];
 
   postPatch = ''
     # Fix plugin dir
-    substituteInPlace style/CMakeLists.txt \
+    substituteInPlace src/style/CMakeLists.txt \
        --replace "DESTINATION \"\''${QT_PLUGINS_DIR}/styles" "DESTINATION \"$qtPluginPrefix/styles"
   '';
 
@@ -36,7 +49,7 @@ mkDerivation rec {
     description = "A style to bend Qt applications to look like they belong into GNOME Shell";
     homepage = "https://github.com/FedoraQt/adwaita-qt";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ worldofpeace ];
-    platforms = platforms.linux;
+    maintainers = teams.gnome.members ++ (with maintainers; [ ]);
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/data/themes/albatross/default.nix b/pkgs/data/themes/albatross/default.nix
index 1baa977d101..b53dd553ca2 100644
--- a/pkgs/data/themes/albatross/default.nix
+++ b/pkgs/data/themes/albatross/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "Albatross";
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "A desktop Suite for Xfce";
     homepage = "https://github.com/shimmerproject/Albatross";
-    license = stdenv.lib.licenses.gpl2;
-    platforms = stdenv.lib.platforms.unix;
+    license = lib.licenses.gpl2;
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/data/themes/amber/default.nix b/pkgs/data/themes/amber/default.nix
index 589ce716f49..e39f0e3f645 100644
--- a/pkgs/data/themes/amber/default.nix
+++ b/pkgs/data/themes/amber/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, meson, ninja, sassc, gdk-pixbuf, librsvg, gtk_engines, gtk-engine-murrine }:
+{ lib, stdenv, fetchFromGitHub, meson, ninja, sassc, gdk-pixbuf, librsvg, gtk_engines, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "amber-theme";
-  version = "3.36-1";
+  version = "3.38-1";
 
   src = fetchFromGitHub {
     owner = "lassekongo83";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0dn81ca3kyfz4ql15kl5108gw309cc0c1inmwlch1nq5dslmfjji";
+    sha256 = "sha256-OrdBeAD+gdIu6u8ESE9PtqYadSuJ8nx1Z8fB4D9y4W4=";
   };
 
   nativeBuildInputs = [ meson ninja sassc ];
@@ -17,10 +17,10 @@ stdenv.mkDerivation rec {
 
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "GTK, gnome-shell and Xfce theme based on Ubuntu Ambiance";
     homepage = "https://github.com/lassekongo83/amber-theme";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/data/themes/ant-theme/ant-bloody.nix b/pkgs/data/themes/ant-theme/ant-bloody.nix
index 3c540889c13..66cd3e247a7 100644
--- a/pkgs/data/themes/ant-theme/ant-bloody.nix
+++ b/pkgs/data/themes/ant-theme/ant-bloody.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gtk-engine-murrine }:
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
 
 let
   themeName = "Ant-Bloody";
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Bloody variant of the Ant theme";
     homepage = "https://github.com/EliverLara/${themeName}";
     license = licenses.gpl3;
diff --git a/pkgs/data/themes/ant-theme/ant-dracula.nix b/pkgs/data/themes/ant-theme/ant-dracula.nix
deleted file mode 100644
index e365ab94c30..00000000000
--- a/pkgs/data/themes/ant-theme/ant-dracula.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv, fetchurl, gtk-engine-murrine }:
-
-let
-  themeName = "Ant-Dracula";
-in
-stdenv.mkDerivation rec {
-  pname = "ant-dracula-theme";
-  version = "1.3.0";
-
-  src = fetchurl {
-    url = "https://github.com/EliverLara/${themeName}/releases/download/v${version}/${themeName}.tar";
-    sha256 = "00b8w69xapqy8kc7zqwlfz1xpld6hibbh35djvhcnd905gzzymkd";
-  };
-
-  propagatedUserEnvPkgs = [
-    gtk-engine-murrine
-  ];
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/themes/${themeName}
-    cp -a * $out/share/themes/${themeName}
-    rm -r $out/share/themes/${themeName}/{Art,LICENSE,README.md,gtk-2.0/render-assets.sh}
-    runHook postInstall
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Dracula variant of the Ant theme";
-    homepage = "https://github.com/EliverLara/${themeName}";
-    license = licenses.gpl3;
-    platforms = platforms.all;
-    maintainers = with maintainers; [ alexarice ];
-  };
-}
diff --git a/pkgs/data/themes/ant-theme/ant-nebula.nix b/pkgs/data/themes/ant-theme/ant-nebula.nix
index 03ee3b5d2d4..a6279157235 100644
--- a/pkgs/data/themes/ant-theme/ant-nebula.nix
+++ b/pkgs/data/themes/ant-theme/ant-nebula.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gtk-engine-murrine }:
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
 
 let
   themeName = "Ant-Nebula";
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Nebula variant of the Ant theme";
     homepage = "https://github.com/EliverLara/${themeName}";
     license = licenses.gpl3;
diff --git a/pkgs/data/themes/ant-theme/ant.nix b/pkgs/data/themes/ant-theme/ant.nix
index 736c8a1aa6a..250b77a66e8 100644
--- a/pkgs/data/themes/ant-theme/ant.nix
+++ b/pkgs/data/themes/ant-theme/ant.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gtk-engine-murrine }:
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
 
 let
   themeName = "Ant";
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A flat and light theme with a modern look";
     homepage = "https://github.com/EliverLara/${themeName}";
     license = licenses.gpl3;
diff --git a/pkgs/data/themes/arc-kde/default.nix b/pkgs/data/themes/arc-kde/default.nix
index c0db85105d5..ecf798364ff 100644
--- a/pkgs/data/themes/arc-kde/default.nix
+++ b/pkgs/data/themes/arc-kde/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "arc-kde-theme";
@@ -21,8 +21,8 @@ stdenv.mkDerivation rec {
   meta = {
     description = "A port of the arc theme for Plasma";
     homepage = "https://git.io/arc-kde";
-    license = stdenv.lib.licenses.gpl3;
-    maintainers = [ stdenv.lib.maintainers.nixy ];
-    platforms = stdenv.lib.platforms.all;
+    license = lib.licenses.gpl3;
+    maintainers = [ lib.maintainers.nixy ];
+    platforms = lib.platforms.all;
   };
 }
diff --git a/pkgs/data/themes/arc/default.nix b/pkgs/data/themes/arc/default.nix
index 1e36eb2f99a..ea2362c0529 100644
--- a/pkgs/data/themes/arc/default.nix
+++ b/pkgs/data/themes/arc/default.nix
@@ -1,61 +1,64 @@
-{ stdenv
+{ lib, stdenv
 , fetchFromGitHub
 , sassc
-, autoreconfHook
-, pkgconfig
+, meson
+, ninja
+, pkg-config
 , gtk3
-, gnome3
+, glib
+, gnome
 , gtk-engine-murrine
 , optipng
-, inkscape_0
+, inkscape
+, cinnamon
 }:
 
 stdenv.mkDerivation rec {
   pname = "arc-theme";
-  version = "20200819";
+  version = "20210412";
 
   src = fetchFromGitHub {
     owner = "jnsh";
     repo = pname;
     rev = version;
-    sha256 = "1l5sc4r5jp3526r4p32fszny0cw6pkb45cp424hq0s0k344z9px6";
+    sha256 = "sha256-BNJirtBtdWsIzQfsJsZzg1zFbJEzZPq1j2qZ+1QjRH8=";
   };
 
   nativeBuildInputs = [
-    autoreconfHook
-    pkgconfig
+    meson
+    ninja
+    pkg-config
     sassc
     optipng
-    inkscape_0
+    inkscape
     gtk3
+    glib # for glib-compile-resources
   ];
 
   propagatedUserEnvPkgs = [
-    gnome3.gnome-themes-extra
+    gnome.gnome-themes-extra
     gtk-engine-murrine
   ];
 
-  enableParallelBuilding = true;
-
   preBuild = ''
     # Shut up inkscape's warnings about creating profile directory
     export HOME="$NIX_BUILD_ROOT"
   '';
 
-  configureFlags = [
-    "--with-gnome-shell=${gnome3.gnome-shell.version}"
-    "--disable-cinnamon" # not equipped to test
-    "--disable-unity"
+  mesonFlags = [
+    "-Dthemes=cinnamon,gnome-shell,gtk2,gtk3,plank,xfwm,metacity"
+    "-Dvariants=light,darker,dark,lighter"
+    "-Dcinnamon_version=${cinnamon.cinnamon-common.version}"
+    "-Dgnome_shell_version=${gnome.gnome-shell.version}"
+    "-Dgtk3_version=${gtk3.version}"
+    # You will need to patch gdm to make use of this.
+    "-Dgnome_shell_gresource=true"
   ];
 
-  postInstall = ''
-    install -Dm644 -t $out/share/doc/${pname} AUTHORS *.md
-  '';
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Flat theme with transparent elements for GTK 3, GTK 2 and Gnome Shell";
     homepage = "https://github.com/jnsh/arc-theme";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ simonvandel romildo ];
   };
diff --git a/pkgs/data/themes/blackbird/default.nix b/pkgs/data/themes/blackbird/default.nix
index f4a2fbb7bbe..a3f481b6d4e 100644
--- a/pkgs/data/themes/blackbird/default.nix
+++ b/pkgs/data/themes/blackbird/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, gtk-engine-murrine }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "Blackbird";
@@ -18,8 +18,8 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Dark Desktop Suite for Gtk, Xfce and Metacity";
     homepage = "https://github.com/shimmerproject/Blackbird";
-    license = with stdenv.lib.licenses; [ gpl2Plus cc-by-nc-sa-30 ];
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.romildo ];
+    license = with lib.licenses; [ gpl2Plus cc-by-nc-sa-30 ];
+    platforms = lib.platforms.linux;
+    maintainers = [ lib.maintainers.romildo ];
   };
 }
diff --git a/pkgs/data/themes/canta/default.nix b/pkgs/data/themes/canta/default.nix
index 8534fe7a506..f0a2339b3e6 100644
--- a/pkgs/data/themes/canta/default.nix
+++ b/pkgs/data/themes/canta/default.nix
@@ -1,10 +1,10 @@
-{ stdenv
+{ lib, stdenv
 , fetchFromGitHub
 , gdk-pixbuf
 , librsvg
 , gtk-engine-murrine
 , gtk3
-, gnome3
+, gnome
 , gnome-icon-theme
 , numix-icon-theme-circle
 , hicolor-icon-theme
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "canta-theme";
-  version = "2020-05-17";
+  version = "2021-07-06";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "0b9ffkw611xxb2wh43sjqla195jp0ygxph5a8dvifkxdw6nxc2y0";
+    sha256 = "sha256-dz78h9Qq25+/i6fmw/zGlPq3DVQB3ADYwehgaWReMQ8=";
   };
 
   nativeBuildInputs = [
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   ];
 
   propagatedBuildInputs = [
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     gnome-icon-theme
     numix-icon-theme-circle
     hicolor-icon-theme
@@ -54,11 +54,11 @@ stdenv.mkDerivation rec {
     gtk-update-icon-cache $out/share/icons/Canta
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Flat Design theme for GTK based desktop environments";
     homepage = "https://github.com/vinceliuice/Canta-theme";
     license = licenses.gpl2;
-    platforms = platforms.unix;
+    platforms = platforms.linux; # numix-icon-theme-circle unavailable in darwin
     maintainers = [ maintainers.romildo ];
   };
 }
diff --git a/pkgs/data/themes/cdetheme/default.nix b/pkgs/data/themes/cdetheme/default.nix
index ae738604751..a2d6568b9a8 100644
--- a/pkgs/data/themes/cdetheme/default.nix
+++ b/pkgs/data/themes/cdetheme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, python2Packages }:
+{ lib, stdenv, fetchFromGitHub, python2Packages }:
 
 stdenv.mkDerivation rec {
   pname = "cdetheme";
@@ -23,12 +23,12 @@ stdenv.mkDerivation rec {
     wrapPythonProgramsIn "$out/share/themes/cdetheme/scripts" "$out $pythonPath"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Gtk2 / Gtk3 theme mimicking CDE / Motif";
     homepage = "https://www.gnome-look.org/p/1231025";
     license = licenses.gpl3;
     platforms = platforms.all;
-    maintainers = with maintainers; [ gnidorah ];
+    maintainers = with maintainers; [ ];
     hydraPlatforms = [];
   };
 }
diff --git a/pkgs/data/themes/clearlooks-phenix/default.nix b/pkgs/data/themes/clearlooks-phenix/default.nix
index 4de923da9cf..0157914d8fc 100644
--- a/pkgs/data/themes/clearlooks-phenix/default.nix
+++ b/pkgs/data/themes/clearlooks-phenix/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip }:
+{ lib, stdenv, fetchzip }:
 
 stdenv.mkDerivation rec {
   version = "7.0.1";
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   preferLocalBuild = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "GTK3 port of the Clearlooks theme";
     longDescription = ''
       The Clearlooks-Phénix project aims at creating a GTK3 port of Clearlooks,
diff --git a/pkgs/data/themes/dracula-theme/default.nix b/pkgs/data/themes/dracula-theme/default.nix
new file mode 100644
index 00000000000..e36f567b5f8
--- /dev/null
+++ b/pkgs/data/themes/dracula-theme/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchFromGitHub, gtk-engine-murrine }:
+
+let
+  themeName = "Dracula";
+  version = "2.0";
+in
+stdenv.mkDerivation {
+  pname = "dracula-theme";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "dracula";
+    repo = "gtk";
+    rev = "v${version}";
+    sha256 = "10j706gnhdplhykdisp64vzzxpzgn48b5f1fkndcp340x7hf2mf3";
+  };
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes/${themeName}
+    cp -a {assets,cinnamon,gnome-shell,gtk-2.0,gtk-3.0,gtk-3.20,index.theme,kde,metacity-1,unity,xfwm4} $out/share/themes/${themeName}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Dracula variant of the Ant theme";
+    homepage = "https://github.com/dracula/gtk";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ alexarice vonfry ];
+  };
+}
diff --git a/pkgs/data/themes/e17gtk/default.nix b/pkgs/data/themes/e17gtk/default.nix
index c666cc5d0aa..b6cc44aa0d5 100644
--- a/pkgs/data/themes/e17gtk/default.nix
+++ b/pkgs/data/themes/e17gtk/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "e17gtk";
@@ -20,8 +20,8 @@ stdenv.mkDerivation rec {
   meta = {
     description = "An Enlightenment-like GTK theme with sharp corners";
     homepage = "https://github.com/tsujan/E17gtk";
-    license = stdenv.lib.licenses.gpl3;
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = [ stdenv.lib.maintainers.romildo ];
+    license = lib.licenses.gpl3;
+    platforms = lib.platforms.unix;
+    maintainers = [ lib.maintainers.romildo ];
   };
 }
diff --git a/pkgs/data/themes/equilux-theme/default.nix b/pkgs/data/themes/equilux-theme/default.nix
index f24524eb6b9..067c2b88a09 100644
--- a/pkgs/data/themes/equilux-theme/default.nix
+++ b/pkgs/data/themes/equilux-theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, gnome3, glib, libxml2, gtk-engine-murrine, gdk-pixbuf, librsvg, bc }:
+{ lib, stdenv, fetchFromGitHub, gnome, glib, libxml2, gtk-engine-murrine, gdk-pixbuf, librsvg, bc }:
 
 stdenv.mkDerivation rec {
   pname = "equilux-theme";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ glib libxml2 bc ];
 
-  buildInputs = [ gnome3.gnome-themes-extra gdk-pixbuf librsvg ];
+  buildInputs = [ gnome.gnome-themes-extra gdk-pixbuf librsvg ];
 
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
@@ -23,13 +23,13 @@ stdenv.mkDerivation rec {
     patchShebangs install.sh
     sed -i install.sh \
       -e "s|if .*which gnome-shell.*;|if true;|" \
-      -e "s|CURRENT_GS_VERSION=.*$|CURRENT_GS_VERSION=${stdenv.lib.versions.majorMinor gnome3.gnome-shell.version}|"
+      -e "s|CURRENT_GS_VERSION=.*$|CURRENT_GS_VERSION=${lib.versions.majorMinor gnome.gnome-shell.version}|"
     mkdir -p $out/share/themes
     ./install.sh --dest $out/share/themes
     rm $out/share/themes/*/COPYING
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     inherit (src.meta) homepage;
     description = "A Material Design theme for GNOME/GTK based desktop environments";
     license = licenses.gpl2;
diff --git a/pkgs/data/themes/flat-remix-gnome/default.nix b/pkgs/data/themes/flat-remix-gnome/default.nix
new file mode 100644
index 00000000000..f9eed54534c
--- /dev/null
+++ b/pkgs/data/themes/flat-remix-gnome/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, fetchFromGitHub
+, glib
+, lib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "flat-remix-gnome";
+  version = "20210715";
+
+  src = fetchFromGitHub {
+    owner = "daniruiz";
+    repo = pname;
+    rev = version;
+    hash = "sha256-e7sXzmhfBfcp+KqIc9yuqqXLfYzVlQVn9TNYoa2lZcA=";
+  };
+
+  nativeBuildInputs = [ glib ];
+  makeFlags = [ "PREFIX=$(out)" ];
+  preInstall = ''
+    # make install will back up this file, it will fail if the file doesn't exist.
+    # https://github.com/daniruiz/flat-remix-gnome/blob/20210623/Makefile#L50
+    mkdir -p $out/share/gnome-shell/
+    touch $out/share/gnome-shell/gnome-shell-theme.gresource
+  '';
+
+  postInstall = ''
+    rm $out/share/gnome-shell/gnome-shell-theme.gresource.old
+  '';
+
+  meta = with lib; {
+    description = "GNOME Shell theme inspired by material design.";
+    homepage = "https://drasite.com/flat-remix-gnome";
+    license = licenses.cc-by-sa-40;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.vanilla ];
+  };
+}
diff --git a/pkgs/data/themes/flat-remix-gtk/default.nix b/pkgs/data/themes/flat-remix-gtk/default.nix
new file mode 100644
index 00000000000..afdf478fea0
--- /dev/null
+++ b/pkgs/data/themes/flat-remix-gtk/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, gtk-engine-murrine
+}:
+
+stdenv.mkDerivation rec {
+  pname = "flat-remix-gtk";
+  version = "20201129";
+
+  src = fetchFromGitHub {
+    owner = "daniruiz";
+    repo = pname;
+    rev = version;
+    hash = "sha256-lAlHRVB/P3A1qWsXQZPZ3uhgctR4FLa+ocUrsbleXJU=";
+  };
+
+  dontBuild = true;
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  meta = with lib; {
+    description = "GTK application theme inspired by material design";
+    homepage = "https://drasite.com/flat-remix-gtk";
+    license = licenses.gpl3Only;
+    platforms = platforms.all;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/pkgs/data/themes/gnome-breeze/default.nix b/pkgs/data/themes/gnome-breeze/default.nix
index 25d6d60d652..09f9ecd197a 100644
--- a/pkgs/data/themes/gnome-breeze/default.nix
+++ b/pkgs/data/themes/gnome-breeze/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit }:
+{ lib, stdenv, fetchgit }:
 
 stdenv.mkDerivation {
   name = "gnome-breeze-20160526";
@@ -17,9 +17,9 @@ stdenv.mkDerivation {
   meta = {
     description = "A GTK theme built to match KDE's breeze theme";
     homepage = "https://github.com/dirruk1/gnome-breeze";
-    license = stdenv.lib.licenses.lgpl2;
-    maintainers = with stdenv.lib.maintainers; [ bennofs ];
-    platforms = stdenv.lib.platforms.all;
+    license = lib.licenses.lgpl2;
+    maintainers = with lib.maintainers; [ bennofs ];
+    platforms = lib.platforms.all;
     hydraPlatforms = [];
   };
 }
diff --git a/pkgs/data/themes/greybird/default.nix b/pkgs/data/themes/greybird/default.nix
index 794034af7e7..202424eeb2c 100644
--- a/pkgs/data/themes/greybird/default.nix
+++ b/pkgs/data/themes/greybird/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, sassc, gdk-pixbuf, librsvg, gtk-engine-murrine }:
+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, sassc, gdk-pixbuf, librsvg, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "greybird";
-  version = "3.22.12";
+  version = "3.22.14";
 
   src = fetchFromGitHub {
     owner = "shimmerproject";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1j66ddvl3pmwh2v8ajm8r5g5nbsr7r262ff1qn2nf3i0gy8b3lq8";
+    sha256 = "0b0axzrvdsv7aa029idz4rs1jm6df4ff3v4j4d5wf4yiypb48js9";
   };
 
   nativeBuildInputs = [
     meson
     ninja
-    pkgconfig
+    pkg-config
     sassc
   ];
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     gtk-engine-murrine
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Grey and blue theme from the Shimmer Project for GTK-based environments";
     homepage = "https://github.com/shimmerproject/Greybird";
     license = [ licenses.gpl2Plus ]; # or alternatively: cc-by-nc-sa-30 or later
diff --git a/pkgs/data/themes/gruvbox-dark-gtk/default.nix b/pkgs/data/themes/gruvbox-dark-gtk/default.nix
new file mode 100644
index 00000000000..28b55074afb
--- /dev/null
+++ b/pkgs/data/themes/gruvbox-dark-gtk/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "gruvbox-dark-gtk";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "jmattheis";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-C681o89MTGNp1l3DLQsRpH9HQdmdCXZzk0F0rNhcyL4=";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/themes/gruvbox-dark
+    rm -rf README.md LICENSE .github
+    cp -r * $out/share/themes/gruvbox-dark
+  '';
+
+  meta = with lib; {
+    description = "Gruvbox theme for GTK based desktop environments";
+    homepage = "https://github.com/jmattheis/gruvbox-dark-gtk";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.nomisiv ];
+  };
+}
diff --git a/pkgs/data/themes/jade1/default.nix b/pkgs/data/themes/jade1/default.nix
index 47bb7242db3..f33fa2db546 100644
--- a/pkgs/data/themes/jade1/default.nix
+++ b/pkgs/data/themes/jade1/default.nix
@@ -1,27 +1,29 @@
-{ stdenv, fetchFromGitHub, gtk-engine-murrine }:
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "theme-jade1";
-  version = "1.8";
+  version = "1.13";
 
-  src = fetchFromGitHub {
-    owner = "madmaxms";
-    repo = "theme-jade-1";
-    rev = "v${version}";
-    sha256 = "1nvn2ghkdhilrsjpvl7r92aldvbs0nx0xc82jwrfaahi87dgfs8x";
+  src = fetchurl {
+    url = "https://github.com/madmaxms/theme-jade-1/releases/download/v${version}/jade-1-theme.tar.xz";
+    sha256 = "04a9c56w4hm8lwa8hzy5lwj4yli19gzy5wp5iinsm61qas9xgy69";
   };
 
+  sourceRoot = ".";
+
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/themes
     cp -a Jade* $out/share/themes
+    runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Based on Linux Mint theme with dark menus and more intensive green";
     homepage = "https://github.com/madmaxms/theme-jade-1";
-    license = with licenses; [ gpl3 ];
+    license = with licenses; [ gpl3Only ];
     platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/data/themes/juno/default.nix b/pkgs/data/themes/juno/default.nix
new file mode 100644
index 00000000000..9e1580a6a14
--- /dev/null
+++ b/pkgs/data/themes/juno/default.nix
@@ -0,0 +1,45 @@
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
+
+stdenv.mkDerivation rec {
+  pname = "juno";
+  version = "0.0.1";
+
+  srcs = [
+    (fetchurl {
+      url = "https://github.com/gvolpe/Juno/releases/download/${version}/Juno.tar.xz";
+      sha256 = "1cghsn9qagcf1nlga5cal0aqch6hkjm5wk6ja791zxhdqy3crx1i";
+    })
+    (fetchurl {
+      url = "https://github.com/gvolpe/Juno/releases/download/${version}/Juno-mirage.tar.xz";
+      sha256 = "0zh6bc85svmwh8qrhpn8mim0pj322x2x2i9sxnp7p1938p5z5m2b";
+    })
+    (fetchurl {
+      url = "https://github.com/gvolpe/Juno/releases/download/${version}/Juno-ocean.tar.xz";
+      sha256 = "0m2wgmcn12dfq5badzlpzjc8792ba9hi32c79vfvqawdn1q3hrdx";
+    })
+    (fetchurl {
+      url = "https://github.com/gvolpe/Juno/releases/download/${version}/Juno-palenight.tar.xz";
+      sha256 = "1hn2l0m76x61ixjd253hi7czm65asdjdhqvvlv7idbccc40pvrak";
+    })
+  ];
+
+  sourceRoot = ".";
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Juno* $out/share/themes
+    rm $out/share/themes/*/{LICENSE,README.md}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "GTK themes inspired by epic vscode themes";
+    homepage = "https://github.com/EliverLara/Juno";
+    license = licenses.gpl3Only;
+    platforms = platforms.all;
+    maintainers = [ maintainers.gvolpe ];
+  };
+}
diff --git a/pkgs/data/themes/kde2/default.nix b/pkgs/data/themes/kde2/default.nix
index 547e4f30aa6..1404a6ca86e 100644
--- a/pkgs/data/themes/kde2/default.nix
+++ b/pkgs/data/themes/kde2/default.nix
@@ -5,16 +5,16 @@
 
 mkDerivation rec {
   pname = "kde2-decoration";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "repos-holder";
     repo = "kdecoration2-kde2";
     rev = version;
-    sha256 = "1766z9wscybcqvr828xih93b3rab3hb0ghsf818iflhp1xy0js08";
+    sha256 = "y2q1j36EURJc7k1huqhEH1Z82PnVSKlfx20bpQWY28c=";
   };
 
-  enableParallelBuilding = true;
+  outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [ cmake extra-cmake-modules ];
 
@@ -25,6 +25,6 @@ mkDerivation rec {
     homepage = "https://github.com/repos-holder/kdecoration2-kde2";
     license = licenses.bsd2;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ gnidorah ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/data/themes/layan-gtk-theme/default.nix b/pkgs/data/themes/layan-gtk-theme/default.nix
new file mode 100644
index 00000000000..7892fbe9f31
--- /dev/null
+++ b/pkgs/data/themes/layan-gtk-theme/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, fetchFromGitHub
+, lib
+, gtk-engine-murrine
+}:
+
+stdenv.mkDerivation rec {
+  pname = "layan-gtk-theme";
+  version = "2021-06-30";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-FI8+AJlcPHGOzxN6HUKLtPGLe8JTfTQ9Az9NsvVUK7g=";
+  };
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  postPatch = ''
+    patchShebangs install.sh
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    unset name && ./install.sh -d $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A flat Material Design theme for GTK 3, GTK 2 and Gnome-Shell.";
+    homepage = "https://github.com/vinceliuice/Layan-gtk-theme";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.vanilla ];
+  };
+}
diff --git a/pkgs/data/themes/lounge/default.nix b/pkgs/data/themes/lounge/default.nix
index cda1a4e7d0b..ab945f51053 100644
--- a/pkgs/data/themes/lounge/default.nix
+++ b/pkgs/data/themes/lounge/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, meson, ninja, sassc, gtk3, gnome3, gdk-pixbuf, librsvg, gtk-engine-murrine }:
+{ lib, stdenv, fetchFromGitHub, meson, ninja, sassc, gtk3, gnome, gdk-pixbuf, librsvg, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "lounge-gtk-theme";
-  version = "1.22";
+  version = "1.24";
 
   src = fetchFromGitHub {
     owner = "monday15";
     repo = pname;
     rev = version;
-    sha256 = "1y1wkfsv2zrxqcqr53lmr9743mvzcy4swi5j6sxmk1aykx6ccs1p";
+    sha256 = "0ima0aa5j296xn4y0d1zj6vcdrdpnihqdidj7bncxzgbnli1vazs";
   };
 
   nativeBuildInputs = [ meson ninja sassc gtk3 ];
@@ -18,14 +18,14 @@ stdenv.mkDerivation rec {
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
   mesonFlags = [
-    "-D gnome_version=${stdenv.lib.versions.majorMinor gnome3.gnome-shell.version}"
+    "-D gnome_version=${lib.versions.majorMinor gnome.gnome-shell.version}"
   ];
 
   postFixup = ''
     gtk-update-icon-cache "$out"/share/icons/Lounge-aux;
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Simple and clean GTK theme with vintage scrollbars, inspired by Absolute, based on Adwaita";
     homepage = "https://github.com/monday15/lounge-gtk-theme";
     license = licenses.gpl3Plus;
diff --git a/pkgs/data/themes/marwaita-manjaro/default.nix b/pkgs/data/themes/marwaita-manjaro/default.nix
new file mode 100644
index 00000000000..d467526582c
--- /dev/null
+++ b/pkgs/data/themes/marwaita-manjaro/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita-manjaro";
+  version = "2.0";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "1si0gaa1njyf4194i6rbx4qjp31sw238svvb2x8r8cfhm8mkhm8d";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Marwaita* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Manjaro Style (green version) of Marwaita GTK theme";
+    homepage = "https://www.pling.com/p/1351213/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/marwaita-peppermint/default.nix b/pkgs/data/themes/marwaita-peppermint/default.nix
new file mode 100644
index 00000000000..70e7bdef2d4
--- /dev/null
+++ b/pkgs/data/themes/marwaita-peppermint/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita-peppermint";
+  version = "0.6";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "0mhkkx2qa66z4b2h5iynhy63flwdf6b2phd21r1j8kp4m08dynms";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Marwaita* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Marwaita GTK theme with Peppermint Os Linux style";
+    homepage = "https://www.pling.com/p/1399569/";
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/marwaita-pop_os/default.nix b/pkgs/data/themes/marwaita-pop_os/default.nix
new file mode 100644
index 00000000000..f7199767467
--- /dev/null
+++ b/pkgs/data/themes/marwaita-pop_os/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita-pop_os";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "1nwfyy3jnfsdlqgj7ig9gbawazdm76g02b0hrfsll17j5498d59y";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Marwaita* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Marwaita GTK theme with Pop_os Linux style";
+    homepage = "https://www.pling.com/p/1377894/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/marwaita-ubuntu/default.nix b/pkgs/data/themes/marwaita-ubuntu/default.nix
new file mode 100644
index 00000000000..f98e112678c
--- /dev/null
+++ b/pkgs/data/themes/marwaita-ubuntu/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita-ubuntu";
+  version = "1.7";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "024b0817jilvi5ilq9sbwg19ql5i2x3jfgc1awk7zzv6sqii639x";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Marwaita* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Ubuntu Style of Marwaita GTK theme";
+    homepage = "https://www.pling.com/p/1352833/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/marwaita/default.nix b/pkgs/data/themes/marwaita/default.nix
index 6426f2a222f..7d13e794219 100644
--- a/pkgs/data/themes/marwaita/default.nix
+++ b/pkgs/data/themes/marwaita/default.nix
@@ -1,4 +1,5 @@
-{ stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , gdk-pixbuf
 , gtk-engine-murrine
@@ -8,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "marwaita";
-  version = "7.4.2";
+  version = "9.5";
 
   src = fetchFromGitHub {
     owner = "darkomarko42";
     repo = pname;
     rev = version;
-    sha256 = "0kq7d8nqp8m0kbh2k9s0yybfdkyfkhbkjsv22lplnzh1p84pnlx7";
+    sha256 = "0hhiwims4nxq06kakc0hc4rn4hvnlrpbx6ca929vd2qbi6wa2k9h";
   };
 
   buildInputs = [
@@ -33,12 +34,11 @@ stdenv.mkDerivation rec {
     runHook preInstall
     mkdir -p $out/share/themes
     cp -a Marwaita* $out/share/themes
-    rm $out/share/themes/*/COPYING
     runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
-    description = "GTK theme supporting Budgie, Pantheon, Mate and Xfce4 desktops";
+  meta = with lib; {
+    description = "GTK theme supporting Budgie, Pantheon, Mate, Xfce4 and GNOME desktops";
     homepage = "https://www.pling.com/p/1239855/";
     license = licenses.cc0;
     platforms = platforms.unix;
diff --git a/pkgs/data/themes/matcha/default.nix b/pkgs/data/themes/matcha/default.nix
index 69b1908b812..711354026d8 100644
--- a/pkgs/data/themes/matcha/default.nix
+++ b/pkgs/data/themes/matcha/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, gdk-pixbuf, librsvg, gtk-engine-murrine }:
+{ lib, stdenv, fetchFromGitHub, gdk-pixbuf, librsvg, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "matcha-gtk-theme";
-  version = "2020-07-27";
+  version = "2021-07-20";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "09kzxd92zqissk0bk3aw06hsa05riq88xvwhlxfw2agig13cfrhw";
+    sha256 = "0shdkwpqj3fw5qr99ww4z5dyrpa2pq79s0i02p9j3v6w6aca2gic";
   };
 
   buildInputs = [ gdk-pixbuf librsvg ];
@@ -16,18 +16,20 @@ stdenv.mkDerivation rec {
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
   installPhase = ''
+    runHook preInstall
     patchShebangs .
     mkdir -p $out/share/themes
     name= ./install.sh -d $out/share/themes
     install -D -t $out/share/gtksourceview-3.0/styles src/extra/gedit/matcha.xml
     mkdir -p $out/share/doc/${pname}
     cp -a src/extra/firefox $out/share/doc/${pname}
+    runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
-    description = "A stylish flat Design theme for GTK based desktop environments";
+  meta = with lib; {
+    description = "A stylish flat design theme for GTK based desktop environments";
     homepage = "https://vinceliuice.github.io/theme-matcha";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/data/themes/materia-kde/default.nix b/pkgs/data/themes/materia-kde/default.nix
new file mode 100644
index 00000000000..bf3b56ae666
--- /dev/null
+++ b/pkgs/data/themes/materia-kde/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "materia-kde-theme";
+  version = "20210624";
+
+  src = fetchFromGitHub {
+    owner = "PapirusDevelopmentTeam";
+    repo = "materia-kde";
+    rev = version;
+    sha256 = "jmUJAWoQ/GVPNQOjlyZBg4rIIo+rhzr5imnCFAWOtrA=";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "A port of the materia theme for Plasma";
+    homepage = "https://github.com/PapirusDevelopmentTeam/materia-kde";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.diffumist ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/data/themes/materia-theme/default.nix b/pkgs/data/themes/materia-theme/default.nix
index a93c242d2da..f9e3463f2fd 100644
--- a/pkgs/data/themes/materia-theme/default.nix
+++ b/pkgs/data/themes/materia-theme/default.nix
@@ -1,37 +1,55 @@
-{ stdenv, fetchFromGitHub, gnome3, glib, libxml2, gtk-engine-murrine, gdk-pixbuf, librsvg, bc }:
+{ lib, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, sassc
+, gnome
+, gtk-engine-murrine
+, gdk-pixbuf
+, librsvg
+}:
 
 stdenv.mkDerivation rec {
   pname = "materia-theme";
-  version = "20190912";
+  version = "20200916";
 
   src = fetchFromGitHub {
     owner = "nana-4";
     repo = pname;
     rev = "v${version}";
-    sha256 = "07vbql1y9jfd0m34lw1674cfr6217dzg3irk0450kny8sjrrj6dx";
+    sha256 = "0qaxxafsn5zd2ysgr0jyv5j73360mfdmxyd55askswlsfphssn74";
   };
 
-  nativeBuildInputs = [ glib libxml2 bc ];
+  nativeBuildInputs = [
+    meson
+    ninja
+    sassc
+  ];
 
-  buildInputs = [ gnome3.gnome-themes-extra gdk-pixbuf librsvg ];
+  buildInputs = [
+    gnome.gnome-themes-extra
+    gdk-pixbuf
+    librsvg
+  ];
 
-  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
 
   dontBuild = true;
 
-  installPhase = ''
-    patchShebangs install.sh
-    sed -i install.sh \
-      -e "s|if .*which gnome-shell.*;|if true;|" \
-      -e "s|CURRENT_GS_VERSION=.*$|CURRENT_GS_VERSION=${stdenv.lib.versions.majorMinor gnome3.gnome-shell.version}|"
-    ./install.sh --dest $out/share/themes
+  mesonFlags = [
+    "-Dgnome_shell_version=${lib.versions.majorMinor gnome.gnome-shell.version}"
+  ];
+
+  postInstall = ''
     rm $out/share/themes/*/COPYING
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Material Design theme for GNOME/GTK based desktop environments";
     homepage = "https://github.com/nana-4/materia-theme";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.all;
     maintainers = [ maintainers.mounium ];
   };
diff --git a/pkgs/data/themes/mojave/default.nix b/pkgs/data/themes/mojave/default.nix
index a98218b6392..bf2014344a6 100644
--- a/pkgs/data/themes/mojave/default.nix
+++ b/pkgs/data/themes/mojave/default.nix
@@ -1,15 +1,27 @@
-{ stdenv, fetchFromGitHub, fetchurl, glib, gtk-engine-murrine, gtk_engines, inkscape_0, optipng, sassc, which }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchurl
+, glib
+, gtk-engine-murrine
+, gtk_engines
+, inkscape
+, jdupes
+, optipng
+, sassc
+, which
+}:
 
 stdenv.mkDerivation rec {
   pname = "mojave-gtk-theme";
-  version = "2020-03-19";
+  version = "2021-07-20";
 
   srcs = [
     (fetchFromGitHub {
       owner = "vinceliuice";
       repo = pname;
       rev = version;
-      sha256 = "1f120sx092i56q4dx2b8d3nnn9pdw67656446nw702rix7zc5jpx";
+      sha256 = "08j70kmjhvh06c3ahcracarrfq4vpy0zsp6zkcivbw4nf3bzp2zc";
     })
     (fetchurl {
       url = "https://github.com/vinceliuice/Mojave-gtk-theme/raw/11741a99d96953daf9c27e44c94ae50a7247c0ed/macOS_Mojave_Wallpapers.tar.xz";
@@ -19,40 +31,61 @@ stdenv.mkDerivation rec {
 
   sourceRoot = "source";
 
-  nativeBuildInputs = [ glib inkscape_0 optipng sassc which ];
+  nativeBuildInputs = [
+    glib
+    inkscape
+    jdupes
+    optipng
+    sassc
+    which
+  ];
 
-  buildInputs = [ gtk_engines ];
+  buildInputs = [
+    gtk_engines
+  ];
 
-  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  # These fixup steps are slow and unnecessary.
+  dontPatchELF = true;
+  dontRewriteSymlinks = true;
 
   postPatch = ''
     patchShebangs .
 
-    for f in render-assets.sh \
-             src/assets/gtk-2.0/render-assets.sh \
-             src/assets/gtk-3.0/common-assets/render-assets.sh \
-             src/assets/gtk-3.0/windows-assets/render-assets.sh \
-             src/assets/metacity-1/render-assets.sh \
-             src/assets/xfwm4/render-assets.sh
+    for f in \
+      render-assets.sh \
+      src/assets/cinnamon/thumbnails/render-thumbnails.sh \
+      src/assets/gtk-2.0/render-assets.sh \
+      src/assets/gtk/common-assets/render-assets.sh \
+      src/assets/gtk/thumbnails/render-thumbnails.sh \
+      src/assets/gtk/windows-assets/render-alt-assets.sh \
+      src/assets/gtk/windows-assets/render-alt-small-assets.sh \
+      src/assets/gtk/windows-assets/render-assets.sh \
+      src/assets/gtk/windows-assets/render-small-assets.sh \
+      src/assets/metacity-1/render-assets.sh \
+      src/assets/xfwm4/render-assets.sh
     do
       substituteInPlace $f \
-        --replace /usr/bin/inkscape ${inkscape_0}/bin/inkscape \
+        --replace /usr/bin/inkscape ${inkscape}/bin/inkscape \
         --replace /usr/bin/optipng ${optipng}/bin/optipng
     done
-
-    # Shut up inkscape's warnings
-    export HOME="$NIX_BUILD_ROOT"
   '';
 
   installPhase = ''
-    name= ./install.sh -d $out/share/themes
+    runHook preInstall
+    name= ./install.sh --theme all --dest $out/share/themes
     install -D -t $out/share/wallpapers ../"macOS Mojave Wallpapers"/*
+    jdupes -l -r $out/share
+    runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Mac OSX Mojave like theme for GTK based desktop environments";
     homepage = "https://github.com/vinceliuice/Mojave-gtk-theme";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/data/themes/nordic-polar/default.nix b/pkgs/data/themes/nordic-polar/default.nix
deleted file mode 100644
index 9d74ae22250..00000000000
--- a/pkgs/data/themes/nordic-polar/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenv, fetchurl, gtk-engine-murrine }:
-
-stdenv.mkDerivation rec {
-  pname = "nordic-polar";
-  version = "1.9.0";
-
-  srcs = [
-    (fetchurl {
-      url = "https://github.com/EliverLara/Nordic-Polar/releases/download/v${version}/Nordic-Polar.tar.xz";
-      sha256 = "1583mx8frkl5w26myczbyrggrp07lmpsfj00h1bzicw6lz8jbxf1";
-    })
-    (fetchurl {
-      url = "https://github.com/EliverLara/Nordic-Polar/releases/download/v${version}/Nordic-Polar-standard-buttons.tar.xz";
-      sha256 = "1n2qys0xcg1k28bwfrrr44cqz7q2rnfj6ry6qgd67ivgh63kmcq6";
-    })
-  ];
-
-  sourceRoot = ".";
-
-  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
-
-  installPhase = ''
-    mkdir -p $out/share/themes
-    cp -a Nordic-Polar* $out/share/themes
-    rm $out/share/themes/*/{LICENSE,README.md}
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Gtk theme created using the awesome Nord color pallete";
-    homepage = "https://github.com/EliverLara/Nordic-Polar";
-    license = licenses.gpl3;
-    platforms = platforms.all;
-    maintainers = [ maintainers.romildo ];
-  };
-}
diff --git a/pkgs/data/themes/nordic/default.nix b/pkgs/data/themes/nordic/default.nix
index aca72c2fb48..1014d483440 100644
--- a/pkgs/data/themes/nordic/default.nix
+++ b/pkgs/data/themes/nordic/default.nix
@@ -1,33 +1,72 @@
-{ stdenv, fetchurl, gtk-engine-murrine }:
+{ lib, stdenv, fetchFromGitHub, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "nordic";
-  version = "1.9.0";
+  version = "unstable-2021-06-04";
 
   srcs = [
-    (fetchurl {
-      url = "https://github.com/EliverLara/Nordic/releases/download/v${version}/Nordic.tar.xz";
-      sha256 = "12x13h9w4yqk56a009zpj1kq3vn2hn290xryfv1b0vyf2r45rsn7";
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "9a98c05f4d4f6c9e701ac20b0bf5c18284ad0015";
+      sha256 = "0ghgr7fr7anm8hdq6n46xhkjxydqkr0qlk1q7mdg08j43f0yra7b";
+      name = "Nordic";
     })
-    (fetchurl {
-      url = "https://github.com/EliverLara/Nordic/releases/download/v${version}/Nordic-standard-buttons.tar.xz";
-      sha256 = "0f38nx1rvp9l6xz62yx6cbab4im8d425gxr52jkc8gfqpl5lrf0q";
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "90ce6f539735af1f231c4fa07708cef602e1c8a2";
+      sha256 = "1g6sz7ifpc8jf4iplcsmihqhjdc7yp5xygw8584n122jmh8mak47";
+      name = "Nordic-standard-buttons";
     })
-    (fetchurl {
-      url = "https://github.com/EliverLara/Nordic/releases/download/v${version}/Nordic-darker.tar.xz";
-      sha256 = "0frp0jf7hbiapl3m67av7rbm3sx8db52zi3j01k2hysh6kba7x33";
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "529cdb86b4d4474a67a56eb9377e3c7907b452db";
+      sha256 = "06li44i5wh4h06fbhvjf5cjma5czjdgnwvm79d8hg6vmi2101b0a";
+      name = "Nordic-darker";
     })
-    (fetchurl {
-      url = "https://github.com/EliverLara/Nordic/releases/download/v${version}/Nordic-darker-standard-buttons.tar.xz";
-      sha256 = "0grfsjr9kq0lszmqxvjvpgvf4avm34446nqykz1zfpdg50j7r54b";
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "1d16f37de315c298a6c3d79a552ed6f18cbb7fb4";
+      sha256 = "0nxzygnysg4ciib337vay0qcc80hpryjnclwjwjzj51i95366k25";
+      name = "Nordic-darker-standard-buttons";
     })
-    (fetchurl {
-      url = "https://github.com/EliverLara/Nordic/releases/download/v${version}/Nordic-bluish-accent.tar.xz";
-      sha256 = "0zndldwavir22ay2r0jazpikzzww3hc09gsmbiyjmw54v29qhl9r";
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "78a30080bc50ee88c23d393049306ef1925bcdb8";
+      sha256 = "10w4815fcf3pd24ar7jp0wcdiwn3zzrdj2p6fqlgx26biz7kf3iv";
+      name = "Nordic-bluish-accent";
     })
-    (fetchurl {
-      url = "https://github.com/EliverLara/Nordic/releases/download/v${version}/Nordic-bluish-accent-standard-buttons.tar.xz";
-      sha256 = "1b9d2fvdndyh7lh3xhmc75csfbapl4gv59y7wy15k2awisvlvz07";
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = pname;
+      rev = "e4363da8d457e8b14f6e4340979225db92d34aa9";
+      sha256 = "1sjw2hvg4jgxqzgqhqixq216a7vv5licbc8ii1rsz88ycafsbr7j";
+      name = "Nordic-bluish-accent-standard-buttons";
+    })
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = "${pname}-polar";
+      rev = "a38fd7d440309573947d3e53ea3ed295cf027ce7";
+      sha256 = "1r6hz0m0y7c1d0ka1x9cd47r0jvpgkld6x3gf2b7w7yvqpmh6a44";
+      name = "Nordic-Polar";
+    })
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = "${pname}-polar";
+      rev = "b86d43c48bcac57c49d891b967311fd90f6d4bcd";
+      sha256 = "0c725kf5ql42zrqk6dwk6i7wyrhr3gddipvhy6692nv0dszqm0ml";
+      name = "Nordic-Polar-standard-buttons";
     })
   ];
 
@@ -36,15 +75,28 @@ stdenv.mkDerivation rec {
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/themes
     cp -a Nordic* $out/share/themes
-    rm $out/share/themes/*/{LICENSE,README.md}
+    rm -r $out/share/themes/*/.gitignore
+    rm -r $out/share/themes/*/Art
+    rm -r $out/share/themes/*/LICENSE
+    rm -r $out/share/themes/*/README.md
+    rm -r $out/share/themes/*/{package.json,package-lock.json,Gulpfile.js}
+    rm -r $out/share/themes/*/src
+    rm -r $out/share/themes/*/cinnamon/*.scss
+    rm -r $out/share/themes/*/gnome-shell/{extensions,*.scss}
+    rm -r $out/share/themes/*/gtk-2.0/{assets.svg,assets.txt,links.fish,render-assets.sh}
+    rm -r $out/share/themes/*/gtk-3.0/{apps,widgets,*.scss}
+    rm -r $out/share/themes/*/kde
+    rm -r $out/share/themes/*/xfwm4/{assets,render_assets.fish}
+    runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
-    description = "Dark Gtk theme created using the awesome Nord color pallete";
+  meta = with lib; {
+    description = "Gtk themes using the Nord color pallete";
     homepage = "https://github.com/EliverLara/Nordic";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.all;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/data/themes/numix-solarized/default.nix b/pkgs/data/themes/numix-solarized/default.nix
index a3da60e243e..532275e5f74 100644
--- a/pkgs/data/themes/numix-solarized/default.nix
+++ b/pkgs/data/themes/numix-solarized/default.nix
@@ -1,39 +1,36 @@
-{ stdenv, fetchFromGitHub, python3, sass, glib, gdk-pixbuf, libxml2,
-  inkscape_0, optipng, gtk-engine-murrine
-}:
+{ lib, stdenv, fetchFromGitHub, python3, sassc, glib, gdk-pixbuf, inkscape, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
-  version = "20180913";
   pname = "numix-solarized-gtk-theme";
+  version = "20210522";
 
   src = fetchFromGitHub {
     owner = "Ferdi265";
-    repo = "numix-solarized-gtk-theme";
+    repo = pname;
     rev = version;
-    sha256 = "1kda0lyqi3cxh163fbj8yyi6jj6pf0y980k4s0cmyi3hkh4cqyd5";
+    sha256 = "0hin73fmfir4w1z0j87k5hahhf2blhcq4r7gf89gz4slnl18cvjh";
   };
 
-  nativeBuildInputs = [ python3 sass glib gdk-pixbuf libxml2 inkscape_0 optipng ];
+  nativeBuildInputs = [ python3 sassc glib gdk-pixbuf inkscape ];
 
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
   postPatch = ''
     patchShebangs .
     substituteInPlace Makefile --replace '$(DESTDIR)'/usr $out
-    substituteInPlace scripts/render-assets.sh \
-      --replace /usr/bin/inkscape ${inkscape_0}/bin/inkscape \
-      --replace /usr/bin/optipng ${optipng}/bin/optipng
   '';
 
   buildPhase = "true";
 
   installPhase = ''
+    runHook preInstall
     for theme in *.colors; do
       make THEME="''${theme/.colors/}" install
     done
+    runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Solarized versions of Numix GTK2 and GTK3 theme";
     longDescription = ''
       This is a fork of the Numix GTK theme that replaces the colors of the theme
@@ -42,7 +39,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://github.com/Ferdi265/numix-solarized-gtk-theme";
     downloadPage = "https://github.com/Ferdi265/numix-solarized-gtk-theme/releases";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = [ maintainers.offline ];
   };
diff --git a/pkgs/data/themes/numix-sx/default.nix b/pkgs/data/themes/numix-sx/default.nix
index 7c8cf77dfc4..ee887cbadee 100644
--- a/pkgs/data/themes/numix-sx/default.nix
+++ b/pkgs/data/themes/numix-sx/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gtk-engine-murrine }:
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
 
 stdenv.mkDerivation {
   version = "2017-04-24";
@@ -23,8 +23,8 @@ stdenv.mkDerivation {
   meta = {
     description = "Gray variation of Numix theme";
     homepage = "https://www.gnome-look.org/p/1117412/";
-    license = stdenv.lib.licenses.gpl3Plus;
-    platforms = stdenv.lib.platforms.all;
-    maintainers = [ stdenv.lib.maintainers.sauyon ];
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.all;
+    maintainers = [ lib.maintainers.sauyon ];
   };
 }
diff --git a/pkgs/data/themes/numix/default.nix b/pkgs/data/themes/numix/default.nix
index 879a1356153..23f491d4a9a 100644
--- a/pkgs/data/themes/numix/default.nix
+++ b/pkgs/data/themes/numix/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, sass, glib, libxml2, gdk-pixbuf
+{ lib, stdenv, fetchFromGitHub, sass, glib, libxml2, gdk-pixbuf
 , gtk-engine-murrine
 }:
 
@@ -25,8 +25,8 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Modern flat theme with a combination of light and dark elements (GNOME, Unity, Xfce and Openbox)";
     homepage = "https://numixproject.github.io";
-    license = stdenv.lib.licenses.gpl3Plus;
-    platforms = stdenv.lib.platforms.all;
-    maintainers = [ stdenv.lib.maintainers.romildo ];
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.all;
+    maintainers = [ lib.maintainers.romildo ];
   };
 }
diff --git a/pkgs/data/themes/obsidian2/default.nix b/pkgs/data/themes/obsidian2/default.nix
index 79c27a8c6e9..a965af53d42 100644
--- a/pkgs/data/themes/obsidian2/default.nix
+++ b/pkgs/data/themes/obsidian2/default.nix
@@ -1,29 +1,29 @@
-{ stdenv, fetchFromGitHub, gtk-engine-murrine }:
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "theme-obsidian2";
-  version = "2.13";
+  version = "2.18";
 
-  src = fetchFromGitHub {
-    owner = "madmaxms";
-    repo = "theme-obsidian-2";
-    rev = "v${version}";
-    sha256 = "1chbz1cbkbfzk8835x1dywk38d7wjh90myajgk5f7v2zgnvbya23";
+  src = fetchurl {
+    url = "https://github.com/madmaxms/theme-obsidian-2/releases/download/v${version}/obsidian-2-theme.tar.xz";
+    sha256 = "1w3grlkws4ih7333hys33z4bgm33jbc78bq2pyp8nzw4q9d2hz2r";
   };
 
+  sourceRoot = ".";
+
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
   installPhase = ''
     runHook preInstall
     mkdir -p $out/share/themes
-    cp -a Obsidian-2 $out/share/themes
+    cp -a Obsidian-2* $out/share/themes
     runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Gnome theme, based upon Adwaita-Maia dark skin";
     homepage = "https://github.com/madmaxms/theme-obsidian-2";
-    license = with licenses; [ gpl3 ];
+    license = with licenses; [ gpl3Only ];
     platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/data/themes/onestepback/default.nix b/pkgs/data/themes/onestepback/default.nix
index 0385ca90f61..9547e354389 100644
--- a/pkgs/data/themes/onestepback/default.nix
+++ b/pkgs/data/themes/onestepback/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, unzip }:
+{ lib, stdenv, fetchurl, unzip }:
 
 stdenv.mkDerivation rec {
   pname = "onestepback";
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     rm $out/share/themes/*/{LICENSE,README*}
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Gtk theme inspired by the NextStep look";
     homepage = "http://www.vide.memoire.free.fr/perso/OneStepBack";
     license = licenses.gpl3;
diff --git a/pkgs/data/themes/openzone/default.nix b/pkgs/data/themes/openzone/default.nix
new file mode 100644
index 00000000000..e7748612fef
--- /dev/null
+++ b/pkgs/data/themes/openzone/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchFromGitHub, icon-slicer, xcursorgen }:
+stdenv.mkDerivation rec {
+  pname = "openzone-cursors";
+  version = "1.2.9";
+
+  src = fetchFromGitHub {
+    owner = "ducakar";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "02c536mc17ccsrzgma366k3wlm02ivklvr30fafxl981zgghlii4";
+  };
+
+  nativeBuildInputs = [ icon-slicer xcursorgen ];
+
+  makeFlags = [ "DESTDIR=$(out)" ];
+
+  meta = with lib; {
+    description = "Clean and sharp X11/Wayland cursor theme";
+    homepage = "https://www.gnome-look.org/p/999999/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ zaninime ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/data/themes/orchis-theme/default.nix b/pkgs/data/themes/orchis-theme/default.nix
new file mode 100644
index 00000000000..b63e9c06d29
--- /dev/null
+++ b/pkgs/data/themes/orchis-theme/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gtk3
+, gnome-themes-extra
+, gtk-engine-murrine
+, sassc
+, accentColor ? "default"
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "orchis-theme";
+  version = "2021-06-09";
+
+  src = fetchFromGitHub {
+    repo = "Orchis-theme";
+    owner = "vinceliuice";
+    rev = version;
+    sha256 = "sha256-YlrocFDk3da2eqxbJ5lPUUxHHvJZx19LOa0MSljWY8Q=";
+  };
+
+  nativeBuildInputs = [ gtk3 sassc ];
+
+  buildInputs = [ gnome-themes-extra ];
+
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+  preInstall = ''
+    mkdir -p $out/share/themes
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    bash install.sh -d $out/share/themes -t ${accentColor}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A Material Design theme for GNOME/GTK based desktop environments.";
+    homepage = "https://github.com/vinceliuice/Orchis-theme";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.fufexan ];
+  };
+}
diff --git a/pkgs/data/themes/orion/default.nix b/pkgs/data/themes/orion/default.nix
index b44cc857c62..93ea3633fb5 100644
--- a/pkgs/data/themes/orion/default.nix
+++ b/pkgs/data/themes/orion/default.nix
@@ -1,11 +1,13 @@
-{ stdenv, fetchgit, gtk-engine-murrine }:
+{ lib, stdenv, fetchFromGitHub, gtk-engine-murrine }:
 
-stdenv.mkDerivation {
-  name = "orion-1.5";
+stdenv.mkDerivation rec {
+  pname = "orion";
+  version = "1.5";
 
-  src = fetchgit {
-    url = "https://github.com/shimmerproject/Orion.git";
-    rev = "refs/tags/v1.5";
+  src = fetchFromGitHub {
+    owner = "shimmerproject";
+    repo = "Orion";
+    rev = "refs/tags/v${version}";
     sha256 = "1116yawv3fspkiq1ykk2wj0gza3l04b5nhldy0bayzjaj0y6fd89";
   };
 
@@ -18,7 +20,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "https://github.com/shimmerproject/Orion";
-    license = stdenv.lib.licenses.gpl3Plus;
-    platforms = stdenv.lib.platforms.linux;
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/data/themes/paper-gtk/default.nix b/pkgs/data/themes/paper-gtk/default.nix
index 6f6c8b7851f..e7c9179678f 100644
--- a/pkgs/data/themes/paper-gtk/default.nix
+++ b/pkgs/data/themes/paper-gtk/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, gtk_engines }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, gtk_engines }:
 
 stdenv.mkDerivation {
   version = "2016-08-16";
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
 
   preferLocalBuild = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A modern desktop theme suite featuring a mostly flat with a minimal use of shadows for depth";
     homepage = "https://snwh.org/paper";
     license = licenses.gpl3;
diff --git a/pkgs/data/themes/plano/default.nix b/pkgs/data/themes/plano/default.nix
index 7ac245b920f..9f05a199193 100644
--- a/pkgs/data/themes/plano/default.nix
+++ b/pkgs/data/themes/plano/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib, stdenv
 , fetchFromGitHub
 , meson
 , ninja
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "plano-theme";
-  version = "3.36-1";
+  version = "3.38-1";
 
   src = fetchFromGitHub {
     owner = "lassekongo83";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1rngn5a7hwjqpznbg5kvgs237d2q1anywg37k1cz153ipa96snrv";
+    sha256 = "0g2mwvzc04z3dsdfhwqgw9s7987406pv22s9rbazfvprk4ddc5b6";
   };
 
   nativeBuildInputs = [
@@ -36,10 +36,10 @@ stdenv.mkDerivation rec {
     gtk-engine-murrine
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Flat theme for GNOME and Xfce";
     homepage = "https://github.com/lassekongo83/plano-theme";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/data/themes/plata/default.nix b/pkgs/data/themes/plata/default.nix
index 2e23e9a5bbe..69e6f0bb0d2 100644
--- a/pkgs/data/themes/plata/default.nix
+++ b/pkgs/data/themes/plata/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitLab, autoreconfHook, pkgconfig, parallel
-, sassc, inkscape_0, libxml2, glib, gdk-pixbuf, librsvg, gtk-engine-murrine
+{ lib, stdenv, fetchFromGitLab, autoreconfHook, pkg-config, parallel
+, sassc, inkscape, libxml2, glib, gdk-pixbuf, librsvg, gtk-engine-murrine
 , cinnamonSupport ? true
 , gnomeFlashbackSupport ? true
 , gnomeShellSupport ? true
@@ -32,15 +32,15 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     autoreconfHook
-    pkgconfig
+    pkg-config
     parallel
     sassc
-    inkscape_0
+    inkscape
     libxml2
     glib.dev
   ]
-  ++ stdenv.lib.optionals mateSupport [ gtk3 marco ]
-  ++ stdenv.lib.optional telegramSupport zip;
+  ++ lib.optionals mateSupport [ gtk3 marco ]
+  ++ lib.optional telegramSupport zip;
 
   buildInputs = [
     gdk-pixbuf
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
 
   configureFlags =
     let
-      inherit (stdenv.lib) enableFeature optional;
+      inherit (lib) enableFeature optional;
       withOptional = value: feat: optional (value != null) "--with-${feat}=${value}";
     in [
       "--enable-parallel"
@@ -81,7 +81,7 @@ stdenv.mkDerivation rec {
     done
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A GTK theme based on Material Design Refresh";
     homepage = "https://gitlab.com/tista500/plata-theme";
     license = with licenses; [ gpl2 cc-by-sa-40 ];
diff --git a/pkgs/data/themes/pop-gtk/default.nix b/pkgs/data/themes/pop-gtk/default.nix
index feb2ddebb39..ec17be3261d 100644
--- a/pkgs/data/themes/pop-gtk/default.nix
+++ b/pkgs/data/themes/pop-gtk/default.nix
@@ -1,10 +1,10 @@
-{ stdenv
+{ lib, stdenv
 , fetchFromGitHub
 , meson
 , ninja
 , sassc
 , gtk3
-, inkscape_0
+, inkscape
 , optipng
 , gtk-engine-murrine
 , gdk-pixbuf
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     ninja
     sassc
     gtk3
-    inkscape_0
+    inkscape
     optipng
     python3
   ];
@@ -48,13 +48,13 @@ stdenv.mkDerivation rec {
     for file in $(find -name render-\*.sh); do
       substituteInPlace "$file" \
         --replace 'INKSCAPE="/usr/bin/inkscape"' \
-                  'INKSCAPE="${inkscape_0}/bin/inkscape"' \
+                  'INKSCAPE="${inkscape}/bin/inkscape"' \
         --replace 'OPTIPNG="/usr/bin/optipng"' \
                   'OPTIPNG="${optipng}/bin/optipng"'
     done
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "System76 Pop GTK+ Theme";
     homepage = "https://github.com/pop-os/gtk-theme";
     license = with licenses; [ gpl3 lgpl21 cc-by-sa-40 ];
diff --git a/pkgs/data/themes/qogir/default.nix b/pkgs/data/themes/qogir/default.nix
index 23afcf5ece2..c4f97ebfbda 100644
--- a/pkgs/data/themes/qogir/default.nix
+++ b/pkgs/data/themes/qogir/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, gdk-pixbuf, librsvg, gtk-engine-murrine }:
+{ lib, stdenv, fetchFromGitHub, gdk-pixbuf, librsvg, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "qogir-theme";
-  version = "2020-02-26";
+  version = "2021-06-25";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "1s14knj0ral5a62ymwbg5k5g94v8cq0acq0kyam8ay0rfi7wycdm";
+    sha256 = "178lk0zffm4nd8fc872rfpm2aii1nszq0k389gkiyxkqphmknn4n";
   };
 
   buildInputs = [ gdk-pixbuf librsvg ];
@@ -24,10 +24,10 @@ stdenv.mkDerivation rec {
     rm $out/share/themes/*/{AUTHORS,COPYING}
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Flat Design theme for GTK based desktop environments";
     homepage = "https://vinceliuice.github.io/Qogir-theme";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/data/themes/qtcurve/default.nix b/pkgs/data/themes/qtcurve/default.nix
index 719b1ce1a48..0b639133a4a 100644
--- a/pkgs/data/themes/qtcurve/default.nix
+++ b/pkgs/data/themes/qtcurve/default.nix
@@ -1,43 +1,45 @@
-{ stdenv, fetchFromGitHub, cmake, extra-cmake-modules, pkgconfig, mkDerivation
-, gtk2, qtbase, qtsvg, qtx11extras # Toolkit dependencies
+{ lib, fetchFromGitHub, cmake, extra-cmake-modules, pkg-config, mkDerivation
+, gtk2Support ? true, gtk2
+, qtbase, qtsvg, qtx11extras # Toolkit dependencies
 , karchive, kconfig, kconfigwidgets, kio, frameworkintegration
 , kguiaddons, ki18n, kwindowsystem, kdelibs4support, kiconthemes
 , libpthreadstubs, pcre, libXdmcp, libX11, libXau # X11 dependencies
 , fetchpatch
 }:
 
-let
-  version = "1.9.1";
-in mkDerivation {
+mkDerivation rec {
   pname = "qtcurve";
-  inherit version;
+  version = "1.9.1";
   src = fetchFromGitHub {
     owner = "KDE";
     repo = "qtcurve";
     rev = version;
-    sha256 = "0sm1fza68mwl9cvid4h2lsyxq5svia86l5v9wqk268lmx16mbzsw";
+    sha256 = "XP9VTeiVIiMm5mkXapCKWxfcvaYCkhY3S5RXZNR3oWo=";
   };
 
   patches = [
+    # Remove unnecessary constexpr, this is not allowed in C++14
     (fetchpatch {
       url = "https://github.com/KDE/qtcurve/commit/ee2228ea2f18ac5da9b434ee6089381df815aa94.patch";
       sha256 = "1vz5frsrsps93awn84gk8d7injrqfcyhc1rji6s0gsgsp5z9sl34";
     })
+    # Fix build with Qt5.15
+    (fetchpatch {
+      url = "https://github.com/KDE/qtcurve/commit/44e2a35ebb164dcab0bad1a9158b1219a3ff6504.patch";
+      sha256 = "5I2fTxKRJX0cJcyUvYHWZx369FKk6ti9Se7AfYmB9ek=";
+    })
   ];
 
-  enableParallelBuilding = true;
-
-  nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig ];
+  nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ];
 
   buildInputs = [
-    gtk2
     qtbase qtsvg qtx11extras
     karchive kconfig kconfigwidgets kio kiconthemes kguiaddons ki18n
     kwindowsystem kdelibs4support frameworkintegration
     libpthreadstubs
     pcre
     libXdmcp libX11 libXau
-  ];
+  ] ++ lib.optional gtk2Support gtk2;
 
   preConfigure = ''
     for i in qt5/CMakeLists.txt qt5/config/CMakeLists.txt
@@ -52,11 +54,16 @@ in mkDerivation {
     patchShebangs tools/gen-version.sh
   '';
 
-  meta = with stdenv.lib; {
+  configureFlags = [
+    "-DENABLE_GTK2=${if gtk2Support then "ON" else "OFF"}"
+    "-DENABLE_QT4=OFF"
+  ];
+
+  meta = with lib; {
     homepage = "https://github.com/QtCurve/qtcurve";
     description = "Widget styles for Qt5/Plasma 5 and gtk2";
     platforms = platforms.linux;
     license = licenses.lgpl21Plus;
-    maintainers = [ maintainers.gnidorah ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/data/themes/shades-of-gray/default.nix b/pkgs/data/themes/shades-of-gray/default.nix
index 718fb2b5d4c..e4c4cfb3ba5 100644
--- a/pkgs/data/themes/shades-of-gray/default.nix
+++ b/pkgs/data/themes/shades-of-gray/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, gtk_engines, gtk-engine-murrine }:
+{ lib, stdenv, fetchFromGitHub, gtk_engines, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "shades-of-gray-theme";
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     cp -a Shades-of-gray* $out/share/themes/
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Flat dark GTK theme with ergonomic contrasts";
     homepage = "https://github.com/WernerFP/Shades-of-gray-theme";
     license = licenses.gpl3Plus;
diff --git a/pkgs/data/themes/sierra/default.nix b/pkgs/data/themes/sierra/default.nix
index 470010eb54a..d3fbb5fe788 100644
--- a/pkgs/data/themes/sierra/default.nix
+++ b/pkgs/data/themes/sierra/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, libxml2, gdk-pixbuf, librsvg, gtk-engine-murrine }:
+{ lib, stdenv, fetchFromGitHub, libxml2, gdk-pixbuf, librsvg, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "sierra-gtk-theme";
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     name= ./install.sh --dest $out/share/themes
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Mac OSX like theme for GTK based desktop environments";
     homepage = "https://github.com/vinceliuice/Sierra-gtk-theme";
     license = licenses.gpl3;
diff --git a/pkgs/data/themes/skeu/default.nix b/pkgs/data/themes/skeu/default.nix
new file mode 100644
index 00000000000..d8b0c189657
--- /dev/null
+++ b/pkgs/data/themes/skeu/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "skeu";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "0lbl09p0h493ya978fh7cib68qlmxfxahmbj0mpa3b65ynxda645";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Skeu* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "GTK theme with skeuomorphism design";
+    homepage = "https://www.pling.com/p/1363834/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/snowblind/default.nix b/pkgs/data/themes/snowblind/default.nix
index 3517f4de263..d36fe232442 100644
--- a/pkgs/data/themes/snowblind/default.nix
+++ b/pkgs/data/themes/snowblind/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitLab, gtk-engine-murrine }:
+{ lib, stdenv, fetchFromGitLab, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "snowblind";
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     rm $out/share/themes/*/{COPYING,CREDITS}
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Smooth blue theme based on Materia Design";
     homepage = "https://www.opencode.net/ju1464/Snowblind";
     license = licenses.gpl3;
diff --git a/pkgs/data/themes/solarc/default.nix b/pkgs/data/themes/solarc/default.nix
index b8e937564a5..3f6932e40a0 100644
--- a/pkgs/data/themes/solarc/default.nix
+++ b/pkgs/data/themes/solarc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, autoconf, automake, pkgconfig,
+{ lib, stdenv, fetchFromGitHub, autoconf, automake, pkg-config,
   gtk-engine-murrine, gtk3
 }:
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
     sha256 = "005b66whyxba3403yzykpnlkz0q4m154pxpb4jzcny3fggy9r70s";
   };
 
-  nativeBuildInputs = [ autoconf automake pkgconfig gtk3 ];
+  nativeBuildInputs = [ autoconf automake pkg-config gtk3 ];
 
   propagatedUserEnvPkgs = [ gtk-engine-murrine gtk3 ];
 
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
     ./autogen.sh --prefix=$out
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Solarized version of the Arc theme";
     homepage = "https://github.com/schemar/solarc-theme";
     license = licenses.gpl3;
diff --git a/pkgs/data/themes/stilo/default.nix b/pkgs/data/themes/stilo/default.nix
index ecef868f287..bfcda049329 100644
--- a/pkgs/data/themes/stilo/default.nix
+++ b/pkgs/data/themes/stilo/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, meson, ninja, sassc, gdk-pixbuf, librsvg, gtk_engines, gtk-engine-murrine }:
+{ lib, stdenv, fetchFromGitHub, meson, ninja, sassc, gdk-pixbuf, librsvg, gtk_engines, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "stilo-themes";
-  version = "3.36-2";
+  version = "3.38-1";
 
   src = fetchFromGitHub {
     owner = "lassekongo83";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0w4il6rk1f8yjmdxpnzq6zll2jjqbyp9dckxhzxgs4zh8fy9pzvh";
+    sha256 = "09xarzp0j0a8cqzcg0447jl5cgvl6ccj5f00dik1hy2nlrz7d8ad";
   };
 
   nativeBuildInputs = [ meson ninja sassc ];
@@ -17,10 +17,10 @@ stdenv.mkDerivation rec {
 
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Minimalistic GTK, gnome shell and Xfce themes";
     homepage = "https://github.com/lassekongo83/stilo-themes";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/data/themes/sweet/default.nix b/pkgs/data/themes/sweet/default.nix
index 9d3603cbf52..bd1df3277c9 100644
--- a/pkgs/data/themes/sweet/default.nix
+++ b/pkgs/data/themes/sweet/default.nix
@@ -1,46 +1,48 @@
-{ stdenv, fetchurl, unzip }:
+{ lib, stdenv, fetchurl, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "sweet";
-  version = "1.10.5";
+  version = "2.0";
 
   srcs = [
     (fetchurl {
-      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Ambar-Blue.zip";
-      sha256 = "11040hx8ci4vbnyaj63zj924v0ln7rjm9a28mcqdax60h3dp12lj";
+      url = "https://github.com/EliverLara/Sweet/releases/download/${version}/Sweet-Ambar-Blue.tar.xz";
+      sha256 = "028pk07im7pab8a2vh3bvjm8jg37dpvn4c1mwn6vhb6wcr9v5c75";
     })
     (fetchurl {
-      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Ambar.zip";
-      sha256 = "0lvnjmirpwdav8q0bfbhybwkr2h6dilc7lhhj18xd2k57xadjmxr";
+      url = "https://github.com/EliverLara/Sweet/releases/download/${version}/Sweet-Ambar.tar.xz";
+      sha256 = "0zmdmqndj65kr43g3z57blrmv0y856zlfprm6y45zbf4xz3ybkg6";
     })
     (fetchurl {
-      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Dark.zip";
-      sha256 = "0a7mh1pgvi8w1ahsmvgnmpdawm30lcjqk4zqvg0lqadsd04dn4h1";
+      url = "https://github.com/EliverLara/Sweet/releases/download/${version}/Sweet-Dark.tar.xz";
+      sha256 = "02sw664fkrfpsygspq8fn4zgk8rxs9rd29nnx6nyvkji68mb51s6";
     })
     (fetchurl {
-      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-mars.zip";
-      sha256 = "0n2dkl35qrik10wvhvkayyra987p03g56pxhz5kc73cbsl5zd96l";
+      url = "https://github.com/EliverLara/Sweet/releases/download/${version}/Sweet-mars.tar.xz";
+      sha256 = "14rl3il61jyqwiqlpgbh397q3rcs7jcf2pvr2763ar5a9czmy8h6";
     })
     (fetchurl {
-      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet.zip";
-      sha256 = "0wwmc3wj2pjg4kimfkvcsimk3s4s7l7k000vxqi8yjlfs70f273c";
+      url = "https://github.com/EliverLara/Sweet/releases/download/${version}/Sweet.tar.xz";
+      sha256 = "0rza3yxwj256ibqimymjhd6lpjzr7fkhggq0ijdg1wab3q91x66q";
     })
   ];
 
-  nativeBuildInputs = [ unzip ];
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
   sourceRoot = ".";
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/themes/
     cp -a Sweet* $out/share/themes/
     rm $out/share/themes/*/{LICENSE,README*}
+    runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Light and dark colorful Gtk3.20+ theme";
     homepage = "https://github.com/EliverLara/Sweet";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ fuzen ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/data/themes/ubuntu-themes/default.nix b/pkgs/data/themes/ubuntu-themes/default.nix
index 6be3ce1d80b..fb23141a64e 100644
--- a/pkgs/data/themes/ubuntu-themes/default.nix
+++ b/pkgs/data/themes/ubuntu-themes/default.nix
@@ -1,32 +1,32 @@
-{ stdenv
+{ lib, stdenv
 , fetchurl
 , fetchpatch
 , gnome-icon-theme
-, gnome3
+, gnome
 , gtk-engine-murrine
 , gtk3
 , hicolor-icon-theme
 , humanity-icon-theme
-, python2Packages
+, python3Packages
 }:
 
 stdenv.mkDerivation rec {
   pname = "ubuntu-themes";
-  version = "19.04";
+  version = "20.10";
 
   src = fetchurl {
     url = "https://launchpad.net/ubuntu/+archive/primary/+files/${pname}_${version}.orig.tar.gz";
-    sha256 = "1dy2dmiq2dj80nl2y4mf4ks0c7qmmnpk25wzv2rynwa3s2gkxgih";
+    sha256 = "00frn2dd4kjhlmwkasrx4a820fwrg8f8hmiwh51m63bpj00vwn0r";
   };
 
   nativeBuildInputs = [
     gtk3
-    python2Packages.python
+    python3Packages.python
   ];
 
   propagatedBuildInputs = [
     gnome-icon-theme
-    gnome3.adwaita-icon-theme
+    gnome.adwaita-icon-theme
     humanity-icon-theme
     hicolor-icon-theme
   ];
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Ubuntu monochrome and Suru icon themes, Ambiance and Radiance themes, and Ubuntu artwork";
     homepage = "https://launchpad.net/ubuntu-themes";
     license = with licenses; [ cc-by-sa-40 gpl3 ];
diff --git a/pkgs/data/themes/venta/default.nix b/pkgs/data/themes/venta/default.nix
new file mode 100644
index 00000000000..cd679152160
--- /dev/null
+++ b/pkgs/data/themes/venta/default.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "venta";
+  version = "2020-08-20";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = "f9b7ea560def5c9d25a14015d265ba559d3501ca";
+    sha256 = "13rdavspz1q3zk2h04jpd77hxdcifg42kd71qq13ryg4b5yzqqgb";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Venta* $out/share/themes
+    rm $out/share/themes/*/COPYING
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Gtk theme based on windows 10 style";
+    homepage = "https://www.pling.com/p/1386774/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/vertex/default.nix b/pkgs/data/themes/vertex/default.nix
index 81c681f5371..cff886440e3 100644
--- a/pkgs/data/themes/vertex/default.nix
+++ b/pkgs/data/themes/vertex/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, gtk-engine-murrine }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "theme-vertex";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0c9mhrs95ahz37djrv176vn41ywvj26ilwmnr1h9171giv6hid98";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
@@ -27,11 +27,11 @@ stdenv.mkDerivation rec {
     cp AUTHORS README.md $out/share/doc/$pname/
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     inherit (src.meta) homepage;
     description = "Theme for GTK 3, GTK 2, Gnome-Shell, and Cinnamon";
     license = licenses.gpl3;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ rycee romildo ];
+    maintainers = with maintainers; [ romildo ];
   };
 }
diff --git a/pkgs/data/themes/vimix/default.nix b/pkgs/data/themes/vimix/default.nix
index 1b3d2005f08..1694063e4fe 100644
--- a/pkgs/data/themes/vimix/default.nix
+++ b/pkgs/data/themes/vimix/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, gtk_engines, gtk-engine-murrine }:
+{ lib, stdenv, fetchFromGitHub, gtk_engines, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "vimix-gtk-themes";
-  version = "2020-02-24";
+  version = "2021-04-25";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "18v7yhwzachjgy276rdhj5cg353f0qysa2kxk9gyc6s71q2gjzcv";
+    sha256 = "0ak763vs27h5z2pgcqpz1g1hypn5gl0p0ylffawc9zdi1wp2mpxb";
   };
 
   buildInputs = [ gtk_engines ];
@@ -16,16 +16,18 @@ stdenv.mkDerivation rec {
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
   installPhase = ''
+    runHook preInstall
     patchShebangs .
     mkdir -p $out/share/themes
-    name= ./install.sh -d $out/share/themes
+    name= ./install.sh --all --dest $out/share/themes
     rm $out/share/themes/*/{AUTHORS,LICENSE}
+    runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Flat Material Design theme for GTK based desktop environments";
     homepage = "https://github.com/vinceliuice/vimix-gtk-themes";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/data/themes/whitesur/default.nix b/pkgs/data/themes/whitesur/default.nix
new file mode 100644
index 00000000000..e9691eaad7d
--- /dev/null
+++ b/pkgs/data/themes/whitesur/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, glib
+, gnome-themes-extra
+, libxml2
+, sassc
+, util-linux
+}:
+
+stdenv.mkDerivation rec {
+  pname = "whitesur-gtk-theme";
+  version = "2021-06-23";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "075fw57mv6zadq4dryn8bg2b3vq8inmisq18s758cv53pprxh9hw";
+  };
+
+  nativeBuildInputs = [
+    glib
+    libxml2
+    sassc
+    util-linux
+  ];
+
+  buildInputs = [
+    gnome-themes-extra # adwaita engine for Gtk2
+  ];
+
+  postPatch = ''
+    find -name "*.sh" -print0 | while IFS= read -r -d ''' file; do patchShebangs "$file"; done
+
+    # Do not provide `sudo`, as it is not needed in our use case of the install script
+    substituteInPlace lib-core.sh --replace '$(which sudo)' false
+  '';
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    ./install.sh --dest $out/share/themes --alt all --theme all
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "MacOS Big Sur like theme for Gnome desktops";
+    homepage = "https://github.com/vinceliuice/WhiteSur-gtk-theme";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/pkgs/data/themes/yaru-remix/default.nix b/pkgs/data/themes/yaru-remix/default.nix
new file mode 100644
index 00000000000..87056583b55
--- /dev/null
+++ b/pkgs/data/themes/yaru-remix/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitHub, meson, sassc, pkg-config, glib, ninja, python3, gtk3, gnome }:
+
+stdenv.mkDerivation rec {
+  pname = "yaru-remix";
+  version = "40";
+
+  src = fetchFromGitHub {
+    owner = "Muqtxdir";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0xilhw5gbxsyy80ixxgj0nw6w782lz9dsinhi24026li1xny804c";
+  };
+
+  nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
+  buildInputs = [ gtk3 gnome.gnome-themes-extra ];
+
+  dontDropIconThemeCache = true;
+
+  postPatch = "patchShebangs .";
+
+  meta = with lib; {
+    description = "Fork of the Yaru GTK theme";
+    homepage = "https://github.com/Muqtxdir/yaru-remix";
+    license = with licenses; [ cc-by-sa-40 gpl3Plus lgpl21Only lgpl3Only ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ hoppla20 ];
+  };
+}
diff --git a/pkgs/data/themes/yaru/default.nix b/pkgs/data/themes/yaru/default.nix
index 4e869469db6..40cfaee17df 100644
--- a/pkgs/data/themes/yaru/default.nix
+++ b/pkgs/data/themes/yaru/default.nix
@@ -1,19 +1,34 @@
-{ stdenv, fetchFromGitHub, meson, sassc, pkg-config, glib, ninja,
-  python3, gtk3, gnome3, gtk-engine-murrine, humanity-icon-theme, hicolor-icon-theme }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, sassc
+, pkg-config
+, glib
+, ninja
+, python3
+, gtk3
+, gnome
+, gtk-engine-murrine
+, humanity-icon-theme
+, hicolor-icon-theme
+}:
 
 stdenv.mkDerivation rec {
   pname = "yaru";
-  version = "20.10.1";
+  version = "21.04.1";
 
   src = fetchFromGitHub {
     owner = "ubuntu";
     repo = "yaru";
     rev = version;
-    sha256 = "08zws1qwvfr126fgdkqxxmpsqgfk02s31n90555bd5d66cfgdh72";
+    sha256 = "0z6k8q9b5xjx6xwirqbsqq5jjxw79ar2d61r7cgipqmbjdsjfgjz";
   };
 
   nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
-  buildInputs = [ gtk3 gnome3.gnome-themes-extra ];
+
+  buildInputs = [ gtk3 gnome.gnome-themes-extra ];
+
   propagatedBuildInputs = [ humanity-icon-theme hicolor-icon-theme ];
 
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
@@ -22,11 +37,11 @@ stdenv.mkDerivation rec {
 
   postPatch = "patchShebangs .";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Ubuntu community theme 'yaru' - default Ubuntu theme since 18.10";
     homepage = "https://github.com/ubuntu/yaru";
-    license = with licenses; [ cc-by-sa-40 gpl3 ];
+    license = with licenses; [ cc-by-sa-40 gpl3Plus lgpl21Only lgpl3Only ];
     platforms = platforms.linux;
-    maintainers = [ maintainers.jD91mZM2 ];
+    maintainers = with maintainers; [ fortuneteller2k maxeaubrey ];
   };
 }
diff --git a/pkgs/data/themes/zuki/default.nix b/pkgs/data/themes/zuki/default.nix
index 628708b2387..098edf6cc2e 100644
--- a/pkgs/data/themes/zuki/default.nix
+++ b/pkgs/data/themes/zuki/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, meson, ninja, sassc, gdk-pixbuf, librsvg, gtk_engines, gtk-engine-murrine }:
+{ lib, stdenv, fetchFromGitHub, meson, ninja, sassc, gdk-pixbuf, librsvg, gtk_engines, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "zuki-themes";
-  version = "3.36-3";
+  version = "3.38-1";
 
   src = fetchFromGitHub {
     owner = "lassekongo83";
     repo = pname;
     rev = "v${version}";
-    sha256 = "19cxbrjkyk7ndpd5hnznpprlbp7dqqrs0qg0ry80rpfj0nw0gyhi";
+    sha256 = "0890i8kavgnrhm8ic4zpl16wc4ngpnf1zi8js9gvki2cl7dlj1xm";
   };
 
   nativeBuildInputs = [ meson ninja sassc ];
@@ -17,10 +17,10 @@ stdenv.mkDerivation rec {
 
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Themes for GTK, gnome-shell and Xfce";
     homepage = "https://github.com/lassekongo83/zuki-themes";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
   };