// On some Android and macOS versions, realpath() will return a path even if
// it does not exist. To work around this, we check existence in advance.

This also applies to OpenBSD. Found during a search for getexecpath
cases.

OK?

diff --git 
a/x11/qt6/qtbase/patches/patch-src_corelib_io_qfilesystemengine_unix_cpp 
b/x11/qt6/qtbase/patches/patch-src_corelib_io_qfilesystemengine_unix_cpp
new file mode 100644
index 00000000000..f0ac7622314
--- /dev/null
+++ b/x11/qt6/qtbase/patches/patch-src_corelib_io_qfilesystemengine_unix_cpp
@@ -0,0 +1,13 @@
+Check the return value of realpath(3) to see if it actually exists.
+Index: src/corelib/io/qfilesystemengine_unix.cpp
+--- src/corelib/io/qfilesystemengine_unix.cpp.orig
++++ src/corelib/io/qfilesystemengine_unix.cpp
+@@ -716,7 +716,7 @@ QFileSystemEntry QFileSystemEngine::canonicalName(cons
+     auto freer = qScopeGuard([&] { free(resolved_name); });
+ #endif
+ 
+-# if defined(Q_OS_DARWIN) || defined(Q_OS_ANDROID)
++# if defined(Q_OS_DARWIN) || defined(Q_OS_ANDROID) || defined(Q_OS_OPENBSD)
+     // On some Android and macOS versions, realpath() will return a path even 
if
+     // it does not exist. To work around this, we check existence in advance.
+     if (!data.hasFlags(QFileSystemMetaData::ExistsAttribute))

Reply via email to