Date de publication: le vendredi 17 août 2007 à 14h05
Dernière modification: par Pascal BOYER le mardi 14 septembre 2010 à 23h52
« Article précédent: Apache 1.3.37 : compiler un serveur web (I)
» Article suivant: Apache 1.3.37 : installer les sources du serveur (III)
Vous tous, ô mes amis!
Vous le savez et je le sais:
notre vie passe en une fois,
en un seul jour, en une nuit,
c'est le dépouillement.
Nous ne sommes venus que pour nous rencontrer et sur terre la vie n'est qu'un prêt.
Cet article, très long, présente la procédure détaillée de la compilation de différentes librairies utilisées par PHP ou des modules de Apache. Je me suis astreint à donner le plus de détails possible pour que les personnes qui ne sont pas expertes en compilation puissent avoir le maximum de repères à chaque étape de la compilation/installation.
Cependant, j'insiste sur le fait qu'il n'est en rien obligatoire de procéder à ces compilations pour installer un serveur Apache fonctionnel et ceux qui le souhaitent, peuvent directement passer à l'article suivant. Veillez alors simplement à bien installer les versions de développement des packages de ces librairies afin de pouvoir compiler PHP et certains modules.
Vous trouverez également, sur le site apachefrance.com , des informations générale et de compilation des librairies suivantes:
- MM
- FreeType
- GD
- PDFlib
Sur les systèmes Linux, les logiciels externes compilés/installés à partir des sources sont habituellement placés dans un sous-répertoire du répertoire prévu à cet effet, à savoir:
/usr/local/
Pour éviter que la pagaille ne s'installe au bout d'un certain temps, celui au bout duquel on ne se souvient plus de ce que l'on a fait, ni pourquoi on l'a fait, nous allons créer un sous-répertoire ServeurWeb et y installer tout ce qui est en rapport avec la mise en oeuvre de Apache:
cd /usr/local
mkdir ServeurWeb
Si cela ne vous convient pas, pensez, par la suite, à adapter les chemins des commandes.
Optimiser la compilation
Il est possible d'optimiser la compilation en modifiant simplement le niveau d'optimisation utilisé par le compilateur. Par défaut, le niveau est -O2. Il est possible de passer en toute sécurité au niveau -O3. Pour cela, on dispose de deux solutions.
- Soit on exporte la variable CFLAGS :
export CFLAGS="-O3"
...auquel cas cette valeur est utilisée tant que l'on reste dans la même session shell.
- Soit on indique au cas par cas, et donc à chaque fois, la valeur que l'on souhaite pour cette variable:
./configure CFLAGS="-O3" --with-xxxx=xxx --with-xxx
:
Dans la commande ci-dessus, ce n'est pas un zéro "0" mais la lettre O majuscule qui est placée devant le chiffre 3 !
Apache 1.3.37 : compiler et installer la librairie MM
:
Dans la mesure où la librairie MM est utilisée par les modules mod_ssl et mod_php, il est important de procéder à son installation dès à présent.
:
Il peut-être instructif de lire la section du fichier INSTALL de mod_ssl consacrée à la compilation de MM. On y trouve par exemple ceci:
For instance this allows mod_ssl to use a high-performance RAM-based session cache instead of a disk-based one.
Par exemple, MM permet au module mod_ssl d'utiliser les hautes performances de la mémoire RAM pour placer les données plutôt que d'utiliser le disque dur.
Sur le site de apachefrance.com on peut lire ceci:
« MM est une librairie qui permet une utilisation simplifiée de la mémoire partagée (ou shared memory) utilisée lors de la communication inter-processus (ou IPC, Inter Processus Communication) sur les plates-formes de type Unix. La raison pour laquelle il est intéressant d'installer cette librairie sur votre système est lors de l'utilisation des sessions avec PHP 4.
En effet, Tobias Ratschiller, dans son article sur la gestion des sessions recommende la librairie MM : "si vous souhaitez des performances élevées, le module mm est une alternative très intéressante, car il permet le stockage des données de session en mémoire partagée (NDR : plutôt que dans un fichier) et n'est donc pas limité par les perfornances du sous-système disque".»
Télécharger la librairie MM
On se place dans le répertoire ServeurWeb:
cd /usr/local/ServeurWeb
...et on télécharge la dernière version de la librairie directement à partir la page d'accueil du projet MM ou, plus simplement, avec la commande wget:
wget ftp://ftp.ossp.org/pkg/lib/mm/mm-1.4.2.tar.gz
--00:26:33-- ftp://ftp.ossp.org/pkg/lib/mm/mm-1.4.2.tar.gz => `mm-1.4.2.tar.gz' Résolution de ftp.ossp.org... 195.30.6.156 Connexion vers ftp.ossp.org|195.30.6.156|:21...connecté. Ouverture de session en anonymous...Session établie! ==> SYST ... complété. ==> PWD ... complété. ==> TYPE I ... complété. ==> CWD /pkg/lib/mm ... complété. ==> PASV ... complété. ==> RETR mm-1.4.2.tar.gz ... complété. Taille: 344 903 (337K) (non certifiée) 100%[=========================================>] 344 903 1.26M/s 00:26:34 (1.26 MB/s) - « mm-1.4.2.tar.gz » sauvegardé [344903]
Puis on extrait le contenu de l'archive:
tar zxfv mm-1.4.2.tar.gz
On se place dans le nouveau répertoire:
cd mm-1.4.2
Compiler et installer MM
On crée le Makefile:
./configure --disable-shared
Cette commande très verbeuse se termine ainsi:
Output Substitution: configure: creating ./config.status config.status: creating Makefile config.status: creating mm-config config.status: creating config.h config.status: executing adjustment commands
Le fichier Makefile étant créé, on peut compiler la librairie:
make
./libtool --quiet --mode=compile gcc -c -O3 mm_global.c ./libtool --quiet --mode=compile gcc -c -O3 mm_alloc.c ./libtool --quiet --mode=compile gcc -c -O3 mm_core.c ./libtool --quiet --mode=compile gcc -c -O3 mm_lib.c ./libtool --quiet --mode=compile gcc -c -O3 mm_vers.c ./libtool --quiet --mode=link gcc -o libmm.la mm_global.lo mm_alloc.lo mm_core.lo mm_lib.lo mm_vers.lo \ -rpath /usr/local/lib -version-info `./shtool version -l c -d libtool mm_vers.c` ./libtool --quiet --mode=compile gcc -c -O3 mm_test.c ./libtool --quiet --mode=link gcc -o mm_test mm_test.lo libmm.la
Pour information: dans les lignes ci-dessus on retrouve la valeur -O3 du paramètre CFLAGS employée pour la compilation.
On effectue un petit test:
make test
...dont la sortie très verbeuse doit se terminer par ces lignes (surtout la dernière !):
Checking for memory leaks Fine, we have again 1048576 bytes available Destroying MM object OK - ALL TESTS SUCCESSFULLY PASSED.
Et on termine en installant la librairie:
make install
./shtool mkdir -f -p -m 755 /usr/local/bin ./shtool mkdir -f -p -m 755 /usr/local/include ./shtool mkdir -f -p -m 755 /usr/local/lib ./shtool mkdir -f -p -m 755 /usr/local/share/man/man1 ./shtool mkdir -f -p -m 755 /usr/local/share/man/man3 ./shtool install -c -m 755 mm-config /usr/local/bin/mm-config ./shtool install -c -m 644 mm-config.1 /usr/local/share/man/man1/mm-config.1 ./shtool install -c -m 644 mm.3 /usr/local/share/man/man3/mm.3 ./shtool install -c -m 644 mm.h /usr/local/include/mm.h ./shtool install -c -m 644 .libs/libmm.lai /usr/local/lib/libmm.la ./shtool install -c -m 644 .libs/libmm.a /usr/local/lib/libmm.a chmod 644 /usr/local/lib/libmm.a ranlib /usr/local/lib/libmm.a PATH="$PATH:/sbin" ldconfig -n /usr/local/lib ---------------------------------------------------------------------- Libraries have been installed in: /usr/local/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,--rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ----------------------------------------------------------------------
Les lignes véritablement instructives sont celles qui contiennent le mot install car elles nous révèlent où ont été déposées les librairies qui viennent d'être compilées.
:
Les 5 premières lignes indiquent que 5 répertoires ont été créés (sauf s'ils existaient déjà bien sûr). Le fait que ces 5 répertoires aient tous été créés dans /usr/local/ est dû au fait que la valeur par défaut du paramètre --prefix de la commande ./configure vaut justement /usr/local (pour le savoir il suffit de lancer la commande ./configure --help)
Voici les nouvelles librairies statiques compilées:
ls -la /usr/local/lib/libmm.*
-rw-r--r-- 1 root staff 15828 2007-08-20 09:34 /usr/local/lib/libmm.a -rw-r--r-- 1 root staff 736 2007-08-20 09:34 /usr/local/lib/libmm.la
Apache 1.3.37 : compiler et installer gettext
Gettext est utilisé pour l'internationalisation des logiciel et permet d'afficher les messages dans la langue native de l'utilisateur.
Voici le lien vers le site officiel du projet: gettext
Voici le lien vers la page que lui consacre wikipedia: gettext sur wikipedia
Télécharger gettext
On se place dans notre répertoire ServeurWeb:
cd /usr/local/ServeurWeb
On télécharge l'archive à partir de cette page de téléchargement ou directement avec wget:
wget ftp://ftp.gnu.org/gnu/gettext/gettext-0.16.1.tar.gz
On extrait le contenu de l'archive:
tar zxfv gettext-0.16.1.tar.gz
On se place dans le répertoire de la librairie:
cd gettext-0.16.1
Compiler et installer gettext
On crée le Makefile (on refuse la création de librairies dynamiques).
./configure --disable-shared
On compile:
make
On lance le test:
make check
Il est possible d'obtenir un message d'erreur relatif aux tests avec PHP. On en tient pas compte et on passe à l'étape suivante...
...et on installe:
make install
Voici les nouvelles librairies statiques présentes dans le répertoire /sur/local/lib/:
drwxr-sr-x 2 root staff 4096 2007-08-20 14:20 gettext -rw-r--r-- 1 root staff 49908 2007-08-20 14:19 libasprintf.a -rwxr-xr-x 1 root staff 752 2007-08-20 14:19 libasprintf.la -rwxr-xr-x 1 root staff 762 2007-08-20 14:20 libgettextlib.la -rw-r--r-- 1 root staff 356356 2007-08-20 14:20 libgettextpo.a -rwxr-xr-x 1 root staff 759 2007-08-20 14:20 libgettextpo.la -rwxr-xr-x 1 root staff 794 2007-08-20 14:20 libgettextsrc.la
Apache 1.3.37 : compiler et installer openSSL
Les librairies openSSL sont utilisées par le module mod_ssl.
Il est évident que vous pouvez vous dispenser de l'installation manuelle de cette librairie et préférer leur installation au moyen du package debian. Au final, quelque soit la méthode d'installation choisie pour ces librairies, le module mod_ssl fonctionnera quand même et utilisera les librairies que nous lui dirons d'utiliser.
Télécharger openSSL
On se place dans notre répertoire ServeurWeb:
cd /usr/local/ServeurWeb
On télécharge la dernière archive sur le site openssl.org avec cette commande:
wget http://www.openssl.org/source/openssl-0.9.8e.tar.gz
--17:48:42-- http://www.openssl.org/source/openssl-0.9.8e.tar.gz => `openssl-0.9.8e.tar.gz' Résolution de www.openssl.org... 195.30.6.166 Connexion vers www.openssl.org|195.30.6.166|:80...connecté. requête HTTP transmise, en attente de la réponse...200 OK Longueur: 3 341 665 (3.2M) [application/x-tar] 100%[========================================>] 3 341 665 1.55M/s 17:48:46 (1.54 MB/s) - « openssl-0.9.8e.tar.gz » sauvegardé [3341665/3341665]
:
Comme il y a les signatures sur le site on peut en profiter pour
contrôler l'intégrité
de l'archive téléchargée.
On extrait le contenu de l'archive:
tar zxfv openssl-0.9.8e.tar.gz
On se place dans le nouveau répertoire:
cd openssl-0.9.8e
Compiler et installer openSSL
Dans le fichier INSTALL on peut lire ceci:
Note on shared libraries
Notes à propos des librairies partagées
Shared libraries have certain caveats. Binary backward compatibility can't be guaranteed before OpenSSL version 1.0. The only reason to use them would be to conserve memory on systems where several programs are using OpenSSL.
Les librairies partagées sont à envisager aux risques de l'utilisateur. La compatibilité binaire ascendante n'est pas garantie pour les versions antérieures à la version 1.0 de OpenSSL. La seule raison d'utiliser les librairies partagées serait de préserver la mémoire sur les systèmes où il y auraient plusieurs programmes utilisant OpenSSL.
Dans le fichier INSTALL de mod_ssl on peut lire:
- que l'option -DSSL_FORBID_ENULL permet d'interdire les cryptage vide.
-
que l'option -fPIC permet de compiler OpenSSL avec l'option Position Independent Code (Position du Code Indépendante). Cette option doit être utiliser lorsque l'on souhaite compiler le module mod_ssl en tant que DSO (Dynamic Shared Object - Objet Partagé Dynamique).
Il est très important de respecter la syntaxe de cette option.
- que l'option -no-threads permet d'accroître les performances de OpenSSL puisque, de toute façon, Apache 1.3 n'utilise pas les threads (flots d'exécution). Par défaut, OpenSSL est compilé en mode multi-threads.
Par ailleurs, il est important, pour cette librairie, de ne pas oublier de spécifier la valeur du préfix. Donc on crée le Makefile comme ceci:
./config --prefix=/usr/local no-shared no-threads
Puis on compile:
make
...
...
's/ /:/g'`; LD_LIBRARY_PATH=$LIBPATH:$LD_LIBRARY_PATH ${LDCMD} ${LDFLAGS} -o ${APPNAME:=dummytest}
dummytest.o ${LIBDEPS} )
make[2]: quittant le répertoire « /usr/local/ServeurWeb/openssl-0.9.8e/test »
make[1]: quittant le répertoire « /usr/local/ServeurWeb/openssl-0.9.8e/test »
making all in tools...
make[1]: entrant dans le répertoire « /usr/local/ServeurWeb/openssl-0.9.8e/tools »
make[1]: Rien à faire pour « all ».
make[1]: quittant le répertoire « /usr/local/ServeurWeb/openssl-0.9.8e/tools »
Il est recommandé de faire le test:
make test
Et on installe les librairies:
make install
Voici ce qu'il y a de nouveau dans le répertoire /usr/local/lib/:
... drwxr-sr-x 2 root staff 4096 2007-08-17 19:21 engines -rw-r--r-- 1 root staff 2225766 2007-08-17 19:21 libcrypto.a -rw-r--r-- 1 root staff 365870 2007-08-17 19:21 libssl.a ...
Apache 1.3.37 : compiler et installer Zlib
- Cette librairie est nécessaire à la compilation de la librairie zzip
Télécharger zlib
On se place dans notre répertoire ServeurWeb:
cd /usr/local/ServeurWeb
On télécharge l'archive sur le site officiel zlib.net ou avec wget:
wget http://www.gzip.org/zlib/zlib-1.2.3.tar.gz
On extrait le contenu de l'archive:
tar zxfv zlib-1.2.3.tar.gz
On se place dans le répertoire de la librairie:
cd zlib-1.2.3
Compiler et installer zlib
On crée le Makefile:
./configure --prefix=/usr/local
Checking for gcc... Building static library libz.a version 1.2.3 with gcc. Checking for unistd.h... Yes. Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf() Checking for vsnprintf() in stdio.h... Yes. Checking for return value of vsnprintf()... Yes. Checking for errno.h... Yes. Checking for mmap support... Yes.
On compile:
make
gcc -O3 -DUSE_MMAP -c -o example.o example.c gcc -O3 -DUSE_MMAP -c -o adler32.o adler32.c gcc -O3 -DUSE_MMAP -c -o compress.o compress.c gcc -O3 -DUSE_MMAP -c -o crc32.o crc32.c gcc -O3 -DUSE_MMAP -c -o gzio.o gzio.c gcc -O3 -DUSE_MMAP -c -o uncompr.o uncompr.c gcc -O3 -DUSE_MMAP -c -o deflate.o deflate.c gcc -O3 -DUSE_MMAP -c -o trees.o trees.c gcc -O3 -DUSE_MMAP -c -o zutil.o zutil.c gcc -O3 -DUSE_MMAP -c -o inflate.o inflate.c gcc -O3 -DUSE_MMAP -c -o infback.o infback.c gcc -O3 -DUSE_MMAP -c -o inftrees.o inftrees.c gcc -O3 -DUSE_MMAP -c -o inffast.o inffast.c ar rc libz.a adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o zutil.o inflate.o infback.o inftrees.o inffast.o gcc -O3 -DUSE_MMAP -o example example.o -L. libz.a gcc -O3 -DUSE_MMAP -c -o minigzip.o minigzip.c gcc -O3 -DUSE_MMAP -o minigzip minigzip.o -L. libz.a
On teste:
make test
hello world zlib version 1.2.3 = 0x1230, compile flags = 0x55 uncompress(): hello, hello! gzread(): hello, hello! gzgets() after gzseek: hello! inflate(): hello, hello! large_inflate(): OK after inflateSync(): hello, hello! inflate with dictionary: hello, hello! *** zlib test OK ***
Et on installe:
make install
cp zlib.h zconf.h /usr/local/include chmod 644 /usr/local/include/zlib.h /usr/local/include/zconf.h cp libz.a /usr/local/lib cd /usr/local/lib; chmod 755 libz.a cd /usr/local/lib; if test -f libz.so.1.2.3; then \ rm -f libz.so libz.so.1; \ ln -s libz.so.1.2.3 libz.so; \ ln -s libz.so.1.2.3 libz.so.1; \ (ldconfig || true) >/dev/null 2>&1; \ fi cp zlib.3 /usr/local/share/man/man3 chmod 644 /usr/local/share/man/man3/zlib.3
Une nouvelle librairie statique a été compilée:
ls -la /usr/local/lib/libz.a
-rwxr-xr-x 1 root staff 89092 2007-08-17 19:53 libz.a
Apache 1.3.37 : compiler et installer libpng
Cette librairie à besoin de zlib
Télécharger libpng
On se place dans notre répertoire ServeurWeb:
cd /usr/local/ServeurWeb
On télécharge l'archive sur le site officiel libpng.org ou avec wget:
wget http://prdownloads.sourceforge.net/libpng/libpng-1.2.18.tar.gz?download
On contrôle l'intégrité du fichier:
md5sum libpng-1.2.18.tar.gz
bd08a55e319022a7cdc6e3882d6b9497 libpng-1.2.18.tar.gz
...que l'on contrôle avec la signature proposée en ligne sur la page de téléchargement:
bd08a55e319022a7cdc6e3882d6b9497
On extrait le contenu de l'archive:
tar zxfv libpng-1.2.18.tar.gz
On se place dans le répertoire de la librairie:
cd libpng-1.2.18
Compiler et installer libpng
On crée le Makefile (on refuse la création de librairies dynamiques/partagées):
./configure --disable-shared
On compile:
make check
... ... make check-TESTS make[1]: entrant dans le répertoire « /usr/local/ServeurWeb/libpng-1.2.18 » Testing libpng version 1.2.18 with zlib version 1.2.3 libpng version 1.2.18 - May 15, 2007 Copyright (c) 1998-2007 Glenn Randers-Pehrson Copyright (c) 1996-1997 Andreas Dilger Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. library (10218): libpng version 1.2.18 - May 15, 2007 (header) pngtest (10218): libpng version 1.2.18 - May 15, 2007 (header) png_sizeof(png_struct)=728, png_sizeof(png_info)=288 Testing ./pngtest.png: Pass 0: rwrwrwrwrwrwrwrwrw Pass 1: rwrwrwrwrwrwrwrwrw Pass 2: rwrwrwrwrwrwrwrw Pass 3: rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw Pass 4: rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw Pass 5: rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw rwrwrwrw Pass 6: rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw rwrwrwrwrw PASS (9782 zero samples) Filter 0 was used 21 times Filter 1 was used 15 times Filter 2 was used 52 times Filter 3 was used 10 times Filter 4 was used 33 times TIME = 7 Jun 1996 17:58:08 +0000 libpng passes test PASS: test-pngtest.sh ================== All 1 tests passed ================== make[1]: quittant le répertoire « /usr/local/ServeurWeb/libpng-1.2.18 »
La 4ème ligne du message ci-dessous nous indique que les librairies zlib que nous avons précédemment compilées ont bien été prises en compte.
On termine en installant les librairies:
make install
Voici les nouvelles librairies statiques compilées:
ls -la /usr/local/lib/libpng*
-rw-r--r-- 1 root staff 189652 2007-08-17 20:39 libpng12.a -rwxr-xr-x 1 root staff 753 2007-08-17 20:39 libpng12.la lrwxrwxrwx 1 root staff 10 2007-08-17 20:39 libpng.a -> libpng12.a lrwxrwxrwx 1 root staff 11 2007-08-17 20:39 libpng.la -> libpng12.la
Apache 1.3.37 : compiler et installer libxml2
Cette librairie est nécessaire à la compilation de libxslt que nous compilerons tout à l'heure.
Sur cette page du site xmlsoft.org vous trouverez les dernières versions de la librairie: dernière version de la librairie libxml.
Télécharger libxml2
On se place dans notre répertoire ServeurWeb:
cd /usr/local/ServeurWeb
On télécharge l'archive à partir de ce site ftp ou directement avec wget:
wget ftp://fr.rpmfind.net/pub/libxml/libxml2-2.6.29.tar.gz
On extrait le contenu de l'archive:
tar zxfv libxml2-2.6.29.tar.gz
On se place dans le répertoire de la librairie:
cd libxml2-2.6.29
Compiler et installer libxml2
Pour être compilée, cette librairie n'en requière aucune autre.
Par ailleurs, l'aide renvoyée par la commande ./configure --help nous indique que beaucoup d'options sont compilées par défaut.
On crée le Makefile (on refuse la création de librairies dynamiques/partagées):
./configure --disable-shared
On compile:
make
Et on installe:
make install
Voici les nouvelles librairies statiques compilées:
ls -la /usr/local/lib/libxml2.*
-rw-r--r-- 1 root staff 1849624 2007-08-17 21:58 libxml2.a -rwxr-xr-x 1 root staff 754 2007-08-17 21:58 libxml2.la -rw-r--r-- 1 root staff 211 2007-08-17 21:58 xml2Conf.sh
Apache 1.3.37 : compiler et installer libgpg-error
Cette librairie est nécessaire à la compilation de libgrypt
Cette librairie est liée au développement du logiciel GnuPG et sur cette page vous trouverez une description de libgpg-error
- Pour compiler cette librairie il faut installer g++.
Télécharger libgpg-error
On se place dans notre répertoire ServeurWeb:
cd /usr/local/ServeurWeb
On télécharge l'archive à partir de la page gnupg.org ou directement avec wget:
wget ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.4.tar.gz
On extrait le contenu de l'archive:
tar zxfv libgpg-error-1.4.tar.gz
On se place dans le répertoire de la librairie:
cd libgpg-error-1.4
Compiler et installer libgpg-error
On crée le Makefile (on refuse la création de librairies dynamiques/partagées):
./configure --disable-shared
On compile:
make
Et on installe:
make install
Voici les nouvelles librairies statiques compilées:
ls -la /usr/local/lib/libgpg-error.*
-rw-r--r-- 1 root staff 13830 2007-08-17 22:58 libgpg-error.a -rwxr-xr-x 1 root staff 771 2007-08-17 22:58 libgpg-error.la
Apache 1.3.37 : compiler et installer libgcrypt
Cette librairie est nécessaire (pas obligatoire) à libxslt.
Cette librairie est liée au développement du logiciel GnuPG et sur cette page vous trouverez une description de libgcrypt
- Pour compiler cette librairie il faut installer g++.
Télécharger libgcrypt
On se place dans notre répertoire ServeurWeb:
cd /usr/local/ServeurWeb
On télécharge l'archive à partir de la page gnupg.org ou directement avec wget:
wget ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.2.4.tar.bz2
On extrait le contenu de l'archive:
tar jxfv libgcrypt-1.2.4.tar.bz2
On se place dans le répertoire de la librairie:
cd libgcrypt-1.2.4
Compiler et installer libgcrypt
On crée le Makefile (on refuse la création de librairies dynamiques/partagées):
./configure --disable-shared --with-gpg-error-prefix=/usr/local
On compile:
make
Et on installe:
make install
Voici les nouvelles librairies statiques compilées:
ls -la /usr/local/lib/libgcrypt.*
-rw-r--r-- 1 root staff 482512 2007-08-17 23:05 libgcrypt.a -rwxr-xr-x 1 root staff 813 2007-08-17 23:05 libgcrypt.la
Apache 1.3.37 : compiler et installer libmcrypt
- Nécessite l'installation de g++ pour être compilé
- Cette librairie est nécessaire à la compilation de mycrypt lui nécessaire au fonctionnement de phpMyAdmin .
Voici le lien vers le site officiel du projet: libmcrypt
Télécharger libmcrypt
On se place dans notre répertoire ServeurWeb:
cd /usr/local/ServeurWeb
On télécharge l'archive à partir de cette page ou directement avec wget:
wget http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?modtime=1171868460&big_mirror=0
On extrait le contenu de l'archive:
tar zxfv libmcrypt-2.5.8.tar.gz
On se place dans le répertoire de la librairie:
cd libmcrypt-2.5.8
Compiler et installer libmcrypt
On crée le Makefile (on refuse la création de librairies dynamiques).
./configure --enable-shared --enable-static --disable-posix-threads
:
L'option --disable-posix-threads est obligatoire (voir cette page de
php.net
)
On compile:
make
On lance le test:
make check
... ... PASS: ciphertest AES tests (CFB, nCFB, nOFB, CTR) were successful. PASS: aestest ================== All 2 tests passed ================== make[2]: quittant le répertoire « /usr/local/ServeurWeb/libmcrypt-2.5.8/src » make[1]: quittant le répertoire « /usr/local/ServeurWeb/libmcrypt-2.5.8/src » Making check in doc make[1]: entrant dans le répertoire « /usr/local/ServeurWeb/libmcrypt-2.5.8/doc » make[1]: Rien à faire pour « check ». make[1]: quittant le répertoire « /usr/local/ServeurWeb/libmcrypt-2.5.8/doc » make[1]: entrant dans le répertoire « /usr/local/ServeurWeb/libmcrypt-2.5.8 » make[1]: quittant le répertoire « /usr/local/ServeurWeb/libmcrypt-2.5.8 »
Et on installe:
make install
Voici les nouvelles librairies compilées:
ls -la /usr/local/lib/libmcrypt*
-rw-r--r-- 1 root staff 302296 2007-08-21 15:19 /usr/local/lib/libmcrypt.a -rwxr-xr-x 1 root staff 806 2007-08-21 15:19 /usr/local/lib/libmcrypt.la lrwxrwxrwx 1 root staff 18 2007-08-21 15:19 /usr/local/lib/libmcrypt.so -> libmcrypt.so.4.4.8 lrwxrwxrwx 1 root staff 18 2007-08-21 15:19 /usr/local/lib/libmcrypt.so.4 -> libmcrypt.so.4.4.8 -rwxr-xr-x 1 root staff 228605 2007-08-21 15:19 /usr/local/lib/libmcrypt.so.4.4.8
Prise en compte des nouvelles librairies
Pour que le système prenne en compte les nouvelles librairies partagées du répertoires /usr/local/lib/ il faut commencer par s'assurer que la commande ldconfig regarde dans ce répertoire. Pour cela, il suffit de lancer cette commande:
ldconfig
Puis on recherche dans son cache, par exemple, la librairie libmcrypt.so:
ldconfig --print-cache |grep libmcrypt
libmcrypt.so.4 (libc6) => /usr/local/lib/libmcrypt.so.4 libmcrypt.so.4 (libc6) => /usr/lib/libmcrypt.so.4 libmcrypt.so (libc6) => /usr/local/lib/libmcrypt.so libmcrypt.so (libc6) => /usr/lib/libmcrypt.so
Si la première ou troisième ligne n'apparaît pas, alors il faut éditer le fichier de configuration /etc/ld.so.conf et y placer cette ligne:
/usr/local/lib
Puis relancer les deux commandes ci-dessus.
Apache 1.3.37 : compiler et installer mcrypt
Cette librairie est nécessaire (pas obligatoire) à libxslt.
Voici le lien vers le site officiel de libmcrypts: mcrypt
Pour s'assurer que les binaires mcrypt et mdecrypt seront compilés en static et n'utiliseront pas de librairies dynamiques, il faut désinstaller les trois paquets suivants:
- libmcrypt4
- php4-mcrypt
- libmcrypt-dev
Télécharger mcrypt
On se place dans notre répertoire ServeurWeb:
cd /usr/local/ServeurWeb
On télécharge l'archive à partir de cette page ou directement avec wget:
wget http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.6.tar.gz?modtime=1181390179&big_mirror=0
On extrait le contenu de l'archive:
tar zxfv mcrypt-2.6.6.tar.gz
On se place dans le répertoire de la librairie:
cd mcrypt-2.6.6
Compiler et installer mcrypt
On crée le Makefile:
:
L'option --with-included-gettext est donnée dans le fichier INSTALL
./configure --enable-shared --enable-static --enable-static-link --with-libmcrypt-prefix=/usr/local --with-included-gettext
On compile:
make
Et on installe:
make install
Voici les nouveaux binaires compilés:
ls -la /usr/local/bin/m*crypt*
-rwxr-xr-x 1 root staff 643911 2007-08-21 15:36 /usr/local/bin/mcrypt lrwxrwxrwx 1 root staff 6 2007-08-21 15:36 /usr/local/bin/mdecrypt -> mcrypt
Contrôler les dépendances d'un exécutable
Nous diposons d'un outil très pratique permettant de savoir instantanément les librairies dynamiques chargées/utilisées par les binaires (exécutables). On peut dès lors contrôler que le binaire mcrypt que l'on vient de compiler n'utilise pas de librairie partagé libmrypt. Pour cela, il suffit de lancer la commande suivante:
ldd /usr/local/bin/mcrypt
linux-gate.so.1 => (0xffffe000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7e4d000) /lib/ld-linux.so.2 (0xb7f86000)
Avant de supprimer les trois packages sités ci-dessus, j'ai fait une première compilation, puis j'ai lancé la commande ldd:
ldd /usr/local/bin/mcrypt
linux-gate.so.1 => (0xffffe000) libmcrypt.so.4 => /usr/lib/libmcrypt.so.4 (0xb7f0a000) <==== ICI !!! libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7dd9000) /lib/ld-linux.so.2 (0xb7f40000)
C'est comme ça que j'ai compris qu'il fallait supprimer les trois packages.
Apache 1.3.37 : compiler et installer libxslt
Sur cette page du site xmlsoft.org vous trouverez les dernières versions de la librairie: dernière version de la librairie libxslt.
Télécharger libxslt
On se place dans notre répertoire ServeurWeb:
cd /usr/local/ServeurWeb
On télécharge l'archive à partir de ce site ftp ou directement avec wget:
wget ftp://fr.rpmfind.net/pub/libxml/libxslt-1.1.21.tar.gz
On extrait le contenu de l'archive:
tar zxfv libxslt-1.1.21.tar.gz
On se place dans le répertoire de la librairie:
cd libxslt-1.1.21
Compiler et installer libxslt
On crée le Makefile:
:
Pour ne pas avoir de message d'erreur lié à libexslt.a et crypto.o lors de la compilation de Apache, il est indispensable de compiler, aussi, les librairies dynamiques de xslt.
./configure --enable-shared --enable-static --with-libxml-include-prefix=/usr/local --with-libxml-prefix=/usr/local --with-libxml-libs-prefix=/usr/local --with-crypto=/usr/local
On compile:
make
On lance le test:
make check
... ... Current Date : 2007-08-21T15:48:56+01:00 year : 2007 leap-year : false month-in-year : 8 month-name : August month-abbreviation : Aug week-in-year : 34 day-in-year : 233 day-in-month : 21 day-of-week-in-month : 3 day-in-week : 3 day-name : Tuesday day-abbreviation : Tue time : 15:48:56+01:00 hour-in-day : 15 minute-in-hour : 48 second-in-minute : 56 ## Running exslt common tests make[5]: quittant le répertoire « /usr/local/ServeurWeb/libxslt-1.1.21/tests/exslt/date » make[4]: quittant le répertoire « /usr/local/ServeurWeb/libxslt-1.1.21/tests/exslt » make[4]: entrant dans le répertoire « /usr/local/ServeurWeb/libxslt-1.1.21/tests/plugins » ## Running plugin tests mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../libxslt -I/usr/local -I/usr/local/include/libxml2 -DMODULE_COMPILE -I/usr/local -I/usr/local/include/libxml2 -O3 -Wall -MT xmlsoft_org_xslt_testplugin_la-testplugin.lo -MD -MP -MF .deps/xmlsoft_org_xslt_testplugin_la-testplugin.Tpo -c testplugin.c -fPIC -DPIC -o .libs/xmlsoft_org_xslt_testplugin_la-testplugin.o gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../libxslt -I/usr/local -I/usr/local/include/libxml2 -DMODULE_COMPILE -I/usr/local -I/usr/local/include/libxml2 -O3 -Wall -MT xmlsoft_org_xslt_testplugin_la-testplugin.lo -MD -MP -MF .deps/xmlsoft_org_xslt_testplugin_la-testplugin.Tpo -c testplugin.c -o xmlsoft_org_xslt_testplugin_la-testplugin.o >/dev/null 2>&1 gcc -shared .libs/xmlsoft_org_xslt_testplugin_la-testplugin.o -Wl,--rpath -Wl, /usr/local/ServeurWeb/libxslt-1.1.21/libxslt/.libs -Wl,--rpath -Wl,/usr/local/lib ../../libxslt/.libs/libxslt.so -L/usr/local -L/usr/local/lib /usr/local/lib/libxml2.a -lz -lm -Wl, -soname -Wl, xmlsoft_org_xslt_testplugin.so -o. libs/xmlsoft_org_xslt_testplugin.so ar cru .libs/xmlsoft_org_xslt_testplugin.a xmlsoft_org_xslt_testplugin_la-testplugin.o ranlib .libs/xmlsoft_org_xslt_testplugin.a creating xmlsoft_org_xslt_testplugin.la (cd .libs && rm -f xmlsoft_org_xslt_testplugin.la && ln -s ../xmlsoft_org_xslt_testplugin.la xmlsoft_org_xslt_testplugin.la) make[4]: quittant le répertoire « /usr/local/ServeurWeb/libxslt-1.1.21/tests/plugins » make[3]: quittant le répertoire « /usr/local/ServeurWeb/libxslt-1.1.21/tests » make[2]: quittant le répertoire « /usr/local/ServeurWeb/libxslt-1.1.21 » make[1]: quittant le répertoire « /usr/local/ServeurWeb/libxslt-1.1.21 »
Et on installe:
make install
Voici les nouvelles librairies compilées:
ls -la /usr/local/lib/lib*xslt.*
-rw-r--r-- 1 root staff 91558 2007-08-21 15:51 /usr/local/lib/libexslt.a -rwxr-xr-x 1 root staff 907 2007-08-21 15:51 /usr/local/lib/libexslt.la lrwxrwxrwx 1 root staff 18 2007-08-21 15:51 /usr/local/lib/libexslt.so -> libexslt.so.0.8.13 lrwxrwxrwx 1 root staff 18 2007-08-21 15:51 /usr/local/lib/libexslt.so.0 -> libexslt.so.0.8.13 -rwxr-xr-x 1 root staff 508733 2007-08-21 15:51 /usr/local/lib/libexslt.so.0.8.13 -rw-r--r-- 1 root staff 277410 2007-08-21 15:51 /usr/local/lib/libxslt.a -rwxr-xr-x 1 root staff 837 2007-08-21 15:51 /usr/local/lib/libxslt.la lrwxrwxrwx 1 root staff 17 2007-08-21 15:51 /usr/local/lib/libxslt.so -> libxslt.so.1.1.21 lrwxrwxrwx 1 root staff 17 2007-08-21 15:51 /usr/local/lib/libxslt.so.1 -> libxslt.so.1.1.21 -rwxr-xr-x 1 root staff 1987683 2007-08-21 15:51 /usr/local/lib/libxslt.so.1.1.21
Prise en compte des nouvelles librairies
Pour que le système prenne en compte les nouvelles librairies partagées du répertoires /usr/local/lib/ il faut commencer par s'assurer que la commande ldconfig regarde dans ce répertoire. Pour cela, il suffit de lancer cette commande:
ldconfig
Puis on recherche dans son cache, par exemple, la librairie libxslt.so.1:
ldconfig --print-cache |grep libxslt
libxslt.so.1 (libc6) => /usr/local/lib/libxslt.so.1 libxslt.so.1 (libc6) => /usr/lib/libxslt.so.1 libxslt.so (libc6) => /usr/local/lib/libxslt.so libxslt.so (libc6) => /usr/lib/libxslt.so
Si la première ou troisième ligne n'apparaît pas, alors il faut éditer le fichier de configuration /etc/ld.so.conf et y placer cette ligne:
/usr/local/lib
Puis relancer les deux commandes ci-dessus.
Apache 1.3.37 : compiler et installer libgd2
- Cette librairie est nécessaire au fonctionnement de phpMyAdmin .
Sur cette page du site libgd.org vous trouverez les dernières versions de la librairie: dernière version de la librairie libgd.
Pour être compilée, il faut installer sur le système:
- libfreetype6-dev
- libjpeg62-dev
- libxpm-dev ou libgd2-xpm-dev (ou les deux ?)
- libfontconfig1-dev
Une fois installés, il n'y a rien à faire d'autre.
Il est bien sûr possible de compiler/installer ces librairies plutôt que d'avoir recours aux packages Debian.
Télécharger libgd2
On se place dans notre répertoire ServeurWeb:
cd /usr/local/ServeurWeb
On télécharge l'archive (et éventuellement la signature md5) à partir de cette page ou directement avec wget:
wget http://www.libgd.org/releases/gd-2.0.35.tar.gz
On extrait le contenu de l'archive:
tar zxfv gd-2.0.35.tar.gz
On se place dans le répertoire de la librairie:
cd gd-2.0.35
Compiler et installer libgd2
On crée le Makefile (on refuse la création de librairies dynamiques/partagées). Aucune option particulière relative aux packages de développement mentionnés ci-dessus n'est nécessaire à la commande ci-dessous.
./configure --disable-shared
... ... checking for libpng12-config... /usr/local/bin/libpng12-config checking for libpng-config... /usr/local/bin/libpng-config checking png.h usability... yes checking png.h presence... yes checking for png.h... yes checking for png_create_read_struct in -lpng12... yes checking for freetype-config... /usr/bin/freetype-config checking for FT_Init_FreeType in -lfreetype... yes checking ft2build.h usability... yes checking ft2build.h presence... yes checking for ft2build.h... yes checking for FcInit in -lfontconfig... yes checking for jpeg_set_defaults in -ljpeg... yes checking for XpmReadFileToXpmImage in -lXpm... yes checking for the pthreads library -lpthreads... no checking whether pthreads work without any flags... yes checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE checking if more special flags are required for pthreads... no ** Configuration summary for gd 2.0.34: Support for PNG library: yes Support for JPEG library: yes Support for Freetype 2.x library: yes Support for Fontconfig library: yes Support for Xpm library: yes Support for pthreads: yes configure: creating ./config.status config.status: creating Makefile config.status: creating config/Makefile config.status: creating config/gdlib-config config.status: creating test/Makefile config.status: creating config.h config.status: executing depfiles commands
Les deux premières lignes du message indiquent que ce sont bien les librairies libpng que nous avons compilées qui sont utilisées.
On compile:
make
Et on installe:
make install
Voici les nouvelles librairies statiques compilées:
ls -la /usr/local/lib/libgd.*
-rw-r--r-- 1 root staff 295878 2007-08-17 23:45 libgd.a -rwxr-xr-x 1 root staff 855 2007-08-17 23:45 libgd.la
Apache 1.3.37 : compiler et installer mhash
Voici le lien vers le site officiel de mhash: mhash
Télécharger mhash
On se place dans notre répertoire ServeurWeb:
cd /usr/local/ServeurWeb
On télécharge l'archive à partir de cette page ou directement avec wget:
wget http://downloads.sourceforge.net/mhash/mhash-0.9.9.tar.gz?modtime=1175740843&big_mirror=0
On extrait le contenu de l'archive:
tar zxfv mhash-0.9.9.tar.gz
On se place dans le répertoire de la librairie:
cd mhash-0.9.9
Compiler et installer mhash
On crée le Makefile (on refuse la création de librairies dynamiques/partagées).
./configure --disable-shared
On compile:
make
Et on installe:
make install
Voici les nouvelles librairies statiques compilées:
ls -la /usr/local/lib/libmhash.*
-rw-r--r-- 1 root staff 329336 2007-08-18 13:27 libmhash.a -rwxr-xr-x 1 root staff 759 2007-08-18 13:27 libmhash.la
Apache 1.3.37 : compiler et installer libmcal
La compilation de la librairie que l'on trouve sur le site officiel est problématique. Et pour tout dire, je ne suis jamais arrivé jusqu'au bout.
Il faut commencer par installer une ancienne version de GCC pour pouvoir compiler les drivers, et ensuite on rencontre des problèmes avec l'analyseur syntaxique... bref... autant installer le package debian:
- libmcal0-dev
apt-get install libmcal0-dev
L'autre solution, voir ci-dessous, consiste à télécharger les sources du package debian pour les compiler. Pour cela, il faut tout d'abord installer le package apt-src:
apt-get install apt-src
:
Même avec cette solution, j'obtiens un beau message d'erreur lors de la compilation de Apache. J'ai donc fini par abandonner et j'installe les packages Debian (qui ne donnent pas plus de résultat d'ailleurs :-(). Je laisse tout de même la procédure pour ceux qui souhaitent quand même essayer.
Télécharger libmcal
On se place dans notre répertoire ServeurWeb:
cd /usr/local/ServeurWeb
Puis on télécharge les sources de la librairie:
apt-get source libmcal0
Lecture des listes de paquets... Fait Construction de l'arbre des dépendances... Fait Nécessité de prendre 78,0ko dans les sources. Réception de : 1 http://ftp.fr.debian.org etch/main libmcal 0.6-16 (dsc) [583B] Réception de : 2 http://ftp.fr.debian.org etch/main libmcal 0.6-16 (tar) [47,2kB] Réception de : 3 http://ftp.fr.debian.org etch/main libmcal 0.6-16 (diff) [30,1kB] 78,0ko réceptionnés en 8s (9475o/s) gpg: Signature made dim 19 fév 2006 22:58:29 CET using DSA key ID 0FE53DD9 gpg: Can't check signature: public key not found dpkg-source : extraction de libmcal dans libmcal-0.6 dpkg-source : extraction de libmcal_0.6.orig.tar.gz dpkg-source : ./libmcal_0.6-16.diff.gz
:
Les 3 fichiers téléchargés sont placés à la racine du répertoire à partir duquel est lancé la commande et l'extraction du contenu de l'archive tar fait automatiquement (voir l'antépénultième ligne du message ci-dessus).
Compiler et installer les drivers icap et mstore
Pour compiler la librairie, il faut d'abord compiler les deux drivers icap et mstore qu'elle contient. Donc on commence par se placer dans le répertoire de icap:
cd libmcal-0.6/icap
On édite le Makefile pré-existant pour modifier les chemins qui ne sont pas, par défaut, les bons:
vi Makefile
... 7 INCLUDE = -I.. -I. -I/usr/local/include ... ... 18 mkdir -p $(DESTDIR)/usr/local/include/icap 19 install -m644 *.h $(DESTDIR)/usr/local/include/icap ... ...
On compile:
make
gcc -O3 -D_REENTRANT -Wall -I.. -I. -I/usr/local/include -c -o icap.o icap.c gcc -O3 -D_REENTRANT -Wall -I.. -I. -I/usr/local/include -c -o icaproutines.o icaproutines.c flex icapscanner.lex gcc -O3 -D_REENTRANT -Wall -I.. -I. -I/usr/local/include -c -o lex.icap_yy.o lex.icap_yy.c ld -r -o icap_driver.o icap.o icaproutines.o lex.icap_yy.o gcc -c -fPIC -O3 -D_REENTRANT -Wall -I.. -I. -I/usr/local/include -o icap.lo icap.c gcc -c -fPIC -O3 -D_REENTRANT -Wall -I.. -I. -I/usr/local/include -o icaproutines.lo icaproutines.c gcc -c -fPIC -O3 -D_REENTRANT -Wall -I.. -I. -I/usr/local/include -o lex.icap_yy.lo lex.icap_yy.c ld -r -o icap_driver.lo icap.lo icaproutines.lo lex.icap_yy.lo touch bootstrap.in
Puis on installe:
make install
touch bootstrap.in mkdir -p /usr/local/include/icap install -m644 *.h /usr/local/include/icap
On se déplace dans le répertoire de mstore:
cd ../mstore
On édite le Makefile pré-existant pour modifier les chemins qui ne sont pas, par défaut, les bons:
vi Makefile
... ... 7 INCLUDE = -I.. -I. -I/usr/local/include ... ... 18 mkdir -p $(DESTDIR)/usr/local/include/mstore 19 install -m644 *.h $(DESTDIR)/usr/local/include/mstore ...
On compile:
make
gcc -O3 -D_REENTRANT -Wall -I.. -I. -I/usr/local/include -c -o mstore.o mstore.c mstore.c: In function ‘read_event’: mstore.c:285: warning: pointer targets in passing argument 2 of ‘ical_preprocess’ differ in signedness mstore.c: In function ‘mstore_store’: mstore.c:596: warning: assignment discards qualifiers from pointer target type ld -r -o mstore_driver.o mstore.o gcc -c -fPIC -O3 -D_REENTRANT -Wall -I.. -I. -I/usr/local/include -o mstore.lo mstore.c mstore.c: In function ‘read_event’: mstore.c:285: warning: pointer targets in passing argument 2 of ‘ical_preprocess’ differ in signedness mstore.c: In function ‘mstore_store’: mstore.c:596: warning: assignment discards qualifiers from pointer target type ld -r -o mstore_driver.lo mstore.lo touch bootstrap.in
Puis on installe:
make install
touch bootstrap.in mkdir -p /usr/local/include/mstore install -m644 *.h /usr/local/include/mstore
Compiler et installer libmcal
On se place dans le répertoire de la librairie:
cd ..
On rend le fichier configure exécutable:
chmod +x configure
On crée le Makefile:
./configure --disable-shared --with-icap --with-mstore --prefix=/usr/local
On édite le Makefile qui est créé par la commande ./configure à partir du fichier Makefile.in pour modifier des chemins:
vi Makefile
... ... 38 mkdir -p $(DESTDIR)/usr/local/lib 39 cp -af *.so* $(DESTDIR)/usr/local/lib 40 cp -af $(LIBCAL) $(DESTDIR)/usr/local/lib 41 mkdir -p $(DESTDIR)/usr/local/include 42 cp -af *.h $(DESTDIR)/usr/local/include ...
On compile:
make
... ... gcc -O3 -D_REENTRANT -Wall -Imstore -Iicap -I. -c -o lex.ical_yy.o lex.ical_yy.c gcc -O3 -D_REENTRANT -Wall -Imstore -Iicap -I. -c -o icalroutines.o icalroutines.c icalroutines.c: In function ‘ical_parse_vevent’: icalroutines.c:247: warning: pointer targets in passing argument 1 of ‘cal_decode_base64’ differ in signedness icalroutines.c:247: warning: pointer targets in assignment differ in signedness icalroutines.c: In function ‘icalout_string’: icalroutines.c:545: warning: pointer targets in passing argument 2 of ‘ical_encode_base64’ differ in signedness gcc -O3 -D_REENTRANT -Wall -Imstore -Iicap -I. -c -o cal_misc.o cal_misc.c rm -f libmcal.a ar r libmcal.a mcal.o datetime.o lex.ical_yy.o icalroutines.o cal_misc.o icap/icap_driver.o mstore/mstore_driver.o ar: création de libmcal.a
Et on install:
make install
Voici les nouvelles librairies compilées:
ls -la /usr/local/lib/libmcal.*
-rw-r--r-- 1 root root 79082 2007-08-18 15:40 libmcal.a lrwxrwxrwx 1 root root 14 2007-08-18 15:46 libmcal.so -> libmcal.so.0.6 lrwxrwxrwx 1 root root 14 2007-08-18 15:46 libmcal.so.0 -> libmcal.so.0.6 -rwxr-xr-x 1 root root 60388 2007-08-18 15:40 libmcal.so.0.6
Problèmes rencontrés
Il m'a été impossible de compiler:
- libzzip ou zziplib
- ImageMagick (Ce logiciel est indispensable à l'affichage des vignettes, etc... dans l'interface d'administration de eZ Publish)
...que ce soit les archives récupérées sur les sites officiels ou les sources des packages Debian.
Commentaires














