From: "Andreas Sturmlechner" <asturm@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtcore/
Date: Wed, 10 Jan 2024 11:01:28 +0000 (UTC) [thread overview]
Message-ID: <1704884452.2455f4d30364e65eccbcfee4d8edd6bd8742cba2.asturm@gentoo> (raw)
commit: 2455f4d30364e65eccbcfee4d8edd6bd8742cba2
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 1 13:56:48 2020 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Wed Jan 10 11:00:52 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2455f4d3
dev-qt/qtcore: Add wall of blockers against <${QT5_PV}
Revdeps can drop dev-qt/* dependencies on version bumps at any time, which then
may lead to Portage disregarding these dev-qt/* packages for upgrade if nothing
is left depending on them. When these packages contain Qt5 plugins it breaks
runtime hard - broken screenlocker, blank login manager, ... -, with:
`Cannot mix incompatible Qt library (5.15.10) with this library (5.15.11)`
We've had this happen with dev-qt/qtvirtualkeyboard and dev-qt/qtcharts already
and gradual porting to Qt6 ensures it will happen more often in the future.
Package groups (https://bugs.gentoo.org/918873) are not effective here as it
concerns ::installed package set.
For lack of a better mechanism from the package manager, these blockers make
sure dep calculation will take care of the necessary cleanup of dangling Qt5
packages, even if it will not improve our backtracking situation.
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
dev-qt/qtcore/qtcore-5.15.12-r1.ebuild | 162 +++++++++++++++++++++++++++++++++
1 file changed, 162 insertions(+)
diff --git a/dev-qt/qtcore/qtcore-5.15.12-r1.ebuild b/dev-qt/qtcore/qtcore-5.15.12-r1.ebuild
new file mode 100644
index 000000000000..fc74cab8e807
--- /dev/null
+++ b/dev-qt/qtcore/qtcore-5.15.12-r1.ebuild
@@ -0,0 +1,162 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+if [[ ${PV} != *9999* ]]; then
+ QT5_KDEPATCHSET_REV=1
+ KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+QT5_MODULE="qtbase"
+inherit linux-info flag-o-matic toolchain-funcs qt5-build
+
+DESCRIPTION="Cross-platform application development framework"
+SLOT=5/${QT5_PV}
+
+IUSE="icu old-kernel"
+
+DEPEND="
+ dev-libs/double-conversion:=
+ dev-libs/glib:2
+ dev-libs/libpcre2[pcre16,unicode]
+ sys-libs/zlib:=
+ icu? ( dev-libs/icu:= )
+ !icu? ( virtual/libiconv )
+"
+RDEPEND="${DEPEND}
+ !<dev-qt/designer-${QT5_PV}:5
+ !<dev-qt/qt3d-${QT5_PV}:5
+ !<dev-qt/qtbluetooth-${QT5_PV}:5
+ !<dev-qt/qtcharts-${QT5_PV}:5
+ !<dev-qt/qtconcurrent-${QT5_PV}:5
+ !<dev-qt/qtdatavis3d-${QT5_PV}:5
+ !<dev-qt/qtdbus-${QT5_PV}:5
+ !<dev-qt/qtdeclarative-${QT5_PV}:5
+ !<dev-qt/qtgamepad-${QT5_PV}:5
+ !<dev-qt/qtgraphicaleffects-${QT5_PV}:5
+ !<dev-qt/qtgui-${QT5_PV}:5
+ !<dev-qt/qthelp-${QT5_PV}:5
+ !<dev-qt/qtimageformats-${QT5_PV}:5
+ !<dev-qt/qtlocation-${QT5_PV}:5
+ !<dev-qt/qtmultimedia-${QT5_PV}:5
+ !<dev-qt/qtnetwork-${QT5_PV}:5
+ !<dev-qt/qtnetworkauth-${QT5_PV}:5
+ !<dev-qt/qtopengl-${QT5_PV}:5
+ !<dev-qt/qtpositioning-${QT5_PV}:5
+ !<dev-qt/qtprintsupport-${QT5_PV}:5
+ !<dev-qt/qtquickcontrols-${QT5_PV}:5
+ !<dev-qt/qtquickcontrols2-${QT5_PV}:5
+ !<dev-qt/qtquicktimeline-${QT5_PV}:5
+ !<dev-qt/qtscript-${QT5_PV}:5
+ !<dev-qt/qtscxml-${QT5_PV}:5
+ !<dev-qt/qtsensors-${QT5_PV}:5
+ !<dev-qt/qtserialbus-${QT5_PV}:5
+ !<dev-qt/qtserialport-${QT5_PV}:5
+ !<dev-qt/qtspeech-${QT5_PV}:5
+ !<dev-qt/qtsql-${QT5_PV}:5
+ !<dev-qt/qtsvg-${QT5_PV}:5
+ !<dev-qt/qttest-${QT5_PV}:5
+ !<dev-qt/qtvirtualkeyboard-${QT5_PV}:5
+ !<dev-qt/qtwayland-${QT5_PV}:5
+ !<dev-qt/qtwebchannel-${QT5_PV}:5
+ !<dev-qt/qtwebengine-${QT5_PV}:5
+ !<dev-qt/qtwebsockets-${QT5_PV}:5
+ !<dev-qt/qtwebview-${QT5_PV}:5
+ !<dev-qt/qtwidgets-${QT5_PV}:5
+ !<dev-qt/qtx11extras-${QT5_PV}:5
+ !<dev-qt/qtxml-${QT5_PV}:5
+ !<dev-qt/qtxmlpatterns-${QT5_PV}:5
+"
+
+QT5_TARGET_SUBDIRS=(
+ src/tools/bootstrap
+ src/tools/moc
+ src/tools/rcc
+ src/corelib
+ src/tools/qlalr
+ doc
+)
+
+QT5_GENTOO_PRIVATE_CONFIG=(
+ !:network
+ !:sql
+ !:testlib
+ !:xml
+)
+
+pkg_pretend() {
+ use kernel_linux || return
+ get_running_version
+ if kernel_is -lt 4 11 && ! use old-kernel; then
+ ewarn "The running kernel is older than 4.11. USE=old-kernel is needed for"
+ ewarn "dev-qt/qtcore to function on this kernel properly. Bugs #669994, #672856"
+ fi
+}
+
+src_prepare() {
+ # don't add -O3 to CXXFLAGS, bug 549140
+ sed -i -e '/CONFIG\s*+=/s/optimize_full//' src/corelib/corelib.pro || die
+
+ # fix missing qt_version_tag symbol w/ LTO, bug 674382
+ sed -i -e 's/^gcc:ltcg/gcc/' src/corelib/global/global.pri || die
+
+ # Broken with FORTIFY_SOURCE=3
+ #
+ # Our toolchain sets F_S=2 by default w/ >= -O2, so we need
+ # to unset F_S first, then explicitly set 2, to negate any default
+ # and anything set by the user if they're choosing 3 (or if they've
+ # modified GCC to set 3).
+ #
+ # Refs:
+ # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105078
+ # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105709
+ # https://bugreports.qt.io/browse/QTBUG-103782
+ # bug #847145
+ if tc-enables-fortify-source ; then
+ # We can't unconditionally do this b/c we fortify needs
+ # some level of optimisation.
+ filter-flags -D_FORTIFY_SOURCE=3
+ # (Qt doesn't seem to respect CPPFLAGS?)
+ append-flags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
+ fi
+
+ qt5-build_src_prepare
+
+ # workaround for a79a370c (...Annotate-QMutex-...patch) adding a header
+ qt5_syncqt_version
+}
+
+src_configure() {
+ local myconf=(
+ $(qt_use icu)
+ $(qt_use !icu iconv)
+ )
+ use old-kernel && myconf+=(
+ -no-feature-renameat2 # needs Linux 3.16, bug 669994
+ -no-feature-getentropy # needs Linux 3.17, bug 669994
+ -no-feature-statx # needs Linux 4.11, bug 672856
+ )
+ qt5-build_src_configure
+}
+
+src_install() {
+ qt5-build_src_install
+ qt5_symlink_binary_to_path qmake 5
+
+ local flags=(
+ DBUS FREETYPE IMAGEFORMAT_JPEG IMAGEFORMAT_PNG
+ OPENGL OPENSSL SSL WIDGETS
+ )
+
+ for flag in ${flags[@]}; do
+ cat >> "${D}"/${QT5_HEADERDIR}/QtCore/qconfig.h <<- _EOF_ || die
+
+ #if defined(QT_NO_${flag}) && defined(QT_${flag})
+ # undef QT_NO_${flag}
+ #elif !defined(QT_NO_${flag}) && !defined(QT_${flag})
+ # define QT_NO_${flag}
+ #endif
+ _EOF_
+ done
+}
next reply other threads:[~2024-01-10 11:01 UTC|newest]
Thread overview: 166+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-10 11:01 Andreas Sturmlechner [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-12-18 4:37 [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtcore/ Ionen Wolkens
2024-02-17 16:57 Andreas Sturmlechner
2024-02-16 8:29 Arthur Zamarin
2024-02-16 8:29 Arthur Zamarin
2024-02-16 8:28 Arthur Zamarin
2024-02-16 8:28 Arthur Zamarin
2024-02-16 8:28 Arthur Zamarin
2024-02-06 22:32 Sam James
2024-02-05 20:07 Andreas Sturmlechner
2024-01-10 11:01 Andreas Sturmlechner
2023-11-08 22:30 Andreas Sturmlechner
2023-10-24 10:26 Andreas Sturmlechner
2023-09-30 10:00 Andreas Sturmlechner
2023-09-27 19:24 Arthur Zamarin
2023-09-21 19:34 Andreas Sturmlechner
2023-09-03 7:58 Andreas Sturmlechner
2023-08-16 16:31 Andreas Sturmlechner
2023-08-16 14:19 Arthur Zamarin
2023-08-16 14:18 Arthur Zamarin
2023-08-16 14:10 Arthur Zamarin
2023-08-16 13:49 Arthur Zamarin
2023-08-09 4:52 Arthur Zamarin
2023-08-09 4:52 Arthur Zamarin
2023-08-06 11:49 Sam James
2023-08-05 23:00 Andreas Sturmlechner
2023-04-09 20:17 Andreas Sturmlechner
2023-04-09 19:34 Arthur Zamarin
2023-04-09 19:25 Arthur Zamarin
2023-04-09 19:25 Arthur Zamarin
2023-04-09 19:04 Arthur Zamarin
2023-04-09 18:54 Arthur Zamarin
2023-04-09 18:53 Arthur Zamarin
2023-03-26 11:56 Andreas Sturmlechner
2023-02-19 12:55 Arthur Zamarin
2023-02-19 12:55 Arthur Zamarin
2023-02-19 11:43 Arthur Zamarin
2023-02-19 11:43 Arthur Zamarin
2023-02-07 17:47 Sam James
2023-02-07 16:54 Sam James
2023-02-05 13:54 Andreas Sturmlechner
2023-01-21 19:37 Arthur Zamarin
2022-11-30 8:25 Andreas Sturmlechner
2022-11-05 16:35 Andreas Sturmlechner
2022-10-28 18:59 Arthur Zamarin
2022-10-04 17:32 Sam James
2022-10-04 17:32 Sam James
2022-08-27 8:40 Agostino Sarubbo
2022-08-27 8:27 Agostino Sarubbo
2022-08-26 13:20 Arthur Zamarin
2022-08-12 14:31 Agostino Sarubbo
2022-08-05 7:15 Agostino Sarubbo
2022-08-05 5:47 Arthur Zamarin
2022-08-05 5:47 Arthur Zamarin
2022-08-04 17:55 Arthur Zamarin
2022-08-04 17:55 Arthur Zamarin
2022-07-23 11:22 Andreas Sturmlechner
2022-07-06 10:27 Andreas Sturmlechner
2022-07-04 17:58 Arthur Zamarin
2022-06-19 22:45 Sam James
2022-06-19 22:45 Sam James
2022-06-19 5:30 Sam James
2022-06-19 5:29 Sam James
2022-06-09 14:13 Andreas Sturmlechner
2022-05-30 16:09 Andreas Sturmlechner
2022-05-30 16:09 Andreas Sturmlechner
2022-05-25 23:11 Sam James
2022-05-19 5:08 WANG Xuerui
2022-01-20 13:26 Andreas Sturmlechner
2022-01-20 12:15 Jakov Smolić
2022-01-20 9:00 Jakov Smolić
2022-01-19 22:43 Sam James
2022-01-19 22:43 Sam James
2022-01-18 22:52 Jakov Smolić
2022-01-18 16:42 Andreas Sturmlechner
2022-01-15 14:13 Andreas Sturmlechner
2022-01-12 16:14 Andreas Sturmlechner
2021-12-16 12:29 Andreas Sturmlechner
2021-12-15 23:55 Sam James
2021-12-15 23:55 Sam James
2021-12-15 23:38 Sam James
2021-12-15 14:46 Jakov Smolić
2021-12-15 13:41 Jakov Smolić
2021-12-10 13:19 Andreas Sturmlechner
2021-10-17 0:29 Sam James
2021-09-29 17:47 Andreas Sturmlechner
2021-08-23 2:06 Sam James
2021-07-24 23:43 Yixun Lan
2021-01-09 21:18 Sam James
2021-01-09 13:42 Sam James
2021-01-07 16:31 Andreas Sturmlechner
2021-01-02 1:23 Andreas Sturmlechner
2020-10-13 15:02 Andreas Sturmlechner
2020-10-12 11:55 Sam James
2020-06-08 12:49 Andreas Sturmlechner
2020-05-30 19:33 Sergei Trofimovich
2020-05-09 7:43 Agostino Sarubbo
2020-04-10 22:21 Andreas Sturmlechner
2020-03-19 10:12 Agostino Sarubbo
2020-03-17 12:50 Andreas Sturmlechner
2020-03-17 12:40 Mart Raudsepp
2020-02-11 11:37 Agostino Sarubbo
2020-02-09 18:51 Andreas Sturmlechner
2020-02-08 21:34 Andreas Sturmlechner
2020-02-07 12:12 Agostino Sarubbo
2020-02-05 23:42 Sergei Trofimovich
2020-02-05 10:34 Agostino Sarubbo
2020-02-04 9:00 Agostino Sarubbo
2020-01-29 20:28 Andreas Sturmlechner
2020-01-27 11:33 Mikle Kolyada
2020-01-27 10:48 Mikle Kolyada
2020-01-26 20:55 Thomas Deutschmann
2020-01-13 19:50 Sergei Trofimovich
2019-12-18 13:01 Andreas Sturmlechner
2019-12-17 17:06 Andreas Sturmlechner
2019-10-21 11:18 Andreas Sturmlechner
2019-04-26 15:34 Anthony G. Basile
2019-02-11 23:36 Sergei Trofimovich
2019-01-09 20:58 Davide Pesavento
2019-01-06 20:41 Davide Pesavento
2019-01-05 21:10 Andreas Sturmlechner
2019-01-05 21:10 Andreas Sturmlechner
2018-11-24 13:32 Sergei Trofimovich
2018-10-19 20:23 Andreas Sturmlechner
2018-09-13 0:55 Andreas Sturmlechner
2018-09-13 0:55 Andreas Sturmlechner
2018-09-07 23:46 Sergei Trofimovich
2018-08-19 10:46 Sergei Trofimovich
2018-03-26 7:04 Sergei Trofimovich
2018-03-21 7:25 Sergei Trofimovich
2018-03-13 19:51 Michał Górny
2018-02-22 19:16 Andreas Sturmlechner
2018-02-06 12:28 Michael Palimaka
2017-12-25 1:01 Michael Palimaka
2017-12-24 12:00 Markus Meier
2017-12-02 5:55 Davide Pesavento
2017-11-18 17:52 Sergei Trofimovich
2017-11-13 22:37 Sergei Trofimovich
2017-11-08 12:51 Tobias Klausmann
2017-11-03 23:25 Sergei Trofimovich
2017-11-03 13:14 Michael Palimaka
2017-11-01 7:25 Sergei Trofimovich
2017-07-08 3:25 Michael Palimaka
2017-06-06 16:12 Markus Meier
2017-06-03 20:09 Sergei Trofimovich
2017-05-21 16:41 Michael Weber
2017-05-20 10:37 Michael Weber
2017-05-19 7:40 Jeroen Roovers
2017-05-18 12:39 Agostino Sarubbo
2017-03-18 6:46 Michael Palimaka
2017-01-25 13:36 Michael Palimaka
2017-01-02 18:44 Markus Meier
2016-11-23 20:08 Davide Pesavento
2016-10-13 9:41 Agostino Sarubbo
2016-08-23 19:15 Markus Meier
2016-04-24 16:08 Davide Pesavento
2016-04-16 17:14 Davide Pesavento
2016-03-27 16:47 Agostino Sarubbo
2016-03-09 4:12 Jeroen Roovers
2016-02-11 1:21 Davide Pesavento
2016-01-15 6:47 Michael Palimaka
2015-10-18 9:40 Mikle Kolyada
2015-10-17 13:45 Julian Ospald
2015-09-21 4:58 Jeroen Roovers
2015-08-26 14:56 Mikle Kolyada
2015-08-23 9:24 Jeroen Roovers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1704884452.2455f4d30364e65eccbcfee4d8edd6bd8742cba2.asturm@gentoo \
--to=asturm@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox