Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package qt6-base for openSUSE:Factory checked in at 2026-10-18 19:22:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/qt6-base (Old) and /work/SRC/openSUSE:Factory/.qt6-base.new.3698736 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qt6-base" Sun Oct 18 19:22:05 2026 rev:87 rq:1384606 version:6.12.0 Changes: -------- --- /work/SRC/openSUSE:Factory/qt6-base/qt6-base.changes 2026-08-26 19:51:40.431398499 +0200 +++ /work/SRC/openSUSE:Factory/.qt6-base.new.3698736/qt6-base.changes 2026-10-18 19:22:12.000964346 +0200 @@ -1,0 +2,17 @@ +Tue Oct 13 12:14:02 UTC 2026 - Christophe Marin <[email protected]> + +- Add upstream changes: + * 6.12.0_Fix_touchpad_scrolling.patch + * build_with_md4c_0_6_0.patch + +------------------------------------------------------------------- +Wed Sep 30 16:08:30 UTC 2026 - Christophe Marin <[email protected]> + +- Update to 6.12.0 + https://www.qt.io/blog/qt-6.12-released +- Drop patches: + * 0001-CMake-Handle-generated-headers-in-syncqt-scan-all-mo.patch + * 0001-QIconLoader-Don-t-consider-fallbackThemeName-in-them.patch + * 0001-Use-newer-GCC-on-Leap.patch + +------------------------------------------------------------------- Old: ---- 0001-CMake-Handle-generated-headers-in-syncqt-scan-all-mo.patch 0001-QIconLoader-Don-t-consider-fallbackThemeName-in-them.patch 0001-Use-newer-GCC-on-Leap.patch qtbase-everywhere-src-6.11.2.tar.xz New: ---- 6.12.0_Fix_touchpad_scrolling.patch build_with_md4c_0_6_0.patch qtbase-everywhere-src-6.12.0.tar.xz ----------(Old B)---------- Old:- Drop patches: * 0001-CMake-Handle-generated-headers-in-syncqt-scan-all-mo.patch * 0001-QIconLoader-Don-t-consider-fallbackThemeName-in-them.patch Old: * 0001-CMake-Handle-generated-headers-in-syncqt-scan-all-mo.patch * 0001-QIconLoader-Don-t-consider-fallbackThemeName-in-them.patch * 0001-Use-newer-GCC-on-Leap.patch Old: * 0001-QIconLoader-Don-t-consider-fallbackThemeName-in-them.patch * 0001-Use-newer-GCC-on-Leap.patch ----------(Old E)---------- ----------(New B)---------- New:- Add upstream changes: * 6.12.0_Fix_touchpad_scrolling.patch * build_with_md4c_0_6_0.patch New: * 6.12.0_Fix_touchpad_scrolling.patch * build_with_md4c_0_6_0.patch ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ qt6-base.spec ++++++ --- /var/tmp/diff_new_pack.NNWVaN/_old 2026-10-18 19:22:14.371062606 +0200 +++ /var/tmp/diff_new_pack.NNWVaN/_new 2026-10-18 19:22:14.374062730 +0200 @@ -16,8 +16,8 @@ # -%define real_version 6.11.2 -%define short_version 6.11 +%define real_version 6.12.0 +%define short_version 6.12 %define tar_name qtbase-everywhere-src %define tar_suffix %{nil} # @@ -29,11 +29,8 @@ %ifarch %{arm} aarch64 %global with_gles 1 %endif -%if 0%{?suse_version} > 1500 -%bcond_without system_md4c -%endif Name: qt6-base%{?pkg_suffix} -Version: 6.11.2 +Version: 6.12.0 Release: 0 Summary: Qt 6 core components (Core, Gui, Widgets, Network...) # Legal: qtpaths is BSD-3-Clause @@ -42,8 +39,8 @@ Source0: https://download.qt.io/official_releases/qt/%{short_version}/%{real_version}%{tar_suffix}/submodules/%{tar_name}-%{real_version}%{tar_suffix}.tar.xz Source99: qt6-base-rpmlintrc # Patches 0-100 are upstream patches # -Patch0: 0001-CMake-Handle-generated-headers-in-syncqt-scan-all-mo.patch -Patch1: 0001-QIconLoader-Don-t-consider-fallbackThemeName-in-them.patch +Patch0: build_with_md4c_0_6_0.patch +Patch1: 6.12.0_Fix_touchpad_scrolling.patch # Patches 100-200 are openSUSE and/or non-upstream(able) patches # # No need to pollute the library dir with object files, install them in the qt6 subfolder Patch100: 0001-CMake-Install-objects-files-into-ARCHDATADIR.patch @@ -51,16 +48,10 @@ # Change a couple default build system settings Patch102: 0001-Change-default-settings-for-Qt-packages.patch # Conditional patches depending on the leap version -Patch201: 0001-Use-newer-GCC-on-Leap.patch -Patch202: 0001-Use-newer-GCC-on-Leap-16.patch +Patch201: 0001-Use-newer-GCC-on-Leap-16.patch ## BuildRequires: cmake >= 3.18.3 BuildRequires: cups-devel -# The default GCC version in Leap 15 is too old -%if 0%{?suse_version} == 1500 -BuildRequires: gcc14-PIE -BuildRequires: gcc14-c++ -%endif %if 0%{?suse_version} >= 1600 && 0%{?suse_version} < 1699 BuildRequires: gcc15-PIE BuildRequires: gcc15-c++ @@ -77,15 +68,13 @@ BuildRequires: qt6-macros >= 20260508 %ifnarch ppc64le s390x %if 0%{?suse_version} >= 1699 -# Not available in Leap 15 nor 16, and fails to build for ppc and s390x +# Not available in Leap 16, and fails to build for ppc and s390x BuildRequires: renderdoc-devel %endif %endif BuildRequires: xmlstarlet BuildRequires: cmake(double-conversion) -%if %{with system_md4c} BuildRequires: cmake(md4c) -%endif BuildRequires: pkgconfig(atspi-2) BuildRequires: pkgconfig(dbus-1) BuildRequires: pkgconfig(egl) @@ -253,11 +242,6 @@ Summary: Development files for the Qt 6 Core library Requires: libQt6Core6 = %{version} Requires: qt6-base-common-devel = %{version} -# Some KDE packages start using gcc features not available in gcc < 14 -%if 0%{?suse_version} == 1500 -Requires: gcc14-PIE -Requires: gcc14-c++ -%endif %if 0%{?suse_version} >= 1600 && 0%{?suse_version} < 1699 Requires: gcc15-PIE Requires: gcc15-c++ @@ -808,11 +792,8 @@ %prep %setup -q -n %{tar_name}-%{real_version}%{tar_suffix} %autopatch -p1 -m 0 -M 200 -%if 0%{?suse_version} == 1500 -%patch -p1 -P 201 -%endif %if 0%{?suse_version} >= 1600 && 0%{?suse_version} < 1699 -%patch -p1 -P 202 +%patch -p1 -P 201 %endif # Copy the freetype license file to prevent errors when building docs @@ -823,10 +804,8 @@ sed -i '/\/3rdparty\/blake2/d' src/corelib/CMakeLists.txt # We don't want to use these 3rdparty libraries -rm -r src/3rdparty/{blake2,double-conversion,freetype,harfbuzz-ng,libjpeg,libpng,pcre2,sqlite,xcb,zlib} -%if %{with system_md4c} -rm -r src/3rdparty/md4c -%endif +rm -r src/3rdparty/{blake2,double-conversion,freetype,harfbuzz-ng,libjpeg,libpng,md4c,pcre2,sqlite,xcb,zlib} + # Remove license files symlinked to deleted 3rdparty libraries rm LICENSES/{FTL.txt,IJG.txt,libpng-2.0.txt,Zlib.txt} @@ -944,6 +923,8 @@ %dir %{_qt6_mkspecsdir}/modules %{_bindir}/androiddeployqt6 %{_bindir}/androidtestrunner6 +%{_bindir}/harmonydeployqt6 +%{_bindir}/harmonyostestrunner6 %{_bindir}/qdbuscpp2xml6 %{_bindir}/qdbusxml2cpp6 %{_bindir}/qmake6 @@ -954,6 +935,8 @@ %{_bindir}/wasmdeployqt6 %{_qt6_bindir}/androiddeployqt %{_qt6_bindir}/androidtestrunner +%{_qt6_bindir}/harmonydeployqt +%{_qt6_bindir}/harmonyostestrunner %{_qt6_bindir}/qdbuscpp2xml %{_qt6_bindir}/qdbusxml2cpp %{_qt6_bindir}/qmake ++++++ 6.12.0_Fix_touchpad_scrolling.patch ++++++ >From 606c9a40b5f4d4b86136bd8523af25fa1956de26 Mon Sep 17 00:00:00 2001 From: David Redondo <[email protected]> Date: Fri, 9 Oct 2026 07:14:36 +0000 Subject: [PATCH] Revert "wayland: Report pixelScroll capability for touchpads" This reverts commit 1f94e2782c071c9c687da1bc0141f55118943623. Reason for revert: While touchpads indeed have pixel scroll, currently all events are attributed to this device if it exists also the ones that come from mice. This has further side effects like slow scrolling in widgets or not working functionality in QTabbar. If we want to go in this direction it needs more work likely also in widgets. Task: QTBUG-150280 Change-Id: I1e774fce9888caa4c485405679b2a45499429813 Pick-to: 6.12 --- src/plugins/platforms/wayland/qwaylandinputdevice.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/plugins/platforms/wayland/qwaylandinputdevice.cpp b/src/plugins/platforms/wayland/qwaylandinputdevice.cpp index 8cf3ae935ee..0c667be52ef 100644 --- a/src/plugins/platforms/wayland/qwaylandinputdevice.cpp +++ b/src/plugins/platforms/wayland/qwaylandinputdevice.cpp @@ -414,13 +414,10 @@ void QWaylandInputDevice::seat_capabilities(uint32_t caps) auto *pointerGestures = mQDisplay->pointerGestures(); if (pointerGestures) { - QInputDevice::Capabilities pointerCapabilities = QInputDevice::Capability::Position - | QInputDevice::Capability::PixelScroll - | QInputDevice::Capability::Scroll; // NOTE: The name of the device and its system ID are not exposed on Wayland. mTouchPadDevice = new QPointingDevice( QLatin1StringView("touchpad"), 0, QInputDevice::DeviceType::TouchPad, - QPointingDevice::PointerType::Finger, pointerCapabilities, + QPointingDevice::PointerType::Finger, QInputDevice::Capability::Position, MaxTouchPoints, 0, mSeatName, QPointingDeviceUniqueId(), this); QWindowSystemInterface::registerInputDevice(mTouchPadDevice); mPointerGesturePinch.reset(pointerGestures->createPointerGesturePinch(this)); -- 2.55.0 ++++++ build_with_md4c_0_6_0.patch ++++++ Note : The following change was trimmed. 3rd party code update was dropped from the patch (unneeded for our package) >From c8e56913ff414fe18d8ba5675819c7eaef4946cb Mon Sep 17 00:00:00 2001 From: Shawn Rutledge <[email protected]> Date: Wed, 23 Sep 2026 22:23:16 +0200 Subject: [PATCH] Update md4c to 0.6.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Amends d377d1f3a921488525f6e75c850632f559707747 : Qt's definition of GitHub dialect remains as it was, while md4c has recently added features that we don't yet support. We need to verify that the new features are not inadvertently turned on before Qt is ready to handle them, and deal with the clashing feature flag (0x100000 is for FrontMatter in Qt, footnotes in md4c). It seems for now that we will not be able to support footnotes, both because of the clashing flag and because it would be hard to change the text-editing components to support them; so a test is added to verify that the markdown footnote syntax is NOT interpreted specially. Likewise, a test verifies that a markdown "admonition" is treated as an ordinary block quote for now (but this can be improved later). [ChangeLog][Third-Party Code] Updated md4c to version 0.6.0. Fixes: QTBUG-148738 Fixes: QTBUG-150636 Fixes: QTBUG-150661 Task-number: QTBUG-149921 Pick-to: 6.12.0 6.8 6.5 Change-Id: Iffd17982fe0d606b0f5003e25ee85b2db6ad019a Reviewed-by: Oliver Eftevaag <[email protected]> Reviewed-by: Kai Köhne <[email protected]> (cherry picked from commit 032643f99e090e0304ef935c2ee11c109d55c8a1) Reviewed-by: Qt Cherry-pick Bot <[email protected]> --- diff --git a/src/gui/text/qtextmarkdownimporter.cpp b/src/gui/text/qtextmarkdownimporter.cpp index 3f57c700fa8..3ee8b4104de 100644 --- a/src/gui/text/qtextmarkdownimporter.cpp +++ b/src/gui/text/qtextmarkdownimporter.cpp @@ -51,8 +51,10 @@ static_assert(int(QTextMarkdownImporter::FeaturePermissiveAutoLinks) == MD_FLAG_ static_assert(int(QTextMarkdownImporter::FeatureTasklists) == MD_FLAG_TASKLISTS); static_assert(int(QTextMarkdownImporter::FeatureNoHTML) == MD_FLAG_NOHTML); static_assert(int(QTextMarkdownImporter::DialectCommonMark) == MD_DIALECT_COMMONMARK); +// We don't yet support all the features in MD_DIALECT_GITHUB static_assert(int(QTextMarkdownImporter::DialectGitHub) == - (MD_DIALECT_GITHUB | MD_FLAG_UNDERLINE | QTextMarkdownImporter::FeatureFrontMatter)); + (MD_FLAG_PERMISSIVEAUTOLINKS | MD_FLAG_TABLES | MD_FLAG_STRIKETHROUGH | MD_FLAG_TASKLISTS + | MD_FLAG_UNDERLINE | QTextMarkdownImporter::FeatureFrontMatter)); // -------------------------------------------------------- // MD4C callback function wrappers @@ -167,7 +169,7 @@ void QTextMarkdownImporter::import(const QString &markdown) { MD_PARSER callbacks = { 0, // abi_version - unsigned(m_features), + unsigned(m_features) & unsigned(0xFFEFFFFF), // exclude MD_FLAG_FOOTNOTES: unsupported in Qt &CbEnterBlock, &CbLeaveBlock, &CbEnterSpan, diff --git a/src/gui/text/qtextmarkdownimporter_p.h b/src/gui/text/qtextmarkdownimporter_p.h index 8b8f4ec9bb8..ba188a3b33e 100644 --- a/src/gui/text/qtextmarkdownimporter_p.h +++ b/src/gui/text/qtextmarkdownimporter_p.h @@ -47,6 +47,10 @@ public: FeatureTasklists = 0x0800, FeatureUnderline = 0x4000, FeatureFrontMatter = 0x100000, // Qt feature, not yet in MD4C + // NOTE: flags above are kept in sync with #define MD_FLAG_*; therefore, + // do NOT add any more Qt-specific flags (within the lower 32 bits). + // Because we have FeatureFrontMatter, we cannot support MD_FLAG_FOOTNOTES. + // composite flags FeaturePermissiveAutoLinks = FeaturePermissiveMailAutoLinks | FeaturePermissiveURLAutoLinks | FeaturePermissiveWWWAutoLinks, diff --git a/tests/auto/gui/text/qtextmarkdownimporter/data/admonitions.md b/tests/auto/gui/text/qtextmarkdownimporter/data/admonitions.md new file mode 100644 index 00000000000..040d133fbd7 --- /dev/null +++ b/tests/auto/gui/text/qtextmarkdownimporter/data/admonitions.md @@ -0,0 +1,17 @@ +Admonitions, AKA Alerts: +https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts + +> [!NOTE] +> Useful information that users should know, even when skimming content. + +> [!TIP] +> Helpful advice for doing things better or more easily. + +> [!IMPORTANT] +> Key information users need to know to achieve their goal. + +> [!WARNING] +> Urgent info that needs immediate user attention to avoid problems. + +> [!CAUTION] +> Advises about risks or negative outcomes of certain actions. diff --git a/tests/auto/gui/text/qtextmarkdownimporter/data/footnotes.md b/tests/auto/gui/text/qtextmarkdownimporter/data/footnotes.md new file mode 100644 index 00000000000..91c3f84011a --- /dev/null +++ b/tests/auto/gui/text/qtextmarkdownimporter/data/footnotes.md @@ -0,0 +1,13 @@ +From https://www.markdownguide.org/extended-syntax/#footnotes + +Here's a simple footnote,[^1] and here's a longer one.[^bignote] + +[^1]: This is the first footnote. + +[^bignote]: Here's one with multiple paragraphs and code. + + Indent paragraphs to include them in the footnote. + + `{ my code }` + + Add as many paragraphs as you like. diff --git a/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp b/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp index 001f3ff00d7..0f0dd80a8da 100644 --- a/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp +++ b/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp @@ -46,6 +46,8 @@ private slots: void fencedCodeBlocks(); void frontMatter_data(); void frontMatter(); + void admonitions(); + void footnotes(); void toRawText_data(); void toRawText(); @@ -719,6 +721,90 @@ void tst_QTextMarkdownImporter::frontMatter() QCOMPARE(doc.metaInformation(QTextDocument::FrontMatter).size(), expectedFrontMatterSize); } +void tst_QTextMarkdownImporter::admonitions() // QTBUG-149922 +{ + // QTextDocument doesn't have a representation for admonitions yet. + // But test what happens when we parse a markdown file that has them. + // We expect them to be seen as block quotes; the syntax like "[!NOTE]" + // comes out as-is for now, whereas in the future it could trigger some CSS style. + QTextDocument doc; + QFile f(QFINDTESTDATA("data/admonitions.md")); + QVERIFY(f.open(QFile::ReadOnly)); + doc.setMarkdown(f.readAll()); + +#ifdef DEBUG_WRITE_HTML + { + QFile out("/tmp/admonitions.html"); + out.open(QFile::WriteOnly); + out.write(doc.toHtml().toLatin1()); + out.close(); + } +#endif + + QTextFrame::iterator iterator = doc.rootFrame()->begin(); + QTextFrame *currentFrame = iterator.currentFrame(); + int blockQuoteCount = 0; + int plainBlockCount = 0; + while (!iterator.atEnd()) { + // There are no child frames + QCOMPARE(iterator.currentFrame(), currentFrame); + // Check BlockQuoteLevel + QTextBlock block = iterator.currentBlock(); + const bool blockQuote = block.blockFormat().hasProperty(QTextFormat::BlockQuoteLevel); + if (blockQuote) { + QCOMPARE(block.blockFormat().intProperty(QTextFormat::BlockQuoteLevel), 1); + ++blockQuoteCount; + } else { + ++plainBlockCount; + } + qCDebug(lcTests) << (blockQuoteCount ? "quote" : "text") << block.text(); + ++iterator; + } + QCOMPARE(blockQuoteCount, 5); + QCOMPARE(plainBlockCount, 1); +} + +void tst_QTextMarkdownImporter::footnotes() // QTBUG-149923 +{ + // QTextDocument doesn't have a representation for footnotes yet. + // But test what happens when we parse a markdown file that has them. + QTextDocument doc; + QFile f(QFINDTESTDATA("data/footnotes.md")); + QVERIFY(f.open(QFile::ReadOnly)); + doc.setMarkdown(f.readAll()); + +#ifdef DEBUG_WRITE_HTML + { + QFile out("/tmp/footnotes.html"); + out.open(QFile::WriteOnly); + out.write(doc.toHtml().toLatin1()); + out.close(); + } +#endif + + QTextFrame::iterator iterator = doc.rootFrame()->begin(); + QTextFrame *currentFrame = iterator.currentFrame(); + int nonEmptyBlockCount = 0; + int firstFootNoteIndex = -1; + while (!iterator.atEnd()) { + // There are no child frames + QCOMPARE(iterator.currentFrame(), currentFrame); + QTextBlock block = iterator.currentBlock(); + if (!block.text().isEmpty()) { + qCDebug(lcTests) << block.text(); + // Without MD_FLAG_FOOTNOTES (which QTD cannot support right now), + // the special syntax is ignored, and the first footnote is an ordinary inline paragraph. + // If MD_FLAG_FOOTNOTES got turned on, md4c would emit it into the last block instead. + if (block.text().contains("This is the first footnote.")) + firstFootNoteIndex = nonEmptyBlockCount; + ++nonEmptyBlockCount; + } + ++iterator; + } + QCOMPARE(nonEmptyBlockCount, 7); + QCOMPARE(firstFootNoteIndex, 2); +} + void tst_QTextMarkdownImporter::toRawText_data() { QTest::addColumn<QString>("input"); -- 2.55.0 ++++++ qtbase-everywhere-src-6.11.2.tar.xz -> qtbase-everywhere-src-6.12.0.tar.xz ++++++ /work/SRC/openSUSE:Factory/qt6-base/qtbase-everywhere-src-6.11.2.tar.xz /work/SRC/openSUSE:Factory/.qt6-base.new.3698736/qtbase-everywhere-src-6.12.0.tar.xz differ: char 26, line 1
