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
_______________________________________________
SlackBuilds-users mailing list
SlackBuilds-users@slackbuilds.org
http://lists.slackbuilds.org/mailman/listinfo/slackbuilds-users
Archives - http://lists.slackbuilds.org/pipermail/slackbuilds-users/
FAQ - http://slackbuilds.org/faq/

Reply via email to