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 <pabs@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
Attachment:
signature.asc
Description: This is a digitally signed message part