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