Subject: [bug#57149] [PATCH] gnu: Add font-nerd-fonts-firacode

From: Liliana Marie Prikler <[email-masked]>
Date: Fri, 12 Aug 2022 11:51:09 +0200

Am Freitag, dem 12.08.2022 um 00:23 -0400 schrieb Benoit Joly:
> * gnu/packages/fonts (font-nerd-fonts-firacode): New variable.
> ---
>  gnu/packages/fonts.scm | 35 +++++++++++++++++++++++++++++++++++
>  1 file changed, 35 insertions(+)
> 
> diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
> index 20b55bce96..0ce9ba8414 100644
> --- a/gnu/packages/fonts.scm
> +++ b/gnu/packages/fonts.scm
> @@ -51,6 +51,7 @@
>  ;;; Copyright © 2021 Liliana Marie Prikler
> <[email-masked]>
>  ;;; Copyright © 2022 Jose G Perez Taveras <[email-masked]>
>  ;;; Copyright © 2022 Hilton Chain <[email-masked]>
> +;;; Copyright © 2022 Benoit Joly <[email-masked]>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -2795,3 +2796,37 @@ (define-public font-chiron-hei-hk
>  Kong variant of Adobe’s Source Han Sans.  The font aims at providing
> a modern,
>  region-agnostic glyph set adopting the “modern” glyph style that is
> similar to
>  prevalent typefaces in Traditional Chinese regions.")))
> +
> +(define-public font-nerd-fonts-fira-code
> +  (package
> +   (name "font-nerd-fonts-fira-code")
> +   (version "2.1.0")
> +   (source
> +    (origin
> +     (method url-fetch)
> +     (uri
> +      (string-append
> +       "https://github.com/ryanoasis/nerd-fonts/releases/download/v"
> +       version
> +       "/FiraCode.zip"))
> +     (sha256
> +      (base32
> +       "1rx7zrkq0584k6hrh6dx30xrnz5nq379xyw73pfd4gxaxnh9mpi1"))))
Use (uri (string-append "..."
                        "...")
> +   (build-system font-build-system)
> +   (arguments
> +    `(#:phases
> +      (modify-phases %standard-phases
> +        (add-before 'install 'make-files-writable
> +          (lambda _
> +            (for-each
> +             make-file-writable
> +             (find-files "." ".*\\.(otf|otc|ttf|ttc)$"))
> +            #t)))))
Why do the files need to be made writable for install?

> +   (home-page "https://www.nerdfonts.com/")
> +   (synopsis "Nerd fonts variant of FiraCode font")
> +   (description
> +    "Nerd fonts variant of FiraCode font.  Nerd Fonts is a project
> that patches
> +developer targeted fonts with a high number of glyphs (icons). 
> Specifically to
> +add a high number of extra glyphs from popular 'iconic fonts' such
> as Font
> +Awesome, Devicons, Octicons, and others.")
> +   (license license:silofl1.1)))
The description should consist of full sentences.  Note that Nerd fonts
pulls in icons that are licensed under CC BY-NC-ND, which makes them
unfree.  I'm not sure if those icons are present in the default
distribution, but I'd hazard a guess that they are.

More concerningly, the patches that can be applied via nerd fonts are
directly coded into their font-patcher, rather than, say, distributed
as a json file to be read separately.  As far as I'm aware, this makes
nerd-fonts (the tool) itself NG.

Cheers