From d22d06f9d2c324c5c9bfc4cf14139eccd1b30903 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sun, 21 Apr 2024 11:19:22 +0800 Subject: [PATCH] build-system: font: Handle multiple outputs in the install phase. * guix/build/font-build-system.scm (install): Prefer install files into their specified outputs (ttf, otf, woff, otb, bdf, pcf, psf). Change-Id: I2ecd126fe31ce4fc65c59106938e37523b0cc3d2 --- guix/build/font-build-system.scm | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/guix/build/font-build-system.scm b/guix/build/font-build-system.scm index 0b1542394a..ad81d07b7b 100644 --- a/guix/build/font-build-system.scm +++ b/guix/build/font-build-system.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2022 Arun Isaac ;;; Copyright © 2017 Alex Griffin +;;; Copyright © 2024 宋文武 ;;; ;;; This file is part of GNU Guix. ;;; @@ -49,13 +50,34 @@ archive, or a font file." "Install the package contents." (let* ((out (assoc-ref outputs "out")) (source (getcwd)) - (fonts (string-append out "/share/fonts"))) - (for-each (cut install-file <> (string-append fonts "/truetype")) + (truetype-dir (string-append (or (assoc-ref outputs "ttf") out) + "/share/fonts/truetype")) + (opentype-dir (string-append (or (assoc-ref outputs "otf") out) + "/share/fonts/opentype")) + (web-dir (string-append (or (assoc-ref outputs "woff") out) + "/share/fonts/web")) + (otb-dir (string-append (or (assoc-ref outputs "otb") out) + "/share/fonts/misc")) + (bdf-dir (string-append (or (assoc-ref outputs "bdf") out) + "/share/fonts/misc")) + (pcf-dir (string-append (or (assoc-ref outputs "pcf") out) + "/share/fonts/misc")) + (psf-dir (string-append (or (assoc-ref outputs "psf") out) + "/share/consolefonts"))) + (for-each (cut install-file <> truetype-dir) (find-files source "\\.(ttf|ttc)$")) - (for-each (cut install-file <> (string-append fonts "/opentype")) + (for-each (cut install-file <> opentype-dir) (find-files source "\\.(otf|otc)$")) - (for-each (cut install-file <> (string-append fonts "/web")) - (find-files source "\\.(woff|woff2)$")))) + (for-each (cut install-file <> web-dir) + (find-files source "\\.(woff|woff2)$")) + (for-each (cut install-file <> otb-dir) + (find-files source "\\.otb$")) + (for-each (cut install-file <> bdf-dir) + (find-files source "\\.bdf$")) + (for-each (cut install-file <> pcf-dir) + (find-files source "\\.pcf$")) + (for-each (cut install-file <> psf-dir) + (find-files source "\\.psfu$")))) (define %license-file-regexp ;; Regexp matching license files commonly found in font packages.