[Pkg-openssl-devel] Bug#846575: libssl-dev:amd64: struct dh_st is declared and used but nowhere defined
Edward Welbourne
edward.welbourne at qt.io
Fri Dec 2 09:59:49 UTC 2016
Package: libssl-dev
Version: 1.1.0c-2
Severity: important
Dear Maintainer,
I'm building Qt from source and it has some code that accesses a
member of struct dh_st (accessed via its typedef name, DH); my
build failed (for the first time, just after upgrading libssl-dev)
because
error: invalid use of incomplete type ‘DH {aka struct dh_st}’
I find:
$ find /usr/include/openssl /usr/include/x86_64-linux-gnu/openssl \
-type f -print0 | "xargs" -0 -e grep -wnH -e dh_st
/usr/include/openssl/ossl_typ.h:104:typedef struct dh_st DH;
/usr/include/openssl/dh.h:61:/* typedef struct dh_st DH; */
/usr/include/openssl/evp.h:920:struct dh_st;
/usr/include/openssl/evp.h:921:int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key);
/usr/include/openssl/evp.h:922:struct dh_st *EVP_PKEY_get0_DH(EVP_PKEY *pkey);
/usr/include/openssl/evp.h:923:struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey);
Note the declarations and uses; but no definition of the type.
It's possible this struct's internals are meant to be private and
1.1.0c-2 has finally enforced that - in which case Qt is at fault (and
I'll file a bug against Qt). The offending code in Qt is in its
qtbase/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp
There are similar errors for
* EVP_PKEY {aka struct evp_pkey_st}, aggregate ‘EVP_CIPHER_CTX ctx’,
DSA {aka dsa_st} and RSA {aka rsa_st} in
qtbase/src/network/ssl/qsslkey_openssl.cpp
* X509 {aka struct x509_st} and EVP_PKEY {aka struct evp_pkey_st} in
qtbase/src/network/ssl/qsslcertificate_openssl.cpp
Again, find | xargs grep reveals only declarations, no definitions.
-- System Information:
Debian Release: stretch/sid
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'testing'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 4.7.0-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages libssl-dev:amd64 depends on:
ii libssl1.1 1.1.0c-2
Versions of packages libssl-dev:amd64 recommends:
ii libssl-doc 1.1.0c-2
libssl-dev:amd64 suggests no packages.
-- no debconf information
More information about the Pkg-openssl-devel
mailing list