qt-everywhere-opensource-src-4.8.7/src/drivers/mysql/qsql_mysql.cpp: 397:25: error assigning to 'bool *' from incomp type 'my_bool *' (aka 'char *') 955:33: error: assigning to 'bool *' from incomp type 'char *' ports tree , kernel & world latest. Thank you for development.
Hi there Can you give me some more information? I assume this is on ARM and not i386/amd64? mfg Tobias
(In reply to Tobias C. Berner from comment #1) No, it's amd64
Hi there unfortunately I cannot reproduce it here. Could you upload the complete build log? mfg Tobias
Created attachment 192879 [details] qt4-mysql-plugin screenshot
(In reply to Tobias C. Berner from comment #3) Point me please, where is the log-file - couldn't find it. Screenshot in attachment.
Hi there You can just redirect the output to some file and uplaod that :) Btw, which revision is your CURRENT? Maybe mine is too old. mfg Tobias
Or the better question: which mysql version do you have installed`
https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-1.html Incompatible Change: The my_bool type is no longer used in MySQL source code. Any third-party code that used this type to represent C boolean variables should use the bool or int C type instead. Note The change from my_bool to bool means that the mysql.h header file now requires a C++ or C99 compiler to compile. (Bug #25597667)
Created attachment 192893 [details] Fix build with mysql >= 8.1 Hi there Can you apply this patch to your portstree and try again? mfg Tobias
(In reply to Tobias C. Berner from comment #7) 12-CURRENT r333084 mysql80-8.0.2_3 Could you include the patch in ports-tree snapshot, so I could download it with `portsnap fetch update` ?
Created attachment 192913 [details] raw patch file (In reply to mikhail.rokhin from comment #10) I don't think I can do that :) Just copy the newly attached patch-file into databases/qt4-mysql-plugin/files/. mfg Tobias
(In reply to Tobias C. Berner from comment #11) Thank you - it helped. Do you think the patch should be integrated in ports tree?
(In reply to mikhail.rokhin from comment #12) Yeah, something like this needs to be added to the tree :) otherwise buildling against any new mysql version will fail. mfg Tobias
(In reply to Tobias C. Berner from comment #13) Could you be so kind and point me - how to automatically extract patches quickly from that big file?) Is it possible to put that big file under special name into /files and `make` will automatically extract & apply needed patch?
A commit references this bug: Author: tcberner Date: Sat May 5 20:05:09 UTC 2018 New revision: 469165 URL: https://svnweb.freebsd.org/changeset/ports/469165 Log: databases/qt4-mysql-plugin & databases/qt5-sqldrivers-mysql: fix build against mysql >= 8.0.1. From the mysql release notes [1]: Incompatible Change: The my_bool type is no longer used in MySQL source code. Any third-party code that used this type to represent C boolean variables should use the bool or int C type instead. Note The change from my_bool to bool means that the mysql.h header file now requires a C++ or C99 compiler to compile. (Bug #25597667) -- [1] https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-1.html PR: 227813 Reported by: mikhail.rokhin@gmail.com Changes: head/databases/qt4-mysql-plugin/Makefile head/databases/qt4-mysql-plugin/files/ head/databases/qt4-mysql-plugin/files/patch-src_sql_drivers_mysql_qsql__mysql.cpp head/databases/qt5-sqldrivers-mysql/Makefile head/databases/qt5-sqldrivers-mysql/files/ head/databases/qt5-sqldrivers-mysql/files/patch-src_plugins_sqldrivers_mysql_qsql__mysql.cpp
Committed :) -- so you should just get directly now.
The same issue: qsql_mysql.cpp:437:25: error: assigning to 'my_bool *' (aka 'char *') from incompatible type 'mysql_bool *' (aka 'bool *') bind->is_null = &f.nullIndicator; ^~~~~~~~~~~~~~~~ qsql_mysql.cpp:1016:33: error: assigning to 'my_bool *' (aka 'char *') from incompatible type 'bool *' currBind->is_null = &nullVector[i]; ^~~~~~~~~~~~~~ 2 errors generated. *** Error code 1 Stop. make[1]: stopped in /usr/ports/databases/qt5-sqldrivers-mysql/work/qtbase-opensource-src-5.9.4/src/plugins/sqldrivers/mysql *** Error code 1 Stop. make: stopped in /usr/ports/databases/qt5-sqldrivers-mysql But currently is not fixed in the ports tree. 11.1-RELEASE-p9 FreeBSD 11.1-RELEASE-p9 #0: Tue Apr 3 16:59:16 UTC 2018 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
*** Bug 228392 has been marked as a duplicate of this bug. ***
It looks like this patch breaks this port for MariaDB >= 10 users, as noted in bug 228392. Backing out the patch in r469165 fixes that build.
Can confirm. This is broken for MariaDB users now.
A commit references this bug: Author: adridg Date: Fri Jun 1 22:16:41 UTC 2018 New revision: 471301 URL: https://svnweb.freebsd.org/changeset/ports/471301 Log: Fix build of the Qt SQL plugins for MySQL against MariaDB 10. Recent MySQL code has deprecated the my_bool type, so r469165 added a check for that recent version. MariaDB pretends to be MySQL, and has an even newer version, which nonetheless hasn't taken over the drop-my_bool-type change. So my_bool still exists there. Assume, for now, that MariaDB has my_bool regardless, to fix incompatibilities reported after PR227813 was closed. PR: 227813 Reported by: Jashank Jeremy Changes: head/databases/qt4-mysql-plugin/files/patch-src_sql_drivers_mysql_qsql__mysql.cpp head/databases/qt5-sqldrivers-mysql/files/patch-src_plugins_sqldrivers_mysql_qsql__mysql.cpp
I'd appreciate it if Jashank or Henrik or another MariaDB user can confirm that this is fixed now also for those two ports against MariaDB (I tested in poudriere jails, and it seemed ok, but there may be more MariaDB varieties around than I know of).
Yeah, my poudriere setup builds it successfully now. thanks.