mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-24 17:18:51 +02:00
qt6_base: bump version
This commit is contained in:
@@ -1,9 +1,8 @@
|
||||
From c7aea58ebe63b9036d33c358f607bf02542ad3a0 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= <revol@free.fr>
|
||||
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<QByteArray> QSslSocketPrivate::unixRootCertDirectories()
|
||||
@@ -2958,6 +2958,7 @@ QList<QByteArray> 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<QByteArray>::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 <jerome.duval@gmail.com>
|
||||
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 <jerome.duval@gmail.com>
|
||||
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 <qt_windows.h>
|
||||
#endif
|
||||
+#ifdef Q_OS_HAIKU
|
||||
+# include <OS.h>
|
||||
+#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 <qdebug.h>
|
||||
+
|
||||
+#include <OS.h>
|
||||
+
|
||||
+#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 <sys/sem.h>
|
||||
#endif
|
||||
|
||||
+#if defined(Q_OS_HAIKU)
|
||||
+# include <OS.h>
|
||||
+#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
|
||||
|
||||
Reference in New Issue
Block a user