<html>
<head>
<base href="https://bugs.documentfoundation.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_UNCONFIRMED "
title="UNCONFIRMED - Loolwsd build fails with OpenSSL 1.1.0"
href="https://bugs.documentfoundation.org/show_bug.cgi?id=111429">111429</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Loolwsd build fails with OpenSSL 1.1.0
</td>
</tr>
<tr>
<th>Product</th>
<td>LibreOffice Online
</td>
</tr>
<tr>
<th>Version</th>
<td>unspecified
</td>
</tr>
<tr>
<th>Hardware</th>
<td>All
</td>
</tr>
<tr>
<th>OS</th>
<td>All
</td>
</tr>
<tr>
<th>Status</th>
<td>UNCONFIRMED
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>medium
</td>
</tr>
<tr>
<th>Component</th>
<td>LibreOffice
</td>
</tr>
<tr>
<th>Assignee</th>
<td>libreoffice-bugs@lists.freedesktop.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>christian.glombek@rwth-aachen.de
</td>
</tr></table>
<p>
<div>
<pre>Building with OpenSSL 1.1.0 fails. This is due to the DH struct now being
opague and having a new API.
>From my build log:
...
env BUILDING_FROM_RPMBUILD=yes make 'CCFLAGS=-O2 -g -pipe -Wall
-Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -Wno-error'
'CFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
-fexceptions -fstack-protector-strong --param=ssp-buffer-size=4
-grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64
-mtune=generic -Wno-error' 'CXXFLAGS=-O2 -g -pipe -Wall -Werror=format-security
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong
--param=ssp-buffer-size=4 -grecord-gcc-switches
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -Wno-error'
-j6
make all-recursive
make[1]: Entering directory '/builddir/build/BUILD/online-libreoffice-5.4.0.2'
Making all in .
make[2]: Entering directory '/builddir/build/BUILD/online-libreoffice-5.4.0.2'
CXX common/loolstress-Protocol.o
CXX common/loolstress-Log.o
CXX net/clientnb.o
CXX wsd/loolwsd_fuzzer-Admin.o
CXX common/loolstress-Util.o
CXX wsd/loolwsd_fuzzer-AdminModel.o
CXX wsd/loolwsd_fuzzer-Auth.o
CXX wsd/loolwsd_fuzzer-DocumentBroker.o
CXX wsd/loolwsd_fuzzer-LOOLWSD.o
CXX wsd/loolwsd_fuzzer-ClientSession.o
CXX wsd/loolwsd_fuzzer-FileServer.o
CXX wsd/loolwsd_fuzzer-Storage.o
CXX wsd/loolwsd_fuzzer-TileCache.o
CXX kit/loolwsd_fuzzer-ChildSession.o
CXX kit/loolwsd_fuzzer-ForKit.o
CXX kit/loolwsd_fuzzer-Kit.o
kit/Kit.cpp:1688:13: warning: In the GNU C Library, "makedev" is defined
by <sys/sysmacros.h>. For historical compatibility, it is
currently defined by <sys/types.h> as well, but we plan to
remove this soon. To use "makedev", include <sys/sysmacros.h>
directly. If you did not intend to use a system-defined macro
"makedev", you should undefine it after including <sys/types.h>.
makedev(1, 8)) != 0)
^ ~~~~~~~~~~~~~~~~~~~~
kit/Kit.cpp:1695:13: warning: In the GNU C Library, "makedev" is defined
by <sys/sysmacros.h>. For historical compatibility, it is
currently defined by <sys/types.h> as well, but we plan to
remove this soon. To use "makedev", include <sys/sysmacros.h>
directly. If you did not intend to use a system-defined macro
"makedev", you should undefine it after including <sys/types.h>.
makedev(1, 9)) != 0)
^ ~~~~~~~~~~~~~~~~~~~~
CXX common/loolwsd_fuzzer-FileUtil.o
CXX common/loolwsd_fuzzer-IoUtil.o
CXX common/loolwsd_fuzzer-Log.o
CXX common/loolwsd_fuzzer-Protocol.o
CXX common/loolwsd_fuzzer-Session.o
CXX common/loolwsd_fuzzer-Seccomp.o
CXX common/loolwsd_fuzzer-MessageQueue.o
CXX common/loolwsd_fuzzer-SigUtil.o
CXX common/loolwsd_fuzzer-SpookyV2.o
CXX common/loolwsd_fuzzer-Unit.o
CXX common/loolwsd_fuzzer-UnitHTTP.o
CXX common/loolwsd_fuzzer-Util.o
CXX net/loolwsd_fuzzer-DelaySocket.o
CXX net/loolwsd_fuzzer-Socket.o
CXX net/loolwsd_fuzzer-Ssl.o
CXX kit/loolwsd_fuzzer-DummyLibreOfficeKit.o
net/Ssl.cpp: In constructor 'SslContext::SslContext(const string&, const
string&, const string&)':
net/Ssl.cpp:46:27: warning: 'void OPENSSL_config(const char*)' is deprecated
[-Wdeprecated-declarations]
OPENSSL_config(nullptr);
^
In file included from /usr/include/openssl/opensslconf.h:42:0,
from /usr/include/openssl/ct.h:13,
from /usr/include/openssl/ssl.h:61,
from net/Ssl.hpp:19,
from net/Ssl.cpp:13:
/usr/include/openssl/conf.h:92:1: note: declared here
DEPRECATEDIN_1_1_0(void OPENSSL_config(const char *config_name))
^
net/Ssl.cpp: In member function 'void SslContext::initDH()':
net/Ssl.cpp:236:7: error: invalid use of incomplete type 'DH {aka struct
dh_st}'
dh->p = BN_bin2bn(dh1024_p, sizeof(dh1024_p), 0);
^~
In file included from /usr/include/openssl/crypto.h:31:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from net/Ssl.hpp:19,
from net/Ssl.cpp:13:
/usr/include/openssl/ossl_typ.h:104:16: note: forward declaration of 'DH {aka
struct dh_st}'
typedef struct dh_st DH;
^~~~~
net/Ssl.cpp:236:9: error: invalid use of incomplete type 'DH {aka struct
dh_st}'
dh->p = BN_bin2bn(dh1024_p, sizeof(dh1024_p), 0);
^
In file included from /usr/include/openssl/crypto.h:31:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from net/Ssl.hpp:19,
from net/Ssl.cpp:13:
/usr/include/openssl/ossl_typ.h:104:16: note: forward declaration of 'DH {aka
struct dh_st}'
typedef struct dh_st DH;
^~~~~
net/Ssl.cpp:237:7: error: invalid use of incomplete type 'DH {aka struct
dh_st}'
dh->g = BN_bin2bn(dh1024_g, sizeof(dh1024_g), 0);
^~
In file included from /usr/include/openssl/crypto.h:31:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from net/Ssl.hpp:19,
from net/Ssl.cpp:13:
/usr/include/openssl/ossl_typ.h:104:16: note: forward declaration of 'DH {aka
struct dh_st}'
typedef struct dh_st DH;
^~~~~
net/Ssl.cpp:237:9: error: invalid use of incomplete type 'DH {aka struct
dh_st}'
dh->g = BN_bin2bn(dh1024_g, sizeof(dh1024_g), 0);
^
In file included from /usr/include/openssl/crypto.h:31:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from net/Ssl.hpp:19,
from net/Ssl.cpp:13:
/usr/include/openssl/ossl_typ.h:104:16: note: forward declaration of 'DH {aka
struct dh_st}'
typedef struct dh_st DH;
^~~~~
net/Ssl.cpp:238:7: error: invalid use of incomplete type 'DH {aka struct
dh_st}'
dh->length = 160;
^~
In file included from /usr/include/openssl/crypto.h:31:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from net/Ssl.hpp:19,
from net/Ssl.cpp:13:
/usr/include/openssl/ossl_typ.h:104:16: note: forward declaration of 'DH {aka
struct dh_st}'
typedef struct dh_st DH;
^~~~~
net/Ssl.cpp:238:9: error: invalid use of incomplete type 'DH {aka struct
dh_st}'
dh->length = 160;
^~~~~~
In file included from /usr/include/openssl/crypto.h:31:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from net/Ssl.hpp:19,
from net/Ssl.cpp:13:
/usr/include/openssl/ossl_typ.h:104:16: note: forward declaration of 'DH {aka
struct dh_st}'
typedef struct dh_st DH;
^~~~~
net/Ssl.cpp:239:13: error: invalid use of incomplete type 'DH {aka struct
dh_st}'
if ((!dh->p) || (!dh->g))
^~
In file included from /usr/include/openssl/crypto.h:31:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from net/Ssl.hpp:19,
from net/Ssl.cpp:13:
/usr/include/openssl/ossl_typ.h:104:16: note: forward declaration of 'DH {aka
struct dh_st}'
typedef struct dh_st DH;
^~~~~
net/Ssl.cpp:239:15: error: invalid use of incomplete type 'DH {aka struct
dh_st}'
if ((!dh->p) || (!dh->g))
^
In file included from /usr/include/openssl/crypto.h:31:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from net/Ssl.hpp:19,
from net/Ssl.cpp:13:
/usr/include/openssl/ossl_typ.h:104:16: note: forward declaration of 'DH {aka
struct dh_st}'
typedef struct dh_st DH;
^~~~~
net/Ssl.cpp:239:25: error: invalid use of incomplete type 'DH {aka struct
dh_st}'
if ((!dh->p) || (!dh->g))
^~
In file included from /usr/include/openssl/crypto.h:31:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from net/Ssl.hpp:19,
from net/Ssl.cpp:13:
/usr/include/openssl/ossl_typ.h:104:16: note: forward declaration of 'DH {aka
struct dh_st}'
typedef struct dh_st DH;
^~~~~
net/Ssl.cpp:239:27: error: invalid use of incomplete type 'DH {aka struct
dh_st}'
if ((!dh->p) || (!dh->g))
^
In file included from /usr/include/openssl/crypto.h:31:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from net/Ssl.hpp:19,
from net/Ssl.cpp:13:
/usr/include/openssl/ossl_typ.h:104:16: note: forward declaration of 'DH {aka
struct dh_st}'
typedef struct dh_st DH;
^~~~~
make[2]: *** [Makefile:1612: net/loolwsd_fuzzer-Ssl.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/builddir/build/BUILD/online-libreoffice-5.4.0.2'
make[1]: Leaving directory '/builddir/build/BUILD/online-libreoffice-5.4.0.2'
make[1]: *** [Makefile:1714: all-recursive] Error 1
make: *** [Makefile:734: all] Error 2</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>