]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
qtbase-native: add some debug output to qmake -install qinstall
authorMartin Jansa <Martin.Jansa@gmail.com>
Tue, 14 May 2019 18:48:49 +0000 (18:48 +0000)
committerMartin Jansa <Martin.Jansa@gmail.com>
Mon, 20 May 2019 15:56:01 +0000 (15:56 +0000)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
meta/recipes-qt/qt5/qtbase-native_git.bb
meta/recipes-qt/qt5/qtbase/0001-qt_configure-show-all-possible-features-in-list-feat.patch [new file with mode: 0644]
meta/recipes-qt/qt5/qtbase/0002-qfilesystemengine_unix.cpp-debug.patch [new file with mode: 0644]

index 91ed4807eca9c9a8189a700c4224af824150ab82..7d3922d24385c58ce2fae4f426685376c3dfa25a 100644 (file)
@@ -36,6 +36,8 @@ SRC_URI += "\
     file://0014-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch \
     file://0015-corelib-Include-sys-types.h-for-uint32_t.patch \
     file://0016-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch \
+    file://0001-qt_configure-show-all-possible-features-in-list-feat.patch \
+    file://0002-qfilesystemengine_unix.cpp-debug.patch \
 "
 
 # common for qtbase-native and nativesdk-qtbase
@@ -43,12 +45,6 @@ SRC_URI += "\
 # 5.12.meta-qt5-native.7
 SRC_URI += " \
     file://0017-Always-build-uic-and-qvkgen.patch \
-    file://0018-Avoid-renameeat2-for-native-sdk-builds.patch \
-"
-
-# only for qtbase-native
-SRC_URI += " \
-    file://0019-Bootstrap-without-linkat-feature.patch \
 "
 
 CLEANBROKEN = "1"
diff --git a/meta/recipes-qt/qt5/qtbase/0001-qt_configure-show-all-possible-features-in-list-feat.patch b/meta/recipes-qt/qt5/qtbase/0001-qt_configure-show-all-possible-features-in-list-feat.patch
new file mode 100644 (file)
index 0000000..17c0cd9
--- /dev/null
@@ -0,0 +1,41 @@
+From 0c098f6e6a2fdfe46384ade0b201334ecb66a65f Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 14 May 2019 18:31:37 +0000
+Subject: [PATCH] qt_configure: show all possible features in -list-features
+
+* there are 249 features without purpose defined and 179
+  which have it
+* It's useful to see really all features available, e.g. when validating
+  meta-qt5 PACKAGECONFIGs e.g. getentropy is still, statx, renameat
+  were used before (and might be useful again because of issues with
+  pseudo)
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
+Change-Id: I85ab46643833766ef8b2f113dab92da78e0ab866
+---
+ mkspecs/features/qt_configure.prf | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf
+index 04690068bc..c1c9a3b46d 100644
+--- a/mkspecs/features/qt_configure.prf
++++ b/mkspecs/features/qt_configure.prf
+@@ -2323,12 +2323,11 @@ qtConfCheckErrors()
+     for (currentConfig, allModuleConfigs) {
+         for (k, $${currentConfig}.features._KEYS_) {
+             pp = $$eval($${currentConfig}.features.$${k}.purpose)
+-            !isEmpty(pp) {
+-                pfx = $$eval($${currentConfig}.features.$${k}.section)
+-                !isEmpty(pfx): pfx = "$$pfx: "
+-                all_ft += $$qtConfPadCols($$k, ".......................", \
+-                                          $$pfx$$section(pp, $$escape_expand(\\n), 0, 0))
+-            }
++            isEmpty(pp): pp = "No description"
++            pfx = $$eval($${currentConfig}.features.$${k}.section)
++            !isEmpty(pfx): pfx = "$$pfx: "
++            all_ft += $$qtConfPadCols($$k, ".......................", \
++                                      $$pfx$$section(pp, $$escape_expand(\\n), 0, 0))
+         }
+     }
+     all_ft = $$sorted(all_ft)
diff --git a/meta/recipes-qt/qt5/qtbase/0002-qfilesystemengine_unix.cpp-debug.patch b/meta/recipes-qt/qt5/qtbase/0002-qfilesystemengine_unix.cpp-debug.patch
new file mode 100644 (file)
index 0000000..158e8ce
--- /dev/null
@@ -0,0 +1,112 @@
+From 2a62aa3e3d900fa8a631827230795d2e22021a6d Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 14 May 2019 18:46:26 +0000
+Subject: [PATCH] qfilesystemengine_unix.cpp: debug
+
+Change-Id: I8469ec273c608e60f3fbe64b9dbd95f48149809c
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ src/corelib/io/qfile.cpp                  |  3 ++
+ src/corelib/io/qfilesystemengine_unix.cpp | 43 +++++++++++++++++++++--
+ 2 files changed, 44 insertions(+), 2 deletions(-)
+
+diff --git a/src/corelib/io/qfile.cpp b/src/corelib/io/qfile.cpp
+index 3166fa1b83..dd7d1878c8 100644
+--- a/src/corelib/io/qfile.cpp
++++ b/src/corelib/io/qfile.cpp
+@@ -773,6 +773,9 @@ QFile::copy(const QString &newName)
+         qWarning("QFile::copy: Empty or null file name");
+         return false;
+     }
++#if defined(QT_DEBUG)
++    qWarning("QFile::copy %s -> %s", qPrintable(fileName()), qPrintable(QFileInfo(newName).path()));
++#endif
+     if (QFile::exists(newName)) {
+         // ### Race condition. If a file is moved in after this, it /will/ be
+         // overwritten. On Unix, the proper solution is to use hardlinks:
+diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp
+index b2d81066db..351d9fa937 100644
+--- a/src/corelib/io/qfilesystemengine_unix.cpp
++++ b/src/corelib/io/qfilesystemengine_unix.cpp
+@@ -1248,12 +1248,32 @@ bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSy
+     if (Q_UNLIKELY(srcPath.isEmpty() || tgtPath.isEmpty()))
+         return emptyFileEntryWarning(), false;
++#if defined(QT_DEBUG)
++    qWarning("QFileSystemEngine::renameFile %s -> %s", srcPath, tgtPath);
++#if defined(RENAME_NOREPLACE)
++    qWarning("QFileSystemEngine::renameFile RENAME_NOREPLACE is defined");
++#endif
++#if QT_CONFIG(renameat2)
++    qWarning("QFileSystemEngine::renameFile QT_CONFIG(renameat2)");
++#endif
++#endif
++
+ #if defined(RENAME_NOREPLACE) && QT_CONFIG(renameat2)
+-    if (renameat2(AT_FDCWD, srcPath, AT_FDCWD, tgtPath, RENAME_NOREPLACE) == 0)
++    if (renameat2(AT_FDCWD, srcPath, AT_FDCWD, tgtPath, RENAME_NOREPLACE) == 0) {
++#if defined(QT_DEBUG)
++    qWarning("QFileSystemEngine::renameFile true");
++#endif
+         return true;
++    }
++#if defined(QT_DEBUG)
++    qWarning("QFileSystemEngine::renameFile %s", errno);
++#endif
+     // We can also get EINVAL for some non-local filesystems.
+     if (errno != EINVAL) {
++#if defined(QT_DEBUG)
++    qWarning("QFileSystemEngine::renameFile some other error than EINVAL");
++#endif
+         error = QSystemError(errno, QSystemError::StandardLibraryError);
+         return false;
+     }
+@@ -1266,8 +1286,14 @@ bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSy
+         return false;
+     }
+ #endif
++#if defined(QT_DEBUG)
++    qWarning("QFileSystemEngine::renameFile SupportsHardlinking %s", SupportsHardlinking);
++#endif
+     if (SupportsHardlinking && ::link(srcPath, tgtPath) == 0) {
++#if defined(QT_DEBUG)
++    qWarning("QFileSystemEngine::renameFile SupportsHardlinking && ::link");
++#endif
+         if (::unlink(srcPath) == 0)
+             return true;
+@@ -1296,6 +1322,9 @@ bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSy
+     case ENOTDIR:
+     case EROFS:
+     case EXDEV:
++#if defined(QT_DEBUG)
++    qWarning("QFileSystemEngine::renameFile break on EACCES, EEXIST, ENAMETOOLONG, ENOENT, ENOTDIR, EROFS or EXDEV");
++#endif
+         // accept the error from link(2) (especially EEXIST) and don't retry
+         break;
+@@ -1303,11 +1332,21 @@ bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSy
+         // fall back to rename()
+         // ### Race condition. If a file is moved in after this, it /will/ be
+         // overwritten.
+-        if (::rename(srcPath, tgtPath) == 0)
++#if defined(QT_DEBUG)
++    qWarning("QFileSystemEngine::renameFile retrying with ::rename");
++#endif
++        if (::rename(srcPath, tgtPath) == 0) {
++#if defined(QT_DEBUG)
++    qWarning("QFileSystemEngine::renameFile ::rename ok");
++#endif
+             return true;
++        }
+     }
+     error = QSystemError(errno, QSystemError::StandardLibraryError);
++#if defined(QT_DEBUG)
++    qWarning("QFileSystemEngine::renameFile %s", error);
++#endif
+     return false;
+ }