gnu: unbound: Update to 1.9.1.
[jackhill/guix/guix.git] / gnu / packages / fonts.scm
index e0d5732..bb8548c 100644 (file)
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2017 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Joshua Grant <tadni@riseup.net>
 ;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
@@ -7,20 +7,23 @@
 ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 ;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015, 2016 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016, 2017, 2018 ng0 <ng0@n0.is>
+;;; Copyright © 2016, 2017, 2018 Nils Gillmann <ng0@n0.is>
 ;;; Copyright © 2016 Jookia <166291@gmail.com>
 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016 Dmitry Nikolaev <cameltheman@gmail.com>
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2016 Toni Reina <areina@riseup.net>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.com>
 ;;; Copyright © 2017 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org>
-;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2017, 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
+;;; Copyright © 2018 Charlie Ritter <chewzerita@posteo.net>
+;;; Copyright © 2018 Gabriel Hondet <gabrielhondet@gmail.com>
+;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module (gnu packages python)
   #:use-module (gnu packages xorg))
 
+(define-public font-ibm-plex
+  (package
+    (name "font-ibm-plex")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/IBM/plex/releases/download/"
+                    "v" version "/OpenType.zip"))
+              (sha256
+               (base32
+                "0nzxw9z6waixslam248yr26ci3fbk83c7jf6m90hncnaj6zxx795"))))
+    (build-system font-build-system)
+    (home-page "https://github.com/IBM/plex")
+    (synopsis "IBM Plex typeface")
+    (description "This package provides the Plex font family.  It comes in a
+Sans, Serif, Mono and Sans Condensed, all with roman and true italics.  The
+fonts have been designed to work well in user interface (UI) environments as
+well as other mediums.")
+    (license license:silofl1.1)))
+
 (define-public font-inconsolata
   (package
     (name "font-inconsolata")
@@ -77,13 +101,14 @@ in print.  With attention to detail for high resolution rendering.")
     (name "font-ubuntu")
     (version "0.83")
     (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "http://font.ubuntu.com/download/ubuntu-font-family-"
-                    version ".zip"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://salsa.debian.org/fonts-team/fonts-ubuntu")
+                    (commit (string-append "upstream/" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0hjvq2x758dx0sfwqhzflns0ns035qm7h6ygskbx1svzg517sva5"))))
+                "1d2xrjpxy70f3nsgqiggwv6pj06qglf5vj2847pqx60w3ygi903g"))))
     (build-system font-build-system)
     (home-page "http://font.ubuntu.com/")
     (synopsis "The Ubuntu Font Family")
@@ -115,8 +140,9 @@ TrueType (TTF) files.")
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((conf-dir (string-append (assoc-ref outputs "out")
                                             "/share/fontconfig/conf.avail")))
-               (copy-recursively "fontconfig" conf-dir)))))))
-    (home-page "http://dejavu-fonts.org/")
+               (copy-recursively "fontconfig" conf-dir)
+               #t))))))
+    (home-page "https://dejavu-fonts.github.io/")
     (synopsis "Vera font family derivate with additional characters")
     (description "DejaVu provides an expanded version of the Vera font family
 aiming for quality and broader Unicode coverage while retaining the original
@@ -173,35 +199,15 @@ sans-serif designed for on-screen reading.  It is used by GNOME@tie{}3.")
 (define-public font-lato
   (package
     (name "font-lato")
-    (version "2.010")
+    (version "2.010")                   ; also update description
     (source (origin
-              (method url-fetch)
-              (uri (string-append "http://www.latofonts.com/download/Lato2OFL.zip"))
+              (method url-fetch/zipbomb)
+              (uri (string-append "https://www.latofonts.com/download/Lato2OFL.zip"))
               (sha256
                (base32
                 "1f5540g0ja1nx3ddd3ywn77xc81ssrxpq8n3gyb9sabyq2b4xda2"))))
-    (build-system trivial-build-system)
-    (arguments
-     `(#:modules ((guix build utils))
-       #:builder (begin
-                   (use-modules (guix build utils)
-                                (srfi srfi-26))
-
-                   (let ((PATH     (string-append (assoc-ref %build-inputs
-                                                             "unzip")
-                                                  "/bin"))
-                         (font-dir (string-append %output
-                                                  "/share/fonts/truetype")))
-                     (setenv "PATH" PATH)
-                     (system* "unzip" (assoc-ref %build-inputs "source"))
-
-                     (mkdir-p font-dir)
-                     (for-each (lambda (ttf)
-                                 (install-file ttf font-dir))
-                               (find-files "." "\\.ttf$"))))))
-
-    (native-inputs `(("unzip" ,unzip)))
-    (home-page "http://www.latofonts.com/lato-free-fonts/")
+    (build-system font-build-system)
+    (home-page "https://www.latofonts.com/lato-free-fonts/")
     (synopsis "Lato sans-serif typeface")
     (description
      "Lato is a sanserif typeface family.  It covers over 3000 glyphs per style.
@@ -303,37 +309,24 @@ The Liberation Fonts are sponsored by Red Hat.")
               (sha256
                (base32
                 "0x7cz6hvhpil1rh03rax9zsfzm54bh7r4bbrq8rz673gl9h47v0v"))))
-    (build-system gnu-build-system)
+    (build-system font-build-system)
     (arguments
-     `(#:tests? #f ; there are no tests
-       #:modules ((guix build utils)
-                  (guix build gnu-build-system)
-                  (srfi srfi-1)
-                  (srfi srfi-26))
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
-         (delete 'configure)
-         (replace 'build
+         (add-before 'install 'build
            (lambda _
              (let ((compile
                     (lambda (name ext)
-                      (zero? (system*
-                              "fontforge" "-lang=ff"
-                              "-c" (string-append "Open('" name "');"
-                                                  "Generate('"
-                                                  (basename name "sfd") ext
-                                                  "')"))))))
-               (every (lambda (name)
-                        (and (compile name "ttf")
-                             (compile name "otf")))
-                      (find-files "." "\\.sfd$")))))
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((font-dir (string-append (assoc-ref outputs "out")
-                                            "/share/fonts/truetype")))
-               (mkdir-p font-dir)
-               (for-each (cut install-file <> font-dir)
-                         (find-files "." "\\.(otf|ttf)$"))
+                      (invoke
+                       "fontforge" "-lang=ff"
+                       "-c" (string-append "Open('" name "');"
+                                           "Generate('"
+                                           (basename name "sfd") ext
+                                           "')")))))
+               (for-each (lambda (name)
+                           (and (compile name "ttf")
+                                (compile name "otf")))
+                         (find-files "." "\\.sfd$"))
                #t))))))
     (native-inputs
      `(("fontforge" ,fontforge)))
@@ -351,33 +344,23 @@ Biolinum is available in both Regular and Bold weights.")
 (define-public font-terminus
   (package
     (name "font-terminus")
-    (version "4.40")
+    (version "4.47")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append
-               "mirror://sourceforge/terminus-font/terminus-font-"
-               version
-               "/terminus-font-"
-               version
-               ".tar.gz"))
-        (sha256
-         (base32
-          "0487cyx5h1f0crbny5sg73a22gmym5vk1i7646gy7hgiscj2rxb4"))))
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/terminus-font/terminus-font-"
+                           version "/terminus-font-" version ".tar.gz"))
+       (sha256
+        (base32 "15qjcpalcxjiwsjgjg5k88vkwp56cs2nnx4ghya6mqp4i1c206qg"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("perl" ,perl)
-       ("bdftopcf" ,bdftopcf)
+     `(("bdftopcf" ,bdftopcf)
        ("font-util" ,font-util)
-       ("mkfontdir" ,mkfontdir)))
+       ("mkfontdir" ,mkfontdir)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python)))
     (arguments
-     `(#:configure-flags (list
-                          ;; install fonts into subdirectory of package output
-                          ;; instead of font-util-?.?.?/share/fonts/X11
-                          (string-append "--with-fontrootdir="
-                                         %output "/share/fonts/X11"))
-       #:tests? #f)) ;; No test target in tarball
+     `(#:tests? #f))                    ; no test target in tarball
     (home-page "http://terminus-font.sourceforge.net/")
     (synopsis "Simple bitmap programming font")
     (description "Terminus Font is a clean, fixed-width bitmap font, designed
@@ -417,14 +400,15 @@ for long periods of working with computers (8 or more hours per day).")
                                     (string-append (assoc-ref %outputs out)
                                                    "/share/fonts/opentype")))))
            (setenv "PATH" PATH)
-           (system* tar "xvf" (assoc-ref %build-inputs "source"))
+           (invoke tar "xvf" (assoc-ref %build-inputs "source"))
            (chdir (string-append "source-han-sans-" ,version "R"))
            (install-opentype-fonts "OTC" "out")
            (install-opentype-fonts "SubsetOTF/CN" "cn")
            (install-opentype-fonts "SubsetOTF/JP" "jp")
            (install-opentype-fonts "SubsetOTF/KR" "kr")
            (install-opentype-fonts "SubsetOTF/TW" "tw")
-           (for-each delete-file (find-files %output "\\.zip$"))))))
+           (for-each delete-file (find-files %output "\\.zip$"))
+           #t))))
     (native-inputs
      `(("gzip" ,gzip)
        ("tar" ,tar)))
@@ -440,15 +424,19 @@ text in Simplified Chinese, Traditional Chinese, Japanese, and Korean.")
     (license license:silofl1.1)))
 
 (define-public font-cns11643
+  ;; Since upstream doesn't provide any version numbers, the date of the last
+  ;; edit is used, taken from https://data.gov.tw/dataset/5961
+  ;; XXX: The source is also updated in-place, so it may be desirable to mirror
+  ;; it elsewhere to avoid suddenly losing the current source file.
   (package
     (name "font-cns11643")
-    (version "98.1.20170524")
+    (version "98.1.20180605")
     (source (origin
               (method url-fetch)
               (uri "http://www.cns11643.gov.tw/AIDB/Open_Data.zip")
               (sha256
                (base32
-                "1iad6rklxkx03ji1fav9faq7cmqkci3i6pcyg2ilvh984j5qzhq3"))))
+                "000a9whrjr1cd4pjc23pbl60zwkq3wcb5g61p9qi7fn3hwkp0kyw"))))
     (build-system font-build-system)
     (home-page "http://www.cns11643.gov.tw/AIDB/welcome.do")
     (synopsis "CJK TrueType fonts, TW-Kai and TW-Sung")
@@ -507,12 +495,11 @@ variants.")
                     "mirror://sourceforge/wqy/wqy-zenhei/" version
                     "%20%28Fighting-state%20RC1%29/wqy-zenhei-"
                     version ".tar.gz"))
-              (file-name (string-append "wqy-zenhei-" version ".tar.gz"))
               (sha256
                (base32
                 "1mkmxq8g2hjcglb3zajfqj20r4r88l78ymsp2xyl5yav8w3f7dz4"))))
     (build-system font-build-system)
-    (home-page "http://wenq.org/wqy2/")
+    (home-page "https://wenq.org/wqy2/")
     (synopsis "CJK font")
     (description
      "WenQuanYi Zen Hei is a Hei-Ti style (sans-serif type) Chinese outline
@@ -524,7 +511,7 @@ this font is over 35,000, including over 21,000 Chinese Hanzi.  This font has
 full coverage of the GBK (CP936) charset, CJK Unified Ideographs, as well as
 the code-points needed for zh_cn, zh_sg, zh_tw, zh_hk, zh_mo, ja (Japanese) and
 ko (Korean) locales for @code{fontconfig}.")
-    ;; GPLv2 with font embedding exception
+    ;; GPLv2 with font embedding exception.
     (license license:gpl2)))
 
 (define-public font-wqy-microhei
@@ -609,13 +596,13 @@ Heros, Pagella, Schola, Termes.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://www.marksimonson.com/assets/content/fonts/"
+                    "https://www.marksimonson.com/assets/content/fonts/"
                     "AnonymousPro-" version ".zip"))
               (sha256
                (base32
                 "1asj6lykvxh46czbal7ymy2k861zlcdqpz8x3s5bbpqwlm3mhrl6"))))
     (build-system font-build-system)
-    (home-page "http://www.marksimonson.com/fonts/view/anonymous-pro")
+    (home-page "https://www.marksimonson.com/fonts/view/anonymous-pro")
     (synopsis "Fixed-width fonts designed with coding in mind")
     (description "Anonymous Pro is a family of four fixed-width fonts designed
 with coding in mind.  Anonymous Pro features an international, Unicode-based
@@ -626,7 +613,7 @@ languages, plus Greek and Cyrillic.")
 (define-public font-gnu-unifont
   (package
     (name "font-gnu-unifont")
-    (version "10.0.07")
+    (version "12.0.01")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -634,16 +621,14 @@ languages, plus Greek and Cyrillic.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "1js8dn4v4pv8jqprsxa1fv4fs3hqhm9x4dj19fg9qgc8fx7k0v0k"))))
+                "059j82z6z4wqyy3261ns0zg2b2vh2wvxxfbsa9hra9xasism49vb"))))
     (build-system gnu-build-system)
-    (outputs '("out" ; TrueType version
-               "pcf" ; PCF (bitmap) version
-               "psf" ; PSF (console) version
-               "bin" ; Utilities to manipulate '.hex' format
-               ))
+    (outputs '("out"   ; TrueType version
+               "pcf"   ; PCF (bitmap) version
+               "psf"   ; PSF (console) version
+               "bin")) ; Utilities to manipulate '.hex' format
     (arguments
-     '(#:parallel-build? #f ; parallel build fails
-       #:tests? #f          ; no check target
+     '(#:tests? #f          ; no check target
        #:phases
        (modify-phases %standard-phases
          (replace
@@ -659,16 +644,17 @@ languages, plus Greek and Cyrillic.")
                    (psf (string-append (assoc-ref outputs "psf")
                                        "/share/consolefonts"))
                    (bin (assoc-ref outputs "bin")))
-              (system* "make"
-                       (string-append "PREFIX=" bin)
-                       (string-append "TTFDEST=" ttf)
-                       (string-append "PCFDEST=" pcf)
-                       (string-append "CONSOLEDEST=" psf)
-                       "install")
+              (invoke "make"
+                      (string-append "PREFIX=" bin)
+                      (string-append "TTFDEST=" ttf)
+                      (string-append "PCFDEST=" pcf)
+                      (string-append "CONSOLEDEST=" psf)
+                      "install")
               ;; Move Texinfo file to the right place.
               (mkdir (string-append bin "/share/info"))
-              (rename-file (string-append bin "/share/unifont/unifont.info.gz")
-                           (string-append bin "/share/info/unifont.info.gz"))
+              (invoke "gzip" "-9n" "doc/unifont.info")
+              (install-file "doc/unifont.info.gz"
+                            (string-append bin "/share/info"))
               #t))))))
     (inputs
      `(("perl" ,perl))) ; for utilities
@@ -757,41 +743,51 @@ It contains the following fonts and styles:
 (define-public font-fantasque-sans
   (package
     (name "font-fantasque-sans")
-    (version "1.7.1")
+    (version "1.7.2")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/belluzj/fantasque-sans/"
-                           "archive/v" version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/belluzj/fantasque-sans.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "07fpy53k2x2nz5q61swkab6cfk9gw2kc4x4brsj6zjgbm16fap85"))))
+         "1gjranq7qf20rfxnpxsckv1hl35nzsal0rjs475nhfbpqy5wmly6"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("ttfautohint" ,ttfautohint)
        ("woff-tools" ,woff-tools)
        ("fontforge" ,fontforge)
        ("woff2" ,woff2)
-       ("ttf2eot" ,ttf2eot)))
+       ("ttf2eot" ,ttf2eot)
+       ("zip" ,zip)))
     (arguments
      `(#:tests? #f                 ;test target intended for visual inspection
        #:phases (modify-phases %standard-phases
                   (delete 'configure)   ;no configuration
+                  (add-before 'build 'xrange->range
+                    ;; Rather than use a python2 fontforge, just replace the
+                    ;; offending function.
+                    (lambda _
+                      (substitute* "Scripts/fontbuilder.py"
+                        (("xrange") "range"))
+                      #t))
                   (replace 'install
                     ;; 'make install' wants to install to ~/.fonts, install to
-                    ;; output instead.
+                    ;; output instead.  Install only the "Normal" variant.
                     (lambda* (#:key outputs #:allow-other-keys)
                       (let* ((out (assoc-ref outputs "out"))
                              (font-dir (string-append out "/share/fonts"))
                              (truetype-dir (string-append font-dir "/truetype"))
                              (opentype-dir (string-append font-dir "/opentype"))
                              (webfonts-dir (string-append font-dir "/webfonts")))
-                        (copy-recursively "OTF" opentype-dir)
-                        (for-each (lambda (f) (install-file f truetype-dir))
-                                  (find-files "." "\\.ttf$"))
-                        (copy-recursively "Webfonts" webfonts-dir)
-                        #t))))))
+                        (with-directory-excursion "Variants/Normal"
+                          (copy-recursively "OTF" opentype-dir)
+                          (for-each (lambda (f) (install-file f truetype-dir))
+                                    (find-files "." "\\.ttf$"))
+                          (copy-recursively "Webfonts" webfonts-dir)
+                          #t)))))))
     (synopsis "Font family with a monospaced variant for programmers")
     (description
      "Fantasque Sans Mono is a programming font designed with functionality in
@@ -803,7 +799,7 @@ glyph designs, not just an added slant.")
 (define-public font-hack
   (package
     (name "font-hack")
-    (version "3.000")
+    (version "3.003")
     (source (origin
               (method url-fetch/zipbomb)
               (uri (string-append
@@ -811,13 +807,13 @@ glyph designs, not just an added slant.")
                     version "/Hack-v" version "-ttf.zip"))
               (sha256
                (base32
-                "0h6slqg25a6cq57k6rh5hmnk8dxbprmf8shs4iyj1pc83sw6b1r3"))))
+                "1b4hh8zkrx92m2v2vfkja1napb0192p0j3laqr0m018z3dih89hc"))))
     (build-system font-build-system)
     (home-page "https://sourcefoundry.org/hack/")
     (synopsis "Typeface designed for source code")
     (description
      "Hack is designed to be a workhorse typeface for code.  It expands upon
-the Bitstream Vera & DejaVu projects, provides 1561 glyphs, and includes
+the Bitstream Vera & DejaVu projects, provides over 1,500 glyphs, and includes
 Powerline support.")
     (license
      ;; See https://github.com/source-foundry/Hack/issues/271 for details.
@@ -851,6 +847,56 @@ Powerline support.")
 designed to work well in user interface environments.")
     (license license:silofl1.1)))
 
+(define-public font-adobe-source-sans-pro
+  (package
+    (name "font-adobe-source-sans-pro")
+    (version "2.040R-ro-1.090R-it")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/adobe-fonts/source-sans-pro/archive/"
+                    (regexp-substitute/global
+                     ;; The upstream tag uses "/" between the roman and italic
+                     ;; versions, so substitute our "-" separator here.
+                     #f "R-ro-" version 'pre "R-ro/" 'post) ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1wpbhd2idps53ph8rg1mhr3vz4lsgbpjprcq10nliwcxdz9d8lv0"))))
+    (build-system font-build-system)
+    (home-page "https://github.com/adobe-fonts/source-sans-pro")
+    (synopsis
+     "Sans serif font family for user interface environments")
+    (description
+     "Source Sans Pro is a set of OpenType fonts that have been designed to
+work well in user interface (UI) environments.")
+    (license license:silofl1.1)))
+
+(define-public font-adobe-source-serif-pro
+  (package
+    (name "font-adobe-source-serif-pro")
+    (version "2.007R-ro-1.007R-it")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/adobe-fonts/source-serif-pro/archive/"
+                    (regexp-substitute/global
+                     ;; The upstream tag uses "/" between the roman and italic
+                     ;; versions, so substitute our "-" separator here.
+                     #f "R-ro-" version 'pre "R-ro/" 'post) ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1sws9k26ldqk375qsigk1zv8cq1xlvadjwvv3dqrcc3qzm1c7hwc"))))
+    (build-system font-build-system)
+    (home-page "https://github.com/adobe-fonts/source-serif-pro")
+    (synopsis
+     "Serif typeface to complement Source Sans Pro for setting text")
+    (description
+     "Source Serif Pro is a set of OpenType fonts to complement the Source
+Sans Pro family.")
+    (license license:silofl1.1)))
+
 (define-public font-fira-mono
   (package
     (name "font-fira-mono")
@@ -865,7 +911,7 @@ designed to work well in user interface environments.")
                (base32
                 "1z65x0dw5dq6rs6p9wyfrir50rlh95vgzsxr8jcd40nqazw4jhpi"))))
     (build-system font-build-system)
-    (home-page "http://mozilla.github.io/Fira/")
+    (home-page "https://mozilla.github.io/Fira/")
     (synopsis "Mozilla's monospace font")
     (description "This is the typeface used by Mozilla in Firefox OS.")
     (license license:silofl1.1)))
@@ -883,7 +929,7 @@ designed to work well in user interface environments.")
                (base32
                 "1r6zdnqqp4bgq5nmgqbj0vvj7x1h9w912851ggbl9wc7fdjnjqnq"))))
     (build-system font-build-system)
-    (home-page "http://mozilla.github.io/Fira/")
+    (home-page "https://mozilla.github.io/Fira/")
     (synopsis "Mozilla's Fira Sans Font")
     (description "This is the typeface used by Mozilla in Firefox OS.")
     (license license:silofl1.1)))
@@ -891,7 +937,7 @@ designed to work well in user interface environments.")
 (define-public font-fira-code
   (package
     (name "font-fira-code")
-    (version "1.204")
+    (version "1.206")
     (source (origin
               (method url-fetch/zipbomb)
               (uri (string-append "https://github.com/tonsky/FiraCode/releases/"
@@ -899,7 +945,7 @@ designed to work well in user interface environments.")
                                   "/FiraCode_" version ".zip"))
               (sha256
                (base32
-                "17wky221b3igrqhmxgmqiyv1xdfn0nw471vzhpkrvv1w2w1w1k18"))))
+                "02r1lcp0c9135ps71v66wdvbsrcxwirrp0blqsa1xbjkkq2rwgj3"))))
     (build-system font-build-system)
     (home-page "https://mozilla.github.io/Fira/")
     (synopsis "Monospaced font with programming ligatures")
@@ -914,6 +960,9 @@ correct spacing.")
 (define-public font-awesome
   (package
    (name "font-awesome")
+   ;; XXX The build scripts of version 5 are not freely licensed and
+   ;; so we have to stick with version 4 for now:
+   ;; <https://bugs.gnu.org/32916>
    (version "4.7.0")
    (source (origin
             (method url-fetch)
@@ -959,7 +1008,7 @@ vector graphics.")
                (src-pcf-dir (string-append "tamzen-font-Tamzen-"
                                             ,version "/pcf")))
            (setenv "PATH" PATH)
-           (system* tar "xvf" (assoc-ref %build-inputs "source"))
+           (invoke tar "xvf" (assoc-ref %build-inputs "source"))
            (mkdir-p font-dir)
            (mkdir-p psf-dir)
            (chdir src-pcf-dir)
@@ -1157,38 +1206,13 @@ itself."))))
     (version "1.7")
     (source
      (origin
-       (method url-fetch)
+       (method url-fetch/zipbomb)
        (uri (string-append "http://www.impallari.com/media/releases/dosis-"
                            "v" version ".zip"))
        (sha256
         (base32
          "1qhci68f68mf87jd69vjf9qjq3wydgw1q7ivn3amjb65ls1s0c4s"))))
-    (build-system trivial-build-system)
-    (arguments
-     `(#:modules ((guix build utils))
-       #:builder (begin
-                   (use-modules (guix build utils)
-                                (srfi srfi-26))
-
-                   (let ((PATH     (string-append (assoc-ref %build-inputs
-                                                             "unzip")
-                                                  "/bin"))
-                         (ttf-dir (string-append %output
-                                                 "/share/fonts/truetype"))
-                         (otf-dir (string-append %output
-                                                 "/share/fonts/opentype")))
-                     (setenv "PATH" PATH)
-                     (system* "unzip" (assoc-ref %build-inputs "source"))
-
-                     (mkdir-p ttf-dir)
-                     (mkdir-p otf-dir)
-                     (for-each (lambda (ttf)
-                                 (install-file ttf ttf-dir))
-                               (find-files "." "\\.ttf$"))
-                     (for-each (lambda (otf)
-                                 (install-file otf otf-dir))
-                               (find-files "." "\\.otf$"))))))
-    (native-inputs `(("unzip" ,unzip)))
+    (build-system font-build-system)
     (home-page "http://www.impallari.com/dosis")
     (synopsis "Very simple, rounded, sans serif family")
     (description
@@ -1199,3 +1223,170 @@ that's clean and modern, and can express a wide range of voices & feelings.
 It comes in 7 incremental weights:
 ExtraLight, Light, Book, Medium, Semibold, Bold & ExtraBold")
     (license license:silofl1.1)))
+
+(define-public font-culmus
+  (package
+    (name "font-culmus")
+    (version "0.133")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://sourceforge.net/projects/"
+                           "culmus/files/culmus/" version "/culmus-src-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "02akysgsqhi15cck54xcacm16q5raf4l7shgb8fnj7xr3c1pbfyp"))))
+    (build-system font-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'install 'build
+           (lambda _
+             (let ((compile
+                    (lambda (name ext)
+                      (invoke
+                       "fontforge" "-lang=ff"
+                       "-c" (string-append "Open('" name "');"
+                                           "Generate('"
+                                           (basename name "sfd") ext
+                                           "')")))))
+               ;; This part based on the fonts shipped in the non-source package.
+               (for-each (lambda (name)
+                           (compile name "ttf"))
+                         (find-files "." "^[^Nachlieli].*\\.sfd$"))
+               (for-each (lambda (name)
+                           (compile name "otf"))
+                         (find-files "." "^Nachlieli.*\\.sfd$"))
+               #t))))))
+    (native-inputs
+     `(("fontforge" ,fontforge)))
+    (home-page "http://culmus.sourceforge.net/")
+    (synopsis "TrueType Hebrew Fonts for X11")
+    (description "14 Hebrew trivial families.  Contain ASCII glyphs from various
+sources.  Those families provide a basic set of a serif (Frank Ruehl), sans
+serif (Nachlieli) and monospaced (Miriam Mono) trivials.  Also included Miriam,
+Drugulin, Aharoni, David, Hadasim etc.  Cantillation marks support is
+available in Keter YG.")
+    (license license:gpl2))) ; consult the LICENSE file included
+
+(define-public font-lohit
+  (package
+    (name "font-lohit")
+    (version "20140220")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://releases.pagure.org/lohit/lohit-ttf-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1rmgr445hw1n851ywy28csfvswz1i6hnc8mzp88qw2xk9j4dn32d"))))
+    (build-system font-build-system)
+    (home-page "https://pagure.io/lohit")
+    (synopsis "Lohit TrueType Indic fonts")
+    (description "Lohit is a font family designed to cover Indic scripts.
+Lohit supports the Assamese, Bengali, Devanagari (Hindi, Kashmiri, Konkani,
+Maithili, Marathi, Nepali, Sindhi, Santali, Bodo, Dogri languages), Gujarati,
+Kannada, Malayalam, Manipuri, Oriya, Punjabi, Tamil and Telugu scripts.")
+    (license license:silofl1.1)))
+
+(define-public font-blackfoundry-inria
+  (package
+    (name "font-blackfoundry-inria")
+    (version "1.200")
+    (home-page "https://github.com/BlackFoundry/InriaFonts")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "06775y99lyh6hj5hzvrx56iybdck8a8xfqkipqd5c4cldg0a9hh8"))
+              (file-name (string-append name "-" version "-checkout"))))
+    ;; XXX: There are .ufo directories (the "source") so in theory we should
+    ;; be able to rebuild TTF and OTF files with FontForge.  Unfortunately a
+    ;; command like:
+    ;;
+    ;;  fontforge -lang=ff -c "Open('InriaSans-Regular.ufo'); Generate('foo.ttf');"
+    ;;
+    ;; segfaults in '_UFOLoadGlyph', which calls out to libpython.  :-/
+    ;; In the meantime we ship the precompiled OTF and TTF files.
+    (build-system font-build-system)
+    (synopsis "Inria Sans and Inria Serif type family")
+    (description
+     "Inria Sans and Inria Serif are the two members of a type family designed
+for Inria, a public research institute in computer science and mathematics.")
+    (license license:silofl1.1)))
+
+(define-public font-sil-gentium
+  (package
+    (name "font-sil-gentium")
+    (version "5.000")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://software.sil.org/downloads/r/gentium/GentiumPlus-"
+                    version ".zip"))
+              (sha256
+               (base32
+                "0m7189870hha217n1vgpmf89mwggrxkh679ffi1lxpnjggqi2n9k"))))
+    ;; Note: The zip file provides TTF files only, but the developer release,
+    ;; which contains additional files, has a 'SOURCES.txt' file that says
+    ;; that "the primary source files for the fonts are the fonts themselves".
+    ;; Thus it looks like the TTF can be considered source.
+    (build-system font-build-system)
+    (synopsis "Serif font for the Cyrillic, Greek, and Latin alphabets")
+    (description
+     "Gentium is a typeface family designed to enable the diverse ethnic
+groups around the world who use the Latin, Cyrillic and Greek scripts to
+produce readable, high-quality publications.  The font comes with regular and
+italics shapes.  This package provides only TrueType files (TTF).")
+    (home-page "https://software.sil.org/gentium/")
+    (license license:silofl1.1)))
+
+(define-public font-sil-charis
+  (package
+    (name "font-sil-charis")
+    (version "5.000")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://software.sil.org/downloads/r/charis/CharisSIL-"
+                    version ".zip"))
+              (sha256
+               (base32
+                "1zcvw37f1a7gkml3yfm6hxh93844llm7xj4w52600qq3ndrm8gjy"))))
+    ;; As for Gentium (see above), the TTF files are considered source.
+    (build-system font-build-system)
+    (synopsis "Serif font for the Cyrillic and Latin alphabets")
+    (description
+     "Charis SIL is a Unicode-based font family that supports the wide range
+of languages that use the Latin and Cyrillic scripts.  It is specially
+designed to make long texts pleasant and easy to read, even in less than ideal
+reproduction and display environments.  This package provides only TrueType
+files (TTF).")
+    (home-page "https://software.sil.org/charis/")
+    (license license:silofl1.1)))
+
+(define-public font-mononoki
+  (package
+    (name "font-mononoki")
+    (version "1.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/madmalik/mononoki/")
+                    (commit version)))
+              (sha256
+               (base32
+                "1rkzyxn30rn8qv2h2xz324j7q15hzg2lci8790a7cdl1dfgic4xi"))
+              (file-name (git-file-name name version))))
+    (build-system font-build-system)
+    (synopsis "Font for programming and code review")
+    (description
+     "Mononoki is a typeface by Matthias Tellen, created to enhance code
+formatting.")
+    (home-page "https://madmalik.github.io/mononoki/")
+    (license license:silofl1.1)))