* [gentoo-commits] repo/proj/libressl:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2023-04-21 15:02 orbea
0 siblings, 0 replies; 15+ messages in thread
From: orbea @ 2023-04-21 15:02 UTC (permalink / raw
To: gentoo-commits
commit: 7a3627237357385646db06e2ea2ae731700eee1e
Author: Anna “CyberTailor” <cyber <AT> sysrq <DOT> in>
AuthorDate: Thu Apr 20 16:42:00 2023 +0000
Commit: orbea <orbea <AT> riseup <DOT> net>
CommitDate: Fri Apr 21 14:56:30 2023 +0000
URL: https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=7a362723
dev-qt/qtbase: add 6.5.0, drop 6.4.2
Signed-off-by: Anna “CyberTailor” <cyber <AT> sysrq.in>
Closes: https://github.com/gentoo/libressl/pull/529
Signed-off-by: orbea <orbea <AT> riseup.net>
dev-qt/qtbase/Manifest | 2 +-
...-libressl.patch => qtbase-6.5.0-libressl.patch} | 296 +++++++++++----------
...-6.5.0-setActiveWindow-deprecated-version.patch | 35 +++
...{qtbase-6.4.2.ebuild => qtbase-6.5.0-r1.ebuild} | 13 +-
4 files changed, 195 insertions(+), 151 deletions(-)
diff --git a/dev-qt/qtbase/Manifest b/dev-qt/qtbase/Manifest
index e77cc5d..6b955e5 100644
--- a/dev-qt/qtbase/Manifest
+++ b/dev-qt/qtbase/Manifest
@@ -1 +1 @@
-DIST qtbase-everywhere-src-6.4.2.tar.xz 47987188 BLAKE2B 5d25d8b912ba775faa5855ad4326cbd19580cc7f98b997a9bbdb4a2216550a60b2c8a7a2ef1741a5dfd66ebde0d1cf5d0394215474c39c7779648b03c3892812 SHA512 b00cce7bfc29d3a34c9a2f08db147c4bfd962e178916d60033e1845b25eaeaa4fbd42f5c1d7e39453ddb412a4e91c22c8eae52745eda8a47e35a691054d5496e
+DIST qtbase-everywhere-src-6.5.0.tar.xz 48020636 BLAKE2B 234000eeb6e1b57a1c7561613bf437453fc2db0d23d5ddd61c38961311a7de5263c086864554aff7a0bc1e5a406af78ef8342eed3c8a5f48b9237912614f380b SHA512 29f70b9a9650afdd8e34703a7a8191feab4c3a25d0bc3a41010ea842389335b24e2685721fdb4a03653475ebd9bf8a8e4f4a77bf5d64b1289590b5ca0e4623f3
diff --git a/dev-qt/qtbase/files/qtbase-6.4.2-libressl.patch b/dev-qt/qtbase/files/qtbase-6.5.0-libressl.patch
similarity index 85%
rename from dev-qt/qtbase/files/qtbase-6.4.2-libressl.patch
rename to dev-qt/qtbase/files/qtbase-6.5.0-libressl.patch
index f75f651..d3d7313 100644
--- a/dev-qt/qtbase/files/qtbase-6.4.2-libressl.patch
+++ b/dev-qt/qtbase/files/qtbase-6.5.0-libressl.patch
@@ -1,12 +1,148 @@
Fixes Qt6 build on LibreSSL.
-https://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_network_ssl_qsslsocket_openssl_symbols_cpp?rev=1.7
-https://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_plugins_tls_openssl_qopenssl_p_h?rev=1.2
-https://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_plugins_tls_openssl_qsslcontext_openssl_cpp?rev=1.2
-https://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_plugins_tls_openssl_qsslsocket_openssl_symbols_p_h?rev=1.2
-https://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_plugins_tls_openssl_qtls_openssl_cpp?rev=1.2
-https://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_plugins_tls_openssl_qx509_openssl_cpp?rev=1.2
+http://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_network_ssl_qsslsocket_openssl_symbols_cpp?rev=1.8
+http://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_plugins_tls_openssl_qopenssl_p_h?rev=1.2
+http://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_plugins_tls_openssl_qsslcontext_openssl_cpp?rev=1.2
+http://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_plugins_tls_openssl_qsslsocket_openssl_symbols_p_h?rev=1.2
+http://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_plugins_tls_openssl_qtls_openssl_cpp?rev=1.2
+http://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_plugins_tls_openssl_qx509_openssl_cpp?rev=1.3
+--- a/src/plugins/tls/openssl/qsslsocket_openssl_symbols.cpp
++++ b/src/plugins/tls/openssl/qsslsocket_openssl_symbols.cpp
+@@ -112,23 +112,37 @@ DEFINEFUNC(const BIO_METHOD *, BIO_s_mem, void, DUMMYA
+ DEFINEFUNC2(int, BN_is_word, BIGNUM *a, a, BN_ULONG w, w, return 0, return)
+ DEFINEFUNC(int, EVP_CIPHER_CTX_reset, EVP_CIPHER_CTX *c, c, return 0, return)
+ DEFINEFUNC(int, EVP_PKEY_up_ref, EVP_PKEY *a, a, return 0, return)
++#ifdef OPENSSL_NO_DEPRECATED_3_0
+ DEFINEFUNC2(EVP_PKEY_CTX *, EVP_PKEY_CTX_new, EVP_PKEY *pkey, pkey, ENGINE *e, e, return nullptr, return)
++DEFINEFUNC2(EVP_PKEY_CTX *, EVP_PKEY_CTX_new, EVP_PKEY *pkey, pkey, ENGINE *e, e, return nullptr, return)
+ DEFINEFUNC(int, EVP_PKEY_param_check, EVP_PKEY_CTX *ctx, ctx, return 0, return)
+ DEFINEFUNC(void, EVP_PKEY_CTX_free, EVP_PKEY_CTX *ctx, ctx, return, return)
++#endif // OPENSSL_NO_DEPRECATED_3_0
++#ifndef LIBRESSL_VERSION_NUMBER
+ DEFINEFUNC(int, OPENSSL_sk_num, OPENSSL_STACK *a, a, return -1, return)
+ DEFINEFUNC2(void, OPENSSL_sk_pop_free, OPENSSL_STACK *a, a, void (*b)(void*), b, return, DUMMYARG)
+ DEFINEFUNC(OPENSSL_STACK *, OPENSSL_sk_new_null, DUMMYARG, DUMMYARG, return nullptr, return)
+ DEFINEFUNC2(void, OPENSSL_sk_push, OPENSSL_STACK *a, a, void *b, b, return, DUMMYARG)
+ DEFINEFUNC(void, OPENSSL_sk_free, OPENSSL_STACK *a, a, return, DUMMYARG)
+ DEFINEFUNC2(void *, OPENSSL_sk_value, OPENSSL_STACK *a, a, int b, b, return nullptr, return)
++#else
++DEFINEFUNC(int, sk_num, STACK *a, a, return -1, return)
++DEFINEFUNC2(void, sk_pop_free, STACK *a, a, void (*b)(void*), b, return, DUMMYARG)
++DEFINEFUNC(_STACK *, sk_new_null, DUMMYARG, DUMMYARG, return nullptr, return)
++DEFINEFUNC2(void, sk_push, _STACK *a, a, void *b, b, return, DUMMYARG)
++DEFINEFUNC(void, sk_free, _STACK *a, a, return, DUMMYARG)
++DEFINEFUNC2(void *, sk_value, STACK *a, a, int b, b, return nullptr, return)
++#endif // LIBRESSL_VERSION_NUMBER
+ DEFINEFUNC(int, SSL_session_reused, SSL *a, a, return 0, return)
+ DEFINEFUNC2(qssloptions, SSL_CTX_set_options, SSL_CTX *ctx, ctx, qssloptions op, op, return 0, return)
+ using info_callback = void (*) (const SSL *ssl, int type, int val);
+ DEFINEFUNC2(void, SSL_set_info_callback, SSL *ssl, ssl, info_callback cb, cb, return, return)
+ DEFINEFUNC(const char *, SSL_alert_type_string, int value, value, return nullptr, return)
+ DEFINEFUNC(const char *, SSL_alert_desc_string_long, int value, value, return nullptr, return)
++#ifndef LIBRESSL_VERSION_NUMBER
+ DEFINEFUNC(int, SSL_CTX_get_security_level, const SSL_CTX *ctx, ctx, return -1, return)
+ DEFINEFUNC2(void, SSL_CTX_set_security_level, SSL_CTX *ctx, ctx, int level, level, return, return)
++#endif // LIBRESSL_VERSION_NUMBER
+ #ifdef TLS1_3_VERSION
+ DEFINEFUNC2(int, SSL_CTX_set_ciphersuites, SSL_CTX *ctx, ctx, const char *str, str, return 0, return)
+ DEFINEFUNC2(void, SSL_set_psk_use_session_callback, SSL *ssl, ssl, q_SSL_psk_use_session_cb_func_t callback, callback, return, DUMMYARG)
+@@ -154,7 +168,11 @@ DEFINEFUNC2(void, X509_STORE_set_verify_cb, X509_STORE
+ DEFINEFUNC3(int, X509_STORE_set_ex_data, X509_STORE *a, a, int idx, idx, void *data, data, return 0, return)
+ DEFINEFUNC2(void *, X509_STORE_get_ex_data, X509_STORE *r, r, int idx, idx, return nullptr, return)
+ DEFINEFUNC(STACK_OF(X509) *, X509_STORE_CTX_get0_chain, X509_STORE_CTX *a, a, return nullptr, return)
+-DEFINEFUNC3(void, CRYPTO_free, void *str, str, const char *file, file, int line, line, return, DUMMYARG)
++#ifndef LIBRESSL_VERSION_NUMBER
++ DEFINEFUNC3(void, CRYPTO_free, void *str, str, const char *file, file, int line, line, return, DUMMYARG)
++#else
++DEFINEFUNC(void, CRYPTO_free, void *a, a, return, DUMMYARG)
++#endif
+ DEFINEFUNC(long, OpenSSL_version_num, void, DUMMYARG, return 0, return)
+ DEFINEFUNC(const char *, OpenSSL_version, int a, a, return nullptr, return)
+ DEFINEFUNC(unsigned long, SSL_SESSION_get_ticket_lifetime_hint, const SSL_SESSION *session, session, return 0, return)
+@@ -193,7 +211,9 @@ DEFINEFUNC5(int, OCSP_id_get0_info, ASN1_OCTET_STRING
+ ASN1_OCTET_STRING **piKeyHash, piKeyHash, ASN1_INTEGER **pserial, pserial, OCSP_CERTID *cid, cid,
+ return 0, return)
+ DEFINEFUNC2(OCSP_RESPONSE *, OCSP_response_create, int status, status, OCSP_BASICRESP *bs, bs, return nullptr, return)
++#if !defined(LIBRESSL_VERSION_NUMBER) || (LIBRESSL_VERSION_NUMBER >= 0x3050000fL)
+ DEFINEFUNC(const STACK_OF(X509) *, OCSP_resp_get0_certs, const OCSP_BASICRESP *bs, bs, return nullptr, return)
++#endif
+ DEFINEFUNC2(int, OCSP_id_cmp, OCSP_CERTID *a, a, OCSP_CERTID *b, b, return -1, return)
+ DEFINEFUNC7(OCSP_SINGLERESP *, OCSP_basic_add1_status, OCSP_BASICRESP *r, r, OCSP_CERTID *c, c, int s, s,
+ int re, re, ASN1_TIME *rt, rt, ASN1_TIME *t, t, ASN1_TIME *n, n, return nullptr, return)
+@@ -214,7 +234,9 @@ DEFINEFUNC(long, ASN1_INTEGER_get, ASN1_INTEGER *a, a,
+ DEFINEFUNC2(int, ASN1_INTEGER_cmp, const ASN1_INTEGER *a, a, const ASN1_INTEGER *b, b, return 1, return)
+ DEFINEFUNC(int, ASN1_STRING_length, ASN1_STRING *a, a, return 0, return)
+ DEFINEFUNC2(int, ASN1_STRING_to_UTF8, unsigned char **a, a, ASN1_STRING *b, b, return 0, return)
++#ifndef LIBRESSL_VERSION_NUMBER
+ DEFINEFUNC2(int, ASN1_TIME_to_tm, const ASN1_TIME *s, s, struct tm *tm, tm, return 0, return)
++#endif
+ DEFINEFUNC4(long, BIO_ctrl, BIO *a, a, int b, b, long c, c, void *d, d, return -1, return)
+ DEFINEFUNC(int, BIO_free, BIO *a, a, return 0, return)
+ DEFINEFUNC2(BIO *, BIO_new_mem_buf, void *a, a, int b, b, return nullptr, return)
+@@ -290,12 +312,14 @@ DEFINEFUNC3(int, SSL_CTX_use_certificate_file, SSL_CTX
+ DEFINEFUNC2(int, SSL_CTX_use_PrivateKey, SSL_CTX *a, a, EVP_PKEY *b, b, return -1, return)
+ DEFINEFUNC3(int, SSL_CTX_use_PrivateKey_file, SSL_CTX *a, a, const char *b, b, int c, c, return -1, return)
+ DEFINEFUNC(X509_STORE *, SSL_CTX_get_cert_store, const SSL_CTX *a, a, return nullptr, return)
++#ifndef LIBRESSL_VERSION_NUMBER
+ DEFINEFUNC(SSL_CONF_CTX *, SSL_CONF_CTX_new, DUMMYARG, DUMMYARG, return nullptr, return);
+ DEFINEFUNC(void, SSL_CONF_CTX_free, SSL_CONF_CTX *a, a, return ,return);
+ DEFINEFUNC2(void, SSL_CONF_CTX_set_ssl_ctx, SSL_CONF_CTX *a, a, SSL_CTX *b, b, return, return);
+ DEFINEFUNC2(unsigned int, SSL_CONF_CTX_set_flags, SSL_CONF_CTX *a, a, unsigned int b, b, return 0, return);
+ DEFINEFUNC(int, SSL_CONF_CTX_finish, SSL_CONF_CTX *a, a, return 0, return);
+ DEFINEFUNC3(int, SSL_CONF_cmd, SSL_CONF_CTX *a, a, const char *b, b, const char *c, c, return 0, return);
++#endif
+ DEFINEFUNC(void, SSL_free, SSL *a, a, return, DUMMYARG)
+ DEFINEFUNC(STACK_OF(SSL_CIPHER) *, SSL_get_ciphers, const SSL *a, a, return nullptr, return)
+ DEFINEFUNC(const SSL_CIPHER *, SSL_get_current_cipher, SSL *a, a, return nullptr, return)
+@@ -846,9 +870,11 @@ bool q_resolveOpenSslSymbols()
+ RESOLVEFUNC(EVP_CIPHER_CTX_reset)
+ RESOLVEFUNC(AUTHORITY_INFO_ACCESS_free)
+ RESOLVEFUNC(EVP_PKEY_up_ref)
++#ifdef OPENSSL_NO_DEPRECATED_3_0
+ RESOLVEFUNC(EVP_PKEY_CTX_new)
+ RESOLVEFUNC(EVP_PKEY_param_check)
+ RESOLVEFUNC(EVP_PKEY_CTX_free)
++#endif // OPENSSL_NO_DEPRECATED_3_0
+ RESOLVEFUNC(OPENSSL_sk_new_null)
+ RESOLVEFUNC(OPENSSL_sk_push)
+ RESOLVEFUNC(OPENSSL_sk_free)
+@@ -942,7 +968,9 @@ bool q_resolveOpenSslSymbols()
+ RESOLVEFUNC(OCSP_check_validity)
+ RESOLVEFUNC(OCSP_cert_to_id)
+ RESOLVEFUNC(OCSP_id_get0_info)
+- RESOLVEFUNC(OCSP_resp_get0_certs)
++#if !defined(LIBRESSL_VERSION_NUMBER) || (LIBRESSL_VERSION_NUMBER >= 0x3050000fL)
++ RESOLVEFUNC(OCSP_resp_get0_certs)
++#endif
+ RESOLVEFUNC(OCSP_basic_sign)
+ RESOLVEFUNC(OCSP_response_create)
+ RESOLVEFUNC(i2d_OCSP_RESPONSE)
+@@ -1038,12 +1066,14 @@ bool q_resolveOpenSslSymbols()
+ RESOLVEFUNC(SSL_CTX_use_PrivateKey)
+ RESOLVEFUNC(SSL_CTX_use_PrivateKey_file)
+ RESOLVEFUNC(SSL_CTX_get_cert_store);
++#ifndef LIBRESSL_VERSION_NUMBER
+ RESOLVEFUNC(SSL_CONF_CTX_new);
+ RESOLVEFUNC(SSL_CONF_CTX_free);
+ RESOLVEFUNC(SSL_CONF_CTX_set_ssl_ctx);
+ RESOLVEFUNC(SSL_CONF_CTX_set_flags);
+ RESOLVEFUNC(SSL_CONF_CTX_finish);
+ RESOLVEFUNC(SSL_CONF_cmd);
++#endif
+ RESOLVEFUNC(SSL_accept)
+ RESOLVEFUNC(SSL_clear)
+ RESOLVEFUNC(SSL_connect)
+@@ -1093,7 +1123,9 @@ bool q_resolveOpenSslSymbols()
+ RESOLVEFUNC(RSA_free)
+
+ RESOLVEFUNC(DH_bits)
++#if !defined(LIBRESSL_VERSION_NUMBER) || (LIBRESSL_VERSION_NUMBER >= 0x3050000fL)
+ RESOLVEFUNC(DSA_bits)
++#endif
+ RESOLVEFUNC(RSA_bits)
+
+ #ifndef OPENSSL_NO_EC
--- a/src/plugins/tls/openssl/qopenssl_p.h
+++ b/src/plugins/tls/openssl/qopenssl_p.h
@@ -70,6 +70,13 @@
@@ -251,7 +387,7 @@ https://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_plugins_tls_op
--- a/src/plugins/tls/openssl/qx509_openssl.cpp
+++ b/src/plugins/tls/openssl/qx509_openssl.cpp
-@@ -63,7 +63,11 @@ QMultiMap<QByteArray, QString> mapFromX509Name(X509_NA
+@@ -64,7 +64,12 @@ QMultiMap<QByteArray, QString> mapFromX509Name(X509_NA
unsigned char *data = nullptr;
int size = q_ASN1_STRING_to_UTF8(&data, q_X509_NAME_ENTRY_get_data(e));
info.insert(name, QString::fromUtf8((char*)data, size));
@@ -261,18 +397,19 @@ https://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_plugins_tls_op
+#else
+ q_CRYPTO_free(data);
+#endif
++
}
return info;
-@@ -73,12 +77,27 @@ QDateTime dateTimeFromASN1(const ASN1_TIME *aTime)
- {
+@@ -75,11 +80,27 @@ QDateTime dateTimeFromASN1(const ASN1_TIME *aTime)
QDateTime result;
tm lTime;
+
+#ifdef LIBRESSL_VERSION_NUMBER
+ const char *data;
+ size_t len;
+ int type;
-
++
+ data = (const char*)ASN1_STRING_get0_data((const ASN1_STRING *)aTime);
+ len = ASN1_STRING_length(aTime);
+ type = ASN1_STRING_type(aTime);
@@ -286,13 +423,13 @@ https://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_plugins_tls_op
if (q_ASN1_TIME_to_tm(aTime, &lTime)) {
QDate resDate(lTime.tm_year + 1900, lTime.tm_mon + 1, lTime.tm_mday);
QTime resTime(lTime.tm_hour, lTime.tm_min, lTime.tm_sec);
- result = QDateTime(resDate, resTime, Qt::UTC);
+ result = QDateTime(resDate, resTime, QTimeZone::UTC);
}
+#endif
return result;
}
-@@ -189,7 +208,7 @@ QVariant x509UnknownExtensionToValue(X509_EXTENSION *e
+@@ -190,7 +211,7 @@ QVariant x509UnknownExtensionToValue(X509_EXTENSION *e
QVariantList list;
bool isMap = false;
@@ -301,7 +438,7 @@ https://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_plugins_tls_op
CONF_VALUE *nval = q_SKM_sk_value(CONF_VALUE, val, j);
if (nval->name && nval->value) {
isMap = true;
-@@ -285,7 +304,7 @@ QVariant x509ExtensionToValue(X509_EXTENSION *ext)
+@@ -286,7 +307,7 @@ QVariant x509ExtensionToValue(X509_EXTENSION *ext)
if (!info)
return {};
QVariantMap result;
@@ -310,136 +447,3 @@ https://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_plugins_tls_op
ACCESS_DESCRIPTION *ad = q_SKM_sk_value(ACCESS_DESCRIPTION, info, i);
GENERAL_NAME *name = ad->location;
---- a/src/plugins/tls/openssl/qsslsocket_openssl_symbols.cpp
-+++ b/src/plugins/tls/openssl/qsslsocket_openssl_symbols.cpp
-@@ -113,23 +113,36 @@ DEFINEFUNC(const BIO_METHOD *, BIO_s_mem, void, DUMMYA
- DEFINEFUNC2(int, BN_is_word, BIGNUM *a, a, BN_ULONG w, w, return 0, return)
- DEFINEFUNC(int, EVP_CIPHER_CTX_reset, EVP_CIPHER_CTX *c, c, return 0, return)
- DEFINEFUNC(int, EVP_PKEY_up_ref, EVP_PKEY *a, a, return 0, return)
-+#ifdef OPENSSL_NO_DEPRECATED_3_0
- DEFINEFUNC2(EVP_PKEY_CTX *, EVP_PKEY_CTX_new, EVP_PKEY *pkey, pkey, ENGINE *e, e, return nullptr, return)
- DEFINEFUNC(int, EVP_PKEY_param_check, EVP_PKEY_CTX *ctx, ctx, return 0, return)
- DEFINEFUNC(void, EVP_PKEY_CTX_free, EVP_PKEY_CTX *ctx, ctx, return, return)
-+#endif // OPENSSL_NO_DEPRECATED_3_0
-+#ifndef LIBRESSL_VERSION_NUMBER
- DEFINEFUNC(int, OPENSSL_sk_num, OPENSSL_STACK *a, a, return -1, return)
- DEFINEFUNC2(void, OPENSSL_sk_pop_free, OPENSSL_STACK *a, a, void (*b)(void*), b, return, DUMMYARG)
- DEFINEFUNC(OPENSSL_STACK *, OPENSSL_sk_new_null, DUMMYARG, DUMMYARG, return nullptr, return)
- DEFINEFUNC2(void, OPENSSL_sk_push, OPENSSL_STACK *a, a, void *b, b, return, DUMMYARG)
- DEFINEFUNC(void, OPENSSL_sk_free, OPENSSL_STACK *a, a, return, DUMMYARG)
- DEFINEFUNC2(void *, OPENSSL_sk_value, OPENSSL_STACK *a, a, int b, b, return nullptr, return)
-+#else
-+DEFINEFUNC(int, sk_num, STACK *a, a, return -1, return)
-+DEFINEFUNC2(void, sk_pop_free, STACK *a, a, void (*b)(void*), b, return, DUMMYARG)
-+DEFINEFUNC(_STACK *, sk_new_null, DUMMYARG, DUMMYARG, return nullptr, return)
-+DEFINEFUNC2(void, sk_push, _STACK *a, a, void *b, b, return, DUMMYARG)
-+DEFINEFUNC(void, sk_free, _STACK *a, a, return, DUMMYARG)
-+DEFINEFUNC2(void *, sk_value, STACK *a, a, int b, b, return nullptr, return)
-+#endif // LIBRESSL_VERSION_NUMBER
- DEFINEFUNC(int, SSL_session_reused, SSL *a, a, return 0, return)
- DEFINEFUNC2(qssloptions, SSL_CTX_set_options, SSL_CTX *ctx, ctx, qssloptions op, op, return 0, return)
- using info_callback = void (*) (const SSL *ssl, int type, int val);
- DEFINEFUNC2(void, SSL_set_info_callback, SSL *ssl, ssl, info_callback cb, cb, return, return)
- DEFINEFUNC(const char *, SSL_alert_type_string, int value, value, return nullptr, return)
- DEFINEFUNC(const char *, SSL_alert_desc_string_long, int value, value, return nullptr, return)
-+#ifndef LIBRESSL_VERSION_NUMBER
- DEFINEFUNC(int, SSL_CTX_get_security_level, const SSL_CTX *ctx, ctx, return -1, return)
- DEFINEFUNC2(void, SSL_CTX_set_security_level, SSL_CTX *ctx, ctx, int level, level, return, return)
-+#endif // LIBRESSL_VERSION_NUMBER
- #ifdef TLS1_3_VERSION
- DEFINEFUNC2(int, SSL_CTX_set_ciphersuites, SSL_CTX *ctx, ctx, const char *str, str, return 0, return)
- DEFINEFUNC2(void, SSL_set_psk_use_session_callback, SSL *ssl, ssl, q_SSL_psk_use_session_cb_func_t callback, callback, return, DUMMYARG)
-@@ -155,7 +168,11 @@ DEFINEFUNC2(void, X509_STORE_set_verify_cb, X509_STORE
- DEFINEFUNC3(int, X509_STORE_set_ex_data, X509_STORE *a, a, int idx, idx, void *data, data, return 0, return)
- DEFINEFUNC2(void *, X509_STORE_get_ex_data, X509_STORE *r, r, int idx, idx, return nullptr, return)
- DEFINEFUNC(STACK_OF(X509) *, X509_STORE_CTX_get0_chain, X509_STORE_CTX *a, a, return nullptr, return)
-+#ifndef LIBRESSL_VERSION_NUMBER
- DEFINEFUNC3(void, CRYPTO_free, void *str, str, const char *file, file, int line, line, return, DUMMYARG)
-+#else
-+DEFINEFUNC(void, CRYPTO_free, void *a, a, return, DUMMYARG)
-+#endif
- DEFINEFUNC(long, OpenSSL_version_num, void, DUMMYARG, return 0, return)
- DEFINEFUNC(const char *, OpenSSL_version, int a, a, return nullptr, return)
- DEFINEFUNC(unsigned long, SSL_SESSION_get_ticket_lifetime_hint, const SSL_SESSION *session, session, return 0, return)
-@@ -194,7 +211,9 @@ DEFINEFUNC5(int, OCSP_id_get0_info, ASN1_OCTET_STRING
- ASN1_OCTET_STRING **piKeyHash, piKeyHash, ASN1_INTEGER **pserial, pserial, OCSP_CERTID *cid, cid,
- return 0, return)
- DEFINEFUNC2(OCSP_RESPONSE *, OCSP_response_create, int status, status, OCSP_BASICRESP *bs, bs, return nullptr, return)
-+#if !defined(LIBRESSL_VERSION_NUMBER) || (LIBRESSL_VERSION_NUMBER >= 0x3050000fL)
- DEFINEFUNC(const STACK_OF(X509) *, OCSP_resp_get0_certs, const OCSP_BASICRESP *bs, bs, return nullptr, return)
-+#endif
- DEFINEFUNC2(int, OCSP_id_cmp, OCSP_CERTID *a, a, OCSP_CERTID *b, b, return -1, return)
- DEFINEFUNC7(OCSP_SINGLERESP *, OCSP_basic_add1_status, OCSP_BASICRESP *r, r, OCSP_CERTID *c, c, int s, s,
- int re, re, ASN1_TIME *rt, rt, ASN1_TIME *t, t, ASN1_TIME *n, n, return nullptr, return)
-@@ -215,7 +234,9 @@ DEFINEFUNC(long, ASN1_INTEGER_get, ASN1_INTEGER *a, a,
- DEFINEFUNC2(int, ASN1_INTEGER_cmp, const ASN1_INTEGER *a, a, const ASN1_INTEGER *b, b, return 1, return)
- DEFINEFUNC(int, ASN1_STRING_length, ASN1_STRING *a, a, return 0, return)
- DEFINEFUNC2(int, ASN1_STRING_to_UTF8, unsigned char **a, a, ASN1_STRING *b, b, return 0, return)
-+#ifndef LIBRESSL_VERSION_NUMBER
- DEFINEFUNC2(int, ASN1_TIME_to_tm, const ASN1_TIME *s, s, struct tm *tm, tm, return 0, return)
-+#endif
- DEFINEFUNC4(long, BIO_ctrl, BIO *a, a, int b, b, long c, c, void *d, d, return -1, return)
- DEFINEFUNC(int, BIO_free, BIO *a, a, return 0, return)
- DEFINEFUNC2(BIO *, BIO_new_mem_buf, void *a, a, int b, b, return nullptr, return)
-@@ -291,12 +312,14 @@ DEFINEFUNC3(int, SSL_CTX_use_certificate_file, SSL_CTX
- DEFINEFUNC2(int, SSL_CTX_use_PrivateKey, SSL_CTX *a, a, EVP_PKEY *b, b, return -1, return)
- DEFINEFUNC3(int, SSL_CTX_use_PrivateKey_file, SSL_CTX *a, a, const char *b, b, int c, c, return -1, return)
- DEFINEFUNC(X509_STORE *, SSL_CTX_get_cert_store, const SSL_CTX *a, a, return nullptr, return)
-+#ifndef LIBRESSL_VERSION_NUMBER
- DEFINEFUNC(SSL_CONF_CTX *, SSL_CONF_CTX_new, DUMMYARG, DUMMYARG, return nullptr, return);
- DEFINEFUNC(void, SSL_CONF_CTX_free, SSL_CONF_CTX *a, a, return ,return);
- DEFINEFUNC2(void, SSL_CONF_CTX_set_ssl_ctx, SSL_CONF_CTX *a, a, SSL_CTX *b, b, return, return);
- DEFINEFUNC2(unsigned int, SSL_CONF_CTX_set_flags, SSL_CONF_CTX *a, a, unsigned int b, b, return 0, return);
- DEFINEFUNC(int, SSL_CONF_CTX_finish, SSL_CONF_CTX *a, a, return 0, return);
- DEFINEFUNC3(int, SSL_CONF_cmd, SSL_CONF_CTX *a, a, const char *b, b, const char *c, c, return 0, return);
-+#endif
- DEFINEFUNC(void, SSL_free, SSL *a, a, return, DUMMYARG)
- DEFINEFUNC(STACK_OF(SSL_CIPHER) *, SSL_get_ciphers, const SSL *a, a, return nullptr, return)
- DEFINEFUNC(const SSL_CIPHER *, SSL_get_current_cipher, SSL *a, a, return nullptr, return)
-@@ -859,9 +882,11 @@ bool q_resolveOpenSslSymbols()
- RESOLVEFUNC(EVP_CIPHER_CTX_reset)
- RESOLVEFUNC(AUTHORITY_INFO_ACCESS_free)
- RESOLVEFUNC(EVP_PKEY_up_ref)
-+#ifdef OPENSSL_NO_DEPRECATED_3_0
- RESOLVEFUNC(EVP_PKEY_CTX_new)
- RESOLVEFUNC(EVP_PKEY_param_check)
- RESOLVEFUNC(EVP_PKEY_CTX_free)
-+#endif // OPENSSL_NO_DEPRECATED_3_0
- RESOLVEFUNC(OPENSSL_sk_new_null)
- RESOLVEFUNC(OPENSSL_sk_push)
- RESOLVEFUNC(OPENSSL_sk_free)
-@@ -955,7 +980,9 @@ bool q_resolveOpenSslSymbols()
- RESOLVEFUNC(OCSP_check_validity)
- RESOLVEFUNC(OCSP_cert_to_id)
- RESOLVEFUNC(OCSP_id_get0_info)
-+#if !defined(LIBRESSL_VERSION_NUMBER) || (LIBRESSL_VERSION_NUMBER >= 0x3050000fL)
- RESOLVEFUNC(OCSP_resp_get0_certs)
-+#endif
- RESOLVEFUNC(OCSP_basic_sign)
- RESOLVEFUNC(OCSP_response_create)
- RESOLVEFUNC(i2d_OCSP_RESPONSE)
-@@ -1051,12 +1078,14 @@ bool q_resolveOpenSslSymbols()
- RESOLVEFUNC(SSL_CTX_use_PrivateKey)
- RESOLVEFUNC(SSL_CTX_use_PrivateKey_file)
- RESOLVEFUNC(SSL_CTX_get_cert_store);
-+#ifndef LIBRESSL_VERSION_NUMBER
- RESOLVEFUNC(SSL_CONF_CTX_new);
- RESOLVEFUNC(SSL_CONF_CTX_free);
- RESOLVEFUNC(SSL_CONF_CTX_set_ssl_ctx);
- RESOLVEFUNC(SSL_CONF_CTX_set_flags);
- RESOLVEFUNC(SSL_CONF_CTX_finish);
- RESOLVEFUNC(SSL_CONF_cmd);
-+#endif
- RESOLVEFUNC(SSL_accept)
- RESOLVEFUNC(SSL_clear)
- RESOLVEFUNC(SSL_connect)
-@@ -1106,7 +1135,9 @@ bool q_resolveOpenSslSymbols()
- RESOLVEFUNC(RSA_free)
-
- RESOLVEFUNC(DH_bits)
-+#if !defined(LIBRESSL_VERSION_NUMBER) || (LIBRESSL_VERSION_NUMBER >= 0x3050000fL)
- RESOLVEFUNC(DSA_bits)
-+#endif
- RESOLVEFUNC(RSA_bits)
-
- #ifndef OPENSSL_NO_EC
diff --git a/dev-qt/qtbase/files/qtbase-6.5.0-setActiveWindow-deprecated-version.patch b/dev-qt/qtbase/files/qtbase-6.5.0-setActiveWindow-deprecated-version.patch
new file mode 100644
index 0000000..0ba60e0
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.5.0-setActiveWindow-deprecated-version.patch
@@ -0,0 +1,35 @@
+Upstream commit: https://code.qt.io/cgit/qt/qtbase.git/commit/?h=6.5&id=bbb330c95fd
+
+From bbb330c95fdf6161b23227cb08cec58cca31e465 Mon Sep 17 00:00:00 2001
+From: Nicolas Fella <nicolas.fella@kdab.com>
+Date: Tue, 14 Mar 2023 19:14:41 +0100
+Subject: QApplication: Fix DEPRECATED_VERSION for setActiveWindow
+
+It's not deprecated in 6.4, only 6.5
+
+Change-Id: I86a09b9ce5a7f4d8b1d80a6e67218dfe00f93844
+Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
+(cherry picked from commit 99975ec07feb6b1a9f6be9e0d392a35e40f9550a)
+Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
+---
+ src/widgets/kernel/qapplication.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/widgets/kernel/qapplication.h b/src/widgets/kernel/qapplication.h
+index c4c73d4cf8..fd698fb69f 100644
+--- a/src/widgets/kernel/qapplication.h
++++ b/src/widgets/kernel/qapplication.h
+@@ -79,8 +79,8 @@ public:
+
+ static QWidget *activeWindow();
+
+-#if QT_DEPRECATED_SINCE(6,4)
+- QT_DEPRECATED_VERSION_X_6_4("Use QWidget::activateWindow() instead.")
++#if QT_DEPRECATED_SINCE(6, 5)
++ QT_DEPRECATED_VERSION_X_6_5("Use QWidget::activateWindow() instead.")
+ static void setActiveWindow(QWidget* act);
+ #endif
+
+--
+cgit v1.2.3
+
diff --git a/dev-qt/qtbase/qtbase-6.4.2.ebuild b/dev-qt/qtbase/qtbase-6.5.0-r1.ebuild
similarity index 95%
rename from dev-qt/qtbase/qtbase-6.4.2.ebuild
rename to dev-qt/qtbase/qtbase-6.5.0-r1.ebuild
index 50f6845..e3c6abe 100644
--- a/dev-qt/qtbase/qtbase-6.4.2.ebuild
+++ b/dev-qt/qtbase/qtbase-6.5.0-r1.ebuild
@@ -93,6 +93,7 @@ DEPEND="
x11-libs/libX11
>=x11-libs/libxcb-1.12:=
>=x11-libs/libxkbcommon-0.5.0[X]
+ x11-libs/xcb-util-cursor
x11-libs/xcb-util-image
x11-libs/xcb-util-keysyms
x11-libs/xcb-util-renderutil
@@ -103,7 +104,8 @@ DEPEND="
RDEPEND="${DEPEND}"
PATCHES=(
- "${FILESDIR}"/${PN}-6.4.2-libressl.patch # from OpenBSD ports, not upstreamable
+ "${FILESDIR}/${PN}-6.5.0-libressl.patch"
+ "${FILESDIR}/${PN}-6.5.0-setActiveWindow-deprecated-version.patch"
)
src_configure() {
@@ -137,6 +139,7 @@ src_configure() {
use gui && mycmakeargs+=(
$(qt_feature accessibility accessibility_atspi_bridge)
$(qt_feature egl)
+ $(qt_feature egl xcb_egl_plugin)
$(qt_feature eglfs eglfs_egldevice)
$(qt_feature eglfs eglfs_gbm)
$(qt_feature evdev)
@@ -162,12 +165,14 @@ src_configure() {
fi
use network && mycmakeargs+=(
$(qt_feature brotli)
- -DQT_FEATURE_dtls=OFF
$(qt_feature gssapi)
$(qt_feature libproxy)
$(qt_feature sctp)
- $(qt_feature ssl openssl_linked)
$(qt_feature vnc)
+
+ # Required for LibreSSL
+ -DQT_FEATURE_dtls=OFF
+ $(qt_feature ssl openssl_linked)
)
use sql && mycmakeargs+=(
$(qt_feature freetds sql_tds)
@@ -186,5 +191,5 @@ src_install() {
qt6-build_src_install
# https://bugs.gentoo.org/863395
- dosym ../$(get_libdir)/qt6/bin/qmake /usr/bin/qmake6
+ qt6_symlink_binary_to_path qmake 6
}
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gentoo-commits] repo/proj/libressl:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2023-05-24 18:06 orbea
0 siblings, 0 replies; 15+ messages in thread
From: orbea @ 2023-05-24 18:06 UTC (permalink / raw
To: gentoo-commits
commit: 9121a6d114c04e1530a14b657449d5d2aeb4c93b
Author: orbea <orbea <AT> riseup <DOT> net>
AuthorDate: Wed May 24 17:13:13 2023 +0000
Commit: orbea <orbea <AT> riseup <DOT> net>
CommitDate: Wed May 24 17:13:13 2023 +0000
URL: https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=9121a6d1
dev-qt/qtbase: add 6.5.0-r2
Signed-off-by: orbea <orbea <AT> riseup.net>
.../qtbase/files/qtbase-6.5.0-CVE-2023-32762.patch | 54 ++++++++++++++++++++++
...base-6.5.0-r1.ebuild => qtbase-6.5.0-r2.ebuild} | 1 +
2 files changed, 55 insertions(+)
diff --git a/dev-qt/qtbase/files/qtbase-6.5.0-CVE-2023-32762.patch b/dev-qt/qtbase/files/qtbase-6.5.0-CVE-2023-32762.patch
new file mode 100644
index 0000000..3574706
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.5.0-CVE-2023-32762.patch
@@ -0,0 +1,54 @@
+From eae7c36d681acfb82572b56e24bbb2cd42242e57 Mon Sep 17 00:00:00 2001
+From: =?utf8?q?M=C3=A5rten=20Nordheim?= <marten.nordheim@qt.io>
+Date: Fri, 5 May 2023 11:07:26 +0200
+Subject: [PATCH] Hsts: match header names case insensitively
+
+Header field names are always considered to be case-insensitive.
+
+Fixes: QTBUG-113392
+Change-Id: Ifb4def4bb7f2ac070416cdc76581a769f1e52b43
+Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
+Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
+Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
+(cherry picked from commit 1b736a815be0222f4b24289cf17575fc15707305)
+Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
+---
+ src/network/access/qhsts.cpp | 4 ++--
+ tests/auto/network/access/hsts/tst_qhsts.cpp | 6 ++++++
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/src/network/access/qhsts.cpp b/src/network/access/qhsts.cpp
+index 39905f354807..82deede17298 100644
+--- a/src/network/access/qhsts.cpp
++++ b/src/network/access/qhsts.cpp
+@@ -327,8 +327,8 @@ quoted-pair = "\" CHAR
+ bool QHstsHeaderParser::parse(const QList<QPair<QByteArray, QByteArray>> &headers)
+ {
+ for (const auto &h : headers) {
+- // We use '==' since header name was already 'trimmed' for us:
+- if (h.first == "Strict-Transport-Security") {
++ // We compare directly because header name was already 'trimmed' for us:
++ if (h.first.compare("Strict-Transport-Security", Qt::CaseInsensitive) == 0) {
+ header = h.second;
+ // RFC6797, 8.1:
+ //
+diff --git a/tests/auto/network/access/hsts/tst_qhsts.cpp b/tests/auto/network/access/hsts/tst_qhsts.cpp
+index 252f5e8f5792..97a2d2889e57 100644
+--- a/tests/auto/network/access/hsts/tst_qhsts.cpp
++++ b/tests/auto/network/access/hsts/tst_qhsts.cpp
+@@ -216,6 +216,12 @@ void tst_QHsts::testSTSHeaderParser()
+ QVERIFY(parser.expirationDate() > QDateTime::currentDateTimeUtc());
+ QVERIFY(parser.includeSubDomains());
+
++ list.pop_back();
++ list << Header("strict-transport-security", "includeSubDomains;max-age=1000");
++ QVERIFY(parser.parse(list));
++ QVERIFY(parser.expirationDate() > QDateTime::currentDateTimeUtc());
++ QVERIFY(parser.includeSubDomains());
++
+ list.pop_back();
+ // Invalid (includeSubDomains twice):
+ list << Header("Strict-Transport-Security", "max-age = 1000 ; includeSubDomains;includeSubDomains");
+--
+2.16.3
+
diff --git a/dev-qt/qtbase/qtbase-6.5.0-r1.ebuild b/dev-qt/qtbase/qtbase-6.5.0-r2.ebuild
similarity index 99%
rename from dev-qt/qtbase/qtbase-6.5.0-r1.ebuild
rename to dev-qt/qtbase/qtbase-6.5.0-r2.ebuild
index e3c6abe..08f45a6 100644
--- a/dev-qt/qtbase/qtbase-6.5.0-r1.ebuild
+++ b/dev-qt/qtbase/qtbase-6.5.0-r2.ebuild
@@ -106,6 +106,7 @@ RDEPEND="${DEPEND}"
PATCHES=(
"${FILESDIR}/${PN}-6.5.0-libressl.patch"
"${FILESDIR}/${PN}-6.5.0-setActiveWindow-deprecated-version.patch"
+ "${FILESDIR}/${PN}-6.5.0-CVE-2023-32762.patch"
)
src_configure() {
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gentoo-commits] repo/proj/libressl:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2023-07-21 20:56 orbea
0 siblings, 0 replies; 15+ messages in thread
From: orbea @ 2023-07-21 20:56 UTC (permalink / raw
To: gentoo-commits
commit: fbbe6f58b487453ab7f68a80e439249e4395bc9c
Author: orbea <orbea <AT> riseup <DOT> net>
AuthorDate: Fri Jul 21 20:46:09 2023 +0000
Commit: orbea <orbea <AT> riseup <DOT> net>
CommitDate: Fri Jul 21 20:46:09 2023 +0000
URL: https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=fbbe6f58
dev-qt/qtbase: add 6.5.2
Signed-off-by: orbea <orbea <AT> riseup.net>
dev-qt/qtbase/Manifest | 1 +
.../qtbase/files/qtbase-6.5.2-CVE-2023-38197.patch | 404 +++++++++++++++++++++
dev-qt/qtbase/qtbase-6.5.2.ebuild | 196 ++++++++++
3 files changed, 601 insertions(+)
diff --git a/dev-qt/qtbase/Manifest b/dev-qt/qtbase/Manifest
index 3c5bf4d..f18d34b 100644
--- a/dev-qt/qtbase/Manifest
+++ b/dev-qt/qtbase/Manifest
@@ -1 +1,2 @@
DIST qtbase-everywhere-src-6.5.1.tar.xz 48287392 BLAKE2B 47872492f21a936d980891c28df61591380bc236adc66b57a90fbb87dd292cdeb3c632fb1159231ba40142d25e02944e4c5e8568153f1286e0a1abc8c5b26699 SHA512 7f7b20bbc25cda65266d6067cdd68e3e077636988d67dbf5783f79a61186135fb3a36d57ac72cfe4501012035b630ab1f5849148e4817726d4f459fa1937e91a
+DIST qtbase-everywhere-src-6.5.2.tar.xz 48410716 BLAKE2B 578c69ede6f45a8b21cba0a24674d5d8801722503d13ab9578b06b2446ce15e6a84bcdbd0c5d2c9aa868ec70862f0845406c959ed79b695f82bb398ecf299c63 SHA512 8d97029aae5b73a3e03624c9a8495dbf2fe54a4f5e992071c06f3d93935e64c80f2121b33eeb60a92d96ceb288cb25d74906a5bf47b45bb018d859d4a2d13f20
diff --git a/dev-qt/qtbase/files/qtbase-6.5.2-CVE-2023-38197.patch b/dev-qt/qtbase/files/qtbase-6.5.2-CVE-2023-38197.patch
new file mode 100644
index 0000000..220e94d
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.5.2-CVE-2023-38197.patch
@@ -0,0 +1,404 @@
+Upstream: https://codereview.qt-project.org/c/qt/qtbase/+/490550
+Upstream: https://lists.qt-project.org/pipermail/development/2023-July/044166.html
+
+From c216c3d9859a20b3aeec985512e89316423fc3a8 Mon Sep 17 00:00:00 2001
+From: Axel Spoerl <axel.spoerl@qt.io>
+Date: Fri, 30 Jun 2023 12:43:59 +0200
+Subject: [PATCH] QXmlStreamReader: Raise error on unexpected tokens
+
+QXmlStreamReader accepted multiple DOCTYPE elements, containing DTD
+fragments in the XML prolog, and in the XML body.
+Well-formed but invalid XML files - with multiple DTD fragments in
+prolog and body, combined with recursive entity expansions - have
+caused infinite loops in QXmlStreamReader.
+
+This patch implements a token check in QXmlStreamReader.
+A stream is allowed to start with an XML prolog. StartDocument
+and DOCTYPE elements are only allowed in this prolog, which
+may also contain ProcessingInstruction and Comment elements.
+As soon as anything else is seen, the prolog ends.
+After that, the prolog-specific elements are treated as unexpected.
+Furthermore, the prolog can contain at most one DOCTYPE element.
+
+Update the documentation to reflect the new behavior.
+Add an autotest that checks the new error cases are correctly detected,
+and no error is raised for legitimate input.
+
+The original OSS-Fuzz files (see bug reports) are not included in this
+patch for file size reasons. They have been tested manually. Each of
+them has more than one DOCTYPE element, causing infinite loops in
+recursive entity expansions. The newly implemented functionality
+detects those invalid DTD fragments. By raising an error, it aborts
+stream reading before an infinite loop occurs.
+
+Thanks to OSS-Fuzz for finding this.
+
+Fixes: QTBUG-92113
+Fixes: QTBUG-95188
+Change-Id: I0a082b9188b2eee50b396c4d5b1c9e1fd237bbdd
+Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
+(cherry picked from commit c4301be7d5f94852e1b17f2c2989d5ca807855d4)
+---
+ src/corelib/serialization/qxmlstream.cpp | 145 +++++++++++++++++++--
+ src/corelib/serialization/qxmlstream_p.h | 11 ++
+ .../qxmlstream/tokenError/dtdInBody.xml | 20 +++
+ .../qxmlstream/tokenError/multipleDtd.xml | 20 +++
+ .../qxmlstream/tokenError/wellFormed.xml | 15 +++
+ .../serialization/qxmlstream/tst_qxmlstream.cpp | 39 ++++++
+ 6 files changed, 242 insertions(+), 8 deletions(-)
+ create mode 100644 tests/auto/corelib/serialization/qxmlstream/tokenError/dtdInBody.xml
+ create mode 100644 tests/auto/corelib/serialization/qxmlstream/tokenError/multipleDtd.xml
+ create mode 100644 tests/auto/corelib/serialization/qxmlstream/tokenError/wellFormed.xml
+
+diff --git a/src/corelib/serialization/qxmlstream.cpp b/src/corelib/serialization/qxmlstream.cpp
+index 6e34d4da6e5a..cf46d690f122 100644
+--- a/src/corelib/serialization/qxmlstream.cpp
++++ b/src/corelib/serialization/qxmlstream.cpp
+@@ -185,7 +185,7 @@ WRAP(indexOf, QLatin1StringView)
+ addData() or by waiting for it to arrive on the device().
+
+ \value UnexpectedElementError The parser encountered an element
+- that was different to those it expected.
++ or token that was different to those it expected.
+
+ */
+
+@@ -322,13 +322,34 @@ QXmlStreamEntityResolver *QXmlStreamReader::entityResolver() const
+
+ QXmlStreamReader is a well-formed XML 1.0 parser that does \e not
+ include external parsed entities. As long as no error occurs, the
+- application code can thus be assured that the data provided by the
+- stream reader satisfies the W3C's criteria for well-formed XML. For
+- example, you can be certain that all tags are indeed nested and
+- closed properly, that references to internal entities have been
+- replaced with the correct replacement text, and that attributes have
+- been normalized or added according to the internal subset of the
+- DTD.
++ application code can thus be assured, that
++ \list
++ \li the data provided by the stream reader satisfies the W3C's
++ criteria for well-formed XML,
++ \li tokens are provided in a valid order.
++ \endlist
++
++ Unless QXmlStreamReader raises an error, it guarantees the following:
++ \list
++ \li All tags are nested and closed properly.
++ \li References to internal entities have been replaced with the
++ correct replacement text.
++ \li Attributes have been normalized or added according to the
++ internal subset of the \l DTD.
++ \li Tokens of type \l StartDocument happen before all others,
++ aside from comments and processing instructions.
++ \li At most one DOCTYPE element (a token of type \l DTD) is present.
++ \li If present, the DOCTYPE appears before all other elements,
++ aside from StartDocument, comments and processing instructions.
++ \endlist
++
++ In particular, once any token of type \l StartElement, \l EndElement,
++ \l Characters, \l EntityReference or \l EndDocument is seen, no
++ tokens of type StartDocument or DTD will be seen. If one is present in
++ the input stream, out of order, an error is raised.
++
++ \note The token types \l Comment and \l ProcessingInstruction may appear
++ anywhere in the stream.
+
+ If an error occurs while parsing, atEnd() and hasError() return
+ true, and error() returns the error that occurred. The functions
+@@ -659,6 +680,7 @@ QXmlStreamReader::TokenType QXmlStreamReader::readNext()
+ d->token = -1;
+ return readNext();
+ }
++ d->checkToken();
+ return d->type;
+ }
+
+@@ -743,6 +765,11 @@ static constexpr auto QXmlStreamReader_tokenTypeString = qOffsetStringArray(
+ "ProcessingInstruction"
+ );
+
++static constexpr auto QXmlStreamReader_XmlContextString = qOffsetStringArray(
++ "Prolog",
++ "Body"
++);
++
+ /*!
+ \property QXmlStreamReader::namespaceProcessing
+ \brief the namespace-processing flag of the stream reader.
+@@ -777,6 +804,15 @@ QString QXmlStreamReader::tokenString() const
+ return QLatin1StringView(QXmlStreamReader_tokenTypeString.at(d->type));
+ }
+
++/*!
++ \internal
++ \return \param loc (Prolog/Body) as a string.
++ */
++static constexpr QLatin1StringView contextString(QXmlStreamReaderPrivate::XmlContext ctxt)
++{
++ return QLatin1StringView(QXmlStreamReader_XmlContextString.at(static_cast<int>(ctxt)));
++}
++
+ #endif // QT_NO_XMLSTREAMREADER
+
+ QXmlStreamPrivateTagStack::QXmlStreamPrivateTagStack()
+@@ -864,6 +900,8 @@ void QXmlStreamReaderPrivate::init()
+
+ type = QXmlStreamReader::NoToken;
+ error = QXmlStreamReader::NoError;
++ currentContext = XmlContext::Prolog;
++ foundDTD = false;
+ }
+
+ /*
+@@ -3838,6 +3876,97 @@ void QXmlStreamWriter::writeCurrentToken(const QXmlStreamReader &reader)
+ }
+ }
+
++static constexpr bool isTokenAllowedInContext(QXmlStreamReader::TokenType type,
++ QXmlStreamReaderPrivate::XmlContext loc)
++{
++ switch (type) {
++ case QXmlStreamReader::StartDocument:
++ case QXmlStreamReader::DTD:
++ return loc == QXmlStreamReaderPrivate::XmlContext::Prolog;
++
++ case QXmlStreamReader::StartElement:
++ case QXmlStreamReader::EndElement:
++ case QXmlStreamReader::Characters:
++ case QXmlStreamReader::EntityReference:
++ case QXmlStreamReader::EndDocument:
++ return loc == QXmlStreamReaderPrivate::XmlContext::Body;
++
++ case QXmlStreamReader::Comment:
++ case QXmlStreamReader::ProcessingInstruction:
++ return true;
++
++ case QXmlStreamReader::NoToken:
++ case QXmlStreamReader::Invalid:
++ return false;
++ }
++
++ // GCC 8.x does not treat __builtin_unreachable() as constexpr
++#if !defined(Q_CC_GNU_ONLY) || (Q_CC_GNU >= 900)
++ Q_UNREACHABLE_RETURN(false);
++#else
++ return false;
++#endif
++}
++
++/*!
++ \internal
++ \brief QXmlStreamReader::isValidToken
++ \return \c true if \param type is a valid token type.
++ \return \c false if \param type is an unexpected token,
++ which indicates a non-well-formed or invalid XML stream.
++ */
++bool QXmlStreamReaderPrivate::isValidToken(QXmlStreamReader::TokenType type)
++{
++ // Don't change currentContext, if Invalid or NoToken occur in the prolog
++ if (type == QXmlStreamReader::Invalid || type == QXmlStreamReader::NoToken)
++ return false;
++
++ // If a token type gets rejected in the body, there is no recovery
++ const bool result = isTokenAllowedInContext(type, currentContext);
++ if (result || currentContext == XmlContext::Body)
++ return result;
++
++ // First non-Prolog token observed => switch context to body and check again.
++ currentContext = XmlContext::Body;
++ return isTokenAllowedInContext(type, currentContext);
++}
++
++/*!
++ \internal
++ Checks token type and raises an error, if it is invalid
++ in the current context (prolog/body).
++ */
++void QXmlStreamReaderPrivate::checkToken()
++{
++ Q_Q(QXmlStreamReader);
++
++ // The token type must be consumed, to keep track if the body has been reached.
++ const XmlContext context = currentContext;
++ const bool ok = isValidToken(type);
++
++ // Do nothing if an error has been raised already (going along with an unexpected token)
++ if (error != QXmlStreamReader::Error::NoError)
++ return;
++
++ if (!ok) {
++ raiseError(QXmlStreamReader::UnexpectedElementError,
++ QObject::tr("Unexpected token type %1 in %2.")
++ .arg(q->tokenString(), contextString(context)));
++ return;
++ }
++
++ if (type != QXmlStreamReader::DTD)
++ return;
++
++ // Raise error on multiple DTD tokens
++ if (foundDTD) {
++ raiseError(QXmlStreamReader::UnexpectedElementError,
++ QObject::tr("Found second DTD token in %1.").arg(contextString(context)));
++ } else {
++ foundDTD = true;
++ }
++}
++
+ /*!
+ \fn bool QXmlStreamAttributes::hasAttribute(QAnyStringView qualifiedName) const
+
+diff --git a/src/corelib/serialization/qxmlstream_p.h b/src/corelib/serialization/qxmlstream_p.h
+index 070424a9f523..f09adaa37e66 100644
+--- a/src/corelib/serialization/qxmlstream_p.h
++++ b/src/corelib/serialization/qxmlstream_p.h
+@@ -297,6 +297,17 @@ public:
+ QStringDecoder decoder;
+ bool atEnd;
+
++ enum class XmlContext
++ {
++ Prolog,
++ Body,
++ };
++
++ XmlContext currentContext = XmlContext::Prolog;
++ bool foundDTD = false;
++ bool isValidToken(QXmlStreamReader::TokenType type);
++ void checkToken();
++
+ /*!
+ \sa setType()
+ */
+diff --git a/tests/auto/corelib/serialization/qxmlstream/tokenError/dtdInBody.xml b/tests/auto/corelib/serialization/qxmlstream/tokenError/dtdInBody.xml
+new file mode 100644
+index 000000000000..1c3ca4e2711f
+--- /dev/null
++++ b/tests/auto/corelib/serialization/qxmlstream/tokenError/dtdInBody.xml
+@@ -0,0 +1,20 @@
++<!DOCTYPE TEST [
++ <!ELEMENT TESTATTRIBUTE (CASE+)>
++ <!ELEMENT CASE (CLASS, FUNCTION)>
++ <!ELEMENT CLASS (#PCDATA)>
++
++ <!-- adding random ENTITY statement, as this is typical DTD content -->
++ <!ENTITY unite "∪">
++
++ <!ATTLIST CASE CLASS CDATA #REQUIRED>
++]>
++<TEST>
++ <CASE>
++ <CLASS>tst_QXmlStream</CLASS>
++ </CASE>
++ <!-- invalid DTD in XML body follows -->
++ <!DOCTYPE DTDTEST [
++ <!ELEMENT RESULT (CASE+)>
++ <!ATTLIST RESULT OUTPUT CDATA #REQUIRED>
++ ]>
++</TEST>
+diff --git a/tests/auto/corelib/serialization/qxmlstream/tokenError/multipleDtd.xml b/tests/auto/corelib/serialization/qxmlstream/tokenError/multipleDtd.xml
+new file mode 100644
+index 000000000000..cd398c0f9fde
+--- /dev/null
++++ b/tests/auto/corelib/serialization/qxmlstream/tokenError/multipleDtd.xml
+@@ -0,0 +1,20 @@
++<!DOCTYPE TEST [
++ <!ELEMENT TESTATTRIBUTE (CASE+)>
++ <!ELEMENT CASE (CLASS, FUNCTION, DATASET, COMMENTS)>
++ <!ELEMENT CLASS (#PCDATA)>
++
++ <!-- adding random ENTITY statements, as this is typical DTD content -->
++ <!ENTITY iff "⇔">
++
++ <!ATTLIST CASE CLASS CDATA #REQUIRED>
++]>
++<!-- invalid second DTD follows -->
++<!DOCTYPE SECOND [
++ <!ELEMENT SECONDATTRIBUTE (#PCDATA)>
++ <!ENTITY on "∘">
++]>
++<TEST>
++ <CASE>
++ <CLASS>tst_QXmlStream</CLASS>
++ </CASE>
++</TEST>
+diff --git a/tests/auto/corelib/serialization/qxmlstream/tokenError/wellFormed.xml b/tests/auto/corelib/serialization/qxmlstream/tokenError/wellFormed.xml
+new file mode 100644
+index 000000000000..1b61a3f06225
+--- /dev/null
++++ b/tests/auto/corelib/serialization/qxmlstream/tokenError/wellFormed.xml
+@@ -0,0 +1,15 @@
++<!DOCTYPE TEST [
++ <!ELEMENT TESTATTRIBUTE (CASE+)>
++ <!ELEMENT CASE (CLASS, FUNCTION, DATASET, COMMENTS)>
++ <!ELEMENT CLASS (#PCDATA)>
++
++ <!-- adding random ENTITY statements, as this is typical DTD content -->
++ <!ENTITY unite "∪">
++
++ <!ATTLIST CASE CLASS CDATA #REQUIRED>
++]>
++<TEST>
++ <CASE>
++ <CLASS>tst_QXmlStream</CLASS>
++ </CASE>
++</TEST>
+diff --git a/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream.cpp b/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream.cpp
+index 2a340e11bff5..30f54999e7c8 100644
+--- a/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream.cpp
++++ b/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream.cpp
+@@ -590,6 +590,9 @@ private slots:
+
+ void entityExpansionLimit() const;
+
++ void tokenErrorHandling_data() const;
++ void tokenErrorHandling() const;
++
+ private:
+ static QByteArray readFile(const QString &filename);
+
+@@ -1855,5 +1858,41 @@ void tst_QXmlStream::test_fastScanName() const
+ QCOMPARE(reader.error(), errorType);
+ }
+
++void tst_QXmlStream::tokenErrorHandling_data() const
++{
++ QTest::addColumn<QString>("fileName");
++ QTest::addColumn<QXmlStreamReader::Error>("expectedError");
++ QTest::addColumn<QString>("errorKeyWord");
++
++ constexpr auto invalid = QXmlStreamReader::Error::UnexpectedElementError;
++ constexpr auto valid = QXmlStreamReader::Error::NoError;
++ QTest::newRow("DtdInBody") << "dtdInBody.xml" << invalid << "DTD";
++ QTest::newRow("multipleDTD") << "multipleDtd.xml" << invalid << "second DTD";
++ QTest::newRow("wellFormed") << "wellFormed.xml" << valid << "";
++}
++
++void tst_QXmlStream::tokenErrorHandling() const
++{
++ QFETCH(const QString, fileName);
++ QFETCH(const QXmlStreamReader::Error, expectedError);
++ QFETCH(const QString, errorKeyWord);
++
++ const QDir dir(QFINDTESTDATA("tokenError"));
++ QFile file(dir.absoluteFilePath(fileName));
++
++ // Cross-compiling: File will be on host only
++ if (!file.exists())
++ QSKIP("Testfile not found.");
++
++ file.open(QIODevice::ReadOnly);
++ QXmlStreamReader reader(&file);
++ while (!reader.atEnd())
++ reader.readNext();
++
++ QCOMPARE(reader.error(), expectedError);
++ if (expectedError != QXmlStreamReader::Error::NoError)
++ QVERIFY(reader.errorString().contains(errorKeyWord));
++}
++
+ #include "tst_qxmlstream.moc"
+ // vim: et:ts=4:sw=4:sts=4
+--
+2.16.3
+
diff --git a/dev-qt/qtbase/qtbase-6.5.2.ebuild b/dev-qt/qtbase/qtbase-6.5.2.ebuild
new file mode 100644
index 0000000..6ce1c77
--- /dev/null
+++ b/dev-qt/qtbase/qtbase-6.5.2.ebuild
@@ -0,0 +1,196 @@
+# Copyright 2021-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit qt6-build
+
+DESCRIPTION="Cross-platform application development framework"
+
+if [[ ${QT6_BUILD_TYPE} == release ]]; then
+ KEYWORDS="~amd64"
+fi
+
+# Qt Modules
+IUSE="+concurrent +dbus +gui +network +sql opengl +widgets +xml zstd"
+REQUIRED_USE="
+ opengl? ( gui )
+ widgets? ( gui )
+ X? ( || ( evdev libinput ) )
+"
+
+QTGUI_IUSE="accessibility egl eglfs evdev gles2-only +jpeg +libinput tslib tuio vulkan +X"
+QTNETWORK_IUSE="brotli gssapi libproxy sctp +ssl vnc"
+QTSQL_IUSE="freetds mysql oci8 odbc postgres +sqlite"
+IUSE+=" ${QTGUI_IUSE} ${QTNETWORK_IUSE} ${QTSQL_IUSE} cups gtk icu systemd +udev wayland"
+# QtPrintSupport = QtGui + QtWidgets enabled.
+# ibus = xkbcommon + dbus, and xkbcommon needs either libinput or X
+REQUIRED_USE+="
+ $(printf '%s? ( gui ) ' ${QTGUI_IUSE//+/})
+ $(printf '%s? ( network ) ' ${QTNETWORK_IUSE//+/})
+ $(printf '%s? ( sql ) ' ${QTSQL_IUSE//+/})
+ accessibility? ( dbus X )
+ cups? ( gui widgets )
+ eglfs? ( egl )
+ gtk? ( widgets )
+ gui? ( || ( eglfs X ) || ( libinput X ) )
+ libinput? ( udev )
+ sql? ( || ( freetds mysql oci8 odbc postgres sqlite ) )
+ vnc? ( gui )
+ X? ( gles2-only? ( egl ) )
+"
+
+# TODO:
+# qtimageformats: mng not done yet, qtimageformats.git upstream commit 9443239c
+# qtnetwork: connman, networkmanager
+DEPEND="
+ app-crypt/libb2
+ dev-libs/double-conversion:=
+ dev-libs/glib:2
+ dev-libs/libpcre2:=[pcre16,unicode]
+ dev-util/gtk-update-icon-cache
+ media-libs/fontconfig
+ >=media-libs/freetype-2.6.1:2
+ >=media-libs/harfbuzz-1.6.0:=
+ media-libs/tiff:=
+ >=sys-apps/dbus-1.4.20
+ sys-libs/zlib:=
+ brotli? ( app-arch/brotli:= )
+ evdev? ( sys-libs/mtdev )
+ freetds? ( dev-db/freetds )
+ gles2-only? ( media-libs/libglvnd )
+ !gles2-only? ( media-libs/libglvnd[X] )
+ gssapi? ( virtual/krb5 )
+ gtk? (
+ x11-libs/gtk+:3
+ x11-libs/libX11
+ x11-libs/pango
+ )
+ gui? ( media-libs/libpng:= )
+ icu? ( dev-libs/icu:= )
+ !icu? ( virtual/libiconv )
+ jpeg? ( media-libs/libjpeg-turbo:= )
+ libinput? (
+ dev-libs/libinput:=
+ >=x11-libs/libxkbcommon-0.5.0
+ )
+ libproxy? ( net-libs/libproxy )
+ mysql? ( dev-db/mysql-connector-c:= )
+ oci8? ( dev-db/oracle-instantclient:=[sdk] )
+ odbc? ( dev-db/unixODBC )
+ postgres? ( dev-db/postgresql:* )
+ sctp? ( kernel_linux? ( net-misc/lksctp-tools ) )
+ sqlite? ( dev-db/sqlite:3 )
+ ssl? ( dev-libs/openssl:= )
+ systemd? ( sys-apps/systemd:= )
+ tslib? ( >=x11-libs/tslib-1.21 )
+ udev? ( virtual/libudev:= )
+ vulkan? ( dev-util/vulkan-headers )
+ X? (
+ x11-libs/libdrm
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ >=x11-libs/libxcb-1.12:=
+ >=x11-libs/libxkbcommon-0.5.0[X]
+ x11-libs/xcb-util-cursor
+ x11-libs/xcb-util-image
+ x11-libs/xcb-util-keysyms
+ x11-libs/xcb-util-renderutil
+ x11-libs/xcb-util-wm
+ )
+ zstd? ( app-arch/zstd:= )
+"
+RDEPEND="${DEPEND}"
+PDEPEND="wayland? ( =dev-qt/qtwayland-${PV}* )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-6.5.0-libressl.patch"
+ "${FILESDIR}/${PN}-6.5.2-CVE-2023-38197.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DINSTALL_ARCHDATADIR=${QT6_ARCHDATADIR}
+ -DINSTALL_BINDIR=${QT6_BINDIR}
+ -DINSTALL_DATADIR=${QT6_DATADIR}
+ -DINSTALL_DOCDIR=${QT6_DOCDIR}
+ -DINSTALL_EXAMPLESDIR=${QT6_EXAMPLESDIR}
+ -DINSTALL_INCLUDEDIR=${QT6_HEADERDIR}
+ -DINSTALL_LIBDIR=${QT6_LIBDIR}
+ -DINSTALL_LIBEXECDIR=${QT6_LIBEXECDIR}
+ -DINSTALL_MKSPECSDIR=${QT6_ARCHDATADIR}/mkspecs
+ -DINSTALL_PLUGINSDIR=${QT6_PLUGINDIR}
+ -DINSTALL_QMLDIR=${QT6_QMLDIR}
+ -DINSTALL_SYSCONFDIR=${QT6_SYSCONFDIR}
+ -DINSTALL_TRANSLATIONSDIR=${QT6_TRANSLATIONDIR}
+ -DQT_FEATURE_androiddeployqt=OFF
+ $(qt_feature concurrent)
+ $(qt_feature dbus)
+ $(qt_feature gui)
+ $(qt_feature gui testlib)
+ $(qt_feature icu)
+ $(qt_feature network)
+ $(qt_feature sql)
+ $(qt_feature systemd journald)
+ $(qt_feature udev libudev)
+ $(qt_feature xml)
+ $(qt_feature zstd)
+ )
+ use gui && mycmakeargs+=(
+ $(qt_feature accessibility accessibility_atspi_bridge)
+ $(qt_feature egl)
+ $(qt_feature egl xcb_egl_plugin)
+ $(qt_feature eglfs eglfs_egldevice)
+ $(qt_feature eglfs eglfs_gbm)
+ $(qt_feature evdev)
+ $(qt_feature evdev mtdev)
+ -DQT_FEATURE_gif=ON
+ $(qt_feature jpeg)
+ $(qt_feature opengl)
+ $(qt_feature gles2-only opengles2)
+ $(qt_feature libinput)
+ $(qt_feature tslib)
+ $(qt_feature tuio tuiotouch)
+ $(qt_feature vulkan)
+ $(qt_feature widgets)
+ $(qt_feature X xcb)
+ $(qt_feature X xcb_xlib)
+ )
+ use widgets && mycmakeargs+=(
+ $(qt_feature cups)
+ $(qt_feature gtk gtk3)
+ )
+ if use libinput || use X; then
+ mycmakeargs+=( -DQT_FEATURE_xkbcommon=ON )
+ fi
+ use network && mycmakeargs+=(
+ $(qt_feature brotli)
+ $(qt_feature gssapi)
+ $(qt_feature libproxy)
+ $(qt_feature sctp)
+ $(qt_feature vnc)
+
+ # Required for LibreSSL
+ -DQT_FEATURE_dtls=OFF
+ $(qt_feature ssl openssl_linked)
+ )
+ use sql && mycmakeargs+=(
+ $(qt_feature freetds sql_tds)
+ $(qt_feature mysql sql_mysql)
+ $(qt_feature oci8 sql_oci)
+ $(qt_feature odbc sql_odbc)
+ $(qt_feature postgres sql_psql)
+ $(qt_feature sqlite sql_sqlite)
+ $(qt_feature sqlite system_sqlite)
+ )
+
+ qt6-build_src_configure
+}
+
+src_install() {
+ qt6-build_src_install
+
+ # https://bugs.gentoo.org/863395
+ qt6_symlink_binary_to_path qmake 6
+}
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gentoo-commits] repo/proj/libressl:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2023-07-26 15:23 orbea
0 siblings, 0 replies; 15+ messages in thread
From: orbea @ 2023-07-26 15:23 UTC (permalink / raw
To: gentoo-commits
commit: 232704864cb16d7f2f0253253b25c4ed73e5fefd
Author: orbea <orbea <AT> riseup <DOT> net>
AuthorDate: Wed Jul 26 14:44:51 2023 +0000
Commit: orbea <orbea <AT> riseup <DOT> net>
CommitDate: Wed Jul 26 14:44:51 2023 +0000
URL: https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=23270486
dev-qt/qtbase: drop 6.5.1-r1
Signed-off-by: orbea <orbea <AT> riseup.net>
dev-qt/qtbase/Manifest | 1 -
.../qtbase/files/qtbase-6.5.1-CVE-2023-34410.patch | 54 ------
dev-qt/qtbase/qtbase-6.5.1-r1.ebuild | 196 ---------------------
3 files changed, 251 deletions(-)
diff --git a/dev-qt/qtbase/Manifest b/dev-qt/qtbase/Manifest
index f18d34b..9476478 100644
--- a/dev-qt/qtbase/Manifest
+++ b/dev-qt/qtbase/Manifest
@@ -1,2 +1 @@
-DIST qtbase-everywhere-src-6.5.1.tar.xz 48287392 BLAKE2B 47872492f21a936d980891c28df61591380bc236adc66b57a90fbb87dd292cdeb3c632fb1159231ba40142d25e02944e4c5e8568153f1286e0a1abc8c5b26699 SHA512 7f7b20bbc25cda65266d6067cdd68e3e077636988d67dbf5783f79a61186135fb3a36d57ac72cfe4501012035b630ab1f5849148e4817726d4f459fa1937e91a
DIST qtbase-everywhere-src-6.5.2.tar.xz 48410716 BLAKE2B 578c69ede6f45a8b21cba0a24674d5d8801722503d13ab9578b06b2446ce15e6a84bcdbd0c5d2c9aa868ec70862f0845406c959ed79b695f82bb398ecf299c63 SHA512 8d97029aae5b73a3e03624c9a8495dbf2fe54a4f5e992071c06f3d93935e64c80f2121b33eeb60a92d96ceb288cb25d74906a5bf47b45bb018d859d4a2d13f20
diff --git a/dev-qt/qtbase/files/qtbase-6.5.1-CVE-2023-34410.patch b/dev-qt/qtbase/files/qtbase-6.5.1-CVE-2023-34410.patch
deleted file mode 100644
index 6f12647..0000000
--- a/dev-qt/qtbase/files/qtbase-6.5.1-CVE-2023-34410.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From: https://lists.qt-project.org/pipermail/development/2023-June/044031.html
-
---- a/src/plugins/tls/schannel/qtls_schannel.cpp
-+++ b/src/plugins/tls/schannel/qtls_schannel.cpp
-@@ -2106,6 +2106,27 @@ bool TlsCryptographSchannel::verifyCertContext(CERT_CONTEXT *certContext)
- verifyDepth = DWORD(q->peerVerifyDepth());
-
- const auto &caCertificates = q->sslConfiguration().caCertificates();
-+
-+ if (!rootCertOnDemandLoadingAllowed()
-+ && !(chain->TrustStatus.dwErrorStatus & CERT_TRUST_IS_PARTIAL_CHAIN)
-+ && (q->peerVerifyMode() == QSslSocket::VerifyPeer
-+ || (isClient && q->peerVerifyMode() == QSslSocket::AutoVerifyPeer))) {
-+ // When verifying a peer Windows "helpfully" builds a chain that
-+ // may include roots from the system store. But we don't want that if
-+ // the user has set their own CA certificates.
-+ // Since Windows claims this is not a partial chain the root is included
-+ // and we have to check that it is one of our configured CAs.
-+ CERT_CHAIN_ELEMENT *element = chain->rgpElement[chain->cElement - 1];
-+ QSslCertificate certificate = getCertificateFromChainElement(element);
-+ if (!caCertificates.contains(certificate)) {
-+ auto error = QSslError(QSslError::CertificateUntrusted, certificate);
-+ sslErrors += error;
-+ emit q->peerVerifyError(error);
-+ if (q->state() != QAbstractSocket::ConnectedState)
-+ return false;
-+ }
-+ }
-+
- QList<QSslCertificate> peerCertificateChain;
- for (DWORD i = 0; i < verifyDepth; i++) {
- CERT_CHAIN_ELEMENT *element = chain->rgpElement[i];
-
---- a/src/network/ssl/qsslsocket.cpp
-+++ b/src/network/ssl/qsslsocket.cpp
-@@ -1973,6 +1973,10 @@ QSslSocketPrivate::QSslSocketPrivate()
- , flushTriggered(false)
- {
- QSslConfigurationPrivate::deepCopyDefaultConfiguration(&configuration);
-+ // If the global configuration doesn't allow root certificates to be loaded
-+ // on demand then we have to disable it for this socket as well.
-+ if (!configuration.allowRootCertOnDemandLoading)
-+ allowRootCertOnDemandLoading = false;
-
- const auto *tlsBackend = tlsBackendInUse();
- if (!tlsBackend) {
-@@ -2281,6 +2285,7 @@ void QSslConfigurationPrivate::deepCopyDefaultConfiguration(QSslConfigurationPri
- ptr->sessionProtocol = global->sessionProtocol;
- ptr->ciphers = global->ciphers;
- ptr->caCertificates = global->caCertificates;
-+ ptr->allowRootCertOnDemandLoading = global->allowRootCertOnDemandLoading;
- ptr->protocol = global->protocol;
- ptr->peerVerifyMode = global->peerVerifyMode;
- ptr->peerVerifyDepth = global->peerVerifyDepth;
diff --git a/dev-qt/qtbase/qtbase-6.5.1-r1.ebuild b/dev-qt/qtbase/qtbase-6.5.1-r1.ebuild
deleted file mode 100644
index fde9d03..0000000
--- a/dev-qt/qtbase/qtbase-6.5.1-r1.ebuild
+++ /dev/null
@@ -1,196 +0,0 @@
-# Copyright 2021-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit qt6-build
-
-DESCRIPTION="Cross-platform application development framework"
-
-if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64"
-fi
-
-# Qt Modules
-IUSE="+concurrent +dbus +gui +network +sql opengl +widgets +xml zstd"
-REQUIRED_USE="
- opengl? ( gui )
- widgets? ( gui )
- X? ( || ( evdev libinput ) )
-"
-
-QTGUI_IUSE="accessibility egl eglfs evdev gles2-only +jpeg +libinput tslib tuio vulkan +X"
-QTNETWORK_IUSE="brotli gssapi libproxy sctp +ssl vnc"
-QTSQL_IUSE="freetds mysql oci8 odbc postgres +sqlite"
-IUSE+=" ${QTGUI_IUSE} ${QTNETWORK_IUSE} ${QTSQL_IUSE} cups gtk icu systemd +udev wayland"
-# QtPrintSupport = QtGui + QtWidgets enabled.
-# ibus = xkbcommon + dbus, and xkbcommon needs either libinput or X
-REQUIRED_USE+="
- $(printf '%s? ( gui ) ' ${QTGUI_IUSE//+/})
- $(printf '%s? ( network ) ' ${QTNETWORK_IUSE//+/})
- $(printf '%s? ( sql ) ' ${QTSQL_IUSE//+/})
- accessibility? ( dbus X )
- cups? ( gui widgets )
- eglfs? ( egl )
- gtk? ( widgets )
- gui? ( || ( eglfs X ) || ( libinput X ) )
- libinput? ( udev )
- sql? ( || ( freetds mysql oci8 odbc postgres sqlite ) )
- vnc? ( gui )
- X? ( gles2-only? ( egl ) )
-"
-
-# TODO:
-# qtimageformats: mng not done yet, qtimageformats.git upstream commit 9443239c
-# qtnetwork: connman, networkmanager
-DEPEND="
- app-crypt/libb2
- dev-libs/double-conversion:=
- dev-libs/glib:2
- dev-libs/libpcre2:=[pcre16,unicode]
- dev-util/gtk-update-icon-cache
- media-libs/fontconfig
- >=media-libs/freetype-2.6.1:2
- >=media-libs/harfbuzz-1.6.0:=
- media-libs/tiff:=
- >=sys-apps/dbus-1.4.20
- sys-libs/zlib:=
- brotli? ( app-arch/brotli:= )
- evdev? ( sys-libs/mtdev )
- freetds? ( dev-db/freetds )
- gles2-only? ( media-libs/libglvnd )
- !gles2-only? ( media-libs/libglvnd[X] )
- gssapi? ( virtual/krb5 )
- gtk? (
- x11-libs/gtk+:3
- x11-libs/libX11
- x11-libs/pango
- )
- gui? ( media-libs/libpng:= )
- icu? ( dev-libs/icu:= )
- !icu? ( virtual/libiconv )
- jpeg? ( media-libs/libjpeg-turbo:= )
- libinput? (
- dev-libs/libinput:=
- >=x11-libs/libxkbcommon-0.5.0
- )
- libproxy? ( net-libs/libproxy )
- mysql? ( dev-db/mysql-connector-c:= )
- oci8? ( dev-db/oracle-instantclient:=[sdk] )
- odbc? ( dev-db/unixODBC )
- postgres? ( dev-db/postgresql:* )
- sctp? ( kernel_linux? ( net-misc/lksctp-tools ) )
- sqlite? ( dev-db/sqlite:3 )
- ssl? ( dev-libs/openssl:= )
- systemd? ( sys-apps/systemd:= )
- tslib? ( >=x11-libs/tslib-1.21 )
- udev? ( virtual/libudev:= )
- vulkan? ( dev-util/vulkan-headers )
- X? (
- x11-libs/libdrm
- x11-libs/libICE
- x11-libs/libSM
- x11-libs/libX11
- >=x11-libs/libxcb-1.12:=
- >=x11-libs/libxkbcommon-0.5.0[X]
- x11-libs/xcb-util-cursor
- x11-libs/xcb-util-image
- x11-libs/xcb-util-keysyms
- x11-libs/xcb-util-renderutil
- x11-libs/xcb-util-wm
- )
- zstd? ( app-arch/zstd:= )
-"
-RDEPEND="${DEPEND}"
-PDEPEND="wayland? ( =dev-qt/qtwayland-${PV}* )"
-
-PATCHES=(
- "${FILESDIR}/${PN}-6.5.0-libressl.patch"
- "${FILESDIR}/${PN}-6.5.1-CVE-2023-34410.patch"
-)
-
-src_configure() {
- local mycmakeargs=(
- -DINSTALL_ARCHDATADIR=${QT6_ARCHDATADIR}
- -DINSTALL_BINDIR=${QT6_BINDIR}
- -DINSTALL_DATADIR=${QT6_DATADIR}
- -DINSTALL_DOCDIR=${QT6_DOCDIR}
- -DINSTALL_EXAMPLESDIR=${QT6_EXAMPLESDIR}
- -DINSTALL_INCLUDEDIR=${QT6_HEADERDIR}
- -DINSTALL_LIBDIR=${QT6_LIBDIR}
- -DINSTALL_LIBEXECDIR=${QT6_LIBEXECDIR}
- -DINSTALL_MKSPECSDIR=${QT6_ARCHDATADIR}/mkspecs
- -DINSTALL_PLUGINSDIR=${QT6_PLUGINDIR}
- -DINSTALL_QMLDIR=${QT6_QMLDIR}
- -DINSTALL_SYSCONFDIR=${QT6_SYSCONFDIR}
- -DINSTALL_TRANSLATIONSDIR=${QT6_TRANSLATIONDIR}
- -DQT_FEATURE_androiddeployqt=OFF
- $(qt_feature concurrent)
- $(qt_feature dbus)
- $(qt_feature gui)
- $(qt_feature gui testlib)
- $(qt_feature icu)
- $(qt_feature network)
- $(qt_feature sql)
- $(qt_feature systemd journald)
- $(qt_feature udev libudev)
- $(qt_feature xml)
- $(qt_feature zstd)
- )
- use gui && mycmakeargs+=(
- $(qt_feature accessibility accessibility_atspi_bridge)
- $(qt_feature egl)
- $(qt_feature egl xcb_egl_plugin)
- $(qt_feature eglfs eglfs_egldevice)
- $(qt_feature eglfs eglfs_gbm)
- $(qt_feature evdev)
- $(qt_feature evdev mtdev)
- -DQT_FEATURE_gif=ON
- $(qt_feature jpeg)
- $(qt_feature opengl)
- $(qt_feature gles2-only opengles2)
- $(qt_feature libinput)
- $(qt_feature tslib)
- $(qt_feature tuio tuiotouch)
- $(qt_feature vulkan)
- $(qt_feature widgets)
- $(qt_feature X xcb)
- $(qt_feature X xcb_xlib)
- )
- use widgets && mycmakeargs+=(
- $(qt_feature cups)
- $(qt_feature gtk gtk3)
- )
- if use libinput || use X; then
- mycmakeargs+=( -DQT_FEATURE_xkbcommon=ON )
- fi
- use network && mycmakeargs+=(
- $(qt_feature brotli)
- $(qt_feature gssapi)
- $(qt_feature libproxy)
- $(qt_feature sctp)
- $(qt_feature vnc)
-
- # Required for LibreSSL
- -DQT_FEATURE_dtls=OFF
- $(qt_feature ssl openssl_linked)
- )
- use sql && mycmakeargs+=(
- $(qt_feature freetds sql_tds)
- $(qt_feature mysql sql_mysql)
- $(qt_feature oci8 sql_oci)
- $(qt_feature odbc sql_odbc)
- $(qt_feature postgres sql_psql)
- $(qt_feature sqlite sql_sqlite)
- $(qt_feature sqlite system_sqlite)
- )
-
- qt6-build_src_configure
-}
-
-src_install() {
- qt6-build_src_install
-
- # https://bugs.gentoo.org/863395
- qt6_symlink_binary_to_path qmake 6
-}
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gentoo-commits] repo/proj/libressl:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2023-09-06 18:11 orbea
0 siblings, 0 replies; 15+ messages in thread
From: orbea @ 2023-09-06 18:11 UTC (permalink / raw
To: gentoo-commits
commit: 2239c79daced0d97373e4811db08426d13a07c83
Author: orbea <orbea <AT> riseup <DOT> net>
AuthorDate: Wed Sep 6 18:10:16 2023 +0000
Commit: orbea <orbea <AT> riseup <DOT> net>
CommitDate: Wed Sep 6 18:10:16 2023 +0000
URL: https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=2239c79d
dev-qt/qtbase: add 6.5.2-r1, drop 6.5.2
Signed-off-by: orbea <orbea <AT> riseup.net>
dev-qt/qtbase/files/qtbase-6.5.2-tests-gcc13.patch | 25 ++
dev-qt/qtbase/metadata.xml | 3 +-
dev-qt/qtbase/qtbase-6.5.2-r1.ebuild | 335 +++++++++++++++++++++
dev-qt/qtbase/qtbase-6.5.2.ebuild | 196 ------------
4 files changed, 361 insertions(+), 198 deletions(-)
diff --git a/dev-qt/qtbase/files/qtbase-6.5.2-tests-gcc13.patch b/dev-qt/qtbase/files/qtbase-6.5.2-tests-gcc13.patch
new file mode 100644
index 0000000..431d89a
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.5.2-tests-gcc13.patch
@@ -0,0 +1,25 @@
+https://bugreports.qt.io/browse/QTBUG-114785
+https://code.qt.io/cgit/qt/qtbase.git/commit/?id=3e801b5477a7abfe4b87f20639e345bf3dc7eca8
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sat, 29 Apr 2023 13:01:56 +0200
+Subject: [PATCH] tinycbor: fix build with gcc-13
+
+Fixes: QTBUG-114785
+Pick-to: 6.6 6.5
+Change-Id: I4876ebd8890eee883a0d1a2bef8cb7aec4fd0f2f
+Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
+--- a/src/3rdparty/tinycbor/tests/encoder/data.cpp
++++ b/src/3rdparty/tinycbor/tests/encoder/data.cpp
+@@ -239,9 +239,9 @@
+ QTest::newRow("0.f16") << raw("\xf9\0\0") << QVariant::fromValue(qfloat16(0));
+ QTest::newRow("-1.f16") << raw("\xf9\xbc\0") << QVariant::fromValue(qfloat16(-1));
+ QTest::newRow("1.5f16") << raw("\xf9\x3e\0") << QVariant::fromValue(qfloat16(1.5));
+- QTest::newRow("nan_f16") << raw("\xf9\x7e\0") << QVariant::fromValue<qfloat16>(myNaNf());
+- QTest::newRow("-inf_f16") << raw("\xf9\xfc\0") << QVariant::fromValue<qfloat16>(myNInff());
+- QTest::newRow("+inf_f16") << raw("\xf9\x7c\0") << QVariant::fromValue<qfloat16>(myInff());
++ QTest::newRow("nan_f16") << raw("\xf9\x7e\0") << QVariant::fromValue<qfloat16>(qfloat16(myNaNf()));
++ QTest::newRow("-inf_f16") << raw("\xf9\xfc\0") << QVariant::fromValue<qfloat16>(qfloat16(myNInff()));
++ QTest::newRow("+inf_f16") << raw("\xf9\x7c\0") << QVariant::fromValue<qfloat16>(qfloat16(myInff()));
+ #endif
+
+ QTest::newRow("0.f") << raw("\xfa\0\0\0\0") << QVariant::fromValue(0.f);
diff --git a/dev-qt/qtbase/metadata.xml b/dev-qt/qtbase/metadata.xml
index d828e06..573775d 100644
--- a/dev-qt/qtbase/metadata.xml
+++ b/dev-qt/qtbase/metadata.xml
@@ -9,7 +9,6 @@
<flag name="brotli">Enable support for Brotli decompression</flag>
<flag name="concurrent">Build Qt6Concurrent module</flag>
<flag name="dbus">Build Qt6DBus module</flag>
- <flag name="egl">Enable EGL integration</flag>
<flag name="eglfs">Build the EGL Full Screen/Single Surface platform plugin</flag>
<flag name="evdev">Enable support for input devices via evdev</flag>
<flag name="gssapi">Enable support for GSSAPI (<pkg>virtual/krb5</pkg>)</flag>
@@ -21,13 +20,13 @@
<flag name="sql">Build Qt6Sql module</flag>
<flag name="systemd">Enable native journald logging support</flag>
<flag name="tslib">Enable support for touchscreen devices via <pkg>x11-libs/tslib</pkg></flag>
- <flag name="tuio">Build plugin to receive touch events over the TUIO protocol</flag>
<flag name="widgets">Build Qt6Widgets module</flag>
<flag name="X">Build the XCB platform plugin and enable X11 integration</flag>
</use>
<upstream>
<bugs-to>https://bugreports.qt.io/</bugs-to>
<doc>https://doc.qt.io/</doc>
+ <remote-id type="github">qt/qtbase</remote-id>
</upstream>
<slots>
<subslots>
diff --git a/dev-qt/qtbase/qtbase-6.5.2-r1.ebuild b/dev-qt/qtbase/qtbase-6.5.2-r1.ebuild
new file mode 100644
index 0000000..e0bb6d1
--- /dev/null
+++ b/dev-qt/qtbase/qtbase-6.5.2-r1.ebuild
@@ -0,0 +1,335 @@
+# Copyright 2021-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic qt6-build toolchain-funcs
+
+DESCRIPTION="Cross-platform application development framework"
+
+if [[ ${QT6_BUILD_TYPE} == release ]]; then
+ KEYWORDS="~amd64"
+fi
+
+declare -A QT6_IUSE=(
+ [global]="+ssl +udev zstd"
+ [core]="icu systemd"
+ [modules]="+concurrent +dbus +gui +network +sql +xml"
+
+ [gui]="
+ +X accessibility eglfs evdev gles2-only +libinput
+ opengl tslib vulkan +widgets
+ "
+ [network]="brotli gssapi libproxy sctp"
+ [sql]="mysql oci8 odbc postgres +sqlite"
+ [widgets]="cups gtk"
+
+ [optfeature]="wayland" #864509
+)
+IUSE="${QT6_IUSE[*]}"
+REQUIRED_USE="
+ $(
+ printf '%s? ( gui ) ' ${QT6_IUSE[gui]//+/}
+ printf '%s? ( network ) ' ${QT6_IUSE[network]//+/}
+ printf '%s? ( sql ) ' ${QT6_IUSE[sql]//+/}
+ printf '%s? ( gui widgets ) ' ${QT6_IUSE[widgets]//+/}
+ )
+ accessibility? ( X dbus )
+ eglfs? ( opengl )
+ gui? ( || ( X eglfs wayland ) )
+ libinput? ( udev )
+ sql? ( || ( ${QT6_IUSE[sql]//+/} ) )
+ test? ( icu sql? ( sqlite ) )
+"
+
+# groups:
+# - global (configure.cmake)
+# - qtcore (src/corelib/configure.cmake)
+# - qtgui (src/gui/configure.cmake)
+# - qtnetwork (src/network/configure.cmake)
+# - qtprintsupport (src/printsupport/configure.cmake) [gui+widgets]
+# - qtsql (src/plugins/sqldrivers/configure.cmake)
+RDEPEND="
+ sys-libs/zlib:=
+ ssl? ( dev-libs/openssl:= )
+ udev? ( virtual/libudev:= )
+ zstd? ( app-arch/zstd:= )
+
+ app-crypt/libb2
+ dev-libs/double-conversion:=
+ dev-libs/glib:2
+ dev-libs/libpcre2:=[pcre16,unicode(+)]
+ icu? ( dev-libs/icu:= )
+ systemd? ( sys-apps/systemd:= )
+
+ dbus? ( sys-apps/dbus )
+ gui? (
+ media-libs/fontconfig
+ media-libs/freetype:2
+ media-libs/harfbuzz:=
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ x11-libs/libdrm
+ x11-libs/libxkbcommon[X?]
+ X? (
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libxcb:=
+ x11-libs/xcb-util-cursor
+ x11-libs/xcb-util-image
+ x11-libs/xcb-util-keysyms
+ x11-libs/xcb-util-renderutil
+ x11-libs/xcb-util-wm
+ )
+ accessibility? ( app-accessibility/at-spi2-core:2 )
+ eglfs? ( media-libs/mesa[gbm(+)] )
+ evdev? ( sys-libs/mtdev )
+ libinput? ( dev-libs/libinput:= )
+ opengl? ( media-libs/libglvnd[X?] )
+ tslib? ( x11-libs/tslib )
+ widgets? (
+ cups? ( net-print/cups )
+ gtk? (
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3
+ x11-libs/pango
+ )
+ )
+ )
+ network? (
+ brotli? ( app-arch/brotli:= )
+ gssapi? ( virtual/krb5 )
+ libproxy? ( net-libs/libproxy )
+ )
+ sql? (
+ mysql? ( dev-db/mysql-connector-c:= )
+ oci8? ( dev-db/oracle-instantclient:=[sdk] )
+ odbc? ( dev-db/unixODBC )
+ postgres? ( dev-db/postgresql:* )
+ sqlite? ( dev-db/sqlite:3 )
+ )
+"
+DEPEND="
+ ${RDEPEND}
+ X? ( x11-base/xorg-proto )
+ gui? (
+ vulkan? ( dev-util/vulkan-headers )
+ )
+ network? (
+ sctp? ( net-misc/lksctp-tools )
+ )
+ test? (
+ elibc_musl? ( sys-libs/timezone-data )
+ )
+"
+BDEPEND="zstd? ( app-arch/libarchive[zstd] )" #910392
+PDEPEND="wayland? ( ~dev-qt/qtwayland-${PV}:6 )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-6.5.0-libressl.patch"
+ "${FILESDIR}"/${P}-CVE-2023-38197.patch
+ "${FILESDIR}"/${P}-tests-gcc13.patch
+)
+
+src_prepare() {
+ qt6-build_src_prepare
+
+ if use test; then
+ # test itself has -Werror=strict-aliasing issues, drop for simplicity
+ sed -e '/add_subdirectory(qsharedpointer)/d' \
+ -i tests/auto/corelib/tools/CMakeLists.txt || die
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DINSTALL_ARCHDATADIR="${QT6_ARCHDATADIR}"
+ -DINSTALL_BINDIR="${QT6_BINDIR}"
+ -DINSTALL_DATADIR="${QT6_DATADIR}"
+ -DINSTALL_DOCDIR="${QT6_DOCDIR}"
+ -DINSTALL_EXAMPLESDIR="${QT6_EXAMPLESDIR}"
+ -DINSTALL_INCLUDEDIR="${QT6_HEADERDIR}"
+ -DINSTALL_LIBDIR="${QT6_LIBDIR}"
+ -DINSTALL_LIBEXECDIR="${QT6_LIBEXECDIR}"
+ -DINSTALL_MKSPECSDIR="${QT6_MKSPECSDIR}"
+ -DINSTALL_PLUGINSDIR="${QT6_PLUGINDIR}"
+ -DINSTALL_QMLDIR="${QT6_QMLDIR}"
+ -DINSTALL_SYSCONFDIR="${QT6_SYSCONFDIR}"
+ -DINSTALL_TRANSLATIONSDIR="${QT6_TRANSLATIONDIR}"
+
+ -DQT_FEATURE_precompile_header=OFF
+ $(qt_feature ssl openssl)
+ $(qt_feature ssl openssl_linked)
+ $(qt_feature udev libudev)
+ $(qt_feature zstd)
+
+ # qtcore
+ $(qt_feature icu)
+ $(qt_feature systemd journald)
+
+ # tools
+ -DQT_FEATURE_androiddeployqt=OFF
+
+ # modules
+ $(qt_feature concurrent)
+ $(qt_feature dbus)
+ $(qt_feature gui)
+ $(qt_feature network)
+ $(qt_feature sql)
+ -DQT_FEATURE_testlib=ON # trivial and often needed to build revdeps
+ $(qt_feature xml)
+ )
+
+ use gui && mycmakeargs+=(
+ $(qt_feature X xcb)
+ $(qt_feature X system_xcb_xinput)
+ $(qt_feature X xkbcommon_x11)
+ $(cmake_use_find_package X X11) # needed for truly no automagic
+ $(qt_feature accessibility accessibility_atspi_bridge)
+ $(qt_feature eglfs)
+ $(qt_feature evdev)
+ $(qt_feature evdev mtdev)
+ $(qt_feature gles2-only opengles2)
+ $(qt_feature libinput)
+ $(qt_feature opengl)
+ $(usev !opengl -DINPUT_opengl=no) #913691
+ $(qt_feature tslib)
+ $(qt_feature vulkan)
+ $(qt_feature widgets)
+ -DQT_FEATURE_system_textmarkdownreader=OFF # TODO?: package md4c
+ ) && use widgets && mycmakeargs+=(
+ $(qt_feature cups) # qtprintsupport is enabled w/ gui+widgets
+ $(qt_feature gtk gtk3)
+ )
+
+ use network && mycmakeargs+=(
+ $(qt_feature brotli)
+ $(qt_feature gssapi)
+ $(qt_feature libproxy)
+ $(qt_feature sctp)
+ $(usev test -DQT_SKIP_DOCKER_COMPOSE=ON)
+
+ # Required for LibreSSL
+ -DQT_FEATURE_dtls=OFF
+ )
+
+ use sql && mycmakeargs+=(
+ -DQT_FEATURE_sql_db2=OFF # unpackaged
+ -DQT_FEATURE_sql_ibase=OFF # unpackaged
+ $(qt_feature mysql sql_mysql)
+ $(qt_feature oci8 sql_oci)
+ $(usev oci8 -DOracle_ROOT="${ESYSROOT}"/usr/$(get_libdir)/oracle/client)
+ $(qt_feature odbc sql_odbc)
+ $(qt_feature postgres sql_psql)
+ $(qt_feature sqlite sql_sqlite)
+ $(qt_feature sqlite system_sqlite)
+ -DQT_FEATURE_sql_tds=OFF # currently a no-op in CMakeLists.txt
+ )
+
+ if use amd64 || use x86; then
+ # see bug #913400 for explanations
+ local cpufeats=(
+ # list of checked cpu features in configure.cmake
+ avx avx2 avx512{bw,cd,dq,er,f,ifma,pf,vbmi,vbmi2,vl}
+ f16c rdrnd rdseed sse2 sse3 sse4_1 sse4_2 ssse3 vaes
+ )
+ # handle odd ones out not matching -m* and macros (keep same order)
+ local cpuflags=( "${cpufeats[@]}" aes sha )
+ local cpufeats+=( aesni shani )
+
+ local -a intrins
+ IFS=' ' read -ra intrins < <(
+ : "$(test-flags-CXX "${cpuflags[@]/#/-m}")"
+ $(tc-getCXX) -E -P ${_} ${CXXFLAGS} ${CPPFLAGS} - <<-EOF | tail -n 1
+ #if defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__))
+ #include <x86intrin.h>
+ #endif
+ $(printf '__%s__ ' "${cpuflags[@]^^}")
+ EOF
+ assert
+ )
+
+ # do nothing and leave to qtbase if no macros expanded (test failed?)
+ if [[ \ ${intrins[*]} == *\ [^_\ ]* ]]; then
+ local -i i
+ for ((i=0; i<${#cpufeats[@]}; i++)); do
+ [[ ${intrins[i]} == __* ]] &&
+ mycmakeargs+=( -DQT_FEATURE_${cpufeats[i]}=OFF )
+ done
+ mycmakeargs+=( -DTEST_x86intrin=ON )
+ fi
+ fi
+
+ qt6-build_src_configure
+}
+
+src_test() {
+ local -x TZ=UTC
+ local -x LC_TIME=C
+
+ local CMAKE_SKIP_TESTS=(
+ # broken with out-of-source + if qtbase is not already installed
+ tst_moc
+ tst_qmake
+ # needs x11/opengl, we *could* run these but tend to be flaky
+ # when opengl rendering is involved (even if software-only)
+ tst_qopengl{,config,widget,window}
+ tst_qgraphicsview
+ tst_qx11info
+ # fails with network sandbox
+ tst_qdnslookup
+ # typical to lack SCTP support on non-generic kernels
+ tst_qsctpsocket
+ # these can be flaky depending on the environment/toolchain
+ tst_qlogging # backtrace log test can easily vary
+ tst_qrawfont # can be affected by available fonts
+ tst_qstorageinfo # checks mounted filesystems
+ # flaky due to using different test framework and fails with USE=-gui
+ tst_selftests
+ # known failing when using clang+glibc+stdc++, needs looking into
+ tst_qthread
+ # partially failing on x86 chroots and seemingly(?) harmless (dev-qt
+ # revdeps tests pass), skip globally to avoid keywording flakiness
+ tst_json
+ tst_qcolorspace
+ tst_qdoublevalidator
+ tst_qglobal
+ tst_qglyphrun
+ tst_qvectornd
+ tst_rcc
+ # partially broken on llvm-musl, needs looking into but skip to have
+ # a baseline for regressions (like above, rest of dev-qt is fine)
+ $(usev elibc_musl '
+ tst_qfiledialog2
+ tst_qicoimageformat
+ tst_qimagereader
+ tst_qpainter
+ tst_qimage
+ ')
+ # note: for linux, upstream only really runs+maintains tests for amd64
+ # https://doc.qt.io/qt-6/supported-platforms.html
+ )
+
+ qt6-build_src_test
+}
+
+src_install() {
+ qt6-build_src_install
+
+ if use test; then
+ local delete_bins=( # need a better way to handle this
+ clientserver copier crashingServer desktopsettingsaware_helper
+ echo fileWriterProcess modal_helper nospace 'one space'
+ paster qcommandlineparser_test_helper qfileopeneventexternal
+ socketprocess syslocaleapp tst_qhashseed_helper 'two space s'
+ write-read-write
+ )
+ local delete=( # sigh
+ "${D}${QT6_BINDIR}"/test*
+ "${delete_bins[@]/#/${D}${QT6_BINDIR}/}"
+ )
+ # using -f given not tracking which tests may be skipped or not
+ rm -rf -- "${delete[@]}" || die
+ fi
+}
diff --git a/dev-qt/qtbase/qtbase-6.5.2.ebuild b/dev-qt/qtbase/qtbase-6.5.2.ebuild
deleted file mode 100644
index 6ce1c77..0000000
--- a/dev-qt/qtbase/qtbase-6.5.2.ebuild
+++ /dev/null
@@ -1,196 +0,0 @@
-# Copyright 2021-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit qt6-build
-
-DESCRIPTION="Cross-platform application development framework"
-
-if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64"
-fi
-
-# Qt Modules
-IUSE="+concurrent +dbus +gui +network +sql opengl +widgets +xml zstd"
-REQUIRED_USE="
- opengl? ( gui )
- widgets? ( gui )
- X? ( || ( evdev libinput ) )
-"
-
-QTGUI_IUSE="accessibility egl eglfs evdev gles2-only +jpeg +libinput tslib tuio vulkan +X"
-QTNETWORK_IUSE="brotli gssapi libproxy sctp +ssl vnc"
-QTSQL_IUSE="freetds mysql oci8 odbc postgres +sqlite"
-IUSE+=" ${QTGUI_IUSE} ${QTNETWORK_IUSE} ${QTSQL_IUSE} cups gtk icu systemd +udev wayland"
-# QtPrintSupport = QtGui + QtWidgets enabled.
-# ibus = xkbcommon + dbus, and xkbcommon needs either libinput or X
-REQUIRED_USE+="
- $(printf '%s? ( gui ) ' ${QTGUI_IUSE//+/})
- $(printf '%s? ( network ) ' ${QTNETWORK_IUSE//+/})
- $(printf '%s? ( sql ) ' ${QTSQL_IUSE//+/})
- accessibility? ( dbus X )
- cups? ( gui widgets )
- eglfs? ( egl )
- gtk? ( widgets )
- gui? ( || ( eglfs X ) || ( libinput X ) )
- libinput? ( udev )
- sql? ( || ( freetds mysql oci8 odbc postgres sqlite ) )
- vnc? ( gui )
- X? ( gles2-only? ( egl ) )
-"
-
-# TODO:
-# qtimageformats: mng not done yet, qtimageformats.git upstream commit 9443239c
-# qtnetwork: connman, networkmanager
-DEPEND="
- app-crypt/libb2
- dev-libs/double-conversion:=
- dev-libs/glib:2
- dev-libs/libpcre2:=[pcre16,unicode]
- dev-util/gtk-update-icon-cache
- media-libs/fontconfig
- >=media-libs/freetype-2.6.1:2
- >=media-libs/harfbuzz-1.6.0:=
- media-libs/tiff:=
- >=sys-apps/dbus-1.4.20
- sys-libs/zlib:=
- brotli? ( app-arch/brotli:= )
- evdev? ( sys-libs/mtdev )
- freetds? ( dev-db/freetds )
- gles2-only? ( media-libs/libglvnd )
- !gles2-only? ( media-libs/libglvnd[X] )
- gssapi? ( virtual/krb5 )
- gtk? (
- x11-libs/gtk+:3
- x11-libs/libX11
- x11-libs/pango
- )
- gui? ( media-libs/libpng:= )
- icu? ( dev-libs/icu:= )
- !icu? ( virtual/libiconv )
- jpeg? ( media-libs/libjpeg-turbo:= )
- libinput? (
- dev-libs/libinput:=
- >=x11-libs/libxkbcommon-0.5.0
- )
- libproxy? ( net-libs/libproxy )
- mysql? ( dev-db/mysql-connector-c:= )
- oci8? ( dev-db/oracle-instantclient:=[sdk] )
- odbc? ( dev-db/unixODBC )
- postgres? ( dev-db/postgresql:* )
- sctp? ( kernel_linux? ( net-misc/lksctp-tools ) )
- sqlite? ( dev-db/sqlite:3 )
- ssl? ( dev-libs/openssl:= )
- systemd? ( sys-apps/systemd:= )
- tslib? ( >=x11-libs/tslib-1.21 )
- udev? ( virtual/libudev:= )
- vulkan? ( dev-util/vulkan-headers )
- X? (
- x11-libs/libdrm
- x11-libs/libICE
- x11-libs/libSM
- x11-libs/libX11
- >=x11-libs/libxcb-1.12:=
- >=x11-libs/libxkbcommon-0.5.0[X]
- x11-libs/xcb-util-cursor
- x11-libs/xcb-util-image
- x11-libs/xcb-util-keysyms
- x11-libs/xcb-util-renderutil
- x11-libs/xcb-util-wm
- )
- zstd? ( app-arch/zstd:= )
-"
-RDEPEND="${DEPEND}"
-PDEPEND="wayland? ( =dev-qt/qtwayland-${PV}* )"
-
-PATCHES=(
- "${FILESDIR}/${PN}-6.5.0-libressl.patch"
- "${FILESDIR}/${PN}-6.5.2-CVE-2023-38197.patch"
-)
-
-src_configure() {
- local mycmakeargs=(
- -DINSTALL_ARCHDATADIR=${QT6_ARCHDATADIR}
- -DINSTALL_BINDIR=${QT6_BINDIR}
- -DINSTALL_DATADIR=${QT6_DATADIR}
- -DINSTALL_DOCDIR=${QT6_DOCDIR}
- -DINSTALL_EXAMPLESDIR=${QT6_EXAMPLESDIR}
- -DINSTALL_INCLUDEDIR=${QT6_HEADERDIR}
- -DINSTALL_LIBDIR=${QT6_LIBDIR}
- -DINSTALL_LIBEXECDIR=${QT6_LIBEXECDIR}
- -DINSTALL_MKSPECSDIR=${QT6_ARCHDATADIR}/mkspecs
- -DINSTALL_PLUGINSDIR=${QT6_PLUGINDIR}
- -DINSTALL_QMLDIR=${QT6_QMLDIR}
- -DINSTALL_SYSCONFDIR=${QT6_SYSCONFDIR}
- -DINSTALL_TRANSLATIONSDIR=${QT6_TRANSLATIONDIR}
- -DQT_FEATURE_androiddeployqt=OFF
- $(qt_feature concurrent)
- $(qt_feature dbus)
- $(qt_feature gui)
- $(qt_feature gui testlib)
- $(qt_feature icu)
- $(qt_feature network)
- $(qt_feature sql)
- $(qt_feature systemd journald)
- $(qt_feature udev libudev)
- $(qt_feature xml)
- $(qt_feature zstd)
- )
- use gui && mycmakeargs+=(
- $(qt_feature accessibility accessibility_atspi_bridge)
- $(qt_feature egl)
- $(qt_feature egl xcb_egl_plugin)
- $(qt_feature eglfs eglfs_egldevice)
- $(qt_feature eglfs eglfs_gbm)
- $(qt_feature evdev)
- $(qt_feature evdev mtdev)
- -DQT_FEATURE_gif=ON
- $(qt_feature jpeg)
- $(qt_feature opengl)
- $(qt_feature gles2-only opengles2)
- $(qt_feature libinput)
- $(qt_feature tslib)
- $(qt_feature tuio tuiotouch)
- $(qt_feature vulkan)
- $(qt_feature widgets)
- $(qt_feature X xcb)
- $(qt_feature X xcb_xlib)
- )
- use widgets && mycmakeargs+=(
- $(qt_feature cups)
- $(qt_feature gtk gtk3)
- )
- if use libinput || use X; then
- mycmakeargs+=( -DQT_FEATURE_xkbcommon=ON )
- fi
- use network && mycmakeargs+=(
- $(qt_feature brotli)
- $(qt_feature gssapi)
- $(qt_feature libproxy)
- $(qt_feature sctp)
- $(qt_feature vnc)
-
- # Required for LibreSSL
- -DQT_FEATURE_dtls=OFF
- $(qt_feature ssl openssl_linked)
- )
- use sql && mycmakeargs+=(
- $(qt_feature freetds sql_tds)
- $(qt_feature mysql sql_mysql)
- $(qt_feature oci8 sql_oci)
- $(qt_feature odbc sql_odbc)
- $(qt_feature postgres sql_psql)
- $(qt_feature sqlite sql_sqlite)
- $(qt_feature sqlite system_sqlite)
- )
-
- qt6-build_src_configure
-}
-
-src_install() {
- qt6-build_src_install
-
- # https://bugs.gentoo.org/863395
- qt6_symlink_binary_to_path qmake 6
-}
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gentoo-commits] repo/proj/libressl:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2023-09-28 16:55 orbea
0 siblings, 0 replies; 15+ messages in thread
From: orbea @ 2023-09-28 16:55 UTC (permalink / raw
To: gentoo-commits
commit: 8386075470cbc50e34e85629f57614aefc77fc4b
Author: Saki Xi <space_raccoon <AT> riseup <DOT> net>
AuthorDate: Thu Sep 28 16:16:28 2023 +0000
Commit: orbea <orbea <AT> riseup <DOT> net>
CommitDate: Thu Sep 28 16:54:31 2023 +0000
URL: https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=83860754
dev-qt/qtbase: Update upstream sync ::gentoo
Signed-off-by: Saki Xi <space_raccoon <AT> riseup.net>
Closes: https://github.com/gentoo/libressl/pull/540
Signed-off-by: orbea <orbea <AT> riseup.net>
dev-qt/qtbase/Manifest | 1 +
.../qtbase-6.5.2-hppa-forkfd-grow-stack.patch | 28 ++
dev-qt/qtbase/files/qtbase-6.5.2-no-glx.patch | 29 ++
dev-qt/qtbase/qtbase-6.5.3.ebuild | 351 +++++++++++++++++++++
4 files changed, 409 insertions(+)
diff --git a/dev-qt/qtbase/Manifest b/dev-qt/qtbase/Manifest
index 9476478..4622d92 100644
--- a/dev-qt/qtbase/Manifest
+++ b/dev-qt/qtbase/Manifest
@@ -1 +1,2 @@
DIST qtbase-everywhere-src-6.5.2.tar.xz 48410716 BLAKE2B 578c69ede6f45a8b21cba0a24674d5d8801722503d13ab9578b06b2446ce15e6a84bcdbd0c5d2c9aa868ec70862f0845406c959ed79b695f82bb398ecf299c63 SHA512 8d97029aae5b73a3e03624c9a8495dbf2fe54a4f5e992071c06f3d93935e64c80f2121b33eeb60a92d96ceb288cb25d74906a5bf47b45bb018d859d4a2d13f20
+DIST qtbase-everywhere-src-6.5.3.tar.xz 47142456 BLAKE2B 5b4c774b7199563dc7f2aebf9b2b531d851ee49bc038212f4970eeb43a17c364710432708f82a518eee6692ab123d78b642c234d9548d5b553f689a43aa05ee6 SHA512 31c6c01d466f1e01f18d6dcee593360c08ee83ad0a6be495a8eba023faad628cf07ce7285426fabfd247db306319e9a64da329682c99a712a282e32f7493cdb9
diff --git a/dev-qt/qtbase/files/qtbase-6.5.2-hppa-forkfd-grow-stack.patch b/dev-qt/qtbase/files/qtbase-6.5.2-hppa-forkfd-grow-stack.patch
new file mode 100644
index 0000000..ccada9f
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.5.2-hppa-forkfd-grow-stack.patch
@@ -0,0 +1,28 @@
+Patch taken from Debian[1], largely broken on HPPA without and several
+tests give segmentation faults[2].
+
+Needs upstreaming if someone familiar with HPPA wants to give this
+attention. Note forkfd is essentially maintained in qtbase's repo[3]
+rather than truly third party.
+
+[1] https://bugs.debian.org/1042018
+[2] https://bugs.gentoo.org/914371
+[3] https://code.qt.io/cgit/qt/qtbase.git/tree/src/3rdparty/forkfd
+
+Description: Change how stack grows on HPPA.
+ On HPPA stack grows upwards. This patch introduces this change for
+ this 3rd party code.
+Author: John David Anglin <dave.anglin@bell.net>
+--- a/src/3rdparty/forkfd/forkfd_linux.c
++++ b/src/3rdparty/forkfd/forkfd_linux.c
+@@ -170,5 +170,10 @@
+ *system = 1;
+
++#if defined(__hppa__)
++ /* Stack grows up */
++ pid = clone(childFn, childStack, cloneflags, token, &pidfd, NULL, NULL);
++#else
+ pid = clone(childFn, childStack + sizeof(childStack), cloneflags, token, &pidfd, NULL, NULL);
++#endif
+ if (pid < 0)
+ return pid;
diff --git a/dev-qt/qtbase/files/qtbase-6.5.2-no-glx.patch b/dev-qt/qtbase/files/qtbase-6.5.2-no-glx.patch
new file mode 100644
index 0000000..f8263d1
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.5.2-no-glx.patch
@@ -0,0 +1,29 @@
+Fixes build with libglvnd[-X].
+
+https://github.com/qt/qtbase/commit/929d9a4ca5c9eb0a590479182471d0bbc81589aa
+From: Yaroslav Isakov <yaroslav.isakov@gmail.com>
+Date: Sat, 8 Jul 2023 22:09:40 +0200
+Subject: [PATCH] Allow OpenGL to be found on X11-less Linux systems (using
+ libOpenGL)
+
+Cmake supports finding OpenGL, even if there is no GLX (for glvnd) or
+old-style libGL. This change keeps old behavior, but in case, if
+X11-related OpenGL libraries cannot be found on Linux, it adds logic
+to check for (and link with) libOpenGL, if it is present.
+--- a/cmake/FindWrapOpenGL.cmake
++++ b/cmake/FindWrapOpenGL.cmake
+@@ -47,4 +47,14 @@
+ target_link_libraries(WrapOpenGL::WrapOpenGL INTERFACE OpenGL::GL)
+ endif()
++elseif(UNIX AND NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "Integrity")
++ # Requesting only the OpenGL component ensures CMake does not mark the package as
++ # not found if neither GLX nor libGL are available. This allows finding OpenGL
++ # on an X11-less Linux system.
++ find_package(OpenGL ${WrapOpenGL_FIND_VERSION} COMPONENTS OpenGL)
++ if (OpenGL_FOUND)
++ set(WrapOpenGL_FOUND ON)
++ add_library(WrapOpenGL::WrapOpenGL INTERFACE IMPORTED)
++ target_link_libraries(WrapOpenGL::WrapOpenGL INTERFACE OpenGL::OpenGL)
++ endif()
+ endif()
+
diff --git a/dev-qt/qtbase/qtbase-6.5.3.ebuild b/dev-qt/qtbase/qtbase-6.5.3.ebuild
new file mode 100644
index 0000000..df8f999
--- /dev/null
+++ b/dev-qt/qtbase/qtbase-6.5.3.ebuild
@@ -0,0 +1,351 @@
+# Copyright 2021-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic qt6-build toolchain-funcs
+
+DESCRIPTION="Cross-platform application development framework"
+
+if [[ ${QT6_BUILD_TYPE} == release ]]; then
+ KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~x86"
+fi
+
+declare -A QT6_IUSE=(
+ [global]="+ssl +udev zstd"
+ [core]="icu"
+ [modules]="+concurrent +dbus +gui +network +sql +xml"
+
+ [gui]="
+ +X accessibility eglfs evdev gles2-only +libinput
+ opengl tslib vulkan +widgets
+ "
+ [network]="brotli gssapi libproxy sctp"
+ [sql]="mysql oci8 odbc postgres +sqlite"
+ [widgets]="cups gtk"
+
+ [optfeature]="nls wayland" #810802,864509
+)
+IUSE="${QT6_IUSE[*]}"
+REQUIRED_USE="
+ $(
+ printf '%s? ( gui ) ' ${QT6_IUSE[gui]//+/}
+ printf '%s? ( network ) ' ${QT6_IUSE[network]//+/}
+ printf '%s? ( sql ) ' ${QT6_IUSE[sql]//+/}
+ printf '%s? ( gui widgets ) ' ${QT6_IUSE[widgets]//+/}
+ )
+ accessibility? ( X dbus )
+ eglfs? ( opengl )
+ gles2-only? ( opengl )
+ gui? ( || ( X eglfs wayland ) )
+ libinput? ( udev )
+ sql? ( || ( ${QT6_IUSE[sql]//+/} ) )
+ test? ( icu sql? ( sqlite ) )
+"
+
+# groups:
+# - global (configure.cmake)
+# - qtcore (src/corelib/configure.cmake)
+# - qtgui (src/gui/configure.cmake)
+# - qtnetwork (src/network/configure.cmake)
+# - qtprintsupport (src/printsupport/configure.cmake) [gui+widgets]
+# - qtsql (src/plugins/sqldrivers/configure.cmake)
+RDEPEND="
+ sys-libs/zlib:=
+ ssl? ( dev-libs/openssl:= )
+ udev? ( virtual/libudev:= )
+ zstd? ( app-arch/zstd:= )
+
+ app-crypt/libb2
+ dev-libs/double-conversion:=
+ dev-libs/glib:2
+ dev-libs/libpcre2:=[pcre16,unicode(+)]
+ icu? ( dev-libs/icu:= )
+
+ dbus? ( sys-apps/dbus )
+ gui? (
+ media-libs/fontconfig
+ media-libs/freetype:2
+ media-libs/harfbuzz:=
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ x11-libs/libdrm
+ x11-libs/libxkbcommon[X?]
+ X? (
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libxcb:=
+ x11-libs/xcb-util-cursor
+ x11-libs/xcb-util-image
+ x11-libs/xcb-util-keysyms
+ x11-libs/xcb-util-renderutil
+ x11-libs/xcb-util-wm
+ )
+ accessibility? ( app-accessibility/at-spi2-core:2 )
+ eglfs? ( media-libs/mesa[gbm(+)] )
+ evdev? ( sys-libs/mtdev )
+ libinput? ( dev-libs/libinput:= )
+ opengl? (
+ gles2-only? ( media-libs/libglvnd )
+ !gles2-only? ( media-libs/libglvnd[X?] )
+ )
+ tslib? ( x11-libs/tslib )
+ widgets? (
+ cups? ( net-print/cups )
+ gtk? (
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3
+ x11-libs/pango
+ )
+ )
+ )
+ network? (
+ brotli? ( app-arch/brotli:= )
+ gssapi? ( virtual/krb5 )
+ libproxy? ( net-libs/libproxy )
+ )
+ sql? (
+ mysql? ( dev-db/mysql-connector-c:= )
+ oci8? ( dev-db/oracle-instantclient:=[sdk] )
+ odbc? ( dev-db/unixODBC )
+ postgres? ( dev-db/postgresql:* )
+ sqlite? ( dev-db/sqlite:3 )
+ )
+"
+DEPEND="
+ ${RDEPEND}
+ X? ( x11-base/xorg-proto )
+ gui? (
+ vulkan? ( dev-util/vulkan-headers )
+ )
+ network? (
+ sctp? ( net-misc/lksctp-tools )
+ )
+ test? (
+ elibc_musl? ( sys-libs/timezone-data )
+ )
+"
+BDEPEND="zstd? ( app-arch/libarchive[zstd] )" #910392
+PDEPEND="
+ nls? ( ~dev-qt/qttranslations-${PV}:6 )
+ wayland? ( ~dev-qt/qtwayland-${PV}:6 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-6.5.0-libressl.patch
+ "${FILESDIR}"/${PN}-6.5.2-hppa-forkfd-grow-stack.patch
+ "${FILESDIR}"/${PN}-6.5.2-no-glx.patch
+ "${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
+)
+
+src_prepare() {
+ qt6-build_src_prepare
+
+ if use test; then
+ # test itself has -Werror=strict-aliasing issues, drop for simplicity
+ sed -e '/add_subdirectory(qsharedpointer)/d' \
+ -i tests/auto/corelib/tools/CMakeLists.txt || die
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_WITH_PCH=OFF
+
+ -DINSTALL_ARCHDATADIR="${QT6_ARCHDATADIR}"
+ -DINSTALL_BINDIR="${QT6_BINDIR}"
+ -DINSTALL_DATADIR="${QT6_DATADIR}"
+ -DINSTALL_DOCDIR="${QT6_DOCDIR}"
+ -DINSTALL_EXAMPLESDIR="${QT6_EXAMPLESDIR}"
+ -DINSTALL_INCLUDEDIR="${QT6_HEADERDIR}"
+ -DINSTALL_LIBDIR="${QT6_LIBDIR}"
+ -DINSTALL_LIBEXECDIR="${QT6_LIBEXECDIR}"
+ -DINSTALL_MKSPECSDIR="${QT6_MKSPECSDIR}"
+ -DINSTALL_PLUGINSDIR="${QT6_PLUGINDIR}"
+ -DINSTALL_QMLDIR="${QT6_QMLDIR}"
+ -DINSTALL_SYSCONFDIR="${QT6_SYSCONFDIR}"
+ -DINSTALL_TRANSLATIONSDIR="${QT6_TRANSLATIONDIR}"
+
+ $(qt_feature ssl openssl)
+ $(qt_feature ssl openssl_linked)
+ $(qt_feature udev libudev)
+ $(qt_feature zstd)
+
+ # qtcore
+ $(qt_feature icu)
+
+ # tools
+ -DQT_FEATURE_androiddeployqt=OFF
+
+ # modules
+ $(qt_feature concurrent)
+ $(qt_feature dbus)
+ $(qt_feature gui)
+ $(qt_feature network)
+ $(qt_feature sql)
+ -DQT_FEATURE_testlib=ON # trivial and often needed to build revdeps
+ $(qt_feature xml)
+ )
+
+ use gui && mycmakeargs+=(
+ $(qt_feature X xcb)
+ $(qt_feature X system_xcb_xinput)
+ $(qt_feature X xkbcommon_x11)
+ $(cmake_use_find_package X X11) # needed for truly no automagic
+ $(qt_feature accessibility accessibility_atspi_bridge)
+ $(qt_feature eglfs)
+ $(qt_feature evdev)
+ $(qt_feature evdev mtdev)
+ $(qt_feature libinput)
+ $(qt_feature tslib)
+ $(qt_feature vulkan)
+ $(qt_feature widgets)
+ -DINPUT_opengl=$(usex opengl $(usex gles2-only es2 desktop) no)
+ -DQT_FEATURE_system_textmarkdownreader=OFF # TODO?: package md4c
+ ) && use widgets && mycmakeargs+=(
+ $(qt_feature cups) # qtprintsupport is enabled w/ gui+widgets
+ $(qt_feature gtk gtk3)
+ )
+
+ use network && mycmakeargs+=(
+ $(qt_feature brotli)
+ $(qt_feature gssapi)
+ $(qt_feature libproxy)
+ $(qt_feature sctp)
+ $(usev test -DQT_SKIP_DOCKER_COMPOSE=ON)
+
+ # Required for LibreSSL
+ -DQT_FEATURE_dtls=OFF
+ )
+
+ use sql && mycmakeargs+=(
+ -DQT_FEATURE_sql_db2=OFF # unpackaged
+ -DQT_FEATURE_sql_ibase=OFF # unpackaged
+ $(qt_feature mysql sql_mysql)
+ $(qt_feature oci8 sql_oci)
+ $(usev oci8 -DOracle_ROOT="${ESYSROOT}"/usr/$(get_libdir)/oracle/client)
+ $(qt_feature odbc sql_odbc)
+ $(qt_feature postgres sql_psql)
+ $(qt_feature sqlite sql_sqlite)
+ $(qt_feature sqlite system_sqlite)
+ -DQT_FEATURE_sql_tds=OFF # currently a no-op in CMakeLists.txt
+ )
+
+ if use amd64 || use x86; then
+ # see bug #913400 for explanations
+ local cpufeats=(
+ # list of checked cpu features in configure.cmake
+ avx avx2 avx512{bw,cd,dq,er,f,ifma,pf,vbmi,vbmi2,vl}
+ f16c rdrnd rdseed sse2 sse3 sse4_1 sse4_2 ssse3 vaes
+ )
+ # handle odd ones out not matching -m* and macros (keep same order)
+ local cpuflags=( "${cpufeats[@]}" aes sha )
+ local cpufeats+=( aesni shani )
+
+ local -a intrins
+ IFS=' ' read -ra intrins < <(
+ : "$(test-flags-CXX "${cpuflags[@]/#/-m}")"
+ $(tc-getCXX) -E -P ${_} ${CXXFLAGS} ${CPPFLAGS} - <<-EOF | tail -n 1
+ #if defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__))
+ #include <x86intrin.h>
+ #endif
+ $(printf '__%s__ ' "${cpuflags[@]^^}")
+ EOF
+ assert
+ )
+
+ # do nothing and leave to qtbase if no macros expanded (test failed?)
+ if [[ \ ${intrins[*]} == *\ [^_\ ]* ]]; then
+ local -i i
+ for ((i=0; i<${#cpufeats[@]}; i++)); do
+ [[ ${intrins[i]} == __* ]] &&
+ mycmakeargs+=( -DQT_FEATURE_${cpufeats[i]}=OFF )
+ done
+ mycmakeargs+=( -DTEST_x86intrin=ON )
+ fi
+ fi
+
+ qt6-build_src_configure
+}
+
+src_test() {
+ local -x TZ=UTC
+ local -x LC_TIME=C
+
+ local CMAKE_SKIP_TESTS=(
+ # broken with out-of-source + if qtbase is not already installed
+ tst_moc
+ tst_qmake
+ # needs x11/opengl, we *could* run these but tend to be flaky
+ # when opengl rendering is involved (even if software-only)
+ tst_qopengl{,config,widget,window}
+ tst_qgraphicsview
+ tst_qx11info
+ # fails with network sandbox
+ tst_qdnslookup
+ # typical to lack SCTP support on non-generic kernels
+ tst_qsctpsocket
+ # these can be flaky depending on the environment/toolchain
+ tst_qlogging # backtrace log test can easily vary
+ tst_q{,raw}font # affected by available fonts / settings (bug #914737)
+ tst_qstorageinfo # checks mounted filesystems
+ # flaky due to using different test framework and fails with USE=-gui
+ tst_selftests
+ # known failing when using clang+glibc+stdc++, needs looking into
+ tst_qthread
+ # partially failing on x86 chroots and seemingly(?) harmless (dev-qt
+ # revdeps tests pass), skip globally to avoid keywording flakiness
+ tst_json
+ tst_qcolorspace
+ tst_qdoublevalidator
+ tst_qglobal
+ tst_qglyphrun
+ tst_qvectornd
+ tst_rcc
+ # similarly, but on armv7 and potentially others (bug #914028)
+ tst_qlineedit
+ tst_qpainter
+ # likewise, known failing at least on BE arches (bug #914033,914371)
+ tst_qimagereader
+ tst_qimagewriter
+ tst_qpluginloader
+ # partially broken on llvm-musl, needs looking into but skip to have
+ # a baseline for regressions (rest of dev-qt still passes with musl)
+ $(usev elibc_musl '
+ tst_qfiledialog2
+ tst_qicoimageformat
+ tst_qimagereader
+ tst_qimage
+ ')
+ # fails due to hppa's NaN handling, needs looking into (bug #914371)
+ $(usev hppa '
+ tst_qcborvalue
+ tst_qnumeric
+ ')
+ # note: for linux, upstream only really runs+maintains tests for amd64
+ # https://doc.qt.io/qt-6/supported-platforms.html
+ )
+
+ qt6-build_src_test
+}
+
+src_install() {
+ qt6-build_src_install
+
+ if use test; then
+ local delete_bins=( # need a better way to handle this
+ clientserver copier crashingServer desktopsettingsaware_helper
+ echo fileWriterProcess modal_helper nospace 'one space'
+ paster qcommandlineparser_test_helper qfileopeneventexternal
+ socketprocess syslocaleapp tst_qhashseed_helper 'two space s'
+ write-read-write
+ )
+ local delete=( # sigh
+ "${D}${QT6_BINDIR}"/test*
+ "${delete_bins[@]/#/${D}${QT6_BINDIR}/}"
+ )
+ # using -f given not tracking which tests may be skipped or not
+ rm -rf -- "${delete[@]}" || die
+ fi
+}
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gentoo-commits] repo/proj/libressl:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2023-12-06 4:58 orbea
0 siblings, 0 replies; 15+ messages in thread
From: orbea @ 2023-12-06 4:58 UTC (permalink / raw
To: gentoo-commits
commit: 16863d6c45c6839a1f4e27edf934a5ac29551f01
Author: orbea <orbea <AT> riseup <DOT> net>
AuthorDate: Wed Dec 6 04:41:15 2023 +0000
Commit: orbea <orbea <AT> riseup <DOT> net>
CommitDate: Wed Dec 6 04:41:15 2023 +0000
URL: https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=16863d6c
dev-qt/qtbase: add 6.6.1-r1
Signed-off-by: orbea <orbea <AT> riseup.net>
dev-qt/qtbase/Manifest | 1 +
.../qtbase-6.6.1-forkfd-childstack-size.patch | 23 ++
dev-qt/qtbase/qtbase-6.6.1-r1.ebuild | 362 +++++++++++++++++++++
3 files changed, 386 insertions(+)
diff --git a/dev-qt/qtbase/Manifest b/dev-qt/qtbase/Manifest
index b6ec5a5..dc81a32 100644
--- a/dev-qt/qtbase/Manifest
+++ b/dev-qt/qtbase/Manifest
@@ -1,3 +1,4 @@
DIST qtbase-everywhere-src-6.5.2.tar.xz 48410716 BLAKE2B 578c69ede6f45a8b21cba0a24674d5d8801722503d13ab9578b06b2446ce15e6a84bcdbd0c5d2c9aa868ec70862f0845406c959ed79b695f82bb398ecf299c63 SHA512 8d97029aae5b73a3e03624c9a8495dbf2fe54a4f5e992071c06f3d93935e64c80f2121b33eeb60a92d96ceb288cb25d74906a5bf47b45bb018d859d4a2d13f20
DIST qtbase-everywhere-src-6.5.3.tar.xz 47142456 BLAKE2B 5b4c774b7199563dc7f2aebf9b2b531d851ee49bc038212f4970eeb43a17c364710432708f82a518eee6692ab123d78b642c234d9548d5b553f689a43aa05ee6 SHA512 31c6c01d466f1e01f18d6dcee593360c08ee83ad0a6be495a8eba023faad628cf07ce7285426fabfd247db306319e9a64da329682c99a712a282e32f7493cdb9
DIST qtbase-everywhere-src-6.6.0.tar.xz 48350308 BLAKE2B 719e265dfafb4fd95f972a317acb95e2d83f8d62175c28ab97837c635435bdcd79bdca113362dea2f04dab799d4749e23056ddb9583908ee20ab23cedeca19b7 SHA512 4e85acefeddc0a3cd6ba615b4768f435c4e237a605172153a1777a10285dab83d9cf220c18ce6d723d051b8b432f3e92be94925b54c2eb972c2c1d9ace849e17
+DIST qtbase-everywhere-src-6.6.1.tar.xz 48370760 BLAKE2B 2dd551d15eef30c7d9a5f4c406143d6f8908d7ebade9daf9fbd3d82a25765425956f2cb8689c50f87f6477de2150eee7b820ef25bb4355c51e7e7fad3ef73005 SHA512 93e77b9b077a3acd5607b643db282fdd7ed0bdfa07df74c3f0d2285afeb1672a6fa229a7e7a6c8a462701305fc22ffef20c212d906484e50fb5cdb706a7b72e1
diff --git a/dev-qt/qtbase/files/qtbase-6.6.1-forkfd-childstack-size.patch b/dev-qt/qtbase/files/qtbase-6.6.1-forkfd-childstack-size.patch
new file mode 100644
index 0000000..6b0ff17
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.6.1-forkfd-childstack-size.patch
@@ -0,0 +1,23 @@
+Avoid crash that happens for some users in qsb, qmake, and
+potentially other Qt tools when ran under sandbox leading
+to build failures for qtdeclarative and other packages.
+
+Former fix involved replacing 4096 by SIGSTKSZ but
+bug #918664 shown that this may be insufficient so this
+tries 32k instead.
+
+https://bugs.gentoo.org/908809
+https://bugs.gentoo.org/908816
+https://bugs.gentoo.org/913493
+https://bugs.gentoo.org/915695
+https://bugs.gentoo.org/918664
+https://codereview.qt-project.org/c/qt/qtbase/+/513140
+--- a/src/3rdparty/forkfd/forkfd_linux.c
++++ b/src/3rdparty/forkfd/forkfd_linux.c
+@@ -158,5 +158,5 @@
+ int system_vforkfd(int flags, pid_t *ppid, int (*childFn)(void *), void *token, int *system)
+ {
+- __attribute__((aligned(64))) char childStack[SIGSTKSZ];
++ __attribute__((aligned(64))) char childStack[32768];
+ pid_t pid;
+ int pidfd;
diff --git a/dev-qt/qtbase/qtbase-6.6.1-r1.ebuild b/dev-qt/qtbase/qtbase-6.6.1-r1.ebuild
new file mode 100644
index 0000000..678d382
--- /dev/null
+++ b/dev-qt/qtbase/qtbase-6.6.1-r1.ebuild
@@ -0,0 +1,362 @@
+# Copyright 2021-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic qt6-build toolchain-funcs
+
+DESCRIPTION="Cross-platform application development framework"
+
+if [[ ${QT6_BUILD_TYPE} == release ]]; then
+ KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+declare -A QT6_IUSE=(
+ [global]="+ssl +udev zstd"
+ [core]="icu"
+ [modules]="+concurrent +dbus +gui +network +sql +xml"
+
+ [gui]="
+ +X accessibility eglfs evdev gles2-only +libinput
+ opengl tslib vulkan +widgets
+ "
+ [network]="brotli gssapi libproxy sctp"
+ [sql]="mysql oci8 odbc postgres +sqlite"
+ [widgets]="cups gtk"
+
+ [optfeature]="nls wayland" #810802,864509
+)
+IUSE="${QT6_IUSE[*]}"
+REQUIRED_USE="
+ $(
+ printf '%s? ( gui ) ' ${QT6_IUSE[gui]//+/}
+ printf '%s? ( network ) ' ${QT6_IUSE[network]//+/}
+ printf '%s? ( sql ) ' ${QT6_IUSE[sql]//+/}
+ printf '%s? ( gui widgets ) ' ${QT6_IUSE[widgets]//+/}
+ )
+ accessibility? ( dbus )
+ eglfs? ( opengl )
+ gles2-only? ( opengl )
+ gui? ( || ( X eglfs wayland ) )
+ libinput? ( udev )
+ sql? ( || ( ${QT6_IUSE[sql]//+/} ) )
+ test? ( icu sql? ( sqlite ) )
+"
+
+# groups:
+# - global (configure.cmake)
+# - qtcore (src/corelib/configure.cmake)
+# - qtgui (src/gui/configure.cmake)
+# - qtnetwork (src/network/configure.cmake)
+# - qtprintsupport (src/printsupport/configure.cmake) [gui+widgets]
+# - qtsql (src/plugins/sqldrivers/configure.cmake)
+RDEPEND="
+ sys-libs/zlib:=
+ ssl? ( dev-libs/openssl:= )
+ udev? ( virtual/libudev:= )
+ zstd? ( app-arch/zstd:= )
+
+ app-crypt/libb2
+ dev-libs/double-conversion:=
+ dev-libs/glib:2
+ dev-libs/libpcre2:=[pcre16,unicode(+)]
+ icu? ( dev-libs/icu:= )
+
+ dbus? ( sys-apps/dbus )
+ gui? (
+ media-libs/fontconfig
+ media-libs/freetype:2
+ media-libs/harfbuzz:=
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ x11-libs/libdrm
+ x11-libs/libxkbcommon[X?]
+ X? (
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libxcb:=
+ x11-libs/xcb-util-cursor
+ x11-libs/xcb-util-image
+ x11-libs/xcb-util-keysyms
+ x11-libs/xcb-util-renderutil
+ x11-libs/xcb-util-wm
+ )
+ accessibility? ( app-accessibility/at-spi2-core:2 )
+ eglfs? ( media-libs/mesa[gbm(+)] )
+ evdev? ( sys-libs/mtdev )
+ libinput? ( dev-libs/libinput:= )
+ opengl? (
+ gles2-only? ( media-libs/libglvnd )
+ !gles2-only? ( media-libs/libglvnd[X?] )
+ )
+ tslib? ( x11-libs/tslib )
+ widgets? (
+ cups? ( net-print/cups )
+ gtk? (
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3
+ x11-libs/pango
+ )
+ )
+ )
+ network? (
+ brotli? ( app-arch/brotli:= )
+ gssapi? ( virtual/krb5 )
+ libproxy? ( net-libs/libproxy )
+ )
+ sql? (
+ mysql? ( dev-db/mysql-connector-c:= )
+ oci8? ( dev-db/oracle-instantclient:=[sdk] )
+ odbc? ( dev-db/unixODBC )
+ postgres? ( dev-db/postgresql:* )
+ sqlite? ( dev-db/sqlite:3 )
+ )
+"
+DEPEND="
+ ${RDEPEND}
+ X? ( x11-base/xorg-proto )
+ gui? (
+ vulkan? ( dev-util/vulkan-headers )
+ )
+ network? (
+ sctp? ( net-misc/lksctp-tools )
+ )
+ test? (
+ elibc_musl? ( sys-libs/timezone-data )
+ )
+"
+BDEPEND="zstd? ( app-arch/libarchive[zstd] )" #910392
+PDEPEND="
+ nls? ( ~dev-qt/qttranslations-${PV}:6 )
+ wayland? ( ~dev-qt/qtwayland-${PV}:6 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-6.6.0-libressl.patch
+ "${FILESDIR}"/${PN}-6.5.2-hppa-forkfd-grow-stack.patch
+ "${FILESDIR}"/${PN}-6.5.2-no-glx.patch
+ "${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
+ "${FILESDIR}"/${PN}-6.6.1-forkfd-childstack-size.patch
+)
+
+src_prepare() {
+ qt6-build_src_prepare
+
+ if use test; then
+ # test itself has -Werror=strict-aliasing issues, drop for simplicity
+ sed -e '/add_subdirectory(qsharedpointer)/d' \
+ -i tests/auto/corelib/tools/CMakeLists.txt || die
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_WITH_PCH=OFF
+
+ -DINSTALL_ARCHDATADIR="${QT6_ARCHDATADIR}"
+ -DINSTALL_BINDIR="${QT6_BINDIR}"
+ -DINSTALL_DATADIR="${QT6_DATADIR}"
+ -DINSTALL_DOCDIR="${QT6_DOCDIR}"
+ -DINSTALL_EXAMPLESDIR="${QT6_EXAMPLESDIR}"
+ -DINSTALL_INCLUDEDIR="${QT6_HEADERDIR}"
+ -DINSTALL_LIBDIR="${QT6_LIBDIR}"
+ -DINSTALL_LIBEXECDIR="${QT6_LIBEXECDIR}"
+ -DINSTALL_MKSPECSDIR="${QT6_MKSPECSDIR}"
+ -DINSTALL_PLUGINSDIR="${QT6_PLUGINDIR}"
+ -DINSTALL_QMLDIR="${QT6_QMLDIR}"
+ -DINSTALL_SYSCONFDIR="${QT6_SYSCONFDIR}"
+ -DINSTALL_TRANSLATIONSDIR="${QT6_TRANSLATIONDIR}"
+
+ $(qt_feature ssl openssl)
+ $(qt_feature ssl openssl_linked)
+ $(qt_feature udev libudev)
+ $(qt_feature zstd)
+
+ # qtcore
+ $(qt_feature icu)
+
+ # tools
+ -DQT_FEATURE_androiddeployqt=OFF
+
+ # modules
+ $(qt_feature concurrent)
+ $(qt_feature dbus)
+ $(qt_feature gui)
+ $(qt_feature network)
+ $(qt_feature sql)
+ -DQT_FEATURE_testlib=ON # trivial and often needed to build revdeps
+ $(qt_feature xml)
+ )
+
+ use gui && mycmakeargs+=(
+ $(qt_feature X xcb)
+ $(qt_feature X system_xcb_xinput)
+ $(qt_feature X xkbcommon_x11)
+ $(cmake_use_find_package X X11) # needed for truly no automagic
+ $(qt_feature accessibility accessibility_atspi_bridge)
+ $(qt_feature eglfs)
+ $(qt_feature evdev)
+ $(qt_feature evdev mtdev)
+ $(qt_feature libinput)
+ $(qt_feature tslib)
+ $(qt_feature vulkan)
+ $(qt_feature widgets)
+ -DINPUT_opengl=$(usex opengl $(usex gles2-only es2 desktop) no)
+ -DQT_FEATURE_system_textmarkdownreader=OFF # TODO?: package md4c
+ ) && use widgets && mycmakeargs+=(
+ # note: qtprintsupport is enabled w/ gui+widgets regardless of USE=cups
+ $(qt_feature cups)
+ $(qt_feature gtk gtk3)
+ )
+
+ use network && mycmakeargs+=(
+ $(qt_feature brotli)
+ $(qt_feature gssapi)
+ $(qt_feature libproxy)
+ $(qt_feature sctp)
+ $(usev test -DQT_SKIP_DOCKER_COMPOSE=ON)
+ -DQT_FEATURE_dtls=OFF # Required for LibreSSL
+ )
+
+ use sql && mycmakeargs+=(
+ -DQT_FEATURE_sql_db2=OFF # unpackaged
+ -DQT_FEATURE_sql_ibase=OFF # unpackaged
+ -DQT_FEATURE_sql_mimer=OFF # unpackaged
+ $(qt_feature mysql sql_mysql)
+ $(qt_feature oci8 sql_oci)
+ $(usev oci8 -DOracle_ROOT="${ESYSROOT}"/usr/$(get_libdir)/oracle/client)
+ $(qt_feature odbc sql_odbc)
+ $(qt_feature postgres sql_psql)
+ $(qt_feature sqlite sql_sqlite)
+ $(qt_feature sqlite system_sqlite)
+ )
+
+ if use amd64 || use x86; then
+ # see bug #913400 for explanations
+ local cpufeats=(
+ # list of checked cpu features in configure.cmake
+ avx avx2 avx512{bw,cd,dq,er,f,ifma,pf,vbmi,vbmi2,vl}
+ f16c rdrnd rdseed sse2 sse3 sse4_1 sse4_2 ssse3 vaes
+ )
+ # handle odd ones out not matching -m* and macros (keep same order)
+ local cpuflags=( "${cpufeats[@]}" aes sha )
+ local cpufeats+=( aesni shani )
+
+ local -a intrins
+ IFS=' ' read -ra intrins < <(
+ : "$(test-flags-CXX "${cpuflags[@]/#/-m}")"
+ $(tc-getCXX) -E -P ${_} ${CXXFLAGS} ${CPPFLAGS} - <<-EOF | tail -n 1
+ #if defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__))
+ #include <x86intrin.h>
+ #endif
+ $(printf '__%s__ ' "${cpuflags[@]^^}")
+ EOF
+ assert
+ )
+
+ # do nothing and leave to qtbase if no macros expanded (test failed?)
+ if [[ \ ${intrins[*]} == *\ [^_\ ]* ]]; then
+ local -i i
+ for ((i=0; i<${#cpufeats[@]}; i++)); do
+ [[ ${intrins[i]} == __* ]] &&
+ mycmakeargs+=( -DQT_FEATURE_${cpufeats[i]}=OFF )
+ done
+ mycmakeargs+=( -DTEST_x86intrin=ON )
+ fi
+ fi
+
+ qt6-build_src_configure
+}
+
+src_test() {
+ local -x TZ=UTC
+ local -x LC_TIME=C
+
+ local CMAKE_SKIP_TESTS=(
+ # broken with out-of-source + if qtbase is not already installed
+ tst_moc
+ tst_qmake
+ # needs x11/opengl, we *could* run these but tend to be flaky
+ # when opengl rendering is involved (even if software-only)
+ tst_qopengl{,config,widget,window}
+ tst_qgraphicsview
+ tst_qx11info
+ # fails with network sandbox
+ tst_qdnslookup
+ # fails with sandbox
+ tst_qsharedmemory
+ # typical to lack SCTP support on non-generic kernels
+ tst_qsctpsocket
+ # randomly fails without -j1, and not worth it over this (bug #916181)
+ tst_qfiledialog{,2}
+ # these can be flaky depending on the environment/toolchain
+ tst_qlogging # backtrace log test can easily vary
+ tst_q{,raw}font # affected by available fonts / settings (bug #914737)
+ tst_qprinter # checks system's printers (bug #916216)
+ tst_qstorageinfo # checks mounted filesystems
+ # flaky due to using different test framework and fails with USE=-gui
+ tst_selftests
+ # known failing when using clang+glibc+stdc++, needs looking into
+ tst_qthread
+ # partially failing on x86 chroots and seemingly(?) harmless (dev-qt
+ # revdeps tests pass), skip globally to avoid keywording flakiness
+ tst_json
+ tst_qcolorspace
+ tst_qdoublevalidator
+ tst_qglobal
+ tst_qglyphrun
+ tst_qvectornd
+ tst_rcc
+ # similarly, but on armv7 and potentially others (bug #914028)
+ tst_qlineedit
+ tst_qpainter
+ # likewise, known failing on BE arches (bug #914033,914371,918878)
+ tst_qimagereader
+ tst_qimagewriter
+ tst_qpluginloader
+ tst_quuid
+ # partially broken on llvm-musl, needs looking into but skip to have
+ # a baseline for regressions (rest of dev-qt still passes with musl)
+ $(usev elibc_musl '
+ tst_qicoimageformat
+ tst_qimagereader
+ tst_qimage
+ ')
+ # fails due to hppa's NaN handling, needs looking into (bug #914371)
+ $(usev hppa '
+ tst_qcborvalue
+ tst_qnumeric
+ ')
+ # bug #914033
+ $(usev sparc '
+ tst_qbuffer
+ tst_qprocess
+ tst_qtconcurrentiteratekernel
+ ')
+ # note: for linux, upstream only really runs+maintains tests for amd64
+ # https://doc.qt.io/qt-6/supported-platforms.html
+ )
+
+ qt6-build_src_test
+}
+
+src_install() {
+ qt6-build_src_install
+
+ if use test; then
+ local delete_bins=( # need a better way to handle this
+ clientserver copier crashingServer desktopsettingsaware_helper
+ echo fileWriterProcess modal_helper nospace 'one space'
+ paster qcommandlineparser_test_helper qfileopeneventexternal
+ socketprocess syslocaleapp tst_qhashseed_helper 'two space s'
+ write-read-write
+ )
+ local delete=( # sigh
+ "${D}${QT6_BINDIR}"/test*
+ "${delete_bins[@]/#/${D}${QT6_BINDIR}/}"
+ )
+ # using -f given not tracking which tests may be skipped or not
+ rm -rf -- "${delete[@]}" || die
+ fi
+}
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gentoo-commits] repo/proj/libressl:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2023-12-29 15:34 orbea
0 siblings, 0 replies; 15+ messages in thread
From: orbea @ 2023-12-29 15:34 UTC (permalink / raw
To: gentoo-commits
commit: 6ef9c10dd62b23238000728abf2f4acbe7b77848
Author: orbea <orbea <AT> riseup <DOT> net>
AuthorDate: Fri Dec 29 15:20:34 2023 +0000
Commit: orbea <orbea <AT> riseup <DOT> net>
CommitDate: Fri Dec 29 15:20:34 2023 +0000
URL: https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=6ef9c10d
dev-qt/qtbase: drop 6.5.3-r1, 6.6.0-r1
Signed-off-by: orbea <orbea <AT> riseup.net>
dev-qt/qtbase/Manifest | 2 -
dev-qt/qtbase/files/qtbase-6.5.0-libressl.patch | 449 ---------------------
.../qtbase-6.5.3-forkfd-childstack-size.patch | 27 --
.../qtbase/files/qtbase-6.5.3-xkbcommon160.patch | 18 -
dev-qt/qtbase/qtbase-6.5.3-r1.ebuild | 354 ----------------
dev-qt/qtbase/qtbase-6.6.0-r1.ebuild | 356 ----------------
6 files changed, 1206 deletions(-)
diff --git a/dev-qt/qtbase/Manifest b/dev-qt/qtbase/Manifest
index 71ca1f2..67b563a 100644
--- a/dev-qt/qtbase/Manifest
+++ b/dev-qt/qtbase/Manifest
@@ -1,3 +1 @@
-DIST qtbase-everywhere-src-6.5.3.tar.xz 47142456 BLAKE2B 5b4c774b7199563dc7f2aebf9b2b531d851ee49bc038212f4970eeb43a17c364710432708f82a518eee6692ab123d78b642c234d9548d5b553f689a43aa05ee6 SHA512 31c6c01d466f1e01f18d6dcee593360c08ee83ad0a6be495a8eba023faad628cf07ce7285426fabfd247db306319e9a64da329682c99a712a282e32f7493cdb9
-DIST qtbase-everywhere-src-6.6.0.tar.xz 48350308 BLAKE2B 719e265dfafb4fd95f972a317acb95e2d83f8d62175c28ab97837c635435bdcd79bdca113362dea2f04dab799d4749e23056ddb9583908ee20ab23cedeca19b7 SHA512 4e85acefeddc0a3cd6ba615b4768f435c4e237a605172153a1777a10285dab83d9cf220c18ce6d723d051b8b432f3e92be94925b54c2eb972c2c1d9ace849e17
DIST qtbase-everywhere-src-6.6.1.tar.xz 48370760 BLAKE2B 2dd551d15eef30c7d9a5f4c406143d6f8908d7ebade9daf9fbd3d82a25765425956f2cb8689c50f87f6477de2150eee7b820ef25bb4355c51e7e7fad3ef73005 SHA512 93e77b9b077a3acd5607b643db282fdd7ed0bdfa07df74c3f0d2285afeb1672a6fa229a7e7a6c8a462701305fc22ffef20c212d906484e50fb5cdb706a7b72e1
diff --git a/dev-qt/qtbase/files/qtbase-6.5.0-libressl.patch b/dev-qt/qtbase/files/qtbase-6.5.0-libressl.patch
deleted file mode 100644
index d3d7313..0000000
--- a/dev-qt/qtbase/files/qtbase-6.5.0-libressl.patch
+++ /dev/null
@@ -1,449 +0,0 @@
-Fixes Qt6 build on LibreSSL.
-
-http://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_network_ssl_qsslsocket_openssl_symbols_cpp?rev=1.8
-http://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_plugins_tls_openssl_qopenssl_p_h?rev=1.2
-http://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_plugins_tls_openssl_qsslcontext_openssl_cpp?rev=1.2
-http://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_plugins_tls_openssl_qsslsocket_openssl_symbols_p_h?rev=1.2
-http://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_plugins_tls_openssl_qtls_openssl_cpp?rev=1.2
-http://cvsweb.openbsd.org/ports/x11/qt6/qtbase/patches/patch-src_plugins_tls_openssl_qx509_openssl_cpp?rev=1.3
-
---- a/src/plugins/tls/openssl/qsslsocket_openssl_symbols.cpp
-+++ b/src/plugins/tls/openssl/qsslsocket_openssl_symbols.cpp
-@@ -112,23 +112,37 @@ DEFINEFUNC(const BIO_METHOD *, BIO_s_mem, void, DUMMYA
- DEFINEFUNC2(int, BN_is_word, BIGNUM *a, a, BN_ULONG w, w, return 0, return)
- DEFINEFUNC(int, EVP_CIPHER_CTX_reset, EVP_CIPHER_CTX *c, c, return 0, return)
- DEFINEFUNC(int, EVP_PKEY_up_ref, EVP_PKEY *a, a, return 0, return)
-+#ifdef OPENSSL_NO_DEPRECATED_3_0
- DEFINEFUNC2(EVP_PKEY_CTX *, EVP_PKEY_CTX_new, EVP_PKEY *pkey, pkey, ENGINE *e, e, return nullptr, return)
-+DEFINEFUNC2(EVP_PKEY_CTX *, EVP_PKEY_CTX_new, EVP_PKEY *pkey, pkey, ENGINE *e, e, return nullptr, return)
- DEFINEFUNC(int, EVP_PKEY_param_check, EVP_PKEY_CTX *ctx, ctx, return 0, return)
- DEFINEFUNC(void, EVP_PKEY_CTX_free, EVP_PKEY_CTX *ctx, ctx, return, return)
-+#endif // OPENSSL_NO_DEPRECATED_3_0
-+#ifndef LIBRESSL_VERSION_NUMBER
- DEFINEFUNC(int, OPENSSL_sk_num, OPENSSL_STACK *a, a, return -1, return)
- DEFINEFUNC2(void, OPENSSL_sk_pop_free, OPENSSL_STACK *a, a, void (*b)(void*), b, return, DUMMYARG)
- DEFINEFUNC(OPENSSL_STACK *, OPENSSL_sk_new_null, DUMMYARG, DUMMYARG, return nullptr, return)
- DEFINEFUNC2(void, OPENSSL_sk_push, OPENSSL_STACK *a, a, void *b, b, return, DUMMYARG)
- DEFINEFUNC(void, OPENSSL_sk_free, OPENSSL_STACK *a, a, return, DUMMYARG)
- DEFINEFUNC2(void *, OPENSSL_sk_value, OPENSSL_STACK *a, a, int b, b, return nullptr, return)
-+#else
-+DEFINEFUNC(int, sk_num, STACK *a, a, return -1, return)
-+DEFINEFUNC2(void, sk_pop_free, STACK *a, a, void (*b)(void*), b, return, DUMMYARG)
-+DEFINEFUNC(_STACK *, sk_new_null, DUMMYARG, DUMMYARG, return nullptr, return)
-+DEFINEFUNC2(void, sk_push, _STACK *a, a, void *b, b, return, DUMMYARG)
-+DEFINEFUNC(void, sk_free, _STACK *a, a, return, DUMMYARG)
-+DEFINEFUNC2(void *, sk_value, STACK *a, a, int b, b, return nullptr, return)
-+#endif // LIBRESSL_VERSION_NUMBER
- DEFINEFUNC(int, SSL_session_reused, SSL *a, a, return 0, return)
- DEFINEFUNC2(qssloptions, SSL_CTX_set_options, SSL_CTX *ctx, ctx, qssloptions op, op, return 0, return)
- using info_callback = void (*) (const SSL *ssl, int type, int val);
- DEFINEFUNC2(void, SSL_set_info_callback, SSL *ssl, ssl, info_callback cb, cb, return, return)
- DEFINEFUNC(const char *, SSL_alert_type_string, int value, value, return nullptr, return)
- DEFINEFUNC(const char *, SSL_alert_desc_string_long, int value, value, return nullptr, return)
-+#ifndef LIBRESSL_VERSION_NUMBER
- DEFINEFUNC(int, SSL_CTX_get_security_level, const SSL_CTX *ctx, ctx, return -1, return)
- DEFINEFUNC2(void, SSL_CTX_set_security_level, SSL_CTX *ctx, ctx, int level, level, return, return)
-+#endif // LIBRESSL_VERSION_NUMBER
- #ifdef TLS1_3_VERSION
- DEFINEFUNC2(int, SSL_CTX_set_ciphersuites, SSL_CTX *ctx, ctx, const char *str, str, return 0, return)
- DEFINEFUNC2(void, SSL_set_psk_use_session_callback, SSL *ssl, ssl, q_SSL_psk_use_session_cb_func_t callback, callback, return, DUMMYARG)
-@@ -154,7 +168,11 @@ DEFINEFUNC2(void, X509_STORE_set_verify_cb, X509_STORE
- DEFINEFUNC3(int, X509_STORE_set_ex_data, X509_STORE *a, a, int idx, idx, void *data, data, return 0, return)
- DEFINEFUNC2(void *, X509_STORE_get_ex_data, X509_STORE *r, r, int idx, idx, return nullptr, return)
- DEFINEFUNC(STACK_OF(X509) *, X509_STORE_CTX_get0_chain, X509_STORE_CTX *a, a, return nullptr, return)
--DEFINEFUNC3(void, CRYPTO_free, void *str, str, const char *file, file, int line, line, return, DUMMYARG)
-+#ifndef LIBRESSL_VERSION_NUMBER
-+ DEFINEFUNC3(void, CRYPTO_free, void *str, str, const char *file, file, int line, line, return, DUMMYARG)
-+#else
-+DEFINEFUNC(void, CRYPTO_free, void *a, a, return, DUMMYARG)
-+#endif
- DEFINEFUNC(long, OpenSSL_version_num, void, DUMMYARG, return 0, return)
- DEFINEFUNC(const char *, OpenSSL_version, int a, a, return nullptr, return)
- DEFINEFUNC(unsigned long, SSL_SESSION_get_ticket_lifetime_hint, const SSL_SESSION *session, session, return 0, return)
-@@ -193,7 +211,9 @@ DEFINEFUNC5(int, OCSP_id_get0_info, ASN1_OCTET_STRING
- ASN1_OCTET_STRING **piKeyHash, piKeyHash, ASN1_INTEGER **pserial, pserial, OCSP_CERTID *cid, cid,
- return 0, return)
- DEFINEFUNC2(OCSP_RESPONSE *, OCSP_response_create, int status, status, OCSP_BASICRESP *bs, bs, return nullptr, return)
-+#if !defined(LIBRESSL_VERSION_NUMBER) || (LIBRESSL_VERSION_NUMBER >= 0x3050000fL)
- DEFINEFUNC(const STACK_OF(X509) *, OCSP_resp_get0_certs, const OCSP_BASICRESP *bs, bs, return nullptr, return)
-+#endif
- DEFINEFUNC2(int, OCSP_id_cmp, OCSP_CERTID *a, a, OCSP_CERTID *b, b, return -1, return)
- DEFINEFUNC7(OCSP_SINGLERESP *, OCSP_basic_add1_status, OCSP_BASICRESP *r, r, OCSP_CERTID *c, c, int s, s,
- int re, re, ASN1_TIME *rt, rt, ASN1_TIME *t, t, ASN1_TIME *n, n, return nullptr, return)
-@@ -214,7 +234,9 @@ DEFINEFUNC(long, ASN1_INTEGER_get, ASN1_INTEGER *a, a,
- DEFINEFUNC2(int, ASN1_INTEGER_cmp, const ASN1_INTEGER *a, a, const ASN1_INTEGER *b, b, return 1, return)
- DEFINEFUNC(int, ASN1_STRING_length, ASN1_STRING *a, a, return 0, return)
- DEFINEFUNC2(int, ASN1_STRING_to_UTF8, unsigned char **a, a, ASN1_STRING *b, b, return 0, return)
-+#ifndef LIBRESSL_VERSION_NUMBER
- DEFINEFUNC2(int, ASN1_TIME_to_tm, const ASN1_TIME *s, s, struct tm *tm, tm, return 0, return)
-+#endif
- DEFINEFUNC4(long, BIO_ctrl, BIO *a, a, int b, b, long c, c, void *d, d, return -1, return)
- DEFINEFUNC(int, BIO_free, BIO *a, a, return 0, return)
- DEFINEFUNC2(BIO *, BIO_new_mem_buf, void *a, a, int b, b, return nullptr, return)
-@@ -290,12 +312,14 @@ DEFINEFUNC3(int, SSL_CTX_use_certificate_file, SSL_CTX
- DEFINEFUNC2(int, SSL_CTX_use_PrivateKey, SSL_CTX *a, a, EVP_PKEY *b, b, return -1, return)
- DEFINEFUNC3(int, SSL_CTX_use_PrivateKey_file, SSL_CTX *a, a, const char *b, b, int c, c, return -1, return)
- DEFINEFUNC(X509_STORE *, SSL_CTX_get_cert_store, const SSL_CTX *a, a, return nullptr, return)
-+#ifndef LIBRESSL_VERSION_NUMBER
- DEFINEFUNC(SSL_CONF_CTX *, SSL_CONF_CTX_new, DUMMYARG, DUMMYARG, return nullptr, return);
- DEFINEFUNC(void, SSL_CONF_CTX_free, SSL_CONF_CTX *a, a, return ,return);
- DEFINEFUNC2(void, SSL_CONF_CTX_set_ssl_ctx, SSL_CONF_CTX *a, a, SSL_CTX *b, b, return, return);
- DEFINEFUNC2(unsigned int, SSL_CONF_CTX_set_flags, SSL_CONF_CTX *a, a, unsigned int b, b, return 0, return);
- DEFINEFUNC(int, SSL_CONF_CTX_finish, SSL_CONF_CTX *a, a, return 0, return);
- DEFINEFUNC3(int, SSL_CONF_cmd, SSL_CONF_CTX *a, a, const char *b, b, const char *c, c, return 0, return);
-+#endif
- DEFINEFUNC(void, SSL_free, SSL *a, a, return, DUMMYARG)
- DEFINEFUNC(STACK_OF(SSL_CIPHER) *, SSL_get_ciphers, const SSL *a, a, return nullptr, return)
- DEFINEFUNC(const SSL_CIPHER *, SSL_get_current_cipher, SSL *a, a, return nullptr, return)
-@@ -846,9 +870,11 @@ bool q_resolveOpenSslSymbols()
- RESOLVEFUNC(EVP_CIPHER_CTX_reset)
- RESOLVEFUNC(AUTHORITY_INFO_ACCESS_free)
- RESOLVEFUNC(EVP_PKEY_up_ref)
-+#ifdef OPENSSL_NO_DEPRECATED_3_0
- RESOLVEFUNC(EVP_PKEY_CTX_new)
- RESOLVEFUNC(EVP_PKEY_param_check)
- RESOLVEFUNC(EVP_PKEY_CTX_free)
-+#endif // OPENSSL_NO_DEPRECATED_3_0
- RESOLVEFUNC(OPENSSL_sk_new_null)
- RESOLVEFUNC(OPENSSL_sk_push)
- RESOLVEFUNC(OPENSSL_sk_free)
-@@ -942,7 +968,9 @@ bool q_resolveOpenSslSymbols()
- RESOLVEFUNC(OCSP_check_validity)
- RESOLVEFUNC(OCSP_cert_to_id)
- RESOLVEFUNC(OCSP_id_get0_info)
-- RESOLVEFUNC(OCSP_resp_get0_certs)
-+#if !defined(LIBRESSL_VERSION_NUMBER) || (LIBRESSL_VERSION_NUMBER >= 0x3050000fL)
-+ RESOLVEFUNC(OCSP_resp_get0_certs)
-+#endif
- RESOLVEFUNC(OCSP_basic_sign)
- RESOLVEFUNC(OCSP_response_create)
- RESOLVEFUNC(i2d_OCSP_RESPONSE)
-@@ -1038,12 +1066,14 @@ bool q_resolveOpenSslSymbols()
- RESOLVEFUNC(SSL_CTX_use_PrivateKey)
- RESOLVEFUNC(SSL_CTX_use_PrivateKey_file)
- RESOLVEFUNC(SSL_CTX_get_cert_store);
-+#ifndef LIBRESSL_VERSION_NUMBER
- RESOLVEFUNC(SSL_CONF_CTX_new);
- RESOLVEFUNC(SSL_CONF_CTX_free);
- RESOLVEFUNC(SSL_CONF_CTX_set_ssl_ctx);
- RESOLVEFUNC(SSL_CONF_CTX_set_flags);
- RESOLVEFUNC(SSL_CONF_CTX_finish);
- RESOLVEFUNC(SSL_CONF_cmd);
-+#endif
- RESOLVEFUNC(SSL_accept)
- RESOLVEFUNC(SSL_clear)
- RESOLVEFUNC(SSL_connect)
-@@ -1093,7 +1123,9 @@ bool q_resolveOpenSslSymbols()
- RESOLVEFUNC(RSA_free)
-
- RESOLVEFUNC(DH_bits)
-+#if !defined(LIBRESSL_VERSION_NUMBER) || (LIBRESSL_VERSION_NUMBER >= 0x3050000fL)
- RESOLVEFUNC(DSA_bits)
-+#endif
- RESOLVEFUNC(RSA_bits)
-
- #ifndef OPENSSL_NO_EC
---- a/src/plugins/tls/openssl/qopenssl_p.h
-+++ b/src/plugins/tls/openssl/qopenssl_p.h
-@@ -70,6 +70,13 @@
-
- QT_BEGIN_NAMESPACE
-
-+#ifndef DTLS_ANY_VERSION
-+#define DTLS_ANY_VERSION 0x1FFFF
-+#endif
-+#ifndef TLS_ANY_VERSION
-+#define TLS_ANY_VERSION 0x10000
-+#endif
-+
- struct QSslErrorEntry {
- int code = 0;
- int depth = 0;
---- a/src/plugins/tls/openssl/qsslcontext_openssl.cpp
-+++ b/src/plugins/tls/openssl/qsslcontext_openssl.cpp
-@@ -49,9 +49,9 @@ extern "C" int q_verify_cookie_callback(SSL *ssl, cons
- }
- #endif // dtls
-
--#ifdef TLS1_3_VERSION
-+#if defined(TLS1_3_VERSION) && !defined(LIBRESSL_VERSION_NUMBER)
- extern "C" int q_ssl_sess_set_new_cb(SSL *context, SSL_SESSION *session);
--#endif // TLS1_3_VERSION
-+#endif // TLS1_3_VERSION && LIBRESSL_VERSION_NUMBE
-
- static inline QString msgErrorSettingBackendConfig(const QString &why)
- {
-@@ -370,9 +370,11 @@ QT_WARNING_POP
- return;
- }
-
-+#ifndef LIBRESSL_VERSION_NUMBER
- // A nasty hacked OpenSSL using a level that will make our auto-tests fail:
- if (q_SSL_CTX_get_security_level(sslContext->ctx) > 1 && *forceSecurityLevel())
- q_SSL_CTX_set_security_level(sslContext->ctx, 1);
-+#endif // LIBRESSL_VERSION_NUMBER
-
- const long anyVersion =
- #if QT_CONFIG(dtls)
-@@ -663,14 +665,14 @@ QT_WARNING_POP
- q_SSL_CTX_set_verify(sslContext->ctx, verificationMode, verificationCallback);
- }
-
--#ifdef TLS1_3_VERSION
-+#if defined(TLS1_3_VERSION) && !defined(LIBRESSL_VERSION_NUMBER)
- // NewSessionTicket callback:
- if (mode == QSslSocket::SslClientMode && !isDtls) {
- q_SSL_CTX_sess_set_new_cb(sslContext->ctx, q_ssl_sess_set_new_cb);
- q_SSL_CTX_set_session_cache_mode(sslContext->ctx, SSL_SESS_CACHE_CLIENT);
- }
-
--#endif // TLS1_3_VERSION
-+#endif // TLS1_3_VERSION && LIBRESSL_VERSION_NUMBER
-
- #if QT_CONFIG(dtls)
- // DTLS cookies:
-@@ -758,6 +760,7 @@ void QSslContext::applyBackendConfig(QSslContext *sslC
- }
- #endif // ocsp
-
-+#ifndef LIBRESSL_VERSION_NUMBER
- QSharedPointer<SSL_CONF_CTX> cctx(q_SSL_CONF_CTX_new(), &q_SSL_CONF_CTX_free);
- if (cctx) {
- q_SSL_CONF_CTX_set_ssl_ctx(cctx.data(), sslContext->ctx);
-@@ -804,7 +807,9 @@ void QSslContext::applyBackendConfig(QSslContext *sslC
- sslContext->errorStr = msgErrorSettingBackendConfig(QSslSocket::tr("SSL_CONF_finish() failed"));
- sslContext->errorCode = QSslError::UnspecifiedError;
- }
-- } else {
-+ } else
-+#endif // LIBRESSL_VERSION_NUMBER
-+ {
- sslContext->errorStr = msgErrorSettingBackendConfig(QSslSocket::tr("SSL_CONF_CTX_new() failed"));
- sslContext->errorCode = QSslError::UnspecifiedError;
- }
---- a/src/plugins/tls/openssl/qsslsocket_openssl_symbols_p.h
-+++ b/src/plugins/tls/openssl/qsslsocket_openssl_symbols_p.h
-@@ -46,6 +46,13 @@ QT_BEGIN_NAMESPACE
-
- #define DUMMYARG
-
-+#ifdef LIBRESSL_VERSION_NUMBER
-+typedef _STACK STACK;
-+typedef STACK OPENSSL_STACK;
-+typedef void OPENSSL_INIT_SETTINGS;
-+typedef int (*X509_STORE_CTX_verify_cb)(int ok,X509_STORE_CTX *ctx);
-+#endif
-+
- #if !defined QT_LINKED_OPENSSL
- // **************** Shared declarations ******************
- // ret func(arg)
-@@ -203,15 +210,32 @@ const BIO_METHOD *q_BIO_s_mem();
- void q_AUTHORITY_INFO_ACCESS_free(AUTHORITY_INFO_ACCESS *a);
- int q_EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c);
- int q_EVP_PKEY_up_ref(EVP_PKEY *a);
-+#ifdef OPENSSL_NO_DEPRECATED_3_0
- EVP_PKEY_CTX *q_EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e);
- void q_EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx);
-+#endif // OPENSSL_NO_DEPRECATED_3_0
- int q_EVP_PKEY_param_check(EVP_PKEY_CTX *ctx);
-+#ifndef LIBRESSL_VERSION_NUMBER
- int q_OPENSSL_sk_num(OPENSSL_STACK *a);
- void q_OPENSSL_sk_pop_free(OPENSSL_STACK *a, void (*b)(void *));
- OPENSSL_STACK *q_OPENSSL_sk_new_null();
- void q_OPENSSL_sk_push(OPENSSL_STACK *st, void *data);
- void q_OPENSSL_sk_free(OPENSSL_STACK *a);
- void * q_OPENSSL_sk_value(OPENSSL_STACK *a, int b);
-+#else // LIBRESSL_VERSION_NUMBER
-+int q_sk_num(STACK *a);
-+#define q_OPENSSL_sk_num(a) q_sk_num(a)
-+void q_sk_pop_free(STACK *a, void (*b)(void *));
-+#define q_OPENSSL_sk_pop_free(a, b) q_sk_pop_free(a, b)
-+STACK *q_sk_new_null();
-+#define q_OPENSSL_sk_new_null() q_sk_new_null()
-+void q_sk_push(STACK *st, void *data);
-+#define q_OPENSSL_sk_push(st, data) q_sk_push(st, data)
-+void q_sk_free(STACK *a);
-+#define q_OPENSSL_sk_free q_sk_free
-+void * q_sk_value(STACK *a, int b);
-+#define q_OPENSSL_sk_value(a, b) q_sk_value(a, b)
-+#endif // LIBRESSL_VERSION_NUMBER
- int q_SSL_session_reused(SSL *a);
- qssloptions q_SSL_CTX_set_options(SSL_CTX *ctx, qssloptions op);
- int q_OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
-@@ -238,9 +262,15 @@ void q_DH_get0_pqg(const DH *dh, const BIGNUM **p, con
- # define q_SSL_load_error_strings() q_OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \
- | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
-
-+#ifndef LIBRESSL_VERSION_NUMBER
- #define q_SKM_sk_num(st) q_OPENSSL_sk_num((OPENSSL_STACK *)st)
- #define q_SKM_sk_value(type, st,i) (type *)q_OPENSSL_sk_value((OPENSSL_STACK *)st, i)
-+#else // LIBRESSL_VERSION_NUMBER
-+#define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st)
-+#define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_sk_value)(st, i)
-+#endif // LIBRESSL_VERSION_NUMBER
-
-+
- #define q_OPENSSL_add_all_algorithms_conf() q_OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \
- | OPENSSL_INIT_ADD_ALL_DIGESTS \
- | OPENSSL_INIT_LOAD_CONFIG, NULL)
-@@ -425,12 +455,14 @@ int q_SSL_CTX_use_certificate_file(SSL_CTX *a, const c
- int q_SSL_CTX_use_PrivateKey(SSL_CTX *a, EVP_PKEY *b);
- int q_SSL_CTX_use_PrivateKey_file(SSL_CTX *a, const char *b, int c);
- X509_STORE *q_SSL_CTX_get_cert_store(const SSL_CTX *a);
-+#ifndef LIBRESSL_VERSION_NUMBER
- SSL_CONF_CTX *q_SSL_CONF_CTX_new();
- void q_SSL_CONF_CTX_free(SSL_CONF_CTX *a);
- void q_SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *a, SSL_CTX *b);
- unsigned int q_SSL_CONF_CTX_set_flags(SSL_CONF_CTX *a, unsigned int b);
- int q_SSL_CONF_CTX_finish(SSL_CONF_CTX *a);
- int q_SSL_CONF_cmd(SSL_CONF_CTX *a, const char *b, const char *c);
-+#endif // LIBRESSL_VERSION_NUMBER
- void q_SSL_free(SSL *a);
- STACK_OF(SSL_CIPHER) *q_SSL_get_ciphers(const SSL *a);
- const SSL_CIPHER *q_SSL_get_current_cipher(SSL *a);
-@@ -532,14 +564,26 @@ void q_PKCS12_free(PKCS12 *pkcs12);
- #define q_BIO_get_mem_data(b, pp) (int)q_BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)pp)
- #define q_BIO_pending(b) (int)q_BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL)
- #define q_SSL_CTX_set_mode(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL)
-+#ifndef LIBRESSL_VERSION_NUMBER
- #define q_sk_GENERAL_NAME_num(st) q_SKM_sk_num((st))
-+#else
-+#define q_sk_GENERAL_NAME_num(st) q_SKM_sk_num(GENERAL_NAME, (st))
-+#endif
- #define q_sk_GENERAL_NAME_value(st, i) q_SKM_sk_value(GENERAL_NAME, (st), (i))
-
- void q_GENERAL_NAME_free(GENERAL_NAME *a);
-
-+#ifndef LIBRESSL_VERSION_NUMBER
- #define q_sk_X509_num(st) q_SKM_sk_num((st))
-+#else
-+#define q_sk_X509_num(st) q_SKM_sk_num(X509, (st))
-+#endif
- #define q_sk_X509_value(st, i) q_SKM_sk_value(X509, (st), (i))
-+#ifndef LIBRESSL_VERSION_NUMBER
- #define q_sk_SSL_CIPHER_num(st) q_SKM_sk_num((st))
-+#else
-+#define q_sk_SSL_CIPHER_num(st) q_SKM_sk_num(SSL_CIPHER, (st))
-+#endif
- #define q_sk_SSL_CIPHER_value(st, i) q_SKM_sk_value(SSL_CIPHER, (st), (i))
- #define q_SSL_CTX_add_extra_chain_cert(ctx,x509) \
- q_SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509)
-@@ -641,7 +685,11 @@ int q_OCSP_check_validity(ASN1_GENERALIZEDTIME *thisup
- int q_OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, ASN1_OCTET_STRING **pikeyHash,
- ASN1_INTEGER **pserial, OCSP_CERTID *cid);
-
-+#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x3050000fL
-+#define q_OCSP_resp_get0_certs(bs) ((bs)->certs)
-+#else
- const STACK_OF(X509) *q_OCSP_resp_get0_certs(const OCSP_BASICRESP *bs);
-+#endif
- OCSP_CERTID *q_OCSP_cert_to_id(const EVP_MD *dgst, X509 *subject, X509 *issuer);
- void q_OCSP_CERTID_free(OCSP_CERTID *cid);
- int q_OCSP_id_cmp(OCSP_CERTID *a, OCSP_CERTID *b);
-@@ -660,8 +708,14 @@ int q_OCSP_id_cmp(OCSP_CERTID *a, OCSP_CERTID *b);
-
- void *q_CRYPTO_malloc(size_t num, const char *file, int line);
- #define q_OPENSSL_malloc(num) q_CRYPTO_malloc(num, "", 0)
-+
-+#ifndef LIBRESSL_VERSION_NUMBER
- void q_CRYPTO_free(void *str, const char *file, int line);
- # define q_OPENSSL_free(addr) q_CRYPTO_free(addr, "", 0)
-+#else
-+void q_CRYPTO_free(void *a);
-+# define q_OPENSSL_free(addr) q_CRYPTO_free(addr)
-+#endif
-
- void q_SSL_set_info_callback(SSL *ssl, void (*cb) (const SSL *ssl, int type, int val));
- const char *q_SSL_alert_type_string(int value);
-@@ -724,7 +778,11 @@ int q_EVP_PKEY_set1_DH(EVP_PKEY *a, DH *b);
-
- int q_DH_bits(DH *dh);
- int q_RSA_bits(RSA *a);
-+#if defined(LIBRESSL_VERSION_NUMBER) && (LIBRESSL_VERSION_NUMBER < 0x3050000fL)
-+#define q_DSA_bits(dsa) q_BN_num_bits((dsa)->p)
-+#else
- int q_DSA_bits(DSA *a);
-+#endif
-
- int q_EVP_PKEY_assign(EVP_PKEY *a, int b, void *r);
- int q_EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b);
---- a/src/plugins/tls/openssl/qtls_openssl.cpp
-+++ b/src/plugins/tls/openssl/qtls_openssl.cpp
-@@ -1438,13 +1438,13 @@ bool TlsCryptographOpenSSL::initSslContext()
- else if (mode == QSslSocket::SslServerMode)
- q_SSL_set_psk_server_callback(ssl, &q_ssl_psk_server_callback);
-
--#if OPENSSL_VERSION_NUMBER >= 0x10101006L
-+#if OPENSSL_VERSION_NUMBER >= 0x10101006L && !defined(LIBRESSL_VERSION_NUMBER)
- // Set the client callback for TLSv1.3 PSK
- if (mode == QSslSocket::SslClientMode
- && QSslSocket::sslLibraryBuildVersionNumber() >= 0x10101006L) {
- q_SSL_set_psk_use_session_callback(ssl, &q_ssl_psk_use_session_callback);
- }
--#endif // openssl version >= 0x10101006L
-+#endif // OPENSSL_VERSION_NUMBER >= 0x10101006L && !defined(LIBRESSL_VERSION_NUMBER)
-
- #endif // OPENSSL_NO_PSK
-
---- a/src/plugins/tls/openssl/qx509_openssl.cpp
-+++ b/src/plugins/tls/openssl/qx509_openssl.cpp
-@@ -64,7 +64,12 @@ QMultiMap<QByteArray, QString> mapFromX509Name(X509_NA
- unsigned char *data = nullptr;
- int size = q_ASN1_STRING_to_UTF8(&data, q_X509_NAME_ENTRY_get_data(e));
- info.insert(name, QString::fromUtf8((char*)data, size));
-- q_CRYPTO_free(data, nullptr, 0);
-+#if QT_CONFIG(opensslv11) && !defined(LIBRESSL_VERSION_NUMBER)
-+ q_CRYPTO_free(data, nullptr, 0);
-+#else
-+ q_CRYPTO_free(data);
-+#endif
-+
- }
-
- return info;
-@@ -75,11 +80,27 @@ QDateTime dateTimeFromASN1(const ASN1_TIME *aTime)
- QDateTime result;
- tm lTime;
-
-+#ifdef LIBRESSL_VERSION_NUMBER
-+ const char *data;
-+ size_t len;
-+ int type;
-+
-+ data = (const char*)ASN1_STRING_get0_data((const ASN1_STRING *)aTime);
-+ len = ASN1_STRING_length(aTime);
-+ type = ASN1_STRING_type(aTime);
-+
-+ if (ASN1_time_parse(data, len, &lTime, type) == type) {
-+ QDate resDate(lTime.tm_year + 1900, lTime.tm_mon + 1, lTime.tm_mday);
-+ QTime resTime(lTime.tm_hour, lTime.tm_min, lTime.tm_sec);
-+ result = QDateTime(resDate, resTime, Qt::UTC);
-+ }
-+#else
- if (q_ASN1_TIME_to_tm(aTime, &lTime)) {
- QDate resDate(lTime.tm_year + 1900, lTime.tm_mon + 1, lTime.tm_mday);
- QTime resTime(lTime.tm_hour, lTime.tm_min, lTime.tm_sec);
- result = QDateTime(resDate, resTime, QTimeZone::UTC);
- }
-+#endif
-
- return result;
- }
-@@ -190,7 +211,7 @@ QVariant x509UnknownExtensionToValue(X509_EXTENSION *e
- QVariantList list;
- bool isMap = false;
-
-- for (int j = 0; j < q_SKM_sk_num(val); j++) {
-+ for (int j = 0; j < q_SKM_sk_num(CONF_VALUE, val); j++) {
- CONF_VALUE *nval = q_SKM_sk_value(CONF_VALUE, val, j);
- if (nval->name && nval->value) {
- isMap = true;
-@@ -286,7 +307,7 @@ QVariant x509ExtensionToValue(X509_EXTENSION *ext)
- if (!info)
- return {};
- QVariantMap result;
-- for (int i=0; i < q_SKM_sk_num(info); i++) {
-+ for (int i=0; i < q_SKM_sk_num(ACCESS_DESCRIPTION, info); i++) {
- ACCESS_DESCRIPTION *ad = q_SKM_sk_value(ACCESS_DESCRIPTION, info, i);
-
- GENERAL_NAME *name = ad->location;
diff --git a/dev-qt/qtbase/files/qtbase-6.5.3-forkfd-childstack-size.patch b/dev-qt/qtbase/files/qtbase-6.5.3-forkfd-childstack-size.patch
deleted file mode 100644
index 34cbec6..0000000
--- a/dev-qt/qtbase/files/qtbase-6.5.3-forkfd-childstack-size.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Avoid crash that happens for some users in qsb, qmake, and
-potentially other Qt tools when ran under sandbox leading
-to build failures for qtdeclarative and other packages.
-
-Note that this is the initial (simple) version of the patch
-to ensure no issues, a more proper fix should land upstream
-eventually.
-
-https://bugs.gentoo.org/908809
-https://bugs.gentoo.org/908816
-https://bugs.gentoo.org/913493
-https://bugs.gentoo.org/915695
-https://codereview.qt-project.org/c/qt/qtbase/+/513140
-From: Huang Rui <vowstar@users.noreply.github.com>
-Date: Fri, 20 Oct 2023 10:16:01 +0800
-Subject: [PATCH] folkfd_linux,c: set stack size to 8192
---- a/src/3rdparty/forkfd/forkfd_linux.c
-+++ b/src/3rdparty/forkfd/forkfd_linux.c
-@@ -157,7 +157,7 @@ static int system_forkfd_pidfd_set_flags(int pidfd, int flags)
-
- int system_vforkfd(int flags, pid_t *ppid, int (*childFn)(void *), void *token, int *system)
- {
-- __attribute__((aligned(64))) char childStack[4096];
-+ __attribute__((aligned(64))) char childStack[8192];
- pid_t pid;
- int pidfd;
- unsigned long cloneflags = CLONE_PIDFD | CLONE_VFORK | CLONE_VM | SIGCHLD;
diff --git a/dev-qt/qtbase/files/qtbase-6.5.3-xkbcommon160.patch b/dev-qt/qtbase/files/qtbase-6.5.3-xkbcommon160.patch
deleted file mode 100644
index bc0e079..0000000
--- a/dev-qt/qtbase/files/qtbase-6.5.3-xkbcommon160.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-These were removed in libxkbcommon-1.6.0[1] and were apparently
-unnecesary. Usage results in build failure.
-
-Just a quick fix while waiting for what [2] comes up with.
-
-[1] https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/merge_requests/70
-[2] https://bugreports.qt.io/browse/QTBUG-117950
---- a/src/gui/platform/unix/qxkbcommon.cpp
-+++ b/src/gui/platform/unix/qxkbcommon.cpp
-@@ -242,4 +242,4 @@
-- Xkb2Qt<XKB_KEY_dead_lowline, Qt::Key_Dead_Lowline>,
-- Xkb2Qt<XKB_KEY_dead_aboveverticalline, Qt::Key_Dead_Aboveverticalline>,
-- Xkb2Qt<XKB_KEY_dead_belowverticalline, Qt::Key_Dead_Belowverticalline>,
-- Xkb2Qt<XKB_KEY_dead_longsolidusoverlay, Qt::Key_Dead_Longsolidusoverlay>,
-+ Xkb2Qt<0xfe90, Qt::Key_Dead_Lowline>,
-+ Xkb2Qt<0xfe91, Qt::Key_Dead_Aboveverticalline>,
-+ Xkb2Qt<0xfe92, Qt::Key_Dead_Belowverticalline>,
-+ Xkb2Qt<0xfe93, Qt::Key_Dead_Longsolidusoverlay>,
diff --git a/dev-qt/qtbase/qtbase-6.5.3-r1.ebuild b/dev-qt/qtbase/qtbase-6.5.3-r1.ebuild
deleted file mode 100644
index b426bce..0000000
--- a/dev-qt/qtbase/qtbase-6.5.3-r1.ebuild
+++ /dev/null
@@ -1,354 +0,0 @@
-# Copyright 2021-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit flag-o-matic qt6-build toolchain-funcs
-
-DESCRIPTION="Cross-platform application development framework"
-
-if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="amd64 ~arm ~arm64 ~hppa ~loong ~x86"
-fi
-
-declare -A QT6_IUSE=(
- [global]="+ssl +udev zstd"
- [core]="icu"
- [modules]="+concurrent +dbus +gui +network +sql +xml"
-
- [gui]="
- +X accessibility eglfs evdev gles2-only +libinput
- opengl tslib vulkan +widgets
- "
- [network]="brotli gssapi libproxy sctp"
- [sql]="mysql oci8 odbc postgres +sqlite"
- [widgets]="cups gtk"
-
- [optfeature]="nls wayland" #810802,864509
-)
-IUSE="${QT6_IUSE[*]}"
-REQUIRED_USE="
- $(
- printf '%s? ( gui ) ' ${QT6_IUSE[gui]//+/}
- printf '%s? ( network ) ' ${QT6_IUSE[network]//+/}
- printf '%s? ( sql ) ' ${QT6_IUSE[sql]//+/}
- printf '%s? ( gui widgets ) ' ${QT6_IUSE[widgets]//+/}
- )
- accessibility? ( X dbus )
- eglfs? ( opengl )
- gles2-only? ( opengl )
- gui? ( || ( X eglfs wayland ) )
- libinput? ( udev )
- sql? ( || ( ${QT6_IUSE[sql]//+/} ) )
- test? ( icu sql? ( sqlite ) )
-"
-
-# groups:
-# - global (configure.cmake)
-# - qtcore (src/corelib/configure.cmake)
-# - qtgui (src/gui/configure.cmake)
-# - qtnetwork (src/network/configure.cmake)
-# - qtprintsupport (src/printsupport/configure.cmake) [gui+widgets]
-# - qtsql (src/plugins/sqldrivers/configure.cmake)
-RDEPEND="
- sys-libs/zlib:=
- ssl? ( dev-libs/openssl:= )
- udev? ( virtual/libudev:= )
- zstd? ( app-arch/zstd:= )
-
- app-crypt/libb2
- dev-libs/double-conversion:=
- dev-libs/glib:2
- dev-libs/libpcre2:=[pcre16,unicode(+)]
- icu? ( dev-libs/icu:= )
-
- dbus? ( sys-apps/dbus )
- gui? (
- media-libs/fontconfig
- media-libs/freetype:2
- media-libs/harfbuzz:=
- media-libs/libjpeg-turbo:=
- media-libs/libpng:=
- x11-libs/libdrm
- x11-libs/libxkbcommon[X?]
- X? (
- x11-libs/libICE
- x11-libs/libSM
- x11-libs/libX11
- x11-libs/libxcb:=
- x11-libs/xcb-util-cursor
- x11-libs/xcb-util-image
- x11-libs/xcb-util-keysyms
- x11-libs/xcb-util-renderutil
- x11-libs/xcb-util-wm
- )
- accessibility? ( app-accessibility/at-spi2-core:2 )
- eglfs? ( media-libs/mesa[gbm(+)] )
- evdev? ( sys-libs/mtdev )
- libinput? ( dev-libs/libinput:= )
- opengl? (
- gles2-only? ( media-libs/libglvnd )
- !gles2-only? ( media-libs/libglvnd[X?] )
- )
- tslib? ( x11-libs/tslib )
- widgets? (
- cups? ( net-print/cups )
- gtk? (
- x11-libs/gdk-pixbuf:2
- x11-libs/gtk+:3
- x11-libs/pango
- )
- )
- )
- network? (
- brotli? ( app-arch/brotli:= )
- gssapi? ( virtual/krb5 )
- libproxy? ( net-libs/libproxy )
- )
- sql? (
- mysql? ( dev-db/mysql-connector-c:= )
- oci8? ( dev-db/oracle-instantclient:=[sdk] )
- odbc? ( dev-db/unixODBC )
- postgres? ( dev-db/postgresql:* )
- sqlite? ( dev-db/sqlite:3 )
- )
-"
-DEPEND="
- ${RDEPEND}
- X? ( x11-base/xorg-proto )
- gui? (
- vulkan? ( dev-util/vulkan-headers )
- )
- network? (
- sctp? ( net-misc/lksctp-tools )
- )
- test? (
- elibc_musl? ( sys-libs/timezone-data )
- )
-"
-BDEPEND="zstd? ( app-arch/libarchive[zstd] )" #910392
-PDEPEND="
- nls? ( ~dev-qt/qttranslations-${PV}:6 )
- wayland? ( ~dev-qt/qtwayland-${PV}:6 )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-6.5.0-libressl.patch
- "${FILESDIR}"/${PN}-6.5.2-hppa-forkfd-grow-stack.patch
- "${FILESDIR}"/${PN}-6.5.2-no-glx.patch
- "${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
- "${FILESDIR}"/${PN}-6.5.3-xkbcommon160.patch
- "${FILESDIR}"/${PN}-6.5.3-forkfd-childstack-size.patch
-)
-
-src_prepare() {
- qt6-build_src_prepare
-
- if use test; then
- # test itself has -Werror=strict-aliasing issues, drop for simplicity
- sed -e '/add_subdirectory(qsharedpointer)/d' \
- -i tests/auto/corelib/tools/CMakeLists.txt || die
- fi
-}
-
-src_configure() {
- local mycmakeargs=(
- -DBUILD_WITH_PCH=OFF
-
- -DINSTALL_ARCHDATADIR="${QT6_ARCHDATADIR}"
- -DINSTALL_BINDIR="${QT6_BINDIR}"
- -DINSTALL_DATADIR="${QT6_DATADIR}"
- -DINSTALL_DOCDIR="${QT6_DOCDIR}"
- -DINSTALL_EXAMPLESDIR="${QT6_EXAMPLESDIR}"
- -DINSTALL_INCLUDEDIR="${QT6_HEADERDIR}"
- -DINSTALL_LIBDIR="${QT6_LIBDIR}"
- -DINSTALL_LIBEXECDIR="${QT6_LIBEXECDIR}"
- -DINSTALL_MKSPECSDIR="${QT6_MKSPECSDIR}"
- -DINSTALL_PLUGINSDIR="${QT6_PLUGINDIR}"
- -DINSTALL_QMLDIR="${QT6_QMLDIR}"
- -DINSTALL_SYSCONFDIR="${QT6_SYSCONFDIR}"
- -DINSTALL_TRANSLATIONSDIR="${QT6_TRANSLATIONDIR}"
-
- $(qt_feature ssl openssl)
- $(qt_feature ssl openssl_linked)
- $(qt_feature udev libudev)
- $(qt_feature zstd)
-
- # qtcore
- $(qt_feature icu)
-
- # tools
- -DQT_FEATURE_androiddeployqt=OFF
-
- # modules
- $(qt_feature concurrent)
- $(qt_feature dbus)
- $(qt_feature gui)
- $(qt_feature network)
- $(qt_feature sql)
- -DQT_FEATURE_testlib=ON # trivial and often needed to build revdeps
- $(qt_feature xml)
- )
-
- use gui && mycmakeargs+=(
- $(qt_feature X xcb)
- $(qt_feature X system_xcb_xinput)
- $(qt_feature X xkbcommon_x11)
- $(cmake_use_find_package X X11) # needed for truly no automagic
- $(qt_feature accessibility accessibility_atspi_bridge)
- $(qt_feature eglfs)
- $(qt_feature evdev)
- $(qt_feature evdev mtdev)
- $(qt_feature libinput)
- $(qt_feature tslib)
- $(qt_feature vulkan)
- $(qt_feature widgets)
- -DINPUT_opengl=$(usex opengl $(usex gles2-only es2 desktop) no)
- -DQT_FEATURE_system_textmarkdownreader=OFF # TODO?: package md4c
- ) && use widgets && mycmakeargs+=(
- # note: qtprintsupport is enabled w/ gui+widgets regardless of USE=cups
- $(qt_feature cups)
- $(qt_feature gtk gtk3)
- )
-
- use network && mycmakeargs+=(
- $(qt_feature brotli)
- $(qt_feature gssapi)
- $(qt_feature libproxy)
- $(qt_feature sctp)
- $(usev test -DQT_SKIP_DOCKER_COMPOSE=ON)
- -DQT_FEATURE_dtls=OFF # Required for LibreSSL
- )
-
- use sql && mycmakeargs+=(
- -DQT_FEATURE_sql_db2=OFF # unpackaged
- -DQT_FEATURE_sql_ibase=OFF # unpackaged
- $(qt_feature mysql sql_mysql)
- $(qt_feature oci8 sql_oci)
- $(usev oci8 -DOracle_ROOT="${ESYSROOT}"/usr/$(get_libdir)/oracle/client)
- $(qt_feature odbc sql_odbc)
- $(qt_feature postgres sql_psql)
- $(qt_feature sqlite sql_sqlite)
- $(qt_feature sqlite system_sqlite)
- -DQT_FEATURE_sql_tds=OFF # currently a no-op in CMakeLists.txt
- )
-
- if use amd64 || use x86; then
- # see bug #913400 for explanations
- local cpufeats=(
- # list of checked cpu features in configure.cmake
- avx avx2 avx512{bw,cd,dq,er,f,ifma,pf,vbmi,vbmi2,vl}
- f16c rdrnd rdseed sse2 sse3 sse4_1 sse4_2 ssse3 vaes
- )
- # handle odd ones out not matching -m* and macros (keep same order)
- local cpuflags=( "${cpufeats[@]}" aes sha )
- local cpufeats+=( aesni shani )
-
- local -a intrins
- IFS=' ' read -ra intrins < <(
- : "$(test-flags-CXX "${cpuflags[@]/#/-m}")"
- $(tc-getCXX) -E -P ${_} ${CXXFLAGS} ${CPPFLAGS} - <<-EOF | tail -n 1
- #if defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__))
- #include <x86intrin.h>
- #endif
- $(printf '__%s__ ' "${cpuflags[@]^^}")
- EOF
- assert
- )
-
- # do nothing and leave to qtbase if no macros expanded (test failed?)
- if [[ \ ${intrins[*]} == *\ [^_\ ]* ]]; then
- local -i i
- for ((i=0; i<${#cpufeats[@]}; i++)); do
- [[ ${intrins[i]} == __* ]] &&
- mycmakeargs+=( -DQT_FEATURE_${cpufeats[i]}=OFF )
- done
- mycmakeargs+=( -DTEST_x86intrin=ON )
- fi
- fi
-
- qt6-build_src_configure
-}
-
-src_test() {
- local -x TZ=UTC
- local -x LC_TIME=C
-
- local CMAKE_SKIP_TESTS=(
- # broken with out-of-source + if qtbase is not already installed
- tst_moc
- tst_qmake
- # needs x11/opengl, we *could* run these but tend to be flaky
- # when opengl rendering is involved (even if software-only)
- tst_qopengl{,config,widget,window}
- tst_qgraphicsview
- tst_qx11info
- # fails with network sandbox
- tst_qdnslookup
- # typical to lack SCTP support on non-generic kernels
- tst_qsctpsocket
- # randomly fails without -j1, and not worth it over this (bug #916181)
- tst_qfiledialog{,2}
- # these can be flaky depending on the environment/toolchain
- tst_qlogging # backtrace log test can easily vary
- tst_q{,raw}font # affected by available fonts / settings (bug #914737)
- tst_qprinter # checks system's printers (bug #916216)
- tst_qstorageinfo # checks mounted filesystems
- # flaky due to using different test framework and fails with USE=-gui
- tst_selftests
- # known failing when using clang+glibc+stdc++, needs looking into
- tst_qthread
- # partially failing on x86 chroots and seemingly(?) harmless (dev-qt
- # revdeps tests pass), skip globally to avoid keywording flakiness
- tst_json
- tst_qcolorspace
- tst_qdoublevalidator
- tst_qglobal
- tst_qglyphrun
- tst_qvectornd
- tst_rcc
- # similarly, but on armv7 and potentially others (bug #914028)
- tst_qlineedit
- tst_qpainter
- # likewise, known failing at least on BE arches (bug #914033,914371)
- tst_qimagereader
- tst_qimagewriter
- tst_qpluginloader
- # partially broken on llvm-musl, needs looking into but skip to have
- # a baseline for regressions (rest of dev-qt still passes with musl)
- $(usev elibc_musl '
- tst_qicoimageformat
- tst_qimagereader
- tst_qimage
- ')
- # fails due to hppa's NaN handling, needs looking into (bug #914371)
- $(usev hppa '
- tst_qcborvalue
- tst_qnumeric
- ')
- # note: for linux, upstream only really runs+maintains tests for amd64
- # https://doc.qt.io/qt-6/supported-platforms.html
- )
-
- qt6-build_src_test
-}
-
-src_install() {
- qt6-build_src_install
-
- if use test; then
- local delete_bins=( # need a better way to handle this
- clientserver copier crashingServer desktopsettingsaware_helper
- echo fileWriterProcess modal_helper nospace 'one space'
- paster qcommandlineparser_test_helper qfileopeneventexternal
- socketprocess syslocaleapp tst_qhashseed_helper 'two space s'
- write-read-write
- )
- local delete=( # sigh
- "${D}${QT6_BINDIR}"/test*
- "${delete_bins[@]/#/${D}${QT6_BINDIR}/}"
- )
- # using -f given not tracking which tests may be skipped or not
- rm -rf -- "${delete[@]}" || die
- fi
-}
diff --git a/dev-qt/qtbase/qtbase-6.6.0-r1.ebuild b/dev-qt/qtbase/qtbase-6.6.0-r1.ebuild
deleted file mode 100644
index aa683f4..0000000
--- a/dev-qt/qtbase/qtbase-6.6.0-r1.ebuild
+++ /dev/null
@@ -1,356 +0,0 @@
-# Copyright 2021-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit flag-o-matic qt6-build toolchain-funcs
-
-DESCRIPTION="Cross-platform application development framework"
-
-if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~x86"
-fi
-
-declare -A QT6_IUSE=(
- [global]="+ssl +udev zstd"
- [core]="icu"
- [modules]="+concurrent +dbus +gui +network +sql +xml"
-
- [gui]="
- +X accessibility eglfs evdev gles2-only +libinput
- opengl tslib vulkan +widgets
- "
- [network]="brotli gssapi libproxy sctp"
- [sql]="mysql oci8 odbc postgres +sqlite"
- [widgets]="cups gtk"
-
- [optfeature]="nls wayland" #810802,864509
-)
-IUSE="${QT6_IUSE[*]}"
-REQUIRED_USE="
- $(
- printf '%s? ( gui ) ' ${QT6_IUSE[gui]//+/}
- printf '%s? ( network ) ' ${QT6_IUSE[network]//+/}
- printf '%s? ( sql ) ' ${QT6_IUSE[sql]//+/}
- printf '%s? ( gui widgets ) ' ${QT6_IUSE[widgets]//+/}
- )
- accessibility? ( X dbus )
- eglfs? ( opengl )
- gles2-only? ( opengl )
- gui? ( || ( X eglfs wayland ) )
- libinput? ( udev )
- sql? ( || ( ${QT6_IUSE[sql]//+/} ) )
- test? ( icu sql? ( sqlite ) )
-"
-
-# groups:
-# - global (configure.cmake)
-# - qtcore (src/corelib/configure.cmake)
-# - qtgui (src/gui/configure.cmake)
-# - qtnetwork (src/network/configure.cmake)
-# - qtprintsupport (src/printsupport/configure.cmake) [gui+widgets]
-# - qtsql (src/plugins/sqldrivers/configure.cmake)
-RDEPEND="
- sys-libs/zlib:=
- ssl? ( dev-libs/openssl:= )
- udev? ( virtual/libudev:= )
- zstd? ( app-arch/zstd:= )
-
- app-crypt/libb2
- dev-libs/double-conversion:=
- dev-libs/glib:2
- dev-libs/libpcre2:=[pcre16,unicode(+)]
- icu? ( dev-libs/icu:= )
-
- dbus? ( sys-apps/dbus )
- gui? (
- media-libs/fontconfig
- media-libs/freetype:2
- media-libs/harfbuzz:=
- media-libs/libjpeg-turbo:=
- media-libs/libpng:=
- x11-libs/libdrm
- x11-libs/libxkbcommon[X?]
- X? (
- x11-libs/libICE
- x11-libs/libSM
- x11-libs/libX11
- x11-libs/libxcb:=
- x11-libs/xcb-util-cursor
- x11-libs/xcb-util-image
- x11-libs/xcb-util-keysyms
- x11-libs/xcb-util-renderutil
- x11-libs/xcb-util-wm
- )
- accessibility? ( app-accessibility/at-spi2-core:2 )
- eglfs? ( media-libs/mesa[gbm(+)] )
- evdev? ( sys-libs/mtdev )
- libinput? ( dev-libs/libinput:= )
- opengl? (
- gles2-only? ( media-libs/libglvnd )
- !gles2-only? ( media-libs/libglvnd[X?] )
- )
- tslib? ( x11-libs/tslib )
- widgets? (
- cups? ( net-print/cups )
- gtk? (
- x11-libs/gdk-pixbuf:2
- x11-libs/gtk+:3
- x11-libs/pango
- )
- )
- )
- network? (
- brotli? ( app-arch/brotli:= )
- gssapi? ( virtual/krb5 )
- libproxy? ( net-libs/libproxy )
- )
- sql? (
- mysql? ( dev-db/mysql-connector-c:= )
- oci8? ( dev-db/oracle-instantclient:=[sdk] )
- odbc? ( dev-db/unixODBC )
- postgres? ( dev-db/postgresql:* )
- sqlite? ( dev-db/sqlite:3 )
- )
-"
-DEPEND="
- ${RDEPEND}
- X? ( x11-base/xorg-proto )
- gui? (
- vulkan? ( dev-util/vulkan-headers )
- )
- network? (
- sctp? ( net-misc/lksctp-tools )
- )
- test? (
- elibc_musl? ( sys-libs/timezone-data )
- )
-"
-BDEPEND="zstd? ( app-arch/libarchive[zstd] )" #910392
-PDEPEND="
- nls? ( ~dev-qt/qttranslations-${PV}:6 )
- wayland? ( ~dev-qt/qtwayland-${PV}:6 )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-6.6.0-libressl.patch
- "${FILESDIR}"/${PN}-6.5.2-hppa-forkfd-grow-stack.patch
- "${FILESDIR}"/${PN}-6.5.2-no-glx.patch
- "${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
- "${FILESDIR}"/${PN}-6.5.3-xkbcommon160.patch
- "${FILESDIR}"/${PN}-6.5.3-forkfd-childstack-size.patch
-)
-
-src_prepare() {
- qt6-build_src_prepare
-
- if use test; then
- # test itself has -Werror=strict-aliasing issues, drop for simplicity
- sed -e '/add_subdirectory(qsharedpointer)/d' \
- -i tests/auto/corelib/tools/CMakeLists.txt || die
- fi
-}
-
-src_configure() {
- local mycmakeargs=(
- -DBUILD_WITH_PCH=OFF
-
- -DINSTALL_ARCHDATADIR="${QT6_ARCHDATADIR}"
- -DINSTALL_BINDIR="${QT6_BINDIR}"
- -DINSTALL_DATADIR="${QT6_DATADIR}"
- -DINSTALL_DOCDIR="${QT6_DOCDIR}"
- -DINSTALL_EXAMPLESDIR="${QT6_EXAMPLESDIR}"
- -DINSTALL_INCLUDEDIR="${QT6_HEADERDIR}"
- -DINSTALL_LIBDIR="${QT6_LIBDIR}"
- -DINSTALL_LIBEXECDIR="${QT6_LIBEXECDIR}"
- -DINSTALL_MKSPECSDIR="${QT6_MKSPECSDIR}"
- -DINSTALL_PLUGINSDIR="${QT6_PLUGINDIR}"
- -DINSTALL_QMLDIR="${QT6_QMLDIR}"
- -DINSTALL_SYSCONFDIR="${QT6_SYSCONFDIR}"
- -DINSTALL_TRANSLATIONSDIR="${QT6_TRANSLATIONDIR}"
-
- $(qt_feature ssl openssl)
- $(qt_feature ssl openssl_linked)
- $(qt_feature udev libudev)
- $(qt_feature zstd)
-
- # qtcore
- $(qt_feature icu)
-
- # tools
- -DQT_FEATURE_androiddeployqt=OFF
-
- # modules
- $(qt_feature concurrent)
- $(qt_feature dbus)
- $(qt_feature gui)
- $(qt_feature network)
- $(qt_feature sql)
- -DQT_FEATURE_testlib=ON # trivial and often needed to build revdeps
- $(qt_feature xml)
- )
-
- use gui && mycmakeargs+=(
- $(qt_feature X xcb)
- $(qt_feature X system_xcb_xinput)
- $(qt_feature X xkbcommon_x11)
- $(cmake_use_find_package X X11) # needed for truly no automagic
- $(qt_feature accessibility accessibility_atspi_bridge)
- $(qt_feature eglfs)
- $(qt_feature evdev)
- $(qt_feature evdev mtdev)
- $(qt_feature libinput)
- $(qt_feature tslib)
- $(qt_feature vulkan)
- $(qt_feature widgets)
- -DINPUT_opengl=$(usex opengl $(usex gles2-only es2 desktop) no)
- -DQT_FEATURE_system_textmarkdownreader=OFF # TODO?: package md4c
- ) && use widgets && mycmakeargs+=(
- # note: qtprintsupport is enabled w/ gui+widgets regardless of USE=cups
- $(qt_feature cups)
- $(qt_feature gtk gtk3)
- )
-
- use network && mycmakeargs+=(
- $(qt_feature brotli)
- $(qt_feature gssapi)
- $(qt_feature libproxy)
- $(qt_feature sctp)
- $(usev test -DQT_SKIP_DOCKER_COMPOSE=ON)
- -DQT_FEATURE_dtls=OFF # Required for LibreSSL
- )
-
- use sql && mycmakeargs+=(
- -DQT_FEATURE_sql_db2=OFF # unpackaged
- -DQT_FEATURE_sql_ibase=OFF # unpackaged
- -DQT_FEATURE_sql_mimer=OFF # unpackaged
- $(qt_feature mysql sql_mysql)
- $(qt_feature oci8 sql_oci)
- $(usev oci8 -DOracle_ROOT="${ESYSROOT}"/usr/$(get_libdir)/oracle/client)
- $(qt_feature odbc sql_odbc)
- $(qt_feature postgres sql_psql)
- $(qt_feature sqlite sql_sqlite)
- $(qt_feature sqlite system_sqlite)
- )
-
- if use amd64 || use x86; then
- # see bug #913400 for explanations
- local cpufeats=(
- # list of checked cpu features in configure.cmake
- avx avx2 avx512{bw,cd,dq,er,f,ifma,pf,vbmi,vbmi2,vl}
- f16c rdrnd rdseed sse2 sse3 sse4_1 sse4_2 ssse3 vaes
- )
- # handle odd ones out not matching -m* and macros (keep same order)
- local cpuflags=( "${cpufeats[@]}" aes sha )
- local cpufeats+=( aesni shani )
-
- local -a intrins
- IFS=' ' read -ra intrins < <(
- : "$(test-flags-CXX "${cpuflags[@]/#/-m}")"
- $(tc-getCXX) -E -P ${_} ${CXXFLAGS} ${CPPFLAGS} - <<-EOF | tail -n 1
- #if defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__))
- #include <x86intrin.h>
- #endif
- $(printf '__%s__ ' "${cpuflags[@]^^}")
- EOF
- assert
- )
-
- # do nothing and leave to qtbase if no macros expanded (test failed?)
- if [[ \ ${intrins[*]} == *\ [^_\ ]* ]]; then
- local -i i
- for ((i=0; i<${#cpufeats[@]}; i++)); do
- [[ ${intrins[i]} == __* ]] &&
- mycmakeargs+=( -DQT_FEATURE_${cpufeats[i]}=OFF )
- done
- mycmakeargs+=( -DTEST_x86intrin=ON )
- fi
- fi
-
- qt6-build_src_configure
-}
-
-src_test() {
- local -x TZ=UTC
- local -x LC_TIME=C
-
- local CMAKE_SKIP_TESTS=(
- # broken with out-of-source + if qtbase is not already installed
- tst_moc
- tst_qmake
- # needs x11/opengl, we *could* run these but tend to be flaky
- # when opengl rendering is involved (even if software-only)
- tst_qopengl{,config,widget,window}
- tst_qgraphicsview
- tst_qx11info
- # fails with network sandbox
- tst_qdnslookup
- # fails with sandbox
- tst_qsharedmemory
- # typical to lack SCTP support on non-generic kernels
- tst_qsctpsocket
- # randomly fails without -j1, and not worth it over this (bug #916181)
- tst_qfiledialog{,2}
- # these can be flaky depending on the environment/toolchain
- tst_qlogging # backtrace log test can easily vary
- tst_q{,raw}font # affected by available fonts / settings (bug #914737)
- tst_qprinter # checks system's printers (bug #916216)
- tst_qstorageinfo # checks mounted filesystems
- # flaky due to using different test framework and fails with USE=-gui
- tst_selftests
- # known failing when using clang+glibc+stdc++, needs looking into
- tst_qthread
- # partially failing on x86 chroots and seemingly(?) harmless (dev-qt
- # revdeps tests pass), skip globally to avoid keywording flakiness
- tst_json
- tst_qcolorspace
- tst_qdoublevalidator
- tst_qglobal
- tst_qglyphrun
- tst_qvectornd
- tst_rcc
- # similarly, but on armv7 and potentially others (bug #914028)
- tst_qlineedit
- tst_qpainter
- # likewise, known failing at least on BE arches (bug #914033,914371)
- tst_qimagereader
- tst_qimagewriter
- tst_qpluginloader
- # partially broken on llvm-musl, needs looking into but skip to have
- # a baseline for regressions (rest of dev-qt still passes with musl)
- $(usev elibc_musl '
- tst_qicoimageformat
- tst_qimagereader
- tst_qimage
- ')
- # fails due to hppa's NaN handling, needs looking into (bug #914371)
- $(usev hppa '
- tst_qcborvalue
- tst_qnumeric
- ')
- # note: for linux, upstream only really runs+maintains tests for amd64
- # https://doc.qt.io/qt-6/supported-platforms.html
- )
-
- qt6-build_src_test
-}
-
-src_install() {
- qt6-build_src_install
-
- if use test; then
- local delete_bins=( # need a better way to handle this
- clientserver copier crashingServer desktopsettingsaware_helper
- echo fileWriterProcess modal_helper nospace 'one space'
- paster qcommandlineparser_test_helper qfileopeneventexternal
- socketprocess syslocaleapp tst_qhashseed_helper 'two space s'
- write-read-write
- )
- local delete=( # sigh
- "${D}${QT6_BINDIR}"/test*
- "${delete_bins[@]/#/${D}${QT6_BINDIR}/}"
- )
- # using -f given not tracking which tests may be skipped or not
- rm -rf -- "${delete[@]}" || die
- fi
-}
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gentoo-commits] repo/proj/libressl:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2024-02-25 2:42 orbea
0 siblings, 0 replies; 15+ messages in thread
From: orbea @ 2024-02-25 2:42 UTC (permalink / raw
To: gentoo-commits
commit: 8520a12ca5a255ea1f0b0523a585f2d4396a51b3
Author: orbea <orbea <AT> riseup <DOT> net>
AuthorDate: Sun Feb 25 02:05:21 2024 +0000
Commit: orbea <orbea <AT> riseup <DOT> net>
CommitDate: Sun Feb 25 02:05:21 2024 +0000
URL: https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=8520a12c
dev-qt/qtbase: sync ::gentoo
Signed-off-by: orbea <orbea <AT> riseup.net>
dev-qt/qtbase/files/qtbase-6.6.2-x32abi.patch | 13 +++++++++++++
dev-qt/qtbase/qtbase-6.6.2.ebuild | 1 +
2 files changed, 14 insertions(+)
diff --git a/dev-qt/qtbase/files/qtbase-6.6.2-x32abi.patch b/dev-qt/qtbase/files/qtbase-6.6.2-x32abi.patch
new file mode 100644
index 0000000..1204dcc
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.6.2-x32abi.patch
@@ -0,0 +1,13 @@
+https://bugs.gentoo.org/925103
+--- a/src/corelib/thread/qthread.h
++++ b/src/corelib/thread/qthread.h
+@@ -166,5 +166,9 @@
+ #elif defined(Q_PROCESSOR_X86_64) && ((defined(Q_OS_LINUX) && defined(__GLIBC__)) || defined(Q_OS_FREEBSD))
+ // x86_64 Linux, BSD uses FS
++# if defined(__ILP32__)
++ __asm__("mov %%fs:%c1, %0" : "=r" (tid) : "i" (2 * sizeof(void*)) : );
++# else
+ __asm__("movq %%fs:%c1, %0" : "=r" (tid) : "i" (2 * sizeof(void*)) : );
++# endif
+ #elif defined(Q_PROCESSOR_X86_64) && defined(Q_OS_WIN)
+ // See https://en.wikipedia.org/wiki/Win32_Thread_Information_Block
diff --git a/dev-qt/qtbase/qtbase-6.6.2.ebuild b/dev-qt/qtbase/qtbase-6.6.2.ebuild
index aafc726..9348366 100644
--- a/dev-qt/qtbase/qtbase-6.6.2.ebuild
+++ b/dev-qt/qtbase/qtbase-6.6.2.ebuild
@@ -138,6 +138,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-6.5.2-no-glx.patch
"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
"${FILESDIR}"/${PN}-6.6.1-forkfd-childstack-size.patch
+ "${FILESDIR}"/${PN}-6.6.2-x32abi.patch
)
src_prepare() {
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gentoo-commits] repo/proj/libressl:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2024-04-22 23:44 orbea
0 siblings, 0 replies; 15+ messages in thread
From: orbea @ 2024-04-22 23:44 UTC (permalink / raw
To: gentoo-commits
commit: 3c72ae0b23aa64d4cae4b690adff6d794a4724fb
Author: orbea <orbea <AT> riseup <DOT> net>
AuthorDate: Mon Apr 22 23:30:37 2024 +0000
Commit: orbea <orbea <AT> riseup <DOT> net>
CommitDate: Mon Apr 22 23:30:37 2024 +0000
URL: https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=3c72ae0b
dev-qt/qtbase: drop 6.6.2-r1, 6.6.3-r1
Signed-off-by: orbea <orbea <AT> riseup.net>
dev-qt/qtbase/Manifest | 2 -
dev-qt/qtbase/files/qtbase-6.5.2-no-glx.patch | 29 --
dev-qt/qtbase/files/qtbase-6.6.2-x32abi.patch | 13 -
dev-qt/qtbase/qtbase-6.6.2-r1.ebuild | 368 -------------------------
dev-qt/qtbase/qtbase-6.6.3-r1.ebuild | 371 --------------------------
5 files changed, 783 deletions(-)
diff --git a/dev-qt/qtbase/Manifest b/dev-qt/qtbase/Manifest
index ca12030..339951b 100644
--- a/dev-qt/qtbase/Manifest
+++ b/dev-qt/qtbase/Manifest
@@ -1,3 +1 @@
-DIST qtbase-everywhere-src-6.6.2.tar.xz 48689304 BLAKE2B e00f4ac7ede0694b7934612f7dc3acdd50139d385492034c3046625a973d8adbca059e9d4081e248502cab8c673806cdb6b8bc5cee6d9356bbb0a7845db528a2 SHA512 ea343bcf269779a4e078ed8baddfbe6c5ec4a34275c7d72b3f3928da60feece2ddc9ce4a380c6536a4e1654b483cee8918f8ad3038904725d2dd1c653ae83ece
-DIST qtbase-everywhere-src-6.6.3.tar.xz 48784716 BLAKE2B f79e369c31968d026fb50dd64d53931ea28c25bd7eb442806760f733dbcacd868774d1c991d4da80c5eb40e24d75ffaba61b2cb9036fdc2d189f865b22143596 SHA512 cd96903a3947a1f5cf6a3ff21ab0b3209ed421d2a8c45acb34ae5aa7ad0501cb79e26cfa81bc02141d5731ebfa662442f37806e97994332077d963c9e70a5f54
DIST qtbase-everywhere-src-6.7.0.tar.xz 49314276 BLAKE2B f4ec35fd3c15d56a28e1608dec927eaf34d84c2250405d921adadc16d90ec148f4983024dcf9be1832de91381d18e33fd7578d60d8654469e23530a210618e11 SHA512 72896cc5a677361779f49d60dbdfc33a21d77bd479e0586b0beb03eee2016d613aee56e798143a489431a07a5e7a7db4c7c046105a11b63dd178768f3a7f195a
diff --git a/dev-qt/qtbase/files/qtbase-6.5.2-no-glx.patch b/dev-qt/qtbase/files/qtbase-6.5.2-no-glx.patch
deleted file mode 100644
index f8263d1..0000000
--- a/dev-qt/qtbase/files/qtbase-6.5.2-no-glx.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Fixes build with libglvnd[-X].
-
-https://github.com/qt/qtbase/commit/929d9a4ca5c9eb0a590479182471d0bbc81589aa
-From: Yaroslav Isakov <yaroslav.isakov@gmail.com>
-Date: Sat, 8 Jul 2023 22:09:40 +0200
-Subject: [PATCH] Allow OpenGL to be found on X11-less Linux systems (using
- libOpenGL)
-
-Cmake supports finding OpenGL, even if there is no GLX (for glvnd) or
-old-style libGL. This change keeps old behavior, but in case, if
-X11-related OpenGL libraries cannot be found on Linux, it adds logic
-to check for (and link with) libOpenGL, if it is present.
---- a/cmake/FindWrapOpenGL.cmake
-+++ b/cmake/FindWrapOpenGL.cmake
-@@ -47,4 +47,14 @@
- target_link_libraries(WrapOpenGL::WrapOpenGL INTERFACE OpenGL::GL)
- endif()
-+elseif(UNIX AND NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "Integrity")
-+ # Requesting only the OpenGL component ensures CMake does not mark the package as
-+ # not found if neither GLX nor libGL are available. This allows finding OpenGL
-+ # on an X11-less Linux system.
-+ find_package(OpenGL ${WrapOpenGL_FIND_VERSION} COMPONENTS OpenGL)
-+ if (OpenGL_FOUND)
-+ set(WrapOpenGL_FOUND ON)
-+ add_library(WrapOpenGL::WrapOpenGL INTERFACE IMPORTED)
-+ target_link_libraries(WrapOpenGL::WrapOpenGL INTERFACE OpenGL::OpenGL)
-+ endif()
- endif()
-
diff --git a/dev-qt/qtbase/files/qtbase-6.6.2-x32abi.patch b/dev-qt/qtbase/files/qtbase-6.6.2-x32abi.patch
deleted file mode 100644
index 1204dcc..0000000
--- a/dev-qt/qtbase/files/qtbase-6.6.2-x32abi.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-https://bugs.gentoo.org/925103
---- a/src/corelib/thread/qthread.h
-+++ b/src/corelib/thread/qthread.h
-@@ -166,5 +166,9 @@
- #elif defined(Q_PROCESSOR_X86_64) && ((defined(Q_OS_LINUX) && defined(__GLIBC__)) || defined(Q_OS_FREEBSD))
- // x86_64 Linux, BSD uses FS
-+# if defined(__ILP32__)
-+ __asm__("mov %%fs:%c1, %0" : "=r" (tid) : "i" (2 * sizeof(void*)) : );
-+# else
- __asm__("movq %%fs:%c1, %0" : "=r" (tid) : "i" (2 * sizeof(void*)) : );
-+# endif
- #elif defined(Q_PROCESSOR_X86_64) && defined(Q_OS_WIN)
- // See https://en.wikipedia.org/wiki/Win32_Thread_Information_Block
diff --git a/dev-qt/qtbase/qtbase-6.6.2-r1.ebuild b/dev-qt/qtbase/qtbase-6.6.2-r1.ebuild
deleted file mode 100644
index 420111b..0000000
--- a/dev-qt/qtbase/qtbase-6.6.2-r1.ebuild
+++ /dev/null
@@ -1,368 +0,0 @@
-# Copyright 2021-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit flag-o-matic qt6-build toolchain-funcs
-
-DESCRIPTION="Cross-platform application development framework"
-
-if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-fi
-
-declare -A QT6_IUSE=(
- [global]="+ssl +udev zstd"
- [core]="icu"
- [modules]="+concurrent +dbus +gui +network +sql +xml"
-
- [gui]="
- +X accessibility eglfs evdev gles2-only +libinput
- opengl tslib vulkan +widgets
- "
- [network]="brotli gssapi libproxy sctp"
- [sql]="mysql oci8 odbc postgres +sqlite"
- [widgets]="cups gtk"
-
- [optfeature]="nls wayland" #810802,864509
-)
-IUSE="${QT6_IUSE[*]}"
-REQUIRED_USE="
- $(
- printf '%s? ( gui ) ' ${QT6_IUSE[gui]//+/}
- printf '%s? ( network ) ' ${QT6_IUSE[network]//+/}
- printf '%s? ( sql ) ' ${QT6_IUSE[sql]//+/}
- printf '%s? ( gui widgets ) ' ${QT6_IUSE[widgets]//+/}
- )
- accessibility? ( dbus )
- eglfs? ( opengl )
- gles2-only? ( opengl )
- gui? ( || ( X eglfs wayland ) )
- libinput? ( udev )
- sql? ( || ( ${QT6_IUSE[sql]//+/} ) )
- test? ( icu sql? ( sqlite ) )
-"
-
-# groups:
-# - global (configure.cmake)
-# - qtcore (src/corelib/configure.cmake)
-# - qtgui (src/gui/configure.cmake)
-# - qtnetwork (src/network/configure.cmake)
-# - qtprintsupport (src/printsupport/configure.cmake) [gui+widgets]
-# - qtsql (src/plugins/sqldrivers/configure.cmake)
-RDEPEND="
- sys-libs/zlib:=
- ssl? ( dev-libs/openssl:= )
- udev? ( virtual/libudev:= )
- zstd? ( app-arch/zstd:= )
-
- app-crypt/libb2
- dev-libs/double-conversion:=
- dev-libs/glib:2
- dev-libs/libpcre2:=[pcre16,unicode(+)]
- icu? ( dev-libs/icu:= )
-
- dbus? ( sys-apps/dbus )
- gui? (
- media-libs/fontconfig
- media-libs/freetype:2
- media-libs/harfbuzz:=
- media-libs/libjpeg-turbo:=
- media-libs/libpng:=
- x11-libs/libdrm
- x11-libs/libxkbcommon[X?]
- X? (
- x11-libs/libICE
- x11-libs/libSM
- x11-libs/libX11
- x11-libs/libxcb:=
- x11-libs/xcb-util-cursor
- x11-libs/xcb-util-image
- x11-libs/xcb-util-keysyms
- x11-libs/xcb-util-renderutil
- x11-libs/xcb-util-wm
- )
- accessibility? ( app-accessibility/at-spi2-core:2 )
- eglfs? ( media-libs/mesa[gbm(+)] )
- evdev? ( sys-libs/mtdev )
- libinput? ( dev-libs/libinput:= )
- opengl? (
- gles2-only? ( media-libs/libglvnd )
- !gles2-only? ( media-libs/libglvnd[X?] )
- )
- tslib? ( x11-libs/tslib )
- widgets? (
- cups? ( net-print/cups )
- gtk? (
- x11-libs/gdk-pixbuf:2
- x11-libs/gtk+:3
- x11-libs/pango
- )
- )
- )
- network? (
- brotli? ( app-arch/brotli:= )
- gssapi? ( virtual/krb5 )
- libproxy? ( net-libs/libproxy )
- )
- sql? (
- mysql? ( dev-db/mysql-connector-c:= )
- oci8? ( dev-db/oracle-instantclient:=[sdk] )
- odbc? ( dev-db/unixODBC )
- postgres? ( dev-db/postgresql:* )
- sqlite? ( dev-db/sqlite:3 )
- )
-"
-DEPEND="
- ${RDEPEND}
- X? ( x11-base/xorg-proto )
- gui? (
- vulkan? ( dev-util/vulkan-headers )
- )
- network? (
- sctp? ( net-misc/lksctp-tools )
- )
- test? (
- elibc_musl? ( sys-libs/timezone-data )
- )
-"
-BDEPEND="zstd? ( app-arch/libarchive[zstd] )" #910392
-PDEPEND="
- nls? ( ~dev-qt/qttranslations-${PV}:6 )
- wayland? ( ~dev-qt/qtwayland-${PV}:6 )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-6.6.0-libressl.patch
- "${FILESDIR}"/${PN}-6.5.2-hppa-forkfd-grow-stack.patch
- "${FILESDIR}"/${PN}-6.5.2-no-glx.patch
- "${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
- "${FILESDIR}"/${PN}-6.6.1-forkfd-childstack-size.patch
- "${FILESDIR}"/${PN}-6.6.2-x32abi.patch
-)
-
-src_prepare() {
- qt6-build_src_prepare
-
- if use test; then
- # test itself has -Werror=strict-aliasing issues, drop for simplicity
- sed -e '/add_subdirectory(qsharedpointer)/d' \
- -i tests/auto/corelib/tools/CMakeLists.txt || die
- fi
-}
-
-src_configure() {
- local mycmakeargs=(
- -DBUILD_WITH_PCH=OFF
-
- -DINSTALL_ARCHDATADIR="${QT6_ARCHDATADIR}"
- -DINSTALL_BINDIR="${QT6_BINDIR}"
- -DINSTALL_DATADIR="${QT6_DATADIR}"
- -DINSTALL_DOCDIR="${QT6_DOCDIR}"
- -DINSTALL_EXAMPLESDIR="${QT6_EXAMPLESDIR}"
- -DINSTALL_INCLUDEDIR="${QT6_HEADERDIR}"
- -DINSTALL_LIBDIR="${QT6_LIBDIR}"
- -DINSTALL_LIBEXECDIR="${QT6_LIBEXECDIR}"
- -DINSTALL_MKSPECSDIR="${QT6_MKSPECSDIR}"
- -DINSTALL_PLUGINSDIR="${QT6_PLUGINDIR}"
- -DINSTALL_QMLDIR="${QT6_QMLDIR}"
- -DINSTALL_SYSCONFDIR="${QT6_SYSCONFDIR}"
- -DINSTALL_TRANSLATIONSDIR="${QT6_TRANSLATIONDIR}"
-
- -DQT_FEATURE_relocatable=OFF #927691
- $(qt_feature ssl openssl)
- $(qt_feature ssl openssl_linked)
- $(qt_feature udev libudev)
- $(qt_feature zstd)
-
- # qtcore
- $(qt_feature icu)
-
- # tools
- -DQT_FEATURE_androiddeployqt=OFF
-
- # modules
- $(qt_feature concurrent)
- $(qt_feature dbus)
- $(qt_feature gui)
- $(qt_feature network)
- $(qt_feature sql)
- # trivial, and is often needed (sometimes even when not building tests)
- -DQT_FEATURE_testlib=ON
- $(qt_feature xml)
- )
-
- use gui && mycmakeargs+=(
- $(qt_feature X xcb)
- $(qt_feature X system_xcb_xinput)
- $(qt_feature X xkbcommon_x11)
- $(cmake_use_find_package X X11) # needed for truly no automagic
- $(qt_feature accessibility accessibility_atspi_bridge)
- $(qt_feature eglfs)
- $(qt_feature evdev)
- $(qt_feature evdev mtdev)
- $(qt_feature libinput)
- $(qt_feature tslib)
- $(qt_feature vulkan)
- $(qt_feature widgets)
- -DINPUT_opengl=$(usex opengl $(usex gles2-only es2 desktop) no)
- -DQT_FEATURE_system_textmarkdownreader=OFF # TODO?: package md4c
- ) && use widgets && mycmakeargs+=(
- # note: qtprintsupport is enabled w/ gui+widgets regardless of USE=cups
- $(qt_feature cups)
- $(qt_feature gtk gtk3)
- )
-
- use network && mycmakeargs+=(
- $(qt_feature brotli)
- $(qt_feature gssapi)
- $(qt_feature libproxy)
- $(qt_feature sctp)
- $(usev test -DQT_SKIP_DOCKER_COMPOSE=ON)
- -DQT_FEATURE_dtls=OFF # Required for LibreSSL
- )
-
- use sql && mycmakeargs+=(
- -DQT_FEATURE_sql_db2=OFF # unpackaged
- -DQT_FEATURE_sql_ibase=OFF # unpackaged
- -DQT_FEATURE_sql_mimer=OFF # unpackaged
- $(qt_feature mysql sql_mysql)
- $(qt_feature oci8 sql_oci)
- $(usev oci8 -DOracle_ROOT="${ESYSROOT}"/usr/$(get_libdir)/oracle/client)
- $(qt_feature odbc sql_odbc)
- $(qt_feature postgres sql_psql)
- $(qt_feature sqlite sql_sqlite)
- $(qt_feature sqlite system_sqlite)
- )
-
- if use amd64 || use x86; then
- # see bug #913400 for explanations
- local cpufeats=(
- # list of checked cpu features in configure.cmake
- avx avx2 avx512{bw,cd,dq,er,f,ifma,pf,vbmi,vbmi2,vl}
- f16c rdrnd rdseed sse2 sse3 sse4_1 sse4_2 ssse3 vaes
- )
- # handle odd ones out not matching -m* and macros (keep same order)
- local cpuflags=( "${cpufeats[@]}" aes sha )
- local cpufeats+=( aesni shani )
-
- local -a intrins
- IFS=' ' read -ra intrins < <(
- : "$(test-flags-CXX "${cpuflags[@]/#/-m}")"
- $(tc-getCXX) -E -P ${_} ${CXXFLAGS} ${CPPFLAGS} - <<-EOF | tail -n 1
- $(printf '__%s__ ' "${cpuflags[@]^^}")
- EOF
- assert
- )
-
- # do nothing and leave to qtbase if no macros expanded (test failed?)
- if [[ \ ${intrins[*]} == *\ [^_\ ]* ]]; then
- local -i i
- for ((i=0; i<${#cpufeats[@]}; i++)); do
- [[ ${intrins[i]} == __* ]] &&
- mycmakeargs+=( -DQT_FEATURE_${cpufeats[i]}=OFF )
- done
- mycmakeargs+=( -DTEST_x86intrin=ON )
- fi
- fi
-
- qt6-build_src_configure
-}
-
-src_test() {
- local -x TZ=UTC
- local -x LC_TIME=C
-
- local CMAKE_SKIP_TESTS=(
- # broken with out-of-source + if qtbase is not already installed
- tst_moc
- tst_qmake
- # similarly broken when relocatable=OFF (bug #927691)
- tst_qapplication
- tst_qt_cmake_create
- tst_uic
- # needs x11/opengl, we *could* run these but tend to be flaky
- # when opengl rendering is involved (even if software-only)
- tst_qopengl{,config,widget,window}
- tst_qgraphicsview
- tst_qx11info
- # fails with network sandbox
- tst_qdnslookup
- # fails with sandbox
- tst_qsharedmemory
- # typical to lack SCTP support on non-generic kernels
- tst_qsctpsocket
- # randomly fails without -j1, and not worth it over this (bug #916181)
- tst_qfiledialog{,2}
- # may randomly hang+timeout, perhaps related to -j as well
- tst_qtimer
- # these can be flaky depending on the environment/toolchain
- tst_qlogging # backtrace log test can easily vary
- tst_q{,raw}font # affected by available fonts / settings (bug #914737)
- tst_qprinter # checks system's printers (bug #916216)
- tst_qstorageinfo # checks mounted filesystems
- # flaky due to using different test framework and fails with USE=-gui
- tst_selftests
- # known failing when using clang+glibc+stdc++, needs looking into
- tst_qthread
- # partially failing on x86 chroots and seemingly(?) harmless (dev-qt
- # revdeps tests pass), skip globally to avoid keywording flakiness
- tst_json
- tst_qcolorspace
- tst_qdoublevalidator
- tst_qglobal
- tst_qglyphrun
- tst_qvectornd
- tst_rcc
- # similarly, but on armv7 and potentially others (bug #914028)
- tst_qlineedit
- tst_qpainter
- # likewise, known failing on BE arches (bug #914033,914371,918878)
- tst_qimagereader
- tst_qimagewriter
- tst_qpluginloader
- tst_quuid # >=6.6.2 had related fixes, needs retesting
- # partially broken on llvm-musl, needs looking into but skip to have
- # a baseline for regressions (rest of dev-qt still passes with musl)
- $(usev elibc_musl '
- tst_qicoimageformat
- tst_qimagereader
- tst_qimage
- ')
- # fails due to hppa's NaN handling, needs looking into (bug #914371)
- $(usev hppa '
- tst_qcborvalue
- tst_qnumeric
- ')
- # bug #914033
- $(usev sparc '
- tst_qbuffer
- tst_qprocess
- tst_qtconcurrentiteratekernel
- ')
- # note: for linux, upstream only really runs+maintains tests for amd64
- # https://doc.qt.io/qt-6/supported-platforms.html
- )
-
- qt6-build_src_test
-}
-
-src_install() {
- qt6-build_src_install
-
- if use test; then
- local delete_bins=( # need a better way to handle this
- clientserver copier crashingServer desktopsettingsaware_helper
- echo fileWriterProcess modal_helper nospace 'one space'
- paster qcommandlineparser_test_helper qfileopeneventexternal
- socketprocess syslocaleapp tst_qhashseed_helper 'two space s'
- write-read-write
- )
- local delete=( # sigh
- "${D}${QT6_BINDIR}"/test*
- "${delete_bins[@]/#/${D}${QT6_BINDIR}/}"
- )
- # using -f given not tracking which tests may be skipped or not
- rm -rf -- "${delete[@]}" || die
- fi
-}
diff --git a/dev-qt/qtbase/qtbase-6.6.3-r1.ebuild b/dev-qt/qtbase/qtbase-6.6.3-r1.ebuild
deleted file mode 100644
index ffc9fda..0000000
--- a/dev-qt/qtbase/qtbase-6.6.3-r1.ebuild
+++ /dev/null
@@ -1,371 +0,0 @@
-# Copyright 2021-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit flag-o-matic qt6-build toolchain-funcs
-
-DESCRIPTION="Cross-platform application development framework"
-
-if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-fi
-
-declare -A QT6_IUSE=(
- [global]="+ssl +udev zstd"
- [core]="icu"
- [modules]="+concurrent +dbus +gui +network +sql +xml"
-
- [gui]="
- +X accessibility eglfs evdev gles2-only +libinput
- opengl tslib vulkan +widgets
- "
- [network]="brotli gssapi libproxy sctp"
- [sql]="mysql oci8 odbc postgres +sqlite"
- [widgets]="cups gtk"
-
- [optfeature]="nls wayland" #810802,864509
-)
-IUSE="${QT6_IUSE[*]}"
-REQUIRED_USE="
- $(
- printf '%s? ( gui ) ' ${QT6_IUSE[gui]//+/}
- printf '%s? ( network ) ' ${QT6_IUSE[network]//+/}
- printf '%s? ( sql ) ' ${QT6_IUSE[sql]//+/}
- printf '%s? ( gui widgets ) ' ${QT6_IUSE[widgets]//+/}
- )
- accessibility? ( dbus )
- eglfs? ( opengl )
- gles2-only? ( opengl )
- gui? ( || ( X eglfs wayland ) )
- libinput? ( udev )
- sql? ( || ( ${QT6_IUSE[sql]//+/} ) )
- test? ( icu sql? ( sqlite ) )
-"
-
-# groups:
-# - global (configure.cmake)
-# - qtcore (src/corelib/configure.cmake)
-# - qtgui (src/gui/configure.cmake)
-# - qtnetwork (src/network/configure.cmake)
-# - qtprintsupport (src/printsupport/configure.cmake) [gui+widgets]
-# - qtsql (src/plugins/sqldrivers/configure.cmake)
-RDEPEND="
- sys-libs/zlib:=
- ssl? ( dev-libs/openssl:= )
- udev? ( virtual/libudev:= )
- zstd? ( app-arch/zstd:= )
-
- app-crypt/libb2
- dev-libs/double-conversion:=
- dev-libs/glib:2
- dev-libs/libpcre2:=[pcre16,unicode(+)]
- icu? ( dev-libs/icu:= )
-
- dbus? ( sys-apps/dbus )
- gui? (
- media-libs/fontconfig
- media-libs/freetype:2
- media-libs/harfbuzz:=
- media-libs/libjpeg-turbo:=
- media-libs/libpng:=
- x11-libs/libdrm
- x11-libs/libxkbcommon[X?]
- X? (
- x11-libs/libICE
- x11-libs/libSM
- x11-libs/libX11
- x11-libs/libxcb:=
- x11-libs/xcb-util-cursor
- x11-libs/xcb-util-image
- x11-libs/xcb-util-keysyms
- x11-libs/xcb-util-renderutil
- x11-libs/xcb-util-wm
- )
- accessibility? ( app-accessibility/at-spi2-core:2 )
- eglfs? ( media-libs/mesa[gbm(+)] )
- evdev? ( sys-libs/mtdev )
- libinput? ( dev-libs/libinput:= )
- opengl? (
- gles2-only? ( media-libs/libglvnd )
- !gles2-only? ( media-libs/libglvnd[X?] )
- )
- tslib? ( x11-libs/tslib )
- widgets? (
- cups? ( net-print/cups )
- gtk? (
- x11-libs/gdk-pixbuf:2
- x11-libs/gtk+:3
- x11-libs/pango
- )
- )
- )
- network? (
- brotli? ( app-arch/brotli:= )
- gssapi? ( virtual/krb5 )
- libproxy? ( net-libs/libproxy )
- )
- sql? (
- mysql? ( dev-db/mysql-connector-c:= )
- oci8? ( dev-db/oracle-instantclient:=[sdk] )
- odbc? ( dev-db/unixODBC )
- postgres? ( dev-db/postgresql:* )
- sqlite? ( dev-db/sqlite:3 )
- )
-"
-DEPEND="
- ${RDEPEND}
- X? ( x11-base/xorg-proto )
- gui? (
- vulkan? ( dev-util/vulkan-headers )
- )
- network? (
- sctp? ( net-misc/lksctp-tools )
- )
- test? (
- elibc_musl? ( sys-libs/timezone-data )
- )
-"
-BDEPEND="zstd? ( app-arch/libarchive[zstd] )" #910392
-PDEPEND="
- nls? ( ~dev-qt/qttranslations-${PV}:6 )
- wayland? ( ~dev-qt/qtwayland-${PV}:6 )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-6.6.0-libressl.patch
- "${FILESDIR}"/${PN}-6.5.2-hppa-forkfd-grow-stack.patch
- "${FILESDIR}"/${PN}-6.5.2-no-glx.patch
- "${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
- "${FILESDIR}"/${PN}-6.6.1-forkfd-childstack-size.patch
- "${FILESDIR}"/${PN}-6.6.3-gcc14-avx512fp16.patch
- "${FILESDIR}"/${PN}-6.6.3-pkgconf-deps.patch
-)
-
-src_prepare() {
- qt6-build_src_prepare
-
- if use test; then
- # test itself has -Werror=strict-aliasing issues, drop for simplicity
- sed -e '/add_subdirectory(qsharedpointer)/d' \
- -i tests/auto/corelib/tools/CMakeLists.txt || die
- fi
-}
-
-src_configure() {
- local mycmakeargs=(
- -DBUILD_WITH_PCH=OFF
-
- -DINSTALL_ARCHDATADIR="${QT6_ARCHDATADIR}"
- -DINSTALL_BINDIR="${QT6_BINDIR}"
- -DINSTALL_DATADIR="${QT6_DATADIR}"
- -DINSTALL_DOCDIR="${QT6_DOCDIR}"
- -DINSTALL_EXAMPLESDIR="${QT6_EXAMPLESDIR}"
- -DINSTALL_INCLUDEDIR="${QT6_HEADERDIR}"
- -DINSTALL_LIBDIR="${QT6_LIBDIR}"
- -DINSTALL_LIBEXECDIR="${QT6_LIBEXECDIR}"
- -DINSTALL_MKSPECSDIR="${QT6_MKSPECSDIR}"
- -DINSTALL_PLUGINSDIR="${QT6_PLUGINDIR}"
- -DINSTALL_QMLDIR="${QT6_QMLDIR}"
- -DINSTALL_SYSCONFDIR="${QT6_SYSCONFDIR}"
- -DINSTALL_TRANSLATIONSDIR="${QT6_TRANSLATIONDIR}"
-
- -DQT_UNITY_BUILD=ON # ~30% faster build, affects other dev-qt/* too
-
- -DQT_FEATURE_relocatable=OFF #927691
- $(qt_feature ssl openssl)
- $(qt_feature ssl openssl_linked)
- $(qt_feature udev libudev)
- $(qt_feature zstd)
-
- # qtcore
- $(qt_feature icu)
-
- # tools
- -DQT_FEATURE_androiddeployqt=OFF
-
- # modules
- $(qt_feature concurrent)
- $(qt_feature dbus)
- $(qt_feature gui)
- $(qt_feature network)
- $(qt_feature sql)
- # trivial, and is often needed (sometimes even when not building tests)
- -DQT_FEATURE_testlib=ON
- $(qt_feature xml)
- )
-
- use gui && mycmakeargs+=(
- $(qt_feature X xcb)
- $(qt_feature X system_xcb_xinput)
- $(qt_feature X xkbcommon_x11)
- $(cmake_use_find_package X X11) # needed for truly no automagic
- $(qt_feature accessibility accessibility_atspi_bridge)
- $(qt_feature eglfs)
- $(qt_feature evdev)
- $(qt_feature evdev mtdev)
- $(qt_feature libinput)
- $(qt_feature tslib)
- $(qt_feature vulkan)
- $(qt_feature widgets)
- -DINPUT_opengl=$(usex opengl $(usex gles2-only es2 desktop) no)
- -DQT_FEATURE_system_textmarkdownreader=OFF # TODO?: package md4c
- ) && use widgets && mycmakeargs+=(
- # note: qtprintsupport is enabled w/ gui+widgets regardless of USE=cups
- $(qt_feature cups)
- $(qt_feature gtk gtk3)
- )
-
- use network && mycmakeargs+=(
- $(qt_feature brotli)
- $(qt_feature gssapi)
- $(qt_feature libproxy)
- $(qt_feature sctp)
- $(usev test -DQT_SKIP_DOCKER_COMPOSE=ON)
- -DQT_FEATURE_dtls=OFF # Required for LibreSSL
- )
-
- use sql && mycmakeargs+=(
- -DQT_FEATURE_sql_db2=OFF # unpackaged
- -DQT_FEATURE_sql_ibase=OFF # unpackaged
- -DQT_FEATURE_sql_mimer=OFF # unpackaged
- $(qt_feature mysql sql_mysql)
- $(qt_feature oci8 sql_oci)
- $(usev oci8 -DOracle_ROOT="${ESYSROOT}"/usr/$(get_libdir)/oracle/client)
- $(qt_feature odbc sql_odbc)
- $(qt_feature postgres sql_psql)
- $(qt_feature sqlite sql_sqlite)
- $(qt_feature sqlite system_sqlite)
- )
-
- if use amd64 || use x86; then
- # see bug #913400 for explanations
- local cpufeats=(
- # list of checked cpu features in configure.cmake
- avx avx2 avx512{bw,cd,dq,er,f,ifma,pf,vbmi,vbmi2,vl}
- f16c rdrnd rdseed sse2 sse3 sse4_1 sse4_2 ssse3 vaes
- )
- # handle odd ones out not matching -m* and macros (keep same order)
- local cpuflags=( "${cpufeats[@]}" aes sha )
- local cpufeats+=( aesni shani )
-
- local -a intrins
- IFS=' ' read -ra intrins < <(
- : "$(test-flags-CXX "${cpuflags[@]/#/-m}")"
- $(tc-getCXX) -E -P ${_} ${CXXFLAGS} ${CPPFLAGS} - <<-EOF | tail -n 1
- $(printf '__%s__ ' "${cpuflags[@]^^}")
- EOF
- assert
- )
-
- # do nothing and leave to qtbase if no macros expanded (test failed?)
- if [[ \ ${intrins[*]} == *\ [^_\ ]* ]]; then
- local -i i
- for ((i=0; i<${#cpufeats[@]}; i++)); do
- [[ ${intrins[i]} == __* ]] &&
- mycmakeargs+=( -DQT_FEATURE_${cpufeats[i]}=OFF )
- done
- mycmakeargs+=( -DTEST_x86intrin=ON )
- fi
- fi
-
- qt6-build_src_configure
-}
-
-src_test() {
- local -x TZ=UTC
- local -x LC_TIME=C
-
- local CMAKE_SKIP_TESTS=(
- # broken with out-of-source + if qtbase is not already installed
- tst_moc
- tst_qmake
- # similarly broken when relocatable=OFF (bug #927691)
- tst_qapplication
- tst_qt_cmake_create
- tst_uic
- # needs x11/opengl, we *could* run these but tend to be flaky
- # when opengl rendering is involved (even if software-only)
- tst_qopengl{,config,widget,window}
- tst_qgraphicsview
- tst_qx11info
- # fails with network sandbox
- tst_qdnslookup
- # fails with sandbox
- tst_qsharedmemory
- # typical to lack SCTP support on non-generic kernels
- tst_qsctpsocket
- # randomly fails without -j1, and not worth it over this (bug #916181)
- tst_qfiledialog{,2}
- # may randomly hang+timeout, perhaps related to -j as well
- tst_qtimer
- # these can be flaky depending on the environment/toolchain
- tst_qlogging # backtrace log test can easily vary
- tst_q{,raw}font # affected by available fonts / settings (bug #914737)
- tst_qprinter # checks system's printers (bug #916216)
- tst_qstorageinfo # checks mounted filesystems
- # flaky due to using different test framework and fails with USE=-gui
- tst_selftests
- # known failing when using clang+glibc+stdc++, needs looking into
- tst_qthread
- # partially failing on x86 chroots and seemingly(?) harmless (dev-qt
- # revdeps tests pass), skip globally to avoid keywording flakiness
- tst_json
- tst_qcolorspace
- tst_qdoublevalidator
- tst_qglobal
- tst_qglyphrun
- tst_qvectornd
- tst_rcc
- # similarly, but on armv7 and potentially others (bug #914028)
- tst_qlineedit
- tst_qpainter
- # likewise, known failing on BE arches (bug #914033,914371,918878)
- tst_qimagereader
- tst_qimagewriter
- tst_qpluginloader
- tst_quuid # >=6.6.2 had related fixes, needs retesting
- # partially broken on llvm-musl, needs looking into but skip to have
- # a baseline for regressions (rest of dev-qt still passes with musl)
- $(usev elibc_musl '
- tst_qicoimageformat
- tst_qimagereader
- tst_qimage
- ')
- # fails due to hppa's NaN handling, needs looking into (bug #914371)
- $(usev hppa '
- tst_qcborvalue
- tst_qnumeric
- ')
- # bug #914033
- $(usev sparc '
- tst_qbuffer
- tst_qprocess
- tst_qtconcurrentiteratekernel
- ')
- # note: for linux, upstream only really runs+maintains tests for amd64
- # https://doc.qt.io/qt-6/supported-platforms.html
- )
-
- qt6-build_src_test
-}
-
-src_install() {
- qt6-build_src_install
-
- if use test; then
- local delete_bins=( # need a better way to handle this
- clientserver copier crashingServer desktopsettingsaware_helper
- echo fileWriterProcess modal_helper nospace 'one space'
- paster qcommandlineparser_test_helper qfileopeneventexternal
- socketprocess syslocaleapp tst_qhashseed_helper 'two space s'
- write-read-write
- )
- local delete=( # sigh
- "${D}${QT6_BINDIR}"/test*
- "${delete_bins[@]/#/${D}${QT6_BINDIR}/}"
- )
- # using -f given not tracking which tests may be skipped or not
- rm -rf -- "${delete[@]}" || die
- fi
-}
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gentoo-commits] repo/proj/libressl:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2024-05-03 0:59 orbea
0 siblings, 0 replies; 15+ messages in thread
From: orbea @ 2024-05-03 0:59 UTC (permalink / raw
To: gentoo-commits
commit: 062236cf874509ab4640351ec35a277b7e61d0c2
Author: Saki Xi <space_raccoon <AT> riseup <DOT> net>
AuthorDate: Fri May 3 00:34:23 2024 +0000
Commit: orbea <orbea <AT> riseup <DOT> net>
CommitDate: Fri May 3 00:58:13 2024 +0000
URL: https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=062236cf
dev-qt/qtbase: upstream sync
Signed-off-by: Saki Xi <space_raccoon <AT> riseup.net>
Closes: https://github.com/gentoo/libressl/pull/558
Signed-off-by: orbea <orbea <AT> riseup.net>
.../qtbase/files/qtbase-6.7.0-CVE-2024-33861.patch | 23 ++++++++++++++++++++++
...base-6.7.0-r1.ebuild => qtbase-6.7.0-r2.ebuild} | 1 +
2 files changed, 24 insertions(+)
diff --git a/dev-qt/qtbase/files/qtbase-6.7.0-CVE-2024-33861.patch b/dev-qt/qtbase/files/qtbase-6.7.0-CVE-2024-33861.patch
new file mode 100644
index 0000000..0a73d72
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.7.0-CVE-2024-33861.patch
@@ -0,0 +1,23 @@
+https://bugs.gentoo.org/931096
+https://www.qt.io/blog/security-advisory-qstringconverter
+https://codereview.qt-project.org/c/qt/qtbase/+/556191
+--- a/src/corelib/text/qstringconverter.cpp
++++ b/src/corelib/text/qstringconverter.cpp
+@@ -1954,7 +1954,7 @@ struct QStringConverterICU : QStringConverter
+ const void *context;
+ ucnv_getToUCallBack(icu_conv, &action, &context);
+ if (context != state)
+- ucnv_setToUCallBack(icu_conv, action, &state, nullptr, nullptr, &err);
++ ucnv_setToUCallBack(icu_conv, action, state, nullptr, nullptr, &err);
+
+ ucnv_toUnicode(icu_conv, &target, targetLimit, &source, sourceLimit, nullptr, flush, &err);
+ // We did reserve enough space:
+@@ -1987,7 +1987,7 @@ struct QStringConverterICU : QStringConverter
+ const void *context;
+ ucnv_getFromUCallBack(icu_conv, &action, &context);
+ if (context != state)
+- ucnv_setFromUCallBack(icu_conv, action, &state, nullptr, nullptr, &err);
++ ucnv_setFromUCallBack(icu_conv, action, state, nullptr, nullptr, &err);
+
+ ucnv_fromUnicode(icu_conv, &target, targetLimit, &source, sourceLimit, nullptr, flush, &err);
+ // We did reserve enough space:
diff --git a/dev-qt/qtbase/qtbase-6.7.0-r1.ebuild b/dev-qt/qtbase/qtbase-6.7.0-r2.ebuild
similarity index 99%
rename from dev-qt/qtbase/qtbase-6.7.0-r1.ebuild
rename to dev-qt/qtbase/qtbase-6.7.0-r2.ebuild
index fb2a882..50d8950 100644
--- a/dev-qt/qtbase/qtbase-6.7.0-r1.ebuild
+++ b/dev-qt/qtbase/qtbase-6.7.0-r2.ebuild
@@ -142,6 +142,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-6.6.3-gcc14-avx512fp16.patch
"${FILESDIR}"/${PN}-6.6.3-pkgconf-deps.patch
"${FILESDIR}"/${PN}-6.7.0-qspan-ifdef.patch
+ "${FILESDIR}"/${PN}-6.7.0-CVE-2024-33861.patch
)
src_prepare() {
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gentoo-commits] repo/proj/libressl:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2024-06-11 19:21 orbea
0 siblings, 0 replies; 15+ messages in thread
From: orbea @ 2024-06-11 19:21 UTC (permalink / raw
To: gentoo-commits
commit: 7796878dbdb74004e30c2b0bbd3afab668dd23cc
Author: orbea <orbea <AT> riseup <DOT> net>
AuthorDate: Tue Jun 11 19:21:01 2024 +0000
Commit: orbea <orbea <AT> riseup <DOT> net>
CommitDate: Tue Jun 11 19:21:01 2024 +0000
URL: https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=7796878d
dev-qt/qtbase: drop 6.7.0-r2
Signed-off-by: orbea <orbea <AT> riseup.net>
dev-qt/qtbase/Manifest | 1 -
.../qtbase/files/qtbase-6.7.0-CVE-2024-33861.patch | 23 --
dev-qt/qtbase/files/qtbase-6.7.0-qspan-ifdef.patch | 29 --
dev-qt/qtbase/qtbase-6.7.0-r2.ebuild | 384 ---------------------
4 files changed, 437 deletions(-)
diff --git a/dev-qt/qtbase/Manifest b/dev-qt/qtbase/Manifest
index 5852d21..0b37c03 100644
--- a/dev-qt/qtbase/Manifest
+++ b/dev-qt/qtbase/Manifest
@@ -1,2 +1 @@
-DIST qtbase-everywhere-src-6.7.0.tar.xz 49314276 BLAKE2B f4ec35fd3c15d56a28e1608dec927eaf34d84c2250405d921adadc16d90ec148f4983024dcf9be1832de91381d18e33fd7578d60d8654469e23530a210618e11 SHA512 72896cc5a677361779f49d60dbdfc33a21d77bd479e0586b0beb03eee2016d613aee56e798143a489431a07a5e7a7db4c7c046105a11b63dd178768f3a7f195a
DIST qtbase-everywhere-src-6.7.1.tar.xz 49324536 BLAKE2B 5e5a5801c29c1ac541812931cd56709a934a500ce4d5a38e7d3776620cb46db0d25408c22cbf33a7bcc657098c571e501fde14f523a77acba1827edd977d2bc5 SHA512 864bebfc3659907e52b8dc3f62a65d431573ef2bf406a9f71c688229083a2128c5474f75823275d11948be3d031de1d6427acf373f977df9ee9e73a27ef56efb
diff --git a/dev-qt/qtbase/files/qtbase-6.7.0-CVE-2024-33861.patch b/dev-qt/qtbase/files/qtbase-6.7.0-CVE-2024-33861.patch
deleted file mode 100644
index 0a73d72..0000000
--- a/dev-qt/qtbase/files/qtbase-6.7.0-CVE-2024-33861.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-https://bugs.gentoo.org/931096
-https://www.qt.io/blog/security-advisory-qstringconverter
-https://codereview.qt-project.org/c/qt/qtbase/+/556191
---- a/src/corelib/text/qstringconverter.cpp
-+++ b/src/corelib/text/qstringconverter.cpp
-@@ -1954,7 +1954,7 @@ struct QStringConverterICU : QStringConverter
- const void *context;
- ucnv_getToUCallBack(icu_conv, &action, &context);
- if (context != state)
-- ucnv_setToUCallBack(icu_conv, action, &state, nullptr, nullptr, &err);
-+ ucnv_setToUCallBack(icu_conv, action, state, nullptr, nullptr, &err);
-
- ucnv_toUnicode(icu_conv, &target, targetLimit, &source, sourceLimit, nullptr, flush, &err);
- // We did reserve enough space:
-@@ -1987,7 +1987,7 @@ struct QStringConverterICU : QStringConverter
- const void *context;
- ucnv_getFromUCallBack(icu_conv, &action, &context);
- if (context != state)
-- ucnv_setFromUCallBack(icu_conv, action, &state, nullptr, nullptr, &err);
-+ ucnv_setFromUCallBack(icu_conv, action, state, nullptr, nullptr, &err);
-
- ucnv_fromUnicode(icu_conv, &target, targetLimit, &source, sourceLimit, nullptr, flush, &err);
- // We did reserve enough space:
diff --git a/dev-qt/qtbase/files/qtbase-6.7.0-qspan-ifdef.patch b/dev-qt/qtbase/files/qtbase-6.7.0-qspan-ifdef.patch
deleted file mode 100644
index 4c2a37c..0000000
--- a/dev-qt/qtbase/files/qtbase-6.7.0-qspan-ifdef.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-https://bugreports.qt.io/browse/QTBUG-123937
-From 6810220218cbbf2854ecdedb291f7e4a84b31e54 Mon Sep 17 00:00:00 2001
-From: Albert Astals Cid <aacid@kde.org>
-Date: Wed, 3 Apr 2024 00:47:01 +0200
-Subject: [PATCH] Use ifdef instead of if for __cpp_lib_span
-
-Like the other times it's used in this file
-
-This is causing compilation errors in projects that use -Werror=undef
-
-Fixes: QTBUG-123937
-Change-Id: I0cdd2910755dc9079890011dd8dbc27a6e64793e
-Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-(cherry picked from commit 699ddcb15b5e981d32ea65d1c1a12f8fa0b06e0d)
-Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
---- a/src/corelib/tools/qspan.h
-+++ b/src/corelib/tools/qspan.h
-@@ -297,7 +297,7 @@ public:
- : QSpanBase(il.begin(), il.size())
- {}
-
--#if __cpp_lib_span
-+#ifdef __cpp_lib_span
- template <typename S, size_t N, if_qualification_conversion<S> = true>
- Q_IMPLICIT constexpr QSpanBase(std::span<S, N> other) noexcept
- : QSpanBase(other.data(), other.size())
---
-2.44.0
-
diff --git a/dev-qt/qtbase/qtbase-6.7.0-r2.ebuild b/dev-qt/qtbase/qtbase-6.7.0-r2.ebuild
deleted file mode 100644
index 50d8950..0000000
--- a/dev-qt/qtbase/qtbase-6.7.0-r2.ebuild
+++ /dev/null
@@ -1,384 +0,0 @@
-# Copyright 2021-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit flag-o-matic qt6-build toolchain-funcs
-
-DESCRIPTION="Cross-platform application development framework"
-
-if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-fi
-
-declare -A QT6_IUSE=(
- [global]="+ssl +udev zstd"
- [core]="icu"
- [modules]="+concurrent +dbus +gui +network +sql +xml"
-
- [gui]="
- +X accessibility eglfs evdev gles2-only +libinput
- opengl renderdoc tslib vulkan wayland +widgets
- "
- [network]="brotli gssapi libproxy sctp"
- [sql]="mysql oci8 odbc postgres +sqlite"
- [widgets]="cups gtk"
-
- [optfeature]="nls" #810802
-)
-IUSE="${QT6_IUSE[*]}"
-REQUIRED_USE="
- $(
- printf '%s? ( gui ) ' ${QT6_IUSE[gui]//+/}
- printf '%s? ( network ) ' ${QT6_IUSE[network]//+/}
- printf '%s? ( sql ) ' ${QT6_IUSE[sql]//+/}
- printf '%s? ( gui widgets ) ' ${QT6_IUSE[widgets]//+/}
- )
- accessibility? ( dbus )
- eglfs? ( opengl )
- gles2-only? ( opengl )
- gui? ( || ( X eglfs wayland ) )
- libinput? ( udev )
- sql? ( || ( ${QT6_IUSE[sql]//+/} ) )
- test? ( icu sql? ( sqlite ) )
-"
-
-# groups:
-# - global (configure.cmake)
-# - qtcore (src/corelib/configure.cmake)
-# - qtgui (src/gui/configure.cmake)
-# - qtnetwork (src/network/configure.cmake)
-# - qtprintsupport (src/printsupport/configure.cmake) [gui+widgets]
-# - qtsql (src/plugins/sqldrivers/configure.cmake)
-# dlopen: renderdoc
-RDEPEND="
- sys-libs/zlib:=
- ssl? ( dev-libs/openssl:= )
- udev? ( virtual/libudev:= )
- zstd? ( app-arch/zstd:= )
-
- app-crypt/libb2
- dev-libs/double-conversion:=
- dev-libs/glib:2
- dev-libs/libpcre2:=[pcre16,unicode(+)]
- icu? ( dev-libs/icu:= )
-
- dbus? ( sys-apps/dbus )
- gui? (
- media-libs/fontconfig
- media-libs/freetype:2
- media-libs/harfbuzz:=
- media-libs/libjpeg-turbo:=
- media-libs/libpng:=
- x11-libs/libdrm
- x11-libs/libxkbcommon[X?]
- X? (
- x11-libs/libICE
- x11-libs/libSM
- x11-libs/libX11
- x11-libs/libxcb:=
- x11-libs/xcb-util-cursor
- x11-libs/xcb-util-image
- x11-libs/xcb-util-keysyms
- x11-libs/xcb-util-renderutil
- x11-libs/xcb-util-wm
- )
- accessibility? ( app-accessibility/at-spi2-core:2 )
- eglfs? ( media-libs/mesa[gbm(+)] )
- evdev? ( sys-libs/mtdev )
- libinput? ( dev-libs/libinput:= )
- opengl? (
- gles2-only? ( media-libs/libglvnd )
- !gles2-only? ( media-libs/libglvnd[X?] )
- )
- renderdoc? ( media-gfx/renderdoc )
- tslib? ( x11-libs/tslib )
- widgets? (
- cups? ( net-print/cups )
- gtk? (
- x11-libs/gdk-pixbuf:2
- x11-libs/gtk+:3
- x11-libs/pango
- )
- )
- )
- network? (
- brotli? ( app-arch/brotli:= )
- gssapi? ( virtual/krb5 )
- libproxy? ( net-libs/libproxy )
- )
- sql? (
- mysql? ( dev-db/mysql-connector-c:= )
- oci8? ( dev-db/oracle-instantclient:=[sdk] )
- odbc? ( dev-db/unixODBC )
- postgres? ( dev-db/postgresql:* )
- sqlite? ( dev-db/sqlite:3 )
- )
-"
-DEPEND="
- ${RDEPEND}
- X? ( x11-base/xorg-proto )
- gui? (
- vulkan? ( dev-util/vulkan-headers )
- )
- network? (
- sctp? ( net-misc/lksctp-tools )
- )
- test? (
- elibc_musl? ( sys-libs/timezone-data )
- )
-"
-BDEPEND="zstd? ( app-arch/libarchive[zstd] )" #910392
-PDEPEND="
- nls? ( ~dev-qt/qttranslations-${PV}:6 )
- wayland? ( ~dev-qt/qtwayland-${PV}:6 )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-6.6.0-libressl.patch
- "${FILESDIR}"/${PN}-6.5.2-hppa-forkfd-grow-stack.patch
- "${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
- "${FILESDIR}"/${PN}-6.6.1-forkfd-childstack-size.patch
- "${FILESDIR}"/${PN}-6.6.3-gcc14-avx512fp16.patch
- "${FILESDIR}"/${PN}-6.6.3-pkgconf-deps.patch
- "${FILESDIR}"/${PN}-6.7.0-qspan-ifdef.patch
- "${FILESDIR}"/${PN}-6.7.0-CVE-2024-33861.patch
-)
-
-src_prepare() {
- qt6-build_src_prepare
-
- if use test; then
- # test itself has -Werror=strict-aliasing issues, drop for simplicity
- sed -e '/add_subdirectory(qsharedpointer)/d' \
- -i tests/auto/corelib/tools/CMakeLists.txt || die
-
- # workaround for __extendhfxf2 being used for tst_qfloat16.cpp
- # which is unavailable with compiler-rt (assume used if clang)
- if tc-is-clang; then
- sed -e '/add_subdirectory(qfloat16)/d' \
- -i tests/auto/corelib/global/CMakeLists.txt || die
- fi
- fi
-}
-
-src_configure() {
- local mycmakeargs=(
- -DBUILD_WITH_PCH=OFF
-
- -DINSTALL_ARCHDATADIR="${QT6_ARCHDATADIR}"
- -DINSTALL_BINDIR="${QT6_BINDIR}"
- -DINSTALL_DATADIR="${QT6_DATADIR}"
- -DINSTALL_DOCDIR="${QT6_DOCDIR}"
- -DINSTALL_EXAMPLESDIR="${QT6_EXAMPLESDIR}"
- -DINSTALL_INCLUDEDIR="${QT6_HEADERDIR}"
- -DINSTALL_LIBDIR="${QT6_LIBDIR}"
- -DINSTALL_LIBEXECDIR="${QT6_LIBEXECDIR}"
- -DINSTALL_MKSPECSDIR="${QT6_MKSPECSDIR}"
- -DINSTALL_PLUGINSDIR="${QT6_PLUGINDIR}"
- -DINSTALL_QMLDIR="${QT6_QMLDIR}"
- -DINSTALL_SYSCONFDIR="${QT6_SYSCONFDIR}"
- -DINSTALL_TRANSLATIONSDIR="${QT6_TRANSLATIONDIR}"
-
- -DQT_UNITY_BUILD=ON # ~30% faster build, affects other dev-qt/* too
-
- -DQT_FEATURE_relocatable=OFF #927691
- $(qt_feature ssl openssl)
- $(qt_feature ssl openssl_linked)
- $(qt_feature udev libudev)
- $(qt_feature zstd)
-
- # qtcore
- $(qt_feature icu)
-
- # tools
- -DQT_FEATURE_androiddeployqt=OFF
-
- # modules
- $(qt_feature concurrent)
- $(qt_feature dbus)
- $(qt_feature gui)
- $(qt_feature network)
- $(qt_feature sql)
- # trivial, and is often needed (sometimes even when not building tests)
- -DQT_FEATURE_testlib=ON
- $(qt_feature xml)
- )
-
- use gui && mycmakeargs+=(
- $(qt_feature X xcb)
- $(qt_feature X system_xcb_xinput)
- $(qt_feature X xkbcommon_x11)
- $(cmake_use_find_package X X11) # needed for truly no automagic
- $(qt_feature accessibility accessibility_atspi_bridge)
- $(qt_feature eglfs)
- $(qt_feature evdev)
- $(qt_feature evdev mtdev)
- $(qt_feature libinput)
- $(qt_feature renderdoc graphicsframecapture)
- $(qt_feature tslib)
- $(qt_feature vulkan)
- $(qt_feature wayland)
- $(qt_feature widgets)
- -DINPUT_opengl=$(usex opengl $(usex gles2-only es2 desktop) no)
- -DQT_FEATURE_system_textmarkdownreader=OFF # TODO?: package md4c
- ) && use widgets && mycmakeargs+=(
- # note: qtprintsupport is enabled w/ gui+widgets regardless of USE=cups
- $(qt_feature cups)
- $(qt_feature gtk gtk3)
- )
-
- use network && mycmakeargs+=(
- $(qt_feature brotli)
- $(qt_feature gssapi)
- $(qt_feature libproxy)
- $(qt_feature sctp)
- $(usev test -DQT_SKIP_DOCKER_COMPOSE=ON)
- -DQT_FEATURE_dtls=OFF # Required for LibreSSL
- )
-
- use sql && mycmakeargs+=(
- -DQT_FEATURE_sql_db2=OFF # unpackaged
- -DQT_FEATURE_sql_ibase=OFF # unpackaged
- -DQT_FEATURE_sql_mimer=OFF # unpackaged
- $(qt_feature mysql sql_mysql)
- $(qt_feature oci8 sql_oci)
- $(usev oci8 -DOracle_ROOT="${ESYSROOT}"/usr/$(get_libdir)/oracle/client)
- $(qt_feature odbc sql_odbc)
- $(qt_feature postgres sql_psql)
- $(qt_feature sqlite sql_sqlite)
- $(qt_feature sqlite system_sqlite)
- )
-
- if use amd64 || use x86; then
- # see bug #913400 for explanations
- local cpufeats=(
- # list of checked cpu features in configure.cmake
- avx avx2 avx512{bw,cd,dq,er,f,ifma,pf,vbmi,vbmi2,vl}
- f16c rdrnd rdseed sse2 sse3 sse4_1 sse4_2 ssse3 vaes
- )
- # handle odd ones out not matching -m* and macros (keep same order)
- local cpuflags=( "${cpufeats[@]}" aes sha )
- local cpufeats+=( aesni shani )
-
- local -a intrins
- IFS=' ' read -ra intrins < <(
- : "$(test-flags-CXX "${cpuflags[@]/#/-m}")"
- $(tc-getCXX) -E -P ${_} ${CXXFLAGS} ${CPPFLAGS} - <<-EOF | tail -n 1
- $(printf '__%s__ ' "${cpuflags[@]^^}")
- EOF
- assert
- )
-
- # do nothing and leave to qtbase if no macros expanded (test failed?)
- if [[ \ ${intrins[*]} == *\ [^_\ ]* ]]; then
- local -i i
- for ((i=0; i<${#cpufeats[@]}; i++)); do
- [[ ${intrins[i]} == __* ]] &&
- mycmakeargs+=( -DQT_FEATURE_${cpufeats[i]}=OFF )
- done
- mycmakeargs+=( -DTEST_x86intrin=ON )
- fi
- fi
-
- qt6-build_src_configure
-}
-
-src_test() {
- local -x TZ=UTC
- local -x LC_TIME=C
-
- local CMAKE_SKIP_TESTS=(
- # broken with out-of-source + if qtbase is not already installed
- tst_moc
- tst_qmake
- # similarly broken when relocatable=OFF (bug #927691)
- tst_qapplication
- tst_qt_cmake_create
- tst_uic
- # needs x11/opengl, we *could* run these but tend to be flaky
- # when opengl rendering is involved (even if software-only)
- tst_qopengl{,config,widget,window}
- tst_qgraphicsview
- tst_qx11info
- # fails with network sandbox
- tst_qdnslookup
- # fails with sandbox
- tst_qsharedmemory
- # typical to lack SCTP support on non-generic kernels
- tst_qsctpsocket
- # randomly fails without -j1, and not worth it over this (bug #916181)
- tst_qfiledialog{,2}
- # may randomly hang+timeout, perhaps related to -j as well
- tst_qtimer
- # these can be flaky depending on the environment/toolchain
- tst_qlogging # backtrace log test can easily vary
- tst_q{,raw}font # affected by available fonts / settings (bug #914737)
- tst_qprinter # checks system's printers (bug #916216)
- tst_qstorageinfo # checks mounted filesystems
- # flaky due to using different test framework and fails with USE=-gui
- tst_selftests
- # known failing when using clang+glibc+stdc++, needs looking into
- tst_qthread
- # partially failing on x86 chroots and seemingly(?) harmless (dev-qt
- # revdeps tests pass), skip globally to avoid keywording flakiness
- tst_json
- tst_qcolorspace
- tst_qdoublevalidator
- tst_qglobal
- tst_qglyphrun
- tst_qvectornd
- tst_rcc
- # similarly, but on armv7 and potentially others (bug #914028)
- tst_qlineedit
- tst_qpainter
- # likewise, known failing on BE arches (bug #914033,914371,918878)
- tst_qimagereader
- tst_qimagewriter
- tst_qpluginloader
- tst_quuid # >=6.6.2 had related fixes, needs retesting
- # partially broken on llvm-musl, needs looking into but skip to have
- # a baseline for regressions (rest of dev-qt still passes with musl)
- $(usev elibc_musl '
- tst_qicoimageformat
- tst_qimagereader
- tst_qimage
- tst_qprocess
- ')
- # fails due to hppa's NaN handling, needs looking into (bug #914371)
- $(usev hppa '
- tst_qcborvalue
- tst_qnumeric
- ')
- # bug #914033
- $(usev sparc '
- tst_qbuffer
- tst_qprocess
- tst_qtconcurrentiteratekernel
- ')
- # note: for linux, upstream only really runs+maintains tests for amd64
- # https://doc.qt.io/qt-6/supported-platforms.html
- )
-
- qt6-build_src_test
-}
-
-src_install() {
- qt6-build_src_install
-
- if use test; then
- local delete_bins=( # need a better way to handle this
- clientserver copier crashingServer desktopsettingsaware_helper
- echo fileWriterProcess modal_helper nospace 'one space'
- paster qcommandlineparser_test_helper qfileopeneventexternal
- socketprocess syslocaleapp tst_qhashseed_helper 'two space s'
- write-read-write
- )
- local delete=( # sigh
- "${D}${QT6_BINDIR}"/test*
- "${delete_bins[@]/#/${D}${QT6_BINDIR}/}"
- )
- # using -f given not tracking which tests may be skipped or not
- rm -rf -- "${delete[@]}" || die
- fi
-}
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gentoo-commits] repo/proj/libressl:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2024-07-19 3:40 orbea
0 siblings, 0 replies; 15+ messages in thread
From: orbea @ 2024-07-19 3:40 UTC (permalink / raw
To: gentoo-commits
commit: 8d7093b3245de3d6c206cd2a5d4c7cdb293c8ab1
Author: orbea <orbea <AT> riseup <DOT> net>
AuthorDate: Fri Jul 19 02:47:47 2024 +0000
Commit: orbea <orbea <AT> riseup <DOT> net>
CommitDate: Fri Jul 19 02:47:47 2024 +0000
URL: https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=8d7093b3
dev-qt/qtbase: add 6.7.2-r1, drop 6.7.1
Signed-off-by: orbea <orbea <AT> riseup.net>
dev-qt/qtbase/Manifest | 1 -
.../qtbase/files/qtbase-6.6.3-pkgconf-deps.patch | 35 ----
.../files/qtbase-6.7.1-qeventlooplocker.patch | 159 ----------------
.../qtbase/files/qtbase-6.7.2-CVE-2024-39936.patch | 200 +++++++++++++++++++++
...{qtbase-6.7.1.ebuild => qtbase-6.7.2-r1.ebuild} | 5 +-
5 files changed, 202 insertions(+), 198 deletions(-)
diff --git a/dev-qt/qtbase/Manifest b/dev-qt/qtbase/Manifest
index a8aaf26..24deb29 100644
--- a/dev-qt/qtbase/Manifest
+++ b/dev-qt/qtbase/Manifest
@@ -1,2 +1 @@
-DIST qtbase-everywhere-src-6.7.1.tar.xz 49324536 BLAKE2B 5e5a5801c29c1ac541812931cd56709a934a500ce4d5a38e7d3776620cb46db0d25408c22cbf33a7bcc657098c571e501fde14f523a77acba1827edd977d2bc5 SHA512 864bebfc3659907e52b8dc3f62a65d431573ef2bf406a9f71c688229083a2128c5474f75823275d11948be3d031de1d6427acf373f977df9ee9e73a27ef56efb
DIST qtbase-everywhere-src-6.7.2.tar.xz 49364504 BLAKE2B b48b8a8decafe3262d459b9446c25561851fef88b3316107c2909f5964e8122a558b5501a3e59667bdf4776d36ea5ba0d9f227538c45c1f8e94fbc8fff4244a6 SHA512 eb4b2f1fb02ab0ed5508d32449e140778278ff1a619cfcae14920b276b5c46e01a566d73fb8f84cf2cfc81e19cb11e53ab500df6b27d12ab875aa8c07bd15d6b
diff --git a/dev-qt/qtbase/files/qtbase-6.6.3-pkgconf-deps.patch b/dev-qt/qtbase/files/qtbase-6.6.3-pkgconf-deps.patch
deleted file mode 100644
index 965dade..0000000
--- a/dev-qt/qtbase/files/qtbase-6.6.3-pkgconf-deps.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-https://bugs.gentoo.org/928299
-https://bugreports.qt.io/browse/QTBUG-124135
-https://codereview.qt-project.org/c/qt/qtbase/+/553372
-From: Alexey Edelev <alexey.edelev@qt.io>
-Date: Fri, 05 Apr 2024 14:50:37 +0200
-Subject: [PATCH] Prefer the versioned targets over the namespaceless one when collecting deps
-
-Change the way we collect dependencies in __qt_internal_walk_libs.
-Prefer the versioned Qt targets over the namespaceless. This fixes the
-generating of the pkg-config configs.
-
-Pick-to: 6.5 6.6 6.7
-Task-number: QTBUG-124135
-Change-Id: I660376e122a99b5bc0874f2bc6ccd4d80c9ad453
---- a/cmake/QtPublicWalkLibsHelpers.cmake
-+++ b/cmake/QtPublicWalkLibsHelpers.cmake
-@@ -184,13 +184,13 @@
- if(lib_target MATCHES "^::@")
- continue()
- elseif(TARGET ${lib_target})
-- if ("${lib_target}" MATCHES "^Qt::(.*)")
-- # If both, Qt::Foo and Foo targets exist, prefer the target name without
-+ if(NOT "${lib_target}" MATCHES "^(Qt|${QT_CMAKE_EXPORT_NAMESPACE})::.+")
-+ # If both, Qt::Foo and Foo targets exist, prefer the target name with versioned
- # namespace. Which one is preferred doesn't really matter. This code exists to
- # avoid ending up with both, Qt::Foo and Foo in our dependencies.
-- set(namespaceless_lib_target "${CMAKE_MATCH_1}")
-- if(TARGET "${namespaceless_lib_target}")
-- set(lib_target ${namespaceless_lib_target})
-+ set(versioned_qt_target "${QT_CMAKE_EXPORT_NAMESPACE}::${lib_target}")
-+ if(TARGET "${versioned_qt_target}")
-+ set(lib_target ${versioned_qt_target})
- endif()
- endif()
- get_target_property(lib_target_type ${lib_target} TYPE)
diff --git a/dev-qt/qtbase/files/qtbase-6.7.1-qeventlooplocker.patch b/dev-qt/qtbase/files/qtbase-6.7.1-qeventlooplocker.patch
deleted file mode 100644
index ff2bf19..0000000
--- a/dev-qt/qtbase/files/qtbase-6.7.1-qeventlooplocker.patch
+++ /dev/null
@@ -1,159 +0,0 @@
-https://bugs.kde.org/show_bug.cgi?id=484405
-https://bugreports.qt.io/browse/QTBUG-124386
-https://codereview.qt-project.org/c/qt/qtbase/+/556573
-https://github.com/qt/qtbase/commit/a8ef8ea55014546e0e835cd0eacf694919702a11
-From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= <tor.arne.vestbo@qt.io>
-Date: Wed, 24 Apr 2024 22:33:42 +0200
-Subject: [PATCH] Don't quit automatically via QEventLoopLocker if there are
- open windows
-
-As part of df359bcb703db5a8adbf14e88ba4ae0d54f0cfcd the semantics and
-interaction between QEventLoopLocker and QGuiApplication was changed,
-based on the assumption that these two mechanisms were independent
-and should not affect each other.
-
-This had a surprising regression where the use of QEventLoopLocker in
-combination with the QCoreApplication::isQuitLockEnabled() automatic
-quit would end up quitting the app, even if it had open windows, for
-example when the last job of some internal job queue finished.
-
-It could be argued that if the app has open windows that should not
-be closed, they should ignore the Close event, and that an application
-with running QEventLoopLocker jobs should maintain an active window
-showing the progress of those jobs, but still, this is regression
-that we want to fix.
-
-We now bail out if !lastWindowClosed() in QGuiApplication's
-canQuitAutomatically, which is triggered from QEventLoopLocker's
-isQuitLockEnabled() behavior. And we do so regardless of whether
-quitOnLastWindowClosed is set or not, as the latter property
-determines the behavior when closing a window, not the behavior
-when a QEventLoopLocker goes out of scope.
-
-Similarly, we now block quitting of the application when triggered
-by quitOnLastWindowClosed() if a QEventLoop is active, regardless of
-the isQuitLockEnabled(), as the latter property is determining
-whether we should trigger a quit, not whether we should block them.
-
-[ChangeLog][Important behavior changes] Fixed a regression where
-the last QEventLoopLocker going out of scope would quit the app,
-even if there were open windows, if quitOnLastWindowClosed was
-false.
-
-[ChangeLog][Important behavior changes] Fixed a regression where
-closing the last window would quit the app, even if there were
-active QEventLoopLockers, if isQuitLockEnabled was false.
---- a/src/corelib/kernel/qcoreapplication.cpp
-+++ b/src/corelib/kernel/qcoreapplication.cpp
-@@ -1081,2 +1081,10 @@
-
-+ When this property is \c true the release of the last remaining
-+ QEventLoopLocker operating on the application will attempt to
-+ quit the application.
-+
-+ Note that attempting a quit may not necessarily result in the
-+ application quitting, for example if there still are open windows,
-+ or the QEvent::Quit event is ignored.
-+
- The default is \c true.
-@@ -2083,3 +2091,9 @@
-
-- if (quitLockEnabled && quitLockRef.loadRelaxed())
-+ // The automatic quit functionality is triggered by
-+ // both QEventLoopLocker and maybeLastWindowClosed.
-+ // In either case, we don't want to quit if there
-+ // are active QEventLoopLockers, even if quitLockEnabled
-+ // is not enabled, as the property signals whether to
-+ // trigger the automatic quit, not whether to block it.
-+ if (quitLockRef.loadRelaxed())
- return false;
---- a/src/corelib/kernel/qeventloop.cpp
-+++ b/src/corelib/kernel/qeventloop.cpp
-@@ -339,3 +339,7 @@
-
-- The application will quit when there are no more QEventLoopLockers operating on it.
-+ The application will attempt to quit when there are no more QEventLoopLockers
-+ operating on it, as long as QCoreApplication::isQuitLockEnabled() is \c true.
-+
-+ Note that attempting a quit may not necessarily result in the application quitting,
-+ if there for example are open windows, or the QEvent::Quit event is ignored.
-
---- a/src/gui/kernel/qguiapplication.cpp
-+++ b/src/gui/kernel/qguiapplication.cpp
-@@ -3677,5 +3677,9 @@
-
-- If this property is \c true, the applications quits when the last visible
-- \l{Primary and Secondary Windows}{primary window} (i.e. top level window
-- with no transient parent) is closed.
-+ If this property is \c true, the application will attempt to
-+ quit when the last visible \l{Primary and Secondary Windows}{primary window}
-+ (i.e. top level window with no transient parent) is closed.
-+
-+ Note that attempting a quit may not necessarily result in the
-+ application quitting, for example if there still are active
-+ QEventLoopLocker instances, or the QEvent::Quit event is ignored.
-
-@@ -3735,3 +3739,9 @@
- {
-- if (quitOnLastWindowClosed && !lastWindowClosed())
-+ // The automatic quit functionality is triggered by
-+ // both QEventLoopLocker and maybeLastWindowClosed.
-+ // Although the former is a QCoreApplication feature
-+ // we don't want to quit the application when there
-+ // are open windows, regardless of whether the app
-+ // also quits automatically on maybeLastWindowClosed.
-+ if (!lastWindowClosed())
- return false;
---- a/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp
-+++ b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp
-@@ -1010,4 +1010,4 @@
- {
-- // Disabling QEventLoopLocker support should not affect
-- // quitting when last window is closed.
-+ // Disabling QEventLoopLocker automatic quit should not affect
-+ // quitting when last window is closed if there are no lockers.
- app.setQuitLockEnabled(false);
-@@ -1025,4 +1025,36 @@
- {
-- // Disabling quitOnLastWindowClosed support should not affect
-- // quitting when last QEventLoopLocker goes out of scope.
-+ // Disabling QEventLoopLocker automatic quit should still block
-+ // quitting when last window is closed if there is a locker alive.
-+ app.setQuitLockEnabled(false);
-+
-+ QScopedPointer<QEventLoopLocker> locker(new QEventLoopLocker);
-+
-+ QuitSpy quitSpy;
-+ QWindow window;
-+ window.show();
-+ QVERIFY(QTest::qWaitForWindowExposed(&window));
-+ QTimer::singleShot(0, &window, &QWindow::close);
-+ QTimer::singleShot(200, &app, []{ QCoreApplication::exit(0); });
-+ app.exec();
-+ QCOMPARE(quitSpy.quits, 0);
-+ }
-+
-+ {
-+ // Disabling quitOnLastWindowClosed automatic quit should not affect
-+ // quitting when last QEventLoopLocker goes out of scope if
-+ // there are no windows.
-+ app.setQuitLockEnabled(true);
-+ app.setQuitOnLastWindowClosed(false);
-+
-+ QuitSpy quitSpy;
-+ QScopedPointer<QEventLoopLocker> locker(new QEventLoopLocker);
-+ QTimer::singleShot(0, [&]{ locker.reset(nullptr); });
-+ QTimer::singleShot(200, &app, []{ QCoreApplication::exit(0); });
-+ app.exec();
-+ QCOMPARE(quitSpy.quits, 1);
-+ }
-+
-+ {
-+ // Disabling quitOnLastWindowClosed automatic quit should still block
-+ // quitting via QEventLoopLocker if there's a window alive.
- app.setQuitLockEnabled(true);
-@@ -1038,3 +1070,3 @@
- app.exec();
-- QCOMPARE(quitSpy.quits, 1);
-+ QCOMPARE(quitSpy.quits, 0);
- }
diff --git a/dev-qt/qtbase/files/qtbase-6.7.2-CVE-2024-39936.patch b/dev-qt/qtbase/files/qtbase-6.7.2-CVE-2024-39936.patch
new file mode 100644
index 0000000..cc6238a
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.7.2-CVE-2024-39936.patch
@@ -0,0 +1,200 @@
+https://bugs.gentoo.org/935869
+https://github.com/qt/qtbase/commit/2b1e36e183ce75c224305c7a94457b92f7a5cf58
+From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= <marten.nordheim@qt.io>
+Date: Tue, 25 Jun 2024 17:09:35 +0200
+Subject: [PATCH] HTTP2: Delay any communication until encrypted() can be
+ responded to
+
+We have the encrypted() signal that lets users do extra checks on the
+established connection. It is emitted as BlockingQueued, so the HTTP
+thread stalls until it is done emitting. Users can potentially call
+abort() on the QNetworkReply at that point, which is passed as a Queued
+call back to the HTTP thread. That means that any currently queued
+signal emission will be processed before the abort() call is processed.
+
+In the case of HTTP2 it is a little special since it is multiplexed and
+the code is built to start requests as they are available. This means
+that, while the code worked fine for HTTP1, since one connection only
+has one request, it is not working for HTTP2, since we try to send more
+requests in-between the encrypted() signal and the abort() call.
+
+This patch changes the code to delay any communication until the
+encrypted() signal has been emitted and processed, for HTTP2 only.
+It's done by adding a few booleans, both to know that we have to return
+early and so we can keep track of what events arose and what we need to
+resume once enough time has passed that any abort() call must have been
+processed.
+
+Fixes: QTBUG-126610
+--- a/src/network/access/qhttp2protocolhandler.cpp
++++ b/src/network/access/qhttp2protocolhandler.cpp
+@@ -304,10 +304,10 @@
+ }
+
+- if (!prefaceSent && !sendClientPreface())
+- return false;
+-
+ if (!requests.size())
+ return true;
+
++ if (!prefaceSent && !sendClientPreface())
++ return false;
++
+ m_channel->state = QHttpNetworkConnectionChannel::WritingState;
+ // Check what was promised/pushed, maybe we do not have to send a request
+--- a/src/network/access/qhttpnetworkconnectionchannel.cpp
++++ b/src/network/access/qhttpnetworkconnectionchannel.cpp
+@@ -210,4 +210,8 @@
+ {
+ Q_ASSERT(protocolHandler);
++ if (waitingForPotentialAbort) {
++ needInvokeSendRequest = true;
++ return false; // this return value is unused
++ }
+ return protocolHandler->sendRequest();
+ }
+@@ -222,7 +226,6 @@
+ {
+ QMetaObject::invokeMethod(this, [this] {
+- Q_ASSERT(protocolHandler);
+ if (reply)
+- protocolHandler->sendRequest();
++ sendRequest();
+ }, Qt::ConnectionType::QueuedConnection);
+ }
+@@ -231,4 +234,8 @@
+ {
+ Q_ASSERT(protocolHandler);
++ if (waitingForPotentialAbort) {
++ needInvokeReceiveReply = true;
++ return;
++ }
+ protocolHandler->_q_receiveReply();
+ }
+@@ -237,4 +244,8 @@
+ {
+ Q_ASSERT(protocolHandler);
++ if (waitingForPotentialAbort) {
++ needInvokeReadyRead = true;
++ return;
++ }
+ protocolHandler->_q_readyRead();
+ }
+@@ -1240,5 +1251,16 @@
+ // Similar to HTTP/1.1 counterpart below:
+ const auto &pair = std::as_const(h2RequestsToSend).first();
++ waitingForPotentialAbort = true;
+ emit pair.second->encrypted();
++
++ // We don't send or handle any received data until any effects from
++ // emitting encrypted() have been processed. This is necessary
++ // because the user may have called abort(). We may also abort the
++ // whole connection if the request has been aborted and there is
++ // no more requests to send.
++ QMetaObject::invokeMethod(this,
++ &QHttpNetworkConnectionChannel::checkAndResumeCommunication,
++ Qt::QueuedConnection);
++
+ // In case our peer has sent us its settings (window size, max concurrent streams etc.)
+ // let's give _q_receiveReply a chance to read them first ('invokeMethod', QueuedConnection).
+@@ -1258,4 +1280,26 @@
+ }
+
++
++void QHttpNetworkConnectionChannel::checkAndResumeCommunication()
++{
++ Q_ASSERT(connection->connectionType() == QHttpNetworkConnection::ConnectionTypeHTTP2
++ || connection->connectionType() == QHttpNetworkConnection::ConnectionTypeHTTP2Direct);
++
++ // Because HTTP/2 requires that we send a SETTINGS frame as the first thing we do, and respond
++ // to a SETTINGS frame with an ACK, we need to delay any handling until we can ensure that any
++ // effects from emitting encrypted() have been processed.
++ // This function is called after encrypted() was emitted, so check for changes.
++
++ if (!reply && h2RequestsToSend.isEmpty())
++ abort();
++ waitingForPotentialAbort = false;
++ if (needInvokeReadyRead)
++ _q_readyRead();
++ if (needInvokeReceiveReply)
++ _q_receiveReply();
++ if (needInvokeSendRequest)
++ sendRequest();
++}
++
+ void QHttpNetworkConnectionChannel::requeueHttp2Requests()
+ {
+--- a/src/network/access/qhttpnetworkconnectionchannel_p.h
++++ b/src/network/access/qhttpnetworkconnectionchannel_p.h
+@@ -75,4 +75,8 @@
+ bool ssl;
+ bool isInitialized;
++ bool waitingForPotentialAbort = false;
++ bool needInvokeReceiveReply = false;
++ bool needInvokeReadyRead = false;
++ bool needInvokeSendRequest = false;
+ ChannelState state;
+ QHttpNetworkRequest request; // current request, only used for HTTP
+@@ -147,4 +151,6 @@
+ void resendCurrentRequest();
+
++ void checkAndResumeCommunication();
++
+ bool isSocketBusy() const;
+ bool isSocketWriting() const;
+--- a/tests/auto/network/access/http2/tst_http2.cpp
++++ b/tests/auto/network/access/http2/tst_http2.cpp
+@@ -107,4 +107,6 @@
+ void duplicateRequestsWithAborts();
+
++ void abortOnEncrypted();
++
+ protected slots:
+ // Slots to listen to our in-process server:
+@@ -1480,4 +1482,46 @@
+ }
+
++void tst_Http2::abortOnEncrypted()
++{
++#if !QT_CONFIG(ssl)
++ QSKIP("TLS support is needed for this test");
++#else
++ clearHTTP2State();
++ serverPort = 0;
++
++ ServerPtr targetServer(newServer(defaultServerSettings, H2Type::h2Direct));
++
++ QMetaObject::invokeMethod(targetServer.data(), "startServer", Qt::QueuedConnection);
++ runEventLoop();
++
++ nRequests = 1;
++ nSentRequests = 0;
++
++ const auto url = requestUrl(H2Type::h2Direct);
++ QNetworkRequest request(url);
++ request.setAttribute(QNetworkRequest::Http2DirectAttribute, true);
++
++ std::unique_ptr<QNetworkReply> reply{manager->get(request)};
++ reply->ignoreSslErrors();
++ connect(reply.get(), &QNetworkReply::encrypted, reply.get(), [reply = reply.get()](){
++ reply->abort();
++ });
++ connect(reply.get(), &QNetworkReply::errorOccurred, this, &tst_Http2::replyFinishedWithError);
++
++ runEventLoop();
++ STOP_ON_FAILURE
++
++ QCOMPARE(nRequests, 0);
++ QCOMPARE(reply->error(), QNetworkReply::OperationCanceledError);
++
++ const bool res = QTest::qWaitFor(
++ [this, server = targetServer.get()]() {
++ return serverGotSettingsACK || prefaceOK || nSentRequests > 0;
++ },
++ 500);
++ QVERIFY(!res);
++#endif // QT_CONFIG(ssl)
++}
++
+ void tst_Http2::serverStarted(quint16 port)
+ {
diff --git a/dev-qt/qtbase/qtbase-6.7.1.ebuild b/dev-qt/qtbase/qtbase-6.7.2-r1.ebuild
similarity index 98%
rename from dev-qt/qtbase/qtbase-6.7.1.ebuild
rename to dev-qt/qtbase/qtbase-6.7.2-r1.ebuild
index cf41a45..cc80ee8 100644
--- a/dev-qt/qtbase/qtbase-6.7.1.ebuild
+++ b/dev-qt/qtbase/qtbase-6.7.2-r1.ebuild
@@ -8,7 +8,7 @@ inherit qt6-build toolchain-funcs
DESCRIPTION="Cross-platform application development framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="amd64 arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~sparc x86"
+ KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
fi
declare -A QT6_IUSE=(
@@ -140,8 +140,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
"${FILESDIR}"/${PN}-6.6.1-forkfd-childstack-size.patch
"${FILESDIR}"/${PN}-6.6.3-gcc14-avx512fp16.patch
- "${FILESDIR}"/${PN}-6.6.3-pkgconf-deps.patch
- "${FILESDIR}"/${PN}-6.7.1-qeventlooplocker.patch
+ "${FILESDIR}"/${PN}-6.7.2-CVE-2024-39936.patch
)
src_prepare() {
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gentoo-commits] repo/proj/libressl:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2024-10-02 15:08 orbea
0 siblings, 0 replies; 15+ messages in thread
From: orbea @ 2024-10-02 15:08 UTC (permalink / raw
To: gentoo-commits
commit: 807eb1e58726c837e399d45da8c935a8283d408a
Author: orbea <orbea <AT> riseup <DOT> net>
AuthorDate: Wed Oct 2 14:44:57 2024 +0000
Commit: orbea <orbea <AT> riseup <DOT> net>
CommitDate: Wed Oct 2 14:45:38 2024 +0000
URL: https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=807eb1e5
dev-qt/qtbase: add 6.7.3-r1, drop 6.7.3
Signed-off-by: orbea <orbea <AT> riseup.net>
.../files/qtbase-6.7.3-erratic-mouse-input.patch | 156 +++++++++++++++++++++
...{qtbase-6.7.3.ebuild => qtbase-6.7.3-r1.ebuild} | 1 +
2 files changed, 157 insertions(+)
diff --git a/dev-qt/qtbase/files/qtbase-6.7.3-erratic-mouse-input.patch b/dev-qt/qtbase/files/qtbase-6.7.3-erratic-mouse-input.patch
new file mode 100644
index 0000000..14bdf14
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.7.3-erratic-mouse-input.patch
@@ -0,0 +1,156 @@
+https://bugreports.qt.io/browse/QTBUG-129509
+https://bugreports.qt.io/browse/QTBUG-129514
+https://codereview.qt-project.org/c/qt/qtbase/+/594889
+From 42845904d51ad14b2ab41a165bd9b9b1a9459840 Mon Sep 17 00:00:00 2001
+From: Liang Qi <liang.qi@qt.io>
+Date: Tue, 01 Oct 2024 12:46:30 +0200
+Subject: [PATCH] Revert "xcb: handle XI2 input button and motion events from slave devices"
+
+This reverts commit b71be292780b858f2c55ce92601452e2ea946de2, which causes a regression when using mouse wheel and moving cursor together
+on scroll bar for some qt applications, like qutebrowser and
+qbittorrent.
+
+Fixes: QTBUG-129509
+Fixes: QTBUG-129514
+Task-number: QTBUG-110841
+Pick-to: 6.8.0 6.8 6.7 6.5 6.2 5.15
+Change-Id: I703158874413a1306ea99217bced4ba38382f543
+--- a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
++++ b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
+@@ -683,94 +683,21 @@
+ }
+
+-//implementation is ported from https://codereview.qt-project.org/c/qt/qtbase/+/231552/12/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp#558
+-namespace {
+-
+-/*! \internal
+-
+- Qt listens for XIAllDevices to avoid losing mouse events. This function
+- ensures that we don't process the same event twice: from a slave device and
+- then again from a master device.
+-
+- In a normal use case (e.g. mouse press and release inside a window), we will
+- drop events from master devices as duplicates. Other advantage of processing
+- events from slave devices is that they don't share button state. All buttons
+- on a master device share the state.
+-
+- Examples of special cases:
+-
+-\list
+-
+-\li During system move/resize, window manager (_NET_WM_MOVERESIZE) grabs the
+- master pointer, in this case we process the matching release from the slave
+- device. A master device event is not sent by the server, hence no duplicate
+- event to drop. If we listened for XIAllMasterDevices instead, we would never
+- see a release event in this case.
+-
+-\li If we dismiss a context menu by clicking somewhere outside a Qt application,
+- we will process the mouse press from the master pointer as that is the
+- device we are grabbing. We are not grabbing slave devices (grabbing on the
+- slave device is buggy according to 19d289ab1b5bde3e136765e5432b5c7d004df3a4).
+- And since the event occurs outside our window, the slave device event is
+- not sent to us by the server, hence no duplicate event to drop.
+-
+-\endlist
+-*/
+-bool isDuplicateEvent(xcb_ge_event_t *event)
+-{
+- Q_ASSERT(event);
+-
+- struct qXIEvent {
+- bool isValid = false;
+- uint16_t sourceid;
+- uint8_t evtype;
+- uint32_t detail;
+- int32_t root_x;
+- int32_t root_y;
+- };
+- static qXIEvent lastSeenEvent;
+-
+- bool isDuplicate = false;
+- auto *xiDeviceEvent = reinterpret_cast<qt_xcb_input_device_event_t *>(event);
+- if (lastSeenEvent.isValid) {
+- isDuplicate = lastSeenEvent.sourceid == xiDeviceEvent->sourceid &&
+- lastSeenEvent.evtype == xiDeviceEvent->event_type &&
+- lastSeenEvent.detail == xiDeviceEvent->detail &&
+- lastSeenEvent.root_x == xiDeviceEvent->root_x &&
+- lastSeenEvent.root_y == xiDeviceEvent->root_y;
+- } else {
+- lastSeenEvent.isValid = true;
+- }
+- lastSeenEvent.sourceid = xiDeviceEvent->sourceid;
+- lastSeenEvent.evtype = xiDeviceEvent->event_type;
+- lastSeenEvent.detail = xiDeviceEvent->detail;
+- lastSeenEvent.root_x = xiDeviceEvent->root_x;
+- lastSeenEvent.root_y = xiDeviceEvent->root_y;
+-
+- if (isDuplicate) {
+- qCDebug(lcQpaXInputEvents, "Duplicate XI2 event %d", event->event_type);
+- // This sanity check ensures that special cases like QTBUG-59277 keep working.
+- lastSeenEvent.isValid = false; // An event can be a duplicate only once.
+- }
+-
+- return isDuplicate;
+-}
+-
+-} // namespace
+-
+ void QXcbConnection::xi2HandleEvent(xcb_ge_event_t *event)
+ {
+ auto *xiEvent = reinterpret_cast<qt_xcb_input_device_event_t *>(event);
+- if (m_xiSlavePointerIds.contains(xiEvent->deviceid)) {
+- if (!(xiEvent->event_type == XCB_INPUT_BUTTON_PRESS
+- || xiEvent->event_type == XCB_INPUT_BUTTON_RELEASE
+- || xiEvent->event_type == XCB_INPUT_MOTION)) {
+- if (!m_duringSystemMoveResize)
+- return;
+- if (xiEvent->event == XCB_NONE)
+- return;
+-
+- if (xiEvent->event_type == XCB_INPUT_TOUCH_END)
+- abortSystemMoveResize(xiEvent->event);
++ setTime(xiEvent->time);
++ if (m_xiSlavePointerIds.contains(xiEvent->deviceid) && xiEvent->event_type != XCB_INPUT_PROPERTY) {
++ if (!m_duringSystemMoveResize)
++ return;
++ if (xiEvent->event == XCB_NONE)
++ return;
+
++ if (xiEvent->event_type == XCB_INPUT_BUTTON_RELEASE
++ && xiEvent->detail == XCB_BUTTON_INDEX_1 ) {
++ abortSystemMoveResize(xiEvent->event);
++ } else if (xiEvent->event_type == XCB_INPUT_TOUCH_END) {
++ abortSystemMoveResize(xiEvent->event);
++ return;
++ } else {
+ return;
+ }
+@@ -784,25 +711,9 @@
+ case XCB_INPUT_BUTTON_PRESS:
+ case XCB_INPUT_BUTTON_RELEASE:
+- case XCB_INPUT_MOTION: {
+- if (isDuplicateEvent(event))
+- return;
+- if (m_xiSlavePointerIds.contains(xiEvent->deviceid)) {
+- if (m_duringSystemMoveResize) {
+- if (xiEvent->event_type == XCB_INPUT_BUTTON_RELEASE
+- && xiEvent->detail == XCB_BUTTON_INDEX_1 ) {
+- abortSystemMoveResize(xiEvent->event);
+- } else {
+- return;
+- }
+- }
+- }
+- xiDeviceEvent = xiEvent;
+- eventListener = windowEventListenerFromId(xiDeviceEvent->event);
+- sourceDeviceId = xiDeviceEvent->sourceid; // use the actual device id instead of the master
+- break;
+- }
++ case XCB_INPUT_MOTION:
+ case XCB_INPUT_TOUCH_BEGIN:
+ case XCB_INPUT_TOUCH_UPDATE:
+- case XCB_INPUT_TOUCH_END: {
++ case XCB_INPUT_TOUCH_END:
++ {
+ xiDeviceEvent = xiEvent;
+ eventListener = windowEventListenerFromId(xiDeviceEvent->event);
diff --git a/dev-qt/qtbase/qtbase-6.7.3.ebuild b/dev-qt/qtbase/qtbase-6.7.3-r1.ebuild
similarity index 99%
rename from dev-qt/qtbase/qtbase-6.7.3.ebuild
rename to dev-qt/qtbase/qtbase-6.7.3-r1.ebuild
index 0c67ab8..660c9cf 100644
--- a/dev-qt/qtbase/qtbase-6.7.3.ebuild
+++ b/dev-qt/qtbase/qtbase-6.7.3-r1.ebuild
@@ -148,6 +148,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-6.6.3-gcc14-avx512fp16.patch
"${FILESDIR}"/${PN}-6.7.2-qcontiguouscache.patch
"${FILESDIR}"/${PN}-6.7.2-haswell-no-rdrnd.patch
+ "${FILESDIR}"/${PN}-6.7.3-erratic-mouse-input.patch
)
src_prepare() {
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [gentoo-commits] repo/proj/libressl:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2024-10-09 4:25 orbea
0 siblings, 0 replies; 15+ messages in thread
From: orbea @ 2024-10-09 4:25 UTC (permalink / raw
To: gentoo-commits
commit: dc781b4f0a4f13f27667fc0e3d051f2bee349437
Author: orbea <orbea <AT> riseup <DOT> net>
AuthorDate: Wed Oct 9 03:17:58 2024 +0000
Commit: orbea <orbea <AT> riseup <DOT> net>
CommitDate: Wed Oct 9 03:17:58 2024 +0000
URL: https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=dc781b4f
dev-qt/qtbase: add 6.7.3-r2, drop 6.7.3-r1
Signed-off-by: orbea <orbea <AT> riseup.net>
.../qtbase/files/qtbase-6.7.3-QTBUG-125053.patch | 46 ++++++++++++++++++++++
...base-6.7.3-r1.ebuild => qtbase-6.7.3-r2.ebuild} | 1 +
2 files changed, 47 insertions(+)
diff --git a/dev-qt/qtbase/files/qtbase-6.7.3-QTBUG-125053.patch b/dev-qt/qtbase/files/qtbase-6.7.3-QTBUG-125053.patch
new file mode 100644
index 0000000..fc60e30
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.7.3-QTBUG-125053.patch
@@ -0,0 +1,46 @@
+https://bugreports.qt.io/browse/QTBUG-125053
+https://bugreports.qt.io/browse/QTBUG-127340
+https://codereview.qt-project.org/c/qt/qtbase/+/593123
+--- a/src/corelib/itemmodels/qabstractitemmodel.cpp
++++ b/src/corelib/itemmodels/qabstractitemmodel.cpp
+@@ -3396,4 +3396,11 @@
+ void QAbstractItemModel::beginResetModel()
+ {
++ Q_D(QAbstractItemModel);
++ if (d->resetting) {
++ qWarning() << "beginResetModel called on" << this << "without calling endResetModel first";
++ // Warn, but don't return early in case user code relies on the incorrect behavior.
++ }
++
++ d->resetting = true;
+ emit modelAboutToBeReset(QPrivateSignal());
+ }
+@@ -3413,6 +3420,12 @@
+ {
+ Q_D(QAbstractItemModel);
++ if (!d->resetting) {
++ qWarning() << "endResetModel called on" << this << "without calling beginResetModel first";
++ // Warn, but don't return early in case user code relies on the incorrect behavior.
++ }
++
+ d->invalidatePersistentIndexes();
+ resetInternalData();
++ d->resetting = false;
+ emit modelReset(QPrivateSignal());
+ }
+--- a/src/corelib/itemmodels/qabstractitemmodel_p.h
++++ b/src/corelib/itemmodels/qabstractitemmodel_p.h
+@@ -46,4 +46,6 @@
+ ~QAbstractItemModelPrivate();
+
++ static const QAbstractItemModelPrivate *get(const QAbstractItemModel *model) { return model->d_func(); }
++
+ void removePersistentIndexData(QPersistentModelIndexData *data);
+ void movePersistentIndexes(const QList<QPersistentModelIndexData *> &indexes, int change, const QModelIndex &parent,
+@@ -116,4 +118,6 @@
+ } persistent;
+
++ bool resetting = false;
++
+ static const QHash<int,QByteArray> &defaultRoleNames();
+ static bool isVariantLessThan(const QVariant &left, const QVariant &right,
diff --git a/dev-qt/qtbase/qtbase-6.7.3-r1.ebuild b/dev-qt/qtbase/qtbase-6.7.3-r2.ebuild
similarity index 99%
rename from dev-qt/qtbase/qtbase-6.7.3-r1.ebuild
rename to dev-qt/qtbase/qtbase-6.7.3-r2.ebuild
index 660c9cf..1c3de53 100644
--- a/dev-qt/qtbase/qtbase-6.7.3-r1.ebuild
+++ b/dev-qt/qtbase/qtbase-6.7.3-r2.ebuild
@@ -149,6 +149,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-6.7.2-qcontiguouscache.patch
"${FILESDIR}"/${PN}-6.7.2-haswell-no-rdrnd.patch
"${FILESDIR}"/${PN}-6.7.3-erratic-mouse-input.patch
+ "${FILESDIR}"/${PN}-6.7.3-QTBUG-125053.patch
)
src_prepare() {
^ permalink raw reply related [flat|nested] 15+ messages in thread
end of thread, other threads:[~2024-10-09 4:25 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-26 15:23 [gentoo-commits] repo/proj/libressl:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/ orbea
-- strict thread matches above, loose matches on Subject: below --
2024-10-09 4:25 orbea
2024-10-02 15:08 orbea
2024-07-19 3:40 orbea
2024-06-11 19:21 orbea
2024-05-03 0:59 orbea
2024-04-22 23:44 orbea
2024-02-25 2:42 orbea
2023-12-29 15:34 orbea
2023-12-06 4:58 orbea
2023-09-28 16:55 orbea
2023-09-06 18:11 orbea
2023-07-21 20:56 orbea
2023-05-24 18:06 orbea
2023-04-21 15:02 orbea
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox