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 OpenSUSE (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 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




Retour