gnu: font-iosevka-slab: Update source hash.
[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 ng0 <ng0@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 Efraim Flashner <efraim@flashner.co.il>
15 ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
16 ;;; Copyright © 2016 Toni Reina <areina@riseup.net>
17 ;;; Copyright © 2017, 2018, 2019, 2020 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 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 Jens Mølgaard <jens@zete.tk>
27 ;;; Copyright © 2019 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 ;;;
32 ;;; This file is part of GNU Guix.
33 ;;;
34 ;;; GNU Guix is free software; you can redistribute it and/or modify it
35 ;;; under the terms of the GNU General Public License as published by
36 ;;; the Free Software Foundation; either version 3 of the License, or (at
37 ;;; your option) any later version.
38 ;;;
39 ;;; GNU Guix is distributed in the hope that it will be useful, but
40 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
41 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
42 ;;; GNU General Public License for more details.
43 ;;;
44 ;;; You should have received a copy of the GNU General Public License
45 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
46
47 (define-module (gnu packages fonts)
48 #:use-module (ice-9 regex)
49 #:use-module (guix utils)
50 #:use-module ((guix licenses) #:prefix license:)
51 #:use-module (guix packages)
52 #:use-module (guix download)
53 #:use-module (guix git-download)
54 #:use-module (guix build-system font)
55 #:use-module (guix build-system gnu)
56 #:use-module (guix build-system meson)
57 #:use-module (guix build-system trivial)
58 #:use-module (gnu packages base)
59 #:use-module (gnu packages compression)
60 #:use-module (gnu packages fontutils)
61 #:use-module (gnu packages gettext)
62 #:use-module (gnu packages glib)
63 #:use-module (gnu packages perl)
64 #:use-module (gnu packages pkg-config)
65 #:use-module (gnu packages python)
66 #:use-module (gnu packages xorg))
67
68 (define-public font-ibm-plex
69 (package
70 (name "font-ibm-plex")
71 (version "4.0.2")
72 (source (origin
73 (method url-fetch)
74 (uri (string-append
75 "https://github.com/IBM/plex/releases/download/"
76 "v" version "/OpenType.zip"))
77 (sha256
78 (base32
79 "17bd84ic7z9hkcjy4bwnh4z51bnkh2vrjzwvs9g6lwzmxjswa5b6"))))
80 (build-system font-build-system)
81 (home-page "https://github.com/IBM/plex")
82 (synopsis "IBM Plex typeface")
83 (description "This package provides the Plex font family. It comes in a
84 Sans, Serif, Mono and Sans Condensed, all with roman and true italics. The
85 fonts have been designed to work well in user interface (UI) environments as
86 well as other mediums.")
87 (license license:silofl1.1)))
88
89 (define-public font-inconsolata
90 (package
91 (name "font-inconsolata")
92 (version "3.000")
93 (source
94 (origin
95 (method url-fetch)
96 (uri (string-append "https://github.com/googlefonts/Inconsolata/"
97 "releases/download/v" version "/fonts_otf.zip"))
98 (sha256
99 (base32 "1wavvv86nwsqm5sbmnkv1bprj7l7zdrkxpvjy6w8yag93k6hrlx1"))))
100 (build-system font-build-system)
101 (home-page "https://levien.com/type/myfonts/inconsolata.html")
102 (synopsis "Monospace font")
103 (description "A monospace font, designed for code listings and the like,
104 in print. With attention to detail for high resolution rendering.")
105 (license license:silofl1.1)))
106
107 (define-public font-ubuntu
108 (package
109 (name "font-ubuntu")
110 (version "0.83")
111 (source (origin
112 (method git-fetch)
113 (uri (git-reference
114 (url "https://salsa.debian.org/fonts-team/fonts-ubuntu")
115 (commit (string-append "upstream/" version))))
116 (file-name (git-file-name name version))
117 (sha256
118 (base32
119 "1d2xrjpxy70f3nsgqiggwv6pj06qglf5vj2847pqx60w3ygi903g"))))
120 (build-system font-build-system)
121 (home-page "http://font.ubuntu.com/")
122 (synopsis "The Ubuntu Font Family")
123 (description "The Ubuntu Font Family is a unique, custom designed font
124 that has a very distinctive look and feel. This package provides the
125 TrueType (TTF) files.")
126 (license
127 (license:non-copyleft
128 "http://font.ubuntu.com/ufl/ubuntu-font-licence-1.0.txt"
129 "Ubuntu Font License v1.0"))))
130
131 (define-public font-dejavu
132 (package
133 (name "font-dejavu")
134 (version "2.37")
135 (source (origin
136 (method url-fetch)
137 (uri (string-append "mirror://sourceforge/dejavu/dejavu/"
138 version "/dejavu-fonts-ttf-"
139 version ".tar.bz2"))
140 (sha256
141 (base32
142 "1mqpds24wfs5cmfhj57fsfs07mji2z8812i5c4pi5pbi738s977s"))))
143 (build-system font-build-system)
144 (arguments
145 `(#:phases
146 (modify-phases %standard-phases
147 (add-after 'install 'install-conf
148 (lambda* (#:key outputs #:allow-other-keys)
149 (let ((conf-dir (string-append (assoc-ref outputs "out")
150 "/share/fontconfig/conf.avail")))
151 (copy-recursively "fontconfig" conf-dir)
152 #t))))))
153 (home-page "https://dejavu-fonts.github.io/")
154 (synopsis "Vera font family derivate with additional characters")
155 (description "DejaVu provides an expanded version of the Vera font family
156 aiming for quality and broader Unicode coverage while retaining the original
157 Vera style. DejaVu currently works towards conformance to the Multilingual
158 European Standards (MES-1 and MES-2) for Unicode coverage. The DejaVu fonts
159 provide serif, sans and monospaced variants.")
160 (license
161 (license:x11-style
162 "http://dejavu-fonts.org/"))))
163
164 (define-public font-bitstream-vera
165 (package
166 (name "font-bitstream-vera")
167 (version "1.10")
168 (source (origin
169 (method url-fetch)
170 (uri (string-append "mirror://gnome/sources/ttf-bitstream-vera/"
171 version "/ttf-bitstream-vera-"
172 version ".tar.bz2"))
173 (sha256
174 (base32
175 "1p3qs51x5327gnk71yq8cvmxc6wgx79sqxfvxcv80cdvgggjfnyv"))))
176 (build-system font-build-system)
177 (home-page "https://www.gnome.org/fonts/")
178 (synopsis "Bitstream Vera sans-serif typeface")
179 (description "Vera is a sans-serif typeface from Bitstream, Inc. This
180 package provides the TrueType (TTF) files.")
181 (license
182 (license:fsdg-compatible
183 "https://www.gnome.org/fonts/#Final_Bitstream_Vera_Fonts"
184 "The Font Software may be sold as part of a larger software package but
185 no copy of one or more of the Font Software typefaces may be sold by
186 itself."))))
187
188 (define-public font-cantarell
189 (package
190 (name "font-abattis-cantarell")
191 (version "0.111")
192 (source (origin
193 (method url-fetch)
194 (uri (string-append "mirror://gnome/sources/cantarell-fonts/"
195 (version-major+minor version)
196 "/cantarell-fonts-" version ".tar.xz"))
197 (sha256
198 (base32
199 "05hpnhihwm9sxlq1qn993g03pwkmpjbn0dvnba71r1gfjv0jp2w5"))))
200 (build-system meson-build-system)
201 (native-inputs
202 `(("appstream-glib" ,appstream-glib)
203 ("gettext" ,gettext-minimal))) ;for msgfmt
204 (home-page "https://wiki.gnome.org/Projects/CantarellFonts")
205 (synopsis "Cantarell sans-serif typeface")
206 (description "The Cantarell font family is a contemporary Humanist
207 sans-serif designed for on-screen reading. It is used by GNOME@tie{}3.")
208 (license license:silofl1.1)))
209
210 (define-public font-lato
211 (package
212 (name "font-lato")
213 (version "2.015") ; also update description
214 (source (origin
215 (method url-fetch/zipbomb)
216 (uri (string-append "https://www.latofonts.com/download/Lato2OFL.zip"))
217 (sha256
218 (base32
219 "1f5540g0ja1nx3ddd3ywn77xc81ssrxpq8n3gyb9sabyq2b4xda2"))))
220 (build-system font-build-system)
221 (home-page "https://www.latofonts.com/lato-free-fonts/")
222 (synopsis "Lato sans-serif typeface")
223 (description
224 "Lato is a sanserif typeface family. It covers over 3000 glyphs per style.
225 The Lato 2.010 family supports more than 100 Latin-based languages, over
226 50 Cyrillic-based languages as well as Greek and IPA phonetics.")
227 (license license:silofl1.1)))
228
229 (define-public font-gnu-freefont-ttf
230 (package
231 (name "font-gnu-freefont-ttf")
232 (version "20120503")
233 (source (origin
234 (method url-fetch)
235 (uri (string-append "mirror://gnu/freefont/freefont-src-"
236 version ".tar.gz"))
237 (sha256
238 (base32
239 "0yk58blhcd4hm7nyincmqq4jrzjjk82wif2zmk1l3y2m4vif4qhd"))))
240 (build-system gnu-build-system)
241 (arguments
242 `(#:phases (modify-phases %standard-phases
243 (delete 'configure)
244 (replace 'install
245 (lambda _
246 (let ((doc-dir (string-append %output "/share/doc/"
247 ,name "-" ,version))
248 (font-dir (string-append %output
249 "/share/fonts/truetype")))
250 (mkdir-p doc-dir)
251 (substitute* "Makefile"
252 (("\\$\\(TMPDIR\\)") doc-dir)
253 (("sfd/\\*.ttf") ""))
254 (system* "make" "ttftar")
255 (mkdir-p font-dir)
256 (for-each (lambda (file)
257 (install-file file font-dir))
258 (filter
259 (lambda (file) (string-suffix? "ttf" file))
260 (find-files "." "")))))))
261 #:test-target "tests"))
262 ;; replace python 3 with python 2
263 ;; python 3 support commits aren't yet released in 20120503
264 ;; so freefont needs python 2 support in fontforge
265 (native-inputs `(("fontforge" ,(package (inherit fontforge)
266 (inputs `(("python-2" ,python-2)
267 ,@(package-inputs fontforge)))))))
268 (home-page "https://www.gnu.org/software/freefont/")
269 (synopsis "Unicode-encoded outline fonts")
270 (description
271 "The GNU Freefont project aims to provide a set of free outline
272 (PostScript Type0, TrueType, OpenType...) fonts covering the ISO
273 10646/Unicode UCS (Universal Character Set).")
274 (license license:gpl3+)
275 (properties '((upstream-name . "freefont")
276 (ftp-directory . "/gnu/freefont")))))
277
278 (define-public font-liberation
279 (package
280 (name "font-liberation")
281 (version "2.00.5")
282 (source
283 (origin
284 (method url-fetch)
285 (uri (string-append "https://github.com/liberationfonts/liberation-fonts/"
286 "files/2926169/liberation-fonts-ttf-" version ".tar.gz"))
287 (sha256
288 (base32 "0kdjsbf0y716k1kv0i0ixdpvg7b9b8xkcsg6favaxdc7pshg0kzi"))))
289 (build-system font-build-system)
290 (home-page "https://github.com/liberationfonts")
291 (synopsis "Fonts compatible with Arial, Times New Roman, and Courier New")
292 (description
293 "The Liberation font family aims at metric compatibility with
294 Arial, Times New Roman, and Courier New.
295 There are three sets:
296
297 @enumerate
298 @item Sans (a substitute for Arial, Albany, Helvetica, Nimbus Sans L, and
299 Bitstream Vera Sans);
300 @item Serif (a substitute for Times New Roman, Thorndale, Nimbus Roman, and
301 Bitstream Vera Serif);
302 @item Mono (a substitute for Courier New, Cumberland, Courier, Nimbus Mono L,
303 and Bitstream Vera Sans Mono).
304 @end enumerate
305
306 The Liberation Fonts are sponsored by Red Hat.")
307 (license license:silofl1.1)))
308
309 (define-public font-linuxlibertine
310 (package
311 (name "font-linuxlibertine")
312 (version "5.3.0")
313 (source (origin
314 (method url-fetch/tarbomb)
315 (uri (string-append "mirror://sourceforge/linuxlibertine/"
316 "linuxlibertine/" version
317 "/LinLibertineSRC_" version "_2012_07_02.tgz"))
318 (sha256
319 (base32
320 "0x7cz6hvhpil1rh03rax9zsfzm54bh7r4bbrq8rz673gl9h47v0v"))))
321 (build-system font-build-system)
322 (arguments
323 `(#:phases
324 (modify-phases %standard-phases
325 (add-before 'install 'build
326 (lambda _
327 (let ((compile
328 (lambda (name ext)
329 (invoke
330 "fontforge" "-lang=ff"
331 "-c" (string-append "Open('" name "');"
332 "Generate('"
333 (basename name "sfd") ext
334 "')")))))
335 (for-each (lambda (name)
336 (and (compile name "ttf")
337 (compile name "otf")))
338 (find-files "." "\\.sfd$"))
339 #t))))))
340 (native-inputs
341 `(("fontforge" ,fontforge)))
342 (home-page "http://www.linuxlibertine.org/")
343 (synopsis "Serif and sans serif typefaces")
344 (description "The Linux Libertine fonts is a set of typefaces containing
345 both a Serif version (\"Linux Libertine\") and a Sans Serif (\"Linux
346 Biolinum\") designed to be used together as an alternative for Times/Times New
347 Roman and Helvetica/Arial. The Serif typeface comes in two shapes and two
348 weights, and with a Small Capitals version of the regular typeface. Linux
349 Biolinum is available in both Regular and Bold weights.")
350 ;; The fonts are released under either of these licenses.
351 (license (list license:gpl2+ license:silofl1.1))))
352
353 (define-public font-terminus
354 (package
355 (name "font-terminus")
356 (version "4.48")
357 (source
358 (origin
359 (method url-fetch)
360 (uri (string-append "mirror://sourceforge/terminus-font/terminus-font-"
361 version "/terminus-font-" version ".tar.gz"))
362 (sha256
363 (base32 "1bwlkj39rqbyq57v5yssayav6hzv1n11b9ml2s0dpiyfsn6rqy9l"))))
364 (build-system gnu-build-system)
365 (outputs (list "out" "pcf-8bit"))
366 (arguments
367 `(#:tests? #f ; no test target in tarball
368 #:phases
369 (modify-phases %standard-phases
370 (add-after 'build 'build-more-bits
371 ;; X11 8-bit code pages aren't installed by default (they were
372 ;; until version 4.46). Build and install them separately.
373 (lambda* (#:key make-flags #:allow-other-keys)
374 (apply invoke "make" "pcf-8bit" make-flags)))
375 (add-after 'install 'install-more-bits
376 (lambda* (#:key make-flags outputs #:allow-other-keys)
377 (let ((pcf-8bit (assoc-ref outputs "pcf-8bit")))
378 (apply invoke "make" "install-pcf-8bit" (string-append "prefix="
379 pcf-8bit)
380 make-flags)))))))
381 (native-inputs
382 `(("bdftopcf" ,bdftopcf)
383 ("font-util" ,font-util)
384 ("mkfontdir" ,mkfontdir)
385 ("pkg-config" ,pkg-config)
386 ("python" ,python)))
387 (home-page "http://terminus-font.sourceforge.net/")
388 (synopsis "Simple bitmap programming font")
389 (description "Terminus Font is a clean, fixed-width bitmap font, designed
390 for long periods of working with computers (8 or more hours per day).")
391 (license license:silofl1.1)))
392
393 (define-public font-adobe-source-han-sans
394 (package
395 (name "font-adobe-source-han-sans")
396 (version "1.004")
397 (source (origin
398 (method git-fetch)
399 (uri (git-reference
400 (url "https://github.com/adobe-fonts/source-han-sans.git")
401 (commit (string-append version "R"))))
402 (file-name (git-file-name name version))
403 (sha256
404 (base32
405 "0zm884d8fp5gvirq324050kqv7am9khyqhs9kk4r4rr3jzn61jpk"))))
406 (outputs '("out" ; OpenType/CFF Collection (OTC), 121 MiB.
407 "cn" "jp" "kr" "tw")) ; Region-specific Subset OpenType/CFF.
408 (build-system trivial-build-system)
409 (arguments
410 `(#:modules ((guix build utils))
411 #:builder
412 (begin
413 (use-modules (guix build utils))
414 (let ((install-opentype-fonts
415 (lambda (fonts-dir out)
416 (copy-recursively fonts-dir
417 (string-append (assoc-ref %outputs out)
418 "/share/fonts/opentype")))))
419 (chdir (assoc-ref %build-inputs "source"))
420 (install-opentype-fonts "OTC" "out")
421 (install-opentype-fonts "SubsetOTF/CN" "cn")
422 (install-opentype-fonts "SubsetOTF/JP" "jp")
423 (install-opentype-fonts "SubsetOTF/KR" "kr")
424 (install-opentype-fonts "SubsetOTF/TW" "tw")
425 (for-each delete-file (find-files %output "\\.zip$"))
426 #t))))
427 (home-page "https://github.com/adobe-fonts/source-han-sans")
428 (synopsis "Pan-CJK fonts")
429 (description
430 "Source Han Sans is a sans serif Pan-CJK font family that is offered in
431 seven weights: ExtraLight, Light, Normal, Regular, Medium, Bold, and Heavy.
432 And in several OpenType/CFF-based deployment configurations to accommodate
433 various system requirements or limitations. As the name suggests, Pan-CJK
434 fonts are intended to support the characters necessary to render or display
435 text in Simplified Chinese, Traditional Chinese, Japanese, and Korean.")
436 (license license:silofl1.1)))
437
438 (define-public font-cns11643
439 ;; Since upstream doesn't provide any version numbers, the date of the last
440 ;; edit is used, taken from https://data.gov.tw/dataset/5961
441 ;; XXX: The source is also updated in-place, so it may be desirable to mirror
442 ;; it elsewhere to avoid suddenly losing the current source file.
443 (package
444 (name "font-cns11643")
445 (version "98.1.20180605")
446 (source (origin
447 (method url-fetch)
448 (uri "http://www.cns11643.gov.tw/AIDB/Open_Data.zip")
449 (sha256
450 (base32
451 "000a9whrjr1cd4pjc23pbl60zwkq3wcb5g61p9qi7fn3hwkp0kyw"))))
452 (build-system font-build-system)
453 (home-page "http://www.cns11643.gov.tw/AIDB/welcome.do")
454 (synopsis "CJK TrueType fonts, TW-Kai and TW-Sung")
455 (description
456 "@code{CNS 11643} character set (Chinese National Standard, or Chinese
457 Standard Interchange Code) is the standard character set of the Republic of
458 China (Taiwan) for Chinese Characters and other Unicode symbols. Contained
459 are six TrueType fonts based on two script styles, Regular script (Kai), and
460 Sung/Ming script, each with three variants:
461
462 @itemize
463 @item @code{CNS 11643} (@code{TW-Kai} and @code{TW-Sung}): Tens of thousands
464 of CJK characters from frequency tables published by the Taiwanese
465 Ministry of Education. ISO 10646 and Unicode compatible encoding.
466 @item @code{Big-5 Plus}: Several thousand frequently used CJK characters
467 encoded in the user defined area of the Big-5 code.
468 @item @code{Big-5 Extended}: A Big-5 character set based on the
469 @code{Big-5 Plus} and @code{CNS 11643} character sets.
470 @end itemize\n")
471 (license (license:non-copyleft
472 "http://data.gov.tw/license")))) ; CC-BY 4.0 compatible
473
474 (define-public font-cns11643-swjz
475 (package
476 (name "font-cns11643-swjz")
477 (version "1")
478 (source
479 (origin
480 (method url-fetch)
481 (uri "https://www.moedict.tw/fonts/truetype/cns11643/ebas927.ttf")
482 (sha256
483 (base32
484 "1qkljldbmb53zp1rcmpsb8rzy67rnsqcjxi549m9743ifk4isl78"))))
485 (build-system font-build-system)
486 (home-page
487 (string-append "http://www.cns11643.gov.tw/AIDB/download.do"
488 "?name=%E5%AD%97%E5%9E%8B%E4%B8%8B%E8%BC%89"))
489 (synopsis "TrueType seal script font")
490 (description
491 "@code{Shuowen Jiezi} is a TrueType seal script font based on the ancient
492 text of the same name published by the Executive Yuan of Taiwan. 6721 glyphs
493 are included, at Unicode compatible code points corresponding to their modern
494 variants.")
495 ;; Original text only available in Chinese. More info at
496 ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26703#11
497 (license (license:non-copyleft
498 "http://www.cns11643.gov.tw/AIDB/copyright.do"))))
499
500 (define-public font-wqy-zenhei
501 (package
502 (name "font-wqy-zenhei")
503 (version "0.9.45")
504 (source (origin
505 (method url-fetch)
506 (uri (string-append
507 "mirror://sourceforge/wqy/wqy-zenhei/" version
508 "%20%28Fighting-state%20RC1%29/wqy-zenhei-"
509 version ".tar.gz"))
510 (sha256
511 (base32
512 "1mkmxq8g2hjcglb3zajfqj20r4r88l78ymsp2xyl5yav8w3f7dz4"))))
513 (build-system font-build-system)
514 (home-page "https://wenq.org/wqy2/")
515 (synopsis "CJK font")
516 (description
517 "WenQuanYi Zen Hei is a Hei-Ti style (sans-serif type) Chinese outline
518 font. It is designed for general purpose text formatting and on-screen
519 display of Chinese characters and symbols from many other languages.
520 WenQuanYi Zen Hei provides a rather complete coverage of Chinese Hanzi glyphs,
521 including both simplified and traditional forms. The total glyph number in
522 this font is over 35,000, including over 21,000 Chinese Hanzi. This font has
523 full coverage of the GBK (CP936) charset, CJK Unified Ideographs, as well as
524 the code-points needed for zh_cn, zh_sg, zh_tw, zh_hk, zh_mo, ja (Japanese) and
525 ko (Korean) locales for @code{fontconfig}.")
526 ;; GPLv2 with font embedding exception.
527 (license license:gpl2)))
528
529 (define-public font-wqy-microhei
530 (package
531 (name "font-wqy-microhei")
532 (version "0.2.0-beta")
533 (source (origin
534 (method url-fetch)
535 (uri (string-append "mirror://sourceforge/wqy/wqy-microhei/"
536 version "/wqy-microhei-" version ".tar.gz"))
537 (sha256
538 (base32
539 "0gi1yxqph8xx869ichpzzxvx6y50wda5hi77lrpacdma4f0aq0i8"))))
540 (build-system font-build-system)
541 (home-page "http://wenq.org/wqy2/")
542 (synopsis "CJK font")
543 (description
544 "WenQuanYi Micro Hei is a Sans-Serif style (also known as Hei, Gothic or
545 Dotum among the Chinese/Japanese/Korean users) high quality CJK outline font.
546 It was derived from \"Droid Sans Fallback\" and \"Droid Sans\" released by
547 Google Inc. This font contains all the unified CJK Han glyphs in the range of
548 U+4E00-U+9FC3 defined in Unicode Standard 5.1, together with many other
549 languages unicode blocks, including Latins, Extended Latins, Hanguls and
550 Kanas. The font file is extremely compact (~4M) compared with most known CJK
551 fonts.")
552 ;; This font is licensed under Apache2.0 or GPLv3 with font embedding
553 ;; exceptions.
554 (license license:gpl3)))
555
556 (define-public font-rachana
557 (package
558 (name "font-rachana")
559 (version "7.0")
560 (source
561 (origin
562 (method url-fetch)
563 (uri (string-append
564 "https://gitlab.com/smc/rachana/repository/archive.tar.gz?ref=Version"
565 version))
566 (file-name (string-append name "-" version ".tar.gz"))
567 (sha256
568 (base32
569 "0jc091gshna6p1dd6lf507jxkgk6rsja835fc9dm71mcplq53bm1"))))
570 (build-system font-build-system)
571 (home-page "https://smc.org.in")
572 (synopsis "Malayalam font")
573 (description
574 "Rachana is a Malayalam font designed by Hussain K H. The project was
575 part of Rachana Aksharavedi for the original script of Malayalam in computing.
576 Rachana has about 1,200+ glyphs for Malayalam and contains glyphs required for
577 printing old Malayalam books without compromising the writing style.")
578 ;; This font is licensed under SIL 1.1 or GPLv3+ with font embedding
579 ;; exceptions.
580 (license (list license:silofl1.1 license:gpl3+))))
581
582 (define-public font-tex-gyre
583 (package
584 (name "font-tex-gyre")
585 (version "2.005")
586 (source
587 (origin
588 (method url-fetch/zipbomb)
589 (uri (string-append "http://www.gust.org.pl/projects/e-foundry/"
590 "tex-gyre/whole/tg-" version "otf.zip"))
591 (sha256
592 (base32
593 "0kph9l3g7jb2bpmxdbdg5zl56wacmnvdvsdn7is1gc750sqvsn31"))))
594 (build-system font-build-system)
595 (home-page "http://www.gust.org.pl/projects/e-foundry/tex-gyre/")
596 (synopsis "Remake of Ghostscript fonts")
597 (description "The TeX Gyre collection of fonts is the result of an
598 extensive remake and extension of the freely available base PostScript fonts
599 distributed with Ghostscript version 4.00. The collection contains the
600 following fonts in the OpenType format: Adventor, Bonum, Chorus, Cursor,
601 Heros, Pagella, Schola, Termes.")
602 (license license:gfl1.0)))
603
604 (define-public font-anonymous-pro
605 (package
606 (name "font-anonymous-pro")
607 (version "1.002")
608 (source (origin
609 (method url-fetch)
610 (uri (string-append
611 "https://www.marksimonson.com/assets/content/fonts/"
612 "AnonymousPro-" version ".zip"))
613 (sha256
614 (base32
615 "1asj6lykvxh46czbal7ymy2k861zlcdqpz8x3s5bbpqwlm3mhrl6"))))
616 (build-system font-build-system)
617 (home-page "https://www.marksimonson.com/fonts/view/anonymous-pro")
618 (synopsis "Fixed-width fonts designed with coding in mind")
619 (description "Anonymous Pro is a family of four fixed-width fonts designed
620 with coding in mind. Anonymous Pro features an international, Unicode-based
621 character set, with support for most Western and Central European Latin-based
622 languages, plus Greek and Cyrillic.")
623 (license license:silofl1.1)))
624
625 (define-public font-anonymous-pro-minus
626 (package
627 (inherit font-anonymous-pro)
628 (name "font-anonymous-pro-minus")
629 ;; The -Minus variant doesn't necessarily track the regular version above.
630 (version "1.003")
631 (source
632 (origin
633 (method url-fetch)
634 (uri (string-append "https://www.marksimonson.com/assets/content/fonts/"
635 "AnonymousProMinus-" version ".zip"))
636 (sha256
637 (base32 "1p2n91jja37d2cshp5pjwld9lq0v7gnpk7ywwn2blq7k46q6vq38"))))
638 (synopsis "Fixed-width fonts designed with coding in mind, without bitmaps")
639 (description "Anonymous Pro is a family of four fixed-width fonts designed
640 with coding in mind. Anonymous Pro features an international, Unicode-based
641 character set, with support for most Western and Central European Latin-based
642 languages, plus Greek and Cyrillic.
643
644 Anonymous Pro Minus is identical to Anonymous Pro, minus its embedded bitmaps
645 for use at smaller text sizes")))
646
647 (define-public font-gnu-unifont
648 (package
649 (name "font-gnu-unifont")
650 (version "12.1.04")
651 (source
652 (origin
653 (method url-fetch)
654 (uri (list
655 (string-append "http://unifoundry.com/pub/unifont/unifont-"
656 version "/unifont-" version ".tar.gz")
657 (string-append "mirror://gnu/unifont/unifont-"
658 version "/unifont-" version ".tar.gz")))
659 (sha256
660 (base32 "1h5dyhg4j8sh4qpbwnsn34igb8mfapz5b3nf4k71hq1c5z3j0mcv"))))
661 (build-system gnu-build-system)
662 (outputs '("out" ; TrueType version
663 "pcf" ; PCF (bitmap) version
664 "psf" ; PSF (console) version
665 "bin")) ; Utilities to manipulate '.hex' format
666 (arguments
667 '(#:tests? #f ; no check target
668 #:phases
669 (modify-phases %standard-phases
670 (replace
671 'configure
672 (lambda _ (setenv "CC" "gcc") #t))
673 (replace
674 'install
675 (lambda* (#:key outputs #:allow-other-keys)
676 (let* ((ttf (string-append (assoc-ref outputs "out")
677 "/share/fonts/truetype"))
678 (pcf (string-append (assoc-ref outputs "pcf")
679 "/share/fonts/misc"))
680 (psf (string-append (assoc-ref outputs "psf")
681 "/share/consolefonts"))
682 (bin (assoc-ref outputs "bin")))
683 (invoke "make"
684 (string-append "PREFIX=" bin)
685 (string-append "TTFDEST=" ttf)
686 (string-append "PCFDEST=" pcf)
687 (string-append "CONSOLEDEST=" psf)
688 "install")
689 ;; Move Texinfo file to the right place.
690 (mkdir (string-append bin "/share/info"))
691 (invoke "gzip" "-9n" "doc/unifont.info")
692 (install-file "doc/unifont.info.gz"
693 (string-append bin "/share/info"))
694 #t))))))
695 (inputs
696 `(("perl" ,perl))) ; for utilities
697 (synopsis
698 "Large bitmap font covering Unicode's Basic Multilingual Plane")
699 (description
700 "GNU Unifont is a bitmap font covering essentially all of
701 Unicode's Basic Multilingual Plane. The package also includes
702 utilities to ease adding new glyphs to the font.")
703 (home-page "http://unifoundry.com/unifont.html")
704 (properties '((upstream-name . "unifont")))
705 (license license:gpl2+)))
706
707 (define-public font-google-noto
708 (package
709 (name "font-google-noto")
710 (version "20171025")
711 (source
712 (origin
713 (method url-fetch/zipbomb)
714 (uri (string-append "https://noto-website-2.storage.googleapis.com/"
715 "pkgs/Noto-hinted.zip"))
716 (file-name (string-append name "-" version ".zip"))
717 (sha256
718 (base32 "1bp42whyin7xcgmrbnfvz3rvd98xmxaz3ywqybbjmqzwaa9llyw3"))))
719 (build-system font-build-system)
720 (home-page "https://www.google.com/get/noto/")
721 (synopsis "Fonts to cover all languages")
722 (description "Google Noto Fonts is a family of fonts designed to support
723 all languages with a consistent look and aesthetic. Its goal is to properly
724 display all Unicode symbols.")
725 (license license:silofl1.1)))
726
727 (define-public font-google-roboto
728 (package
729 (name "font-google-roboto")
730 (version "2.136")
731 (source
732 (origin
733 (method url-fetch)
734 (uri (string-append "https://github.com/google/roboto/releases/download/"
735 "v" version "/roboto-hinted.zip"))
736 (file-name (string-append name "-" version ".zip"))
737 (sha256
738 (base32
739 "0spscx08fad7i8qs7icns96iwcapniq8lwwqqvbf7bamvs8qfln4"))))
740 (build-system font-build-system)
741 (home-page "https://github.com/google/roboto")
742 (synopsis "The Roboto family of fonts")
743 (description
744 "Roboto is Google’s signature family of fonts, the default font on Android
745 and Chrome OS, and the recommended font for the
746 visual language \"Material Design\".")
747 (license license:asl2.0)))
748
749 (define-public font-un
750 (package
751 (name "font-un")
752 (version "1.0.2-080608")
753 (source (origin
754 (method url-fetch)
755 (uri (string-append
756 "https://kldp.net/unfonts/release/2607-"
757 "un-fonts-core-" version ".tar.gz"))
758 (file-name (string-append name "-" version ".tar.gz"))
759 (sha256
760 (base32
761 "13liaz2pmww3aqabm55la5npd08m1skh334ky7qfidxaz5s742iv"))))
762 (build-system font-build-system)
763 (home-page "https://kldp.net/projects/unfonts/")
764 (synopsis "Collection of Korean fonts")
765 (description
766 "Un-fonts is a family of mainly Korean fonts.
767 It contains the following fonts and styles:
768
769 @enumerate
770 @item UnBatang, UnBatangBold: serif;
771 @item UnDotum, UnDotumBold: sans-serif;
772 @item UnGraphic, UnGraphicBold: sans-serif style;
773 @item UnDinaru, UnDinaruBold, UnDinaruLight;
774 @item UnPilgi, UnPilgiBold: script;
775 @item UnGungseo: cursive, brush-stroke.
776 @end enumerate\n")
777 (license license:gpl2+)))
778
779 (define-public font-fantasque-sans
780 (package
781 (name "font-fantasque-sans")
782 (version "1.7.2")
783 (source
784 (origin
785 (method git-fetch)
786 (uri (git-reference
787 (url "https://github.com/belluzj/fantasque-sans.git")
788 (commit (string-append "v" version))))
789 (file-name (git-file-name name version))
790 (sha256
791 (base32
792 "1gjranq7qf20rfxnpxsckv1hl35nzsal0rjs475nhfbpqy5wmly6"))))
793 (build-system gnu-build-system)
794 (native-inputs
795 `(("ttfautohint" ,ttfautohint)
796 ("woff-tools" ,woff-tools)
797 ("fontforge" ,fontforge)
798 ("woff2" ,woff2)
799 ("ttf2eot" ,ttf2eot)
800 ("zip" ,zip)))
801 (arguments
802 `(#:tests? #f ;test target intended for visual inspection
803 #:phases (modify-phases %standard-phases
804 (delete 'configure) ;no configuration
805 (add-before 'build 'xrange->range
806 ;; Rather than use a python2 fontforge, just replace the
807 ;; offending function.
808 (lambda _
809 (substitute* "Scripts/fontbuilder.py"
810 (("xrange") "range"))
811 #t))
812 (replace 'install
813 ;; 'make install' wants to install to ~/.fonts, install to
814 ;; output instead. Install only the "Normal" variant.
815 (lambda* (#:key outputs #:allow-other-keys)
816 (let* ((out (assoc-ref outputs "out"))
817 (font-dir (string-append out "/share/fonts"))
818 (truetype-dir (string-append font-dir "/truetype"))
819 (opentype-dir (string-append font-dir "/opentype"))
820 (webfonts-dir (string-append font-dir "/webfonts")))
821 (with-directory-excursion "Variants/Normal"
822 (copy-recursively "OTF" opentype-dir)
823 (for-each (lambda (f) (install-file f truetype-dir))
824 (find-files "." "\\.ttf$"))
825 (copy-recursively "Webfonts" webfonts-dir)
826 #t)))))))
827 (synopsis "Font family with a monospaced variant for programmers")
828 (description
829 "Fantasque Sans Mono is a programming font designed with functionality in
830 mind. The font includes a bold version and a good italic version with new
831 glyph designs, not just an added slant.")
832 (home-page "https://fontlibrary.org/en/font/fantasque-sans-mono")
833 (license license:silofl1.1)))
834
835 (define-public font-hack
836 (package
837 (name "font-hack")
838 (version "3.003")
839 (source (origin
840 (method url-fetch/zipbomb)
841 (uri (string-append
842 "https://github.com/source-foundry/Hack/releases/download/v"
843 version "/Hack-v" version "-ttf.zip"))
844 (sha256
845 (base32
846 "1b4hh8zkrx92m2v2vfkja1napb0192p0j3laqr0m018z3dih89hc"))))
847 (build-system font-build-system)
848 (home-page "https://sourcefoundry.org/hack/")
849 (synopsis "Typeface designed for source code")
850 (description
851 "Hack is designed to be a workhorse typeface for code. It expands upon
852 the Bitstream Vera & DejaVu projects, provides over 1,500 glyphs, and includes
853 Powerline support.")
854 (license
855 ;; See https://github.com/source-foundry/Hack/issues/271 for details.
856 (list license:expat ; the Hack modifications to...
857 license:public-domain ; ...the DejaVu modifications to...
858 (license:x11-style ; ...the Bitstream Vera typeface
859 "file://LICENSE.md" "Bitstream Vera License")))))
860
861 (define-public font-adobe-source-code-pro
862 (package
863 (name "font-adobe-source-code-pro")
864 (version "2.030R-ro-1.050R-it")
865 (source (origin
866 (method url-fetch)
867 (uri (string-append
868 "https://github.com/adobe-fonts/source-code-pro/archive/"
869 (regexp-substitute/global
870 ;; The upstream tag uses "/" between the roman and italic
871 ;; versions, so substitute our "-" separator here.
872 #f "R-ro-" version 'pre "R-ro/" 'post) ".tar.gz"))
873 (file-name (string-append name "-" version ".tar.gz"))
874 (sha256
875 (base32
876 "0arhhsf3i7ss39ykn73d1j8k4n8vx7115xph6jwkd970p1cxvr54"))))
877 (build-system font-build-system)
878 (home-page "https://github.com/adobe-fonts/source-code-pro")
879 (synopsis
880 "Monospaced font family for user interface and coding environments")
881 (description
882 "Source Code Pro is a set of monospaced OpenType fonts that have been
883 designed to work well in user interface environments.")
884 (license license:silofl1.1)))
885
886 (define-public font-adobe-source-sans-pro
887 (package
888 (name "font-adobe-source-sans-pro")
889 (version "2.040R-ro-1.090R-it")
890 (source (origin
891 (method url-fetch)
892 (uri (string-append
893 "https://github.com/adobe-fonts/source-sans-pro/archive/"
894 (regexp-substitute/global
895 ;; The upstream tag uses "/" between the roman and italic
896 ;; versions, so substitute our "-" separator here.
897 #f "R-ro-" version 'pre "R-ro/" 'post) ".tar.gz"))
898 (file-name (string-append name "-" version ".tar.gz"))
899 (sha256
900 (base32
901 "1wpbhd2idps53ph8rg1mhr3vz4lsgbpjprcq10nliwcxdz9d8lv0"))))
902 (build-system font-build-system)
903 (home-page "https://github.com/adobe-fonts/source-sans-pro")
904 (synopsis
905 "Sans serif font family for user interface environments")
906 (description
907 "Source Sans Pro is a set of OpenType fonts that have been designed to
908 work well in user interface (UI) environments.")
909 (license license:silofl1.1)))
910
911 (define-public font-adobe-source-serif-pro
912 (package
913 (name "font-adobe-source-serif-pro")
914 (version "2.007R-ro-1.007R-it")
915 (source (origin
916 (method url-fetch)
917 (uri (string-append
918 "https://github.com/adobe-fonts/source-serif-pro/archive/"
919 (regexp-substitute/global
920 ;; The upstream tag uses "/" between the roman and italic
921 ;; versions, so substitute our "-" separator here.
922 #f "R-ro-" version 'pre "R-ro/" 'post) ".tar.gz"))
923 (file-name (string-append name "-" version ".tar.gz"))
924 (sha256
925 (base32
926 "1sws9k26ldqk375qsigk1zv8cq1xlvadjwvv3dqrcc3qzm1c7hwc"))))
927 (build-system font-build-system)
928 (home-page "https://github.com/adobe-fonts/source-serif-pro")
929 (synopsis
930 "Serif typeface to complement Source Sans Pro for setting text")
931 (description
932 "Source Serif Pro is a set of OpenType fonts to complement the Source
933 Sans Pro family.")
934 (license license:silofl1.1)))
935
936 (define-public font-fira-mono
937 (package
938 (name "font-fira-mono")
939 (version "3.206")
940 (source (origin
941 (method url-fetch)
942 (uri (string-append "https://carrois.com/downloads/fira_mono_3_2/"
943 "FiraMonoFonts"
944 (string-replace-substring version "." "")
945 ".zip"))
946 (sha256
947 (base32
948 "1z65x0dw5dq6rs6p9wyfrir50rlh95vgzsxr8jcd40nqazw4jhpi"))))
949 (build-system font-build-system)
950 (home-page "https://mozilla.github.io/Fira/")
951 (synopsis "Mozilla's monospace font")
952 (description "This is the typeface used by Mozilla in Firefox OS.")
953 (license license:silofl1.1)))
954
955 (define-public font-fira-sans
956 (package
957 (name "font-fira-sans")
958 (version "4.202")
959 (source (origin
960 (method git-fetch)
961 (uri (git-reference
962 (url "https://github.com/mozilla/Fira.git")
963 (commit version)))
964 (file-name (git-file-name name version))
965 (sha256
966 (base32
967 "116j26gdj5g1r124b4669372f7490vfjqw7apiwp2ggl0am5xd0w"))))
968 (build-system font-build-system)
969 (home-page "https://mozilla.github.io/Fira/")
970 (synopsis "Mozilla's Fira Sans Font")
971 (description "This is the typeface used by Mozilla in Firefox OS.")
972 (license license:silofl1.1)))
973
974 (define-public font-fira-code
975 (package
976 (name "font-fira-code")
977 (version "1.206")
978 (source (origin
979 (method url-fetch/zipbomb)
980 (uri (string-append "https://github.com/tonsky/FiraCode/releases/"
981 "download/" version
982 "/FiraCode_" version ".zip"))
983 (sha256
984 (base32
985 "02r1lcp0c9135ps71v66wdvbsrcxwirrp0blqsa1xbjkkq2rwgj3"))))
986 (build-system font-build-system)
987 (home-page "https://mozilla.github.io/Fira/")
988 (synopsis "Monospaced font with programming ligatures")
989 (description
990 "Fira Code is an extension of the Fira Mono font containing a set of ligatures
991 for common programming multi-character combinations. This is just a font rendering
992 feature: underlying code remains ASCII-compatible. This helps to read and understand
993 code faster. For some frequent sequences like .. or //, ligatures allow us to
994 correct spacing.")
995 (license license:silofl1.1)))
996
997 (define-public font-awesome
998 (package
999 (name "font-awesome")
1000 ;; XXX The build scripts of version 5 are not freely licensed and
1001 ;; so we have to stick with version 4 for now:
1002 ;; <https://bugs.gnu.org/32916>
1003 (version "4.7.0")
1004 (source (origin
1005 (method git-fetch)
1006 (uri (git-reference
1007 (url "https://github.com/FortAwesome/Font-Awesome.git")
1008 (commit (string-append "v" version))))
1009 (file-name (git-file-name name version))
1010 (sha256
1011 (base32
1012 "0w30y26jp8nvxa3iiw7ayl6rkza1rz62msl9xw3srvxya1c77grc"))))
1013 (build-system font-build-system)
1014 (arguments
1015 '(#:phases
1016 (modify-phases %standard-phases
1017 (replace 'install
1018 (lambda* (#:key outputs #:allow-other-keys)
1019 (let* ((out (assoc-ref outputs "out"))
1020 (source (string-append (getcwd) "/fonts"))
1021 (fonts (string-append out "/share/fonts")))
1022 (for-each (lambda (file)
1023 (install-file file (string-append fonts "/truetype")))
1024 (find-files source "\\.(ttf|ttc)$"))
1025 (for-each (lambda (file)
1026 (install-file file (string-append fonts "/opentype")))
1027 (find-files source "\\.(otf|otc)$"))
1028 #t))))))
1029 (home-page "https://fontawesome.com/")
1030 (synopsis "Font that contains a rich iconset")
1031 (description
1032 "Font Awesome is a full suite of pictographic icons for easy scalable
1033 vector graphics.")
1034 (license license:silofl1.1)))
1035
1036 (define-public font-tamzen
1037 (package
1038 (name "font-tamzen")
1039 (version "1.11.4")
1040 (source
1041 (origin
1042 (method git-fetch)
1043 (uri (git-reference
1044 (url "https://github.com/sunaku/tamzen-font.git")
1045 (commit (string-append "Tamzen-" version))))
1046 (file-name (git-file-name name version))
1047 (sha256
1048 (base32
1049 "17kgmvg6q32mqhx9g44hjvzv0si0mnpprga4z7na930g2zdd8846"))))
1050 (build-system trivial-build-system)
1051 (arguments
1052 `(#:modules ((guix build utils))
1053 #:builder
1054 (begin
1055 (use-modules (guix build utils))
1056
1057 (let* ((out (assoc-ref %outputs "out"))
1058 (font-dir (string-append out "/share/fonts/misc"))
1059 (psf-dir (string-append out "/share/kbd/consolefonts")))
1060 (chdir (assoc-ref %build-inputs "source"))
1061 (mkdir-p font-dir)
1062 (mkdir-p psf-dir)
1063 (for-each (lambda (pcf)
1064 (install-file pcf font-dir))
1065 (find-files "pcf" "\\.pcf$"))
1066 (for-each (lambda (psf)
1067 (install-file psf psf-dir))
1068 (find-files "psf" "\\.psf$"))
1069 #t))))
1070 (home-page "https://github.com/sunaku/tamzen-font")
1071 (synopsis "Monospaced bitmap font for console and X11")
1072 (description
1073 "Tamzen is a fork of the @code{Tamsyn} font. It is programmatically forked
1074 from @code{Tamsyn} version 1.11, backporting glyphs from older versions while
1075 deleting deliberately empty glyphs (which are marked as unimplemented) to
1076 allow secondary/fallback fonts to provide real glyphs at those codepoints.
1077
1078 The @code{TamzenForPowerline} fonts provide additional @code{Powerline} symbols,
1079 which are programmatically injected with @code{bitmap-font-patcher} and
1080 later hand-tweaked with the gbdfed(1) editor:
1081
1082 @enumerate
1083 @item all icons are expanded to occupy the maximum available space
1084 @item the branch of the fork icon ( U+E0A0) was made larger than the trunk
1085 @item for the newline icon ( U+E0A1), the @emph{N} was made larger at the bottom
1086 @item the keyhole in the padlock icon ( U+E0A2) was replaced with @emph{//} lines.
1087 @end enumerate\n")
1088 (license (license:non-copyleft "file://LICENSE"))))
1089
1090 (define-public font-comic-neue
1091 (package
1092 (name "font-comic-neue")
1093 ;; The ‘v2.3’ and ‘v2.4’ releases at https://github.com/crozynski/comicneue
1094 ;; are equivalent. The home page hosts 2.3, not 2.4, so we use that here.
1095 (version "2.3")
1096 (source (origin
1097 (method url-fetch/zipbomb)
1098 (uri (string-append
1099 "http://www.comicneue.com/comic-neue-" version ".zip"))
1100 (sha256
1101 (base32
1102 "1695hkpd8kqnr2a88p8xs496slgzxjjkzpa9aa33ml3pnh7519zk"))))
1103 (build-system font-build-system)
1104 (arguments
1105 `(#:phases
1106 (modify-phases %standard-phases
1107 ;; Delete Mac OS X specific files. If not deleted, these cause
1108 ;; several hidden files to be installed.
1109 (add-before 'install 'delete-macosx-files
1110 (lambda _
1111 (delete-file-recursively "__MACOSX")
1112 #t))
1113 (add-after 'install 'install-conf
1114 (lambda* (#:key outputs #:allow-other-keys)
1115 (let ((conf-dir (string-append (assoc-ref outputs "out")
1116 "/share/fontconfig/conf.avail")))
1117 (mkdir-p conf-dir)
1118 (call-with-output-file
1119 (string-append conf-dir "/30-comic-neue.conf")
1120 (lambda (port)
1121 (format port "<?xml version=\"1.0\"?>
1122 <!DOCTYPE fontconfig SYSTEM \"fonts.dtd\">
1123 <fontconfig>
1124 <!-- If Comic Sans is missing, use Comic Neue instead. -->
1125 <alias>
1126 <family>Comic Sans MS</family>
1127 <prefer>
1128 <family>Comic Neue</family>
1129 </prefer>
1130 </alias>
1131 </fontconfig>\n"))))
1132 #t)))))
1133 (home-page "http://www.comicneue.com/")
1134 (synopsis "Font that fixes the shortcomings of Comic Sans")
1135 (description
1136 "Comic Neue is a font that attempts to create a respectable casual
1137 typeface, by mimicking Comic Sans while fixing its most obvious shortcomings.")
1138 (license license:silofl1.1)))
1139
1140 (define-public font-iosevka
1141 (package
1142 (name "font-iosevka")
1143 ;; When updating, also update the hash of the Iosevka variant(s) below.
1144 (version "2.3.3")
1145 (source
1146 (origin
1147 (method url-fetch/zipbomb)
1148 (uri (string-append "https://github.com/be5invis/Iosevka"
1149 "/releases/download/v" version
1150 "/ttc-iosevka-" version ".zip"))
1151 (sha256
1152 (base32 "0jkv5rkg5hi0avhwyhcjiqzjslp6zjj77f09vxx2gj9l93byz731"))))
1153 (build-system font-build-system)
1154 (home-page "https://be5invis.github.io/Iosevka/")
1155 (synopsis "Coders' typeface, built from code")
1156 (description
1157 "Iosevka is a slender monospace sans-serif or slab-serif typeface inspired
1158 by Pragmata Pro, M+, and PF DIN Mono, designed to be the ideal font for
1159 programming. Iosevka is completely generated from its source code.")
1160 (license (list license:silofl1.1 ; build artifacts (i.e. the fonts)
1161 license:bsd-3)))) ; supporting code
1162
1163 (define-public font-iosevka-slab
1164 (package
1165 (inherit font-iosevka)
1166 (name "font-iosevka-slab")
1167 (version (package-version font-iosevka))
1168 (source
1169 (origin
1170 (method url-fetch/zipbomb)
1171 (uri (string-append "https://github.com/be5invis/Iosevka"
1172 "/releases/download/v" version
1173 "/ttc-iosevka-slab-" version ".zip"))
1174 (sha256
1175 (base32 "1rkmgi08kknc1fg54zpa6w92m3b3v7pc8cpwygz22kgd2h0mdrr8"))))))
1176
1177 (define-public font-go
1178 (let ((commit "f03a046406d4d7fbfd4ed29f554da8f6114049fc")
1179 (revision "1"))
1180 (package
1181 (name "font-go")
1182 (version (string-append "20170330-" revision "." (string-take commit 7)))
1183 (source (origin
1184 (file-name (string-append "go-image-" version "-checkout"))
1185 (method git-fetch)
1186 (uri (git-reference
1187 (url "https://go.googlesource.com/image")
1188 (commit commit)))
1189 (sha256
1190 (base32
1191 "1aq6mnjayks55gd9ahavk6jfydlq5lm4xm0xk4pd5sqa74p5p74d"))))
1192 (build-system font-build-system)
1193 (arguments
1194 `(#:phases
1195 (modify-phases %standard-phases
1196 (add-before 'install 'chdir
1197 (lambda _
1198 (chdir "font/gofont/ttfs")
1199 #t)))))
1200 (home-page "https://blog.golang.org/go-fonts")
1201 (synopsis "The Go font family")
1202 (description
1203 "The Go font family is a set of WGL4 TrueType fonts from the Bigelow &
1204 Holmes type foundry, released under the same license as the Go programming
1205 language. It includes a set of proportional, sans-serif fonts, and a set of
1206 monospace, slab-serif fonts.")
1207 (license license:bsd-3))))
1208
1209 (define-public font-google-material-design-icons
1210 (package
1211 (name "font-google-material-design-icons")
1212 (version "3.0.1")
1213 (source (origin
1214 (method git-fetch)
1215 (uri (git-reference
1216 (url "https://github.com/google/material-design-icons.git")
1217 (commit version)))
1218 (file-name (git-file-name name version))
1219 (sha256
1220 (base32
1221 "17q5brcqyyc8gbjdgpv38p89s60cwxjlwy2ljnrvas5cj0s62np0"))))
1222 (build-system font-build-system)
1223 (home-page "http://google.github.io/material-design-icons")
1224 (synopsis "Icon font of Google Material Design icons")
1225 (description
1226 "Material design system icons are simple, modern, friendly, and sometimes
1227 quirky. Each icon is created using our design guidelines to depict in simple
1228 and minimal forms the universal concepts used commonly throughout a UI.
1229 Ensuring readability and clarity at both large and small sizes, these icons
1230 have been optimized for beautiful display on all common platforms and display
1231 resolutions.")
1232 (license license:asl2.0)))
1233
1234 (define-public font-open-dyslexic
1235 (package
1236 (name "font-open-dyslexic")
1237 (version "20160623")
1238 (source
1239 (origin
1240 (method git-fetch)
1241 (uri (git-reference
1242 (url "https://github.com/antijingoist/open-dyslexic.git")
1243 (commit (string-append version "-Stable"))))
1244 (file-name (git-file-name name version))
1245 (sha256
1246 (base32
1247 "0nr7s92nk1kbr459154idnib977ixc70z6g9mbra3lp73nyrmyvz"))))
1248 (build-system font-build-system)
1249 (home-page "https://opendyslexic.org")
1250 (synopsis "Font for dyslexics and high readability")
1251 (description "OpenDyslexic is a font designed to help readability for some
1252 of the symptoms of dyslexia. Letters have heavy weighted bottoms to provide
1253 an indication of orientation to make it more difficult to confuse with other
1254 similar letters. Consistently weighted bottoms can also help reinforce the
1255 line of text. The unique shapes of each letter can help prevent flipping and
1256 swapping. The italic style for OpenDyslexic has been crafted to be used for
1257 emphasis while still being readable.")
1258 (license
1259 (license:fsdg-compatible
1260 "https://www.gnome.org/fonts/#Final_Bitstream_Vera_Fonts"
1261 "The Font Software may be sold as part of a larger software package but
1262 no copy of one or more of the Font Software typefaces may be sold by
1263 itself."))))
1264
1265 (define-public font-dosis
1266 (package
1267 (name "font-dosis")
1268 (version "1.7")
1269 (source
1270 (origin
1271 (method url-fetch/zipbomb)
1272 (uri (string-append "http://www.impallari.com/media/releases/dosis-"
1273 "v" version ".zip"))
1274 (sha256
1275 (base32
1276 "1qhci68f68mf87jd69vjf9qjq3wydgw1q7ivn3amjb65ls1s0c4s"))))
1277 (build-system font-build-system)
1278 (home-page "http://www.impallari.com/dosis")
1279 (synopsis "Very simple, rounded, sans serif family")
1280 (description
1281 "Dosis is a very simple, rounded, sans serif family.
1282 The lighter weights are minimalist. The bolder weights have more personality.
1283 The medium weight is nice and balanced. The overall result is a family
1284 that's clean and modern, and can express a wide range of voices & feelings.
1285 It comes in 7 incremental weights:
1286 ExtraLight, Light, Book, Medium, Semibold, Bold & ExtraBold")
1287 (license license:silofl1.1)))
1288
1289 (define-public font-culmus
1290 (package
1291 (name "font-culmus")
1292 (version "0.133")
1293 (source
1294 (origin
1295 (method url-fetch)
1296 (uri (string-append "https://sourceforge.net/projects/"
1297 "culmus/files/culmus/" version "/culmus-src-"
1298 version ".tar.gz"))
1299 (sha256
1300 (base32
1301 "02akysgsqhi15cck54xcacm16q5raf4l7shgb8fnj7xr3c1pbfyp"))))
1302 (build-system font-build-system)
1303 (arguments
1304 `(#:phases
1305 (modify-phases %standard-phases
1306 (add-before 'install 'build
1307 (lambda _
1308 (let ((compile
1309 (lambda (name ext)
1310 (invoke
1311 "fontforge" "-lang=ff"
1312 "-c" (string-append "Open('" name "');"
1313 "Generate('"
1314 (basename name "sfd") ext
1315 "')")))))
1316 ;; This part based on the fonts shipped in the non-source package.
1317 (for-each (lambda (name)
1318 (compile name "ttf"))
1319 (find-files "." "^[^Nachlieli].*\\.sfd$"))
1320 (for-each (lambda (name)
1321 (compile name "otf"))
1322 (find-files "." "^Nachlieli.*\\.sfd$"))
1323 #t))))))
1324 (native-inputs
1325 `(("fontforge" ,fontforge)))
1326 (home-page "http://culmus.sourceforge.net/")
1327 (synopsis "TrueType Hebrew Fonts for X11")
1328 (description "14 Hebrew trivial families. Contain ASCII glyphs from various
1329 sources. Those families provide a basic set of a serif (Frank Ruehl), sans
1330 serif (Nachlieli) and monospaced (Miriam Mono) trivials. Also included Miriam,
1331 Drugulin, Aharoni, David, Hadasim etc. Cantillation marks support is
1332 available in Keter YG.")
1333 (license license:gpl2))) ; consult the LICENSE file included
1334
1335 (define-public font-lohit
1336 (package
1337 (name "font-lohit")
1338 (version "20140220")
1339 (source
1340 (origin
1341 (method url-fetch)
1342 (uri (string-append "https://releases.pagure.org/lohit/lohit-ttf-"
1343 version ".tar.gz"))
1344 (sha256
1345 (base32
1346 "1rmgr445hw1n851ywy28csfvswz1i6hnc8mzp88qw2xk9j4dn32d"))))
1347 (build-system font-build-system)
1348 (home-page "https://pagure.io/lohit")
1349 (synopsis "Lohit TrueType Indic fonts")
1350 (description "Lohit is a font family designed to cover Indic scripts.
1351 Lohit supports the Assamese, Bengali, Devanagari (Hindi, Kashmiri, Konkani,
1352 Maithili, Marathi, Nepali, Sindhi, Santali, Bodo, Dogri languages), Gujarati,
1353 Kannada, Malayalam, Manipuri, Oriya, Punjabi, Tamil and Telugu scripts.")
1354 (license license:silofl1.1)))
1355
1356 (define-public font-blackfoundry-inria
1357 (package
1358 (name "font-blackfoundry-inria")
1359 (version "1.200")
1360 (home-page "https://github.com/BlackFoundry/InriaFonts")
1361 (source (origin
1362 (method git-fetch)
1363 (uri (git-reference
1364 (url home-page)
1365 (commit (string-append "v" version))))
1366 (sha256
1367 (base32
1368 "06775y99lyh6hj5hzvrx56iybdck8a8xfqkipqd5c4cldg0a9hh8"))
1369 (file-name (string-append name "-" version "-checkout"))))
1370 ;; XXX: There are .ufo directories (the "source") so in theory we should
1371 ;; be able to rebuild TTF and OTF files with FontForge. Unfortunately a
1372 ;; command like:
1373 ;;
1374 ;; fontforge -lang=ff -c "Open('InriaSans-Regular.ufo'); Generate('foo.ttf');"
1375 ;;
1376 ;; segfaults in '_UFOLoadGlyph', which calls out to libpython. :-/
1377 ;; In the meantime we ship the precompiled OTF and TTF files.
1378 (build-system font-build-system)
1379 (synopsis "Inria Sans and Inria Serif type family")
1380 (description
1381 "Inria Sans and Inria Serif are the two members of a type family designed
1382 for Inria, a public research institute in computer science and mathematics.")
1383 (license license:silofl1.1)))
1384
1385 (define-public font-sil-gentium
1386 (package
1387 (name "font-sil-gentium")
1388 (version "5.000")
1389 (source (origin
1390 (method url-fetch)
1391 (uri (string-append
1392 "https://software.sil.org/downloads/r/gentium/GentiumPlus-"
1393 version ".zip"))
1394 (sha256
1395 (base32
1396 "0m7189870hha217n1vgpmf89mwggrxkh679ffi1lxpnjggqi2n9k"))))
1397 ;; Note: The zip file provides TTF files only, but the developer release,
1398 ;; which contains additional files, has a 'SOURCES.txt' file that says
1399 ;; that "the primary source files for the fonts are the fonts themselves".
1400 ;; Thus it looks like the TTF can be considered source.
1401 (build-system font-build-system)
1402 (synopsis "Serif font for the Cyrillic, Greek, and Latin alphabets")
1403 (description
1404 "Gentium is a typeface family designed to enable the diverse ethnic
1405 groups around the world who use the Latin, Cyrillic and Greek scripts to
1406 produce readable, high-quality publications. The font comes with regular and
1407 italics shapes. This package provides only TrueType files (TTF).")
1408 (home-page "https://software.sil.org/gentium/")
1409 (license license:silofl1.1)))
1410
1411 (define-public font-sil-andika
1412 (package
1413 (name "font-sil-andika")
1414 (version "5.000")
1415 (source (origin
1416 (method url-fetch)
1417 (uri (string-append
1418 "https://software.sil.org/downloads/r/andika/Andika-"
1419 version ".zip"))
1420 (sha256
1421 (base32
1422 "01zm7p32gxfwmv7h3cfj2vx59846w2y6rxqy67grn2dyjh8pljv0"))))
1423 ;; As for Gentium (see above), the TTF files are considered source.
1424 (build-system font-build-system)
1425 (synopsis "Sans serif font designed especially for literacy use")
1426 (description
1427 "Andika SIL is a sans serif, Unicode-compliant font designed especially
1428 for literacy use, taking into account the needs of beginning readers. The
1429 focus is on clear, easy-to-perceive letterforms that will not be readily
1430 confused with one another. This package provides only TrueType files (TTF).")
1431 (home-page "https://software.sil.org/andika/")
1432 (license license:silofl1.1)))
1433
1434 (define-public font-sil-charis
1435 (package
1436 (name "font-sil-charis")
1437 (version "5.000")
1438 (source (origin
1439 (method url-fetch)
1440 (uri (string-append
1441 "https://software.sil.org/downloads/r/charis/CharisSIL-"
1442 version ".zip"))
1443 (sha256
1444 (base32
1445 "1zcvw37f1a7gkml3yfm6hxh93844llm7xj4w52600qq3ndrm8gjy"))))
1446 ;; As for Gentium (see above), the TTF files are considered source.
1447 (build-system font-build-system)
1448 (synopsis "Serif font for the Cyrillic and Latin alphabets")
1449 (description
1450 "Charis SIL is a Unicode-based font family that supports the wide range
1451 of languages that use the Latin and Cyrillic scripts. It is specially
1452 designed to make long texts pleasant and easy to read, even in less than ideal
1453 reproduction and display environments. This package provides only TrueType
1454 files (TTF).")
1455 (home-page "https://software.sil.org/charis/")
1456 (license license:silofl1.1)))
1457
1458 (define-public font-mononoki
1459 (package
1460 (name "font-mononoki")
1461 (version "1.2")
1462 (source (origin
1463 (method git-fetch)
1464 (uri (git-reference
1465 (url "https://github.com/madmalik/mononoki/")
1466 (commit version)))
1467 (sha256
1468 (base32
1469 "1rkzyxn30rn8qv2h2xz324j7q15hzg2lci8790a7cdl1dfgic4xi"))
1470 (file-name (git-file-name name version))))
1471 (build-system font-build-system)
1472 (synopsis "Font for programming and code review")
1473 (description
1474 "Mononoki is a typeface by Matthias Tellen, created to enhance code
1475 formatting.")
1476 (home-page "https://madmalik.github.io/mononoki/")
1477 (license license:silofl1.1)))
1478
1479 (define-public font-public-sans
1480 (package
1481 (name "font-public-sans")
1482 (version "1.0.0")
1483 (source (origin
1484 (method git-fetch)
1485 (uri (git-reference
1486 (url "https://github.com/uswds/public-sans.git")
1487 (commit (string-append "v" version))))
1488 (file-name (git-file-name name version))
1489 (sha256
1490 (base32
1491 "12ccj7ph3pg962d52d3slbvd44gwfm6bb2846dxyf1xc5h2iwhdv"))
1492 (modules '((guix build utils)))
1493 (snippet
1494 '(begin
1495 ;; remove versions of predecessor font
1496 (delete-file-recursively "fonts/_archive")
1497 #t))))
1498 (build-system font-build-system)
1499 (home-page "https://public-sans.digital.gov/")
1500 (synopsis "Neutral typeface for interfaces, text, and headings")
1501 (description
1502 "Public Sans is a strong, neutral, sans-serif typeface for text or
1503 display based on Libre Franklin.")
1504 (license license:silofl1.1)))
1505
1506 (define-public font-hermit
1507 (package
1508 (name "font-hermit")
1509 (version "2.0")
1510 (source (origin
1511 (method url-fetch/tarbomb)
1512 (uri (string-append "https://pcaro.es/d/otf-hermit-" version
1513 ".tar.gz"))
1514 (sha256
1515 (base32
1516 "09rmy3sbf1j1hr8zidighjgqc8kp0wsra115y27vrnlf10ml6jy0"))))
1517 (build-system font-build-system)
1518 (arguments
1519 `(#:tests? #f))
1520 (home-page "https://pcaro.es/p/hermit/")
1521 (synopsis "Monospace font")
1522 (description
1523 "Hermit is a monospace font designed to be clear, pragmatic and very
1524 readable. Its creation has been focused on programming. Every glyph was
1525 carefully planned and calculated, according to defined principles and rules.
1526 For this reason, Hermit is coherent and regular.
1527
1528 Symbols stand out from common text. Dots and commas are easily seen, and
1529 operators are clear even when not surrounded by spaces. Similar characters
1530 have been designed to be very distinguishable from each other.")
1531 (license license:silofl1.1)))
1532
1533 (define-public font-dseg
1534 (package
1535 (name "font-dseg")
1536 (version "0.45")
1537 (source
1538 (origin
1539 (method url-fetch/zipbomb)
1540 (uri
1541 (string-append "https://github.com/keshikan/DSEG/"
1542 "releases/download/v" version
1543 "/fonts-DSEG_v"
1544 (string-concatenate (string-split version #\.))
1545 ".zip"))
1546 (sha256
1547 (base32
1548 "0v8sghh4vl286faf8pvi74znz07pyf0qii8z4wjllisqwc35sx72"))))
1549 (build-system font-build-system)
1550 (arguments
1551 `(#:phases
1552 (modify-phases %standard-phases
1553 (replace 'install
1554 (lambda* (#:key outputs #:allow-other-keys)
1555 (let* ((out (assoc-ref outputs "out"))
1556 (font-dir (string-append out "/share/fonts"))
1557 (truetype-dir (string-append font-dir "/truetype")))
1558 (with-directory-excursion
1559 (string-append "fonts-DSEG_v"
1560 (apply string-append (string-split ,version
1561 #\.)))
1562 (for-each (lambda (f) (install-file f truetype-dir))
1563 (find-files "." "\\.ttf$"))
1564 #t)))))))
1565 (home-page "https://www.keshikan.net/fonts-e.html")
1566 (synopsis "DSEG: 7-segment and 14-segment fonts")
1567 (description
1568 "DSEG is a font family that imitates seven- and fourteen-segment LCD
1569 displays (7SEG, 14SEG). DSEG includes the roman alphabet and symbol glyphs.
1570 This package provides the TrueType fonts.")
1571 (license license:silofl1.1)))