# [résolu] [nufw] problème compilation nufw & mysql

## gluglu

bonjour a tous,

je rencontre un autre soucis avec la compilation de nufw avec mysql

mon mysql est : mysql-5.0.67-linux-x86_64-glibc23.tar.gz

installé à la main dans /opt/

le ./configure passe bien : ./configure --prefix=/opt/nufw2217 --with-mysql-log --with-ldap

c'est au make qu'il foire :

```
make[4]: entrant dans le répertoire « /opt/SOURCES/nufw-2.2.17/src/nuauth/modules/log_mysql »

if /bin/sh ../../../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../../../src/include -pthread -I/usr/include/glib-2.0 -I/usr/lib64/gl

ib-2.0/include   -I../../../../src/nuauth/ -I../../../../src/include/ `mysql_config --include` -DCONFIG_DIR=\"/opt/nufw2217/etc\" -DMODULE_DIR=\"/opt/nufw221

7/lib\"   -g -O2 -D_POSIX_C_SOURCE=199506L -D_ISOC99_SOURCE -D_GNU_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE    -Wall -Wextra -Wno-unused-parameter -O2 -MT mysql.l

o -MD -MP -MF ".deps/mysql.Tpo" -c -o mysql.lo mysql.c; \

        then mv -f ".deps/mysql.Tpo" ".deps/mysql.Plo"; else rm -f ".deps/mysql.Tpo"; exit 1; fi

Ajout du processus fils 0x0bd0e150 (mysql.lo) PID 15338 à la chaîne.

Processus fils actif 0x0bd0e150 (mysql.lo) PID 15338

 gcc -DHAVE_CONFIG_H -I. -I. -I../../../../src/include -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I../../../../src/nuauth/ -I../../../..

/src/include/ -I/opt/mysql/include -DCONFIG_DIR=\"/opt/nufw2217/etc\" -DMODULE_DIR=\"/opt/nufw2217/lib\" -g -O2 -D_POSIX_C_SOURCE=199506L -D_ISOC99_SOURCE -D

_GNU_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -Wall -Wextra -Wno-unused-parameter -O2 -MT mysql.lo -MD -MP -MF .deps/mysql.Tpo -c mysql.c  -fPIC -DPIC -o .libs/my

sql.o

In file included from mysql.c:24:

./log_mysql.h:20:25: error: mysql/mysql.h: No such file or directory

mysql.c:100: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token

mysql.c:101: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token

mysql.c: In function 'mysql_close_current':

mysql.c:112: error: 'MYSQL' undeclared (first use in this function)

mysql.c:112: error: (Each undeclared identifier is reported only once

mysql.c:112: error: for each function it appears in.)

mysql.c:112: error: 'ld' undeclared (first use in this function)

mysql.c:112: warning: implicit declaration of function 'get_mysql_handler'

mysql.c:114: warning: implicit declaration of function 'mysql_close'

mysql.c: In function 'mysql_close_open_user_sessions':

mysql.c:159: error: 'MYSQL' undeclared (first use in this function)

mysql.c:159: error: 'ld' undeclared (first use in this function)

mysql.c:165: warning: implicit declaration of function 'mysql_conn_init'

mysql.c:180: warning: implicit declaration of function 'mysql_real_query'

mysql.c:182: warning: implicit declaration of function 'mysql_error'

mysql.c:182: warning: format '%s' expects type 'char *', but argument 5 has type 'int'

mysql.c: At top level:

mysql.c:334: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token

mysql.c:412: error: expected ')' before '*' token

mysql.c:459: error: expected ')' before '*' token

mysql.c:623: error: expected ')' before '*' token

mysql.c:695: error: expected ')' before '*' token

mysql.c:761: error: expected ')' before '*' token

mysql.c:836: error: expected ')' before '*' token

mysql.c:867: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token

mysql.c: In function 'user_packet_logs':

mysql.c:901: error: 'MYSQL' undeclared (first use in this function)

mysql.c:901: error: 'ld' undeclared (first use in this function)

mysql.c:909: warning: implicit declaration of function 'log_state_open'

mysql.c:915: warning: implicit declaration of function 'log_state_established'

mysql.c:926: warning: implicit declaration of function 'log_state_close'

mysql.c:934: warning: implicit declaration of function 'log_state_drop'

mysql.c: At top level:

mysql.c:945: error: expected ')' before 'row'

mysql.c: In function 'destroy_user_connections':

mysql.c:1006: error: 'MYSQL' undeclared (first use in this function)

mysql.c:1006: error: 'ld' undeclared (first use in this function)

mysql.c:1010: error: 'MYSQL_ROW' undeclared (first use in this function)

mysql.c:1010: error: expected ';' before 'row'

mysql.c:1043: warning: format '%s' expects type 'char *', but argument 5 has type 'int'

mysql.c:1054: error: 'MYSQL_RES' undeclared (first use in this function)

mysql.c:1054: error: 'result' undeclared (first use in this function)

mysql.c:1054: warning: implicit declaration of function 'mysql_store_result'

mysql.c:1055: error: 'row' undeclared (first use in this function)

mysql.c:1055: warning: implicit declaration of function 'mysql_fetch_row'

mysql.c:1056: warning: implicit declaration of function 'build_conntrack_msg_from_mysql'

mysql.c:1061: warning: implicit declaration of function 'mysql_free_result'

mysql.c: In function 'user_session_logs':

mysql.c:1097: error: 'MYSQL' undeclared (first use in this function)

mysql.c:1097: error: 'ld' undeclared (first use in this function)

mysql.c:1112: warning: implicit declaration of function 'quote_string'

mysql.c:1112: warning: initialization makes pointer from integer without a cast

mysql.c:1113: warning: initialization makes pointer from integer without a cast

mysql.c:1155: warning: format '%s' expects type 'char *', but argument 5 has type 'int'

mysql.c: In function 'g_module_check_init':

mysql.c:1182: warning: implicit declaration of function 'mysql_server_init'

mysql.c: In function 'g_module_unload':

mysql.c:1199: warning: implicit declaration of function 'mysql_server_end'

Récupération du statut de sortie du processus fils 0x0bd0e150 PID 15338

make[4]: *** [mysql.lo] Erreur 1

Suppression du processus fils 0x0bd0e150 PID 15338 de la chaîne.

make[4]: quittant le répertoire « /opt/SOURCES/nufw-2.2.17/src/nuauth/modules/log_mysql »

Récupération du statut de sortie du processus fils 0x1cd722c0 PID 15326

make[3]: *** [all-recursive] Erreur 1

Suppression du processus fils 0x1cd722c0 PID 15326 de la chaîne.

make[3]: quittant le répertoire « /opt/SOURCES/nufw-2.2.17/src/nuauth/modules »

Récupération du statut de sortie du processus fils 0x1ede0110 PID 15320

make[2]: *** [all-recursive] Erreur 1

Suppression du processus fils 0x1ede0110 PID 15320 de la chaîne.

make[2]: quittant le répertoire « /opt/SOURCES/nufw-2.2.17/src/nuauth »

Récupération du statut de sortie du processus fils 0x16dc60c0 PID 15309

make[1]: *** [all-recursive] Erreur 1

Suppression du processus fils 0x16dc60c0 PID 15309 de la chaîne.

make[1]: quittant le répertoire « /opt/SOURCES/nufw-2.2.17/src »

Récupération du statut de sortie du processus fils 0x03e93d90 PID 15303

make: *** [all-recursive] Erreur 1

Suppression du processus fils 0x03e93d90 PID 15303 de la chaîne.

```

j'ai essayé ceci :

make -d --include-dir=/opt/mysql/include

et ceci 

make CFLAGS=-I/opt/mysql/include

rien ni fait toujours pareil 

un pro de la compile aurait une chtite idée ?

merci d'avance

----------

## boozo

'alute

comme pour nufw : une raison particulière d'installer mysql "à la main" ?

mysql serait alors une dépendance de nufw si tu l'avais bien installé avec le support via portage

Edit: ah une petite chose... peux-tu éditer le titre du thread et mettre le format adéquat merci ^^

----------

## gluglu

raison particuliere : apprendre & comprendre

une idée sinon ?

----------

## boozo

 *gluglu wrote:*   

> raison particuliere : apprendre & comprendre
> 
> une idée sinon ?

 

ok j'ai aucun soucis avec çà ; c'était plus par curiosité attendu que tu as fait la même chose pour nufw, je pensais qu'il y avait une contrainte plus forte associée

Mais sur l'instant non... malheureusement je n'ai pas d'idée pour te débloquer ; faudrait étudier de plus près les options des configure et/ou les makefile de nufw et de mysql voir s'il y a une piste - ce que tu as déjà fait sans succès je pense   :Sad: 

btw si jamais tu veux essayer une optique plus gentooiste qui a plus de chance d'être fonctionnelle rapidement : essaye via portage  :Wink: 

----------

## gluglu

ok je tiens au courant si je trouve

----------

## gluglu

faudrait étudier de plus près les options des configure et/ou les makefile de nufw et de mysql 

regarder quoi exactement ?

----------

## xaviermiller

tape 

```
./configure --help 
```

 et regarde les options pour indiquer où se trouve mysql (du genre --with-mysql=/opt/mysql dans ton cas)

Mais bon, avec gentoo, pourquoi ne pas utiliser portage ?  :Wink: 

----------

## gluglu

c'est sous centos que je dois installer ca  :Sad: 

----------

## xaviermiller

et CentOS n'a pas un gestionnaire de paquets qui va bien (RPM, DEB, ...) ?

----------

## boozo

bien ce que je pensais   :Mr. Green:   on aurait gagné du temps si tu l'avais dit directement.

On t'aurais pas forcément envoyé balader pour autant tu sais ? même si c'est un usage pro mmh ?

Donc sous CentOS tu as au moins yum en packages manger donc c'est le mieux à faire si tu ne veux pas trop te prendre la tête. Sinon comme te l'a indiqué Xavier, c'est vers là qu'il faut se pencher pour une install classique étudier les options disponibles et voir comment paramétrer tout ça pour s'adapter aux spécificités de l'OS.

Au fait si cela t'aide par la suite et que ne connais pas, il y a un nufw handbook - et pis pour yum... bon on te laisses chercher un peu c'est vraiment pas sorcier d'installer mysql avec   :Wink: 

Edit: j'y pense également... yum install nufw çà le fait aussi

----------

## gluglu

merci pour votre aide 

je connais bien yum mais je ne veux pas l'installer avec

d'ailleurs il n'est pas disponible ni pour redhat ni pour centos

donc je vais continuer a chercher pour resoudre le probleme mysql

----------

## netfab

Salut,

Sur le système sur lequel tu compiles, que donne :

```

# updatedb && locate mysql.h

```

Il faut que le paquet sys-apps/slocate soit installé pour exécuter ces commandes.

----------

## gluglu

ceci :

[root@srvtest64 opt]# updatedb && locate mysql.h

/opt/SOURCES/mysql-5.0.67-linux-x86_64-glibc23/include/mysql.h

/opt/SOURCES/nufw-2.2.17/src/nuauth/modules/auth_mysql/mysql.h

/opt/SOURCES/nufw-2.2.17/src/nuauth/modules/log_mysql/log_mysql.h

/opt/SOURCES/php-5.2.6/ext/mysql/php_mysql.h

/opt/SOURCES/php-5.2.6/ext/pdo_mysql/php_pdo_mysql.h

/opt/mysql-5.0.67-linux-x86_64-glibc23/include/mysql.h

/opt/old-mysql-5.0.67-linux-x86_64-glibc23/include/mysql.h

/usr/share/doc/selinux-policy-2.4.6/html/services_mysql.html

/usr/src/redhat/BUILD/m_mysql-5.0.67/opt/mysql-5.0.67-linux-x86_64-glibc23/inclu

de/mysql.h

----------

## netfab

C'est bien ce que je pensais : le ./configure du mysql que tu as installé dans /opt a dû prendre la valeur par défaut pour installer les headers :

 *Quote:*   

> 
> 
> /opt/mysql-5.0.67-linux-x86_64-glibc23/include/mysql.h
> 
> 

 

Le problème, c'est que gcc veut trouver un fichier mysql.h dans un répertoire mysql , c'est probablement inscrit en dur dans le code source de l'appli que tu essaies de compiler :

```

error: mysql/mysql.h: No such file or directory 

```

Donc, reconfigure, recompile, et réinstalle mysql, en faisant attention au moment du ./configure s'il n'y a pas une option pour définir la destination des entêtes .h

Au moment de l'installation le fichier mysql.h doit arriver à un endroit dans ce style :

 *Quote:*   

> /opt/foo/bar/mysql/mysql.h

 

Et là tu pourras utiliser :

```
$ CFLAGS=-I/opt/foo/bar make
```

Edit : d'ailleurs, çà montre que le configure de nufw ne fait pas totalement son job : il devrait vérifier la présence de l'entête mysql.h en utilisant la macro AC_CHECK_HEADER.

----------

## gluglu

j'ai modifié l'emplacement des .h 

avant : /opt/mysql/include 

apres : /opt/mysql/include/mysql

le make fonctionne :

make CFLAGS=-I/opt/mysql-5.0.67-linux-x86_64-glibc23/include

puisqu'il me dit :

```

make[1]: entrant dans le répertoire « /opt/SOURCES/nufw-2.2.18/python »

make[1]: Rien à faire pour « all ».

make[1]: quittant le répertoire « /opt/SOURCES/nufw-2.2.18/python »

make[1]: entrant dans le répertoire « /opt/SOURCES/nufw-2.2.18 »

make[1]: Rien à faire pour « all-am ».

make[1]: quittant le répertoire « /opt/SOURCES/nufw-2.2.18 »

Compile done

```

par contre le make install plante encore avec des erreurs mysql :

```

./log_mysql.h:20:25: error: mysql/mysql.h: No such file or directory

mysql.c:100: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token

mysql.c:101: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token

mysql.c: In function 'mysql_close_current':

mysql.c:112: error: 'MYSQL' undeclared (first use in this function)

mysql.c:112: error: (Each undeclared identifier is reported only once

mysql.c:112: error: for each function it appears in.)

mysql.c:112: error: 'ld' undeclared (first use in this function)

mysql.c:112: warning: implicit declaration of function 'get_mysql_handler'

mysql.c:114: warning: implicit declaration of function 'mysql_close'

mysql.c: In function 'mysql_close_open_user_sessions':

mysql.c:159: error: 'MYSQL' undeclared (first use in this function)

mysql.c:159: error: 'ld' undeclared (first use in this function)

mysql.c:165: warning: implicit declaration of function 'mysql_conn_init'

mysql.c:180: warning: implicit declaration of function 'mysql_real_query'

mysql.c:182: warning: implicit declaration of function 'mysql_error'

mysql.c:182: warning: format '%s' expects type 'char *', but argument 5 has type 'int'

mysql.c: At top level:

mysql.c:334: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token

mysql.c:412: error: expected ')' before '*' token

mysql.c:459: error: expected ')' before '*' token

mysql.c:623: error: expected ')' before '*' token

mysql.c:695: error: expected ')' before '*' token

mysql.c:761: error: expected ')' before '*' token

mysql.c:836: error: expected ')' before '*' token

mysql.c:867: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token

mysql.c: In function 'user_packet_logs':

mysql.c:901: error: 'MYSQL' undeclared (first use in this function)

mysql.c:901: error: 'ld' undeclared (first use in this function)

mysql.c:909: warning: implicit declaration of function 'log_state_open'

mysql.c:915: warning: implicit declaration of function 'log_state_established'

mysql.c:926: warning: implicit declaration of function 'log_state_close'

mysql.c:934: warning: implicit declaration of function 'log_state_drop'

mysql.c: At top level:

mysql.c:945: error: expected ')' before 'row'

mysql.c: In function 'destroy_user_connections':

mysql.c:1006: error: 'MYSQL' undeclared (first use in this function)

mysql.c:1006: error: 'ld' undeclared (first use in this function)

mysql.c:1010: error: 'MYSQL_ROW' undeclared (first use in this function)

mysql.c:1010: error: expected ';' before 'row'

mysql.c:1043: warning: format '%s' expects type 'char *', but argument 5 has type 'int'

mysql.c:1054: error: 'MYSQL_RES' undeclared (first use in this function)

mysql.c:1054: error: 'result' undeclared (first use in this function)

mysql.c:1054: warning: implicit declaration of function 'mysql_store_result'

mysql.c:1055: error: 'row' undeclared (first use in this function)

mysql.c:1055: warning: implicit declaration of function 'mysql_fetch_row'

mysql.c:1056: warning: implicit declaration of function 'build_conntrack_msg_from_mysql'

mysql.c:1061: warning: implicit declaration of function 'mysql_free_result'

mysql.c: In function 'user_session_logs':

mysql.c:1097: error: 'MYSQL' undeclared (first use in this function)

mysql.c:1097: error: 'ld' undeclared (first use in this function)

mysql.c:1112: warning: implicit declaration of function 'quote_string'

mysql.c:1112: warning: initialization makes pointer from integer without a cast

mysql.c:1113: warning: initialization makes pointer from integer without a cast

mysql.c:1155: warning: format '%s' expects type 'char *', but argument 5 has type 'int'

mysql.c: In function 'g_module_check_init':

mysql.c:1182: warning: implicit declaration of function 'mysql_server_init'

mysql.c: In function 'g_module_unload':

mysql.c:1199: warning: implicit declaration of function 'mysql_server_end'

make[4]: *** [mysql.lo] Erreur 1

make[4]: quittant le répertoire « /opt/SOURCES/nufw-2.2.18/src/nuauth/modules/log_mysql »

make[3]: *** [install-recursive] Erreur 1

make[3]: quittant le répertoire « /opt/SOURCES/nufw-2.2.18/src/nuauth/modules »

make[2]: *** [install-recursive] Erreur 1

make[2]: quittant le répertoire « /opt/SOURCES/nufw-2.2.18/src/nuauth »

make[1]: *** [install-recursive] Erreur 1

make[1]: quittant le répertoire « /opt/SOURCES/nufw-2.2.18/src »

make: *** [install-recursive] Erreur 1

```

il faut que je tape :

make install CFLAGS=-I/opt/mysql-5.0.67-linux-x86_64-glibc23/include

?

----------

## gluglu

c'est bon  :Smile:  c'etait ca merci beaucoup

----------

## boozo

 *gluglu wrote:*   

> merci pour votre aide 
> 
> je connais bien yum mais je ne veux pas l'installer avec
> 
> d'ailleurs il n'est pas disponible ni pour redhat ni pour centos
> ...

 

Ok ok soit mais juste pour ma culture... j'ai raté qqch ?   :Shocked: 

Pour ton pb et aussi pour ma culture G qqch m'intrigue et j'ai voulu reproduire :

Le package que tu as téléchargé est bien "mysql-5.0.67-linux-x86_64-glibc23.tar.gz" ? tu es sûr ? si c'est le cas j'ai essayé de prendre la même version dispo et j'ai droit à une version binaire de mysql linké avec glibc-2.3 (ce qui peut poser un pb également mais c'est autre chose) et le configure me le rend bien

```
test/mysql-5.0.67-linux-x86_64-glibc23 $ ./configure --help

NOTE: This is a MySQL binary distribution. It's ready to run, you don't

need to configure it!

To help you a bit, I am now going to create the needed MySQL databases

and start the MySQL server for you.  If you run into any trouble, please

consult the MySQL manual, that you can find in the Docs directory.

./scripts/mysql_install_db: line 205: ./bin/my_print_defaults: cannot execute binary file

(blablabla)

```

En revanche avec une "vrai" version source nommé simplement "mysql-5.0.67.tar.gz" çà passe bien - Donc si tu as 5 min pour m'expliquer... j'aimerai bien dormir moins bête   :Sad: 

Edit: je m'excuse mais je ne comprend plus rien à cette histoire - c'est bien la configuration/compilation de mysql qui plante ??? car depuis le début je doute : tout tes commandes semblent partir des sources de nufw ? or, d'après ton premier post...   :Sad: 

----------

## gluglu

non c'est nufw avec support mysql

----------

