[Slackbuilds-users] qt5 5.5.1 fails to build with multiple jobs
Andrzej Telszewski
atelszewski at gmail.com
Sun Mar 13 12:18:24 UTC 2016
On 13/03/16 11:12, Willy Sudiarto Raharjo wrote:
>> Well, for me, the RESUMED build fails with the single job too, now with
>> the following error:
>
> best not to resume a broken build
> please restart the whole process as i just built Qt 5.5.1 yesterday and
> it went fine
>
Are you guys up to date with the Thu Mar 10 02:46:49 UTC 2016 -current
update?
This update has updated mozilla-nss package.
And now, if I remove mozilla-nss package, the RESUMED qt5 build fails in
a different place, which leads me to thinking that mozilla-nss is used
for qt5 build.
And now, the previous build of qt5 fails with:
/home/software/slackware/pkg/tmpdir/qt-everywhere-opensource-src-5.5.1/qtwebengine/src/3rdparty/chromium/net/third_party/nss/ssl/ssl3con.c:2091:15:
error: ‘CK_NSS_AEAD_PARAMS {aka struct CK_NSS_AEAD_PARAMS}’ has no
member named ‘pIv’
aeadParams.pIv = (unsigned char *) additionalData;
^
/home/software/slackware/pkg/tmpdir/qt-everywhere-opensource-src-5.5.1/qtwebengine/src/3rdparty/chromium/net/third_party/nss/ssl/ssl3con.c:2092:15:
error: ‘CK_NSS_AEAD_PARAMS {aka struct CK_NSS_AEAD_PARAMS}’ has no
member named ‘ulIvLen’
aeadParams.ulIvLen = 8;
^
which would be correct, if the SYSTEM wide header was used, that is:
/usr/include/nss/pkcs11n.h
because structure defined there in:
typedef struct CK_NSS_AEAD_PARAMS {
CK_BYTE_PTR pNonce;
CK_ULONG ulNonceLen;
CK_BYTE_PTR pAAD;
CK_ULONG ulAADLen;
CK_ULONG ulTagLen;
} CK_NSS_AEAD_PARAMS;
actually does not have pIv and ulIvLen fields.
And I'm convinced that system header is used, because of:
-I/usr/include/nss
being defined when the compiler is invoked.
There is this patch:
qt-everywhere-opensource-src-5.5.1/qtwebengine/src/3rdparty/chromium/net/third_party/nss/patches/chacha20poly1305.patch
which adds the correct structure, that is:
typedef struct CK_NSS_AEAD_PARAMS {
CK_BYTE_PTR pIv; /* This is the nonce. */
CK_ULONG ulIvLen;
CK_BYTE_PTR pAAD;
CK_ULONG ulAADLen;
CK_ULONG ulTagLen;
} CK_NSS_AEAD_PARAMS;
but I'm not sure if all of this is correctly taken into account, because
if you look at:
qt-everywhere-opensource-src-5.5.1/qtwebengine/src/3rdparty/chromium/net/third_party/nss/ssl/ssl3con.c:45
then you have:
#ifndef CKM_NSS_CHACHA20_POLY1305
#define CKM_NSS_CHACHA20_POLY1305 (CKM_NSS + 26)
typedef struct CK_NSS_AEAD_PARAMS {
CK_BYTE_PTR pIv; /* This is the nonce. */
CK_ULONG ulIvLen;
CK_BYTE_PTR pAAD;
CK_ULONG ulAADLen;
CK_ULONG ulTagLen;
} CK_NSS_AEAD_PARAMS;
#endif
so if CKM_NSS_CHACHA20_POLY1305 is already defined, then this correct
struct is not taken into account.
And CKM_NSS_CHACHA20_POLY1305 is defined outside, if the system headers
are being used:
qt-everywhere-opensource-src-5.5.1/qtwebengine/src/3rdparty/chromium/net/third_party/nss/ssl/ssl3con.c:
includes:
/usr/include/nss/cert.h
which includes:
/usr/include/nss/certt.h
which includes:
/usr/include/nss/pkcs11t.h
which includes:
/usr/include/nss/pkcs11n.h
which contains faulty struct:
typedef struct CK_NSS_AEAD_PARAMS {
CK_BYTE_PTR pNonce;
CK_ULONG ulNonceLen;
CK_BYTE_PTR pAAD;
CK_ULONG ulAADLen;
CK_ULONG ulTagLen;
} CK_NSS_AEAD_PARAMS;
and the definition of CKM_NSS_CHACHA20_POLY1305.
And it looks like CKM_NSS_CHACHA20_POLY1305 was not defined in the
previous mozilla-nss package. I'm not sure which version it was, but if
it was 3.20.1, the I cannot find CKM_NSS_CHACHA20_POLY1305 in the
source. That would mean that qt5 should build fine with
mozilla-nss-3.20.1, but will fail with mozilla-nss-3.23, which is
actually happening to me.
I hope I expressed myself clearly ;)
Any ideas?
--
Best regards,
Andrzej Telszewski
More information about the SlackBuilds-users
mailing list