From 32ee0b544a67199a1d4c28be96094dc2115e7d3e Mon Sep 17 00:00:00 2001 From: ekklesia Date: Tue, 22 Sep 2026 20:47:57 -0500 Subject: [PATCH] fix: check the fonts by the files LibreOffice opens, not by fc-list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The validator asked fc-list whether Liberation Sans, Carlito and Caladea were installed. fc-list belongs to the fontconfig package, which nothing in this classroom pulls in, so the check could only ever fail — and it did, twenty-odd minutes into a release run, for a reason that had nothing to do with the fonts. They were all present the whole time. Asserted by path now, which is what LibreOffice actually looks for. Also depends on fonts-liberation rather than fonts-liberation2. The latter is a transitional package in Trixie that exists only to depend on the former, and a release should not name a package whose whole purpose is to go away. Co-Authored-By: Claude Opus 5 --- packaging/debian/control.template | 2 +- tools/validate-trixie-release.sh | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/packaging/debian/control.template b/packaging/debian/control.template index 306b322..3675fec 100644 --- a/packaging/debian/control.template +++ b/packaging/debian/control.template @@ -4,7 +4,7 @@ Section: misc Priority: optional Architecture: amd64 Maintainer: Ekklesia -Depends: pkexec, polkit-kde-agent-1, plasma-desktop, plasma-workspace, kwin-wayland, plasma-nm, plasma-pa, plasma-widgets-addons, konsole, sddm, dbus-user-session, xwayland, fonts-dejavu, fonts-noto, network-manager, pipewire, pipewire-audio, wireplumber, pulseaudio-utils, cups, cups-client, cups-filters, foomatic-db-compressed-ppds, python3-gi, python3-gi-cairo, gir1.2-gtk-3.0, gir1.2-gtklayershell-0.1, libnotify-bin, curl, gnupg, ca-certificates, python3-paho-mqtt, python3-pyqt6.qtwebengine, python3-pyqt6, libreoffice-impress, libreoffice-core, poppler-utils, fonts-liberation2, fonts-liberation-sans-narrow, fonts-croscore, fonts-crosextra-carlito, fonts-crosextra-caladea, fonts-urw-base35, fonts-roboto, fonts-open-sans, fonts-lato, fonts-montserrat, fonts-noto-extra +Depends: pkexec, polkit-kde-agent-1, plasma-desktop, plasma-workspace, kwin-wayland, plasma-nm, plasma-pa, plasma-widgets-addons, konsole, sddm, dbus-user-session, xwayland, fonts-dejavu, fonts-noto, network-manager, pipewire, pipewire-audio, wireplumber, pulseaudio-utils, cups, cups-client, cups-filters, foomatic-db-compressed-ppds, python3-gi, python3-gi-cairo, gir1.2-gtk-3.0, gir1.2-gtklayershell-0.1, libnotify-bin, curl, gnupg, ca-certificates, python3-paho-mqtt, python3-pyqt6.qtwebengine, python3-pyqt6, libreoffice-impress, libreoffice-core, poppler-utils, fonts-liberation, fonts-liberation-sans-narrow, fonts-croscore, fonts-crosextra-carlito, fonts-crosextra-caladea, fonts-urw-base35, fonts-roboto, fonts-open-sans, fonts-lato, fonts-montserrat, fonts-noto-extra Recommends: vlc Conflicts: plasma-welcome, plasma-discover, kdeconnect, kup-backup Description: Ekklesia managed classroom environment diff --git a/tools/validate-trixie-release.sh b/tools/validate-trixie-release.sh index 4f3998d..1a4ccfb 100755 --- a/tools/validate-trixie-release.sh +++ b/tools/validate-trixie-release.sh @@ -274,10 +274,18 @@ text = library.first_text("/tmp/deck/slides.pdf", pages=2) assert "Session 7" in text, f"text did not survive the conversion: {text!r}" CONVERT_CHECK -# The fonts a Google Slides export asks for, by their real names. -fc-list 2>/dev/null | grep -qi 'Liberation Sans' -fc-list 2>/dev/null | grep -qi 'Carlito' -fc-list 2>/dev/null | grep -qi 'Caladea' +# The fonts a Google Slides export asks for, as files on disk. +# +# Asserted by path rather than through fc-list: fc-list belongs to the +# fontconfig package, which nothing here pulls in, so the check passed +# vacuously until it didn't and then failed for a reason that had nothing +# to do with the fonts. What LibreOffice actually needs is the file. +[[ -f /usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf ]] +[[ -f /usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf ]] +[[ -f /usr/share/fonts/truetype/liberation/LiberationSansNarrow-Regular.ttf ]] +[[ -f /usr/share/fonts/truetype/crosextra/Carlito-Regular.ttf ]] +[[ -f /usr/share/fonts/truetype/crosextra/Caladea-Regular.ttf ]] +[[ -f /usr/share/fonts/truetype/croscore/Arimo-Regular.ttf ]] # And the one that must NOT be here, because it prompts for a licence. ! dpkg -l ttf-mscorefonts-installer 2>/dev/null | grep -q '^ii'