Package: ttf-dejavu
Version: 2.7-1
Tags: d-i, patch

both nazli and dejavu provide Arabic / Farsi glyphs, but dejavu
ones, being dejavu used as default font, are used.
In order to use nazli for displaying Arabic / Farsi, such glyphs
need to stripped out from ttf files.
The attached patch strips such glyphs plus sets of other unused glyphs,
making the udeb much smaller:

* unstripped *
440236 Jun 20 23:17 generated/DejaVuSans-Bold.ttf
406092 Jun 20 23:17 generated/DejaVuSans-Oblique.ttf
463320 Jun 20 23:17 generated/DejaVuSans.ttf

* stripped *
180864 Jun 20 23:17 DejaVuSans-Bold.ttf
181644 Jun 20 23:17 DejaVuSans-Oblique.ttf
195320 Jun 20 23:17 DejaVuSans.ttf

stripping was very much inspired from the way it's done for ttf-freefont 
package.

regards,
Davide

PS: dejavu support for Arabic / Farsi is quite "young"; OTOH we ad positive 
feedback
for nazli fonts.
diff -ruN ttf-dejavu-2.7/debian/changelog ttf-dejavu-2.7_new/debian/changelog
--- ttf-dejavu-2.7/debian/changelog     2006-06-20 22:24:57.000000000 +0200
+++ ttf-dejavu-2.7_new/debian/changelog 2006-06-20 22:17:44.000000000 +0200
@@ -1,3 +1,9 @@
+ttf-dejavu (2.7-2) unstable; urgency=low
+
+  * Support for stripping unnecessary glyphs from the udeb
+
+ -- Davide Viti <[EMAIL PROTECTED]>  Tue, 20 Jun 2006 22:16:26 +0200
+
 ttf-dejavu (2.7-1) unstable; urgency=low
 
   * New upstream version available
diff -ruN ttf-dejavu-2.7/debian/rules ttf-dejavu-2.7_new/debian/rules
--- ttf-dejavu-2.7/debian/rules 2006-06-20 22:24:57.000000000 +0200
+++ ttf-dejavu-2.7_new/debian/rules     2006-06-20 23:17:19.000000000 +0200
@@ -6,6 +6,9 @@
        dh_testdir
        dh_testroot
        dh_clean
+       rm -fr TTF-stripped/
+       chmod u-x debian/scripts/strip_glyphs.pe
+       chmod u-x debian/scripts/stripfonts.sh
        rm -rf generated/
        rm -f debian/files
 
@@ -15,6 +18,9 @@
        dh_clean -k 
        dh_installdirs
        sh generate.sh
+       chmod u+x debian/scripts/strip_glyphs.pe
+       chmod u+x debian/scripts/stripfonts.sh
+       debian/scripts/stripfonts.sh
        dh_install --sourcedir="generated"
 
 
diff -ruN ttf-dejavu-2.7/debian/scripts/README.strip_glyphs 
ttf-dejavu-2.7_new/debian/scripts/README.strip_glyphs
--- ttf-dejavu-2.7/debian/scripts/README.strip_glyphs   1970-01-01 
01:00:00.000000000 +0100
+++ ttf-dejavu-2.7_new/debian/scripts/README.strip_glyphs       2006-06-20 
22:18:08.000000000 +0200
@@ -0,0 +1,18 @@
+strip_glyphs.pe is a fontforge script (syntax is documented at
+http://fontforge.sourceforge.net/scripting.html)
+
+Usage: "strip_glyphs.pe in out glyphs"
+
+It strips glyphs out of a font file; glyphs can be ranges
+or single code points.
+Code points can be expressed as integers or in unicode notation (i.e
+"u215") and ranges are separated by ":".
+
+As a practical example, this commands were used to eliminate
+Arabic glyphs from the freefont package:
+
+./strip_glyphs.pe FreeSerif.ttf FreeSerif_strip.ttf u60c:u6d4 ufb50:ufefe
+./strip_glyphs.pe FreeSansBold.ttf FreeSansBold_strip.ttf u617:u633
+
+Note that "in" and "out" can be the same file; in that case, obviously,
+"in" gets overwritten.
diff -ruN ttf-dejavu-2.7/debian/scripts/dejavu-strip 
ttf-dejavu-2.7_new/debian/scripts/dejavu-strip
--- ttf-dejavu-2.7/debian/scripts/dejavu-strip  1970-01-01 01:00:00.000000000 
+0100
+++ ttf-dejavu-2.7_new/debian/scripts/dejavu-strip      2006-06-20 
22:18:08.000000000 +0200
@@ -0,0 +1,44 @@
+#! /bin/bash
+
+exepath=$(dirname $0)
+strip=$exepath/strip_glyphs.pe
+
+if [ $# -ne 2 ] ; then
+       echo "Usage: $(basename $0) fontfile_in fontfile_out"
+       exit 0
+fi
+
+if [ ! -x "$strip" ] ; then
+       echo "Script not found: $strip"
+       exit 1
+fi
+
+if [ ! -f "$1" ] ; then
+       echo "File does not exist: $1"
+       exit 1
+fi
+if [ -z "$2" ] ; then
+       echo "You need to specify the output file"
+       exit 1
+fi
+
+ranges=""
+ranges="$ranges u0530:u058F" # Armenian
+ranges="$ranges u0600:u06FF" # Arabic
+ranges="$ranges u0700:u074F" # Syriac
+ranges="$ranges u1D00:u1DBF" # Phonetic Extensions
+ranges="$ranges u2070:u209f" # Superscripts and Subscripts
+ranges="$ranges u20a0:u20cf" # Currency Symbols
+ranges="$ranges u2150:u218f" # Number Forms
+ranges="$ranges u2190:u21ff" # Arrows
+ranges="$ranges u2200:u24FF" # Mathematical, Techical, Control, OCR
+ranges="$ranges u2580:u25FF" # Block elements, Geometric Shapes
+ranges="$ranges u2600:u26FF" # Miscellaneous Symbols
+ranges="$ranges u2700:u27EF" # Dingbats, Miscellaneous Mathematical Symbols-A
+ranges="$ranges u2800:u28FF" # Braille Patterns
+ranges="$ranges u2900:u2BFF" # Suppl. Arrows-B, Misc Math Symbols-B, Suppl 
Math Ops, Misc Symbols and Arrows
+ranges="$ranges u3000:u30FF" # CJK Symbols and Punctuation
+ranges="$ranges uFB50:uFBFF" # Arabic Presentation Forms-A
+ranges="$ranges uFE70:uFEFF" # Arabic Presentation Forms-B
+
+$strip $1 $2 $ranges
diff -ruN ttf-dejavu-2.7/debian/scripts/strip_glyphs.pe 
ttf-dejavu-2.7_new/debian/scripts/strip_glyphs.pe
--- ttf-dejavu-2.7/debian/scripts/strip_glyphs.pe       1970-01-01 
01:00:00.000000000 +0100
+++ ttf-dejavu-2.7_new/debian/scripts/strip_glyphs.pe   2006-06-20 
22:18:08.000000000 +0200
@@ -0,0 +1,81 @@
+#! /usr/bin/fontforge 
+#
+#     Copyright (C) 2005 Davide Viti <[EMAIL PROTECTED]>
+#
+#     This program is free software; you can redistribute it and/or modify
+#     it under the terms of the GNU General Public License as published by
+#     the Free Software Foundation; either version 2 of the License, or
+#     (at your option) any later version.
+#
+#     This program is distributed in the hope that it will be useful,
+#     but WITHOUT ANY WARRANTY; without even the implied warranty of
+#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#     GNU General Public License for more details.
+#
+#     You should have received a copy of the GNU General Public
+#     License along with this program; if not, write to the Free
+#     Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+#     MA 02111-1307 USA
+#
+# "glyphs_to_remove" argument can be a single code point
+# or a range of codepoints separated by ":"
+#
+# code points can be specified both as integers and as unicode
+# you can also mix the two formats (i.e "48:u54")
+#
+# example: 
+#
+#      "strip_glyphs in.ttf out.ttf 12 u20 100:150 u200:u230 u300:65000"
+
+if ($argc < 4)
+   Print( "Usage: strip_glyphs in out glyphs_to_remove..." )
+   Quit()
+endif
+
+
+Open($1); shift
+Reencode("unicode")
+out = $1; shift
+
+#
+# Loop through the arguments and select the glyphs
+# which need to be cleared
+#
+while ($argc > 1)
+  len = Strlen($1)
+  colon_idx = Strstr($1, ":")
+
+  #  
+  # argument is a single glyph
+  #
+  if (colon_idx == -1)
+    if(Strstr($1, "u") == -1)
+       SelectMore(Strtol($1)) ## Integer
+    else
+       SelectMore($1) ## Unicode code point (i.e "u0027")
+    endif
+
+  #  
+  # argument is a range low:high
+  #
+  else      
+     low = Strsub($1, 0, colon_idx)
+     if(Strstr($1, "u") == -1)
+        low = Strtol(low) ## Integer
+     endif
+
+     high = Strsub($1, colon_idx+1, len)
+     if(Strstr($1, "u") == -1)
+        high = Strtol(high) ## Integer
+     endif
+   
+     SelectMore(low, high);
+  endif
+
+  shift
+endloop
+
+Clear()
+
+Generate(out, "")
+Quit()
diff -ruN ttf-dejavu-2.7/debian/scripts/stripfonts.sh 
ttf-dejavu-2.7_new/debian/scripts/stripfonts.sh
--- ttf-dejavu-2.7/debian/scripts/stripfonts.sh 1970-01-01 01:00:00.000000000 
+0100
+++ ttf-dejavu-2.7_new/debian/scripts/stripfonts.sh     2006-06-20 
22:18:08.000000000 +0200
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+STRIPFONT=$(pwd)/debian/scripts/dejavu-strip
+SRC="generated"
+TARGET="TTF-stripped"
+FONTPAT="FreeSans*.ttf"
+test ! -d ${TARGET} && mkdir ${TARGET}
+
+FONTS="DejaVuSans DejaVuSans-Bold DejaVuSans-Oblique"
+for font in ${FONTS}; do
+       echo $font
+       (cd ${TARGET} && sh ${STRIPFONT} ../${SRC}/${font}.ttf ${font}.ttf)
+done
diff -ruN ttf-dejavu-2.7/debian/ttf-dejavu-udeb.install 
ttf-dejavu-2.7_new/debian/ttf-dejavu-udeb.install
--- ttf-dejavu-2.7/debian/ttf-dejavu-udeb.install       2006-06-20 
22:24:57.000000000 +0200
+++ ttf-dejavu-2.7_new/debian/ttf-dejavu-udeb.install   2006-06-20 
22:23:20.000000000 +0200
@@ -1,3 +1,3 @@
-DejaVuSans-Bold.ttf usr/share/fonts/truetype/ttf-dejavu
-DejaVuSans-Oblique.ttf usr/share/fonts/truetype/ttf-dejavu
-DejaVuSans.ttf usr/share/fonts/truetype/ttf-dejavu
+../TTF-stripped/DejaVuSans-Bold.ttf usr/share/fonts/truetype/ttf-dejavu
+../TTF-stripped/DejaVuSans-Oblique.ttf usr/share/fonts/truetype/ttf-dejavu
+../TTF-stripped/DejaVuSans.ttf usr/share/fonts/truetype/ttf-dejavu

Attachment: signature.asc
Description: Digital signature

Reply via email to