1.3.2 build fails
Please briefly describe your problem and what output you expect. If you have a question, please don't use this form. Instead, ask on https://stackoverflow.com/ or https://community.rstudio.com/.
Please include a minimal reproducible example (AKA a reprex). If you've never heard of a reprex before, start by reading https://www.tidyverse.org/help/#reprex.
Session log attached.
# insert reprex here
Thanks, interesting. What version of the client libraries are you compiling against? Are you able to run devtools::install_github() to troubleshoot?
Thanks! Yes, I have devtools. I'm getting the previous version of RMariaDB with install_version(). I think you mean which MySQL client libraries.
Update: I can build the latest tagged version prior to 1.3.2. This works:
install_github(repo = "r-dbi/RMariaDB", ref = "v1.3.1.9000", upgrade = "never")
# rpm -qa| grep -i mariadb
mariadb-5.5.68-1.amzn2.0.1.aarch64
mariadb-devel-5.5.68-1.amzn2.0.1.aarch64
mariadb-server-5.5.68-1.amzn2.0.1.aarch64
mariadb-libs-5.5.68-1.amzn2.0.1.aarch64
# rpm -ql mariadb-libs
/etc/ld.so.conf.d/mariadb-aarch64.conf
/etc/my.cnf
/etc/my.cnf.d
/etc/my.cnf.d/mysql-clients.cnf
/usr/lib64/mysql
/usr/lib64/mysql/libmysqlclient.so.18
/usr/lib64/mysql/libmysqlclient.so.18.0.0
/usr/lib64/mysql/plugin/dialog.so
/usr/lib64/mysql/plugin/mysql_clear_password.so
/usr/share/doc/mariadb-libs-5.5.68
/usr/share/doc/mariadb-libs-5.5.68/COPYING
/usr/share/doc/mariadb-libs-5.5.68/COPYING.Google
/usr/share/doc/mariadb-libs-5.5.68/COPYING.Percona
/usr/share/doc/mariadb-libs-5.5.68/README
/usr/share/doc/mariadb-libs-5.5.68/README.mysql-license
/usr/share/mysql
/usr/share/mysql/charsets
/usr/share/mysql/charsets/Index.xml
/usr/share/mysql/charsets/README
/usr/share/mysql/charsets/armscii8.xml
/usr/share/mysql/charsets/ascii.xml
/usr/share/mysql/charsets/cp1250.xml
/usr/share/mysql/charsets/cp1251.xml
/usr/share/mysql/charsets/cp1256.xml
/usr/share/mysql/charsets/cp1257.xml
/usr/share/mysql/charsets/cp850.xml
/usr/share/mysql/charsets/cp852.xml
/usr/share/mysql/charsets/cp866.xml
/usr/share/mysql/charsets/dec8.xml
/usr/share/mysql/charsets/geostd8.xml
/usr/share/mysql/charsets/greek.xml
/usr/share/mysql/charsets/hebrew.xml
/usr/share/mysql/charsets/hp8.xml
/usr/share/mysql/charsets/keybcs2.xml
/usr/share/mysql/charsets/koi8r.xml
/usr/share/mysql/charsets/koi8u.xml
/usr/share/mysql/charsets/latin1.xml
/usr/share/mysql/charsets/latin2.xml
/usr/share/mysql/charsets/latin5.xml
/usr/share/mysql/charsets/latin7.xml
/usr/share/mysql/charsets/macce.xml
/usr/share/mysql/charsets/macroman.xml
/usr/share/mysql/charsets/swe7.xml
/usr/share/mysql/czech
/usr/share/mysql/czech/errmsg.sys
/usr/share/mysql/danish
/usr/share/mysql/danish/errmsg.sys
/usr/share/mysql/dutch
/usr/share/mysql/dutch/errmsg.sys
/usr/share/mysql/english
/usr/share/mysql/english/errmsg.sys
/usr/share/mysql/estonian
/usr/share/mysql/estonian/errmsg.sys
/usr/share/mysql/french
/usr/share/mysql/french/errmsg.sys
/usr/share/mysql/german
/usr/share/mysql/german/errmsg.sys
/usr/share/mysql/greek
/usr/share/mysql/greek/errmsg.sys
/usr/share/mysql/hungarian
/usr/share/mysql/hungarian/errmsg.sys
/usr/share/mysql/italian
/usr/share/mysql/italian/errmsg.sys
/usr/share/mysql/japanese
/usr/share/mysql/japanese/errmsg.sys
/usr/share/mysql/korean
/usr/share/mysql/korean/errmsg.sys
/usr/share/mysql/norwegian
/usr/share/mysql/norwegian-ny
/usr/share/mysql/norwegian-ny/errmsg.sys
/usr/share/mysql/norwegian/errmsg.sys
/usr/share/mysql/polish
/usr/share/mysql/polish/errmsg.sys
/usr/share/mysql/portuguese
/usr/share/mysql/portuguese/errmsg.sys
/usr/share/mysql/romanian
/usr/share/mysql/romanian/errmsg.sys
/usr/share/mysql/russian
/usr/share/mysql/russian/errmsg.sys
/usr/share/mysql/serbian
/usr/share/mysql/serbian/errmsg.sys
/usr/share/mysql/slovak
/usr/share/mysql/slovak/errmsg.sys
/usr/share/mysql/spanish
/usr/share/mysql/spanish/errmsg.sys
/usr/share/mysql/swedish
/usr/share/mysql/swedish/errmsg.sys
/usr/share/mysql/ukrainian
/usr/share/mysql/ukrainian/errmsg.sys
Thank you for your patience. If this is still an issue, could you test v1.3.1.9004, then v1.3.1.9002 or v1.3.1.9006, ..., to identify where the regression occurred?
v1.3.1.9000 is the latest tag that builds without error. Here’s the log from the earliest one that fails.
Thanks, Rob
remotes::install_github(
-
repo = "r-dbi/RMariaDB", -
ref = "v1.3.1.9001", -
lib = "~/R", -
upgrade = "never", -
force = TRUE - )
- Downloading GitHub repo @.*** -- R CMD build ------------------------------------------------------------------------------------------------------------------------------------- v checking for file '/tmp/RtmpIbXsV6/remotes72e02dff314f/r-dbi-RMariaDB-420fa50/DESCRIPTION'
- preparing 'RMariaDB': v checking DESCRIPTION meta-information
- cleaning src
- running 'cleanup'
- checking for LF line-endings in source and make files and shell scripts
- checking for empty or unneeded directories Removed empty directory 'RMariaDB/.aviator'
- building 'RMariaDB_1.3.1.9001.tar.gz'
- installing source package 'RMariaDB' ... ** using staged installation Using mysql_config Found mysql_config cflags and libs! Using PKG_CFLAGS=-I/usr/include/mysql Using PKG_LIBS=-L/usr/lib64/mysql -lmysqlclient -lpthread -lz -lm -ldl -lssl -lcrypto Using PKG_PLOGR= ** libs using C++ compiler: 'g++ (GCC) 7.3.1 20180712 (Red Hat 7.3.1-17)' g++ -std=gnu++17 -I"/usr/lib/R/include" -DNDEBUG -I/usr/include/mysql -Ivendor -DBOOST_NO_AUTO_PTR -I'/usr/lib/R/addons/cpp11/include' -I'/usr/lib/R/addons/plogr/include' -I/usr/local/include -fPIC -g -O2 -c DbConnection.cpp -o DbConnection.o DbConnection.cpp: In member function 'void DbConnection::connect(const cpp11::sexp&, const cpp11::sexp&, const cpp11::sexp&, const cpp11::sexp&, unsigned int, const cpp11::sexp&, long unsigned int, const cpp11::sexp&, const cpp11::sexp&, const cpp11::sexp&, const cpp11::sexp&, const cpp11::sexp&, const cpp11::sexp&, const cpp11::sexp&, int, bool)': DbConnection.cpp:47:33: error: 'MYSQL_OPT_SSL_KEY' was not declared in this scope mysql_options(this->pConn_, MYSQL_OPT_SSL_KEY, cpp11::as_cppstd::string(ssl_key).c_str()); ^~~~~~~~~~~~~~~~~ DbConnection.cpp:47:33: note: suggested alternative: 'MYSQL_OPT_USE_RESULT' mysql_options(this->pConn_, MYSQL_OPT_SSL_KEY, cpp11::as_cppstd::string(ssl_key).c_str()); ^~~~~~~~~~~~~~~~~ MYSQL_OPT_USE_RESULT DbConnection.cpp:50:33: error: 'MYSQL_OPT_SSL_CERT' was not declared in this scope mysql_options(this->pConn_, MYSQL_OPT_SSL_CERT, cpp11::as_cppstd::string(ssl_cert).c_str()); ^~~~~~~~~~~~~~~~~~ DbConnection.cpp:50:33: note: suggested alternative: 'MYSQL_OPT_USE_RESULT' mysql_options(this->pConn_, MYSQL_OPT_SSL_CERT, cpp11::as_cppstd::string(ssl_cert).c_str()); ^~~~~~~~~~~~~~~~~~ MYSQL_OPT_USE_RESULT DbConnection.cpp:53:33: error: 'MYSQL_OPT_SSL_CA' was not declared in this scope mysql_options(this->pConn_, MYSQL_OPT_SSL_CA, cpp11::as_cppstd::string(ssl_ca).c_str()); ^~~~~~~~~~~~~~~~ DbConnection.cpp:53:33: note: suggested alternative: 'MYSQL_OPT_NONBLOCK' mysql_options(this->pConn_, MYSQL_OPT_SSL_CA, cpp11::as_cppstd::string(ssl_ca).c_str()); ^~~~~~~~~~~~~~~~ MYSQL_OPT_NONBLOCK DbConnection.cpp:56:33: error: 'MYSQL_OPT_SSL_CAPATH' was not declared in this scope mysql_options(this->pConn_, MYSQL_OPT_SSL_CAPATH, cpp11::as_cppstd::string(ssl_capath).c_str()); ^~~~~~~~~~~~~~~~~~~~ DbConnection.cpp:56:33: note: suggested alternative: 'MYSQL_OPT_USE_RESULT' mysql_options(this->pConn_, MYSQL_OPT_SSL_CAPATH, cpp11::as_cppstd::string(ssl_capath).c_str()); ^~~~~~~~~~~~~~~~~~~~ MYSQL_OPT_USE_RESULT DbConnection.cpp:59:33: error: 'MYSQL_OPT_SSL_CIPHER' was not declared in this scope mysql_options(this->pConn_, MYSQL_OPT_SSL_CIPHER, cpp11::as_cppstd::string(ssl_cipher).c_str()); ^~~~~~~~~~~~~~~~~~~~ DbConnection.cpp:59:33: note: suggested alternative: 'MYSQL_OPT_USE_RESULT' mysql_options(this->pConn_, MYSQL_OPT_SSL_CIPHER, cpp11::as_cppstd::string(ssl_cipher).c_str()); ^~~~~~~~~~~~~~~~~~~~ MYSQL_OPT_USE_RESULT make: *** [DbConnection.o] Error 1 ERROR: compilation failed for package 'RMariaDB'
- removing '/home/fatkat/R/RMariaDB'
- restoring previous '/home/fatkat/R/RMariaDB' Error: Failed to install 'RMariaDB' from GitHub: (converted from warning) installation of package '/tmp/RtmpIbXsV6/file72e02978f29c/RMariaDB_1.3.1.9001.tar.gz' had non-zero exit status
Enter a frame number, or 0 to exit
1: remotes::install_github(repo = "r-dbi/RMariaDB", ref = "v1.3.1.9001", lib = "~/R", upgrade = "never", force = TRUE) 2: install_remotes(remotes, auth_token = auth_token, host = host, dependencies = dependencies, upgrade = upgrade, force = force, quiet = quiet, bu 3: tryCatch(res[[i]] <- install_remote(remotes[[i]], ...), error = function(e) { stop(remote_install_error(remotes[[i]], e)) }) 4: tryCatchList(expr, classes, parentenv, handlers) 5: tryCatchOne(expr, names, parentenv, handlers[[1]]) 6: value[3]
Selection:
Thanks. Any chance you could upgrade your client libraries? The first 5.7 release appeared in early 2013, with EOL presumed 2023, according to https://dev.mysql.com/doc/relnotes/mysql/5.7/en/ . The version 5.5 that seems to be installed on your system must be even older than that.
@d-hansen: You helped with SSL issues before. Do you think it's worth supporting libmysql 5.5?
Uh... No, I do not think it's worth supporting libmysql 5.5:
MySQL 5.5 was released in December 2010 and reached end of life on December 31, 2015.
It has been EOL'd for 9 years now!!
However, I think you meant supporting MariaDB 5.5 - which we should most definitely continue supporting for a bit. I will look into what's going on and perhaps make a PR.
Yes, my bad -- somehow I made the association 5.5 ==> MySQL.
Thank you very much!
Well, that's not a bad association as MariaDB 5.5 is effectively built on MySQL 5.5 (plus some "enhancements"). I guess my logic is that MariaDB 5.5 was still being actively maintained up until 2020. So, that's a little more recent than MySQL 5.5. It's also still available as the default MariaDB installed on AL2 (hence my opinion on why we should try to support it).
I would highly recommend anyone still using MariaDB 5.5 to pro-actively move to 10.x. Any new CVE's are not going to be patched (unless Amazon does it).
Here is the MariaDB upgrade guide: https://mariadb.com/kb/en/upgrading-from-mariadb-55-to-mariadb-100/
Working on a PR now. We'll see how intrusive it ends up being.