On Fri, 2012-01-27 at 08:27 +0800, Paul Wise wrote: > Now that x-ttcidfont-conf has been removed, Debian's custom FontPath > serves no purpose, please remove it. I have attached a patch.
Here is a bonus patch to replace x-ttcidfont-conf with a separate symlink farm maintained using triggers. It uses an IFS hack for a slight speedup but you may prefer to use the sed version for readability. -- bye, pabs http://wiki.debian.org/PaulWise
From 76e0a3ca842bd4e719f0049e6593a9324097fe6e Mon Sep 17 00:00:00 2001 From: Paul Wise <p...@debian.org> Date: Thu, 3 May 2012 12:57:16 +0800 Subject: [PATCH 2/2] Create a symlink farm of available fonts and use triggers to update it. --- debian/xserver-xorg-core.dirs | 1 + debian/xserver-xorg-core.links | 1 + debian/xserver-xorg-core.postinst | 52 +++++++++++++++++++++++++++++++++++++ debian/xserver-xorg-core.postrm | 1 + debian/xserver-xorg-core.triggers | 1 + 5 files changed, 56 insertions(+) create mode 100644 debian/xserver-xorg-core.links create mode 100644 debian/xserver-xorg-core.postinst create mode 100644 debian/xserver-xorg-core.triggers diff --git a/debian/xserver-xorg-core.dirs b/debian/xserver-xorg-core.dirs index bd697ab..b7bff43 100644 --- a/debian/xserver-xorg-core.dirs +++ b/debian/xserver-xorg-core.dirs @@ -1 +1,2 @@ etc/X11/fontpath.d +var/lib/xserver-xorg-core/fonts diff --git a/debian/xserver-xorg-core.links b/debian/xserver-xorg-core.links new file mode 100644 index 0000000..8a2d336 --- /dev/null +++ b/debian/xserver-xorg-core.links @@ -0,0 +1 @@ +etc/X11/fontpath.d/system var/lib/xserver-xorg-core/fonts diff --git a/debian/xserver-xorg-core.postinst b/debian/xserver-xorg-core.postinst new file mode 100644 index 0000000..8423765 --- /dev/null +++ b/debian/xserver-xorg-core.postinst @@ -0,0 +1,52 @@ +#!/bin/sh + +set -e + +# Paths +fonts=/usr/share/fonts +lnfarm=/var/lib/xserver-xorg/fonts + +update_font_symlink_farm () +{ + # Create symlinks for relevant fonts + find "$fonts" -type f ! -wholename "$fonts/X11/*" | + while read filename ; do + # Strip fonts dir prefix + target="${filename#$fonts/}" + # Hack to replace / characters with _ + ifs="$IFS"; IFS=/; set -- $target; IFS=_; target=$*; IFS="$ifs" + # Add the symlink farm dir prefix + target="$lnfarm/$target" + # Create a symlink if it is needed + ln -s "$filename" "$target" 2>/dev/null || true + # Alternative version that forks sed + #ln -s "$filename" "$lnfarm/$(echo "$filename" | sed "s_$fonts/__;s:/:_:g")" 2>/dev/null || true + done + # Delete broken symlinks + find -L "$lnfarm" -type l -delete 2>/dev/null || true +} + +case "$1" in +configure) + if [ -n "$(find "$lnfarm" -type d -empty 2>/dev/null)" ] ; then + update_font_symlink_farm + fi + ;; +triggered) + for name in $2; do + case "$name" in + "$fonts") + update_font_symlink_farm + ;; + *) + echo "unhandled/unknown trigger!" + exit 1 + ;; + esac + done + ;; +esac + +#DEBHELPER# + +# vim:set ai et sts=2 sw=2 tw=0: diff --git a/debian/xserver-xorg-core.postrm b/debian/xserver-xorg-core.postrm index 0eb50b1..006d58a 100644 --- a/debian/xserver-xorg-core.postrm +++ b/debian/xserver-xorg-core.postrm @@ -6,6 +6,7 @@ case "$1" in purge) rm /var/log/Xorg.*.log || true rm /var/log/Xorg.*.log.old || true + find /var/lib/xserver-xorg/fonts/ -type l -delete || true ;; esac diff --git a/debian/xserver-xorg-core.triggers b/debian/xserver-xorg-core.triggers new file mode 100644 index 0000000..fc1e745 --- /dev/null +++ b/debian/xserver-xorg-core.triggers @@ -0,0 +1 @@ +interest /usr/share/fonts -- 1.7.10
signature.asc
Description: This is a digitally signed message part