mod_sql_mysql freebsd 12 mysql72

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
mrvova
проходил мимо

mod_sql_mysql freebsd 12 mysql72

Непрочитанное сообщение mrvova » 2019-04-30 15:41:50

FreeBSD 12.0-RELEASE
MySQL 8.0.15
ProFTPD Version 1.3.6
при установке модуля

Код: Выделить всё

# cd /usr/ports/databases/proftpd-mod_sql_mysql
# make install clean

--------------
Build Summary
--------------
Building the following static modules:
mod_ident
mod_auth_pam
mod_ctrls

Building the following shared modules:
mod_sql_mysql

--------------
===> Building for proftpd-mod_sql_mysql-1.3.6
echo \#define BUILD_STAMP \"`date +"%a %b %e %Y %H:%M:%S %Z"`\" > include/buildstamp.h
gmake[1]: Entering directory '/usr/ports/databases/proftpd-mod_sql_mysql/work/proftpd-1.3.6/modules'
/bin/sh ../libtool --mode=compile --tag=CC cc -DHAVE_CONFIG_H -DFREEBSD12_0 -DFREEBSD12 -I.. -I../include -I/usr/local/include/proftpd -I/usr/local/include/mysql -I/usr/local/include -I/usr/local/include/mysql -g2 -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -Wall -fno-omit-frame-pointer -Werror=implicit-function-declaration -DPR_SHARED_MODULE -c mod_sql_mysql.c
libtool: compile: cc -DHAVE_CONFIG_H -DFREEBSD12_0 -DFREEBSD12 -I.. -I../include -I/usr/local/include/proftpd -I/usr/local/include/mysql -I/usr/local/include -I/usr/local/include/mysql -g2 -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -Wall -fno-omit-frame-pointer -Werror=implicit-function-declaration -DPR_SHARED_MODULE -c mod_sql_mysql.c -fPIC -DPIC -o .libs/mod_sql_mysql.o
mod_sql_mysql.c:498:5: error: use of undeclared identifier 'my_bool'
my_bool reconnect = TRUE;
^
mod_sql_mysql.c:499:54: error: use of undeclared identifier 'reconnect'; did you mean 'connect'?
mysql_options(conn->mysql, MYSQL_OPT_RECONNECT, &reconnect);
^~~~~~~~~
connect
/usr/include/sys/socket.h:662:5: note: 'connect' declared here
int connect(int, const struct sockaddr *, socklen_t);
^
mod_sql_mysql.c:1734:44: warning: unused variable 'scrambled_len' [-Wunused-variable]
size_t plaintxt_len = 0, hashed_len = 0, scrambled_len = 0;
^
mod_sql_mysql.c:1732:8: warning: unused variable 'scrambled' [-Wunused-variable]
char scrambled[256] = {'\0'};
^
2 warnings and 2 errors generated.
gmake[1]: *** [Makefile:34: mod_sql_mysql.la] Error 1
gmake[1]: Leaving directory '/usr/ports/databases/proftpd-mod_sql_mysql/work/proftpd-1.3.6/modules'
*** Error code 1

Stop.
make: stopped in /usr/ports/databases/proftpd-mod_sql_mysql

помогите побороть ошибку! спасибо!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

guest
проходил мимо

mod_sql_mysql freebsd 12 mysql72

Непрочитанное сообщение guest » 2019-05-01 3:16:59

патч:

Код: Выделить всё

[bsd12]/usr/ports/ftp/proftpd/files > cat patch-mod_sql_mysql.c
--- contrib/mod_sql_mysql.c.orig        2017-04-10 05:31:02.000000000 +0300
+++ contrib/mod_sql_mysql.c     2019-05-02 02:47:19.997560000 +0300
@@ -489,11 +489,16 @@
     mysql_options(conn->mysql, MYSQL_READ_DEFAULT_GROUP, "client");
   }

-#if MYSQL_VERSION_ID >= 50013
+#if MYSQL_VERSION_ID >= 80015
   /* The MYSQL_OPT_RECONNECT option appeared in MySQL 5.0.13, according to
    *
    *  http://dev.mysql.com/doc/refman/5.0/en/auto-reconnect.html
    */
+  if (!(pr_sql_opts & SQL_OPT_NO_RECONNECT)) {
+    bool reconnect = TRUE;
+    mysql_options(conn->mysql, MYSQL_OPT_RECONNECT, &reconnect);
+  }
+#else
   if (!(pr_sql_opts & SQL_OPT_NO_RECONNECT)) {
     my_bool reconnect = TRUE;
     mysql_options(conn->mysql, MYSQL_OPT_RECONNECT, &reconnect);
[bsd12]/usr/ports/ftp/proftpd/files >

mrvova92
проходил мимо

mod_sql_mysql freebsd 12 mysql72

Непрочитанное сообщение mrvova92 » 2019-05-02 19:43:58

а для новеньких можно поподробней.... извиняюсь за глупость но не понимаю что сделать :oops:

guest
проходил мимо

mod_sql_mysql freebsd 12 mysql72

Непрочитанное сообщение guest » 2019-05-02 21:35:48

а для новеньких можно поподробней.... извиняюсь за глупость но не понимаю что сделать
если внутри порта есть директория files, то в ней обычно находятся
патчи и/или другие необходимые файлы.

патч создается утилитой diff, например, у нас есть исходный файл hello.c, а в нем
ошибки, копируем hello.c в hello.c.orig, затем правим файл hello.c.

В итоге получаем, исправленный файл hello.c и старый оригинальный с ошибками
hello.c.org. Разница между ними и будет файлом патч, создать ее можно
утилитой diff:

# diff -u hello.c.orig hello.c > patch-hello.c

Далее, достаточно иметь оригинальный файл с ошибками hello.c
и файл-патч patch-hello.c чтобы получить новый hello.c, используя
утилиту patch:

# patch < patch-file

в нашем случае:
# patch < patch-hello.c

я Вам дал патч:

Код: Выделить всё

[bsd12]/usr/ports/ftp/proftpd/files > cat patch-mod_sql_mysql.c
из предыдущего поста видно, патч-файл patch-mod_sql_mysql.c который нужно
положить в /usr/ports/ftp/proftpd/files и после этого можно собирать
порт: /usr/ports/databases/proftpd-mod_sql_mysql

Если верхнее непонятно, тогда можно сделать так:
# cd /usr/ports/databases/proftpd-mod_sql_mysql
# make configure
- теперь правим файл work/proftpd-1.3.6/contrib/mod_sql_mysql.c
# vi work/proftpd-1.3.6/contrib/mod_sql_mysql.c
...
ищем строку

Код: Выделить всё

my_bool reconnect = TRUE;
и меняем ее на

Код: Выделить всё

bool reconnect = TRUE;
после чего выполняем
# make
# make install

mod_sql для proftpd написан давно и особо не перерабатывался (последние правки 2года назад),
а в MySQL 8.x изменилось API, верхняя правка позволит собрать и установить модуль,
но не факт что все будет успешно работать.

mrvova
проходил мимо

mod_sql_mysql freebsd 12 mysql72

Непрочитанное сообщение mrvova » 2019-05-03 16:08:43

Спасибо! солюшка прошла, установка успешна, тепер настроить осталось:) :drinks: