From ed4193f7b927ff8fb11060ccaf7711e2cda5c10c Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> Date: Mon, 6 Nov 2023 12:14:30 +1000 Subject: [PATCH] qt6_base: bump version --- ...6.5.0.patchset => qt6_base-6.6.0.patchset} | 494 +++++------------- ...ase-6.5.0.recipe => qt6_base-6.6.0.recipe} | 19 +- 2 files changed, 140 insertions(+), 373 deletions(-) rename dev-qt/qt6-base/patches/{qt6_base-6.5.0.patchset => qt6_base-6.6.0.patchset} (68%) rename dev-qt/qt6-base/{qt6_base-6.5.0.recipe => qt6_base-6.6.0.recipe} (92%) diff --git a/dev-qt/qt6-base/patches/qt6_base-6.5.0.patchset b/dev-qt/qt6-base/patches/qt6_base-6.6.0.patchset similarity index 68% rename from dev-qt/qt6-base/patches/qt6_base-6.5.0.patchset rename to dev-qt/qt6-base/patches/qt6_base-6.6.0.patchset index 16b0461fc..37ef75d02 100644 --- a/dev-qt/qt6-base/patches/qt6_base-6.5.0.patchset +++ b/dev-qt/qt6-base/patches/qt6_base-6.6.0.patchset @@ -1,9 +1,8 @@ -From c7aea58ebe63b9036d33c358f607bf02542ad3a0 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= -Date: Mon, 11 Feb 2019 15:53:49 +1000 +From 0f12f9b9bcb2333cc9d9b877732b33a3b171fccd Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Fri, 20 Oct 2023 10:16:14 +1000 Subject: Make sure libs are searched in the develop/ dir by CMake -Static libs at least are not in the lib[/x86] dirs... diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf index 24ed125..52f637e 100644 @@ -20,12 +19,12 @@ index 24ed125..52f637e 100644 CMAKE_DLL_DIR = $$CMAKE_LIB_DIR CMAKE_DLL_DIR_IS_ABSOLUTE = $$CMAKE_LIB_DIR_IS_ABSOLUTE -- -2.37.3 +2.42.0 -From a6218c9ab6c754e730b33bbd386152e21c8085d7 Mon Sep 17 00:00:00 2001 +From 2ebc27acb1c57a9cf4bde066c705b2b34b37a4fe Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Mon, 11 Feb 2019 15:56:12 +1000 +Date: Fri, 20 Oct 2023 10:16:34 +1000 Subject: Fix QStandartPaths for Haiku @@ -83,20 +82,20 @@ index 6122e5f..5bf676f 100644 case GenericConfigLocation: paths += haikuStandardPath(B_SYSTEM_SETTINGS_DIRECTORY); -- -2.37.3 +2.42.0 -From 07e972341500246b05934bb9976a3e782dd23236 Mon Sep 17 00:00:00 2001 +From a99d488cf0baab76629335f334be01504c5414ee Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Mon, 11 Feb 2019 15:56:39 +1000 +Date: Fri, 20 Oct 2023 10:16:55 +1000 Subject: QSslSocketPrivate::unixRootCertDirectories(): add ssl path for Haiku. diff --git a/src/network/ssl/qsslsocket.cpp b/src/network/ssl/qsslsocket.cpp -index 4eefe43..ea20a3e 100644 +index 0563fd0..58835af 100644 --- a/src/network/ssl/qsslsocket.cpp +++ b/src/network/ssl/qsslsocket.cpp -@@ -2953,6 +2953,7 @@ QList QSslSocketPrivate::unixRootCertDirectories() +@@ -2958,6 +2958,7 @@ QList QSslSocketPrivate::unixRootCertDirectories() ba("/usr/local/ssl/certs/"), // Solaris ba("/etc/openssl/certs/"), // BlackBerry ba("/opt/openssl/certs/"), // HP-UX @@ -105,17 +104,17 @@ index 4eefe43..ea20a3e 100644 }; return QList::fromReadOnlyData(dirs); -- -2.37.3 +2.42.0 -From fc72eb07f336659fd206c667b867249e40a31481 Mon Sep 17 00:00:00 2001 +From fcc3c9cc3337ca935f4548e2575b0ad04d67cab2 Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Mon, 11 Feb 2019 15:56:59 +1000 +Date: Fri, 20 Oct 2023 10:45:27 +1000 Subject: Fix build for Haiku platform diff --git a/mkspecs/features/toolchain.prf b/mkspecs/features/toolchain.prf -index 0040b6c..9a729bb 100644 +index bfad10d..39e6d31 100644 --- a/mkspecs/features/toolchain.prf +++ b/mkspecs/features/toolchain.prf @@ -263,7 +263,7 @@ isEmpty($${target_prefix}.INCDIRS) { @@ -128,12 +127,12 @@ index 0040b6c..9a729bb 100644 # or gold under Linux) will not print any library search path. Need to use another # invocation with different options (which in turn doesn't print include search -- -2.37.3 +2.42.0 -From 7f1e826c4991c3a378018aaed49a5b14f9131699 Mon Sep 17 00:00:00 2001 +From 73d27d2858bd63c8c77235e0c8e5ea3675340bea Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Mon, 11 Feb 2019 15:57:54 +1000 +Date: Fri, 20 Oct 2023 10:45:56 +1000 Subject: Fix endian detection @@ -155,40 +154,40 @@ index 9bb306e..9f0ea58 100644 # endif # endif -- -2.37.3 +2.42.0 -From cd596caaa930b4cd5493e86443a4c2a9b5cd9a25 Mon Sep 17 00:00:00 2001 +From 0fd1c0a17d2c3094e09152f0dae22354210f27bf Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Wed, 27 May 2020 19:54:30 +1000 +Date: Fri, 20 Oct 2023 12:11:52 +1000 Subject: Disable LibResolv for Haiku diff --git a/src/network/kernel/qhostinfo_unix.cpp b/src/network/kernel/qhostinfo_unix.cpp -index 12d8c04..377cb0b 100644 +index 42194fb..59e2bee 100644 --- a/src/network/kernel/qhostinfo_unix.cpp +++ b/src/network/kernel/qhostinfo_unix.cpp -@@ -55,7 +55,7 @@ typedef void (*res_nclose_proto)(res_state_ptr); - static res_nclose_proto local_res_nclose = nullptr; - static res_state_ptr local_res = nullptr; +@@ -47,6 +47,8 @@ static void maybeRefreshResolver() + // res_init() is not thread-safe; executing it leads to state corruption. + // Whether it reloads resolv.conf on its own is unknown. + return; ++#elif defined(Q_OS_HAIKU) ++ return; + #endif --#if QT_CONFIG(library) && !defined(Q_OS_QNX) -+#if QT_CONFIG(library) && !defined(Q_OS_QNX) && !defined(Q_OS_HAIKU) - namespace { - struct LibResolv - { + #if QT_CONFIG(libresolv) -- -2.37.3 +2.42.0 -From 46c98fb360bcbd604a05d0107c0ffa79d28d94c9 Mon Sep 17 00:00:00 2001 +From 06c1739c89f002727b58abbbe3c653e3d9326e4b Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Sun, 8 Sep 2019 00:17:19 +1000 +Date: Fri, 20 Oct 2023 12:15:38 +1000 Subject: Don't use ifaddrs for Haiku diff --git a/src/network/kernel/qnetworkinterface_unix.cpp b/src/network/kernel/qnetworkinterface_unix.cpp -index 51a266b..cf16236 100644 +index 082d83e..eab15bf 100644 --- a/src/network/kernel/qnetworkinterface_unix.cpp +++ b/src/network/kernel/qnetworkinterface_unix.cpp @@ -17,7 +17,7 @@ @@ -201,17 +200,17 @@ index 51a266b..cf16236 100644 #endif -- -2.37.3 +2.42.0 -From a4783b34d00955f5bea8d934b3c954f9574c3dab Mon Sep 17 00:00:00 2001 +From fea0640efe1a4a170192c0b2ddec486eb7df0886 Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Wed, 27 May 2020 19:54:58 +1000 +Date: Fri, 20 Oct 2023 12:15:58 +1000 Subject: Disable sharedmemory feature for bootstrap diff --git a/src/tools/bootstrap/CMakeLists.txt b/src/tools/bootstrap/CMakeLists.txt -index 0919159..4573649 100644 +index e065fdf..915fb81 100644 --- a/src/tools/bootstrap/CMakeLists.txt +++ b/src/tools/bootstrap/CMakeLists.txt @@ -100,6 +100,7 @@ qt_internal_extend_target(Bootstrap @@ -223,12 +222,12 @@ index 0919159..4573649 100644 .. ../../3rdparty/tinycbor/src -- -2.37.3 +2.42.0 -From 148ba5e5b428c39bf41bd01eebd103b04fd5f692 Mon Sep 17 00:00:00 2001 +From 39f3777388a2268cf91fda27c7d52974c80025e7 Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Sun, 29 Dec 2019 18:13:19 +1000 +Date: Fri, 20 Oct 2023 12:16:20 +1000 Subject: Fix build for x86_gcc2 @@ -246,35 +245,20 @@ index 9960e45..3de4afc 100644 /* release the child */ #ifdef HAVE_EVENTFD -- -2.37.3 +2.42.0 -From ba91eb186d2e74775cfa3fbbfb41b8db397a71a3 Mon Sep 17 00:00:00 2001 +From 41de48fd76bc2181ab729de9760b94d1eab66cd8 Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Thu, 4 Jun 2020 23:11:17 +1000 +Date: Fri, 20 Oct 2023 12:17:49 +1000 Subject: Implement QFilesystemWatcher for Haiku diff --git a/src/corelib/CMakeLists.txt b/src/corelib/CMakeLists.txt -index 1a8cc08..23845cc 100644 +index d42b51d..7c3ce10 100644 --- a/src/corelib/CMakeLists.txt +++ b/src/corelib/CMakeLists.txt -@@ -461,6 +461,14 @@ qt_internal_extend_target(Core CONDITION MSVC AND (TEST_architecture_arch STREQU - "/BASE:0x67000000" - ) - -+qt_internal_extend_target(Core CONDITION HAIKU -+ SOURCES -+ kernel/qsharedmemory_haiku.cpp -+ kernel/qsystemsemaphore_posix.cpp -+ kernel/qsystemsemaphore_systemv.cpp -+ kernel/qsystemsemaphore_unix.cpp -+) -+ - # QtCore can't be compiled with -Wl,-no-undefined because it uses the - # "environ" variable and FreeBSD does not include a weak symbol for it - # in libc. -@@ -874,6 +882,11 @@ qt_internal_extend_target(Core CONDITION MACOS AND QT_FEATURE_filesystemwatcher +@@ -900,6 +900,11 @@ qt_internal_extend_target(Core CONDITION MACOS AND QT_FEATURE_filesystemwatcher io/qfilesystemwatcher_fsevents.mm io/qfilesystemwatcher_fsevents_p.h ) @@ -286,15 +270,6 @@ index 1a8cc08..23845cc 100644 qt_internal_extend_target(Core CONDITION QT_FEATURE_filesystemwatcher AND QT_FEATURE_inotify AND UNIX AND NOT MACOS SOURCES io/qfilesystemwatcher_inotify.cpp io/qfilesystemwatcher_inotify_p.h -@@ -1068,7 +1081,7 @@ qt_internal_extend_target(Core CONDITION QT_FEATURE_clock_gettime AND UNIX - WrapRt::WrapRt - ) - --qt_internal_extend_target(Core CONDITION UNIX AND NOT ANDROID -+qt_internal_extend_target(Core CONDITION UNIX AND NOT ANDROID AND NOT HAIKU - SOURCES - kernel/qsharedmemory_posix.cpp - kernel/qsharedmemory_systemv.cpp diff --git a/src/corelib/io/qfilesystemwatcher.cpp b/src/corelib/io/qfilesystemwatcher.cpp index 9ffbe31..cfb1acf 100644 --- a/src/corelib/io/qfilesystemwatcher.cpp @@ -668,20 +643,20 @@ index 0000000..0ae4bdf +#endif // QFILESYSTEMWATCHER_HAIKU_P_H + -- -2.37.3 +2.42.0 -From 98492a3f38ceab59d7c72e9bf6d47d1dba44ab13 Mon Sep 17 00:00:00 2001 +From c336bbfc781e9ad9fedaaf68189700ce37c32ec6 Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Tue, 16 Jun 2020 18:06:57 +1000 +Date: Fri, 20 Oct 2023 12:18:17 +1000 Subject: Don't use AF_INET6 for new sockets diff --git a/src/network/socket/qnativesocketengine_unix.cpp b/src/network/socket/qnativesocketengine_unix.cpp -index dd3c57d..e8228a9 100644 +index d5f2bfb..681b136 100644 --- a/src/network/socket/qnativesocketengine_unix.cpp +++ b/src/network/socket/qnativesocketengine_unix.cpp -@@ -200,8 +200,12 @@ bool QNativeSocketEnginePrivate::createNewSocket(QAbstractSocket::SocketType soc +@@ -204,8 +204,12 @@ bool QNativeSocketEnginePrivate::createNewSocket(QAbstractSocket::SocketType soc } int protocol = 0; #endif // QT_NO_SCTP @@ -695,17 +670,17 @@ index dd3c57d..e8228a9 100644 int socket = qt_safe_socket(domain, type, protocol, O_NONBLOCK); -- -2.37.3 +2.42.0 -From bb8f5a841d930ca07b6bac7f14f5ed7d029502e2 Mon Sep 17 00:00:00 2001 +From 3fae787f5ac052fd2b423f495592fe38e015733c Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Mon, 5 Oct 2020 19:40:40 +1000 +Date: Fri, 20 Oct 2023 12:18:41 +1000 Subject: Disable Haswell CPU feature for plugins diff --git a/src/corelib/plugin/qlibrary_unix.cpp b/src/corelib/plugin/qlibrary_unix.cpp -index 7478373..ed30375 100644 +index 84f572a..f69b310 100644 --- a/src/corelib/plugin/qlibrary_unix.cpp +++ b/src/corelib/plugin/qlibrary_unix.cpp @@ -163,7 +163,7 @@ bool QLibraryPrivate::load_sys() @@ -718,22 +693,39 @@ index 7478373..ed30375 100644 auto transform = [](QStringList &list, void (*f)(QString *)) { QStringList tmp; -- -2.37.3 +2.42.0 -From 360d98f51a7d49451419490140cbe333d687d229 Mon Sep 17 00:00:00 2001 -From: Jerome Duval -Date: Thu, 12 Nov 2020 17:50:04 +0100 +From 7b014f8c23c4b5b14924a019e06d24de0906cf8e Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Fri, 20 Oct 2023 12:19:25 +1000 Subject: Haiku build setup +diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake +index 1dc576d..c79efa7 100644 +--- a/cmake/QtBuild.cmake ++++ b/cmake/QtBuild.cmake +@@ -307,6 +307,12 @@ elseif(LINUX) + elseif(CLANG) + set(QT_DEFAULT_MKSPEC linux-clang) + endif() ++elseif(HAIKU) ++ if(GCC) ++ set(QT_DEFAULT_MKSPEC haiku-g++) ++ elseif(CLANG) ++ set(QT_DEFAULT_MKSPEC haiku-clang) ++ endif() + elseif(ANDROID) + if(GCC) + set(QT_DEFAULT_MKSPEC android-g++) diff --git a/cmake/QtRpathHelpers.cmake b/cmake/QtRpathHelpers.cmake -index 2150b95..a88a0b4 100644 +index 7228ffb..533d261 100644 --- a/cmake/QtRpathHelpers.cmake +++ b/cmake/QtRpathHelpers.cmake @@ -8,6 +8,8 @@ function(qt_internal_get_relative_rpath_base_token out_var) set(rpath_rel_base "@loader_path") - elseif(LINUX OR SOLARIS OR FREEBSD OR HURD) + elseif(LINUX OR SOLARIS OR FREEBSD OR HURD OR OPENBSD) set(rpath_rel_base "$ORIGIN") + elseif(HAIKU) + set(rpath_rel_base "$ORIGIN") @@ -741,10 +733,10 @@ index 2150b95..a88a0b4 100644 set(rpath_rel_base "NO_KNOWN_RPATH_REL_BASE") endif() diff --git a/cmake/QtSetup.cmake b/cmake/QtSetup.cmake -index 90acbae..63a7648 100644 +index 762299f..60b614c 100644 --- a/cmake/QtSetup.cmake +++ b/cmake/QtSetup.cmake -@@ -117,7 +117,7 @@ elseif(APPLE) +@@ -126,7 +126,7 @@ elseif(APPLE) endif() ## Position independent code: @@ -754,21 +746,21 @@ index 90acbae..63a7648 100644 # Does the linker support position independent code? include(CheckPIESupported) -- -2.37.3 +2.42.0 -From 053c0c9f3668924bc35ded284a8aac06ce318953 Mon Sep 17 00:00:00 2001 -From: Jerome Duval -Date: Thu, 12 Nov 2020 22:33:56 +0100 +From 8b97a9c94ade718f3d1e63eaa41dc12129e0cfcf Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Fri, 20 Oct 2023 12:21:18 +1000 Subject: Haiku: link against libnetwork diff --git a/src/network/CMakeLists.txt b/src/network/CMakeLists.txt -index ec6e5f1..23e4200 100644 +index 64c9bf5..0affd20 100644 --- a/src/network/CMakeLists.txt +++ b/src/network/CMakeLists.txt -@@ -215,6 +215,11 @@ qt_internal_extend_target(Network CONDITION QT_FEATURE_dnslookup AND WIN32 - kernel/qdnslookup_win.cpp +@@ -202,6 +202,11 @@ qt_internal_extend_target(Network CONDITION WIN32 + NOMINMAX ) +qt_internal_extend_target(Network CONDITION HAIKU @@ -780,276 +772,21 @@ index ec6e5f1..23e4200 100644 LIBRARIES ${FWCoreServices} -- -2.37.3 +2.42.0 -From d7d1cb4821067981b2f186af9a04667f0d031a99 Mon Sep 17 00:00:00 2001 +From b8a9442cf57e65ece49f91399a76b5f8a6663e3f Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Sun, 31 Oct 2021 22:57:22 +1000 -Subject: QSharedMemory implementation - - -diff --git a/src/corelib/kernel/qsharedmemory.cpp b/src/corelib/kernel/qsharedmemory.cpp -index 2449564..617c76c 100644 ---- a/src/corelib/kernel/qsharedmemory.cpp -+++ b/src/corelib/kernel/qsharedmemory.cpp -@@ -10,6 +10,9 @@ - #ifdef Q_OS_WIN - # include - #endif -+#ifdef Q_OS_HAIKU -+# include -+#endif - - #if defined(Q_OS_DARWIN) - # include "qcore_mac_p.h" -@@ -70,6 +73,12 @@ QSharedMemoryPrivate::makePlatformSafeKey(const QString &key, - - #ifdef Q_OS_WIN - return result; -+#elif defined(Q_OS_HAIKU) -+ if (key.length() < B_OS_NAME_LENGTH) -+ return key; -+ result = key; -+ result.truncate(B_OS_NAME_LENGTH - 4); -+ return result + QLatin1Char('_') + QString::number(qChecksum(key.toUtf8()), 16); - #elif defined(QT_POSIX_IPC) - return u'/' + result; - #else -diff --git a/src/corelib/kernel/qsharedmemory_haiku.cpp b/src/corelib/kernel/qsharedmemory_haiku.cpp -new file mode 100644 -index 0000000..88e18af ---- /dev/null -+++ b/src/corelib/kernel/qsharedmemory_haiku.cpp -@@ -0,0 +1,174 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Copyright (C) 2021 Gerasim Troeglazov, -+** Contact: 3dEyes@gmail.com -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+****************************************************************************/ -+ -+#include "qsharedmemory.h" -+#include "qsharedmemory_p.h" -+#include -+ -+#include -+ -+#ifndef QT_NO_SHAREDMEMORY -+QT_BEGIN_NAMESPACE -+ -+void QSharedMemoryPrivate::setErrorString(QLatin1String function) -+{ -+ Q_UNUSED(function); -+} -+ -+key_t QSharedMemoryPrivate::handle() -+{ -+ const QString safeKey = makePlatformSafeKey(key); -+ if (safeKey.isEmpty()) { -+ errorString = QSharedMemory::tr("%1: key is empty").arg(QLatin1String("QSharedMemory::handle")); -+ error = QSharedMemory::KeyError; -+ return 0; -+ } -+ -+ return 1; -+} -+ -+#endif // QT_NO_SHAREDMEMORY -+ -+#if !(defined(QT_NO_SHAREDMEMORY) && defined(QT_NO_SYSTEMSEMAPHORE)) -+int QSharedMemoryPrivate::createUnixKeyFile(const QString &fileName) -+{ -+ Q_UNUSED(fileName); -+ return 0; -+} -+#endif // QT_NO_SHAREDMEMORY && QT_NO_SYSTEMSEMAPHORE -+ -+#ifndef QT_NO_SHAREDMEMORY -+ -+bool QSharedMemoryPrivate::cleanHandle() -+{ -+ if (hand > 0) -+ delete_area(hand); -+ -+ hand = -1; -+ -+ return true; -+} -+ -+bool QSharedMemoryPrivate::create(qsizetype size) -+{ -+ if (!handle()) -+ return false; -+ -+ const QLatin1String function("QSharedMemory::create"); -+ -+ const QString areaName = makePlatformSafeKey(key); -+ -+ if (find_area(areaName.toUtf8().constData()) > 0) { -+ errorString = QSharedMemory::tr("%1: already exists").arg(function); -+ error = QSharedMemory::AlreadyExists; -+ return false; -+ } -+ -+ hand = create_area(areaName.toUtf8().constData(), &memory, B_ANY_ADDRESS, size, -+ B_NO_LOCK, B_READ_AREA | B_WRITE_AREA | B_CLONEABLE_AREA); -+ -+ if (hand <= B_ERROR) { -+ switch (hand) { -+ case B_NO_MEMORY: -+ errorString = QSharedMemory::tr("%1: not enough memory").arg(function); -+ error = QSharedMemory::OutOfResources; -+ break; -+ case B_BAD_VALUE: -+ errorString = QSharedMemory::tr("%1: bad area name").arg(function); -+ error = QSharedMemory::KeyError; -+ break; -+ default: -+ errorString = QSharedMemory::tr("%1: unknown error").arg(function); -+ error = QSharedMemory::UnknownError; -+ break; -+ } -+ return false; -+ } -+ -+ return true; -+} -+ -+bool QSharedMemoryPrivate::attach(QSharedMemory::AccessMode mode) -+{ -+ const QLatin1String function("QSharedMemory::attach"); -+ -+ const QString areaName = makePlatformSafeKey(key); -+ -+ uint32 permissions = mode == QSharedMemory::ReadOnly ? B_READ_AREA : B_READ_AREA | B_WRITE_AREA; -+ -+ if (hand <= B_ERROR) { -+ area_id baseArea = find_area(areaName.toUtf8().constData()); -+ if (baseArea <= B_ERROR) { -+ error = QSharedMemory::NotFound; -+ errorString = QSharedMemory::tr("%1: doesn't exist").arg(function); -+ cleanHandle(); -+ return false; -+ } -+ -+ hand = clone_area(areaName.toUtf8().constData(), &memory, B_ANY_ADDRESS, permissions, baseArea); -+ if (hand <= B_ERROR) { -+ error = QSharedMemory::UnknownError; -+ errorString = QSharedMemory::tr("%1: clone_area failed").arg(function); -+ cleanHandle(); -+ return false; -+ } -+ } -+ -+ area_info info; -+ if (get_area_info(hand, &info) != B_OK) { -+ error = QSharedMemory::UnknownError; -+ errorString = QSharedMemory::tr("%1: size query failed").arg(function); -+ cleanHandle(); -+ return false; -+ } -+ -+ size = info.size; -+ memory = info.address; -+ -+ return true; -+} -+ -+bool QSharedMemoryPrivate::detach() -+{ -+ const QLatin1String function("QSharedMemory::detach"); -+ -+ area_id id = area_for(memory); -+ -+ if (id == B_ERROR) { -+ error = QSharedMemory::NotFound; -+ errorString = QSharedMemory::tr("%1: doesn't exist").arg(function); -+ return false; -+ } -+ -+ if (delete_area(id) != B_OK) { -+ error = QSharedMemory::UnknownError; -+ errorString = QSharedMemory::tr("%1: delete_area failed").arg(function); -+ return false; -+ } -+ -+ memory = 0; -+ size = 0; -+ -+ return cleanHandle(); -+} -+ -+ -+QT_END_NAMESPACE -+ -+#endif // QT_NO_SHAREDMEMORY -diff --git a/src/corelib/kernel/qsharedmemory_p.h b/src/corelib/kernel/qsharedmemory_p.h -index 6d7973f..93512f4 100644 ---- a/src/corelib/kernel/qsharedmemory_p.h -+++ b/src/corelib/kernel/qsharedmemory_p.h -@@ -39,10 +39,14 @@ QT_END_NAMESPACE - #include "qsystemsemaphore.h" - #include "private/qobject_p.h" - --#if !defined(Q_OS_WIN) && !defined(Q_OS_ANDROID) && !defined(Q_OS_INTEGRITY) && !defined(Q_OS_RTEMS) -+#if !defined(Q_OS_WIN) && !defined(Q_OS_ANDROID) && !defined(Q_OS_INTEGRITY) && !defined(Q_OS_RTEMS) && !defined(Q_OS_HAIKU) - # include - #endif - -+#if defined(Q_OS_HAIKU) -+# include -+#endif -+ - QT_BEGIN_NAMESPACE - - #if QT_CONFIG(systemsemaphore) -@@ -98,6 +102,8 @@ public: - const QString &prefix = QStringLiteral("qipc_sharedmemory_")); - #ifdef Q_OS_WIN - Qt::HANDLE handle(); -+#elif defined(Q_OS_HAIKU) -+ area_id handle(); - #elif defined(QT_POSIX_IPC) - int handle(); - #else -@@ -125,6 +131,8 @@ public: - private: - #ifdef Q_OS_WIN - Qt::HANDLE hand = nullptr; -+#elif defined(Q_OS_HAIKU) -+ area_id hand = -1; - #elif defined(QT_POSIX_IPC) - int hand = -1; - #else --- -2.37.3 - - -From 47e707b0c66e14d2b53c8562e2cd2f1e16ac3525 Mon Sep 17 00:00:00 2001 -From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Thu, 28 Apr 2022 21:03:05 +1000 +Date: Fri, 20 Oct 2023 12:28:46 +1000 Subject: Fix elf parser for Haiku diff --git a/src/corelib/plugin/qelfparser_p.cpp b/src/corelib/plugin/qelfparser_p.cpp -index 54e5a19..f5cea82 100644 +index ffc4a14..7d822e8 100644 --- a/src/corelib/plugin/qelfparser_p.cpp +++ b/src/corelib/plugin/qelfparser_p.cpp -@@ -25,6 +25,12 @@ - # define ELFOSABI_GNU ELFOSABI_LINUX +@@ -20,6 +20,12 @@ + # error "Need ELF header to parse plugins." #endif +#ifdef __HAIKU__ @@ -1061,7 +798,7 @@ index 54e5a19..f5cea82 100644 QT_BEGIN_NAMESPACE using namespace Qt::StringLiterals; -@@ -207,18 +213,26 @@ struct ElfHeaderCheck : public ElfHeaderCommonCheck +@@ -202,18 +208,26 @@ struct ElfHeaderCheck : public ElfHeaderCommonCheck // byte 7 static bool checkOsAbi(const uchar *ident) { @@ -1088,7 +825,7 @@ index 54e5a19..f5cea82 100644 return true; } -@@ -336,6 +350,9 @@ Q_DECL_UNUSED Q_DECL_COLD_FUNCTION static QDebug &operator<<(QDebug &d, ElfHeade +@@ -331,6 +345,9 @@ Q_DECL_UNUSED Q_DECL_COLD_FUNCTION static QDebug &operator<<(QDebug &d, ElfHeade break; } @@ -1098,7 +835,7 @@ index 54e5a19..f5cea82 100644 switch (e_ident[EI_OSABI]) { case ELFOSABI_SYSV: d << " (SYSV"; break; case ELFOSABI_HPUX: d << " (HP-UX"; break; -@@ -352,7 +369,7 @@ Q_DECL_UNUSED Q_DECL_COLD_FUNCTION static QDebug &operator<<(QDebug &d, ElfHeade +@@ -347,7 +364,7 @@ Q_DECL_UNUSED Q_DECL_COLD_FUNCTION static QDebug &operator<<(QDebug &d, ElfHeade if (e_ident[EI_ABIVERSION]) d << " v" << e_ident[EI_ABIVERSION]; d << ')'; @@ -1107,7 +844,7 @@ index 54e5a19..f5cea82 100644 if (e_ident[EI_VERSION] != 1) { d << ", file version " << e_ident[EI_VERSION]; return d; -@@ -445,11 +462,12 @@ Q_DECL_UNUSED static QDebug &operator<<(QDebug &d, ElfSectionDebug s) +@@ -442,11 +459,12 @@ Q_DECL_UNUSED static QDebug &operator<<(QDebug &d, ElfSectionDebug s) d << 'A'; if (s.shdr->sh_flags & SHF_EXECINSTR) d << 'X'; @@ -1122,20 +859,20 @@ index 54e5a19..f5cea82 100644 return d; } -- -2.37.3 +2.42.0 -From 1787baf0209b776f0021e97f859cad9d3fdd8c04 Mon Sep 17 00:00:00 2001 +From 362b34a4d593a3cdfd6f88dbaf4ab858069072f2 Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Fri, 7 Apr 2023 19:34:19 +1000 +Date: Fri, 20 Oct 2023 12:29:03 +1000 Subject: Don't use nl_langinfo diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp -index 3feb4cf..5d069b6 100644 +index cf773a2..99bce80 100644 --- a/src/corelib/kernel/qcoreapplication.cpp +++ b/src/corelib/kernel/qcoreapplication.cpp -@@ -615,7 +615,7 @@ void QCoreApplicationPrivate::initLocale() +@@ -616,7 +616,7 @@ void QCoreApplicationPrivate::initLocale() // QLocal8Bit hard-codes this, and we need to be consistent. # if defined(Q_OS_INTEGRITY) setlocale(LC_CTYPE, "UTF-8"); @@ -1145,5 +882,30 @@ index 3feb4cf..5d069b6 100644 // FIXME: Shouldn't we still setlocale("UTF-8")? # elif defined(Q_OS_ANDROID) && __ANDROID_API__ < __ANDROID_API_O__ -- -2.37.3 +2.42.0 + + +From fae5ec2bb295e4355129e1336a5bc0371b873f01 Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Fri, 20 Oct 2023 12:30:12 +1000 +Subject: Workaround for shm_open + + +diff --git a/src/corelib/ipc/qsharedmemory_posix.cpp b/src/corelib/ipc/qsharedmemory_posix.cpp +index 8844810..a2e4cb7 100644 +--- a/src/corelib/ipc/qsharedmemory_posix.cpp ++++ b/src/corelib/ipc/qsharedmemory_posix.cpp +@@ -68,6 +68,10 @@ bool QSharedMemoryPosix::create(QSharedMemoryPrivate *self, qsizetype size) + + int fd; + EINTR_LOOP(fd, ::shm_open(shmName.constData(), O_RDWR | O_CREAT | O_EXCL | O_CLOEXEC, 0600)); ++#ifdef Q_OS_HAIKU ++ if (fd == -1) ++ EINTR_LOOP(fd, ::shm_open(shmName.constData(), O_RDWR | O_CLOEXEC, 0600)); ++#endif + if (fd == -1) { + const int errorNumber = errno; + const auto function = "QSharedMemory::attach (shm_open)"_L1; +-- +2.42.0 diff --git a/dev-qt/qt6-base/qt6_base-6.5.0.recipe b/dev-qt/qt6-base/qt6_base-6.6.0.recipe similarity index 92% rename from dev-qt/qt6-base/qt6_base-6.5.0.recipe rename to dev-qt/qt6-base/qt6_base-6.6.0.recipe index 80e72ff4b..6659ed343 100644 --- a/dev-qt/qt6-base/qt6_base-6.5.0.recipe +++ b/dev-qt/qt6-base/qt6_base-6.6.0.recipe @@ -10,11 +10,11 @@ LICENSE="GNU LGPL v3 GNU FDL v1" REVISION="1" SOURCE_URI="https://download.qt.io/official_releases/qt/${portVersion%.*}/$portVersion/submodules/qtbase-everywhere-src-$portVersion.tar.xz" -CHECKSUM_SHA256="fde1aa7b4fbe64ec1b4fc576a57f4688ad1453d2fab59cbadd948a10a6eaf5ef" +CHECKSUM_SHA256="039d53312acb5897a9054bd38c9ccbdab72500b71fdccdb3f4f0844b0dd39e0e" SOURCE_DIR="qtbase-everywhere-src-$portVersion" -srcGitRev2="eca3ef635963a25fcca763a40b7eb96940efd28c" +srcGitRev2="1882f012bab043bb1a789f493a074b02f0c3d5ea" SOURCE_URI_2="https://github.com/threedeyes/qt6-haikuplugins/archive/$srcGitRev2.tar.gz" -CHECKSUM_SHA256_2="a6cb695f36a17b6e974027449025f0b454d13b16431afe30611d460c6b288a07" +CHECKSUM_SHA256_2="030ae321f28f6a12f51254a92d100d956058fed474d7e7c32fa9d45468fdc001" SOURCE_DIR_2="qt6-haikuplugins-$srcGitRev2" PATCHES="qt6_base-$portVersion.patchset" @@ -48,9 +48,9 @@ REQUIRES=" lib:libfontconfig$secondaryArchSuffix lib:libgl$secondaryArchSuffix lib:libharfbuzz$secondaryArchSuffix - lib:libicudata$secondaryArchSuffix >= 66 - lib:libicui18n$secondaryArchSuffix >= 66 - lib:libicuuc$secondaryArchSuffix >= 66 + lib:libicudata$secondaryArchSuffix + lib:libicui18n$secondaryArchSuffix + lib:libicuuc$secondaryArchSuffix lib:libintl$secondaryArchSuffix lib:libpcre2_16$secondaryArchSuffix lib:libpng16$secondaryArchSuffix @@ -69,6 +69,7 @@ PROVIDES_devel=" devel:libQt6DeviceDiscoverySupport$secondaryArchSuffix = $portVersion compat >= 6 devel:libQt6EdidSupport$secondaryArchSuffix = $portVersion compat >= 6 devel:libQt6EglFSDeviceIntegration$secondaryArchSuffix = $portVersion compat >= 6 + devel:libQt6ExampleIcons$secondaryArchSuffix = $portVersion compat >= 6 devel:libQt6FBSupport$secondaryArchSuffix = $portVersion compat >= 6 devel:libQt6Gui$secondaryArchSuffix = $portVersion compat >= 6 devel:libQt6Network$secondaryArchSuffix = $portVersion compat >= 6 @@ -86,6 +87,8 @@ REQUIRES_devel=" haiku${secondaryArchSuffix}_devel qt6_base$secondaryArchSuffix == $portVersion base devel:libgl$secondaryArchSuffix + devel:libharfbuzz$secondaryArchSuffix + devel:libharfbuzz_gobject$secondaryArchSuffix devel:libvulkan$secondaryArchSuffix " @@ -100,6 +103,7 @@ BUILD_REQUIRES=" devel:libgl$secondaryArchSuffix devel:libglu$secondaryArchSuffix devel:libharfbuzz$secondaryArchSuffix + devel:libharfbuzz_gobject$secondaryArchSuffix devel:libicuuc$secondaryArchSuffix >= 66 devel:libjpeg$secondaryArchSuffix devel:libpcre2_16$secondaryArchSuffix @@ -157,7 +161,7 @@ BUILD() -DQT_FEATURE_glib=OFF \ -DFEATURE_rpath=OFF - ninja -C build $jobArgs + ninja -v -C build $jobArgs } INSTALL() @@ -186,6 +190,7 @@ INSTALL() libQt6DeviceDiscoverySupport \ libQt6EglFSDeviceIntegration \ libQt6FbSupport \ + libQt6ExampleIcons \ libQt6Gui \ libQt6Network \ libQt6OpenGL \