Package: release.debian.org Severity: normal User: release.debian....@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 <mity...@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 <mity...@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)