Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
Q
qt5-base
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
pkg
obextra
qt5-base
Commits
ef5ad49f
Commit
ef5ad49f
authored
4 years ago
by
Eric Vidal
Browse files
Options
Downloads
Patches
Plain Diff
upgpkg: 5.15.0-3
parent
b218b924
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
version/5.15.0-3/PKGBUILD
+168
-0
168 additions, 0 deletions
version/5.15.0-3/PKGBUILD
version/5.15.0-3/qt5-base-cflags.patch
+46
-0
46 additions, 0 deletions
version/5.15.0-3/qt5-base-cflags.patch
version/5.15.0-3/qtbug-74252.patch
+106
-0
106 additions, 0 deletions
version/5.15.0-3/qtbug-74252.patch
with
320 additions
and
0 deletions
version/5.15.0-3/PKGBUILD
0 → 100644
+
168
−
0
View file @
ef5ad49f
# Obarun : 66 init/supervisor
# Maintainer : Eric Vidal <eric@obarun.org>
# Maintainer : Jean-Michel T.Dydak <jean-michel@obarun.org>
# PkgSource : url="https://framagit.org/pkg/obextra/qt5-base"
#----------------------------------------------------------------------------
#--DESCRIPTION---------------------------------------------------------------
pkgbase
=
qt5-base
pkgname
=(
qt5-base qt5-xcb-private-headers
)
pkgdesc
=
"A cross-platform application and UI framework"
_qtver
=
5.15.0
pkgver
=
${
_qtver
/-/
}
pkgrel
=
3
_pkgfqn
=
"
${
pkgbase
/5-/
}
-everywhere-src-
${
_qtver
}
"
url
=
"https://www.qt.io"
source
=(
"http://download.qt.io/official_releases/qt/
${
pkgver
%.*
}
/
${
_qtver
}
/submodules/
${
_pkgfqn
}
.tar.xz"
"qt5-base-QTBUG-82910.patch::https://codereview.qt-project.org/gitweb?p=qt/qtbase.git;a=patch;h=54aa63be9b74e8de72db9efbe6809ab1a97b29a7"
'qt5-base-cflags.patch'
'qtbug-74252.patch'
)
#--BUILD CONFIGURATION-------------------------------------------------------
makedepends
=(
'libfbclient'
'mariadb-libs'
'sqlite'
'unixodbc'
'postgresql-libs'
'alsa-lib'
'gst-plugins-base-libs'
'gtk3'
'libpulse'
'cups'
'freetds'
'vulkan-headers'
)
#--BUILD PREPARATION---------------------------------------------------------
prepare
()
{
cd
${
_pkgfqn
}
patch
-p1
-i
../qt5-base-QTBUG-82910.patch
# https://codereview.qt-project.org/c/qt/qtbase/+/299182
patch
-p1
-i
../qt5-base-cflags.patch
# Use system CFLAGS
patch
-p1
-i
../qtbug-74252.patch
# Fix displaying custom icons
}
#--BUILD---------------------------------------------------------------------
build
()
{
cd
${
_pkgfqn
}
#echo "INCLUDEPATH += /usr/include/openssl" >> src/network/network.pro
#export OPENSSL_LIBS='-L/usr/lib -lssl -lcrypto'
./configure
\
-confirm-license
-opensource
-v
\
-prefix
/usr
\
-docdir
/usr/share/doc/qt
\
-headerdir
/usr/include/qt
\
-archdatadir
/usr/lib/qt
\
-datadir
/usr/share/qt
\
-sysconfdir
/etc/xdg
\
-examplesdir
/usr/share/doc/qt/examples
\
-plugin-sql-
{
psql,mysql,sqlite,odbc,ibase
}
\
-system-sqlite
\
-openssl-linked
\
-nomake
examples
\
-no-rpath
\
-dbus-linked
\
-system-harfbuzz
\
-no-mimetype-database
\
-no-use-gold-linker
\
-reduce-relocations
make
}
#--PACKAGE-------------------------------------------------------------------
package_qt5-base
()
{
pkgdesc
=
'A cross-platform application and UI framework'
cd
${
_pkgfqn
}
make
INSTALL_ROOT
=
"
${
pkgdir
}
"
install
install
-Dm644
LICENSE
*
-t
"
$pkgdir
"
/usr/share/licenses/
$pkgbase
## Drop QMAKE_PRL_BUILD_DIR because reference the build dir
find
"
${
pkgdir
}
/usr/lib"
-type
f
-name
'*.prl'
\
-exec
sed
-i
-e
'/^QMAKE_PRL_BUILD_DIR/d'
{}
\;
## Fix wrong qmake path in pri file
sed
-i
"s|
${
srcdir
}
/
${
_pkgfqn
}
|/usr|"
\
"
${
pkgdir
}
"
/usr/lib/qt/mkspecs/modules/qt_lib_bootstrap_private.pri
## Symlinks for backwards compatibility
for
b
in
"
${
pkgdir
}
"
/usr/bin/
*
;
do
ln
-s
$(
basename
$b
)
"
${
pkgdir
}
"
/usr/bin/
$(
basename
$b
)
-qt5
done
}
package_qt5-xcb-private-headers
()
{
pkgdesc
=
'Private headers for Qt5 Xcb'
depends
=(
"qt5-base=
$pkgver
"
)
optdepends
=()
groups
=()
conflicts
=()
cd
${
_pkgfqn
}
install
-d
-m755
"
$pkgdir
"
/usr/include/qtxcb-private
cp
-r
src/plugins/platforms/xcb/
*
.h
"
$pkgdir
"
/usr/include/qtxcb-private/
}
#--INSTALL CONFIGURATION-----------------------------------------------------
arch
=(
'x86_64'
)
conflicts
=(
'qtchooser'
)
groups
=(
'qt'
'qt5'
)
depends
=(
'libjpeg-turbo'
'xcb-util-keysyms'
'xcb-util-renderutil'
'libgl'
'fontconfig'
'xdg-utils'
'shared-mime-info'
'xcb-util-wm'
'libxrender'
'libxi'
'sqlite'
'xcb-util-image'
'mesa'
'tslib'
'libinput'
'libxkbcommon-x11'
'libproxy'
'libcups'
'double-conversion'
'md4c'
)
optdepends
=(
'qt5-svg: to use SVG icon themes'
'qt5-wayland: to run Qt applications in a Wayland session'
'qt5-translations: for some native UI translations'
'postgresql-libs: PostgreSQL driver'
'mariadb-libs: MariaDB driver'
'unixodbc: ODBC driver'
'libfbclient: Firebird/iBase driver'
'freetds: MS SQL driver'
'gtk3: GTK platform plugin'
'perl: for fixqt4hearders and syncqt'
)
#--SECURITY AND LICENCE------------------------------------------------------
license
=(
'GPL3'
'LGPL3'
'FDL'
'custom'
)
sha512sums
=(
'48b9e79220941665a9dd827548c6428f7aa3052ccba8f4f7e039a94aa1d2b28a'
'cf707cd970650f8b60f8897692b36708ded9ba116723ec8fcd885576783fe85c'
)
This diff is collapsed.
Click to expand it.
version/5.15.0-3/qt5-base-cflags.patch
0 → 100644
+
46
−
0
View file @
ef5ad49f
diff --git a/mkspecs/common/g++-unix.conf b/mkspecs/common/g++-unix.conf
index a493cd5984..41342f5020 100644
--- a/mkspecs/common/g++-unix.conf
+++ b/mkspecs/common/g++-unix.conf
@@ -10,5 +10,6 @@
include(g++-base.conf)
-QMAKE_LFLAGS_RELEASE += -Wl,-O1
+SYSTEM_LDFLAGS = $$(LDFLAGS)
+!isEmpty(SYSTEM_LDFLAGS) { eval(QMAKE_LFLAGS_RELEASE += $$(LDFLAGS)) } else { QMAKE_LFLAGS_RELEASE += -Wl,-O1 }
QMAKE_LFLAGS_NOUNDEF += -Wl,--no-undefined
diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf
index 1f919d270a..7ef6046326 100644
--- a/mkspecs/common/gcc-base.conf
+++ b/mkspecs/common/gcc-base.conf
@@ -40,9 +40,11 @@
QMAKE_CFLAGS_OPTIMIZE_SIZE = -Os
QMAKE_CFLAGS_DEPS += -M
QMAKE_CFLAGS_WARN_ON += -Wall -Wextra
QMAKE_CFLAGS_WARN_OFF += -w
-QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE
-QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g
-QMAKE_CFLAGS_DEBUG += -g
+SYSTEM_CFLAGS = $$(CFLAGS)
+SYSTEM_DEBUG_CFLAGS = $$(DEBUG_CFLAGS)
+!isEmpty(SYSTEM_CFLAGS) { eval(QMAKE_CFLAGS_RELEASE += $$(CPPFLAGS) $$(CFLAGS)) } else { QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE }
+!isEmpty(SYSTEM_CFLAGS) { eval(QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$(CPPFLAGS) -g $$(CFLAGS)) } else { QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g }
+!isEmpty(SYSTEM_DEBUG_CFLAGS) { eval(QMAKE_CFLAGS_DEBUG += $$(DEBUG_CFLAGS)) } else { QMAKE_CFLAGS_DEBUG += -g }
QMAKE_CFLAGS_SHLIB += $$QMAKE_CFLAGS_PIC
QMAKE_CFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_PIC
QMAKE_CFLAGS_APP += $$QMAKE_CFLAGS_PIC
@@ -59,9 +61,11 @@
QMAKE_CXXFLAGS += $$QMAKE_CFLAGS
QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS
QMAKE_CXXFLAGS_WARN_ON += $$QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_OFF += $$QMAKE_CFLAGS_WARN_OFF
-QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_RELEASE
-QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
-QMAKE_CXXFLAGS_DEBUG += $$QMAKE_CFLAGS_DEBUG
+SYSTEM_CXXFLAGS = $$(CXXFLAGS)
+SYSTEM_DEBUG_CXXFLAGS = $$(DEBUG_CXXFLAGS)
+!isEmpty(SYSTEM_CXXFLAGS) { eval(QMAKE_CXXFLAGS_RELEASE += $$(CPPFLAGS) $$(CXXFLAGS)) } else { QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE }
+!isEmpty(SYSTEM_CXXFLAGS) { eval(QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$(CPPFLAGS) -g $$(CXXFLAGS)) } else { QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g }
+!isEmpty(SYSTEM_DEBUG_CXXFLAGS) { eval(QMAKE_CXXFLAGS_DEBUG += $$(DEBUG_CXXFLAGS)) } else { QMAKE_CXXFLAGS_DEBUG += -g }
QMAKE_CXXFLAGS_SHLIB += $$QMAKE_CFLAGS_SHLIB
QMAKE_CXXFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_STATIC_LIB
QMAKE_CXXFLAGS_APP += $$QMAKE_CFLAGS_APP
This diff is collapsed.
Click to expand it.
version/5.15.0-3/qtbug-74252.patch
0 → 100644
+
106
−
0
View file @
ef5ad49f
From add92a551cf601b5c9e074046326f95ccc38062e Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <aacid@kde.org>
Date: Sat, 23 May 2020 01:35:18 +0200
Subject: [PATCH] Do not fully initialize QIconLoader when setting the fallback
theme
We need this because without this patch you get bugs both
if you call QIcon::setFallbackThemeName before creating the QGuiApplication and
if you call QIcon::setFallbackThemeName after creating QGuiApplication
Why do you get a bug if you call QIconLoader::setFallbackThemeName
before creating the QGuiApplication:
* QIcon::setFallbackThemeName calls QIconLoader::instance
* QIconLoader::instance calls QIconLoader::ensureInitialized
* QIconLoader::ensureInitialized calls systemThemeName
* systemThemeName asks the current QPlatformTheme for its
QPlatformTheme::SystemIconThemeName
* But since we're calling this before creating the QGuiApplication
there is no current QPlatformTheme yet, so systemThemeName
is set to empty, which is obviously not what we want
Why do you get a bug if you call QIconLoader::setFallbackThemeName
after creating the QGuiApplication:
* QGuiApplicationPrivate::init calls
QGuiApplicationPrivate::createPlatformIntegration
* QGuiApplicationPrivate::createPlatformIntegration sets the
current QPlatformTheme and at the end of the very same function
uses QIcon::fromTheme
* Since we haven't called QIconLoader::setFallbackThemeName yet
there is at least one icon lookup that doesn't take
the fallback theme we would like to have into account
This patch makes it so calling QIconLoader::setFallbackThemeName
before creating the QGuiApplication works.
The only thing we want to do from QIcon::setFallbackThemeName is set
the internal m_userFallbackTheme, it doesn't care about doing
further initialization of QIconLoader, if it's done, great it's done,
if it is not initialized yet, great it will be initialized later
when someone actually tries to use the QIconloader.
So it's OK for ensureInitialized() to return early if there is no
platform theme yet, because it will be called again later.
Pick-to: 5.12
Pick-to: 5.15
Fixes: QTBUG-74252
Change-Id: I65268fc3d3d0bd282d76c76cf75e495bcc9d1a30
Done-with: Albert Astals Cid <albert.astals.cid@kdab.com>
Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
---
src/gui/image/qicon.cpp | 3 +++
src/gui/image/qiconloader.cpp | 15 ++++++++++++---
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/src/gui/image/qicon.cpp b/src/gui/image/qicon.cpp
index 36f499711e9..91da21c477d 100644
--- a/src/gui/image/qicon.cpp
+++ b/src/gui/image/qicon.cpp
@@ -1238,6 +1238,9 @@
QString QIcon::fallbackThemeName()
themeSearchPath() containing an index.theme
file describing its contents.
+ \note This should be done before creating \l QGuiApplication, to ensure
+ correct initialization.
+
\sa fallbackThemeName(), themeSearchPaths(), themeName()
*/
void QIcon::setFallbackThemeName(const QString &name)
diff --git a/src/gui/image/qiconloader.cpp b/src/gui/image/qiconloader.cpp
index 15ab1b3cd90..3fa3bb9c598 100644
--- a/src/gui/image/qiconloader.cpp
+++ b/src/gui/image/qiconloader.cpp
@@ -112,10 +112,9 @@
extern QFactoryLoader *qt_iconEngineFactoryLoader(); // qicon.cpp
void QIconLoader::ensureInitialized()
{
if (!m_initialized) {
+ if (!QGuiApplicationPrivate::platformTheme())
+ return; // it's too early: try again later (QTBUG-74252)
m_initialized = true;
-
- Q_ASSERT(qApp);
-
m_systemTheme = systemThemeName();
if (m_systemTheme.isEmpty())
@@ -125,6 +124,16 @@
void QIconLoader::ensureInitialized()
}
}
+/*!
+ \internal
+ Gets an instance.
+
+ \l QIcon::setFallbackThemeName() should be called before QGuiApplication is
+ created, to avoid a race condition (QTBUG-74252). When this function is
+ called from there, ensureInitialized() does not succeed because there
+ is no QPlatformTheme yet, so systemThemeName() is empty, and we don't want
+ m_systemTheme to get intialized to the fallback theme instead of the normal one.
+*/
QIconLoader *QIconLoader::instance()
{
iconLoaderInstance()->ensureInitialized();
--
2.16.3
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment