Compilation de Sankoré version 1.25.00

31 janvier 2016 - Vous recherchez la librairie Qt-sankore3.1 (la librairie Qt-4.7.3 modifiée pour Sankoré à l'époque) ?

Téléchargez la librairie Qt-sankore3.1.tgz ! (940 Mo)

Compilation du logiciel Sankoré 3en1 version 1.25.00 sous CentOS/RedHat (32 et 64 bits)

Cette méthode a été utilisée pour générer les binaires de Sankoré 3en1 version 1.25.00 sous CentOS/RedHat (32 et 64 bits) 5.6 et 6.0.

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 CentOS/RedHat git

# yum 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 CentOS/RedHat nécessaires à la compilation

# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt http://packages.atrpms.net/RPM-GPG-KEY.atrpms

Pour les CentOS 64 bits, ajouter dans le fichier /etc/yum.conf la ligne exclude=*.i386 *.i586 *.i686

Pour les CentOS 32 bits, ajouter dans le fichier /etc/yum.conf la ligne exclude=*.x86_64

Pour CentOS 5.6 32 bits

# yum localinstall http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm http://dl.atrpms.net/all/atrpms-repo-5-4.el5.i386.rpm

Pour CentOS 5.6 64 bits

# yum localinstall http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm http://dl.atrpms.net/all/atrpms-repo-5-4.el5.x86_64.rpm

Pour CentOS 6.0 32 bits

# yum localinstall http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm http://dl.atrpms.net/all/atrpms-repo-6-4.el6.i686.rpm

Pour CentOS 6.0 64 bits

# yum localinstall http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm http://dl.atrpms.net/all/atrpms-repo-6-4.el6.x86_64.rpm

Puis

# yum install gcc-c++ autoconf automake zlib-devel libjpeg-devel libtiff-devel libmng-devel libpng-devel directfb-devel gstreamer-plugins-base-devel gstreamer-devel nas-devel alsa-lib-devel freetype-devel fontconfig-devel tslib-devel cups-devel dbus-devel dbus-glib-devel glib2-devel gtk2-devel libX11-devel libXext-devel libXcursor-devel libXfixes-devel libXrandr-devel libXrender-devel libXv-devel libXinerama-devel libXi-devel libSM-devel openssl-devel make qt4-devel t1lib-devel xorg-x11-proto-devel openmotif-devel libXp-devel libpaper-devel nas nas-devel pulseaudio-lib-devel pulseaudio-libs pulseaudio-libs-glib2 pulseaudio-libs-zeroconf

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




Retour