Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build error when drogon is built with with_mysql=True , i am using conan package manager #2244

Open
rafeeque1 opened this issue Jan 25, 2025 · 4 comments

Comments

@rafeeque1
Copy link

Describe the bug
my conanfile.txt is below
[requires]
drogon/1.9.8
nlohmann_json/3.11.3
openssl/3.3.2
aws-sdk-cpp/1.11.352

[generators]
CMakeDeps
CMakeToolchain

[options]
aws-sdk-cpp/1.11.352:s3=True
drogon/1.9.8:shared=True
drogon/1.9.8:with_ctl=True
drogon/1.9.8:with_orm=True
drogon/1.9.8:with_boost=True
drogon/1.9.8:with_mysql=True
drogon/1.9.8:with_redis=False
drogon/1.9.8:with_brotli=False
drogon/1.9.8:with_sqlite=False
drogon/1.9.8:with_profile=False
drogon/1.9.8:with_postgres=False
drogon/1.9.8:with_yaml_cpp=False

build error is below

/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc: In constructor ‘drogon::orm::MysqlConnection::MysqlConnection(trantor::EventLoop*, const std::string&)’:
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:62:36: error: ‘MYSQL_OPT_NONBLOCK’ was not declared in this scope; did you mean ‘MYSQL_OPT_SSL_CA’?
62 | mysql_options(mysqlPtr_.get(), MYSQL_OPT_NONBLOCK, nullptr);
| ^~~~~~~~~~~~~~~~~~
| MYSQL_OPT_SSL_CA
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:64:5: error: ‘mysql_optionsv’ was not declared in this scope; did you mean ‘mysql_options4’?
64 | mysql_optionsv(mysqlPtr_.get(), MYSQL_OPT_RECONNECT, &reconnect_);
| ^~~~~~~~~~~~~~
| mysql_options4
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc: In lambda function:
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:112:13: error: ‘mysql_real_connect_start’ was not declared in this scope; did you mean ‘mysql_real_connect_dns_srv’?
112 | mysql_real_connect_start(&ret,
| ^~~~~~~~~~~~~~~~~~~~~~~~
| mysql_real_connect_dns_srv
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:124:19: error: ‘mysql_get_socket’ was not declared in this scope; did you mean ‘mysql_ssl_set’?
124 | auto fd = mysql_get_socket(mysqlPtr_.get());
| ^~~~~~~~~~~~~~~~
| mysql_ssl_set
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc: In member function ‘void drogon::orm::MysqlConnection::setChannel()’:
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:143:24: error: ‘MYSQL_WAIT_READ’ was not declared in this scope
143 | if ((waitStatus_ & MYSQL_WAIT_READ) || (waitStatus_ & MYSQL_WAIT_EXCEPT))
| ^~~~~~~~~~~~~~~
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:143:59: error: ‘MYSQL_WAIT_EXCEPT’ was not declared in this scope; did you mean ‘MYSQL_STMT_EXT’?
143 | if ((waitStatus_ & MYSQL_WAIT_READ) || (waitStatus_ & MYSQL_WAIT_EXCEPT))
| ^~~~~~~~~~~~~~~~~
| MYSQL_STMT_EXT
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:148:23: error: ‘MYSQL_WAIT_WRITE’ was not declared in this scope
148 | if (waitStatus_ & MYSQL_WAIT_WRITE)
| ^~~~~~~~~~~~~~~~
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:158:23: error: ‘MYSQL_WAIT_TIMEOUT’ was not declared in this scope; did you mean ‘NET_WAIT_TIMEOUT’?
158 | if (waitStatus_ & MYSQL_WAIT_TIMEOUT)
| ^~~~~~~~~~~~~~~~~~
| NET_WAIT_TIMEOUT
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:160:24: error: ‘mysql_get_timeout_value’ was not declared in this scope
160 | auto timeout = mysql_get_timeout_value(mysqlPtr_.get());
| ^~~~~~~~~~~~~~~~~~~~~~~
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc: In member function ‘void drogon::orm::MysqlConnection::handleTimeout()’:
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:197:15: error: ‘MYSQL_WAIT_TIMEOUT’ was not declared in this scope; did you mean ‘NET_WAIT_TIMEOUT’?
197 | status |= MYSQL_WAIT_TIMEOUT;
| ^~~~~~~~~~~~~~~~~~
| NET_WAIT_TIMEOUT
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:201:23: error: ‘mysql_real_connect_cont’ was not declared in this scope; did you mean ‘mysql_real_connect’?
201 | waitStatus_ = mysql_real_connect_cont(&ret, mysqlPtr_.get(), status);
| ^~~~~~~~~~~~~~~~~~~~~~~
| mysql_real_connect
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc: In member function ‘void drogon::orm::MysqlConnection::handleCmd(int)’:
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:247:27: error: ‘mysql_real_query_cont’ was not declared in this scope; did you mean ‘mysql_real_query’?
247 | waitStatus_ = mysql_real_query_cont(&err, mysqlPtr_.get(), status);
| ^~~~~~~~~~~~~~~~~~~~~
| mysql_real_query
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:267:17: error: ‘mysql_store_result_cont’ was not declared in this scope; did you mean ‘mysql_store_result’?
267 | mysql_store_result_cont(&ret, mysqlPtr_.get(), status);
| ^~~~~~~~~~~~~~~~~~~~~~~
| mysql_store_result
[ 49%] Building CXX object CMakeFiles/drogon.dir/orm_lib/src/DbConnection.cc.o
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:286:27: error: ‘mysql_next_result_cont’ was not declared in this scope; did you mean ‘mysql_next_result’?
286 | waitStatus_ = mysql_next_result_cont(&err, mysqlPtr_.get(), status);
| ^~~~~~~~~~~~~~~~~~~~~~
| mysql_next_result
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc: In member function ‘void drogon::orm::MysqlConnection::handleEvent()’:
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:318:19: error: ‘MYSQL_WAIT_READ’ was not declared in this scope
318 | status |= MYSQL_WAIT_READ;
| ^~~~~~~~~~~~~~~
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:320:19: error: ‘MYSQL_WAIT_WRITE’ was not declared in this scope
320 | status |= MYSQL_WAIT_WRITE;
| ^~~~~~~~~~~~~~~~
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:322:19: error: ‘MYSQL_WAIT_EXCEPT’ was not declared in this scope; did you mean ‘MYSQL_STMT_EXT’?
322 | status |= MYSQL_WAIT_EXCEPT;
| ^~~~~~~~~~~~~~~~~
| MYSQL_STMT_EXT
[ 50%] Building CXX object CMakeFiles/drogon.dir/orm_lib/src/DbListener.cc.o
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:327:23: error: ‘mysql_real_connect_cont’ was not declared in this scope; did you mean ‘mysql_real_connect’?
327 | waitStatus_ = mysql_real_connect_cont(&ret, mysqlPtr_.get(), status);
| ^~~~~~~~~~~~~~~~~~~~~~~
| mysql_real_connect
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc: In member function ‘void drogon::orm::MysqlConnection::continueSetCharacterSet(int)’:
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:369:19: error: ‘mysql_set_character_set_cont’ was not declared in this scope; did you mean ‘mysql_set_character_set’?
369 | waitStatus_ = mysql_set_character_set_cont(&err, mysqlPtr_.get(), status);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| mysql_set_character_set
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc: In member function ‘void drogon::orm::MysqlConnection::startSetCharacterSet()’:
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:393:19: error: ‘mysql_set_character_set_start’ was not declared in this scope; did you mean ‘mysql_set_character_set’?
393 | waitStatus_ = mysql_set_character_set_start(&err,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| mysql_set_character_set
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc: In member function ‘void drogon::orm::MysqlConnection::startQuery()’:
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:550:19: error: ‘mysql_real_query_start’ was not declared in this scope; did you mean ‘mysql_real_query’?
550 | waitStatus_ = mysql_real_query_start(&err,
| ^~~~~~~~~~~~~~~~~~~~~~
| mysql_real_query
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc: In member function ‘void drogon::orm::MysqlConnection::startStoreResult(bool)’:
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:573:19: error: ‘mysql_store_result_start’ was not declared in this scope; did you mean ‘mysql_store_result’?
573 | waitStatus_ = mysql_store_result_start(&ret, mysqlPtr_.get());
| ^~~~~~~~~~~~~~~~~~~~~~~~
| mysql_store_result
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc: In member function ‘void drogon::orm::MysqlConnection::getResult(MYSQL_RES*)’:
/home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/src/orm_lib/src/mysql_impl/MysqlConnection.cc:626:27: error: ‘mysql_next_result_start’ was not declared in this scope; did you mean ‘mysql_next_result’?
626 | waitStatus_ = mysql_next_result_start(&err, mysqlPtr_.get());
| ^~~~~~~~~~~~~~~~~~~~~~~
| mysql_next_result
[ 51%] Building CXX object CMakeFiles/drogon.dir/orm_lib/src/Exception.cc.o
gmake[2]: *** [CMakeFiles/drogon.dir/build.make:846: CMakeFiles/drogon.dir/orm_lib/src/mysql_impl/MysqlConnection.cc.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
gmake[1]: *** [CMakeFiles/Makefile2:102: CMakeFiles/drogon.dir/all] Error 2
gmake: *** [Makefile:156: all] Error 2

drogon/1.9.8: ERROR:
Package 'a46701ef8560e9da77ef5d61d365b832bee949e1' build failed
drogon/1.9.8: WARN: Build folder /home/rafeeque/.conan2/p/b/drogo481a72f5cce83/b/build/Release
ERROR: drogon/1.9.8: Error in build() method, line 172
cmake.build()
ConanException: Error 2 while executing

i am using ubuntu

@rafeeque1
Copy link
Author

@an-tao you can see the log attached in the issue description.

@an-tao
Copy link
Member

an-tao commented Feb 26, 2025

This indicates that Drogon has detected the MySQL connector library rather than the MariaDB one. Since the asynchronous APIs are only supported by the MariaDB library, the aforementioned errors occurred.

@rafeeque1
Copy link
Author

@an-tao , what will be the resolve process?

@an-tao
Copy link
Member

an-tao commented Mar 5, 2025

Can you replace MySQL libraries with the MariaDB library in a Conan environment? Sorry I'm not very familiar with Conan, you may need to try it yourself or seek help from the Conan community.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants