You are not logged in.
Hi everyone!
During the recompilation of all the packages for x86_64 and switching to newest package versions I stumbled over the impossibility to compile MySQL due to an error in mysql/vio/viosslfactories.c:
[c]viosslfactories.c:42:7: error: invalid use of incomplete typedef 'DH' {aka 'struct dh_st'}
viosslfactories.c:43:7: error: invalid use of incomplete typedef 'DH' {aka 'struct dh_st'}
viosslfactories.c:44:13: error: invalid use of incomplete typedef 'DH' {aka 'struct dh_st'}
viosslfactories.c:44:24: error: invalid use of incomplete typedef 'DH' {aka 'struct dh_st'}[/c]
What I found out yet is that this derives from a change in OpenSSL 1.1.x, "due to API changes and structures being opaque" - whatever this exactly means. (see http://vega.pgw.jp/~kabe/vsd/migrate2openssl-1.1.html ).
I guess this could be solved quite quickly with a relatively small patch, but my c/c++ skills are ancient and long gone.
Is there anybody out there with a solution at hand?!?
Thanks in advance !!!
SubStructure in viosslfactories.c looks like this:
[c]static DH *get_dh512(void)
{
DH *dh;
if ((dh=DH_new()))
{
dh->p=BN_bin2bn(dh512_p,sizeof(dh512_p),NULL);
dh->g=BN_bin2bn(dh512_g,sizeof(dh512_g),NULL);
if (! dh->p || ! dh->g)
{
DH_free(dh);
dh=0;
}
}
return(dh);
}[/c]
Offline
What is the exact version of mysql that is failing to build with what exact version of openssl ?
Offline
Hi mojo, sorry for forgetting the obvious... :-/
I tried to compile MySQL 5.5.27 (the only version I could find since the wok fetches it from mirror.switch.ch and I couldn't identify which MySQL package to fetch from www.mysql.com) with the latest OpenSSL version 1.1.1k using gcc10.2.
Offline
Since no further reaction arose and the dependency for MySQL is quite central for rebuilding all the packages for x86_64 I poked around some more...
What I learned now is:
1.) that the MySQL package seems to be equivalent to the "MySQL community edition server",
2.) that the most recent version of the 5.-series of MySQL is 5.7.33, which almost doubled in size, while the latest version of the server is 8.0.24 which is even bigger (23M -> 53M -> 270M)
3.) Since 5.7.33 compiled well (although there seem to be some differences in the files created, especially for the package MySQL-client), I chose that one to step ahead as it seems to be a reasonable compromise.
I close this thread, then...
Offline
Sorry for my explanation, but this is the result of my build
openssl version -a
OpenSSL 1.1.1g 21 Apr 2020
built on: Mon Mar 1 17:36:13 2021 UTC
platform: linux-x86_64
options: bn(64,64) rc4(16x,int) des(int) idea(int) blowfish(ptr)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DZLIB -DZLIB_SHARED -DNDEBUG
OPENSSLDIR: "/etc/ssl"
ENGINESDIR: "/usr/lib/engines-1.1"
Seeding source: os-specific
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.5.27.tar.gz
tar -xvf mysql-5.5.27.tar.gz
cd mysql-5.5.27
list of patch:
https://pastebin.com/Y81Zme18
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DINSTALL_DOCDIR=share/doc/mysql -DINSTALL_DOCREADMEDIR=share/doc/mysql -DINSTALL_INCLUDEDIR=include/mysql -DINSTALL_INFODIR=share/info -DINSTALL_MANDIR=share/man -DINSTALL_MYSQLDATADIR=/srv/mysql -DINSTALL_MYSQLSHAREDIR=share/mysql -DINSTALL_MYSQLTESTDIR=share/mysql/test -DINSTALL_PLUGINDIR=lib/mysql/plugin -DINSTALL_SBINDIR=sbin -DINSTALL_SCRIPTDIR=bin -DINSTALL_SQLBENCHDIR=share/mysql/bench -DINSTALL_SUPPORTFILESDIR=share/mysql -DMYSQL_DATADIR=/srv/mysql -DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock -DSYSCONFDIR=/etc/mysql -DWITH_PERFSCHEMA_STORAGE_ENGINE=OFF -DWITH_EXTRA_CHARSETS=complex -DWITH_LIBEVENT=system -DCMAKE_CXX_FLAGS=-UOPENSSL_NO_DEPRECATED -DCMAKE_C_FLAGS=-UOPENSSL_NO_DEPRECATED ..
-- Build files have been written to: mysql-5.5.27/build
make....
[100%] Built target my_safe_process...
end without error!
edit: the forum broke the code, I have relinked from pastebin
Offline
Thank's for help into that message i will follow!
Offline
[ Generated in 0.017 seconds, 7 queries executed - Memory usage: 1.55 MiB (Peak: 1.77 MiB) ]