Hello community, here is the log from the commit of package libqt5-qtbase for openSUSE:Factory checked in at 2015-10-19 22:46:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libqt5-qtbase (Old) and /work/SRC/openSUSE:Factory/.libqt5-qtbase.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libqt5-qtbase" Changes: -------- --- /work/SRC/openSUSE:Factory/libqt5-qtbase/libqt5-qtbase.changes 2015-10-14 16:39:33.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.libqt5-qtbase.new/libqt5-qtbase.changes 2015-10-19 22:46:36.000000000 +0200 @@ -1,0 +2,22 @@ +Fri Oct 16 20:22:25 UTC 2015 - hrvoje.sen...@gmail.com + +- Update to 5.5.1 + * For more details please see: + http://blog.qt.io/blog/2015/10/15/qt-5-5-1-released/ +- Drop patches merged upstream: + 0002-xcb-Fix-getting-the-window-types-from-the-property-o.patch + 0003-Fix-centering-dialogs.patch + 0004-xcb-Set-_NET_WM_WINDOW_TYPE-from-a-single-place.patch + 0006-xcb-set-SM_CLIENT_ID-property.patch + Fix-compile-error-on-big-endian.patch + Fix-shortcuts-with-keypad-keys.patch + QDate_QTime-fix-SiC-introduced-by-adding-new-non-explicit-ctors.patch + QMimeDatabase-use-QElapsedTimer.patch + ignore-disabling-of-outputs-in-the-middle-of-the-mode-switch.patch + when-a-screen-comes-back-online-the-windows-need-to-be-told-about-it.patch +- Added Fix-QtCore-compilation-with-clang.patch and + move-the-official-Qt-version-from-qglobal-to-qmake-conf.patch in + order to remove link-time warnings (warning: type and size of dynamic + symbol `qt_version_tag@@Qt_5.5' are not defined) + +------------------------------------------------------------------- Old: ---- 0002-xcb-Fix-getting-the-window-types-from-the-property-o.patch 0003-Fix-centering-dialogs.patch 0004-xcb-Set-_NET_WM_WINDOW_TYPE-from-a-single-place.patch 0006-xcb-set-SM_CLIENT_ID-property.patch Fix-compile-error-on-big-endian.patch Fix-shortcuts-with-keypad-keys.patch QDate_QTime-fix-SiC-introduced-by-adding-new-non-explicit-ctors.patch QMimeDatabase-use-QElapsedTimer.patch ignore-disabling-of-outputs-in-the-middle-of-the-mode-switch.patch qtbase-opensource-src-5.5.0.tar.xz when-a-screen-comes-back-online-the-windows-need-to-be-told-about-it.patch New: ---- Fix-QtCore-compilation-with-clang.patch move-the-official-Qt-version-from-qglobal-to-qmake-conf.patch qtbase-opensource-src-5.5.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libqt5-qtbase.spec ++++++ --- /var/tmp/diff_new_pack.05c4Xo/_old 2015-10-19 22:46:44.000000000 +0200 +++ /var/tmp/diff_new_pack.05c4Xo/_new 2015-10-19 22:46:44.000000000 +0200 @@ -26,15 +26,15 @@ %endif Name: libqt5-qtbase -Version: 5.5.0 +Version: 5.5.1 Release: 0 Summary: C++ Program Library, Core Components License: GPL-3.0 or SUSE-LGPL-2.1-with-digia-exception-1.1 Group: System/Libraries Url: http://qt.digia.com %define base_name libqt5 -%define real_version 5.5.0 -%define so_version 5.5.0 +%define real_version 5.5.1 +%define so_version 5.5.1 %define tar_version qtbase-opensource-src-%{real_version} Source: %{tar_version}.tar.xz # to get mtime of file: @@ -51,26 +51,17 @@ Patch4: protect-geometry-QTBUG-40584.patch # Patch-FIX-SUSE libqt5-do-not-use-shm-if-display-name-doesnt-look-local.patch -- bnc#888858 Patch5: libqt5-do-not-use-shm-if-display-name-doesnt-look-local.patch -# PATCH-FIX-OPENSUSE Fix-shortcuts-with-keypad-keys.patch -- https://codereview.qt-project.org/#/c/95219/ -Patch8: Fix-shortcuts-with-keypad-keys.patch # patches 1000-2000 and above from upstream 5.3 branch # # patches 2000-3000 and above from upstream 5.5 branch # -Patch2000: ignore-disabling-of-outputs-in-the-middle-of-the-mode-switch.patch -Patch2001: when-a-screen-comes-back-online-the-windows-need-to-be-told-about-it.patch Patch2010: 0001-Fix-QWidget-setWindowRole.patch -Patch2011: 0002-xcb-Fix-getting-the-window-types-from-the-property-o.patch -Patch2012: 0003-Fix-centering-dialogs.patch -Patch2013: 0004-xcb-Set-_NET_WM_WINDOW_TYPE-from-a-single-place.patch Patch2014: 0005-Restore-documented-behavior-for-the-WA_X11NetWmWindo.patch -Patch2015: 0006-xcb-set-SM_CLIENT_ID-property.patch -Patch2016: QMimeDatabase-use-QElapsedTimer.patch -Patch2017: QDate_QTime-fix-SiC-introduced-by-adding-new-non-explicit-ctors.patch Patch3000: Add-a-linker-version-script-to-Qt-libraries.patch Patch3001: Add-a-qt_version_tag-symbol-to-QtCore-that-uses-ELF-versions.patch -Patch3002: Add-an-automatic-use-of-the-ELF-versioned-QtCore-symbol.patch -Patch3003: Fix-compile-error-on-big-endian.patch -Patch3004: xcb-fix-yet-another-crash-when-screens-are-disconnected.patch -Patch3005: xcb-dont-crash-in-mapToNativemapFromNative-if-the-screen-is-null.patch +Patch3002: Fix-QtCore-compilation-with-clang.patch +Patch3003: move-the-official-Qt-version-from-qglobal-to-qmake-conf.patch +Patch3004: Add-an-automatic-use-of-the-ELF-versioned-QtCore-symbol.patch +Patch3005: xcb-fix-yet-another-crash-when-screens-are-disconnected.patch +Patch3006: xcb-dont-crash-in-mapToNativemapFromNative-if-the-screen-is-null.patch BuildRequires: alsa-devel BuildRequires: cups-devel BuildRequires: gcc-c++ @@ -153,23 +144,15 @@ %patch3 -p1 %patch4 -p1 %patch5 -p1 -%patch8 -p1 -%patch2000 -p1 -%patch2001 -p1 -%patch2011 -p1 -%patch2012 -p1 -%patch2013 -p1 %patch2010 -p1 %patch2014 -p1 -%patch2015 -p1 -%patch2016 -p1 -%patch2017 -p1 %patch3000 -p1 %patch3001 -p1 %patch3002 -p1 %patch3003 -p1 %patch3004 -p1 %patch3005 -p1 +%patch3006 -p1 # be sure not to use them rm -r src/3rdparty/{libjpeg,freetype,libpng,zlib} ++++++ 0005-Restore-documented-behavior-for-the-WA_X11NetWmWindo.patch ++++++ --- /var/tmp/diff_new_pack.05c4Xo/_old 2015-10-19 22:46:44.000000000 +0200 +++ /var/tmp/diff_new_pack.05c4Xo/_new 2015-10-19 22:46:44.000000000 +0200 @@ -1,4 +1,4 @@ -From 552cbc0d89dcdbf32dfe652ff7d3bbe45dafe595 Mon Sep 17 00:00:00 2001 +From 5e5031527a3b443c93bf9e762c2f47e6786d7a31 Mon Sep 17 00:00:00 2001 From: Alexander Volkov <a.vol...@rusbitech.ru> Date: Thu, 7 May 2015 17:36:57 +0300 Subject: [PATCH] Restore documented behavior for the WA_X11NetWmWindowType* @@ -10,29 +10,15 @@ Change-Id: Ia2413ad7a69ab8d49b448de11dd07c77101a564c Task-number: QTBUG-39887 --- - src/src.pro | 2 +- - src/widgets/kernel/qwidget.cpp | 45 ++++++++++++++++++++++++++++++++++++++---- + src/widgets/kernel/qwidget.cpp | 44 ++++++++++++++++++++++++++++++++++++++---- src/widgets/kernel/qwidget_p.h | 3 ++- - 3 files changed, 44 insertions(+), 6 deletions(-) + 2 files changed, 42 insertions(+), 5 deletions(-) -diff --git a/src/src.pro b/src/src.pro -index b4d62aa..090ae68 100644 ---- a/src/src.pro -+++ b/src/src.pro -@@ -110,7 +110,7 @@ src_platformsupport.depends = src_corelib src_gui src_platformheaders - - src_widgets.subdir = $$PWD/widgets - src_widgets.target = sub-widgets --src_widgets.depends = src_corelib src_gui src_tools_uic -+src_widgets.depends = src_corelib src_gui src_tools_uic src_platformheaders - - src_opengl.subdir = $$PWD/opengl - src_opengl.target = sub-opengl diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp -index b2ea83c..d918b1a 100644 +index 2c9cc5c..0f05280 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp -@@ -1406,6 +1407,7 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO +@@ -1414,6 +1414,7 @@ void QWidgetPrivate::create_sys(WId wind win->setProperty("_q_showWithoutActivating", QVariant(true)); if (q->testAttribute(Qt::WA_MacAlwaysShowToolWindow)) win->setProperty("_q_macAlwaysShowToolWindow", QVariant::fromValue(QVariant(true))); @@ -40,7 +26,7 @@ win->setFlags(data.window_flags); fixPosIncludesFrame(); if (q->testAttribute(Qt::WA_Moved) -@@ -11135,7 +11137,6 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on) +@@ -11149,7 +11150,6 @@ void QWidget::setAttribute(Qt::WidgetAtt break; } @@ -48,7 +34,7 @@ case Qt::WA_X11NetWmWindowTypeDesktop: case Qt::WA_X11NetWmWindowTypeDock: case Qt::WA_X11NetWmWindowTypeToolBar: -@@ -11149,10 +11150,8 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on) +@@ -11163,10 +11163,8 @@ void QWidget::setAttribute(Qt::WidgetAtt case Qt::WA_X11NetWmWindowTypeNotification: case Qt::WA_X11NetWmWindowTypeCombo: case Qt::WA_X11NetWmWindowTypeDND: @@ -60,7 +46,7 @@ case Qt::WA_StaticContents: if (QWidgetBackingStore *bs = d->maybeBackingStore()) { -@@ -12796,6 +12795,44 @@ void QWidgetPrivate::setWidgetParentHelper(QObject *widgetAsObject, QObject *new +@@ -12823,6 +12821,44 @@ void QWidgetPrivate::setWidgetParentHelp widget->setParent(static_cast<QWidget*>(newParent)); } @@ -102,9 +88,9 @@ + QXcbWindowFunctions::setWmWindowType(q->windowHandle(), static_cast<QXcbWindowFunctions::WmWindowType>(wmWindowType)); +} + - QT_END_NAMESPACE + /*! \fn Qt::HANDLE QWidget::macCGHandle() const + \internal - #include "moc_qwidget.cpp" diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index fe65cb1..dc1c580 100644 --- a/src/widgets/kernel/qwidget_p.h ++++++ Add-a-linker-version-script-to-Qt-libraries.patch ++++++ --- /var/tmp/diff_new_pack.05c4Xo/_old 2015-10-19 22:46:44.000000000 +0200 +++ /var/tmp/diff_new_pack.05c4Xo/_new 2015-10-19 22:46:44.000000000 +0200 @@ -29,7 +29,7 @@ 5 files changed, 26 insertions(+) diff --git a/mkspecs/common/gcc-base-unix.conf b/mkspecs/common/gcc-base-unix.conf -index 29e0521..3e0b3ba 100644 +index f82c8a843062d6591713160d865b51264cc9cb5b..0178bda75a97398d6ca78b2bb8f04ca3fe8b9455 100644 --- a/mkspecs/common/gcc-base-unix.conf +++ b/mkspecs/common/gcc-base-unix.conf @@ -22,3 +22,4 @@ QMAKE_LFLAGS_USE_GOLD = -fuse-ld=gold @@ -38,7 +38,7 @@ QMAKE_LFLAGS_DYNAMIC_LIST = -Wl,--dynamic-list, +QMAKE_LFLAGS_VERSION_SCRIPT = -Wl,--version-script, diff --git a/mkspecs/common/qcc-base-qnx.conf b/mkspecs/common/qcc-base-qnx.conf -index a0a88b9..cebbe06 100644 +index a0a88b9605412e9c316a2ab831f71740245fbf20..cebbe06661196834701938cff84127667f9ddb35 100644 --- a/mkspecs/common/qcc-base-qnx.conf +++ b/mkspecs/common/qcc-base-qnx.conf @@ -19,6 +19,7 @@ QMAKE_LFLAGS_RPATHLINK = -Wl,-rpath-link, @@ -50,14 +50,14 @@ # Generic options for all BlackBerry/QNX qcc mkspecs QMAKE_CFLAGS_THREAD = -D_REENTRANT diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf -index 8919d41..3264740 100644 +index c89b6d2793bcaef69102c51c4433b304bf6fb769..5206691a17949eab630632f05d0f91d0e56d27b6 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -185,6 +185,28 @@ equals(QT_ARCH, i386):contains(QT_CPU_FEATURES.$$QT_ARCH, sse2):compiler_support QMAKE_CXXFLAGS += -mfpmath=sse } -+!isEmpty(QMAKE_LFLAGS_VERSION_SCRIPT):!static { ++unix:!isEmpty(QMAKE_LFLAGS_VERSION_SCRIPT):!no_linker_version_script:!static { + verscript = $$OUT_PWD/$${TARGET}.version + QMAKE_LFLAGS += $${QMAKE_LFLAGS_VERSION_SCRIPT}$$verscript + @@ -83,7 +83,7 @@ #install directives diff --git a/mkspecs/linux-icc/qmake.conf b/mkspecs/linux-icc/qmake.conf -index 8119c8a..0cd55ee 100644 +index 9190aa9f28cf6b38455a718afd6851d341ca57b5..4b10d42d44dd0cb8d788c6247099b42ba25c33a6 100644 --- a/mkspecs/linux-icc/qmake.conf +++ b/mkspecs/linux-icc/qmake.conf @@ -97,6 +97,7 @@ QMAKE_CXXFLAGS_PRECOMPILE = -c -pch-create ${QMAKE_PCH_OUTPUT} -include ${QMAKE_ @@ -95,7 +95,7 @@ # Symbol visibility control QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden diff --git a/mkspecs/unsupported/linux-host-g++/qmake.conf b/mkspecs/unsupported/linux-host-g++/qmake.conf -index 1523126..546ff21 100644 +index 1523126eaaa4761708fe58e449f8b43f6c3b8c14..546ff213498c80649d5a40810f068aca1c598494 100644 --- a/mkspecs/unsupported/linux-host-g++/qmake.conf +++ b/mkspecs/unsupported/linux-host-g++/qmake.conf @@ -71,6 +71,7 @@ QMAKE_PCH_OUTPUT_EXT = .gch @@ -107,4 +107,4 @@ # # qmake configuration for common linux -- -2.3.5 +2.6.0 ++++++ Add-a-qt_version_tag-symbol-to-QtCore-that-uses-ELF-versions.patch ++++++ --- /var/tmp/diff_new_pack.05c4Xo/_old 2015-10-19 22:46:44.000000000 +0200 +++ /var/tmp/diff_new_pack.05c4Xo/_new 2015-10-19 22:46:44.000000000 +0200 @@ -40,7 +40,7 @@ create mode 100644 src/corelib/global/qversiontagging.cpp diff --git a/src/corelib/global/global.pri b/src/corelib/global/global.pri -index bc11c77..fdbebca 100644 +index 6a8104bee2c129778efb86368a71392132dd2e22..7ca0734f1face0d4517fdb1257dbb9812f04d0d2 100644 --- a/src/corelib/global/global.pri +++ b/src/corelib/global/global.pri @@ -27,7 +27,8 @@ SOURCES += \ @@ -55,7 +55,7 @@ INCLUDEPATH += $$QT_BUILD_TREE/src/corelib/global diff --git a/src/corelib/global/qversiontagging.cpp b/src/corelib/global/qversiontagging.cpp new file mode 100644 -index 0000000..e3d9efa +index 0000000000000000000000000000000000000000..e3d9efa16b7677a29963020660bc9c4b4a143356 --- /dev/null +++ b/src/corelib/global/qversiontagging.cpp @@ -0,0 +1,62 @@ @@ -122,4 +122,4 @@ + +#endif -- -2.3.5 +2.6.0 ++++++ Add-an-automatic-use-of-the-ELF-versioned-QtCore-symbol.patch ++++++ --- /var/tmp/diff_new_pack.05c4Xo/_old 2015-10-19 22:46:44.000000000 +0200 +++ /var/tmp/diff_new_pack.05c4Xo/_new 2015-10-19 22:46:44.000000000 +0200 @@ -1,4 +1,4 @@ -From 7a2d2a1c3b66308cf03a00757f8fd97f043ccde4 Mon Sep 17 00:00:00 2001 +From bdb8ab0690eb927575de6f3e34d2b49a148e046f Mon Sep 17 00:00:00 2001 From: Thiago Macieira <thiago.macie...@intel.com> Date: Tue, 2 Jun 2015 11:30:57 -0700 Subject: [PATCH] Add an automatic use of the ELF-versioned QtCore symbol @@ -10,27 +10,24 @@ section, which is mergeable by the linker, so only one copy of the output is present in the ELF module. -The next commit will add a configure-time option to set -QT_NO_VERSION_TAGGING to qconfig.h. - This is enabled only for Linux and x86 / x86-64 / x32 due to the requirement of writing assembly and relocations, so it needs to be -tested on each platform, which I have not done. It probably works on the -BSDs too and might work on Solaris/x86, but again it requires -testing. Support for other architectures requires different assembly -output and relocations and can be added as needed, but they are not as -important since this trick is has most value on desktop systems. +tested on each platform, which I have not done. It might work on +Solaris/x86, but again it requires testing. Support for other +architectures requires different assembly output and relocations and can +be added as needed, but they are not as important since this trick is +has most value on desktop systems. Change-Id: I049a653beeb5454c9539ffff13e3ff5782a8cb86 --- src/corelib/global/global.pri | 3 +- src/corelib/global/qglobal.h | 1 + - src/corelib/global/qversiontagging.h | 80 ++++++++++++++++++++++++++++++++++++ - 3 files changed, 83 insertions(+), 1 deletion(-) + src/corelib/global/qversiontagging.h | 86 ++++++++++++++++++++++++++++++++++++ + 3 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 src/corelib/global/qversiontagging.h diff --git a/src/corelib/global/global.pri b/src/corelib/global/global.pri -index fdbebca..9f31fb9 100644 +index 2165a6c22e86948655c0074d50f8669c8a192d40..e231a8f1fddf8fd705f665089c235bd11a55f0b4 100644 --- a/src/corelib/global/global.pri +++ b/src/corelib/global/global.pri @@ -17,7 +17,8 @@ HEADERS += \ @@ -44,10 +41,10 @@ SOURCES += \ global/archdetect.cpp \ diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h -index c4e2f76..e7995ac 100644 +index 15d9b6536a9f1ee85371fea6dc9115438eec32d1..1a5afbe753ad08d088c9174c58fcce54ce327e0e 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h -@@ -1103,6 +1103,7 @@ QT_END_NAMESPACE +@@ -1104,6 +1104,7 @@ QT_END_NAMESPACE #include <QtCore/qatomic.h> #include <QtCore/qglobalstatic.h> #include <QtCore/qnumeric.h> @@ -57,7 +54,7 @@ diff --git a/src/corelib/global/qversiontagging.h b/src/corelib/global/qversiontagging.h new file mode 100644 -index 0000000..94246dd +index 0000000000000000000000000000000000000000..94246dd08b139fe3b9040a95824dcb3116a5b790 --- /dev/null +++ b/src/corelib/global/qversiontagging.h @@ -0,0 +1,80 @@ @@ -142,4 +139,4 @@ + +#endif // QVERSIONTAGGING_H && !QT_NO_VERSION_TAGGING -- -2.3.5 +2.6.0 ++++++ Fix-QtCore-compilation-with-clang.patch ++++++ >From 4c738356ee4f20b6414e43a1cd73817f7eb28dd1 Mon Sep 17 00:00:00 2001 From: Thiago Macieira <thiago.macie...@intel.com> Date: Thu, 17 Sep 2015 11:35:36 -0700 Subject: [PATCH 3/5] Fix QtCore compilation with clang The .altmacro is not supported with Clang's integrated assembly. The worst part is that I had this fixed, but apparently I never pushed the update to Gerrit and then we staged the old version. This commit brings back the fixes. Incidentally, it also makes things work with freebsd-clang. Change-Id: Id2a5d90d07d7ee470fcb9ad9696a9a0f9ced7ea7 Reviewed-by: Lars Knoll <lars.kn...@theqtcompany.com> Reviewed-by: Simon Hausmann <simon.hausm...@theqtcompany.com> (cherry picked from commit 05d401104ee6b10699b7288ead044d6765b19c4d) --- src/corelib/global/global.pri | 28 ++++++++++++++++++++++++++-- src/corelib/global/qversiontagging.cpp | 15 +++++++++++---- 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/src/corelib/global/global.pri b/src/corelib/global/global.pri index 7ca0734f1face0d4517fdb1257dbb9812f04d0d2..2165a6c22e86948655c0074d50f8669c8a192d40 100644 --- a/src/corelib/global/global.pri +++ b/src/corelib/global/global.pri @@ -27,8 +27,7 @@ SOURCES += \ global/qmalloc.cpp \ global/qnumeric.cpp \ global/qlogging.cpp \ - global/qhooks.cpp \ - global/qversiontagging.cpp + global/qhooks.cpp # qlibraryinfo.cpp includes qconfig.cpp INCLUDEPATH += $$QT_BUILD_TREE/src/corelib/global @@ -55,3 +54,28 @@ journald { PKGCONFIG_PRIVATE += libsystemd-journal DEFINES += QT_USE_JOURNALD } + +linux|freebsd { + VERSIONTAGGING_SOURCES = global/qversiontagging.cpp + ltcg|clang { + versiontagging_compiler.commands = $$QMAKE_CXX -c $(CXXFLAGS) $(INCPATH) + + # Disable LTO, as the global inline assembly may not get processed + versiontagging_compiler.commands += -fno-lto + + # Disable the integrated assembler for Clang, since it can't parse with + # the alternate macro syntax in use in qversiontagging.cpp + clang: versiontagging_compiler.commands += -no-integrated-as + + versiontagging_compiler.commands += -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} + versiontagging_compiler.dependency_type = TYPE_C + versiontagging_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)} + versiontagging_compiler.input = VERSIONTAGGING_SOURCES + versiontagging_compiler.variable_out = OBJECTS + versiontagging_compiler.name = compiling[versiontagging] ${QMAKE_FILE_IN} + silent: versiontagging_compiler.commands = @echo compiling[versiontagging] ${QMAKE_FILE_IN} && $$versiontagging_compiler.commands + QMAKE_EXTRA_COMPILERS += versiontagging_compiler + } else { + SOURCES += $$VERSIONTAGGING_SOURCES + } +} diff --git a/src/corelib/global/qversiontagging.cpp b/src/corelib/global/qversiontagging.cpp index e3d9efa16b7677a29963020660bc9c4b4a143356..66d3f8d00f7297d98c08cfa7aa359874e2e0aa8f 100644 --- a/src/corelib/global/qversiontagging.cpp +++ b/src/corelib/global/qversiontagging.cpp @@ -33,18 +33,25 @@ #include "qglobal.h" -#if defined(Q_CC_GNU) && defined(Q_OS_LINUX) && defined(Q_PROCESSOR_X86) && !defined(QT_STATIC) +#if defined(Q_CC_GNU) && (defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)) && defined(Q_PROCESSOR_X86) && !defined(QT_STATIC) # define SYM QT_MANGLE_NAMESPACE(qt_version_tag) # define SSYM QT_STRINGIFY(SYM) asm( +// ASM macro that makes one ELF versioned symbol +".macro make_versioned_symbol plainsym versionedsym\n" +".globl plainsym\n" +".type plainsym, @object\n" +".size plainsym, 1\n" +".symver plainsym, versionedsym\n" +"plainsym :\n" +".endm\n" + // ASM macro that makes one ELF versioned symbol qt_version_tag{sep}Qt_{major}.{minor} // that is an alias to qt_version_tag_{major}_{minor}. // The {sep} parameter must be @ for all old versions and @@ for the current version. ".macro make_one_tag major minor sep\n" -".globl " SSYM "_\\major\\()_\\minor\n" // make the symbol global -SSYM "_\\major\\()_\\minor:\n" // declare it -" .symver " SSYM "_\\major\\()_\\minor, " SSYM "\\sep\\()Qt_\\major\\().\\minor\n" +" make_versioned_symbol " SSYM "_\\major\\()_\\minor, " SSYM "\\sep\\()Qt_\\major\\().\\minor\n" ".endm\n" ".altmacro\n" -- 2.6.0 ++++++ move-the-official-Qt-version-from-qglobal-to-qmake-conf.patch ++++++ >From 2d2cb6434f1d6e00f421c98b20467ff3f4388319 Mon Sep 17 00:00:00 2001 From: Thiago Macieira <thiago.macie...@intel.com> Date: Thu, 17 Sep 2015 18:17:40 -0700 Subject: Move the official Qt version from qglobal.h to .qmake.conf It's easier to parse than qglobal.h. The objective is actually to have macros with parts of the version number, so the major or minor numbers could be used in other preprocessor macros. Change-Id: I42e7ef1a481840699a8dffff1404eda1dd5c308d Reviewed-by: Oswald Buddenhagen <oswald.buddenha...@theqtcompany.com> --- .qmake.conf | 3 +-- bin/syncqt.pl | 8 +------- configure | 37 +++++++++++++++++++++---------------- configure.bat | 20 ++++++++++++++++++-- qmake/Makefile.unix | 1 + qmake/Makefile.win32 | 1 + src/corelib/global/qglobal.h | 4 ++-- tools/configure/Makefile.mingw | 2 +- tools/configure/Makefile.win32 | 2 +- tools/configure/configureapp.cpp | 37 ++++++++++++++++++++++--------------- 10 files changed, 69 insertions(+), 46 deletions(-) diff --git a/.qmake.conf b/.qmake.conf index 481544b253daa7a41485c5eeddd6d2ef694a4b70..732b5da2621f2fc821404e7aef3ab7ed576dfc0c 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -5,5 +5,4 @@ CONFIG += warning_clean QT_SOURCE_TREE = $$PWD QT_BUILD_TREE = $$shadowed($$PWD) -# In qtbase, all modules follow qglobal.h -MODULE_VERSION = $$QT_VERSION +MODULE_VERSION = 5.5.1 diff --git a/bin/syncqt.pl b/bin/syncqt.pl index 3b3e127e86e664185a6b94829ac968673bf75651..c75390c561debf6558a4b7ae4b237b44a7c8f16b 100755 --- a/bin/syncqt.pl +++ b/bin/syncqt.pl @@ -786,6 +786,7 @@ while ( @ARGV ) { # if we have no $basedir we cannot be sure which sources you want, so die die "Could not find any sync.profile for your module!\nPass <module directory> to syncqt to sync your header files.\nsyncqt failed" if (!$basedir); +die "The -version argument is mandatory" if (!$module_version); our @ignore_headers = (); our @ignore_for_master_contents = (); @@ -803,13 +804,6 @@ my %allmoduleheadersprivate = map { $_ => 1 } @allmoduleheadersprivate; $isunix = checkUnix; #cache checkUnix -if (!$module_version) { - my $filco = fileContents($basedir."/src/corelib/global/qglobal.h"); - if ($filco !~ m,.*^#[ \t]*define[ \t]+QT_VERSION_STR[ \t]+"([^"]+)".*,sm) { - die "Cannot determine Qt/Module version. Use -version.\n"; - } - $module_version = $1; -} foreach my $lib (@modules_to_sync) { die "No such module: $lib" unless(defined $modules{$lib}); diff --git a/configure b/configure index cea62fbc0c46ae54938df282fffbbfde5bf794d6..45c74a61dc04b3cb80452eec22fda6189fc29795 100755 --- a/configure +++ b/configure @@ -539,23 +539,16 @@ fi #----------------------------------------------------------------------------- # Qt version detection #----------------------------------------------------------------------------- -QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h` +QT_VERSION= QT_MAJOR_VERSION= QT_MINOR_VERSION=0 QT_PATCH_VERSION=0 -if [ -n "$QT_VERSION" ]; then - QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'` - MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'` - if [ -n "$MAJOR" ]; then - MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'` - PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'` - QT_MAJOR_VERSION="$MAJOR" - [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR" - [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH" - fi -fi +eval `sed -n -e 's/^MODULE_VERSION = \(\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*\)$/QT_VERSION=\1\ + QT_MAJOR_VERSION=\2\ + QT_MINOR_VERSION=\3\ + QT_PATCH_VERSION=\4/p' < "$relpath"/.qmake.conf` if [ -z "$QT_MAJOR_VERSION" ]; then - echo "Cannot process version from qglobal.h: $QT_VERSION" + echo "Cannot process version from .qmake.conf" echo "Cannot proceed." exit 1 fi @@ -3896,7 +3889,7 @@ if [ -e "$relpath/.git" ]; then exit 1 fi - "$relpath/bin/syncqt.pl" -minimal -module QtCore "$relpath" || exit 1 + "$relpath/bin/syncqt.pl" -version $QT_VERSION -minimal -module QtCore "$relpath" || exit 1 fi # $1: input variable name (awk regexp) @@ -4038,6 +4031,9 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ]; fi echo "QMAKESPEC = $adjqmakespec" >> "$mkfile" echo "QT_VERSION = $QT_VERSION" >> "$mkfile" + echo "QT_MAJOR_VERSION = $QT_MAJOR_VERSION" >> "$mkfile" + echo "QT_MINOR_VERSION = $QT_MINOR_VERSION" >> "$mkfile" + echo "QT_PATCH_VERSION = $QT_PATCH_VERSION" >> "$mkfile" echo "EXTRA_CFLAGS = $EXTRA_CFLAGS" >> "$mkfile" echo "EXTRA_CXXFLAGS = $EXTRA_CXXFLAGS" >> "$mkfile" echo "QTOBJS =" $EXTRA_OBJS >> "$mkfile" @@ -6514,13 +6510,22 @@ esac # part of configuration information goes into qconfig.h #------------------------------------------------------------------------------- +# start with Qt's version number +cat > "$outpath/src/corelib/global/qconfig.h.new" <<EOF +#define QT_VERSION_MAJOR $QT_MAJOR_VERSION +#define QT_VERSION_MINOR $QT_MINOR_VERSION +#define QT_VERSION_PATCH $QT_PATCH_VERSION +#define QT_VERSION_STR "$QT_VERSION" + +EOF + case "$CFG_QCONFIG" in full) - echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new" + echo "/* Everything */" >>"$outpath/src/corelib/global/qconfig.h.new" ;; *) tmpconfig="$outpath/src/corelib/global/qconfig.h.new" - echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig" + echo "#ifndef QT_BOOTSTRAPPED" >>"$tmpconfig" cat "$CFG_QCONFIG_PATH" >>"$tmpconfig" echo "#endif" >>"$tmpconfig" ;; diff --git a/configure.bat b/configure.bat index 1220bfedc2de5ad78edbd636f4af7e39dbfde27b..47acf26d6278d43e70d3d6369a4f1cf06b3a57f7 100644 --- a/configure.bat +++ b/configure.bat @@ -34,6 +34,7 @@ @echo off set QTSRC=%~dp0 set QTDIR=%CD% + if not exist %QTSRC%.gitignore goto sconf echo Please wait while bootstrapping configure ... @@ -47,7 +48,18 @@ if not exist mkspecs ( md mkspecs if errorlevel 1 goto exit ) -perl %QTSRC%bin\syncqt.pl -minimal -module QtCore -outdir "%QTDIR%" %QTSRC% + +rem Extract Qt's version from .qmake.conf +for /f "eol=# tokens=1,2,3,4 delims=.= " %%i in (%QTSRC%.qmake.conf) do ( + if %%i == MODULE_VERSION ( + set QTVERMAJ=%%j + set QTVERMIN=%%k + set QTVERPAT=%%l + ) +) +set QTVERSION=%QTVERMAJ%.%QTVERMIN%.%QTVERPAT% + +perl %QTSRC%bin\syncqt.pl -minimal -version %QTVERSION% -module QtCore -outdir "%QTDIR%" %QTSRC% if errorlevel 1 goto exit if not exist tools\configure ( @@ -62,7 +74,11 @@ if not "%jom.exe%" == "" set make=jom echo #### Generated by configure.bat - DO NOT EDIT! ####> Makefile echo/>> Makefile -for /f "tokens=3 usebackq" %%V in (`findstr QT_VERSION_STR %QTSRC%src\corelib\global\qglobal.h`) do @echo QTVERSION = %%~V>> Makefile +echo QTVERSION = %QTVERSION%>> Makefile +rem These must have trailing spaces to avoid misinterpretation as 5>>, etc. +echo QT_VERSION_MAJOR = %QTVERMAJ% >> Makefile +echo QT_VERSION_MINOR = %QTVERMIN% >> Makefile +echo QT_VERSION_PATCH = %QTVERPAT% >> Makefile if not "%icl.exe%" == "" ( echo CXX = icl>>Makefile echo EXTRA_CXXFLAGS = /Zc:forScope>>Makefile diff --git a/qmake/Makefile.unix b/qmake/Makefile.unix index 86f884fe209195d814e8037fd8e9352e3e585ad0..d2d7bf7e6327fa57576c5dfe803c335ef4b965ca 100644 --- a/qmake/Makefile.unix +++ b/qmake/Makefile.unix @@ -101,6 +101,7 @@ CPPFLAGS = -g $(EXTRA_CPPFLAGS) \ -I$(BUILD_PATH)/src/corelib/global -DHAVE_QCONFIG_CPP \ -I$(QMAKESPEC) \ -I$(SOURCE_PATH)/tools/shared \ + -DQT_VERSION_STR=\"$(QT_VERSION)\" -DQT_VERSION_MAJOR=$(QT_MAJOR_VERSION) -DQT_VERSION_MINOR=$(QT_MINOR_VERSION) -DQT_VERSION_PATCH=$(QT_PATCH_VERSION) \ -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DPROEVALUATOR_FULL \ -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_COMPRESS \ -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM \ diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32 index 9dda6ca1e7b7399e6179732b677824d624e745d0..fdbb9c8499a78a980cf3e0a7900567320aae9676 100644 --- a/qmake/Makefile.win32 +++ b/qmake/Makefile.win32 @@ -36,6 +36,7 @@ CFLAGS_BARE = -c -Fo./ -Fdqmake.pdb \ -I$(BUILD_PATH)\src\corelib\global -DHAVE_QCONFIG_CPP \ -I$(SOURCE_PATH)\mkspecs\$(QMAKESPEC) \ -I$(SOURCE_PATH)\tools\shared \ + -DQT_VERSION_STR=\"$(QT_VERSION)\" -DQT_VERSION_MAJOR=$(QT_MAJOR_VERSION) -DQT_VERSION_MINOR=$(QT_MINOR_VERSION) -DQT_VERSION_PATCH=$(QT_PATCH_VERSION) \ -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DPROEVALUATOR_FULL \ -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_COMPRESS \ -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM \ diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index 97c5f37cab02c35bfdb75ec8ab58b97dc0a6b1de..15d9b6536a9f1ee85371fea6dc9115438eec32d1 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -41,11 +41,10 @@ #include <stddef.h> -#define QT_VERSION_STR "5.5.1" /* QT_VERSION is (major << 16) + (minor << 8) + patch. */ -#define QT_VERSION 0x050501 +#define QT_VERSION QT_VERSION_CHECK(QT_VERSION_MAJOR, QT_VERSION_MINOR, QT_VERSION_PATCH) /* can be used like #if (QT_VERSION >= QT_VERSION_CHECK(4, 4, 0)) */ @@ -55,6 +54,7 @@ #include <QtCore/qconfig.h> #include <QtCore/qfeatures.h> #endif + #ifdef _MSC_VER # define QT_SUPPORTS(FEATURE) (!defined QT_NO_##FEATURE) #else diff --git a/tools/configure/Makefile.mingw b/tools/configure/Makefile.mingw index 9ac99fd678f46445771147d80542e9bba3b37acf..6ec77c8ab511c4375711964fbb41e9a817decf2e 100644 --- a/tools/configure/Makefile.mingw +++ b/tools/configure/Makefile.mingw @@ -4,7 +4,7 @@ CONFSRC = $(TOOLSRC)/configure RAW_PCH = configure_pch.h PCH = $(RAW_PCH).gch/c++ -DEFINES = -DUNICODE -DQT_NO_DATASTREAM -DQT_NO_CODECS -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NO_COMPRESS -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -D_CRT_SECURE_NO_DEPRECATE -DQT_BOOTSTRAPPED -DQT_BUILD_CONFIGURE +DEFINES = -DUNICODE -DQT_NO_DATASTREAM -DQT_NO_CODECS -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NO_COMPRESS -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -D_CRT_SECURE_NO_DEPRECATE -DQT_BOOTSTRAPPED -DQT_BUILD_CONFIGURE -DQT_VERSION_STR=\"$(QTVERSION)\" -DQT_VERSION_MAJOR=$(QT_VERSION_MAJOR) -DQT_VERSION_MINOR=$(QT_VERSION_MINOR) -DQT_VERSION_PATCH=$(QT_VERSION_PATCH) INCPATH = -I"../../include" -I"../../include/QtCore" -I"../../include/QtCore/$(QTVERSION)" -I"../../include/QtCore/$(QTVERSION)/QtCore" -I"$(TOOLSRC)/shared" -I"$(QTSRC)mkspecs/win32-g++" CXXFLAGS_BARE = -fno-rtti -fno-exceptions -mthreads -Wall -Wextra $(DEFINES) $(INCPATH) CXXFLAGS = -include $(RAW_PCH) $(CXXFLAGS_BARE) diff --git a/tools/configure/Makefile.win32 b/tools/configure/Makefile.win32 index 8c6d213e4243b444357712cf6c0d8d4dcfa3ff36..456e441c6f548bc3e3c0ac0a8847bf965aeb5902 100644 --- a/tools/configure/Makefile.win32 +++ b/tools/configure/Makefile.win32 @@ -3,7 +3,7 @@ TOOLSRC = $(QTSRC)tools CONFSRC = $(TOOLSRC)\configure PCH = configure_pch.pch -DEFINES = -DUNICODE -DQT_NO_CODECS -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NO_COMPRESS -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -D_CRT_SECURE_NO_DEPRECATE -DQT_BOOTSTRAPPED -DQT_BUILD_CONFIGURE +DEFINES = -DUNICODE -DQT_NO_CODECS -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NO_COMPRESS -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -D_CRT_SECURE_NO_DEPRECATE -DQT_BOOTSTRAPPED -DQT_BUILD_CONFIGURE -DQT_VERSION_STR=\"$(QTVERSION)\" -DQT_VERSION_MAJOR=$(QT_VERSION_MAJOR) -DQT_VERSION_MINOR=$(QT_VERSION_MINOR) -DQT_VERSION_PATCH=$(QT_VERSION_PATCH) INCPATH = -I"..\..\include" -I"..\..\include\QtCore" -I"..\..\include\QtCore\$(QTVERSION)" -I"..\..\include\QtCore\$(QTVERSION)\QtCore" -I"$(TOOLSRC)\shared" -I"$(QTSRC)mkspecs\win32-msvc2008" CXXFLAGS_BARE = -nologo -Zc:wchar_t -W3 -GR -EHsc -w34100 -w34189 $(CFLAGS_CRT) $(EXTRA_CXXFLAGS) $(DEFINES) $(INCPATH) CXXFLAGS = -FIconfigure_pch.h -Yuconfigure_pch.h -Fp$(PCH) -MP $(CXXFLAGS_BARE) diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index 3bf0546ac1628e8ab51979526bb102d1e8db8de8..36cc8b03cd24ddb5d01d85fc57254059e76a49da 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -197,20 +197,18 @@ Configure::Configure(int& argc, char** argv) dictionary[ "QT_INSTALL_SETTINGS" ] = "/etc/xdg"; QString version; - QFile qglobal_h(sourcePath + "/src/corelib/global/qglobal.h"); - if (qglobal_h.open(QFile::ReadOnly)) { - QTextStream read(&qglobal_h); - QRegExp version_regexp("^# *define *QT_VERSION_STR *\"([^\"]*)\""); - QString line; - while (!read.atEnd()) { - line = read.readLine(); - if (version_regexp.exactMatch(line)) { - version = version_regexp.cap(1).trimmed(); - if (!version.isEmpty()) - break; - } + QFile qmake_conf(sourcePath + "/.qmake.conf"); + if (qmake_conf.open(QFile::ReadOnly)) { + while (!qmake_conf.atEnd()) { + static const char beginning[] = "MODULE_VERSION = "; + QByteArray line = qmake_conf.readLine(); + if (!line.startsWith(beginning)) + continue; + + version = qMove(line).mid(int(strlen(beginning))).trimmed(); + break; } - qglobal_h.close(); + qmake_conf.close(); } if (version.isEmpty()) @@ -3540,6 +3538,12 @@ void Configure::generateConfigfiles() { FileWriter tmpStream(buildPath + "/src/corelib/global/qconfig.h"); + tmpStream << "#define QT_VERSION_MAJOR " << dictionary["VERSION_MAJOR"] << endl + << "#define QT_VERSION_MINOR " << dictionary["VERSION_MINOR"] << endl + << "#define QT_VERSION_PATCH " << dictionary["VERSION_PATCH"] << endl + << "#define QT_VERSION_STR \"" << dictionary["VERSION"] << "\"\n" + << endl; + if (dictionary[ "QCONFIG" ] == "full") { tmpStream << "/* Everything */" << endl; } else { @@ -3939,7 +3943,7 @@ void Configure::generateHeaders() QStringList args; args << "perl" << "-w"; args += sourcePath + "/bin/syncqt.pl"; - args << "-minimal" << "-module" << "QtCore"; + args << "-version" << dictionary["VERSION"] << "-minimal" << "-module" << "QtCore"; args += sourcePath; int retc = Environment::execute(args, QStringList(), QStringList()); if (retc) { @@ -4202,7 +4206,10 @@ void Configure::buildQmake() << "INC_PATH = " << QDir::toNativeSeparators( (QFile::exists(sourcePath + "/.git") ? ".." : sourcePath) + "/include") << endl; - stream << "QT_VERSION = " << dictionary["VERSION"] << endl; + stream << "QT_VERSION = " << dictionary["VERSION"] << endl + << "QT_MAJOR_VERSION = " << dictionary["VERSION_MAJOR"] << endl + << "QT_MINOR_VERSION = " << dictionary["VERSION_MINOR"] << endl + << "QT_PATCH_VERSION = " << dictionary["VERSION_PATCH"] << endl; if (dictionary[ "QMAKESPEC" ] == QString("win32-g++")) { stream << "QMAKESPEC = $(SOURCE_PATH)\\mkspecs\\win32-g++" << endl << "EXTRA_CFLAGS = -DUNICODE -ffunction-sections" << endl -- 2.6.0 ++++++ qtbase-opensource-src-5.5.0.tar.xz -> qtbase-opensource-src-5.5.1.tar.xz ++++++ /work/SRC/openSUSE:Factory/libqt5-qtbase/qtbase-opensource-src-5.5.0.tar.xz /work/SRC/openSUSE:Factory/.libqt5-qtbase.new/qtbase-opensource-src-5.5.1.tar.xz differ: char 27, line 1