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> sous FreeBSD.

Le compilateur se trouve donc dans l'impossibilité de compiler les sources vu que le code n'inclus pas <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.