gnu: Add font-sil-ezra.
[jackhill/guix/guix.git] / gnu / packages / fonts.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2014, 2015, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
3 ;;; Copyright © 2014, 2017 Mark H Weaver <mhw@netris.org>
4 ;;; Copyright © 2014 Joshua Grant <tadni@riseup.net>
5 ;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
6 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
7 ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
8 ;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net>
9 ;;; Copyright © 2015, 2016 Leo Famulari <leo@famulari.name>
10 ;;; Copyright © 2016, 2017, 2018 Nikita <nikita@n0.is>
11 ;;; Copyright © 2016 Jookia <166291@gmail.com>
12 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
13 ;;; Copyright © 2016 Dmitry Nikolaev <cameltheman@gmail.com>
14 ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
15 ;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
16 ;;; Copyright © 2016 Toni Reina <areina@riseup.net>
17 ;;; Copyright © 2017–2022 Tobias Geerinckx-Rice <me@tobias.gr>
18 ;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.com>
19 ;;; Copyright © 2017 Alex Griffin <a@ajgrf.com>
20 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
21 ;;; Copyright © 2017 Brendan Tildesley <mail@brendan.scot>
22 ;;; Copyright © 2017, 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
23 ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
24 ;;; Copyright © 2018 Charlie Ritter <chewzerita@posteo.net>
25 ;;; Copyright © 2018 Gabriel Hondet <gabrielhondet@gmail.com>
26 ;;; Copyright © 2019, 2020 Jens Mølgaard <jens@zete.tk>
27 ;;; Copyright © 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
28 ;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr>
29 ;;; Copyright © 2019 Alva <alva@skogen.is>
30 ;;; Copyright © 2019 Alexandros Theodotou <alex@zrythm.org>
31 ;;; Copyright © 2020 Damien Cassou <damien@cassou.me>
32 ;;; Copyright © 2020 Amin Bandali <bandali@gnu.org>
33 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
34 ;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
35 ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
36 ;;; Copyright © 2020, 2021 Julien Lepiller <julien@lepiller.eu>
37 ;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
38 ;;; Copyright © 2020, 2021 Simen Endsjø <simendsjo@gmail.com>
39 ;;; Copyright © 2020 Tim Van den Langenbergh <tmt_vdl@gmx.com>
40 ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
41 ;;; Copyright © 2021 Antoine Côté <antoine.cote@posteo.net>
42 ;;; Copyright © 2021 Sergiu Ivanov <sivanov@colimite.fr>
43 ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
44 ;;; Copyright © 2021 Paul A. Patience <paul@apatience.com>
45 ;;; Copyright © 2021 Taiju HIGASHI <higashi@taiju.info>
46 ;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
47 ;;; Copyright © 2022 Kitzman <kitzman@disroot.org>
48 ;;; Copyright © 2021 Wamm K. D. <jaft.r@outlook.com>
49 ;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
50 ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
51 ;;;
52 ;;; This file is part of GNU Guix.
53 ;;;
54 ;;; GNU Guix is free software; you can redistribute it and/or modify it
55 ;;; under the terms of the GNU General Public License as published by
56 ;;; the Free Software Foundation; either version 3 of the License, or (at
57 ;;; your option) any later version.
58 ;;;
59 ;;; GNU Guix is distributed in the hope that it will be useful, but
60 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
61 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
62 ;;; GNU General Public License for more details.
63 ;;;
64 ;;; You should have received a copy of the GNU General Public License
65 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
66
67 (define-module (gnu packages fonts)
68 #:use-module (ice-9 regex)
69 #:use-module (guix utils)
70 #:use-module ((guix licenses) #:prefix license:)
71 #:use-module (guix packages)
72 #:use-module (guix download)
73 #:use-module (guix gexp)
74 #:use-module (guix git-download)
75 #:use-module (guix build-system font)
76 #:use-module (guix build-system gnu)
77 #:use-module (guix build-system meson)
78 #:use-module (guix build-system trivial)
79 #:use-module (gnu packages c)
80 #:use-module (gnu packages base)
81 #:use-module (gnu packages bash)
82 #:use-module (gnu packages compression)
83 #:use-module (gnu packages fontutils)
84 #:use-module (gnu packages gettext)
85 #:use-module (gnu packages glib)
86 #:use-module (gnu packages gtk)
87 #:use-module (gnu packages perl)
88 #:use-module (gnu packages pkg-config)
89 #:use-module (gnu packages python)
90 #:use-module (gnu packages python-xyz)
91 #:use-module (gnu packages xorg))
92
93 (define-public font-ibm-plex
94 (package
95 (name "font-ibm-plex")
96 (version "5.1.3")
97 (source (origin
98 (method url-fetch)
99 (uri (string-append
100 "https://github.com/IBM/plex/releases/download/"
101 "v" version "/OpenType.zip"))
102 (sha256
103 (base32
104 "0zlz8kxx54i4hpgaip9690bilvn5w14gp7jjkk6cz4h9p3xml231"))))
105 (build-system font-build-system)
106 (home-page "https://github.com/IBM/plex")
107 (synopsis "IBM Plex typeface")
108 (description "This package provides the Plex font family. It comes in a
109 Sans, Serif, Mono and Sans Condensed, all with roman and true italics. The
110 fonts have been designed to work well in user interface (UI) environments as
111 well as other mediums.")
112 (license license:silofl1.1)))
113
114 (define-public font-inconsolata
115 (package
116 (name "font-inconsolata")
117 (version "3.000")
118 (source
119 (origin
120 (method url-fetch)
121 (uri (string-append "https://github.com/googlefonts/Inconsolata/"
122 "releases/download/v" version "/fonts_otf.zip"))
123 (sha256
124 (base32 "1wavvv86nwsqm5sbmnkv1bprj7l7zdrkxpvjy6w8yag93k6hrlx1"))))
125 (build-system font-build-system)
126 (home-page "https://levien.com/type/myfonts/inconsolata.html")
127 (synopsis "Monospace font")
128 (description "A monospace font, designed for code listings and the like,
129 in print. With attention to detail for high resolution rendering.")
130 (license license:silofl1.1)))
131
132 (define-public font-dejavu
133 (package
134 (name "font-dejavu")
135 (version "2.37")
136 (source (origin
137 (method url-fetch)
138 (uri (string-append "mirror://sourceforge/dejavu/dejavu/"
139 version "/dejavu-fonts-ttf-"
140 version ".tar.bz2"))
141 (sha256
142 (base32
143 "1mqpds24wfs5cmfhj57fsfs07mji2z8812i5c4pi5pbi738s977s"))))
144 (build-system font-build-system)
145 (arguments
146 `(#:phases
147 (modify-phases %standard-phases
148 (add-after 'install 'install-conf
149 (lambda* (#:key outputs #:allow-other-keys)
150 (let ((conf-dir (string-append (assoc-ref outputs "out")
151 "/share/fontconfig/conf.avail")))
152 (copy-recursively "fontconfig" conf-dir)
153 #t))))))
154 (home-page "https://dejavu-fonts.github.io/")
155 (synopsis "Vera font family derivate with additional characters")
156 (description "DejaVu provides an expanded version of the Vera font family
157 aiming for quality and broader Unicode coverage while retaining the original
158 Vera style. DejaVu currently works towards conformance to the Multilingual
159 European Standards (MES-1 and MES-2) for Unicode coverage. The DejaVu fonts
160 provide serif, sans and monospaced variants.")
161 (license
162 (license:x11-style
163 "http://dejavu-fonts.org/"))))
164
165 (define-public font-bitstream-vera
166 (package
167 (name "font-bitstream-vera")
168 (version "1.10")
169 (source (origin
170 (method url-fetch)
171 (uri (string-append "mirror://gnome/sources/ttf-bitstream-vera/"
172 version "/ttf-bitstream-vera-"
173 version ".tar.bz2"))
174 (sha256
175 (base32
176 "1p3qs51x5327gnk71yq8cvmxc6wgx79sqxfvxcv80cdvgggjfnyv"))))
177 (build-system font-build-system)
178 (home-page "https://www.gnome.org/fonts/")
179 (synopsis "Bitstream Vera sans-serif typeface")
180 (description "Vera is a sans-serif typeface from Bitstream, Inc. This
181 package provides the TrueType (TTF) files.")
182 (license
183 (license:fsdg-compatible
184 "https://www.gnome.org/fonts/#Final_Bitstream_Vera_Fonts"
185 "The Font Software may be sold as part of a larger software package but
186 no copy of one or more of the Font Software typefaces may be sold by
187 itself."))))
188
189 (define-public font-canada1500
190 (package
191 (name "font-canada1500")
192 (version "1.101")
193 (source (origin
194 (method url-fetch)
195 (uri "https://typodermicfonts.com/wp-content/uploads/2017/06/canada1500.zip")
196 (sha256
197 (base32
198 "0cdcb89ab6q7b6jd898bnvrd1sifbd2xr42qgji98h8d5cq4b6fp"))))
199 (build-system font-build-system)
200 (home-page "https://typodermicfonts.com/canada1500/")
201 (synopsis "Canadian typeface that supports English, French and Aboriginal languages")
202 (description "Canada1500 is a display typeface originally created for the
203 Canadian sesquicentennial with four weights, italics and space symbols which
204 includes lining and old-style numerals, tabular and proportional. Greek,
205 Cyrillic, Canadian Syllabics and most Latin based languages are supported.")
206 (license license:cc0)))
207
208 (define-public font-abattis-cantarell
209 (package
210 (name "font-abattis-cantarell")
211 (version "0.303")
212 (source
213 (origin
214 (method url-fetch/zipbomb)
215 (uri (string-append "https://gitlab.gnome.org/GNOME/cantarell-fonts/-/"
216 "jobs/1515399/artifacts/download"))
217 (file-name (string-append name "-" version "-static"))
218 (sha256
219 (base32 "1dz551xrrhx6l40j57ksk2alllrihghg4947z1r88dpcq3snpn1s"))))
220 (build-system font-build-system)
221 (arguments
222 `(#:phases
223 (modify-phases %standard-phases
224 (add-after 'unpack 'unpack-source
225 ;; The actual OTF fonts are prebuilt (building them requires at least
226 ;; the currently unpackaged psautohint and its numerous dependencies;
227 ;; TODO), but unpack the source so that COPYING is installed later.
228 (lambda* (#:key outputs #:allow-other-keys)
229 (invoke "tar" "--strip-components=1" "-xvf"
230 (string-append "build/meson-dist/cantarell-fonts-"
231 ,version ".tar.xz"))))
232 (add-after 'unpack 'unpack-variable-font
233 (lambda* (#:key inputs #:allow-other-keys)
234 (let ((variable-font (assoc-ref inputs "variable-font")))
235 (copy-recursively (string-append variable-font "/prebuilt")
236 ".")))))))
237 (native-inputs
238 `(("variable-font"
239 ,(origin
240 (method url-fetch/zipbomb)
241 (uri (string-append "https://gitlab.gnome.org/GNOME/cantarell-fonts/-/"
242 "jobs/1515398/artifacts/download"))
243 (file-name (string-append name "-" version "-variable"))
244 (sha256
245 (base32 "0z93pbkxidsx3y98rsl2jm2qpvxv5pj0w870xhnsciglw6pc9a9i"))))
246 ("unzip" ,unzip)))
247 (home-page "https://wiki.gnome.org/Projects/CantarellFonts")
248 (synopsis "Cantarell sans-serif typeface")
249 (description "The Cantarell font family is a contemporary Humanist
250 sans-serif designed for on-screen reading. It is used by GNOME@tie{}3.")
251 (license license:silofl1.1)))
252
253 (define-public font-lato
254 (package
255 (name "font-lato")
256 (version "2.015") ; also update description
257 (source (origin
258 (method url-fetch/zipbomb)
259 (uri (string-append "https://www.latofonts.com/download/Lato2OFL.zip"))
260 (sha256
261 (base32
262 "1f5540g0ja1nx3ddd3ywn77xc81ssrxpq8n3gyb9sabyq2b4xda2"))))
263 (build-system font-build-system)
264 (home-page "https://www.latofonts.com/lato-free-fonts/")
265 (synopsis "Lato sans-serif typeface")
266 (description
267 "Lato is a sanserif typeface family. It covers over 3000 glyphs per style.
268 The Lato 2.010 family supports more than 100 Latin-based languages, over
269 50 Cyrillic-based languages as well as Greek and IPA phonetics.")
270 (license license:silofl1.1)))
271
272 (define-public font-gnu-freefont
273 (package
274 (name "font-gnu-freefont")
275 ;; Note: Remove the special FontForge input and package once the 2020
276 ;; release is out.
277 (version "20120503")
278 (source (origin
279 (method url-fetch)
280 (uri (string-append "mirror://gnu/freefont/freefont-src-"
281 version ".tar.gz"))
282 (sha256
283 (base32
284 "0yk58blhcd4hm7nyincmqq4jrzjjk82wif2zmk1l3y2m4vif4qhd"))))
285 (build-system gnu-build-system)
286 (arguments
287 `(#:phases (modify-phases %standard-phases
288 (delete 'configure)
289 (replace 'install
290 (lambda _
291 (let ((doc-dir (string-append %output "/share/doc/"
292 ,name "-" ,version))
293 (ttf-font-dir (string-append %output
294 "/share/fonts/truetype"))
295 (otf-font-dir (string-append %output
296 "/share/fonts/opentype"))
297 (woff-font-dir (string-append %output
298 "/share/fonts/webfonts")))
299 (mkdir-p doc-dir)
300 (substitute* "Makefile"
301 (("\\$\\(TMPDIR\\)") doc-dir)
302 (("sfd/\\*.ttf") "")
303 (("sfd/\\*.otf") "")
304 (("sfd/\\*.woff") ""))
305 ;; XXX The FreeFont Makefile tries to use the current
306 ;; time and date as names for generated files, and fails
307 ;; silently. But the fonts are still installed, so we
308 ;; leave the issue alone for now.
309 ;; See <https://bugs.gnu.org/40783>
310 (system* "make" "ttftar" "otftar" "wofftar")
311 (mkdir-p ttf-font-dir)
312 (mkdir-p otf-font-dir)
313 (mkdir-p woff-font-dir)
314 (for-each (lambda (file)
315 (install-file file ttf-font-dir))
316 (filter
317 (lambda (file) (string-suffix? "ttf" file))
318 (find-files "." "")))
319 (for-each (lambda (file)
320 (install-file file otf-font-dir))
321 (filter
322 (lambda (file) (string-suffix? "otf" file))
323 (find-files "." "")))
324 (for-each (lambda (file)
325 (install-file file woff-font-dir))
326 (filter
327 (lambda (file) (string-suffix? "woff" file))
328 (find-files "." "")))))))
329 #:test-target "tests"))
330 ;; FreeFont anno 2012 requires a FontForge built with Python 2.
331 (native-inputs (list fontforge-20190801))
332 (home-page "https://www.gnu.org/software/freefont/")
333 (synopsis "Unicode-encoded outline fonts")
334 (description
335 "The GNU Freefont project aims to provide a set of free outline
336 (PostScript Type0, TrueType, OpenType...) fonts covering the ISO
337 10646/Unicode UCS (Universal Character Set).")
338 (license license:gpl3+)
339 (properties '((upstream-name . "freefont")
340 (ftp-directory . "/gnu/freefont")))))
341
342 (define-public font-liberation
343 (package
344 (name "font-liberation")
345 (version "2.1.5")
346 (source
347 (origin
348 (method url-fetch)
349 (uri (string-append
350 "https://github.com/liberationfonts/liberation-fonts/"
351 "files/7261482/liberation-fonts-ttf-" version ".tar.gz"))
352 (sha256
353 (base32 "1l15iwk0x75621q67qlh9wv561c0gc7x0kh9l9rrz29qpxlwd4bi"))))
354 (build-system font-build-system)
355 (home-page "https://github.com/liberationfonts")
356 (synopsis "Fonts compatible with Arial, Times New Roman, and Courier New")
357 (description
358 "The Liberation font family aims at metric compatibility with
359 Arial, Times New Roman, and Courier New.
360 There are three sets:
361
362 @enumerate
363 @item Sans (a substitute for Arial, Albany, Helvetica, Nimbus Sans L, and
364 Bitstream Vera Sans);
365 @item Serif (a substitute for Times New Roman, Thorndale, Nimbus Roman, and
366 Bitstream Vera Serif);
367 @item Mono (a substitute for Courier New, Cumberland, Courier, Nimbus Mono L,
368 and Bitstream Vera Sans Mono).
369 @end enumerate\n")
370 (license license:silofl1.1)))
371
372 (define-public font-linuxlibertine
373 (package
374 (name "font-linuxlibertine")
375 (version "5.3.0")
376 (source (origin
377 (method url-fetch/tarbomb)
378 (uri (string-append "mirror://sourceforge/linuxlibertine/"
379 "linuxlibertine/" version
380 "/LinLibertineSRC_" version "_2012_07_02.tgz"))
381 (sha256
382 (base32
383 "0x7cz6hvhpil1rh03rax9zsfzm54bh7r4bbrq8rz673gl9h47v0v"))))
384 (build-system font-build-system)
385 (arguments
386 `(#:phases
387 (modify-phases %standard-phases
388 (add-before 'install 'build
389 (lambda _
390 (let ((compile
391 (lambda (name ext)
392 (invoke
393 "fontforge" "-lang=ff"
394 "-c" (string-append "Open('" name "');"
395 "Generate('"
396 (basename name "sfd") ext
397 "')")))))
398 (for-each (lambda (name)
399 (and (compile name "ttf")
400 (compile name "otf")))
401 (find-files "." "\\.sfd$"))
402 #t))))))
403 (native-inputs
404 (list fontforge))
405 (home-page "http://www.linuxlibertine.org/")
406 (synopsis "Serif and sans serif typefaces")
407 (description "The Linux Libertine fonts is a set of typefaces containing
408 both a Serif version (\"Linux Libertine\") and a Sans Serif (\"Linux
409 Biolinum\") designed to be used together as an alternative for Times/Times New
410 Roman and Helvetica/Arial. The Serif typeface comes in two shapes and two
411 weights, and with a Small Capitals version of the regular typeface. Linux
412 Biolinum is available in both Regular and Bold weights.")
413 ;; The fonts are released under either of these licenses.
414 (license (list license:gpl2+ license:silofl1.1))))
415
416 (define-public font-libertinus
417 (package
418 (name "font-libertinus")
419 (version "7.040")
420 (source
421 (origin
422 (method url-fetch)
423 (uri (string-append "https://github.com/alerque/libertinus/releases"
424 "/download/v" version "/libertinus-" version
425 ".zip"))
426 (sha256
427 (base32 "1xkj993hwkr49q63dd2dnkvdkm9sckxm3zjwhdxsxn21fi80ikic"))))
428 (build-system font-build-system)
429 (home-page "https://github.com/alerque/libertinus")
430 (synopsis "Font family based on Linux Libertine")
431 (description
432 "The Libertinus font family is a fork of Linux Libertine that addresses
433 many bugs in the unmaintained original and adds a new mathematical companion
434 font for use with OpenType math-capable applications like LuaTex or XeTeX.
435
436 The unified Libertinus family consists of:
437 @enumerate
438 @item Libertinus Serif, forked from Linux Libertine;
439 @item Libertinus Sans Serif, forked from Linux Biolinum;
440 @item Libertinus Mono, forked from Linux Libertine Mono; and
441 @item Libertinus Math, an original matching OpenType math font.
442 @end enumerate\n")
443 (license license:silofl1.1)))
444
445 (define-public font-terminus
446 (package
447 (name "font-terminus")
448 (version "4.49.1")
449 (source
450 (origin
451 (method url-fetch)
452 (uri (string-append "mirror://sourceforge/terminus-font/terminus-font-"
453 (version-major+minor version)
454 "/terminus-font-" version ".tar.gz"))
455 (sha256
456 (base32 "0yggffiplk22lgqklfmd2c0rw8gwchynjh5kz4bz8yv2h6vw2qfr"))))
457 (build-system gnu-build-system)
458 (outputs (list "out" "pcf-8bit" "otb"))
459 (arguments
460 `(#:tests? #f ; no test target in tarball
461 #:phases
462 (modify-phases %standard-phases
463 (add-after 'build 'build-more-bits
464 ;; X11 8-bit code pages aren't installed by default (they were
465 ;; until version 4.46). Build and install them separately.
466 (lambda* (#:key make-flags #:allow-other-keys)
467 (apply invoke "make" "pcf-8bit" make-flags)))
468 (add-after 'install 'install-more-bits
469 (lambda* (#:key make-flags outputs #:allow-other-keys)
470 (let ((pcf-8bit (assoc-ref outputs "pcf-8bit")))
471 (apply invoke "make" "install-pcf-8bit" (string-append "prefix="
472 pcf-8bit)
473 make-flags))))
474 (add-after 'build-more-bits 'build-otb
475 ;; Build Open Type Bitmap
476 (lambda* (#:key make-flags #:allow-other-keys)
477 (apply invoke "make" "otb" make-flags)))
478 (add-after 'install 'install-otb
479 (lambda* (#:key make-flags outputs #:allow-other-keys)
480 (let ((otb (assoc-ref outputs "otb")))
481 (apply invoke "make" "install-otb" (string-append "prefix=" otb)
482 make-flags)))))))
483 (native-inputs
484 (list bdftopcf font-util mkfontdir pkg-config python))
485 (home-page "http://terminus-font.sourceforge.net/")
486 (synopsis "Simple bitmap programming font")
487 (description "Terminus Font is a clean, fixed-width bitmap font, designed
488 for long periods of working with computers (8 or more hours per day).")
489 (license license:silofl1.1)))
490
491 (define-public font-adobe-source-han-sans
492 (package
493 (name "font-adobe-source-han-sans")
494 (version "1.004")
495 (source (origin
496 (method git-fetch)
497 (uri (git-reference
498 (url "https://github.com/adobe-fonts/source-han-sans")
499 (commit (string-append version "R"))))
500 (file-name (git-file-name name version))
501 (sha256
502 (base32
503 "0zm884d8fp5gvirq324050kqv7am9khyqhs9kk4r4rr3jzn61jpk"))))
504 (outputs '("out" ; OpenType/CFF Collection (OTC), 121 MiB.
505 "cn" "jp" "kr" "tw")) ; Region-specific Subset OpenType/CFF.
506 (build-system trivial-build-system)
507 (arguments
508 `(#:modules ((guix build utils))
509 #:builder
510 (begin
511 (use-modules (guix build utils))
512 (let ((install-opentype-fonts
513 (lambda (fonts-dir out)
514 (copy-recursively fonts-dir
515 (string-append (assoc-ref %outputs out)
516 "/share/fonts/opentype")))))
517 (chdir (assoc-ref %build-inputs "source"))
518 (install-opentype-fonts "OTC" "out")
519 (install-opentype-fonts "SubsetOTF/CN" "cn")
520 (install-opentype-fonts "SubsetOTF/JP" "jp")
521 (install-opentype-fonts "SubsetOTF/KR" "kr")
522 (install-opentype-fonts "SubsetOTF/TW" "tw")
523 (for-each delete-file (find-files %output "\\.zip$"))
524 #t))))
525 (home-page "https://github.com/adobe-fonts/source-han-sans")
526 (synopsis "Pan-CJK fonts")
527 (description
528 "Source Han Sans is a sans serif Pan-CJK font family that is offered in
529 seven weights: ExtraLight, Light, Normal, Regular, Medium, Bold, and Heavy.
530 And in several OpenType/CFF-based deployment configurations to accommodate
531 various system requirements or limitations. As the name suggests, Pan-CJK
532 fonts are intended to support the characters necessary to render or display
533 text in Simplified Chinese, Traditional Chinese, Japanese, and Korean.")
534 (license license:silofl1.1)))
535
536 (define-public font-cns11643
537 ;; Since upstream doesn't provide any version numbers, the date of the last
538 ;; edit is used, taken from https://data.gov.tw/dataset/5961
539 ;; XXX: The source is also updated in-place, so it may be desirable to mirror
540 ;; it elsewhere to avoid suddenly losing the current source file.
541 (package
542 (name "font-cns11643")
543 (version "98.1.20180605")
544 (source (origin
545 (method url-fetch)
546 (uri "http://www.cns11643.gov.tw/AIDB/Open_Data.zip")
547 (sha256
548 (base32
549 "000a9whrjr1cd4pjc23pbl60zwkq3wcb5g61p9qi7fn3hwkp0kyw"))))
550 (build-system font-build-system)
551 (home-page "http://www.cns11643.gov.tw/AIDB/welcome.do")
552 (synopsis "CJK TrueType fonts, TW-Kai and TW-Sung")
553 (description
554 "@code{CNS 11643} character set (Chinese National Standard, or Chinese
555 Standard Interchange Code) is the standard character set of the Republic of
556 China (Taiwan) for Chinese Characters and other Unicode symbols. Contained
557 are six TrueType fonts based on two script styles, Regular script (Kai), and
558 Sung/Ming script, each with three variants:
559
560 @itemize
561 @item @code{CNS 11643} (@code{TW-Kai} and @code{TW-Sung}): Tens of thousands
562 of CJK characters from frequency tables published by the Taiwanese
563 Ministry of Education. ISO 10646 and Unicode compatible encoding.
564 @item @code{Big-5 Plus}: Several thousand frequently used CJK characters
565 encoded in the user defined area of the Big-5 code.
566 @item @code{Big-5 Extended}: A Big-5 character set based on the
567 @code{Big-5 Plus} and @code{CNS 11643} character sets.
568 @end itemize\n")
569 (license (license:non-copyleft
570 "http://data.gov.tw/license")))) ; CC-BY 4.0 compatible
571
572 (define-public font-cns11643-swjz
573 (package
574 (name "font-cns11643-swjz")
575 (version "1")
576 (source
577 (origin
578 (method url-fetch)
579 (uri "https://www.moedict.tw/fonts/truetype/cns11643/ebas927.ttf")
580 (sha256
581 (base32
582 "1qkljldbmb53zp1rcmpsb8rzy67rnsqcjxi549m9743ifk4isl78"))))
583 (build-system font-build-system)
584 (home-page
585 (string-append "http://www.cns11643.gov.tw/AIDB/download.do"
586 "?name=%E5%AD%97%E5%9E%8B%E4%B8%8B%E8%BC%89"))
587 (synopsis "TrueType seal script font")
588 (description
589 "@code{Shuowen Jiezi} is a TrueType seal script font based on the ancient
590 text of the same name published by the Executive Yuan of Taiwan. 6721 glyphs
591 are included, at Unicode compatible code points corresponding to their modern
592 variants.")
593 ;; Original text only available in Chinese. More info at
594 ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26703#11
595 (license (license:non-copyleft
596 "http://www.cns11643.gov.tw/AIDB/copyright.do"))))
597
598 (define-public font-wqy-zenhei
599 (package
600 (name "font-wqy-zenhei")
601 (version "0.9.45")
602 (source (origin
603 (method url-fetch)
604 (uri (string-append
605 "mirror://sourceforge/wqy/wqy-zenhei/" version
606 "%20%28Fighting-state%20RC1%29/wqy-zenhei-"
607 version ".tar.gz"))
608 (sha256
609 (base32
610 "1mkmxq8g2hjcglb3zajfqj20r4r88l78ymsp2xyl5yav8w3f7dz4"))))
611 (build-system font-build-system)
612 (home-page "http://wenq.org/wqy2/")
613 (synopsis "CJK font")
614 (description
615 "WenQuanYi Zen Hei is a Hei-Ti style (sans-serif type) Chinese outline
616 font. It is designed for general purpose text formatting and on-screen
617 display of Chinese characters and symbols from many other languages.
618 WenQuanYi Zen Hei provides a rather complete coverage of Chinese Hanzi glyphs,
619 including both simplified and traditional forms. The total glyph number in
620 this font is over 35,000, including over 21,000 Chinese Hanzi. This font has
621 full coverage of the GBK (CP936) charset, CJK Unified Ideographs, as well as
622 the code-points needed for zh_cn, zh_sg, zh_tw, zh_hk, zh_mo, ja (Japanese) and
623 ko (Korean) locales for @code{fontconfig}.")
624 ;; GPLv2 with font embedding exception.
625 (license license:gpl2)))
626
627 (define-public font-wqy-microhei
628 (package
629 (name "font-wqy-microhei")
630 (version "0.2.0-beta")
631 (source (origin
632 (method url-fetch)
633 (uri (string-append "mirror://sourceforge/wqy/wqy-microhei/"
634 version "/wqy-microhei-" version ".tar.gz"))
635 (sha256
636 (base32
637 "0gi1yxqph8xx869ichpzzxvx6y50wda5hi77lrpacdma4f0aq0i8"))))
638 (build-system font-build-system)
639 (home-page "http://wenq.org/wqy2/")
640 (synopsis "CJK font")
641 (description
642 "WenQuanYi Micro Hei is a Sans-Serif style (also known as Hei, Gothic or
643 Dotum among the Chinese/Japanese/Korean users) high quality CJK outline font.
644 It was derived from \"Droid Sans Fallback\" and \"Droid Sans\" released by
645 Google Inc. This font contains all the unified CJK Han glyphs in the range of
646 U+4E00-U+9FC3 defined in Unicode Standard 5.1, together with many other
647 languages unicode blocks, including Latins, Extended Latins, Hanguls and
648 Kanas. The font file is extremely compact (~4M) compared with most known CJK
649 fonts.")
650 ;; This font is licensed under Apache2.0 or GPLv3 with font embedding
651 ;; exceptions.
652 (license license:gpl3)))
653
654 (define-public font-rachana
655 (package
656 (name "font-rachana")
657 (version "7.0.3")
658 (source
659 (origin
660 (method git-fetch)
661 (uri (git-reference
662 (url "https://gitlab.com/smc/fonts/rachana")
663 (commit (string-append "Version" version))))
664 (sha256
665 (base32 "0r100pvk56y1s38nbv24d78s8nd7dkblgasbn8s887dzj6dps23d"))
666 (file-name (git-file-name name version))))
667 (build-system font-build-system)
668 (home-page "https://smc.org.in")
669 (synopsis "Malayalam font")
670 (description
671 "Rachana is a Malayalam font designed by Hussain K H. The project was
672 part of Rachana Aksharavedi for the original script of Malayalam in computing.
673 Rachana has about 1,200+ glyphs for Malayalam and contains glyphs required for
674 printing old Malayalam books without compromising the writing style.")
675 ;; This font is licensed under SIL 1.1 or GPLv3+ with font embedding
676 ;; exceptions.
677 (license (list license:silofl1.1 license:gpl3+))))
678
679 (define-public font-tex-gyre
680 (package
681 (name "font-tex-gyre")
682 (version "2.005")
683 (source
684 (origin
685 (method url-fetch/zipbomb)
686 (uri (string-append "http://www.gust.org.pl/projects/e-foundry/"
687 "tex-gyre/whole/tg-" version "otf.zip"))
688 (sha256
689 (base32
690 "0kph9l3g7jb2bpmxdbdg5zl56wacmnvdvsdn7is1gc750sqvsn31"))))
691 (build-system font-build-system)
692 (home-page "http://www.gust.org.pl/projects/e-foundry/tex-gyre/")
693 (synopsis "Remake of Ghostscript fonts")
694 (description "The TeX Gyre collection of fonts is the result of an
695 extensive remake and extension of the freely available base PostScript fonts
696 distributed with Ghostscript version 4.00. The collection contains the
697 following fonts in the OpenType format: Adventor, Bonum, Chorus, Cursor,
698 Heros, Pagella, Schola, Termes.")
699 (license license:gfl1.0)))
700
701 (define-public font-amiri
702 (package
703 (name "font-amiri")
704 (version "0.114")
705 (source (origin
706 (method git-fetch)
707 (uri (git-reference
708 (url "https://github.com/aliftype/amiri")
709 (commit version)))
710 (file-name (git-file-name name version))
711 (sha256
712 (base32
713 "01d54i68pmy37fhvxv8kld3iqlc1m0vr871zd66y5y4c7kn2v7as"))))
714 (build-system gnu-build-system)
715 (arguments
716 (list
717 #:imported-modules `(,@%gnu-build-system-modules
718 (guix build font-build-system))
719 #:modules `(,@%gnu-build-system-modules
720 ((guix build font-build-system) #:prefix font:))
721 #:phases #~(modify-phases %standard-phases
722 (delete 'configure)
723 (replace 'install
724 (assoc-ref font:%standard-phases 'install)))))
725 (native-inputs
726 (list python-fonttools
727 python-pcpp
728 python-opentype-sanitizer
729 python-sfdlib
730 python-ufolib2
731 python-ufo2ft
732 python-wrapper))
733 (home-page "https://www.amirifont.org/")
734 (synopsis "Body text Naskh typeface")
735 (description "Amiri (أميري) is a classical Arabic typeface in Naskh style
736 for typesetting books and other running text. Amiri is a revival of the
737 typeface pioneered in early 20th century by Bulaq Press in Cairo, also known
738 as Amiria Press, after which the font is named. The uniqueness of this
739 typeface comes from its balance between the beauty of Naskh calligraphy on one
740 hand and the constraints and requirements of elegant typography on the
741 other.")
742 (license license:silofl1.1)))
743
744 (define-public font-anonymous-pro
745 (package
746 (name "font-anonymous-pro")
747 (version "1.002")
748 (source (origin
749 (method url-fetch)
750 (uri (string-append
751 "https://www.marksimonson.com/assets/content/fonts/"
752 "AnonymousPro-" version ".zip"))
753 (sha256
754 (base32
755 "1asj6lykvxh46czbal7ymy2k861zlcdqpz8x3s5bbpqwlm3mhrl6"))))
756 (build-system font-build-system)
757 (home-page "https://www.marksimonson.com/fonts/view/anonymous-pro")
758 (synopsis "Fixed-width fonts designed with coding in mind")
759 (description "Anonymous Pro is a family of four fixed-width fonts designed
760 with coding in mind. Anonymous Pro features an international, Unicode-based
761 character set, with support for most Western and Central European Latin-based
762 languages, plus Greek and Cyrillic.")
763 (license license:silofl1.1)))
764
765 (define-public font-anonymous-pro-minus
766 (package
767 (inherit font-anonymous-pro)
768 (name "font-anonymous-pro-minus")
769 ;; The -Minus variant doesn't necessarily track the regular version above.
770 (version "1.003")
771 (source
772 (origin
773 (method url-fetch)
774 (uri (string-append "https://www.marksimonson.com/assets/content/fonts/"
775 "AnonymousProMinus-" version ".zip"))
776 (sha256
777 (base32 "1p2n91jja37d2cshp5pjwld9lq0v7gnpk7ywwn2blq7k46q6vq38"))))
778 (synopsis "Fixed-width fonts designed with coding in mind, without bitmaps")
779 (description "Anonymous Pro is a family of four fixed-width fonts designed
780 with coding in mind. Anonymous Pro features an international, Unicode-based
781 character set, with support for most Western and Central European Latin-based
782 languages, plus Greek and Cyrillic.
783
784 Anonymous Pro Minus is identical to Anonymous Pro, minus its embedded bitmaps
785 for use at smaller text sizes")))
786
787 (define-public font-gnu-unifont
788 (package
789 (name "font-gnu-unifont")
790 (version "14.0.03")
791 (source
792 (origin
793 (method url-fetch)
794 (uri (list
795 (string-append "https://unifoundry.com/pub/unifont/unifont-"
796 version "/unifont-" version ".tar.gz")
797 (string-append "mirror://gnu/unifont/unifont-"
798 version "/unifont-" version ".tar.gz")))
799 (sha256
800 (base32 "1swzwh355ipqhm3vvy7005fqawydlcdbkxm3h04vhicahp8hl06l"))))
801 (build-system gnu-build-system)
802 (outputs '("out" ; TrueType version
803 "pcf" ; PCF (bitmap) version
804 "psf" ; PSF (console) version
805 "bin")) ; Utilities to manipulate '.hex' format
806 (arguments
807 `(#:tests? #f ; no check target
808 #:make-flags
809 (list (string-append "CC=" ,(cc-for-target)))
810 #:phases
811 (modify-phases %standard-phases
812 (delete 'configure)
813 (replace 'install
814 (lambda* (#:key make-flags outputs #:allow-other-keys)
815 (let* ((ttf (string-append (assoc-ref outputs "out")
816 "/share/fonts/truetype"))
817 (pcf (string-append (assoc-ref outputs "pcf")
818 "/share/fonts/misc"))
819 (psf (string-append (assoc-ref outputs "psf")
820 "/share/consolefonts"))
821 (bin (assoc-ref outputs "bin")))
822 (apply invoke "make" "install"
823 (string-append "PREFIX=" bin)
824 (string-append "TTFDEST=" ttf)
825 (string-append "PCFDEST=" pcf)
826 (string-append "CONSOLEDEST=" psf)
827 make-flags)
828 ;; Move Texinfo file to the right place.
829 (mkdir (string-append bin "/share/info"))
830 (invoke "gzip" "-9n" "doc/unifont.info")
831 (install-file "doc/unifont.info.gz"
832 (string-append bin "/share/info"))))))))
833 (inputs
834 (list perl)) ; for utilities
835 (synopsis
836 "Large bitmap font covering Unicode's Basic Multilingual Plane")
837 (description
838 "GNU Unifont is a bitmap font covering essentially all of
839 Unicode's Basic Multilingual Plane. The package also includes
840 utilities to ease adding new glyphs to the font.")
841 (home-page "http://unifoundry.com/unifont/index.html")
842 (properties '((upstream-name . "unifont")))
843 (license license:gpl2+)))
844
845 (define-public font-google-noto
846 (package
847 (name "font-google-noto")
848 (version "20171025")
849 (source
850 (origin
851 (method url-fetch/zipbomb)
852 (uri (string-append "https://noto-website-2.storage.googleapis.com/"
853 "pkgs/Noto-hinted.zip"))
854 (file-name (string-append name "-" version ".zip"))
855 (sha256
856 (base32 "1bp42whyin7xcgmrbnfvz3rvd98xmxaz3ywqybbjmqzwaa9llyw3"))))
857 (build-system font-build-system)
858 (home-page "https://www.google.com/get/noto/")
859 (synopsis "Fonts to cover all languages")
860 (description "Google Noto Fonts is a family of fonts designed to support
861 all languages with a consistent look and aesthetic. Its goal is to properly
862 display all Unicode symbols.")
863 (license license:silofl1.1)))
864
865 (define-public font-google-roboto
866 (package
867 (name "font-google-roboto")
868 (version "2.136")
869 (source
870 (origin
871 (method url-fetch)
872 (uri (string-append "https://github.com/google/roboto/releases/download/"
873 "v" version "/roboto-hinted.zip"))
874 (file-name (string-append name "-" version ".zip"))
875 (sha256
876 (base32
877 "0spscx08fad7i8qs7icns96iwcapniq8lwwqqvbf7bamvs8qfln4"))))
878 (build-system font-build-system)
879 (home-page "https://github.com/google/roboto")
880 (synopsis "The Roboto family of fonts")
881 (description
882 "Roboto is Google’s signature family of fonts, the default font on Android
883 and Chrome OS, and the recommended font for the
884 visual language \"Material Design\".")
885 (license license:asl2.0)))
886
887 (define-public font-borg-sans-mono
888 (package
889 (name "font-borg-sans-mono")
890 (version "0.3.3")
891 (source
892 (origin
893 (method url-fetch)
894 (uri (string-append
895 "https://github.com/charje/borg-sans-mono"
896 "/releases/download/v" version "/borg-sans-mono.zip"))
897 (sha256
898 (base32
899 "0xzi866ag9w4q114bn984yjfy72pmfs563v5yy1rkbqycphgwwyp"))))
900 (build-system font-build-system)
901 (home-page "https://github.com/charje/borg-sans-mono")
902 (synopsis "The Borg Sans Mono font")
903 (description "Borg Sans Mono is a monospaced font derived from Droid Sans
904 Mono. It includes additions commonly found in programming fonts such as a
905 slashed zero and ligatures for operators.")
906 (license license:asl2.0)))
907
908 (define-public font-un
909 (package
910 (name "font-un")
911 (version "1.0.2-080608")
912 (source (origin
913 (method url-fetch)
914 (uri (string-append
915 "https://kldp.net/unfonts/release/2607-"
916 "un-fonts-core-" version ".tar.gz"))
917 (file-name (string-append name "-" version ".tar.gz"))
918 (sha256
919 (base32
920 "13liaz2pmww3aqabm55la5npd08m1skh334ky7qfidxaz5s742iv"))))
921 (build-system font-build-system)
922 (home-page "https://kldp.net/projects/unfonts/")
923 (synopsis "Collection of Korean fonts")
924 (description
925 "Un-fonts is a family of mainly Korean fonts.
926 It contains the following fonts and styles:
927
928 @enumerate
929 @item UnBatang, UnBatangBold: serif;
930 @item UnDotum, UnDotumBold: sans-serif;
931 @item UnGraphic, UnGraphicBold: sans-serif style;
932 @item UnDinaru, UnDinaruBold, UnDinaruLight;
933 @item UnPilgi, UnPilgiBold: script;
934 @item UnGungseo: cursive, brush-stroke.
935 @end enumerate\n")
936 (license license:gpl2+)))
937
938 (define-public font-fantasque-sans
939 (package
940 (name "font-fantasque-sans")
941 (version "1.8.0")
942 (source
943 (origin
944 (method git-fetch)
945 (uri (git-reference
946 (url "https://github.com/belluzj/fantasque-sans")
947 (commit (string-append "v" version))))
948 (file-name (git-file-name name version))
949 (sha256
950 (base32 "17l18488qyl9gdj80r8pcym3gp3jkgsdikwalnrp5rgvwidqx507"))))
951 (build-system gnu-build-system)
952 (native-inputs
953 `(("ttfautohint" ,ttfautohint)
954 ("woff-tools" ,woff-tools)
955 ("fontforge" ,fontforge)
956 ("woff2" ,woff2)
957 ("woff2:bin" ,woff2 "bin")
958 ("zip" ,zip)))
959 (arguments
960 `(#:tests? #f ;test target intended for visual inspection
961 #:phases (modify-phases %standard-phases
962 (delete 'configure) ;no configuration
963 (add-before 'build 'support-python@3
964 ;; Rather than use a Python 2 fontforge, replace Python-2-
965 ;; specific code with a passable Python 3 equivalent.
966 (lambda _
967 (substitute* "Scripts/fontbuilder.py"
968 (("xrange") "range"))
969 (substitute* "Scripts/features.py"
970 (("f\\.write\\(fea_code\\)")
971 "f.write(str.encode(fea_code))"))
972 #t))
973 (replace 'install
974 ;; 'make install' wants to install to ~/.fonts, install to
975 ;; output instead. Install only the "Normal" variant.
976 (lambda* (#:key outputs #:allow-other-keys)
977 (let* ((out (assoc-ref outputs "out"))
978 (font-dir (string-append out "/share/fonts"))
979 (truetype-dir (string-append font-dir "/truetype"))
980 (opentype-dir (string-append font-dir "/opentype"))
981 (webfonts-dir (string-append font-dir "/webfonts")))
982 (with-directory-excursion "Variants/Normal"
983 (copy-recursively "OTF" opentype-dir)
984 (for-each (lambda (f) (install-file f truetype-dir))
985 (find-files "." "\\.ttf$"))
986 (copy-recursively "Webfonts" webfonts-dir)
987 #t)))))))
988 (synopsis "Font family with a monospaced variant for programmers")
989 (description
990 "Fantasque Sans Mono is a programming font designed with functionality in
991 mind. The font includes a bold version and a good italic version with new
992 glyph designs, not just an added slant.")
993 (home-page "https://fontlibrary.org/en/font/fantasque-sans-mono")
994 (license license:silofl1.1)))
995
996 (define-public font-hack
997 (package
998 (name "font-hack")
999 (version "3.003")
1000 (source (origin
1001 (method url-fetch/zipbomb)
1002 (uri (string-append
1003 "https://github.com/source-foundry/Hack/releases/download/v"
1004 version "/Hack-v" version "-ttf.zip"))
1005 (sha256
1006 (base32
1007 "1b4hh8zkrx92m2v2vfkja1napb0192p0j3laqr0m018z3dih89hc"))))
1008 (build-system font-build-system)
1009 (home-page "https://sourcefoundry.org/hack/")
1010 (synopsis "Typeface designed for source code")
1011 (description
1012 "Hack is designed to be a workhorse typeface for code. It expands upon
1013 the Bitstream Vera & DejaVu projects, provides over 1,500 glyphs, and includes
1014 Powerline support.")
1015 (license
1016 ;; See https://github.com/source-foundry/Hack/issues/271 for details.
1017 (list license:expat ; the Hack modifications to...
1018 license:public-domain ; ...the DejaVu modifications to...
1019 (license:x11-style ; ...the Bitstream Vera typeface
1020 "file://LICENSE.md" "Bitstream Vera License")))))
1021
1022 (define-public font-adobe-source-code-pro
1023 (package
1024 (name "font-adobe-source-code-pro")
1025 (version "2.032R-ro-1.052R-it-1.012R-VAR")
1026 (source
1027 (origin
1028 (method git-fetch)
1029 (uri (git-reference
1030 (url "https://github.com/adobe-fonts/source-code-pro")
1031 (commit (regexp-substitute/global
1032 ;; The upstream tag uses "/" between the roman and italic
1033 ;; versions, so substitute our "-" separator here.
1034 #f "((R-ro)|(R-it))(-)" version
1035 'pre 1 "/" 'post
1036 ))))
1037 (file-name (git-file-name name version))
1038 (sha256
1039 (base32 "1lqchm8z0ah5y675ycmciqvr8y1v1gcj22ysfs443gm291vy0z4v"))))
1040 (build-system font-build-system)
1041 (home-page "https://github.com/adobe-fonts/source-code-pro")
1042 (synopsis
1043 "Monospaced font family for user interface and coding environments")
1044 (description
1045 "Source Code Pro is a set of monospaced OpenType fonts that have been
1046 designed to work well in user interface environments.")
1047 (license license:silofl1.1)))
1048
1049 (define-public font-adobe-source-sans-pro
1050 (package
1051 (name "font-adobe-source-sans-pro")
1052 (version "3.046R")
1053 (source
1054 (origin
1055 (method git-fetch)
1056 (uri (git-reference
1057 (url "https://github.com/adobe-fonts/source-sans-pro")
1058 (commit version)))
1059 (file-name (git-file-name name version))
1060 (sha256
1061 (base32 "01dnhyfffnlyjzyh40x2z728qpc4i0jvrcxdcjfm17zrwhmw84lw"))))
1062 (build-system font-build-system)
1063 (home-page "https://github.com/adobe-fonts/source-sans-pro")
1064 (synopsis
1065 "Sans serif font family for user interface environments")
1066 (description
1067 "Source Sans Pro is a set of OpenType fonts that have been designed to
1068 work well in user interface (UI) environments.")
1069 (license license:silofl1.1)))
1070
1071 (define-public font-adobe-source-serif-pro
1072 (package
1073 (name "font-adobe-source-serif-pro")
1074 (version "3.001R")
1075 (source
1076 (origin
1077 (method git-fetch)
1078 (uri (git-reference
1079 (url "https://github.com/adobe-fonts/source-serif-pro")
1080 (commit version)))
1081 (file-name (git-file-name name version))
1082 (sha256
1083 (base32 "1z0pjvx0jpjwb8vzvc6l5gzlg0mqax4v9pizqcxx82l0ydlfh5bj"))))
1084 (build-system font-build-system)
1085 (home-page "https://github.com/adobe-fonts/source-serif-pro")
1086 (synopsis
1087 "Serif typeface to complement Source Sans Pro for setting text")
1088 (description
1089 "Source Serif Pro is a set of OpenType fonts to complement the Source
1090 Sans Pro family.")
1091 (license license:silofl1.1)))
1092
1093 (define-public font-fira-sans
1094 ;; Fira Sans v4.203 (which corresponds to Fira Mono v3.206) is the final
1095 ;; version to include UFO sources. It is the same version packaged by other
1096 ;; notable distributors, including Google Fonts. Note that the "reserved
1097 ;; font name" was removed by the copyright holders.
1098 ;;
1099 ;; The upstream release includes a "Fira Code" which "is Fira Mono 3.206
1100 ;; with less Line Space (1.0) – does not include programming ligatures". We
1101 ;; do not package that: our 'font-fira-code' package (like e.g. Debian's
1102 ;; "fonts-firacode") is the much better known Fira Code font by Nikita
1103 ;; Prokopov, which is an older, independent adaptation of Fira Mono. For the
1104 ;; historical relationship between them, see:
1105 ;; https://github.com/mozilla/Fira/issues/218
1106 ;;
1107 ;; For a lengthy discussion of the available sources and versions,
1108 ;; see: https://github.com/LiberalArtist/FiraSans/
1109 ;;
1110 ;; See also:
1111 ;; - https://github.com/mozilla/Fira/pull/219
1112 ;; - https://github.com/bBoxType/FiraSans/issues/4#issuecomment-695833327
1113 (package
1114 (name "font-fira-sans")
1115 (version "4.203")
1116 (source (origin
1117 (method git-fetch)
1118 (uri (git-reference
1119 (url "https://github.com/bBoxType/FiraSans")
1120 (commit "a606927401bcc3951587339fee53aa882856b51b")))
1121 (file-name (git-file-name name version))
1122 (sha256
1123 (base32
1124 "1r9kb7v9jg83nnxwkl6gx9ix1rng3ksr7v33qrm46qb4fhwsyc2n"))))
1125 (build-system font-build-system)
1126 (arguments
1127 `(#:modules
1128 ((ice-9 match)
1129 (ice-9 regex)
1130 (guix build utils)
1131 (guix build font-build-system))
1132 #:phases
1133 (modify-phases %standard-phases
1134 (add-after 'unpack 'chdir
1135 (lambda* (#:key outputs #:allow-other-keys)
1136 (define-values (pkg-name _version)
1137 (package-name->name+version
1138 (strip-store-file-name (assoc-ref outputs "out"))))
1139 (define variant
1140 (string-capitalize
1141 (match:substring (string-match "fira-([a-z]+)" pkg-name) 1)))
1142 (match (find-files "." (format #f "^Fira_~a_[0-9]" variant)
1143 #:directories? #t)
1144 ((dir)
1145 (chdir dir))))))))
1146 ;; While the repository has moved,
1147 ;; this specimen still works well as the home-page:
1148 (home-page "https://mozilla.github.io/Fira/")
1149 (synopsis
1150 "Humanist sans-serif with numerous weights emphasizing legibility")
1151 (description "Fira Sans is a humanist sans-serif typeface with an emphasis
1152 on legibility, commissioned by Mozilla from Erik Spiekermann and Ralph du
1153 Carrois. The large family includes 2,709 glyphs in normal, condensed, and
1154 compressed cuts at 11 weights (plus 6 experimental weights), each with
1155 corresponding italics.
1156
1157 The package @code{font-fira-mono} provides a corresponding monospace cut.")
1158 (license license:silofl1.1)))
1159
1160 (define-public font-fira-mono
1161 (package
1162 (inherit font-fira-sans)
1163 (name "font-fira-mono")
1164 (version "3.206")
1165 (synopsis "Monospace cut of Fira Sans")
1166 (description
1167 "Fira Mono is a monospace cut of Fira Sans (see @code{font-fira-sans}).
1168 It includes regular, medium, and bold weights.")
1169 (license license:silofl1.1)))
1170
1171 (define-public font-fira-go
1172 (package
1173 (name "font-fira-go")
1174 (version "1.000")
1175 (source (origin
1176 (method git-fetch)
1177 (uri (git-reference
1178 (url "https://github.com/bBoxType/FiraGO")
1179 (commit version)))
1180 (file-name (git-file-name name version))
1181 (sha256
1182 (base32
1183 "10rcfg1fijv00yxv5n9l3lm0axhafa1irkg42zpmasd70flgg655"))))
1184 (build-system font-build-system)
1185 (home-page "https://github.com/bBoxType/FiraGO")
1186 (synopsis "Multilingual extension of the Fira Sans font family")
1187 (description "FiraGO is a multilingual extension of the Fira Sans font
1188 family. Based on the Fira Sans 4.3 glyph set, FiraGO adds support for the
1189 Arabic, Devanagari, Georgian, Hebrew and Thai scripts.
1190
1191 Note that FiraGO does not include corresponding source.")
1192 ;; See:
1193 ;; - https://github.com/bBoxType/FiraGO/issues/42
1194 ;; - https://github.com/bBoxType/FiraSans/issues/4#issuecomment-699882058
1195 ;; For further discussion, see comments on font-fira-sans.
1196 (license license:silofl1.1)))
1197
1198 (define-public font-fira-code
1199 (package
1200 (name "font-fira-code")
1201 (version "6.2")
1202 (source
1203 (origin
1204 ;; changing to git-fetch would require building from source
1205 (method url-fetch/zipbomb)
1206 (uri (string-append "https://github.com/tonsky/FiraCode/releases/"
1207 "download/" version
1208 "/Fira_Code_v" version ".zip"))
1209 (sha256
1210 (base32 "0y9y7snyrr30z75kxz2zgh6q6hizcbzsf41xv6gxh97bm1dr2j89"))))
1211 (build-system font-build-system)
1212 ;; This font began as an independent derived work of Fira Mono.
1213 ;; It was never affiliated with Mozilla.
1214 ;; See comments on font-fira-sans for further discussion.
1215 (home-page "https://github.com/tonsky/FiraCode")
1216 (synopsis "Monospaced font with programming ligatures")
1217 (description
1218 "Fira Code is a monospace font by Nikita Prokopov featuring ligatures for
1219 common programming multi-character combinations. It began as an extension of
1220 Fira Mono. The ligatures are just a font rendering feature: underlying code
1221 remains ASCII-compatible. They are designed to help people to read and
1222 understand code faster. For some frequent sequences like @code{..} or
1223 @code{//}, ligatures are used to simulate proportional spacing.")
1224 (license license:silofl1.1)))
1225
1226 (define-public font-awesome
1227 (package
1228 (name "font-awesome")
1229 ;; XXX The build scripts of version 5 are not freely licensed and
1230 ;; so we have to stick with version 4 for now:
1231 ;; <https://bugs.gnu.org/32916>
1232 (version "4.7.0")
1233 (source (origin
1234 (method git-fetch)
1235 (uri (git-reference
1236 (url "https://github.com/FortAwesome/Font-Awesome")
1237 (commit (string-append "v" version))))
1238 (file-name (git-file-name name version))
1239 (sha256
1240 (base32
1241 "0w30y26jp8nvxa3iiw7ayl6rkza1rz62msl9xw3srvxya1c77grc"))))
1242 (build-system font-build-system)
1243 (arguments
1244 '(#:phases
1245 (modify-phases %standard-phases
1246 (replace 'install
1247 (lambda* (#:key outputs #:allow-other-keys)
1248 (let* ((out (assoc-ref outputs "out"))
1249 (source (string-append (getcwd) "/fonts"))
1250 (fonts (string-append out "/share/fonts")))
1251 (for-each (lambda (file)
1252 (install-file file (string-append fonts "/truetype")))
1253 (find-files source "\\.(ttf|ttc)$"))
1254 (for-each (lambda (file)
1255 (install-file file (string-append fonts "/opentype")))
1256 (find-files source "\\.(otf|otc)$"))
1257 #t))))))
1258 (home-page "https://fontawesome.com/")
1259 (synopsis "Font that contains a rich iconset")
1260 (description
1261 "Font Awesome is a full suite of pictographic icons for easy scalable
1262 vector graphics.")
1263 (license license:silofl1.1)))
1264
1265 (define-public font-tamzen
1266 (package
1267 (name "font-tamzen")
1268 (version "1.11.5")
1269 (source
1270 (origin
1271 (method git-fetch)
1272 (uri (git-reference
1273 (url "https://github.com/sunaku/tamzen-font")
1274 (commit (string-append "Tamzen-" version))))
1275 (file-name (git-file-name name version))
1276 (sha256
1277 (base32 "00x5fipzqimglvshhqwycdhaqslbvn3rl06jnswhyxfvz16ymj7s"))))
1278 (build-system trivial-build-system)
1279 (arguments
1280 `(#:modules ((guix build utils))
1281 #:builder
1282 (begin
1283 (use-modules (guix build utils))
1284
1285 (let* ((out (assoc-ref %outputs "out"))
1286 (font-dir (string-append out "/share/fonts/misc"))
1287 (psf-dir (string-append out "/share/kbd/consolefonts")))
1288 (chdir (assoc-ref %build-inputs "source"))
1289 (mkdir-p font-dir)
1290 (mkdir-p psf-dir)
1291 (for-each (lambda (pcf)
1292 (install-file pcf font-dir))
1293 (find-files "pcf" "\\.pcf$"))
1294 (for-each (lambda (psf)
1295 (install-file psf psf-dir))
1296 (find-files "psf" "\\.psf$"))
1297 #t))))
1298 (home-page "https://github.com/sunaku/tamzen-font")
1299 (synopsis "Monospaced bitmap font for console and X11")
1300 (description
1301 "Tamzen is a fork of the @code{Tamsyn} font. It is programmatically forked
1302 from @code{Tamsyn} version 1.11, backporting glyphs from older versions while
1303 deleting deliberately empty glyphs (which are marked as unimplemented) to
1304 allow secondary/fallback fonts to provide real glyphs at those codepoints.
1305
1306 The @code{TamzenForPowerline} fonts provide additional @code{Powerline} symbols,
1307 which are programmatically injected with @code{bitmap-font-patcher} and
1308 later hand-tweaked with the gbdfed(1) editor:
1309
1310 @enumerate
1311 @item all icons are expanded to occupy the maximum available space
1312 @item the branch of the fork icon ( U+E0A0) was made larger than the trunk
1313 @item for the newline icon ( U+E0A1), the @emph{N} was made larger at the bottom
1314 @item the keyhole in the padlock icon ( U+E0A2) was replaced with @emph{//} lines.
1315 @end enumerate\n")
1316 (license (license:non-copyleft "file://LICENSE"))))
1317
1318 (define-public font-comic-neue
1319 (package
1320 (name "font-comic-neue")
1321 (version "2.51")
1322 (source (origin
1323 (method url-fetch/zipbomb)
1324 (uri (string-append
1325 "http://www.comicneue.com/comic-neue-" version ".zip"))
1326 (sha256
1327 (base32
1328 "0883542v915crz98v1ij6smgy40dg6gxwsid3j5nbmmqjf69kpal"))))
1329 (build-system font-build-system)
1330 (arguments
1331 `(#:phases
1332 (modify-phases %standard-phases
1333 ;; Delete Mac OS X specific files. If not deleted, these cause
1334 ;; several hidden files to be installed.
1335 (add-before 'install 'delete-macosx-files
1336 (lambda _
1337 (delete-file-recursively "__MACOSX")
1338 #t))
1339 (add-after 'install 'install-conf
1340 (lambda* (#:key outputs #:allow-other-keys)
1341 (let ((conf-dir (string-append (assoc-ref outputs "out")
1342 "/share/fontconfig/conf.avail")))
1343 (mkdir-p conf-dir)
1344 (call-with-output-file
1345 (string-append conf-dir "/30-comic-neue.conf")
1346 (lambda (port)
1347 (format port "<?xml version=\"1.0\"?>
1348 <!DOCTYPE fontconfig SYSTEM \"fonts.dtd\">
1349 <fontconfig>
1350 <!-- If Comic Sans is missing, use Comic Neue instead. -->
1351 <alias>
1352 <family>Comic Sans MS</family>
1353 <prefer>
1354 <family>Comic Neue</family>
1355 </prefer>
1356 </alias>
1357 </fontconfig>\n"))))
1358 #t)))))
1359 (home-page "http://www.comicneue.com/")
1360 (synopsis "Font that fixes the shortcomings of Comic Sans")
1361 (description
1362 "Comic Neue is a font that attempts to create a respectable casual
1363 typeface, by mimicking Comic Sans while fixing its most obvious shortcomings.")
1364 (license license:silofl1.1)))
1365
1366 ;; When updating the version (and hash) of font-iosevka, also update the hash
1367 ;; of the Iosevka variants further below.
1368 ;; The following script downloads all Iosevka variants to the store and prints
1369 ;; their hash at the end.
1370 #|
1371 guix repl <<EOF
1372 (use-modules (guix base32)
1373 (guix download)
1374 (guix packages)
1375 (guix store)
1376 (gcrypt hash)
1377 (ice-9 string-fun)
1378 (gnu packages fonts))
1379
1380 (let ((new-version "15.2.0")
1381 (iosevka-hashes #nil)
1382 (iosevka-fails #nil))
1383 (for-each (lambda (font)
1384 (let ((file (download-to-store (open-connection)
1385 (string-replace-substring
1386 (origin-uri (package-source font))
1387 (package-version font)
1388 new-version))))
1389 (if file
1390 (set! iosevka-hashes
1391 (acons file (bytevector->nix-base32-string
1392 (file-sha256 file))
1393 iosevka-hashes))
1394 (set! iosevka-fails (cons font iosevka-fails)))))
1395 (list font-iosevka
1396 font-iosevka-slab
1397 font-iosevka-term
1398 font-iosevka-term-slab
1399 font-iosevka-aile
1400 font-iosevka-curly
1401 font-iosevka-curly-slab
1402 font-iosevka-etoile))
1403 (for-each (lambda (hash)
1404 (format #t "~a: ~a~%" (car hash) (cdr hash)))
1405 (reverse iosevka-hashes))
1406 (for-each (lambda (fail)
1407 (format #t "~a: failed to download latest version~%" fail))
1408 (reverse iosevka-fails)))
1409 EOF
1410 |#
1411 (define-public font-iosevka
1412 (package
1413 (name "font-iosevka")
1414 (version "15.2.0")
1415 (source
1416 (origin
1417 (method url-fetch/zipbomb)
1418 (uri (string-append "https://github.com/be5invis/Iosevka"
1419 "/releases/download/v" version
1420 "/ttc-iosevka-" version ".zip"))
1421 (sha256
1422 (base32 "0yyz8vmpi8pww0p9na564lvbkwhdhpk4bcyrli91dn5gq0pc1pvv"))))
1423 (build-system font-build-system)
1424 (home-page "https://be5invis.github.io/Iosevka/")
1425 (synopsis "Coders' typeface, built from code")
1426 (description
1427 "Iosevka is a slender monospace sans-serif or slab-serif typeface inspired
1428 by Pragmata Pro, M+, and PF DIN Mono, designed to be the ideal font for
1429 programming. Iosevka is completely generated from its source code.")
1430 (license (list license:silofl1.1 ;build artifacts (i.e., the fonts)
1431 license:bsd-3)))) ;supporting code
1432
1433 (define-public font-iosevka-slab
1434 (package
1435 (inherit font-iosevka)
1436 (name "font-iosevka-slab")
1437 (version (package-version font-iosevka))
1438 (source
1439 (origin
1440 (method url-fetch/zipbomb)
1441 (uri (string-append "https://github.com/be5invis/Iosevka"
1442 "/releases/download/v" version
1443 "/ttc-iosevka-slab-" version ".zip"))
1444 (sha256
1445 (base32 "1qy86kdl6lgq5k1qb97adibpfjm4vg1wdnxbqizhqka5bc7avyzb"))))))
1446
1447 (define-public font-iosevka-term
1448 (package
1449 (inherit font-iosevka)
1450 (name "font-iosevka-term")
1451 (version (package-version font-iosevka))
1452 (source
1453 (origin
1454 (method url-fetch/zipbomb)
1455 (uri (string-append "https://github.com/be5invis/Iosevka"
1456 "/releases/download/v" version
1457 "/ttf-iosevka-term-" version ".zip"))
1458 (sha256
1459 (base32 "15znvvkhldgbl9k04pwrrnvmjnanw2fr92c0zspg7bbw7id2v510"))))
1460 (arguments
1461 `(#:phases
1462 (modify-phases %standard-phases
1463 (add-before 'install 'make-files-writable
1464 (lambda _
1465 (for-each make-file-writable (find-files "." ".*"))
1466 #t)))))))
1467
1468 (define-public font-iosevka-term-slab
1469 (package
1470 (inherit font-iosevka)
1471 (name "font-iosevka-term-slab")
1472 (version (package-version font-iosevka))
1473 (source
1474 (origin
1475 (method url-fetch/zipbomb)
1476 (uri (string-append "https://github.com/be5invis/Iosevka/"
1477 "releases/download/v" version "/"
1478 "ttf-iosevka-term-slab-" version ".zip"))
1479 (sha256
1480 (base32 "1rla7kcb94c7daklp4av27gix86cmwsrqg6884zmv5zfnhz0r700"))))
1481 (arguments
1482 `(#:phases
1483 (modify-phases %standard-phases
1484 (add-before 'install 'make-files-writable
1485 (lambda _
1486 (for-each make-file-writable (find-files "." ".*"))
1487 #t)))))))
1488
1489 (define-public font-iosevka-aile
1490 (package
1491 (inherit font-iosevka)
1492 (name "font-iosevka-aile")
1493 (version (package-version font-iosevka))
1494 (source
1495 (origin
1496 (method url-fetch/zipbomb)
1497 (uri (string-append "https://github.com/be5invis/Iosevka"
1498 "/releases/download/v" version
1499 "/ttc-iosevka-aile-" version ".zip"))
1500 (sha256
1501 (base32 "1lciycahvxgvmcniq4h3m1v3rc42nmv8ydb0fpbl9g4sc0qp81hq"))))))
1502
1503 (define-public font-iosevka-curly
1504 (package
1505 (inherit font-iosevka)
1506 (name "font-iosevka-curly")
1507 (version (package-version font-iosevka))
1508 (source
1509 (origin
1510 (method url-fetch/zipbomb)
1511 (uri (string-append "https://github.com/be5invis/Iosevka/"
1512 "releases/download/v" version "/"
1513 "ttc-iosevka-curly-" version ".zip"))
1514 (sha256
1515 (base32 "02jvrj7kzd4bx3maj1bq2p9j746b8c5713d8lqkxx4fn9fm0zppq"))))))
1516
1517 (define-public font-iosevka-curly-slab
1518 (package
1519 (inherit font-iosevka)
1520 (name "font-iosevka-curly-slab")
1521 (version (package-version font-iosevka))
1522 (source
1523 (origin
1524 (method url-fetch/zipbomb)
1525 (uri (string-append "https://github.com/be5invis/Iosevka/"
1526 "releases/download/v" version "/"
1527 "ttc-iosevka-curly-slab-" version ".zip"))
1528 (sha256
1529 (base32 "1bhvf95xs74wm8srsvl4yxwvl36llk93mpl1y9acc5z9rdcpzjqq"))))))
1530
1531 (define-public font-iosevka-etoile
1532 (package
1533 (inherit font-iosevka)
1534 (name "font-iosevka-etoile")
1535 (version (package-version font-iosevka))
1536 (source
1537 (origin
1538 (method url-fetch/zipbomb)
1539 (uri (string-append "https://github.com/be5invis/Iosevka"
1540 "/releases/download/v" version
1541 "/ttc-iosevka-etoile-" version ".zip"))
1542 (sha256
1543 (base32 "1zmgfxfsbxv1k4fwnc7g2jlfhmlzp5kap8m3f10fqanpnkd0yf08"))))))
1544
1545 (define-public font-sarasa-gothic
1546 (package
1547 (name "font-sarasa-gothic")
1548 (version "0.36.0")
1549 (source
1550 (origin
1551 (method url-fetch)
1552 (uri (string-append "https://github.com/be5invis/Sarasa-Gothic"
1553 "/releases/download/v" version
1554 "/sarasa-gothic-ttc-" version ".7z"))
1555 (sha256
1556 (base32 "0rr6qrf49zx3cl1pv7063l12nnj2nm9p4di3frp0p4ci9l7b4xmw"))))
1557 (build-system font-build-system)
1558 (arguments
1559 `(#:phases (modify-phases %standard-phases
1560 (replace 'unpack
1561 (lambda* (#:key source #:allow-other-keys)
1562 (mkdir "source")
1563 (chdir "source")
1564 (invoke "7z" "x" source))))))
1565 (native-inputs (list p7zip))
1566 (home-page "https://github.com/be5invis/Sarasa-Gothic")
1567 (license license:silofl1.1)
1568 (synopsis "Sarasa Gothic / 更纱黑体 / 更紗黑體 / 更紗ゴシック / 사라사 고딕")
1569 (description
1570 "Sarasa Gothic is a programming font based on Iosevka and Source Han Sans,
1571 most CJK characters are same height, and double width as ASCII characters.")))
1572
1573 (define-public font-space-grotesk
1574 (package
1575 (name "font-space-grotesk")
1576 (version "2.0.0")
1577 (source
1578 (origin
1579 (method git-fetch)
1580 (uri (git-reference
1581 (url "https://github.com/floriankarsten/space-grotesk")
1582 (commit version)))
1583 (file-name (git-file-name name version))
1584 (sha256
1585 (base32 "1aiivn0rl7ydiyqvsr0fa2hx82h3br3x48w3100fcly23n0fdcby"))))
1586 (build-system font-build-system)
1587 ;; TODO: Package fontmake and gftools and build from source.
1588 (arguments
1589 `(#:phases
1590 (modify-phases %standard-phases
1591 (replace 'install-license-files
1592 (lambda* (#:key outputs #:allow-other-keys)
1593 (let* ((out (assoc-ref outputs "out"))
1594 (doc (string-append out "/share/doc/" ,name "-" ,version)))
1595 (install-file "OFL.txt" doc)
1596 #t))))))
1597 (home-page "https://floriankarsten.github.io/space-grotesk/")
1598 (synopsis "Proportional variant of the fixed-width Space Mono family")
1599 (description
1600 "Space Grotesk is a proportional sans-serif typeface variant based on Colophon
1601 Foundry's fixed-width Space Mono family. It retains the monospace's idiosyncratic
1602 details while optimizing for improved readability at non-display sizes.
1603
1604 Space Grotesk includes Latin Vietnamese, Pinyin, and all Western, Central, and
1605 South-Eastern European language support, as well as several OpenType features:
1606 old-style and tabular figures, superscript and subscript numerals, fractions,
1607 and stylistic alternates.")
1608 (license license:silofl1.1)))
1609
1610 (define-public font-go
1611 (let ((commit "f03a046406d4d7fbfd4ed29f554da8f6114049fc")
1612 (revision "1"))
1613 (package
1614 (name "font-go")
1615 (version (string-append "20170330-" revision "." (string-take commit 7)))
1616 (source (origin
1617 (file-name (string-append "go-image-" version "-checkout"))
1618 (method git-fetch)
1619 (uri (git-reference
1620 (url "https://go.googlesource.com/image")
1621 (commit commit)))
1622 (sha256
1623 (base32
1624 "1aq6mnjayks55gd9ahavk6jfydlq5lm4xm0xk4pd5sqa74p5p74d"))))
1625 (build-system font-build-system)
1626 (arguments
1627 `(#:phases
1628 (modify-phases %standard-phases
1629 (add-before 'install 'chdir
1630 (lambda _
1631 (chdir "font/gofont/ttfs")
1632 #t)))))
1633 (home-page "https://blog.golang.org/go-fonts")
1634 (synopsis "The Go font family")
1635 (description
1636 "The Go font family is a set of WGL4 TrueType fonts from the Bigelow &
1637 Holmes type foundry, released under the same license as the Go programming
1638 language. It includes a set of proportional, sans-serif fonts, and a set of
1639 monospace, slab-serif fonts.")
1640 (license license:bsd-3))))
1641
1642 (define-public font-google-material-design-icons
1643 (package
1644 (name "font-google-material-design-icons")
1645 (version "3.0.1")
1646 (source (origin
1647 (method git-fetch)
1648 (uri (git-reference
1649 (url "https://github.com/google/material-design-icons")
1650 (commit version)))
1651 (file-name (git-file-name name version))
1652 (sha256
1653 (base32
1654 "17q5brcqyyc8gbjdgpv38p89s60cwxjlwy2ljnrvas5cj0s62np0"))))
1655 (build-system font-build-system)
1656 (home-page "https://google.github.io/material-design-icons")
1657 (synopsis "Icon font of Google Material Design icons")
1658 (description
1659 "Material design system icons are simple, modern, friendly, and sometimes
1660 quirky. Each icon is created using our design guidelines to depict in simple
1661 and minimal forms the universal concepts used commonly throughout a UI.
1662 Ensuring readability and clarity at both large and small sizes, these icons
1663 have been optimized for beautiful display on all common platforms and display
1664 resolutions.")
1665 (license license:asl2.0)))
1666
1667 (define-public font-opendyslexic
1668 (package
1669 (name "font-opendyslexic")
1670 (version "0.91.12")
1671 (source
1672 (origin
1673 (method url-fetch/zipbomb)
1674 (uri (string-append "https://github.com/antijingoist/opendyslexic/"
1675 "releases/download/v" version
1676 "/opendyslexic-0.910.12-rc2-2019.10.17.zip"))
1677 (sha256
1678 (base32
1679 "11ml7v4iyf3hr0fbnkwz8afb8vi58wbcfnmn4gyvrwh9jk5pybdr"))))
1680 (build-system font-build-system)
1681 (native-inputs (list unzip))
1682 (home-page "https://opendyslexic.org/")
1683 (synopsis "Font for dyslexics and high readability")
1684 (description "OpenDyslexic is a font designed to help readability for some
1685 of the symptoms of dyslexia. Letters have heavy weighted bottoms to provide
1686 an indication of orientation to make it more difficult to confuse with other
1687 similar letters. Consistently weighted bottoms can also help reinforce the
1688 line of text. The unique shapes of each letter can help prevent flipping and
1689 swapping. The italic style for OpenDyslexic has been crafted to be used for
1690 emphasis while still being readable.")
1691 (license license:silofl1.1)))
1692
1693 (define-public font-openmoji
1694 (package
1695 (name "font-openmoji")
1696 (version "13.1.0")
1697 (source
1698 (origin
1699 (method url-fetch/zipbomb)
1700 (uri
1701 (string-append "https://github.com/hfg-gmuend/openmoji/"
1702 "releases/download/" version
1703 "/openmoji-font.zip"))
1704 (sha256
1705 (base32
1706 "0xmy3hr38v03f1riwxmxdibb7iwj0qz288inqaha3pwq7pj7ln45"))))
1707 (build-system font-build-system)
1708 (native-inputs
1709 (list unzip))
1710 (home-page "https://openmoji.org")
1711 (synopsis "Font for rendering emoji characters")
1712 (description
1713 "This package provides the OpenMoji font in both color and black
1714 variants.")
1715 (license license:cc-by-sa4.0)))
1716
1717 (define-public font-dosis
1718 (package
1719 (name "font-dosis")
1720 (version "1.7")
1721 (source
1722 (origin
1723 (method url-fetch/zipbomb)
1724 (uri (string-append "https://web.archive.org/web/20180228233737/"
1725 "https://www.impallari.com/media/releases/dosis-"
1726 "v" version ".zip"))
1727 (sha256
1728 (base32 "1qhci68f68mf87jd69vjf9qjq3wydgw1q7ivn3amjb65ls1s0c4s"))))
1729 (build-system font-build-system)
1730 (home-page (string-append "https://web.archive.org/web/20180228233737/"
1731 "https://www.impallari.com/dosis"))
1732 (synopsis "Very simple, rounded, sans serif family")
1733 (description
1734 "Dosis is a very simple, rounded, sans serif family.
1735 The lighter weights are minimalist. The bolder weights have more personality.
1736 The medium weight is nice and balanced. The overall result is a family
1737 that's clean and modern, and can express a wide range of voices & feelings.
1738 It comes in 7 incremental weights:
1739 ExtraLight, Light, Book, Medium, Semibold, Bold & ExtraBold")
1740 (license license:silofl1.1)))
1741
1742 (define-public font-culmus
1743 (package
1744 (name "font-culmus")
1745 (version "0.133")
1746 (source
1747 (origin
1748 (method url-fetch)
1749 (uri (string-append "https://sourceforge.net/projects/"
1750 "culmus/files/culmus/" version "/culmus-src-"
1751 version ".tar.gz"))
1752 (sha256
1753 (base32
1754 "02akysgsqhi15cck54xcacm16q5raf4l7shgb8fnj7xr3c1pbfyp"))))
1755 (build-system font-build-system)
1756 (arguments
1757 `(#:phases
1758 (modify-phases %standard-phases
1759 (add-before 'install 'build
1760 (lambda _
1761 (let ((compile
1762 (lambda (name ext)
1763 (invoke
1764 "fontforge" "-lang=ff"
1765 "-c" (string-append "Open('" name "');"
1766 "Generate('"
1767 (basename name "sfd") ext
1768 "')")))))
1769 ;; This part based on the fonts shipped in the non-source package.
1770 (for-each (lambda (name)
1771 (compile name "ttf"))
1772 (find-files "." "^[^Nachlieli].*\\.sfd$"))
1773 (for-each (lambda (name)
1774 (compile name "otf"))
1775 (find-files "." "^Nachlieli.*\\.sfd$"))
1776 #t))))))
1777 (native-inputs
1778 (list fontforge))
1779 (home-page "http://culmus.sourceforge.net/")
1780 (synopsis "TrueType Hebrew Fonts for X11")
1781 (description "14 Hebrew trivial families. Contain ASCII glyphs from various
1782 sources. Those families provide a basic set of a serif (Frank Ruehl), sans
1783 serif (Nachlieli) and monospaced (Miriam Mono) trivials. Also included Miriam,
1784 Drugulin, Aharoni, David, Hadasim etc. Cantillation marks support is
1785 available in Keter YG.")
1786 (license license:gpl2))) ; consult the LICENSE file included
1787
1788 (define-public font-lohit
1789 (package
1790 (name "font-lohit")
1791 (version "20140220")
1792 (source
1793 (origin
1794 (method url-fetch)
1795 (uri (string-append "https://releases.pagure.org/lohit/lohit-ttf-"
1796 version ".tar.gz"))
1797 (sha256
1798 (base32
1799 "1rmgr445hw1n851ywy28csfvswz1i6hnc8mzp88qw2xk9j4dn32d"))))
1800 (build-system font-build-system)
1801 (home-page "https://pagure.io/lohit")
1802 (synopsis "Lohit TrueType Indic fonts")
1803 (description "Lohit is a font family designed to cover Indic scripts.
1804 Lohit supports the Assamese, Bengali, Devanagari (Hindi, Kashmiri, Konkani,
1805 Maithili, Marathi, Nepali, Sindhi, Santali, Bodo, Dogri languages), Gujarati,
1806 Kannada, Malayalam, Manipuri, Oriya, Punjabi, Tamil and Telugu scripts.")
1807 (license license:silofl1.1)))
1808
1809 (define-public font-blackfoundry-inria
1810 (package
1811 (name "font-blackfoundry-inria")
1812 (version "1.200")
1813 (home-page "https://github.com/BlackFoundry/InriaFonts")
1814 (source (origin
1815 (method git-fetch)
1816 (uri (git-reference
1817 (url home-page)
1818 (commit (string-append "v" version))))
1819 (sha256
1820 (base32
1821 "06775y99lyh6hj5hzvrx56iybdck8a8xfqkipqd5c4cldg0a9hh8"))
1822 (file-name (string-append name "-" version "-checkout"))))
1823 ;; XXX: There are .ufo directories (the "source") so in theory we should
1824 ;; be able to rebuild TTF and OTF files with FontForge. Unfortunately a
1825 ;; command like:
1826 ;;
1827 ;; fontforge -lang=ff -c "Open('InriaSans-Regular.ufo'); Generate('foo.ttf');"
1828 ;;
1829 ;; segfaults in '_UFOLoadGlyph', which calls out to libpython. :-/
1830 ;; In the meantime we ship the precompiled OTF and TTF files.
1831 (build-system font-build-system)
1832 (synopsis "Inria Sans and Inria Serif type family")
1833 (description
1834 "Inria Sans and Inria Serif are the two members of a type family designed
1835 for Inria, a public research institute in computer science and mathematics.")
1836 (license license:silofl1.1)))
1837
1838 (define-public font-sil-gentium
1839 (package
1840 (name "font-sil-gentium")
1841 (version "5.000")
1842 (source (origin
1843 (method url-fetch)
1844 (uri (string-append
1845 "https://software.sil.org/downloads/r/gentium/GentiumPlus-"
1846 version ".zip"))
1847 (sha256
1848 (base32
1849 "0m7189870hha217n1vgpmf89mwggrxkh679ffi1lxpnjggqi2n9k"))))
1850 ;; Note: The zip file provides TTF files only, but the developer release,
1851 ;; which contains additional files, has a 'SOURCES.txt' file that says
1852 ;; that "the primary source files for the fonts are the fonts themselves".
1853 ;; Thus it looks like the TTF can be considered source.
1854 (build-system font-build-system)
1855 (synopsis "Serif font for the Cyrillic, Greek, and Latin alphabets")
1856 (description
1857 "Gentium is a typeface family designed to enable the diverse ethnic
1858 groups around the world who use the Latin, Cyrillic and Greek scripts to
1859 produce readable, high-quality publications. The font comes with regular and
1860 italics shapes. This package provides only TrueType files (TTF).")
1861 (home-page "https://software.sil.org/gentium/")
1862 (license license:silofl1.1)))
1863
1864 (define-public font-sil-andika
1865 (package
1866 (name "font-sil-andika")
1867 (version "5.000")
1868 (source (origin
1869 (method url-fetch)
1870 (uri (string-append
1871 "https://software.sil.org/downloads/r/andika/Andika-"
1872 version ".zip"))
1873 (sha256
1874 (base32
1875 "01zm7p32gxfwmv7h3cfj2vx59846w2y6rxqy67grn2dyjh8pljv0"))))
1876 ;; As for Gentium (see above), the TTF files are considered source.
1877 (build-system font-build-system)
1878 (synopsis "Sans serif font designed especially for literacy use")
1879 (description
1880 "Andika SIL is a sans serif, Unicode-compliant font designed especially
1881 for literacy use, taking into account the needs of beginning readers. The
1882 focus is on clear, easy-to-perceive letterforms that will not be readily
1883 confused with one another. This package provides only TrueType files (TTF).")
1884 (home-page "https://software.sil.org/andika/")
1885 (license license:silofl1.1)))
1886
1887 (define-public font-sil-charis
1888 (package
1889 (name "font-sil-charis")
1890 (version "5.000")
1891 (source (origin
1892 (method url-fetch)
1893 (uri (string-append
1894 "https://software.sil.org/downloads/r/charis/CharisSIL-"
1895 version ".zip"))
1896 (sha256
1897 (base32
1898 "1zcvw37f1a7gkml3yfm6hxh93844llm7xj4w52600qq3ndrm8gjy"))))
1899 ;; As for Gentium (see above), the TTF files are considered source.
1900 (build-system font-build-system)
1901 (synopsis "Serif font for the Cyrillic and Latin alphabets")
1902 (description
1903 "Charis SIL is a Unicode-based font family that supports the wide range
1904 of languages that use the Latin and Cyrillic scripts. It is specially
1905 designed to make long texts pleasant and easy to read, even in less than ideal
1906 reproduction and display environments. This package provides only TrueType
1907 files (TTF).")
1908 (home-page "https://software.sil.org/charis/")
1909 (license license:silofl1.1)))
1910
1911 (define-public font-mononoki
1912 (package
1913 (name "font-mononoki")
1914 (version "1.3")
1915 (source (origin
1916 (method git-fetch)
1917 (uri (git-reference
1918 (url "https://github.com/madmalik/mononoki/")
1919 (commit version)))
1920 (sha256
1921 (base32
1922 "07gh84iw84g8fha3gx4yjyl1rsksqhy2kk38f01m048sgjp6ww5j"))
1923 (file-name (git-file-name name version))))
1924 (build-system font-build-system)
1925 (arguments
1926 `(#:phases
1927 (modify-phases %standard-phases
1928 (add-after 'unpack 'make-files-writable
1929 (lambda _
1930 (for-each make-file-writable (find-files ".")))))))
1931 (synopsis "Font for programming and code review")
1932 (description
1933 "Mononoki is a typeface by Matthias Tellen, created to enhance code
1934 formatting.")
1935 (home-page "https://madmalik.github.io/mononoki/")
1936 (license license:silofl1.1)))
1937
1938 (define-public font-plemoljp
1939 (package
1940 (name "font-plemoljp")
1941 (version "1.2.2")
1942 (source (origin
1943 (method url-fetch)
1944 (uri (string-append
1945 "https://github.com/yuru7/PlemolJP/releases/download/"
1946 "v" version "/PlemolJP_v" version ".zip"))
1947 (sha256
1948 (base32
1949 "03cwzkqg09c87lmsx9xfzdrlgjml93bhhp1dqq3qkpdfww30wkaw"))))
1950 (build-system font-build-system)
1951 (home-page "https://github.com/yuru7/PlemolJP")
1952 (synopsis "Plex Mono Language JP")
1953 (description "PlemolJP (Plex Mono Language JP) is a Japanese programming
1954 font that is a composite of IBM Plex Mono and IBM Plex Sans JP.")
1955 (license license:silofl1.1)))
1956
1957 (define-public font-public-sans
1958 (package
1959 (name "font-public-sans")
1960 (version "1.008")
1961 (source
1962 (origin
1963 (method git-fetch)
1964 (uri (git-reference
1965 (url "https://github.com/uswds/public-sans")
1966 (commit (string-append "v" version))))
1967 (file-name (git-file-name name version))
1968 (sha256
1969 (base32 "1qhyxbjv1rnydfpqzd18fbiyz75p4sabphy8yj07hyq0hidp5xsf"))))
1970 (build-system font-build-system)
1971 (home-page "https://public-sans.digital.gov/")
1972 (synopsis "Neutral typeface for interfaces, text, and headings")
1973 (description
1974 "Public Sans is a strong, neutral, sans-serif typeface for text or
1975 display based on Libre Franklin.")
1976 (license license:silofl1.1)))
1977
1978 (define-public font-hermit
1979 (package
1980 (name "font-hermit")
1981 (version "2.0")
1982 (source (origin
1983 (method url-fetch/tarbomb)
1984 (uri (string-append "https://pcaro.es/d/otf-hermit-" version
1985 ".tar.gz"))
1986 (sha256
1987 (base32
1988 "09rmy3sbf1j1hr8zidighjgqc8kp0wsra115y27vrnlf10ml6jy0"))))
1989 (build-system font-build-system)
1990 (arguments
1991 `(#:tests? #f))
1992 (home-page "https://pcaro.es/p/hermit/")
1993 (synopsis "Monospace font")
1994 (description
1995 "Hermit is a monospace font designed to be clear, pragmatic and very
1996 readable. Its creation has been focused on programming. Every glyph was
1997 carefully planned and calculated, according to defined principles and rules.
1998 For this reason, Hermit is coherent and regular.
1999
2000 Symbols stand out from common text. Dots and commas are easily seen, and
2001 operators are clear even when not surrounded by spaces. Similar characters
2002 have been designed to be very distinguishable from each other.")
2003 (license license:silofl1.1)))
2004
2005 (define-public font-dseg
2006 (package
2007 (name "font-dseg")
2008 (version "0.46")
2009 (source
2010 (origin
2011 (method url-fetch/zipbomb)
2012 (uri
2013 (string-append "https://github.com/keshikan/DSEG/"
2014 "releases/download/v" version
2015 "/fonts-DSEG_v"
2016 (string-concatenate (string-split version #\.))
2017 ".zip"))
2018 (sha256
2019 (base32 "13133kpa1ndsji9yq5ppkds5yq2y094qvrv2f83ah74p40sz9hm6"))))
2020 (build-system font-build-system)
2021 (arguments
2022 `(#:phases
2023 (modify-phases %standard-phases
2024 (replace 'install
2025 (lambda* (#:key outputs #:allow-other-keys)
2026 (let* ((out (assoc-ref outputs "out"))
2027 (font-dir (string-append out "/share/fonts"))
2028 (truetype-dir (string-append font-dir "/truetype")))
2029 (with-directory-excursion
2030 (string-append "fonts-DSEG_v"
2031 (apply string-append (string-split ,version
2032 #\.)))
2033 (for-each (lambda (f) (install-file f truetype-dir))
2034 (find-files "." "\\.ttf$"))
2035 #t)))))))
2036 (home-page "https://www.keshikan.net/fonts-e.html")
2037 (synopsis "DSEG: 7-segment and 14-segment fonts")
2038 (description
2039 "DSEG is a font family that imitates seven- and fourteen-segment LCD
2040 displays (7SEG, 14SEG). DSEG includes the roman alphabet and symbol glyphs.
2041 This package provides the TrueType fonts.")
2042 (license license:silofl1.1)))
2043
2044 (define-public font-sil-ezra
2045 (package
2046 (name "font-sil-ezra")
2047 (version "2.51")
2048 (source
2049 (origin
2050 (method url-fetch)
2051 (uri (string-append "https://software.sil.org/downloads/r/ezra/EzraSIL-"
2052 version ".zip"))
2053 (sha256
2054 (base32
2055 "1h8cfrvjdwxk963bw359jdg86bycwyyhvviqy6lwcfj7qhzcnszi"))))
2056 (build-system font-build-system)
2057 (home-page "https://software.sil.org/ezra/")
2058 (synopsis "Biblia Hebraica Stuttgartensia (BHS) typography inspired typeface")
2059 (description "Ezra SIL is a typeface fashioned after the square letter
2060 forms of the typography of the Biblia Hebraica Stuttgartensia (BHS), a
2061 beautiful Old Testament volume familiar to Biblical Hebrew scholars. This
2062 font package provides @code{Ezra SIL} as well as @code{Ezra SIL SR}, which has
2063 a different style of marking.")
2064 (license license:expat)))
2065
2066 (define-public font-jetbrains-mono
2067 (package
2068 (name "font-jetbrains-mono")
2069 (version "2.242")
2070 (source
2071 (origin
2072 (method url-fetch)
2073 (uri
2074 (string-append "https://github.com/JetBrains/JetBrainsMono/releases/"
2075 "download/v" version "/JetBrainsMono-" version ".zip"))
2076 (sha256
2077 (base32 "17qs985v38x3rcg3v4av3qynwr4gvixrj50vjzy7zkkny575ncaf"))))
2078 (build-system font-build-system)
2079 (arguments
2080 `(#:phases
2081 (modify-phases %standard-phases
2082 (add-before 'install-license-files 'change-directory-to-archive-root
2083 ;; Find the license file outside of the default subdirectory.
2084 (lambda _
2085 (chdir "..")
2086 #t))
2087 (replace 'install-license-files
2088 (lambda* (#:key outputs #:allow-other-keys)
2089 (let* ((out (assoc-ref outputs "out"))
2090 (doc (string-append out "/share/doc/" ,name "-" ,version)))
2091 (install-file "OFL.txt" doc)
2092 #t))))))
2093 (home-page "https://www.jetbrains.com/lp/mono/")
2094 (synopsis "Mono typeface for developers")
2095 (description
2096 "JetBrains Mono is a font family dedicated to developers. JetBrains
2097 Mono’s typeface forms are simple and free from unnecessary details. Rendered
2098 in small sizes, the text looks crisper.")
2099 (license license:asl2.0)))
2100
2101 (define-public font-juliamono
2102 (package
2103 (name "font-juliamono")
2104 (version "0.043")
2105 (source
2106 (origin
2107 (method url-fetch)
2108 (uri (string-append
2109 "https://github.com/cormullion/juliamono/releases/download/"
2110 "v" version "/JuliaMono-ttf.tar.gz"))
2111 (sha256
2112 (base32
2113 "0vb7n9yqgasnxzps13ckklay5bla6b0i79pzmfqvjms1r37079gh"))))
2114 (build-system font-build-system)
2115 (arguments
2116 `(#:phases (modify-phases %standard-phases
2117 (replace 'unpack
2118 (lambda* (#:key source #:allow-other-keys)
2119 (mkdir "source")
2120 (chdir "source")
2121 (invoke "tar" "xzf" source))))))
2122 (native-inputs (list tar))
2123 (home-page "https://github.com/cormullion/juliamono")
2124 (synopsis "Monospaced font for programming")
2125 (description
2126 "JuliaMono is a monospaced font for scientific and technical computing,
2127 designed to work for programming in the Julia Programming Language and other
2128 text environments.")
2129 (license license:silofl1.1)))
2130
2131 (define-public font-vazir
2132 (package
2133 (name "font-vazir")
2134 (version "22.1.0")
2135 (source
2136 (origin
2137 (method url-fetch/zipbomb)
2138 (uri
2139 (string-append "https://github.com/rastikerdar/vazir-font/"
2140 "releases/download/v" version
2141 "/vazir-font-v" version ".zip"))
2142 (sha256
2143 (base32
2144 "0w3gwb5q33x5llw7cfs8qhaxr4ssg6rsx4b9day3993zn24xq031"))))
2145 (build-system font-build-system)
2146 (home-page "https://rastikerdar.github.io/vazir-font/")
2147 (synopsis "Vazir Persian typeface")
2148 (description
2149 "Vazir is a beautiful and elegant Persian typeface originally based on
2150 DejaVu, and comes in six variants: Thin, Light, Normal, Medium, Bold, and
2151 Black. This package provides four versions of Vazir:
2152
2153 @itemize
2154 @item @code{Vazir}: The main version; includes Latin glyphs from Roboto.
2155 @item @code{Vazir-FD}: Like @code{Vazir}, but (always) uses Farsi digit glyphs
2156 instead of Latin ones.
2157 @item @code{Vazir-WOL}: Like @code{Vazir}, but without Roboto's Latin glyphs.
2158 @item @code{Vazir-FD-WOL}: Combination of @code{Vazir-FD} and @code{Vazir-WOL}:
2159 always uses Farsi digits, and does not include Latin glyphs from Roboto.
2160 @end itemize\n")
2161 (license
2162 ;; See https://github.com/rastikerdar/vazir-font/blob/master/LICENSE for
2163 ;; details.
2164 (list license:public-domain ; the Vazir modifications to DejaVu
2165 ; and the DejaVu modifications to...
2166 (license:x11-style ; ...the Bitstream Vera typeface
2167 "file://LICENSE" "Bitstream Vera License")
2168 license:asl2.0)))) ; Latin glyphs from Roboto
2169
2170 (define-public font-victor-mono
2171 (package
2172 (name "font-victor-mono")
2173 (version "1.4.2")
2174 (source (origin
2175 (method url-fetch/zipbomb)
2176 (uri (string-append
2177 "https://github.com/rubjo/victor-mono/raw/v"
2178 version
2179 "/public/VictorMonoAll.zip"))
2180 (sha256 "01260vja0d22mcvkzspf0xnl7b851r0265arqkm12q1vagzyxvkm")))
2181 (build-system font-build-system)
2182 (synopsis "Font with support for italics and ligatures")
2183 (description "Victor Mono is an open-source monospaced font with
2184 optional semi-connected cursive italics and programming symbol ligatures.
2185 This package provides only TrueType files (TTF).
2186 It comes in seven weights and Roman, Italic and Oblique styles.")
2187 (home-page "https://rubjo.github.io/victor-mono/")
2188 (license license:expat)))
2189
2190 (define-public font-meera-inimai
2191 (package
2192 (name "font-meera-inimai")
2193 (version "2.0")
2194 (source
2195 (origin
2196 (method git-fetch)
2197 (uri (git-reference
2198 (url "https://gitlab.com/smc/meera-inimai")
2199 (commit "0f39cdd7dbf1b6d1bed7df85834d33789dce20a7")))
2200 (file-name (git-file-name name version))
2201 (sha256
2202 (base32
2203 "1x5mhrpx24imh0r4l83mkaiszxgwi1q4ppyyvq63h3ddwk20cwdg"))))
2204 (build-system gnu-build-system)
2205 (native-inputs
2206 `(("fontforge" ,fontforge)
2207 ("harfbuzz" ,harfbuzz "bin")
2208 ("python" ,python-minimal)
2209 ("python-fonttools" ,python-fonttools)
2210 ("python-brotli" ,python-brotli)))
2211 (arguments
2212 `(#:make-flags (list "PY=python3"
2213 (string-append "DESTDIR=" %output)
2214 "fontpath=/share/fonts/truetype")
2215 #:test-target "test"
2216 #:phases
2217 (modify-phases %standard-phases
2218 (delete 'configure))))
2219 (home-page "https://gitlab.com/smc/meera-inimai")
2220 (synopsis "Meera Inimai Tamil font")
2221 (description "Meera Inimai is a Unicode font for the Tamil Script. Meera
2222 Inimai is a san-serif typeface. It is best used as a screen font for body
2223 text. It is also useful for body text of printed pamphlets or single page
2224 designs. Meera Inimai can be thought of as similar to Helvetica and its
2225 variation Arial. Tamil characters are inherently vertically-elliptical. The
2226 orthography of Roman glyphs of Meera Inimai are also based on this
2227 characteristic so that they sit smoothly with the Tamil glyphs.")
2228 (license license:silofl1.1)))
2229
2230 (define-public font-ipa-mj-mincho
2231 (package
2232 (name "font-ipa-mj-mincho")
2233 (version "006.01")
2234 (source (origin
2235 (method url-fetch/zipbomb)
2236 (uri (string-append "https://mojikiban.ipa.go.jp/OSCDL/IPAmjMincho"
2237 "/ipamjm" (string-join (string-split version #\.) "")
2238 ".zip"))
2239 (sha256
2240 (base32
2241 "0s2vs9p7vd7ajnn6c2icli069sjwi4d45a39fczqpwwn507lwj9m"))))
2242 (build-system font-build-system)
2243 (arguments
2244 `(#:phases
2245 (modify-phases %standard-phases
2246 (add-after 'install 'install-doc
2247 (lambda* (#:key outputs #:allow-other-keys)
2248 (let ((doc-dir (string-append (assoc-ref outputs "out")
2249 "/share/doc/font-ipa-mj-mincho")))
2250 (mkdir-p doc-dir)
2251 (copy-file "Readme.txt" (string-append doc-dir "/README"))
2252 (copy-file "IPA_Font_License_Agreement_v1.0.txt"
2253 (string-append doc-dir "/LICENSE"))
2254 #t))))))
2255 (home-page "https://mojikiban.ipa.go.jp/1300.html")
2256 (synopsis "Japanese font from the Information-technology Promotion Agency")
2257 (description "MJM Mincho is a font that aims at, for example, allowing you
2258 to write people's name, or for formal business situations where it is necessary
2259 to have a detailed and proper character style.")
2260 (license license:ipa)))
2261
2262 (define-public font-fontna-yasashisa-antique
2263 (package
2264 (name "font-fontna-yasashisa-antique")
2265 (version "0")
2266 (source (origin
2267 (method url-fetch)
2268 (uri (string-append "http://flop.sakura.ne.jp/font/fontna-op/"
2269 "YasashisaAntiqueFont.zip"))
2270 (sha256
2271 (base32
2272 "1hl2qk3lzmh9h2vv5647vhlslkn3vqbq9rqgp4wzybajafx8c6nj"))))
2273 (build-system font-build-system)
2274 (arguments
2275 `(#:phases
2276 (modify-phases %standard-phases
2277 ;; encoding issues cause many phases to fail
2278 (add-after 'unpack 'fix-encoding
2279 (lambda _
2280 ;; This directory, TrueType(サポート外), is not properly encoded,
2281 ;; which makes rename-file fail. Instead, use shell globbing to
2282 ;; select and rename the directory.
2283 (invoke "sh" "-c" "mv TrueType* TrueType")
2284 #t)))))
2285 (native-inputs
2286 `(("bash" ,bash-minimal)
2287 ("coreutils" ,coreutils)))
2288 (home-page "http://www.fontna.com/blog/1122/")
2289 (synopsis "Mix font of gothic kanji and minchou kana")
2290 (description "Antique is a font that is popular to write manga bubbles,
2291 dictionary headwords and picture books. This font reduces the thickness
2292 differences in characters compared to other antique fonts.")
2293 (license (list license:ipa
2294 (license:non-copyleft "mplus-TESTFLIGHT-057/LICENSE_E")))))
2295
2296 (define-public font-mplus-testflight
2297 (package
2298 (name "font-mplus-testflight")
2299 (version "063a")
2300 (source (origin
2301 (method url-fetch)
2302 (uri (string-append "https://osdn.net/frs/redir.php?"
2303 "m=gigenet&f=mplus-fonts%2F62344%2Fmplus-TESTFLIGHT-"
2304 version ".tar.xz"))
2305 (file-name (string-append name "-" version ".tar.xz"))
2306 (sha256
2307 (base32
2308 "0yfx9i77638yrgclnwwl4af79ri3vifi1nslwi6mgzva9cxrgss4"))))
2309 (build-system font-build-system)
2310 (home-page "https://mplus-fonts.osdn.jp/index.html")
2311 (synopsis "Japanese font collection")
2312 (description "M+ is a collection of Japanese fonts with all Latin glyph
2313 sets, with Basic Latin, Latin-1 Supplement, Latin Extended-A, and IPA
2314 Extensions. In addition to European letters used in many Western European
2315 languages, it contains Japanese characters, including Kana glyphs and more
2316 than 5,300 Kanji glyphs, as well major international phonetic symbols,
2317 operators and special symbols.")
2318 (license (license:non-copyleft "file:///LICENSE_E"))))
2319
2320 (define-public font-catamaran
2321 (let ((commit "7559b4906f9c9148fb22c6f89508c3053a78a296")
2322 (revision "1"))
2323 (package
2324 (name "font-catamaran")
2325 (version (git-version "0.0.0" revision commit))
2326 (source
2327 (origin
2328 (method git-fetch)
2329 (uri (git-reference
2330 (url "https://github.com/VanillaandCream/Catamaran-Tamil")
2331 (commit commit)))
2332 (file-name (git-file-name name version))
2333 (sha256
2334 (base32
2335 "1wpp41l7j2kpgnyavhgxcc5wp852a4wqsnwravn39gp980s84yxw"))))
2336 (build-system font-build-system)
2337 (home-page "https://github.com/VanillaandCream/Catamaran-Tamil")
2338 (synopsis "9 weight Tamil and Latin type")
2339 (description "Catamaran is a 9 weight Tamil and Latin type. Catamaran
2340 is a stylish type with a polished yet relaxed feel. Its versatility makes it
2341 suitable for a wide range of uses.")
2342 (license license:silofl1.1))))
2343
2344 (define-public font-cozette
2345 (package
2346 (name "font-cozette")
2347 (version "1.13.0")
2348 (source (origin
2349 (method git-fetch)
2350 (uri (git-reference
2351 (url "https://github.com/slavfox/Cozette")
2352 (commit (string-append "v." version))))
2353 (file-name (git-file-name name version))
2354 (sha256
2355 (base32
2356 "178i812n4sfsvid7jhnm683jlxqmrv4ck6qbb4nwyllhwg3gyq60"))))
2357 (build-system font-build-system)
2358 (arguments
2359 `(#:phases
2360 (modify-phases %standard-phases
2361 (add-after 'unpack 'dont-depend-on-git
2362 (lambda _
2363 (substitute* "build.py"
2364 ;; Merely importing this module requires a git repository.
2365 ;; We don't use get_changelog, so just disable the import.
2366 (("from cozette_builder\\.changeloggen import get_changelog")
2367 ""))))
2368 (add-before 'install 'build
2369 (lambda _
2370 (invoke "python3" "build.py" "fonts"))))))
2371 (native-inputs
2372 (list fontforge
2373 python
2374 python-crayons
2375 python-fonttools
2376 python-numpy
2377 python-pillow))
2378 (home-page "https://github.com/slavfox/Cozette")
2379 (synopsis "Bitmap programming font")
2380 (description "Cozette is a 6x13px (bounding box) bitmap font based on Dina
2381 and heavily inspired by Creep.")
2382 (license license:expat)))
2383
2384 (define-public font-montserrat
2385 (package
2386 (name "font-montserrat")
2387 (version "7.210")
2388 (source (origin
2389 (method git-fetch)
2390 (uri (git-reference
2391 (url "https://github.com/JulietaUla/Montserrat")
2392 (commit (string-append "v" version))))
2393 (file-name (git-file-name name version))
2394 (sha256
2395 (base32
2396 "0jn1yvfamq5xazw85sfnxgriji60g7mkss9mkf8d0117vdk838bn"))))
2397 (build-system font-build-system)
2398 (home-page "https://github.com/JulietaUla/Montserrat")
2399 (synopsis "The Montserrat font")
2400 (description "The old posters and signs in the traditional Montserrat
2401 neighborhood of Buenos Aires inspired Julieta Ulanovsky to design this
2402 typeface and rescue the beauty of urban typography that emerged in the first
2403 half of the twentieth century.")
2404 (license license:silofl1.1)))
2405
2406 (define-public font-overpass
2407 (package
2408 (name "font-overpass")
2409 (version "3.0.5")
2410 (source
2411 (origin
2412 (method git-fetch)
2413 (uri (git-reference
2414 (url "https://github.com/RedHatOfficial/Overpass")
2415 (commit (string-append "v" version))))
2416 (file-name (git-file-name name version))
2417 (sha256
2418 (base32 "1vsp94h7v5sn29hajv2ng94gyx4pqb0xgvn3gf7jp2q80gdv8pkm"))))
2419 (build-system font-build-system)
2420 (arguments
2421 `(#:phases
2422 (modify-phases %standard-phases
2423 (add-after 'unpack 'delete-webfonts
2424 (lambda _
2425 (delete-file-recursively "webfonts"))))))
2426 (home-page "https://overpassfont.org")
2427 (synopsis "Sans serif font family inspired by Highway Gothic")
2428 (description
2429 "Overpass is a sans-serif typeface based on the U.S. interstate highway
2430 road signage typefaces, adapted for on-screen display and user interfaces.
2431 Overpass includes proportional and monospace variants.")
2432 (license (list license:silofl1.1
2433 license:lgpl2.1))))
2434
2435 (define-public font-cormorant
2436 (package
2437 (name "font-cormorant")
2438 (version "3.609")
2439 (source
2440 (origin
2441 (method git-fetch)
2442 (uri (git-reference
2443 (url "https://github.com/CatharsisFonts/Cormorant")
2444 (commit (string-append "v" version))))
2445 (file-name (git-file-name name version))
2446 (sha256
2447 (base32 "0fjp2xk4bjx8i6jamkyjq2fdr7324fh41pbn634iwnhdvvawvbav"))))
2448 (build-system font-build-system)
2449 (home-page "https://github.com/CatharsisFonts/Cormorant")
2450 (synopsis
2451 "Extravagant display serif typeface in the spirit of Garamond")
2452 (description
2453 "Cormorant is an extravagant display serif typeface inspired by
2454 the Garamond heritage. The design goal of Cormorant was to distill
2455 the aesthetic essence of Garamond, unfetter it from the limitations of
2456 metal printing, and allow it to bloom into its natural refined form at
2457 high definition. Cormorant is characterized by scandalously small
2458 counters, razor-sharp serifs, dangerously smooth curves, and
2459 flamboyantly tall accents. While many implementations of Garamond at
2460 small optical sizes already exist, Cormorant aims for the sparsely
2461 populated niche of display-size counterparts that exploit the high
2462 resolution of contemporary screens and print media to the fullest.")
2463 (license license:silofl1.1)))
2464
2465 (define-public font-bravura
2466 (package
2467 (name "font-bravura")
2468 (version "1.393")
2469 (source
2470 (origin
2471 (method git-fetch)
2472 (uri (git-reference
2473 (url "https://github.com/steinbergmedia/bravura")
2474 ;; Should be:
2475 ;; (string-append "bravura-" version)
2476 ;; but missing tag for 1.393. Requested upstream at:
2477 ;; https://github.com/steinbergmedia/bravura/issues/61
2478 (commit "3df1714e6f9d522a8d2b6ee6888fa3e68e71199d")))
2479 (file-name (git-file-name name version))
2480 (sha256
2481 (base32 "1d0a2z1gl0kzfnd5z0nv2gd226qwll13kis2xrhx213w6r849180"))))
2482 (build-system font-build-system)
2483 (home-page "https://www.smufl.org/fonts/")
2484 (synopsis
2485 "OpenType music font and SMuFL reference implementation")
2486 (description
2487 "Bravura is an OpenType music font and the reference implementation for
2488 the W3C Standard Music Font Layout (SMuFL). Bravura draws on the heritage of
2489 the finest European music engraving of the 19th and early 20th centuries, with
2490 a bolder and more substantial look than most other music fonts: thin strokes
2491 are slightly thicker than in other fonts, improving the overall ``blackness''
2492 of the font and its legibility when read at a distance.
2493
2494 In addition to Bravura itself, which is for use with music notation
2495 software (such as MuseScore), the family includes a Bravura Text variant
2496 optimized for using musical symbols inline with regular text.")
2497 (license license:silofl1.1)))
2498
2499 (define-public font-charter
2500 (let ((butterick-version "210112")) ;; yymmdd
2501 (package
2502 (name "font-charter")
2503 (version (string-append "2.0.0-" butterick-version))
2504 (source
2505 (origin
2506 (method url-fetch)
2507 (uri (string-append "https://practicaltypography.com/fonts/Charter%20"
2508 butterick-version ".zip"))
2509 (file-name (string-append name "-" version ".zip"))
2510 (sha256
2511 (base32 "1j8iv2dl695zrabs2knb7jsky8mjis29a2ddpna4by8mlvqrf0ml"))))
2512 (outputs '("out" "woff2"))
2513 (build-system font-build-system)
2514 (arguments
2515 `(#:phases
2516 (modify-phases %standard-phases
2517 (add-after 'install 'install-woff2
2518 (lambda* (#:key outputs #:allow-other-keys)
2519 (let ((dest (string-append (assoc-ref outputs "woff2")
2520 "/share/fonts/woff2")))
2521 (for-each (lambda (file)
2522 (install-file file dest))
2523 (find-files "." "\\.woff2$"))))))))
2524 (home-page "https://practicaltypography.com/charter.html")
2525 (synopsis "Charter fonts in OpenType and TrueType formats")
2526 (description "Charter was designed by Matthew Carter in 1987 and was
2527 contributed by Bitstream to the X Consortium in 1992. This package provides
2528 OpenType, TrueType, and @acronym{WOFF2, Web Open Font Format 2} versions
2529 converted from the Type 1 originals by Matthew Butterick.")
2530 (license
2531 (license:non-copyleft
2532 "file://Charter license.txt"
2533 (string-append
2534 "Bitstream contributed the Charter family "
2535 "to the X Consortium in 1992. "
2536 "The license is also embedded in the font metadata."))))))
2537
2538 (define-public font-termsyn
2539 (package
2540 (name "font-termsyn")
2541 (version "1.8.7")
2542 (source (origin
2543 (method url-fetch)
2544 (uri (string-append "mirror://sourceforge/termsyn/termsyn-"
2545 version ".tar.gz"))
2546 (sha256
2547 (base32
2548 "15vsmc3nmzl0pkgdpr2993da7p38fiw2rvcg01pwldzmpqrmkpn6"))))
2549 (build-system font-build-system)
2550 (outputs '("out" "psf" "otf"))
2551 (native-inputs (list fontforge))
2552 (arguments
2553 `(#:phases (modify-phases %standard-phases
2554 (add-before 'install 'build
2555 (lambda _
2556 (use-modules (ice-9 regex)
2557 (ice-9 match))
2558 (define (pcf2 name ext)
2559 (invoke "fontforge" "-lang=ff" "-c"
2560 (string-append "Open('"
2561 name
2562 "');"
2563 "Generate('"
2564 (basename name "pcf")
2565 ext
2566 "','ttf')")))
2567 (for-each (lambda (pcf)
2568 (pcf2 pcf "otf"))
2569 (find-files "." "\\.pcf$")) #t))
2570 (replace 'install
2571 (lambda* (#:key outputs #:allow-other-keys)
2572 (let* ((pcf (assoc-ref outputs "out")) (psf (assoc-ref
2573 outputs
2574 "psf"))
2575 (otf (assoc-ref outputs "otf"))
2576 (pcf-font-dir (string-append pcf
2577 "/share/fonts/termsyn"))
2578 (otf-font-dir (string-append otf
2579 "/share/fonts/termsyn-otf"))
2580 (psf-font-dir (string-append psf
2581 "/share/kbd/consolefonts")))
2582 (mkdir-p pcf-font-dir)
2583 (mkdir-p otf-font-dir)
2584 (mkdir-p psf-font-dir)
2585 (for-each (lambda (pcf)
2586 (install-file pcf pcf-font-dir))
2587 (find-files "." "\\.pcf$"))
2588 (for-each (lambda (psfu)
2589 (install-file psfu psf-font-dir))
2590 (find-files "." "\\.psfu$"))
2591 (for-each (lambda (otf)
2592 (install-file otf otf-font-dir))
2593 (find-files "." "\\.otf$"))) #t)))))
2594 (home-page "https://sourceforge.net/projects/termsyn/")
2595 (synopsis "Monospaced font based on terminus and tamsyn")
2596 (description
2597 "Termsyn is a clean monospaced bitmap font based on Terminus and Tamsyn.
2598
2599 This package contains the following outputs:
2600 @enumerate
2601 @item out: pcf font
2602 @item otf: otf font
2603 @item psf: psfu font
2604 @end enumerate
2605 ")
2606 (license license:gpl2)))
2607
2608 (define-public font-atui-feather
2609 (let ((version "0")
2610 (commit "c51fe7cedbcf2cbf4f1b993cef5d8def612dec1d")
2611 (revision "1"))
2612 (package
2613 (name "font-atui-feather")
2614 (version (git-version version revision commit))
2615 (source (origin
2616 (method git-fetch)
2617 (uri (git-reference
2618 (commit commit)
2619 (url "https://github.com/AT-UI/feather-font/")))
2620 (file-name (git-file-name name version))
2621 (sha256
2622 (base32
2623 "0hk12bjlsh0j6kd0sz3nwax259afdi6dxws4x88yz5ssxic1ng2j"))))
2624 (build-system font-build-system)
2625 (home-page "https://at-ui.github.io/feather-font/")
2626 (synopsis "Iconfont version of Feather")
2627 (description
2628 "Feather is a collection of simply beautiful icons. Each
2629 icon is designed on a 24x24 grid with an emphasis on simplicity, consistency,
2630 and readability. This package bundles those icons into a font.")
2631 (license license:expat))))