Subject: [PATCH 00/14] Remove duplications in fonts by split outputs

From: [email-masked]
Date: Sun, 21 Apr 2024 18:22:06 +0800

From: 宋文武 <[email-masked]>

Hello, here are some patches for font packages which updates
the install phase in font-build-system for multiple outputs, and
use that for some font packages.

When a font family is provided in different formats (eg: both ttf and
otf), font picker will list duplicated entries.  To remove those
duplicated entries, these patches will prefer "otf" over "ttf" files
by using '("out" "ttf")) as package's outputs field, so that otf files
will go into the default "out" output.

I think some good defaults for "out" are:
  Prefer "otf" over "ttf", as the otf has better features and smaller size.
  Prefer "otb" over "pcf", as pango only support otb as bitmap fonts.
  Prefer "otc/ttc" over separated ttf/otf files, as collection has smaller size.
  Always use "woff" for web fonts or delete them, those are only used for serving web pages.

The font-build-system change will trigger mass rebuilds due to
fontconfig, so this maybe go into "core-updates" or a separated branch.

Sou Bunnbu (宋文武) (14):
  build-system: font: Handle multiple outputs in the install phase.
  gnu: font-artifika: Split outputs.
  gnu: font-chivo: Split outputs.
  gnu: font-ibm-plex: Update to 6.4.0.
  gnu: font-ibm-plex: Split outputs.
  gnu: font-intel-one-mono: Remove unnecessary 'split-outputs' phase.
  gnu: font-canada1500: Split outputs.
  gnu: font-linuxlibertine: Split outputs.
  gnu: font-libertinus: Split outputs.
  gnu: font-recursive: Split outputs.
  gnu: font-orbitron: Split outputs.
  gnu: font-spleen: Remove unnecessary custom install phase.
  gnu: font-scientifica: Remove unnecessary custom install phase.
  gnu: font-cormorant: Split outputs.

 gnu/packages/fonts.scm           | 114 ++++++-------------------------
 guix/build/font-build-system.scm |  32 +++++++--
 2 files changed, 48 insertions(+), 98 deletions(-)

base-commit: a1d711c92e119f6b5b8e99a620cdba92a4ca3bfb
-- 
2.41.0