Compilation de Sankoré version 1.25.00
Cette méthode a été utilisée pour générer les binaires de Sankoré 3en1 version 1.25.00 sous OpenSUSE (32 et 64 bits) 11.3 et 11.4.
Récupérer Sankoré avec git
Si vous êtes derrière un proxy, définissez la variable http_proxy :
# export http_proxy=http://serveur:port/
Installer le paquet OpenSUSE git
# zypper install git
Se positionner dans le répertoire src
# cd /usr/local/src
Récupérer les sources de Qt 4.7 modifiées pour corriger certains bugs
# git clone https://git.gitorious.org:+mnemis/qt/mnemogit.git Qt-sankore3.1
# cd Qt-sankore3.1
# git checkout --track -b sankore3.1 origin/sankore3.1
# cd ..
Récupérer les sources de Sankoré
# git clone https://github.com/Sankore/Sankore-3.1.git Sankore
# git clone https://github.com/Sankore/Sankore-ThirdParty.git Sankore-ThirdParty
trois répertoires sont créés et populés, /usr/local/src/Qt-sankore3.1, /usr/local/src/Sankore et /usr/local/src/Sankore-ThirdParty
Modifier les droits du fichier lançant la compilation
# chmod 755 Sankore/release.linux.sh
Installer les paquets OpenSUSE nécessaires à la compilation
Pour les OpenSUSE 11.3
# zypper addrepo http://download.opensuse.org/distribution/11.3/repo/oss/ oss
# zypper addrepo http://mirrors.nfsi.pt/opensuse/repositories/Education/openSUSE_11.3/ education
# zypper ar -f -n packman-essentials http://packman.inode.at/suse/openSUSE_11.3/Essentials packman-essentials
# zypper ar -f -n packman-multimedia http://packman.inode.at/suse/openSUSE_11.3/Multimedia packman-multimedia
Pour les OpenSUSE 11.4
# zypper addrepo http://download.opensuse.org/distribution/11.4/repo/oss/ oss
# zypper addrepo http://mirrors.nfsi.pt/opensuse/repositories/Education/openSUSE_11.4/ education
# zypper ar -f -n packman-essentials http://packman.inode.at/suse/openSUSE_11.4/Essentials packman-essentials
# zypper ar -f -n packman-multimedia http://packman.inode.at/suse/openSUSE_11.4/Multimedia packman-multimedia
Puis
# zypper install gcc-c++ autoconf automake zlib-devel libjpeg62-devel libtiff-devel libmng-devel libpng12-devel directfb-devel gstreamer-0_10-plugins-base-devel gstreamer-0_10-devel libaudio-devel alsa-devel freetype2-devel fontconfig-devel cups-devel dbus-1-devel dbus-1-glib-devel glib2-devel gtk2-devel xorg-x11-libX11-devel xorg-x11-libXext-devel xorg-x11-devel xorg-x11-libXfixes-devel xorg-x11-libXrender-devel xorg-x11-libXv-devel libXi6-devel xorg-x11-libSM-devel libopenssl-devel make libqt4-devel t1lib-devel xorg-x11-proto-devel openmotif-devel xorg-x11-libXp-devel libpaper-devel libaudio2 libpulse-devel libpulse-mainloop-glib0 libpulse-browse0
Choisir 4 fois le choix 1 lors de la demande sur quel dépôt télécharger les librairies gstreamer
Pour les OpenSUSE 32 bits
# wget http://dl.atrpms.net/el6-i386/atrpms/stable/tslib-devel-1.0-2.el6.i686.rpm
# wget http://dl.atrpms.net/el6-i386/atrpms/stable/tslib-1.0-2.el6.i686.rpm
# rpm -i tslib-1.0-2.el6.i686.rpm tslib-devel-1.0-2.el6.i686.rpm
Pour les OpenSUSE 64 bits
# wget http://dl.atrpms.net/el6-x86_64/atrpms/stable/tslib-devel-1.0-2.el6.x86_64.rpm
# wget http://dl.atrpms.net/el6-x86_64/atrpms/stable/tslib-1.0-2.el6.x86_64.rpm
# rpm -i tslib-1.0-2.el6.x86_64.rpm tslib-devel-1.0-2.el6.x86_64.rpm
Compilation que Qt
Aller dans le répertoire des sources de Qt
# cd /usr/local/src/Qt-sankore3.1
Effacer éventuellement toute trace de précédentes compilations
# find . -name "*.o" -exec rm -f {} \;
# find . -name "*.pch" -exec rm -f {} \;
# make confclean
Configurer la compilation
# ./configure -debug-and-release -make "libs tools" -opensource -confirm-license
Lancer la compilation (attention, cela peut prendre plusieurs heures suivant votre machine ;-)
# make
Installer les binaires
# make install
Le répertoire /usr/local/Trolltech/Qt-4.7.3 est créé
Création de la librairie FreeType
Aller dans le répertoire de la lib freetype
# cd /usr/local/src/Sankore-ThirdParty/freetype
Construire le Makefile
# /usr/local/Trolltech/Qt-4.7.3/bin/qmake freetype.pro -spec linux-g++
Lancer la compilation de la librairie freetype
# make
Le fichier /usr/local/src/Sankore-ThirdParty/freetype/lib/linux/libfreetype.a est créé
Création de la librairie xpdf
Se positionner dans le répertoire xpdf-3.02
# cd /usr/local/src/Sankore-ThirdParty/xpdf/xpdf-3.02
Configurer la compilation
# ./configure --with-freetype2-library="../../freetype/lib/linux" --with-freetype2-includes="../../freetype/freetype-2.4.4/include"
Suite à un bug du configure, il faut modifier dans le Makefile de splash le lien vers les "include" de freetype
# vi /usr/local/src/Sankore-ThirdParty/xpdf/xpdf-3.02/splash/Makefile
Modifier la ligne 19
CXXFLAGS= -g -O2 -DHAVE_CONFIG_H -I.. -I${GOOSRCDIR} -I${FOFISRCDIR} -I${srcdir} -I../../freetype/freetype-2.4.4/include
en
CXXFLAGS= -g -O2 -DHAVE_CONFIG_H -I.. -I${GOOSRCDIR} -I${FOFISRCDIR} -I${srcdir} -I../../../freetype/freetype-2.4.4/include
Modifier fichier le xpdf/xpdf.pro au niveau des sources pour ajouter plusieurs fichiers T1
# vi /usr/local/src/Sankore-ThirdParty/xpdf/xpdf.pro
A la ligne 88, insérer
$$XPDF_DIR/splash/SplashT1Font.cc
$$XPDF_DIR/splash/SplashT1FontEngine.cc
$$XPDF_DIR/splash/SplashT1FontFile.cc
Créer le Makefile
# cd /usr/local/src/Sankore-ThirdParty/xpdf
# /usr/local/Trolltech/Qt-4.7.3/bin/qmake xpdf.pro -spec linux-g++
Lancer la compilation
# make
Le fichier /usr/local/src/Sankore-ThirdParty/xpdf/lib/linux/libxpdf.a est créé
Compilation de Sankoré 3en1
Certaines librairies n'étant pas prises en compte (bug ?), ajouter dans Sankore-ThirdParty/libs.pri à la ligne 19
LIBS += "-%$$PWD/xpdf/lib/$$SUB_LIB" "-lxpdf" "-lpaper" "-lt1"
Se placer dans le répertoire de Sankoré
# cd /usr/local/src/Sankore
Editer le fichier release.linux.sh et remplacer la ligne 22 par ces deux lignes :
22 QT_VERSION="4.7.3"
23 QT_PATH="/usr/local/Trolltech/Qt-${QT_VERSION}"
puis modifier la ligne 75 :
75 cp "$QT_LIBRARY_SOURCE_PATH/$1.so.${QT_VERSION}" "$QT_LIBRARY_DEST_PATH/"
et enfin modifier la ligne 90 :
cp "$QT_LIBRARY_SOURCE_PATH/libphonon.so.4.4.0" "$QT_LIBRARY_DEST_PATH/"
Lancer la compilation
# ./release.linux.sh
Le résultat de la compilation fournit un répertoire et un fichier archive compressé .tar.gz à installer
Le répertoire qui peut être tout de suite utilisable
# ls -l /usr/local/src/Sankore/build/linux/release/Sankore-3.1.1.xx.yy
Le fichier archive compressé .tar.gz qui peut être déployé sur d'autres machines
# ls -l /usr/local/src/Sankore/install/linux/Sankore 3.1.tar.gz