MySQL QueryBrowser из портов FreeBSD
Довелось мне оставить на свой милый домашний сервер с FreeBSD xrdp чтоб наши бд-разработчик и пхп-разработчик имели комфортный доступ оттуда, где есть винда, но недоступен Putty.
И тогда попросил много уважаемый дб-разраб поставить mysql-query-browser.
Не долго думая, полез искать в портах. Нету.
Послез искать в гугле. Был, но не собирался и уже года 3 как нету.
Ищу дальше: есть, но в составе порта mysql-gui-tools. Ставим — не ставится.
Гугль по выскочивашей у меня ошибке ведёт на FreeBSD форум, но человеку у которого не собирается этот порт утверждают что он сам дурак, что у всех работает.
В последствии я пытался поставить более старую версию порта или собрать из исходников с официального сайта — не получалось. И руки кривые и лень в исходники лезть и вообще.
Затам случилось, что я вынужденный был остаться дома и решил всё же заглянуть где ошибку выбивает инсталляция mysql-gui-tools из портов. Оказалось что в библиотеке
./work/mysql-gui-tools-5.0r14/common/library/utilities/include/myx_util_functions.h
в районе 100й строки переобъявляются типы. Они уже раньше объявлены в глобальной библиотеке
my_global.h
оставить нужно только 2 строки обявления функций (на сколько я понял):
/*#if defined(__WIN__) || defined(_WIN32) || defined(_WIN64)^M
typedef unsigned int uint; ^M
typedef unsigned char uint8;^M
typedef unsigned char uchar;^M
typedef signed char int8; ^M
typedef unsigned short uint16; ^M
typedef short int16; ^M
typedef unsigned long uint32; ^M
typedef long int32; ^M
typedef unsigned long ulong;^M
typedef __int64 longlong;^M
typedef unsigned __int64 ulonglong;^M
#else^M*/
# define min(a,b) ((a)<(b)?(a):(b))^M # define max(a,b) ((a)>(b)?(a):(b))^M
/*^M
typedef unsigned char uint8;^M
typedef unsigned char uchar;^M
typedef signed char int8; ^M
typedef unsigned short uint16;^M
typedef short int16; ^M
typedef unsigned long uint32; ^M
typedef long int32;^M
#ifndef __GLIBC__^M
typedef unsigned long ulong;^M
#endif^M
typedef long long longlong;^M
typedef unsigned long long ulonglong;^M
#endif^M*/
По скольку объявление типов мы закомментировали, потом в файле
./work/mysql-gui-tools-5.0r14/common/library/base-library/source/myx_shell.c
необходимо добавить строку:
typedef unsigned long long ulonglong;^M
После этого порт собирается и с MySQL-Administrator и MySQL-Query-Browser
PROFIT…
К сожалению, эти мои экспериметны устарели и на данный момент mysql-gui-tools уже вынесен из портов, поскольку был BROKEN в течение полугода.
Было бы замечательно, если кто-то взялся и написал патч и отослал куратору порта — можно было бы вернуть на место. Я не знаю другого инструмента для MySQL под FreeBSD который позволяет редактировать хранимые процедуры.