[SCM] qtbase packaging branch, master, updated. debian/5.5.1+dfsg-14-3-gee3fcce

Timo Jyrinki timo at moszumanska.debian.org
Wed Feb 17 10:28:08 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/qt/qtbase.git;a=commitdiff;h=ee3fcce

The following commit has been merged in the master branch:
commit ee3fcce463c10d67a20f0becfe474f207573d4f6
Author: Timo Jyrinki <timo.jyrinki at canonical.com>
Date:   Fri Nov 27 12:15:42 2015 +0000

    Cherry-pick a QT_PLUGIN_PATH preferral and font rendering fixes.
---
 debian/changelog                                   |  6 ++
 ...-falsely-reported-style-for-fallback-font.patch | 55 +++++++++++++++++
 ...fer-QT_PLUGIN_PATH-over-compiled-in-paths.patch | 70 ++++++++++++++++++++++
 ...orical-4-padding-in-QFontEngine-alphaMapF.patch | 45 ++++++++++++++
 debian/patches/series                              |  3 +
 5 files changed, 179 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 0dd8079..58fe8fb 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,12 @@ qtbase-opensource-src (5.5.1+dfsg-15) UNRELEASED; urgency=medium
 
   * Backport XCB patch related to screen disconnection handling QTBUG-42985:
     - xcb-fix-yet-another-crash-when-screens-are-disconnec.patch
+  * debian/patches/Prefer-QT_PLUGIN_PATH-over-compiled-in-paths.patch:
+    - Backport. Prefer QT_PLUGIN_PATH over compiled-in paths (LP: #1519927)
+  * Fix Chinese glyph font rendering with new backported upstream patches:
+    - debian/patches/Fix-falsely-reported-style-for-fallback-font.patch
+    - debian/patches/Remove-historical-4-padding-in-QFontEngine-alphaMapF.patch
+      (LP: #1475205)
 
  -- Debian Qt/KDE Maintainers <debian-qt-kde at lists.debian.org>  Wed, 17 Feb 2016 10:15:48 +0000
 
diff --git a/debian/patches/Fix-falsely-reported-style-for-fallback-font.patch b/debian/patches/Fix-falsely-reported-style-for-fallback-font.patch
new file mode 100644
index 0000000..cbd4657
--- /dev/null
+++ b/debian/patches/Fix-falsely-reported-style-for-fallback-font.patch
@@ -0,0 +1,55 @@
+From a856c4a902816a7d691ca50e6f556521287be441 Mon Sep 17 00:00:00 2001
+From: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt at theqtcompany.com>
+Date: Tue, 27 Oct 2015 11:00:35 +0100
+Subject: [PATCH] Fix falsely reported style for fallback font
+
+In change 8f6b3284106fa11129e4fa6e5ec3adc6cb1f489f we override
+the fontDef of the fallback font with the fontDef of the
+original font (with the family name replaced) to fix a
+regression where boldness was not inherited by the fallback
+font.
+
+This caused a bug, though, since the contents of the fontDef
+would now misrepresent the actual font used. The side effect
+of this was that isSmoothlyScalable() returned false because
+the family and styleName combination we claim to have did
+not exist in the font database. Result: We fell back to
+native rendering for the font even though it's scalable.
+
+Weight and style are the only parts that should be inherited,
+since they are synthesized. So rather than overwriting
+the fontDef completely, we copy the weight and style when
+needed.
+
+The bug in QTBUG-42963 is still fixed after this change.
+
+[ChangeLog][Text] Fixed problem where fallback fonts for text
+with certain styles would be reported as unscalable.
+
+Change-Id: I95ef67f818852aea5a6ae8df789a52364ecb59a6
+Task-number: QTBUG-47547
+Reviewed-by: Lars Knoll <lars.knoll at theqtcompany.com>
+Reviewed-by: Konstantin Ritt <ritt.ks at gmail.com>
+---
+ src/gui/text/qfontengine.cpp | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp
+index 3208a19..f267b2d 100644
+--- a/src/gui/text/qfontengine.cpp
++++ b/src/gui/text/qfontengine.cpp
+@@ -1835,7 +1835,10 @@ QFontEngine *QFontEngineMulti::loadEngine(int at)
+     request.family = fallbackFamilyAt(at - 1);
+ 
+     if (QFontEngine *engine = QFontDatabase::findFont(request, m_script)) {
+-        engine->fontDef = request;
++        if (request.weight > QFont::Normal)
++            engine->fontDef.weight = request.weight;
++        if (request.style > QFont::StyleNormal)
++            engine->fontDef.style = request.style;
+         return engine;
+     }
+ 
+-- 
+2.6.2
+
diff --git a/debian/patches/Prefer-QT_PLUGIN_PATH-over-compiled-in-paths.patch b/debian/patches/Prefer-QT_PLUGIN_PATH-over-compiled-in-paths.patch
new file mode 100644
index 0000000..8227bbc
--- /dev/null
+++ b/debian/patches/Prefer-QT_PLUGIN_PATH-over-compiled-in-paths.patch
@@ -0,0 +1,70 @@
+From 6129be8a4ba976c42e51012ebaa9005eb402db80 Mon Sep 17 00:00:00 2001
+From: Milian Wolff <milian.wolff at kdab.com>
+Date: Mon, 27 Jul 2015 11:49:55 +0200
+Subject: [PATCH] Prefer QT_PLUGIN_PATH over compiled-in paths.
+
+Currently, when one compiles a Qt plugin that is also installed
+system wide to a local path added to QT_PLUGIN_PATH, you have no
+way to ever load it as the global plugin will always be preferred.
+This is due to the order in which the QCoreApplications::libraryPaths
+are constructed, which always appended the QT_PLUGIN_PATH contents
+to the end.
+
+Now, the QT_PLUGIN_PATH contents are put first, such that the plugins
+in there are preferred and loaded.
+
+[ChangeLog][QtCore][QPluginLoader] Fixed the search order of Qt plugins
+so that paths specified by the QT_PLUGIN_PATH environment variable
+are searched before built-in paths.
+
+Change-Id: Iad8ca2cd34e7a622c191a416c01c1c5cc1812fc9
+Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen at theqtcompany.com>
+Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart at woboq.com>
+---
+ src/corelib/kernel/qcoreapplication.cpp | 23 ++++++++++++-----------
+ 1 file changed, 12 insertions(+), 11 deletions(-)
+
+diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp
+index e08f709..e9fdb8c 100644
+--- a/src/corelib/kernel/qcoreapplication.cpp
++++ b/src/corelib/kernel/qcoreapplication.cpp
+@@ -2541,17 +2541,6 @@ QStringList QCoreApplication::libraryPaths()
+     QMutexLocker locker(libraryPathMutex());
+     if (!coreappdata()->app_libpaths) {
+         QStringList *app_libpaths = coreappdata()->app_libpaths = new QStringList;
+-        QString installPathPlugins =  QLibraryInfo::location(QLibraryInfo::PluginsPath);
+-        if (QFile::exists(installPathPlugins)) {
+-            // Make sure we convert from backslashes to slashes.
+-            installPathPlugins = QDir(installPathPlugins).canonicalPath();
+-            if (!app_libpaths->contains(installPathPlugins))
+-                app_libpaths->append(installPathPlugins);
+-        }
+-
+-        // If QCoreApplication is not yet instantiated,
+-        // make sure we add the application path when we construct the QCoreApplication
+-        if (self) self->d_func()->appendApplicationPathToLibraryPaths();
+ 
+         const QByteArray libPathEnv = qgetenv("QT_PLUGIN_PATH");
+         if (!libPathEnv.isEmpty()) {
+@@ -2564,6 +2553,18 @@ QStringList QCoreApplication::libraryPaths()
+                 }
+             }
+         }
++
++        QString installPathPlugins =  QLibraryInfo::location(QLibraryInfo::PluginsPath);
++        if (QFile::exists(installPathPlugins)) {
++            // Make sure we convert from backslashes to slashes.
++            installPathPlugins = QDir(installPathPlugins).canonicalPath();
++            if (!app_libpaths->contains(installPathPlugins))
++                app_libpaths->append(installPathPlugins);
++        }
++
++        // If QCoreApplication is not yet instantiated,
++        // make sure we add the application path when we construct the QCoreApplication
++        if (self) self->d_func()->appendApplicationPathToLibraryPaths();
+     }
+     return *(coreappdata()->app_libpaths);
+ }
+-- 
+2.6.2
+
diff --git a/debian/patches/Remove-historical-4-padding-in-QFontEngine-alphaMapF.patch b/debian/patches/Remove-historical-4-padding-in-QFontEngine-alphaMapF.patch
new file mode 100644
index 0000000..9cff019
--- /dev/null
+++ b/debian/patches/Remove-historical-4-padding-in-QFontEngine-alphaMapF.patch
@@ -0,0 +1,45 @@
+From 39e023b805cf2be207ef7086f6951e789e020bda Mon Sep 17 00:00:00 2001
+From: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt at theqtcompany.com>
+Date: Mon, 26 Oct 2015 15:20:41 +0100
+Subject: [PATCH] Remove historical +4 padding in
+ QFontEngine::alphaMapForGlyph()
+
+Back in the old days, we would pad the output from the font engines
+to work around problems with the GL1 paint engine such as issues
+with linear sampling, etc. This is no longer needed. Padding is
+moved into the glyph cache, and in addition to reducing performance,
+the extra padding is also making alphaMapForGlyph() and
+alphaMapBoundingBox() fall out of sync when you fall back to
+QPainterPath drawing the glyph. The result of this was that,
+when prepared, the glyph cache was sometimes not made large enough
+to hold what alphaMapForGlyph() actually produced, depending on
+the size and order of glyphs, and glyphs ending up at the end of rows
+would sometimes be missing from the output.
+
+[ChangeLog][Text] Fixed some instances of missing glyphs when
+drawing large fonts.
+
+Change-Id: Ia5982392fe1637f6ebc740db9f226fbb91f75166
+Task-number: QTBUG-47547
+Reviewed-by: Gunnar Sletta <gunnar at sletta.org>
+Reviewed-by: Konstantin Ritt <ritt.ks at gmail.com>
+---
+ src/gui/text/qfontengine.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp
+index 6567859..a0eedee 100644
+--- a/src/gui/text/qfontengine.cpp
++++ b/src/gui/text/qfontengine.cpp
+@@ -961,7 +961,7 @@ QImage QFontEngine::alphaMapForGlyph(glyph_t glyph)
+     pt.x = -glyph_x;
+     pt.y = -glyph_y; // the baseline
+     QPainterPath path;
+-    QImage im(glyph_width + 4, glyph_height, QImage::Format_ARGB32_Premultiplied);
++    QImage im(glyph_width, glyph_height, QImage::Format_ARGB32_Premultiplied);
+     im.fill(Qt::transparent);
+     QPainter p(&im);
+     p.setRenderHint(QPainter::Antialiasing);
+-- 
+2.6.2
+
diff --git a/debian/patches/series b/debian/patches/series
index f4c57c0..a9bb8a4 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -4,6 +4,9 @@ set_WA_OutsideWSRange_for_native_widgets.patch
 bsd_volumeinfo.diff
 hurd_forkfd.diff
 xcb-fix-yet-another-crash-when-screens-are-disconnec.patch
+Prefer-QT_PLUGIN_PATH-over-compiled-in-paths.patch
+Fix-falsely-reported-style-for-fallback-font.patch
+Remove-historical-4-padding-in-QFontEngine-alphaMapF.patch
 mips_no_atomic.diff
 detect_64bit_atomic.diff
 qnetworkreply_abort_socket.diff

-- 
qtbase packaging



More information about the pkg-kde-commits mailing list