gnu: Add font-apl2741-unicode.
[jackhill/guix/guix.git] / gnu / packages / apl.scm
index e483876..6a8d978 100644 (file)
@@ -3,6 +3,7 @@
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
+;;; Copyright © 2023 B. Wilson <elaexuotee@wilsonb.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,6 +27,8 @@
   #:use-module (guix gexp)
   #:use-module (guix packages)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system trivial)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages pcre)
        "GNU APL is a free interpreter for the programming language APL.  It is
 an implementation of the ISO standard 13751.")
       (license license:gpl3+))))
+
+(define-public font-apl2741-unicode
+  (let ((commit "1e11efae38e5095bfe49a786b111d563e83dad03"))
+    (package
+      (name "font-apl2741-unicode")
+      (version "1668049300")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/abrudz/APL2741.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0i1yk1x99lr2swlbq9r7dny5w70zwiwi8lpfcw4n7k7pfbw0xh7y"))))
+      (build-system trivial-build-system)
+      (native-inputs (list fontforge))
+      (arguments
+       `(#:modules ((guix build utils))
+         #:builder
+         (begin
+           (use-modules (guix build utils))
+           (let* ((source (assoc-ref %build-inputs "source"))
+                  (out (assoc-ref %outputs "out"))
+                  (dest (string-append out "/share/fonts/truetype"))
+                  (fontforge (string-append
+                              (assoc-ref %build-inputs "fontforge")
+                              "/bin/fontforge")))
+             (mkdir-p dest)
+             (invoke fontforge "-lang=ff" "-c" "Open($1); Generate($2)"
+                     (string-append source "/APL2741.sfd")
+                     (string-append dest "/APL2741.ttf"))))))
+      (synopsis "APL2741 Unicode font")
+      (home-page "https://abrudz.github.io/APL2741/")
+      (description "APL font based on Adrian Smith's IBM Selectric APL2741
+golf-ball font.  It supports most special characters used by popular APL
+implementations, some additional mathematical and typographical symbols,
+single line drawing characters, as well as the full Unicode APL range,
+including both uppercase and lowercase underscored alphabets, as-of-yet unused
+symbols, and almost all Latin-1 accented letters.")
+      (license license:unlicense))))