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 Ubuntu (32 et 64 bits) 10.04-2 (Lucid), 10.10 (Maverick) et 11.04 (Natty).
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 Ubuntu git
# apt-get 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 Ubuntu nécessaires à la compilation
# apt-get install zlib1g-dev libjpeg62-dev libtiff4-dev libmng-dev libpng12-dev libdirectfb-dev libgstreamer-plugins-base0.10-dev libgstreamer0.10-dev libpulse-dev libaudio-dev libasound2-dev libfreetype6-dev libfontconfig1-dev libts-dev libcups2-dev libdbus-1-dev libglib2.0-dev libgtk2.0-dev libx11-dev libxext-dev libxcursor-dev libxfixes-dev libxrandr-dev libxrender-dev libxv-dev libxinerama-dev libxi-dev libsm-dev libssl-dev libphonon-dev make qt4-qmake g++ libt1-dev x11proto-print-dev libmotif-dev libxp-dev libpaper-dev libssl-dev
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
# 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
# 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