Compare commits
2 Commits
5df6fdd0ab
...
c90eb37749
Author | SHA1 | Date | |
---|---|---|---|
|
c90eb37749 | ||
|
aae472e5a7 |
@ -20,7 +20,11 @@
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
# support qtchooser (adds qtchooser .conf file)
|
# support qtchooser (adds qtchooser .conf file)
|
||||||
|
%if 0%{?flatpak}
|
||||||
|
%global qtchooser 0
|
||||||
|
%else
|
||||||
%global qtchooser 1
|
%global qtchooser 1
|
||||||
|
%endif
|
||||||
%if 0%{?qtchooser}
|
%if 0%{?qtchooser}
|
||||||
%global priority 10
|
%global priority 10
|
||||||
%ifarch %{multilib_basearchs}
|
%ifarch %{multilib_basearchs}
|
||||||
@ -53,7 +57,7 @@
|
|||||||
Name: qt5-qtbase
|
Name: qt5-qtbase
|
||||||
Summary: Qt5 - QtBase components
|
Summary: Qt5 - QtBase components
|
||||||
Version: 5.15.8
|
Version: 5.15.8
|
||||||
Release: 8%{?dist}
|
Release: 10%{?dist}
|
||||||
|
|
||||||
# See LGPL_EXCEPTIONS.txt, for exception details
|
# See LGPL_EXCEPTIONS.txt, for exception details
|
||||||
License: LGPL-3.0-only OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
License: LGPL-3.0-only OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
@ -390,40 +394,40 @@ Qt5 libraries used for drawing widgets and OpenGL items.
|
|||||||
%setup -q -n %{qt_module}-everywhere-src-%{version}
|
%setup -q -n %{qt_module}-everywhere-src-%{version}
|
||||||
|
|
||||||
## dowstream patches
|
## dowstream patches
|
||||||
%patch3 -p1 -b .private_api_warning
|
%patch -P3 -p1 -b .private_api_warning
|
||||||
|
|
||||||
## upstream fixes
|
## upstream fixes
|
||||||
|
|
||||||
%patch50 -p1 -b .QT_VERSION_CHECK
|
%patch50 -p1 -b .QT_VERSION_CHECK
|
||||||
# FIXME/TODO : rebase or drop -- rdieter
|
# FIXME/TODO : rebase or drop -- rdieter
|
||||||
#patch51 -p1 -b .hidpi_scale_at_192
|
#patch -P51 -p1 -b .hidpi_scale_at_192
|
||||||
%patch52 -p1 -b .moc_macros
|
%patch -P52 -p1 -b .moc_macros
|
||||||
%patch53 -p1 -b .qt5gui_cmake_isystem_includes
|
%patch -P53 -p1 -b .qt5gui_cmake_isystem_includes
|
||||||
%patch54 -p1 -b .qmake_LFLAGS
|
%patch -P54 -p1 -b .qmake_LFLAGS
|
||||||
%patch55 -p1 -b .no_relocatable
|
%patch -P55 -p1 -b .no_relocatable
|
||||||
%patch56 -p1 -b .libglvnd
|
%patch -P56 -p1 -b .libglvnd
|
||||||
%patch61 -p1 -b .qt5-qtbase-cxxflag
|
%patch -P61 -p1 -b .qt5-qtbase-cxxflag
|
||||||
%if 0%{?fedora} < 35
|
%if 0%{?fedora} < 35
|
||||||
%patch63 -p1 -b .firebird
|
%patch -P63 -p1 -b .firebird
|
||||||
%else
|
%else
|
||||||
%patch64 -p1 -b .firebird
|
%patch -P64 -p1 -b .firebird
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?fedora} > 27
|
%if 0%{?fedora} > 27
|
||||||
%patch65 -p1 -b .mysql
|
%patch -P65 -p1 -b .mysql
|
||||||
%endif
|
%endif
|
||||||
%patch68 -p1
|
%patch -P68 -p1
|
||||||
|
|
||||||
%if 0%{?fedora} > 30 || 0%{?rhel} > 8
|
%if 0%{?fedora} > 30 || 0%{?rhel} > 8
|
||||||
%patch80 -p1 -b .use-wayland-on-gnome.patch
|
%patch -P80 -p1 -b .use-wayland-on-gnome.patch
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%patch90 -p1 -b .gcc11
|
%patch -P90 -p1 -b .gcc11
|
||||||
|
|
||||||
## upstream patches
|
## upstream patches
|
||||||
%patch100 -p1
|
%patch -P100 -p1
|
||||||
%patch101 -p1
|
%patch -P101 -p1
|
||||||
%patch102 -p1
|
%patch -P102 -p1
|
||||||
%patch103 -p1
|
%patch -P103 -p1
|
||||||
|
|
||||||
# move some bundled libs to ensure they're not accidentally used
|
# move some bundled libs to ensure they're not accidentally used
|
||||||
pushd src/3rdparty
|
pushd src/3rdparty
|
||||||
@ -1103,6 +1107,14 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Mar 29 2023 Than Ngo <than@redhat.com> - 5.15.8-10
|
||||||
|
- Related bz#2179854, Qt 5 render the Bold style CJK character very thick
|
||||||
|
with Noto CJK variable fonts
|
||||||
|
- Fix deprecated patch rpm macro
|
||||||
|
|
||||||
|
* Tue Mar 28 2023 Kalev Lember <klember@redhat.com> - 5.15.8-9
|
||||||
|
- Disable qtchooser for flatpak builds
|
||||||
|
|
||||||
* Mon Mar 27 2023 Than Ngo <than@redhat.com> - 5.15.8-8
|
* Mon Mar 27 2023 Than Ngo <than@redhat.com> - 5.15.8-8
|
||||||
- Fix bz#2179854, Qt 5 render the Bold style CJK character very thick
|
- Fix bz#2179854, Qt 5 render the Bold style CJK character very thick
|
||||||
with Noto CJK variable fonts
|
with Noto CJK variable fonts
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
diff -pruN qtbase-everywhere-src-5.15.8.orig/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp qtbase-everywhere-src-5.15.8/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
|
diff -pruN qtbase-everywhere-src-5.15.8.orig/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp qtbase-everywhere-src-5.15.8/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
|
||||||
--- qtbase-everywhere-src-5.15.8.orig/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp 2023-03-24 14:40:24.844713011 +0900
|
--- qtbase-everywhere-src-5.15.8.orig/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp 2023-03-24 14:40:24.844713011 +0900
|
||||||
+++ qtbase-everywhere-src-5.15.8/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp 2023-03-24 21:22:35.466115667 +0900
|
+++ qtbase-everywhere-src-5.15.8/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp 2023-03-29 19:50:13.097003358 +0900
|
||||||
@@ -954,6 +954,7 @@ void QFontconfigDatabase::setupFontEngin
|
@@ -954,6 +954,7 @@ void QFontconfigDatabase::setupFontEngin
|
||||||
QFontEngine::GlyphFormat format;
|
QFontEngine::GlyphFormat format;
|
||||||
// try and get the pattern
|
// try and get the pattern
|
||||||
@ -52,62 +52,54 @@ diff -pruN qtbase-everywhere-src-5.15.8.orig/src/platformsupport/fontdatabases/f
|
|||||||
if (match) {
|
if (match) {
|
||||||
engine->setDefaultHintStyle(defaultHintStyleFromMatch((QFont::HintingPreference)fontDef.hintingPreference, match, useXftConf));
|
engine->setDefaultHintStyle(defaultHintStyleFromMatch((QFont::HintingPreference)fontDef.hintingPreference, match, useXftConf));
|
||||||
|
|
||||||
|
@@ -1000,6 +1035,11 @@ void QFontconfigDatabase::setupFontEngin
|
||||||
|
antialias = fc_antialias;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ FcBool embolden;
|
||||||
|
+ engine->auto_embolden = true;
|
||||||
|
+ if (FcPatternGetBool(match, FC_EMBOLDEN, 0, &embolden) == FcResultMatch)
|
||||||
|
+ engine->embolden = embolden;
|
||||||
|
+
|
||||||
|
if (antialias) {
|
||||||
|
QFontEngine::SubpixelAntialiasingType subpixelType = QFontEngine::Subpixel_None;
|
||||||
|
if (!(fontDef.styleStrategy & QFont::NoSubpixelAntialias))
|
||||||
diff -pruN qtbase-everywhere-src-5.15.8.orig/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp qtbase-everywhere-src-5.15.8/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp
|
diff -pruN qtbase-everywhere-src-5.15.8.orig/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp qtbase-everywhere-src-5.15.8/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp
|
||||||
--- qtbase-everywhere-src-5.15.8.orig/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp 2022-11-11 16:29:17.000000000 +0900
|
--- qtbase-everywhere-src-5.15.8.orig/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp 2022-11-11 16:29:17.000000000 +0900
|
||||||
+++ qtbase-everywhere-src-5.15.8/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp 2023-03-24 23:03:02.165756803 +0900
|
+++ qtbase-everywhere-src-5.15.8/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp 2023-03-29 17:06:11.368989032 +0900
|
||||||
@@ -68,6 +68,7 @@
|
@@ -681,6 +681,7 @@ QFontEngineFT::QFontEngineFT(const QFont
|
||||||
#include FT_GLYPH_H
|
kerning_pairs_loaded = false;
|
||||||
#include FT_MODULE_H
|
transform = false;
|
||||||
#include FT_LCD_FILTER_H
|
embolden = false;
|
||||||
+#include FT_MULTIPLE_MASTERS_H
|
+ auto_embolden = false;
|
||||||
|
obliquen = false;
|
||||||
#if defined(FT_CONFIG_OPTIONS_H)
|
antialias = true;
|
||||||
#include FT_CONFIG_OPTIONS_H
|
freetype = nullptr;
|
||||||
@@ -740,6 +741,29 @@ bool QFontEngineFT::init(FaceId faceId,
|
@@ -748,7 +749,7 @@ bool QFontEngineFT::init(FaceId faceId,
|
||||||
freetype->computeSize(fontDef, &xsize, &ysize, &defaultGlyphSet.outline_drawing, &scalableBitmapScaleFactor);
|
FT_Set_Transform(face, &matrix, nullptr);
|
||||||
|
freetype->matrix = matrix;
|
||||||
FT_Face face = lockFace();
|
|
||||||
+ FT_MM_Var *master = nullptr;
|
|
||||||
+ FT_Error ftresult;
|
|
||||||
+ double weight_mult = 1.0;
|
|
||||||
+
|
|
||||||
+ ftresult = FT_Get_MM_Var(face, &master);
|
|
||||||
+ if (face_id.index >> 16 && ftresult == FT_Err_Ok) {
|
|
||||||
+ if ((face_id.index >> 16) - 1 < master->num_namedstyles) {
|
|
||||||
+ // Pull out weight and width from named-instance.
|
|
||||||
+ FT_Var_Named_Style *instance = &master->namedstyle[(face_id.index >> 16) - 1];
|
|
||||||
+
|
|
||||||
+ for (unsigned int i = 0; i < master->num_axis; i++) {
|
|
||||||
+ double value = instance->coords[i] / (double) (1U << 16);
|
|
||||||
+ double default_value = master->axis[i].def / (double) (1U << 16);
|
|
||||||
+ double mult = default_value ? value / default_value : 1;
|
|
||||||
+
|
|
||||||
+ switch (master->axis[i].tag) {
|
|
||||||
+ case FT_MAKE_TAG('w', 'g', 'h', 't'):
|
|
||||||
+ weight_mult = mult;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if (FT_IS_SCALABLE(face)) {
|
|
||||||
bool fake_oblique = (fontDef.style != QFont::StyleNormal) && !(face->style_flags & FT_STYLE_FLAG_ITALIC) && !qEnvironmentVariableIsSet("QT_NO_SYNTHESIZED_ITALIC");
|
|
||||||
@@ -750,7 +774,7 @@ bool QFontEngineFT::init(FaceId faceId,
|
|
||||||
// fake bold
|
// fake bold
|
||||||
if ((fontDef.weight >= QFont::Bold) && !(face->style_flags & FT_STYLE_FLAG_BOLD) && !FT_IS_FIXED_WIDTH(face) && !qEnvironmentVariableIsSet("QT_NO_SYNTHESIZED_BOLD")) {
|
- if ((fontDef.weight >= QFont::Bold) && !(face->style_flags & FT_STYLE_FLAG_BOLD) && !FT_IS_FIXED_WIDTH(face) && !qEnvironmentVariableIsSet("QT_NO_SYNTHESIZED_BOLD")) {
|
||||||
|
+ if (!auto_embolden && (fontDef.weight >= QFont::Bold) && !(face->style_flags & FT_STYLE_FLAG_BOLD) && !FT_IS_FIXED_WIDTH(face) && !qEnvironmentVariableIsSet("QT_NO_SYNTHESIZED_BOLD")) {
|
||||||
if (const TT_OS2 *os2 = reinterpret_cast<const TT_OS2 *>(FT_Get_Sfnt_Table(face, ft_sfnt_os2))) {
|
if (const TT_OS2 *os2 = reinterpret_cast<const TT_OS2 *>(FT_Get_Sfnt_Table(face, ft_sfnt_os2))) {
|
||||||
- if (os2->usWeightClass < 700 && fontDef.pixelSize < 64)
|
if (os2->usWeightClass < 700 && fontDef.pixelSize < 64)
|
||||||
+ if (os2->usWeightClass * weight_mult < 700 && fontDef.pixelSize < 64)
|
|
||||||
embolden = true;
|
embolden = true;
|
||||||
}
|
@@ -2102,6 +2103,7 @@ bool QFontEngineFT::initFromFontEngine(c
|
||||||
}
|
antialias = fe->antialias;
|
||||||
@@ -829,6 +853,8 @@ bool QFontEngineFT::init(FaceId faceId,
|
transform = fe->transform;
|
||||||
} else {
|
embolden = fe->embolden;
|
||||||
Q_ASSERT(!face_);
|
+ auto_embolden = fe->auto_embolden;
|
||||||
}
|
obliquen = fe->obliquen;
|
||||||
+ if (master && face->glyph)
|
subpixelType = fe->subpixelType;
|
||||||
+ FT_Done_MM_Var(face->glyph->library, master);
|
lcdFilterType = fe->lcdFilterType;
|
||||||
// we share the HB face in QFreeTypeFace, so do not let ~QFontEngine() destroy it
|
diff -pruN qtbase-everywhere-src-5.15.8.orig/src/platformsupport/fontdatabases/freetype/qfontengine_ft_p.h qtbase-everywhere-src-5.15.8/src/platformsupport/fontdatabases/freetype/qfontengine_ft_p.h
|
||||||
face_ = Holder(freetype->hbFace.get(), dont_delete);
|
--- qtbase-everywhere-src-5.15.8.orig/src/platformsupport/fontdatabases/freetype/qfontengine_ft_p.h 2022-11-11 16:29:17.000000000 +0900
|
||||||
|
+++ qtbase-everywhere-src-5.15.8/src/platformsupport/fontdatabases/freetype/qfontengine_ft_p.h 2023-03-29 13:11:31.687717653 +0900
|
||||||
|
@@ -295,6 +295,7 @@ protected:
|
||||||
|
bool cacheEnabled;
|
||||||
|
bool forceAutoHint;
|
||||||
|
bool stemDarkeningDriver;
|
||||||
|
+ bool auto_embolden; // a flag to decide if embolden is set by fontconfig
|
||||||
|
|
||||||
|
private:
|
||||||
|
friend class QFontEngineFTRawFont;
|
||||||
|
Loading…
Reference in New Issue
Block a user