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