gnu: Add python-pyshp.
[jackhill/guix/guix.git] / gnu / packages / fonts.scm
index 891a7dd..a1d7abd 100644 (file)
@@ -11,7 +11,7 @@
 ;;; Copyright © 2016 Jookia <166291@gmail.com>
 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016 Dmitry Nikolaev <cameltheman@gmail.com>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2016 Toni Reina <areina@riseup.net>
 ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -39,6 +39,9 @@
 ;;; Copyright © 2020 Tim Van den Langenbergh <tmt_vdl@gmx.com>
 ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;; Copyright © 2021 Antoine Côté <antoine.cote@posteo.net>
+;;; Copyright © 2021 Sergiu Ivanov <sivanov@colimite.fr>
+;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
+;;; Copyright © 2021 Paul A. Patience <paul@apatience.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -82,7 +85,7 @@
 (define-public font-ibm-plex
   (package
     (name "font-ibm-plex")
-    (version "4.0.2")
+    (version "5.1.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -90,7 +93,7 @@
                     "v" version "/OpenType.zip"))
               (sha256
                (base32
-                "17bd84ic7z9hkcjy4bwnh4z51bnkh2vrjzwvs9g6lwzmxjswa5b6"))))
+                "0zlz8kxx54i4hpgaip9690bilvn5w14gp7jjkk6cz4h9p3xml231"))))
     (build-system font-build-system)
     (home-page "https://github.com/IBM/plex")
     (synopsis "IBM Plex typeface")
@@ -118,30 +121,6 @@ well as other mediums.")
 in print.  With attention to detail for high resolution rendering.")
     (license license:silofl1.1)))
 
-(define-public font-ubuntu
-  (package
-    (name "font-ubuntu")
-    (version "0.83")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://salsa.debian.org/fonts-team/fonts-ubuntu")
-                    (commit (string-append "upstream/" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1d2xrjpxy70f3nsgqiggwv6pj06qglf5vj2847pqx60w3ygi903g"))))
-    (build-system font-build-system)
-    (home-page "http://font.ubuntu.com/")
-    (synopsis "The Ubuntu Font Family")
-    (description "The Ubuntu Font Family is a unique, custom designed font
-that has a very distinctive look and feel.  This package provides the
-TrueType (TTF) files.")
-    (license
-     (license:non-copyleft
-      "http://font.ubuntu.com/ufl/ubuntu-font-licence-1.0.txt"
-      "Ubuntu Font License v1.0"))))
-
 (define-public font-dejavu
   (package
     (name "font-dejavu")
@@ -199,10 +178,29 @@ package provides the TrueType (TTF) files.")
 no copy of one or more of the Font Software typefaces may be sold by
 itself."))))
 
+(define-public font-canada1500
+  (package
+    (name "font-canada1500")
+    (version "1.101")
+    (source (origin
+              (method url-fetch)
+              (uri "https://typodermicfonts.com/wp-content/uploads/2017/06/canada1500.zip")
+              (sha256
+               (base32
+                "052rwhyfcz6q0g0nsr21bkbg2qb6sw7wzins5hv80qhdhi77sdaj"))))
+    (build-system font-build-system)
+    (home-page "https://typodermicfonts.com/canada1500/")
+    (synopsis "Canadian typeface that supports English, French and Aboriginal languages")
+    (description "Canada1500 is a display typeface originally created for the
+Canadian sesquicentennial with four weights, italics and space symbols which
+includes lining and old-style numerals, tabular and proportional.  Greek,
+Cyrillic, Canadian Syllabics and most Latin based languages are supported.")
+    (license license:cc0)))
+
 (define-public font-cantarell
   (package
     (name "font-abattis-cantarell")
-    (version "0.201")
+    (version "0.301")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/cantarell-fonts/"
@@ -210,7 +208,7 @@ itself."))))
                                   "/cantarell-fonts-" version ".tar.xz"))
               (sha256
                (base32
-                "0qwqmkczqy09fdj8l11nr841ks0dwsydqg55qyms12m4yvjn87xn"))))
+                "10sycxscs9kzl451mhygyj2qj8qlny8pamskb86np7izq05dnd9x"))))
     (build-system meson-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)))   ; for msgfmt
@@ -315,14 +313,15 @@ The Lato 2.010 family supports more than 100 Latin-based languages, over
 (define-public font-liberation
   (package
     (name "font-liberation")
-    (version "2.1.2")
+    (version "2.1.4")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://github.com/liberationfonts/liberation-fonts/"
-                           "files/5722233/liberation-fonts-ttf-" version ".tar.gz"))
+       (uri (string-append
+             "https://github.com/liberationfonts/liberation-fonts/"
+             "files/6418984/liberation-fonts-ttf-" version ".tar.gz"))
        (sha256
-        (base32 "1q7qx9bpn1gqjh1zbb8n9fkzwz8skn41hyy61186g4c3y8q4js8l"))))
+        (base32 "1vx5q5bif9d1cn5pvm78203sf4may2mch72aa1hx1a8avl959y16"))))
     (build-system font-build-system)
     (home-page "https://github.com/liberationfonts")
     (synopsis "Fonts compatible with Arial, Times New Roman, and Courier New")
@@ -338,9 +337,7 @@ Bitstream Vera Sans);
 Bitstream Vera Serif);
 @item Mono (a substitute for Courier New, Cumberland, Courier, Nimbus Mono L,
 and Bitstream Vera Sans Mono).
-@end enumerate
-
-The Liberation Fonts are sponsored by Red Hat.")
+@end enumerate\n")
     (license license:silofl1.1)))
 
 (define-public font-linuxlibertine
@@ -390,7 +387,7 @@ Biolinum is available in both Regular and Bold weights.")
 (define-public font-libertinus
   (package
     (name "font-libertinus")
-    (version "6.12")
+    (version "7.040")
     (source
      (origin
        (method url-fetch)
@@ -398,7 +395,7 @@ Biolinum is available in both Regular and Bold weights.")
                            "/download/v" version "/libertinus-" version
                            ".zip"))
        (sha256
-        (base32 "06pcsd5pijjid7xjxak35jla089krm5hqnbglv8ldncq475q7kb2"))))
+        (base32 "1xkj993hwkr49q63dd2dnkvdkm9sckxm3zjwhdxsxn21fi80ikic"))))
     (build-system font-build-system)
     (home-page "https://github.com/alerque/libertinus")
     (synopsis "Font family based on Linux Libertine")
@@ -419,16 +416,17 @@ The unified Libertinus family consists of:
 (define-public font-terminus
   (package
     (name "font-terminus")
-    (version "4.48")
+    (version "4.49.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/terminus-font/terminus-font-"
-                           version "/terminus-font-" version ".tar.gz"))
+                           (version-major+minor version)
+                           "/terminus-font-" version ".tar.gz"))
        (sha256
-        (base32 "1bwlkj39rqbyq57v5yssayav6hzv1n11b9ml2s0dpiyfsn6rqy9l"))))
+        (base32 "0yggffiplk22lgqklfmd2c0rw8gwchynjh5kz4bz8yv2h6vw2qfr"))))
     (build-system gnu-build-system)
-    (outputs (list "out" "pcf-8bit"))
+    (outputs (list "out" "pcf-8bit" "otb"))
     (arguments
      `(#:tests? #f                      ; no test target in tarball
        #:phases
@@ -443,6 +441,15 @@ The unified Libertinus family consists of:
              (let ((pcf-8bit (assoc-ref outputs "pcf-8bit")))
                (apply invoke "make" "install-pcf-8bit" (string-append "prefix="
                                                                       pcf-8bit)
+                      make-flags))))
+         (add-after 'build-more-bits 'build-otb
+           ;; Build Open Type Bitmap
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke "make" "otb" make-flags)))
+         (add-after 'install 'install-otb
+           (lambda* (#:key make-flags outputs #:allow-other-keys)
+             (let ((otb (assoc-ref outputs "otb")))
+               (apply invoke "make" "install-otb" (string-append "prefix=" otb)
                       make-flags)))))))
     (native-inputs
      `(("bdftopcf" ,bdftopcf)
@@ -712,7 +719,7 @@ for use at smaller text sizes")))
 (define-public font-gnu-unifont
   (package
     (name "font-gnu-unifont")
-    (version "13.0.05")
+    (version "13.0.06")
     (source
      (origin
        (method url-fetch)
@@ -722,7 +729,7 @@ for use at smaller text sizes")))
              (string-append "mirror://gnu/unifont/unifont-"
                             version "/unifont-" version ".tar.gz")))
        (sha256
-        (base32 "0kkgagnyhl92pwgnvf1vjrc1ql8lk5khb125sz18ck8vnxk4i3pr"))))
+        (base32 "09g91g0gv76sadslp70m5xwfk3jf8kh7rpk2pz3l2hpldnjggpk8"))))
     (build-system gnu-build-system)
     (outputs '("out"   ; TrueType version
                "pcf"   ; PCF (bitmap) version
@@ -811,6 +818,27 @@ and Chrome OS, and the recommended font for the
 visual language \"Material Design\".")
     (license license:asl2.0)))
 
+(define-public font-borg-sans-mono
+  (package
+    (name "font-borg-sans-mono")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/charje/borg-sans-mono"
+             "/releases/download/v" version "/borg-sans-mono.zip"))
+       (sha256
+        (base32
+         "1xxakd9nfb8wz76rh0gbd69gh0mlqs2453g0j516xgxn8bxip2yj"))))
+    (build-system font-build-system)
+    (home-page "https://github.com/charje/borg-sans-mono")
+    (synopsis "The Borg Sans Mono font")
+    (description "Borg Sans Mono is a monospaced font derived from Droid Sans
+Mono.  It includes additions commonly found in programming fonts such as a
+slashed zero and ligatures for operators.")
+    (license license:asl2.0)))
+
 (define-public font-un
   (package
     (name "font-un")
@@ -1216,11 +1244,55 @@ later hand-tweaked with the gbdfed(1) editor:
 typeface, by mimicking Comic Sans while fixing its most obvious shortcomings.")
     (license license:silofl1.1)))
 
+;; When updating the version (and hash) of font-iosevka, also update the hash
+;; of the Iosevka variants further below.
+;; The following script downloads all Iosevka variants to the store and prints
+;; their hash at the end.
+#|
+guix repl <<EOF
+(use-modules (guix base32)
+             (guix download)
+             (guix packages)
+             (guix store)
+             (gcrypt hash)
+             (ice-9 string-fun)
+             (gnu packages fonts))
+
+(let ((new-version "7.0.3")
+      (iosevka-hashes #nil)
+      (iosevka-fails #nil))
+  (for-each (lambda (font)
+              (let ((file (download-to-store (open-connection)
+                                             (string-replace-substring
+                                              (origin-uri (package-source font))
+                                              (package-version font)
+                                              new-version))))
+                (if file
+                    (set! iosevka-hashes
+                          (acons file (bytevector->nix-base32-string
+                                       (file-sha256 file))
+                                 iosevka-hashes))
+                    (set! iosevka-fails (cons font iosevka-fails)))))
+            (list font-iosevka
+                  font-iosevka-slab
+                  font-iosevka-term
+                  font-iosevka-term-slab
+                  font-iosevka-aile
+                  font-iosevka-curly
+                  font-iosevka-curly-slab
+                  font-iosevka-etoile))
+  (for-each (lambda (hash)
+              (format #t "~a: ~a~%" (car hash) (cdr hash)))
+            iosevka-hashes)
+  (for-each (lambda (fail)
+              (format #t "~a: failed to download latest version~%" fail))
+            iosevka-fails))
+EOF
+|#
 (define-public font-iosevka
   (package
     (name "font-iosevka")
-    ;; When updating, also update the hash of the Iosevka variant(s) below.
-    (version "4.0.3")
+    (version "7.0.3")
     (source
      (origin
        (method url-fetch/zipbomb)
@@ -1228,7 +1300,7 @@ typeface, by mimicking Comic Sans while fixing its most obvious shortcomings.")
                            "/releases/download/v" version
                            "/ttc-iosevka-" version ".zip"))
        (sha256
-        (base32 "1xc45rs09aj899wz9ghyizq6ddbgxpkqq5bl1jc89hls5laf7qjb"))))
+        (base32 "08n1c2j38vd1qrf18ilgvq6rl7z9yrsyq9ljf037yiw6zlphx4da"))))
     (build-system font-build-system)
     (home-page "https://be5invis.github.io/Iosevka/")
     (synopsis "Coders' typeface, built from code")
@@ -1236,8 +1308,8 @@ typeface, by mimicking Comic Sans while fixing its most obvious shortcomings.")
      "Iosevka is a slender monospace sans-serif or slab-serif typeface inspired
 by Pragmata Pro, M+, and PF DIN Mono, designed to be the ideal font for
 programming.  Iosevka is completely generated from its source code.")
-    (license (list license:silofl1.1 ; build artifacts (i.e. the fonts)
-                   license:bsd-3)))) supporting code
+    (license (list license:silofl1.1    ;build artifacts (i.e., the fonts)
+                   license:bsd-3))))    ;supporting code
 
 (define-public font-iosevka-slab
   (package
@@ -1251,7 +1323,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "/releases/download/v" version
                            "/ttc-iosevka-slab-" version ".zip"))
        (sha256
-        (base32 "0qpfzyi050zca0bwhb460nvcaarij4srhify0rb8sf9ygpzyvnjh"))))))
+        (base32 "1ggrbl8gi2hv8yiw7vw8cajlv7nkz8i975165cayyzppjlrfs3nr"))))))
 
 (define-public font-iosevka-term
   (package
@@ -1265,7 +1337,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "/releases/download/v" version
                            "/ttf-iosevka-term-" version ".zip"))
        (sha256
-        (base32 "092ygzv24wbi8cjjsmq0jkxdf4cm7wqlfj7jkn0cip7nlbyskl3h"))))
+        (base32 "1jmbp3hni99l92653b356nbmj45kd54kbl6c6ws1k5jxydrjglrh"))))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1286,7 +1358,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "releases/download/v" version "/"
                            "ttf-iosevka-term-slab-" version ".zip"))
        (sha256
-        (base32 "157kdxrxz981ympd2iww66v50vm2cxd7z98vvb36rii94hf30k7x"))))
+        (base32 "19fc6jbkv0aif6ds9ddxaarz2ambzln7y6k2qjsczwlbznr8cf09"))))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1307,7 +1379,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "/releases/download/v" version
                            "/ttc-iosevka-aile-" version ".zip"))
        (sha256
-        (base32 "0n52lfn7awc28a4f5yh4my8q4ikzza705kp69chfw9jm2xx79npc"))))))
+        (base32 "1bkrk4dqkj45fbaac2n61a5kwxs3bk6sdm5hanw7g2h4xb83fi8d"))))))
 
 (define-public font-iosevka-curly
   (package
@@ -1321,7 +1393,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "releases/download/v" version  "/"
                            "ttc-iosevka-curly-" version ".zip"))
        (sha256
-        (base32 "0m51r0bc25khllq8nsfgsldhwfs7kzl8kqasivjlm14mpv5080fn"))))))
+        (base32 "12jdb38dlbwa58q0b0sf9sp1dcafzp9dcf71jf1wrlnn8047vxyx"))))))
 
 (define-public font-iosevka-curly-slab
   (package
@@ -1335,7 +1407,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "releases/download/v" version  "/"
                            "ttc-iosevka-curly-slab-" version ".zip"))
        (sha256
-        (base32 "0ffiz2kg43kc2dxv48sjji33ra3kc6sy8vlard93c601fqjmrjws"))))))
+        (base32 "0zn21bxyj0ni4vbdarwam2piixzvkdk769vg3k4fl3h03q56cj24"))))))
 
 (define-public font-iosevka-etoile
   (package
@@ -1349,26 +1421,12 @@ programming.  Iosevka is completely generated from its source code.")
                            "/releases/download/v" version
                            "/ttc-iosevka-etoile-" version ".zip"))
        (sha256
-        (base32 "1fj8g7sjp9idjh14iqk4wsz3rdarlmq7amcdsr0dznwyivx8a9wx"))))))
-
-(define-public font-iosevka-sparkle
-  (package
-    (inherit font-iosevka)
-    (name "font-iosevka-sparkle")
-    (version (package-version font-iosevka))
-    (source
-     (origin
-       (method url-fetch/zipbomb)
-       (uri (string-append "https://github.com/be5invis/Iosevka"
-                           "/releases/download/v" version
-                           "/ttc-iosevka-sparkle-" version ".zip"))
-       (sha256
-        (base32 "00dw894930xdikai8bcaimp0a3720diwi0r7ii52jwl4d70w53dx"))))))
+        (base32 "0lnpdvv20g2bg6rwl0gv83bkbgfmkbyfxshhpw9vprfs2g8k6lil"))))))
 
 (define-public font-sarasa-gothic
   (package
     (name "font-sarasa-gothic")
-    (version "0.12.7")
+    (version "0.31.2")
     (source
      (origin
        (method url-fetch)
@@ -1376,7 +1434,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "/releases/download/v" version
                            "/sarasa-gothic-ttc-" version ".7z"))
        (sha256
-        (base32 "09v65k00g8m953s6riz9xjzb2jgr6v5pdhcllalzzl7c1cn2xl3k"))))
+        (base32 "0p67qyhm266s6q17islqvwch807fy5slgp2symrl0z665vp6hycj"))))
     (build-system font-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -1737,7 +1795,7 @@ files (TTF).")
 (define-public font-mononoki
   (package
     (name "font-mononoki")
-    (version "1.2")
+    (version "1.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1745,9 +1803,15 @@ files (TTF).")
                     (commit version)))
               (sha256
                (base32
-                "1rkzyxn30rn8qv2h2xz324j7q15hzg2lci8790a7cdl1dfgic4xi"))
+                "07gh84iw84g8fha3gx4yjyl1rsksqhy2kk38f01m048sgjp6ww5j"))
               (file-name (git-file-name name version))))
     (build-system font-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'make-files-writable
+           (lambda _
+             (for-each make-file-writable (find-files ".")))))))
     (synopsis "Font for programming and code review")
     (description
      "Mononoki is a typeface by Matthias Tellen, created to enhance code
@@ -1806,7 +1870,7 @@ have been designed to be very distinguishable from each other.")
 (define-public font-dseg
   (package
     (name "font-dseg")
-    (version "0.45")
+    (version "0.46")
     (source
       (origin
         (method url-fetch/zipbomb)
@@ -1817,8 +1881,7 @@ have been designed to be very distinguishable from each other.")
                          (string-concatenate (string-split version #\.))
                          ".zip"))
         (sha256
-          (base32
-            "0v8sghh4vl286faf8pvi74znz07pyf0qii8z4wjllisqwc35sx72"))))
+          (base32 "13133kpa1ndsji9yq5ppkds5yq2y094qvrv2f83ah74p40sz9hm6"))))
     (build-system font-build-system)
     (arguments
      `(#:phases
@@ -1947,6 +2010,26 @@ always uses Farsi digits, and does not include Latin glyphs from Roboto.
             "file://LICENSE" "Bitstream Vera License")
            license:asl2.0))))           ; Latin glyphs from Roboto
 
+(define-public font-victor-mono
+  (package
+   (name "font-victor-mono")
+   (version "1.4.2")
+   (source (origin
+            (method url-fetch/zipbomb)
+            (uri (string-append
+                       "https://github.com/rubjo/victor-mono/raw/v"
+                       version
+                       "/public/VictorMonoAll.zip"))
+            (sha256 "01260vja0d22mcvkzspf0xnl7b851r0265arqkm12q1vagzyxvkm")))
+   (build-system font-build-system)
+   (synopsis "Font with support for italics and ligatures")
+   (description "Victor Mono is an open-source monospaced font with
+optional semi-connected cursive italics and programming symbol ligatures.
+This package provides only TrueType files (TTF).
+It comes in seven weights and Roman, Italic and Oblique styles.")
+   (home-page "https://rubjo.github.io/victor-mono/")
+   (license license:expat)))
+
 (define-public font-meera-inimai
   (package
     (name "font-meera-inimai")
@@ -2133,3 +2216,54 @@ suitable for a wide range of uses.")
     (description "Cozette is a 6x13px (bounding box) bitmap font based on Dina
 and heavily inspired by Creep.")
     (license license:expat)))
+
+(define-public font-montserrat
+  (package
+    (name "font-montserrat")
+    (version "7.210")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/JulietaUla/Montserrat")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0jn1yvfamq5xazw85sfnxgriji60g7mkss9mkf8d0117vdk838bn"))))
+    (build-system font-build-system)
+    (home-page "https://github.com/JulietaUla/Montserrat")
+    (synopsis "The Montserrat font")
+    (description "The old posters and signs in the traditional Montserrat
+neighborhood of Buenos Aires inspired Julieta Ulanovsky to design this
+typeface and rescue the beauty of urban typography that emerged in the first
+half of the twentieth century.")
+    (license license:silofl1.1)))
+
+(define-public font-overpass
+  (package
+    (name "font-overpass")
+    (version "3.0.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/RedHatOfficial/Overpass")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1pl7zpwlx0j2xv23ahnpmbb4a5d6ib2cjck5mxqzi3jjk25rk9kb"))))
+    (build-system font-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'delete-webfonts
+           (lambda _
+             (delete-file-recursively "webfonts"))))))
+    (home-page "https://overpassfont.org")
+    (synopsis "Sans serif font family inspired by Highway Gothic")
+    (description
+     "Overpass is a sans-serif typeface based on the U.S. interstate highway
+road signage typefaces, adapted for on-screen display and user interfaces.
+Overpass includes proportional and monospace variants.")
+    (license (list license:silofl1.1
+                   license:lgpl2.1))))