MySQL QueryBrowser из портов FreeBSD

22 октября 2011 г.

Довелось мне оставить на свой милый домашний сервер с 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 который позволяет редактировать хранимые процедуры.

Теги:
рубрика FreeBSD
  • Похожие статьи
  • Предыдущие из рубрики