error assigning to 'bool *' from incomp type 'my_bool *' (aka 'char *')
error: assigning to 'bool *' from incomp type 'char *'
ports tree , kernel & world latest.
Thank you for development.
Can you give me some more information? I assume this is on ARM and not i386/amd64?
(In reply to Tobias C. Berner from comment #1)
No, it's amd64
unfortunately I cannot reproduce it here. Could you upload the complete build log?
Created attachment 192879 [details]
(In reply to Tobias C. Berner from comment #3)
Point me please, where is the log-file - couldn't find it. Screenshot in attachment.
You can just redirect the output to some file and uplaod that :)
Btw, which revision is your CURRENT? Maybe mine is too old.
Or the better question: which mysql version do you have installed`
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.
The change from my_bool to bool means that the mysql.h header file now requires a C++ or C99 compiler to compile.
Created attachment 192893 [details]
Fix build with mysql >= 8.1
Can you apply this patch to your portstree and try again?
(In reply to Tobias C. Berner from comment #7)
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/.
(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.
(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:
Date: Sat May 5 20:05:09 UTC 2018
New revision: 469165
databases/qt4-mysql-plugin & databases/qt5-sqldrivers-mysql: fix build against mysql >= 8.0.1.
From the mysql release notes :
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.
The change from my_bool to bool means that the mysql.h header file now requires
a C++ or C99 compiler to compile.
Reported by: email@example.com
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
make: stopped in /usr/ports/databases/qt5-sqldrivers-mysql/work/qtbase-opensource-src-5.9.4/src/plugins/sqldrivers/mysql
*** Error code 1
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 firstname.lastname@example.org:/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:
Date: Fri Jun 1 22:16:41 UTC 2018
New revision: 471301
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.
Reported by: Jashank Jeremy
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.