# Copyright 2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # # This ebuild is derived from http://gpo.zugaina.org/Overlays/ROKO__ and http://gpo.zugaina.org/Overlays/gentoo-zh # TODO: FontPatcher is not yet included in this ebuild. Will do that later, but PR are welcome :) EAPI=8 inherit font check-reqs DESCRIPTION="Collection of fonts that are patched to include a high number of glyphs (icons)." HOMEPAGE="https://nerdfonts.com" RESTRICT="mirror" LICENSE="MIT OFL-1.1 Apache-2.0 CC-BY-SA-4.0 BitstreamVera BSD WTFPL-2 Vic-Fieger-License UbuntuFontLicense-1.0" SLOT="0" KEYWORDS="~amd64 ~x86" DIRNAME=( 0xProto 3270 Agave AnonymousPro Arimo AurulentSansMono BigBlueTerminal BitstreamVeraSansMono CascadiaCode CascadiaMono CodeNewRoman ComicShannsMono CommitMono Cousine D2Coding DaddyTimeMono DejaVuSansMono DroidSansMono EnvyCodeR FantasqueSansMono FiraCode FiraMono GeistMono Go-Mono Gohu Hack Hasklig HeavyData Hermit IBMPlexMono Inconsolata InconsolataGo InconsolataLGC IntelOneMono Iosevka IosevkaTerm IosevkaTermSlab JetBrainsMono Lekton LiberationMono Lilex MPlus MartianMono Meslo MonaSpace Monofur Monoid Mononoki NerdFontsSymbolsOnly Noto OpenDyslexic Overpass ProFont ProggyClean RobotoMono ShareTechMono SourceCodePro SpaceMono Terminus Tinos Ubuntu UbuntuMono VictorMono iA-Writer ) IUSE_FLAGS=(${DIRNAME[*],,}) IUSE="${IUSE_FLAGS[*]}" MY_URI="https://github.com/ryanoasis/${PN}/releases/download/v${PV}" TAG_URI="https://github.com/ryanoasis/nerd-fonts/raw/v${PV}" SRC_URI="0xproto? ( "${MY_URI}/0xproto.tar.xz" -> "0xproto${PV}.tar.xz" ) 3270? ( "${MY_URI}/3270.tar.xz" -> "3270-${PV}.tar.xz" ) agave? ( "${MY_URI}/Agave.tar.xz" -> "Agave-${PV}.tar.xz" ) anonymouspro? ( "${MY_URI}/AnonymousPro.tar.xz" -> "AnonymousPro-${PV}.tar.xz" ) arimo? ( "${MY_URI}/Arimo.tar.xz" -> "Arimo-${PV}.tar.xz" ) aurulentsansmono? ( "${MY_URI}/AurulentSansMono.tar.xz" -> "AurulentSansMono-${PV}.tar.xz" ) bigblueterminal? ( "${MY_URI}/BigBlueTerminal.tar.xz" -> "BigBlueTerminal-${PV}.tar.xz" ) bitstreamverasansmono? ( "${MY_URI}/BitstreamVeraSansMono.tar.xz" -> "BitstreamVeraSansMono-${PV}.tar.xz" ) cascadiacode? ( "${MY_URI}/CascadiaCode.tar.xz" -> "CascadiaCode-${PV}.tar.xz" ) cascadiamono? ( "${MY_URI}/CascadiaMono.tar.xz" -> "CascadiaMono-${PV}.tar.xz" ) codenewroman? ( "${MY_URI}/CodeNewRoman.tar.xz" -> "CodeNewRoman-${PV}.tar.xz" ) comicshannsmono? ( "${MY_URI}/ComicShannsMono.tar.xz" -> "ComicShannsMono-${PV}.tar.xz" ) commitmono? ( "${MY_URI}/CommitMono.tar.xz" -> "CommitMono-${PV}.tar.xz" ) cousine? ( "${MY_URI}/Cousine.tar.xz" -> "Cousine-${PV}.tar.xz" ) d2coding? ( "${MY_URI}/D2Coding.tar.xz" -> "D2Coding-${PV}.tar.xz" ) daddytimemono? ( "${MY_URI}/DaddyTimeMono.tar.xz" -> "DaddyTimeMono-${PV}.tar.xz" ) dejavusansmono? ( "${MY_URI}/DejaVuSansMono.tar.xz" -> "DejaVuSansMono-${PV}.tar.xz" ) droidsansmono? ( "${MY_URI}/DroidSansMono.tar.xz" -> "DroidSansMono-${PV}.tar.xz" ) envycoder? ( "${MY_URI}/EnvyCodeR.tar.xz" -> "EnvyCodeR-${PV}.tar.xz" ) fantasquesansmono? ( "${MY_URI}/FantasqueSansMono.tar.xz" -> "FantasqueSansMono-${PV}.tar.xz" ) firacode? ( "${MY_URI}/FiraCode.tar.xz" -> "FiraCode-${PV}.tar.xz" ) firamono? ( "${MY_URI}/FiraMono.tar.xz" -> "FiraMono-${PV}.tar.xz" ) go-mono? ( "${MY_URI}/Go-Mono.tar.xz" -> "Go-Mono-${PV}.tar.xz" ) geistmono? ( "${MY_URI}/GeistMono.tar.xz" -> "GeistMono-${PV}.tar.xz" ) gohu? ( "${MY_URI}/Gohu.tar.xz" -> "Gohu-${PV}.tar.xz" ) hack? ( "${MY_URI}/Hack.tar.xz" -> "Hack-${PV}.tar.xz" ) hasklig? ( "${MY_URI}/Hasklig.tar.xz" -> "Hasklig-${PV}.tar.xz" ) heavydata? ( "${MY_URI}/HeavyData.tar.xz" -> "HeavyData-${PV}.tar.xz" ) hermit? ( "${MY_URI}/Hermit.tar.xz" -> "Hermit-${PV}.tar.xz" ) ia-writer? ( "${MY_URI}/iA-Writer.tar.xz" -> "iA-Writer-${PV}.tar.xz" ) ibmplexmono? ( "${MY_URI}/IBMPlexMono.tar.xz" -> "IBMPlexMono-${PV}.tar.xz" ) inconsolata? ( "${MY_URI}/Inconsolata.tar.xz" -> "Inconsolata-${PV}.tar.xz" ) inconsolatago? ( "${MY_URI}/InconsolataGo.tar.xz" -> "InconsolataGo-${PV}.tar.xz" ) inconsolatalgc? ( "${MY_URI}/InconsolataLGC.tar.xz" -> "InconsolataLGC-${PV}.tar.xz" ) iosevka? ( "${MY_URI}/Iosevka.tar.xz" -> "Iosevka-${PV}.tar.xz" ) iosevkaterm? ( "${MY_URI}/IosevkaTerm.tar.xz" -> "IosevkaTerm-${PV}.tar.xz" ) iosevkatermslab? ( "${MY_URI}/IosevkaTermSlab.tar.xz" -> "IosevkaTermSlab-${PV}.tar.xz" ) intelonemono? ( "${MY_URI}/IntelOneMono.tar.xz" -> "IntelOneMono-${PV}.tar.xz" ) jetbrainsmono? ( "${MY_URI}/JetBrainsMono.tar.xz" -> "JetBrainsMono-${PV}.tar.xz" ) lekton? ( "${MY_URI}/Lekton.tar.xz" -> "Lekton-${PV}.tar.xz" ) liberationmono? ( "${MY_URI}/LiberationMono.tar.xz" -> "LiberationMono-${PV}.tar.xz" ) lilex? ( "${MY_URI}/Lilex.tar.xz" -> "Lilex-${PV}.tar.xz" ) martianmono? ( "${MY_URI}/MartianMono.tar.xz" -> "MartianMono-${PV}.tar.xz" ) meslo? ( "${MY_URI}/Meslo.tar.xz" -> "Meslo-${PV}.tar.xz" ) monaspace? ( "${MY_URI}/MonaSpace.tar.xz" -> "MonaSpace-${PV}.tar.xz" ) monofur? ( "${MY_URI}/Monofur.tar.xz" -> "Monofur-${PV}.tar.xz" ) monoid? ( "${MY_URI}/Monoid.tar.xz" -> "Monoid-${PV}.tar.xz" ) mononoki? ( "${MY_URI}/Mononoki.tar.xz" -> "Mononoki-${PV}.tar.xz" ) mplus? ( "${MY_URI}/MPlus.tar.xz" -> "MPlus-${PV}.tar.xz" ) nerdfontssymbolsonly? ( "${MY_URI}/NerdFontsSymbolsOnly.tar.xz" -> "NerdFontsSymbolsOnly-${PV}.tar.xz" "${TAG_URI}/10-nerd-font-symbols.conf" -> "10-nerd-font-symbols.conf-${PV}" ) noto? ( "${MY_URI}/Noto.tar.xz" -> "Noto-${PV}.tar.xz" ) opendyslexic? ( "${MY_URI}/OpenDyslexic.tar.xz" -> "OpenDyslexic-${PV}.tar.xz" ) overpass? ( "${MY_URI}/Overpass.tar.xz" -> "Overpass-${PV}.tar.xz" ) profont? ( "${MY_URI}/ProFont.tar.xz" -> "ProFont-${PV}.tar.xz" ) proggyclean? ( "${MY_URI}/ProggyClean.tar.xz" -> "ProggyClean-${PV}.tar.xz" ) robotomono? ( "${MY_URI}/RobotoMono.tar.xz" -> "RobotoMono-${PV}.tar.xz" ) sharetechmono? ( "${MY_URI}/ShareTechMono.tar.xz" -> "ShareTechMono-${PV}.tar.xz" ) sourcecodepro? ( "${MY_URI}/SourceCodePro.tar.xz" -> "SourceCodePro-${PV}.tar.xz" ) spacemono? ( "${MY_URI}/SpaceMono.tar.xz" -> "SpaceMono-${PV}.tar.xz" ) terminus? ( "${MY_URI}/Terminus.tar.xz" -> "Terminus-${PV}.tar.xz" ) tinos? ( "${MY_URI}/Tinos.tar.xz" -> "Tinos-${PV}.tar.xz" ) ubuntu? ( "${MY_URI}/Ubuntu.tar.xz" -> "Ubuntu-${PV}.tar.xz" ) ubuntumono? ( "${MY_URI}/UbuntuMono.tar.xz" -> "UbuntuMono-${PV}.tar.xz" ) victormono? ( "${MY_URI}/VictorMono.tar.xz" -> "VictorMono-${PV}.tar.xz" )" DEPEND="app-arch/xz-utils" RDEPEND="media-libs/fontconfig" CHECKREQS_DISK_BUILD="4G" CHECKREQS_DISK_USR="4G" S="${WORKDIR}" FONT_CONF=( "${FILESDIR}"/10-nerd-font-symbols.conf ) FONT_S=${S} pkg_pretend() { check-reqs_pkg_setup } src_prepare() { if use nerdfontssymbolsonly; then install -m644 "${DISTDIR}/10-nerd-font-symbols.conf-${PV}" "${S}/10-nerd-font-symbols.conf" || die fi default } src_install() { declare -A font_filetypes local otf_file_number ttf_file_number otf_file_number=$(find ${S} -regex '.*\.otf' | wc -l) ttf_file_number=$(find ${S} -regex '.*\.ttf' | wc -l) if [[ ${otf_file_number} != 0 ]]; then font_filetypes[otf]= fi if [[ ${ttf_file_number} != 0 ]]; then font_filetypes[ttf]= fi FONT_SUFFIX="${!font_filetypes[@]}" font_src_install } pkg_postinst() { einfo "Installing font-patcher via an ebuild is hard, because paths are hardcoded differently" einfo "in .sh files. You can still get it and use it by git cloning the nerd-font project and" einfo "running it from the cloned directory." einfo "https://github.com/ryanoasis/nerd-fonts" elog "You might have to enable 50-user.conf and 10-nerd-font-symbols.conf by using" elog "eselect fontconfig" }