Il ne me restait donc plus qu'à le compiler manuellement.
J'ai donc télécharger les sources de mysqlsniffer
, je les ai décompressé, et j'ai voulu les compiler à l'aide de la commande suivante :
# gcc -O2 -lpcap -o mysqlsniffer mysqlsniffer.c packet_handlers.c misc.c
Cependant, au lieu d'obtenir l'éxecutable attendu, j'ai obtenu les messages d'erreurs suivants :
In file included from packet_handlers.c:8:
state_map.h:3: error: expected ')' before '*' token
state_map.h:7: error: expected specifier-qualifier-list before 'u_char'
In file included from packet_handlers.c:9:
packet_handlers.h:10: error: expected ')' before '*' token
packet_handlers.h:11: error: expected ')' before '*' token
packet_handlers.h:12: error: expected ')' before '*' token
packet_handlers.h:13: error: expected ')' before '*' token
packet_handlers.h:14: error: expected ')' before '*' token
packet_handlers.h:15: error: expected ')' before '*' token
...
mysqlsniffer
utilise en effet des types de variable de la forme u_*
, qui sont définis dans <sys/types.h>
<sys/types.h>
.
J'ai donc créé les patchs nécessaires, et tant qu'à faire ce peu, j'en ai profité pour faire le port
qui permet d'installer directement mysqlsniffer
sous FreeBSD.
J'ai soumis ma création pour qu'elle soit ajouté à l'arbre des ports
de FreeBSD, mais le processus de validation peut prendre du temps, donc en attendant, il est joint à ce billet.
Il suffit de le décompresser dans le répertoire contenant les ports
.