domenica 6 luglio 2008

Fedora cleartype subpixel hinting

Quella che segue è la versione, tradotta e modificata, di una guida presente su fedoraforums.org per abilitare il subpixel hinting con Fedora.

I passaggi n° 1, 5, 9, 10, 11, 12, 14 devono essere eseguiti come root.

1) Installate yum-utils e rpmdevtools: yum install yum-utils rpmdevtools

2) Preparate l'ambiente di sviluppo: rpmdev-setuptree

3) Scaricate nella cartella ~/rpmbuild/SOURCES le tre patch seguenti: freetype-2.2.1-subpixel-disable-quantization.diff, libcairo-1.2.4-lcd-cleartype-like.diff, libxft-2.1.8.2-lcd-cleartype-like.diff

4) Scaricate nella cartella ~/rpmbuild/SRPMS i sorgenti dei pacchetti cairo, freetype e libXft: yumdownloader --source cairo freetype libXft

5) Scaricate e installate le dipendenze per poter ricompilare i pacchetti: yum-builddep cairo-1.6.4-1.fc9.src.rpm freetype-2.3.5-6.fc9.src.rpm libXft-2.1.12-5.fc9.src.rpm

6) Installate i sorgenti appena scaricati: rpm -i cairo-1.6.4-1.fc9.src.rpm freetype-2.3.5-6.fc9.src.rpm libXft-2.1.12-5.fc9.src.rpm

7) Modificate i file SPEC presenti in ~/rpmbuild/SPECS aggiungendo le righe seguenti(evidenziate in rosso):

cairo.spec

...
BuildRoot: %{_tmppath}/%{name}-%{version}-root
Patch0: libcairo-1.2.4-lcd-cleartype-like.diff
...
%patch0 -p1
%build
...

freetype.spec

...
Patch0: freetype-2.2.1-subpixel-disable-quantization.diff
# Add -lm when linking X dem
...
%patch0 -p1
pushd ft2demos-%{version}
...

libXft.spec

...
Source0: ftp://ftp.x.org/pub/individual/lib/%{name}-%{version}.tar.bz2
Patch0: libxft-2.1.8.2-lcd-cleartype-like.diff
...
%patch0 -p1
 # Disable static library creation by default.
...

8) Compilate i pacchetti:
rpmbuild -bb ~/rpmbuild/SPECS/cairo.spec
rpmbuild -bb --with bytecode_interpreter --with subpixel_rendering ~/rpmbuild/SPECS/freetype.spec
rpmbuild -bb ~/rpmbuild/SPECS/libXft.spec

9) Uscite dalla modalità grafica: telinit 3

10) Se avete installato il pacchetto freetype-freeworld, rimuovetelo: yum remove freetype-freeworld

11) Installate i pacchetti appena creati: rpm -Uvh --replacefiles --replacepkgs cairo-1.6.4-1.fc9.i386.rpm freetype-2.3.5-6.fc9.i386.rpm libXft-2.1.12-5.fc9.i386.rpm

12) Ritornate alla modalità grafica: telinit 5

13) Configurate il subpixel hinting nel vostro desktop environment(Gnome, KDE, etc)

14) Modificate il file /etc/yum.conf e aggiungete la riga: exclude=cairo, freetype, libXft
In questo modo i pacchetti non verranno aggiornati con quelli presenti nei repo standard(e quindi senza patch).

15) Per restare sempre aggiornati sull'ultima versione di ogni pacchetto, vi consiglio di iscrivervi alla mailing list fedora-package-announce. Nel vostro client di posta elettronica create un filtro che elimini tutte le mail provenienti da fedora-package-announce@redhat.com e con oggetto diverso da cario, freetype, libXft. In questo modo cancellerete tutti messaggi che riguardano l'aggiornamento degli altri programmi, e che al momento non vi interessano.

Segnalazione di errori e suggerimenti sono sempre ben accetti.