SliTaz SliTaz Forum

You are not logged in.

#1 2021-04-11 11:22:48

Filou
Moderator
Registered: 2011-05-03
Posts: 256

MySQL compilation with OpenSSL 1.1.x fails due to incomplete tyepef 'DH'

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

#2 2021-04-11 14:35:01

mojo
Administrator
Registered: 2011-03-29
Posts: 2,174

Re: MySQL compilation with OpenSSL 1.1.x fails due to incomplete tyepef 'DH'

What is the exact version of mysql that is failing to build with what exact version of openssl ?

Offline

#3 2021-04-11 16:32:28

Filou
Moderator
Registered: 2011-05-03
Posts: 256

Re: MySQL compilation with OpenSSL 1.1.x fails due to incomplete tyepef 'DH'

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

#4 2021-04-30 13:47:50

Filou
Moderator
Registered: 2011-05-03
Posts: 256

Re: MySQL compilation with OpenSSL 1.1.x fails due to incomplete tyepef 'DH'

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

#5 2021-05-04 10:04:11

gibor
Moderator
Registered: 2011-04-30
Posts: 1,067

Re: MySQL compilation with OpenSSL 1.1.x fails due to incomplete tyepef 'DH'

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

#6 2021-05-21 16:13:47

julieher
Member
Registered: 2021-04-22
Posts: 1

Re: MySQL compilation with OpenSSL 1.1.x fails due to incomplete tyepef 'DH'

Thank's for help into that message i will follow!

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.017 seconds, 7 queries executed - Memory usage: 1.55 MiB (Peak: 1.77 MiB) ]