Beautiful fonts in Slackware 13
Inviato: sab 19 set 2009, 23:51
Prendo spunto dal titolo della mitica discussione su http://www.linuxquestions.org e da un precedente post di Burroughs viewtopic.php?f=1&t=29834 per scrivere questa mini guida relativa al miglioramento del font rendering sulla Slackware 13; in effetti, Dugan Chen su Linuxquestions.org ha spiegato che la procedura è identica a quella legata a Slackware 12.2, per cui gli utenti interessati a questo argomento, se non hanno voglia di aspettare, possono tranquillamente fare da soli (in parole povere, Dugan Chen ha detto di arrangiarci visto che non può fare tutto lui).
La prima cosa da fare allora consiste nel prelevare da http://www.vcn.bc.ca/~dugan/slackware-fonts/ i sorgenti e gli SlackBuild dei package da aggiornare (freetype, fontconfig, libXft e cairo); fortunatamente, le versioni presenti sul sito di Dugan Chen sono identiche a quelle usate da Pat sulla 13.
Dopo la compilazione, si ottengono i package in formato TGZ; per convertirli in TXZ basta prelevare lo script tgz2txz da http://michielvwessem.wordpress.com/200 ... t-tgz2txz/
Credo comunque che si possa evitare questo passaggio togliendo tgz nei vecchi SlackBuild e sostituendolo con txz; su questo argomento, chiedete ai pacchettizzatori .
Siccome si stratta di ricompilare da sorgenti, è necessario seguire un ordine rigoroso (compilazione - installazione) a causa del fatto che: fontconfig dipende da freetype, mentre libXft e cairo dipendono da fontconfig.
Quindi, una volta che si ha tutto il materiale a disposizione, bisogna uscire in modalità testo e disinstallare i vari package in questo ordine rigoroso:
1) cairo
2) libXft
3) fontconfig
4) freetype
Ora inizia la fase di ricompilazione - installazione, sempre in ordine rigoroso.
1) Ricompiliamo freetype, convertiamo poi il TGZ in TXZ e installiamolo (tutti i TGZ vengono creati in /tmp).
2) Ricompiliamo fontconfig, convertiamo poi il TGZ in TXZ e installiamolo.
3) Ricompiliamo libXft, convertiamo poi il TGZ in TXZ e installiamolo.
4) Ricompiliamo cairo, convertiamo poi il TGZ in TXZ e installiamolo.
A questo punto il più è fatto.
Eventualmente, installiamo i font di Windows e aggiorniamo la font-cache ricordandoci prima di inserire i nuovi percorsi in /etc/X11/xorg.conf e /etc/fonts/fonts.conf (tenete presente che l'installazione di fontconfig elimina eventuali precedenti configurazioni fatte da noi).
Ad esempio, supponendo di aver messo i font di 98/XP in /usr/share/fonts/WinTTF e i font di Vista in /usr/share/fonts/VistaTTF, possiamo aggiornare la cache con i comandi:
A questo punto, lanciamo startx e, nel centro di controllo KDE4, selezioniamo i font desiderati e abilitiamo l'antialiasing e il subpixel-hinting; a seconda dei casi (tipo di monitor e/o di scheda video) si ottengono i risultati migliori con un livello di hinting moderato o medio.
Riavviando ora KDE4 dovremmo raccogliere i frutti di tutto questo lavoro.
Dalle prove che ho fatto io i risultati sono eccezionali, proprio come per la Slackware 12.2; con i font piccolissimi si nota qualche alone colorato, ma per risolvere questo problema bisogna attendere gli aggiornamenti delle varie patches.
L'ultimo fastidio è la ricompilazione di Firefox; quelli di Mozilla ormai sono rimasti gli unici a compilare un browser che si linka staticamente a Cairo. Anche in questo caso, si può riciclare lo SlackBuil per la 12.2 e convertire poi il TGZ in TXZ (tgz2txz ci mette un pochino con i file grossi).
Tutto il necessario per la ricompilazione lo trovate su: http://data.bluewhite64.com/bluewhite64 ... a-firefox/
Lo SlackBuild deve essere rimpiazzato con questo:
Per usare questo SlackBuild, dovete avere già pronti (nella stessa directory di compilazione) i sorgenti di Firefox e i file della lingua italiana; gli indirizzi di download sono indicati nello stesso SlackBuild.
Ricordatevi solo di modificare il numero di versione di Firefox e le due variabili:
La prima cosa da fare allora consiste nel prelevare da http://www.vcn.bc.ca/~dugan/slackware-fonts/ i sorgenti e gli SlackBuild dei package da aggiornare (freetype, fontconfig, libXft e cairo); fortunatamente, le versioni presenti sul sito di Dugan Chen sono identiche a quelle usate da Pat sulla 13.
Dopo la compilazione, si ottengono i package in formato TGZ; per convertirli in TXZ basta prelevare lo script tgz2txz da http://michielvwessem.wordpress.com/200 ... t-tgz2txz/
Credo comunque che si possa evitare questo passaggio togliendo tgz nei vecchi SlackBuild e sostituendolo con txz; su questo argomento, chiedete ai pacchettizzatori .
Siccome si stratta di ricompilare da sorgenti, è necessario seguire un ordine rigoroso (compilazione - installazione) a causa del fatto che: fontconfig dipende da freetype, mentre libXft e cairo dipendono da fontconfig.
Quindi, una volta che si ha tutto il materiale a disposizione, bisogna uscire in modalità testo e disinstallare i vari package in questo ordine rigoroso:
1) cairo
2) libXft
3) fontconfig
4) freetype
Ora inizia la fase di ricompilazione - installazione, sempre in ordine rigoroso.
1) Ricompiliamo freetype, convertiamo poi il TGZ in TXZ e installiamolo (tutti i TGZ vengono creati in /tmp).
2) Ricompiliamo fontconfig, convertiamo poi il TGZ in TXZ e installiamolo.
3) Ricompiliamo libXft, convertiamo poi il TGZ in TXZ e installiamolo.
4) Ricompiliamo cairo, convertiamo poi il TGZ in TXZ e installiamolo.
A questo punto il più è fatto.
Eventualmente, installiamo i font di Windows e aggiorniamo la font-cache ricordandoci prima di inserire i nuovi percorsi in /etc/X11/xorg.conf e /etc/fonts/fonts.conf (tenete presente che l'installazione di fontconfig elimina eventuali precedenti configurazioni fatte da noi).
Ad esempio, supponendo di aver messo i font di 98/XP in /usr/share/fonts/WinTTF e i font di Vista in /usr/share/fonts/VistaTTF, possiamo aggiornare la cache con i comandi:
Codice: Seleziona tutto
mkfontscale /usr/share/fonts/WinTTF/
mkfontscale /usr/share/fonts/VistaTTF
mkfontdir /usr/share/fonts/WinTTF/
mkfontdir /usr/share/fonts/VistaTTF/
fc-cache -f -v
Riavviando ora KDE4 dovremmo raccogliere i frutti di tutto questo lavoro.
Dalle prove che ho fatto io i risultati sono eccezionali, proprio come per la Slackware 12.2; con i font piccolissimi si nota qualche alone colorato, ma per risolvere questo problema bisogna attendere gli aggiornamenti delle varie patches.
L'ultimo fastidio è la ricompilazione di Firefox; quelli di Mozilla ormai sono rimasti gli unici a compilare un browser che si linka staticamente a Cairo. Anche in questo caso, si può riciclare lo SlackBuil per la 12.2 e convertire poi il TGZ in TXZ (tgz2txz ci mette un pochino con i file grossi).
Tutto il necessario per la ricompilazione lo trovate su: http://data.bluewhite64.com/bluewhite64 ... a-firefox/
Lo SlackBuild deve essere rimpiazzato con questo:
Codice: Seleziona tutto
#!/bin/sh
# Slackware build script for <appname>
# Written by (your name) (your contact information)
LOCTAG=it
GECKOVER=1.9.1
PRJ=mozilla
APP=firefox
VERSION=${VERSION:-3.5.3}
BUILD=${BUILD:-1}
TAG=${TAG:-it}
# Set to i686 if Slackware < 12.1
ARCH=${ARCH:-native}
# http://releases.mozilla.org/pub/mozilla.org/firefox/releases/
SRC=$APP-$VERSION-source.tar.bz2
# http://hg.mozilla.org/releases/l10n-mozilla-1.9.1/it/
LOCNAME=it-57aa634d1850
LOCFILE=it-57aa634d1850.tar.bz2
CWD=$(pwd)
TMP=${TMP:-/tmp}
BUILDDIR=$TMP/build
SRCDIR=$BUILDDIR/source
PKGDIR=$BUILDDIR/package/$PRJ-$APP
OUTDIR=$BUILDDIR/output
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
elif [ "$ARCH" = "native" ]; then
SLKCFLAGS="-O3 -march=native"
fi
set -e
rm -rf $PKGDIR
mkdir -p $SRCDIR $PKGDIR $OUTDIR
cd $SRCDIR
rm -rf $PRJ
tar xfv $CWD/$SRC
mv $PRJ-$GECKOVER $PRJ
#cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/l10n co l10n/it
mkdir l10n
cd l10n
tar xvf $CWD/$LOCFILE
mv $LOCNAME $LOCTAG
cd ../$PRJ
chown -R root:root .
chmod -R u+w,go+r-w,a-s .
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure --prefix=/usr \
--enable-official-branding \
--enable-application=browser \
--enable-install-strip \
--enable-strip \
--enable-system-cairo \
--enable-optimize \
--enable-ui-locale=it \
--disable-crashreporter \
--disable-debug \
--disable-javaxpcom \
--disable-installer \
--disable-updater \
--with-l10n-base=$SRCDIR/l10n
make
make install DESTDIR=$PKGDIR
cd $PKGDIR/usr/lib/$APP-$VERSION
patch -p1 < $CWD/firefox.moz_plugin_path.diff
mkdir -p $PKGDIR/usr/share/pixmaps
cp $CWD/firefox.png $PKGDIR/usr/share/pixmaps
mkdir -p $PKGDIR/usr/share/applications
cp $CWD/mozilla-firefox.desktop $PKGDIR/usr/share/applications
# Because the included "firefox.png" is a custom icon.
# http://www.gnome-look.org/content/show.php/Firefox+Icons?content=47617
if which convert ; then
ICONSDIR0="$PKGDIR/usr/lib/$APP-$VERSION/icons"
convert -antialias -resize 128x128 $CWD/$APP.png \
$ICONSDIR0/mozicon128.png
convert -antialias -resize 50x50 $CWD/$APP.png \
$ICONSDIR0/mozicon50.xpm
convert -antialias -resize 16x16 $CWD/$APP.png \
$ICONSDIR0/mozicon16.xpm
ICONSDIR1="$PKGDIR/usr/lib/$APP-$VERSION/chrome/icons/default"
convert -antialias -resize 48x48 $CWD/$APP.png \
$ICONSDIR1/default48.png || exit 1
convert -antialias -resize 32x32 $CWD/$APP.png \
$ICONSDIR1/default32.png || exit 1
convert -antialias -resize 16x16 $CWD/$APP.png \
$ICONSDIR1/default16.png || exit 1
fi
mkdir -p $PKGDIR/install
cat $CWD/slack-desc > $PKGDIR/install/slack-desc
cp $CWD/doinst.sh $PKGDIR
cd $PKGDIR
/sbin/makepkg -l y -c n $OUTDIR/$PRJ-$APP-$VERSION-$ARCH-$BUILD\_$TAG.tgz
Ricordatevi solo di modificare il numero di versione di Firefox e le due variabili:
Codice: Seleziona tutto
LOCNAME=it-57aa634d1850
LOCFILE=it-57aa634d1850.tar.bz2