Hi. I wrote expression for adding Hack font family to GuixSD. You can see it my guix package repository: https://github.com/8p8c/my-guix/blob/master/packages/font-hack.scm Here is patch for fonts.scm: --- fonts.scm 2016-06-02 08:01:49.387086500 +0300 +++ fonts.new.scm 2016-06-02 08:05:30.005373478 +0300 @@ -9,6 +9,7 @@ ;;; Copyright © 2016 Nils Gillmann ;;; Copyright © 2016 Jookia <166291@gmail.com> ;;; Copyright © 2016 Eric Bavier +;;; Copyright © 2016 Dmitry Nikolaev ;;; ;;; This file is part of GNU Guix. ;;; @@ -921,3 +922,54 @@ (home-page "https://fontlibrary.org/en/font/fantasque-sans-mono") (license license:silofl1.1))) +(define-public font-hack + (package + (name "font-hack") + (version "2.020") + (source (origin + (method url-fetch) + (uri (string-append + " https://github.com/chrissimpkins/Hack/releases/download/v" + version + "/Hack-v" + "2_020" ;; FIXME + "-ttf.zip")) + (sha256 + (base32 + "16kkmc3psckw1b7k07ccn1gi5ymhlg9djh43nqjzg065g6p6d184")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder (begin + (use-modules (guix build utils) + (srfi srfi-26)) + + (let ((PATH (string-append (assoc-ref %build-inputs + "unzip") + "/bin")) + (font-dir (string-append %output + "/share/fonts/truetype")) + (doc-dir (string-append %output "/share/doc/" + ,name "-" ,version))) + (setenv "PATH" PATH) + (system* "unzip" (assoc-ref %build-inputs "source")) + + (mkdir-p font-dir) + (mkdir-p doc-dir) + (for-each (lambda (ttf) + (copy-file ttf + (string-append font-dir "/" ttf))) + (find-files "." "\\.ttf$")) + (for-each (lambda (doc) + (copy-file doc + (string-append doc-dir "/" doc))) + (find-files "." "\\.txt$")))))) + (native-inputs `(("source" ,source) + ("unzip" ,unzip))) + (home-page "https://sourcefoundry.org/hack/") + (synopsis "A typeface designed for sourcecode.") + (description "The Hack Font is designed for the screen.") + (license + (license:non-copyleft ;;FIXME + "https://github.com/chrissimpkins/Hack/blob/master/LICENSE.md" + "Hack Open Font License v2.0")))) But there are two FIXME issues. First with URI string generation. Sorry, I haven't mastered Scheme yet: (uri (string-append " https://github.com/chrissimpkins/Hack/releases/download/v" version "/Hack-v" "2_020" ;; FIXME. This should be generated from version "2.020" "-ttf.zip")) And second with licence. I've marked it as non-copyleft, but I'm not sure about it: (license (license:non-copyleft ;;FIXME "https://github.com/chrissimpkins/Hack/blob/master/LICENSE.md" "Hack Open Font License v2.0")) Dmitry