Bug#990619: unblock: qtbase-opensource-src/5.15.2+dfsg-9
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
Please unblock package qtbase-opensource-src 5.15.2+dfsg-9.
[ Reason ]
Unfortunately the patch I added in 5.15.2+dfsg-6 introduced some regressions.
The original purpose of that patch was to fix the bug described here:
- https://bugs.launchpad.net/bugs/1857824
- https://bugs.kde.org/show_bug.cgi?id=417761
However that patch also contained an unrelated change. Quoting the commit
message:
> This change also optimizes QMimeBinaryProvider::addFileNameMatches
> to have the same logic as xdgmime for glob matching:
> literals > extensions > other globs
> As soon as one category matches, we can stop there.
> This makes no difference in the overall results, in practice.
It turns out this optimization causes various problems, which can be seen in
the following bug reports:
- https://bugs.debian.org/989255 (problems with qbittorrent-nox)
- https://bugs.debian.org/989744 (problems with dolphin and all/all MIME type)
- https://bugs.debian.org/990129 (problems with Qt WebEngine)
[ Impact ]
According to the bugs, the previous patch causes issues in different
applications. All issues are in some way related to determining MIME types.
[ Tests ]
I have prepared a locally built .deb where the part of the patch causing
problems was removed:
- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=989744#37
In all three bugs, I got feedback that the issue is fixed with that:
- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=989255#36
- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=989744#42
- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=990129#27
[ Risks ]
The risks are all related to MIME types handling. But at least it should be
no worse than before -6 upload. I hope these two parts of the patch were
really independent.
[ Checklist ]
[x] all changes are documented in the d/changelog
[x] I reviewed all changes and I approve them
[x] attach debdiff against the package in testing
[ Other info ]
The 5.15.2+dfsg-8 upload contained another fix that was contributed to us via
a merge request. Apparently that fix also causes a regression, so I decided to
remove it in -9.
unblock qtbase-opensource-src/5.15.2+dfsg-9
Of course there is no urgency, this package can wait its N-day quarantine
in unstable.
--
Dmitry Shachnev
diff -Nru qtbase-opensource-src-5.15.2+dfsg/debian/changelog qtbase-opensource-src-5.15.2+dfsg/debian/changelog
--- qtbase-opensource-src-5.15.2+dfsg/debian/changelog 2021-06-03 15:55:29.000000000 +0300
+++ qtbase-opensource-src-5.15.2+dfsg/debian/changelog 2021-07-02 18:58:04.000000000 +0300
@@ -1,3 +1,23 @@
+qtbase-opensource-src (5.15.2+dfsg-9) unstable; urgency=medium
+
+ * Revert adding fix-misplacement-of-placeholder-text-in-QLineEdit.diff.
+ Unfortunately it causes a regression (see QTBUG-94824).
+
+ -- Dmitry Shachnev <mitya57@debian.org> Fri, 02 Jul 2021 18:58:04 +0300
+
+qtbase-opensource-src (5.15.2+dfsg-8) unstable; urgency=medium
+
+ [ Lu Yaning ]
+ * Backport upstream patch to fix misplacement of placeholder text in
+ QLineEdit with RTL content.
+
+ [ Dmitry Shachnev ]
+ * Remove the qmimeprovider.cpp part of mime_globs.diff. It is unrelated
+ to the original purpose of that patch, and causes various problems
+ (closes: #989255, #989744, #990129).
+
+ -- Dmitry Shachnev <mitya57@debian.org> Mon, 28 Jun 2021 20:38:59 +0300
+
qtbase-opensource-src (5.15.2+dfsg-7) unstable; urgency=medium
[ Lu Yaning ]
diff -Nru qtbase-opensource-src-5.15.2+dfsg/debian/patches/mime_globs.diff qtbase-opensource-src-5.15.2+dfsg/debian/patches/mime_globs.diff
--- qtbase-opensource-src-5.15.2+dfsg/debian/patches/mime_globs.diff 2021-06-03 15:37:49.000000000 +0300
+++ qtbase-opensource-src-5.15.2+dfsg/debian/patches/mime_globs.diff 2021-07-02 18:58:04.000000000 +0300
@@ -2,14 +2,8 @@
When multiple globs match, and the result from magic sniffing is
unrelated to any of those globs, globs have priority and one of them
should be picked up.
- .
- This change also optimizes QMimeBinaryProvider::addFileNameMatches
- to have the same logic as xdgmime for glob matching:
- literals > extensions > other globs
- As soon as one category matches, we can stop there.
- This makes no difference in the overall results, in practice.
Origin: upstream, https://code.qt.io/cgit/qt/qtbase.git/commit/?id=0cbbba2aa5b47224
-Last-Update: 2021-05-18
+Last-Update: 2021-06-12
--- a/src/corelib/mimetypes/qmimedatabase.cpp
+++ b/src/corelib/mimetypes/qmimedatabase.cpp
@@ -55,31 +49,3 @@
m_knownSuffixLength = knownSuffixLength;
}
}
---- a/src/corelib/mimetypes/qmimeprovider.cpp
-+++ b/src/corelib/mimetypes/qmimeprovider.cpp
-@@ -244,15 +244,18 @@ void QMimeBinaryProvider::addFileNameMat
- const QString lowerFileName = fileName.toLower();
- // Check literals (e.g. "Makefile")
- matchGlobList(result, m_cacheFile, m_cacheFile->getUint32(PosLiteralListOffset), fileName);
-- // Check complex globs (e.g. "callgrind.out[0-9]*")
-- matchGlobList(result, m_cacheFile, m_cacheFile->getUint32(PosGlobListOffset), fileName);
- // Check the very common *.txt cases with the suffix tree
-- const int reverseSuffixTreeOffset = m_cacheFile->getUint32(PosReverseSuffixTreeOffset);
-- const int numRoots = m_cacheFile->getUint32(reverseSuffixTreeOffset);
-- const int firstRootOffset = m_cacheFile->getUint32(reverseSuffixTreeOffset + 4);
-- matchSuffixTree(result, m_cacheFile, numRoots, firstRootOffset, lowerFileName, lowerFileName.length() - 1, false);
-+ if (result.m_matchingMimeTypes.isEmpty()) {
-+ const int reverseSuffixTreeOffset = m_cacheFile->getUint32(PosReverseSuffixTreeOffset);
-+ const int numRoots = m_cacheFile->getUint32(reverseSuffixTreeOffset);
-+ const int firstRootOffset = m_cacheFile->getUint32(reverseSuffixTreeOffset + 4);
-+ matchSuffixTree(result, m_cacheFile, numRoots, firstRootOffset, lowerFileName, lowerFileName.length() - 1, false);
-+ if (result.m_matchingMimeTypes.isEmpty())
-+ matchSuffixTree(result, m_cacheFile, numRoots, firstRootOffset, fileName, fileName.length() - 1, true);
-+ }
-+ // Check complex globs (e.g. "callgrind.out[0-9]*" or "README*")
- if (result.m_matchingMimeTypes.isEmpty())
-- matchSuffixTree(result, m_cacheFile, numRoots, firstRootOffset, fileName, fileName.length() - 1, true);
-+ matchGlobList(result, m_cacheFile, m_cacheFile->getUint32(PosGlobListOffset), fileName);
- }
-
- void QMimeBinaryProvider::matchGlobList(QMimeGlobMatchResult &result, CacheFile *cacheFile, int off, const QString &fileName)
Reply to: