Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

compilation de php-gtk difficile... Pb de lib.

3 réponses
Avatar
Vincent Verdon
Bonsoir,

après la dinde, je me suis mis en tête de compiler php-gtk.
En soi, rien de compliqué, ./configure, make,...
Mais configure me demande la glib2.6 au minimum ainsi que gtk+2.6 au
minimum.
Je vérifie et m'aperçois que les versions installées sont glib 2.30.2-4
gtk+ 2.24.8-2 et 3.2, c'est à dire des versions bien supérieures.
Je pressens un problème dans les sources.
Par curiosité, j'ai compilé une glib 2.6.x et configure à l'air bien
content. J'aimerai trouver une solution plus efficace que de réinstaller
de vieilles versions des libs !

Amicalement, Vincent Verdon

3 réponses

Avatar
Cem
Vincent Verdon writes:

après la dinde, je me suis mis en tête de compiler php-gtk.
En soi, rien de compliqué, ./configure, make,...
Mais configure me demande la glib2.6 au minimum ainsi que gtk+2.6 au
minimum.
Je vérifie et m'aperçois que les versions installées sont glib
2.30.2-4
gtk+ 2.24.8-2 et 3.2, c'est à dire des versions bien supérieure s.
Je pressens un problème dans les sources.
Par curiosité, j'ai compilé une glib 2.6.x et configure à l'air bien
content. J'aimerai trouver une solution plus efficace que de
réinstaller de vieilles versions des libs !



Bonjour,

Dans le fichier php_gtk.m4, les lignes suivantes me paraissent
bizarres...

glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 |
sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/1/'`
glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 |
sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/2/'`
glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 |
sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/3/'`

car en admettant que pkg-config --modversion glib-2.0 revoie 2.30.0,
echo '2.30.0'|sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/1/'
echo '2.30.0'|sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/2/'
echo '2.30.0'|sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/3/'
donnent comme résultat 2.30.0 et pas 2, 30 et 0 comme vraisemblablement
souhaités...

En revanche
echo '2.6.0'|sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/1/'
echo '2.6.0'|sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/2/'
echo '2.6.0'|sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/3/'
donnent bien les résultats attendus: 2, 6 et 0.

Avec sed 's/([0-9]*).([0-9]*).([0-9]*)/... ça marcherait mieux.

On a le même type de chose pour gtk+.

Donc soit corriger les instructions sed comme indiqué ci-dessus dans le
fichier php_gtk.m4.

Soit plus simple encore, puisque les versions de libs possédées s ont
normalement suffisantes, lancer l'ordre configure avec les options
--disable-glibtest et --disable-gtktest. Ainsi les tests des versions de
ces librairies ne seront pas effectués par le configure.

--
Cem
Avatar
Cem
Vincent Verdon writes:

après la dinde, je me suis mis en tête de compiler php-gtk.
En soi, rien de compliqué, ./configure, make,...
Mais configure me demande la glib2.6 au minimum ainsi que gtk+2.6 au
minimum.
Je vérifie et m'aperçois que les versions installées sont glib
2.30.2-4
gtk+ 2.24.8-2 et 3.2, c'est à dire des versions bien supérieure s.
Je pressens un problème dans les sources.
Par curiosité, j'ai compilé une glib 2.6.x et configure à l'air bien
content. J'aimerai trouver une solution plus efficace que de
réinstaller de vieilles versions des libs !



Bonjour,

Dans le fichier php_gtk.m4, les lignes suivantes me paraissent
bizarres...

glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 |
sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/1/'`
glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 |
sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/2/'`
glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 |
sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/3/'`

car en admettant que pkg-config --modversion glib-2.0 revoie 2.30.0,
echo '2.30.0'|sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/1/'
echo '2.30.0'|sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/2/'
echo '2.30.0'|sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/3/'
donnent comme résultat 2.30.0 et pas 2, 30 et 0 comme vraisemblablement
souhaités...

En revanche
echo '2.6.0'|sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/1/'
echo '2.6.0'|sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/2/'
echo '2.6.0'|sed 's/([[0-9]]*).([[0-9]]*).([[0-9]]*)/3/'
donnent bien les résultats attendus: 2, 6 et 0.

Avec sed 's/([0-9]*).([0-9]*).([0-9]*)/... ça marcherait mieux.

On a le même type de chose pour gtk+.

Donc soit corriger les instructions sed comme indiqué ci-dessus dans le
fichier php_gtk.m4.

Soit plus simple encore, puisque les versions de libs possédées s ont
normalement suffisantes, lancer l'ordre configure avec les options
--disable-glibtest et --disable-gtktest. Ainsi les tests des versions de
ces librairies ne seront pas effectués par le configure.

--
Cem
Avatar
Cem
Cem writes:

Vincent Verdon writes:

après la dinde, je me suis mis en tête de compiler php-gtk.
Mais configure me demande la glib2.6 au minimum ainsi que gtk+2.6 au
minimum.
Je vérifie et m'aperçois que les versions installées sont glib
2.30.2-4
gtk+ 2.24.8-2 et 3.2, c'est à dire des versions bien supérieur es.
Je pressens un problème dans les sources.



Dans le fichier php_gtk.m4 [...]



En y regardant de plus près, le contenu de php_gtk.m4 n'est visiblement
pas repris dans le configure donc n'est pas la cause du problème.

Il manque plus probablement l'installation de packages indispensables
pour que ça se passe bien.

Vérifier notamment la présence de:
pkg-config libglib2.0-dev libgtk2.0-dev
(Noms de package pour une Ubuntu)

Indépendamment de la distribution, il faut en gros avoir présent sur sa
machine
/usr/bin/pkg-config
/usr/lib/pkgconfig/glib-2.0.pc
/usr/lib/pkgconfig/gtk+-2.0.pc
pour que les tests des versions de lib glib et gtk se passent bien.

--
Cem