From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id DCA12158451 for ; Wed, 10 Jan 2024 11:01:32 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 106A2E2A21; Wed, 10 Jan 2024 11:01:31 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id E3E27E2A21 for ; Wed, 10 Jan 2024 11:01:30 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id DCB2D343281 for ; Wed, 10 Jan 2024 11:01:29 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 48FE414B4 for ; Wed, 10 Jan 2024 11:01:28 +0000 (UTC) From: "Andreas Sturmlechner" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Andreas Sturmlechner" Message-ID: <1704884452.2455f4d30364e65eccbcfee4d8edd6bd8742cba2.asturm@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtcore/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-qt/qtcore/qtcore-5.15.12-r1.ebuild X-VCS-Directories: dev-qt/qtcore/ X-VCS-Committer: asturm X-VCS-Committer-Name: Andreas Sturmlechner X-VCS-Revision: 2455f4d30364e65eccbcfee4d8edd6bd8742cba2 X-VCS-Branch: master Date: Wed, 10 Jan 2024 11:01:28 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: fb91c98a-e858-4a8d-8052-ddb9702b3e48 X-Archives-Hash: 8adc1074e3f16a19c70a9605c07f0d34 commit: 2455f4d30364e65eccbcfee4d8edd6bd8742cba2 Author: Andreas Sturmlechner gentoo org> AuthorDate: Wed Apr 1 13:56:48 2020 +0000 Commit: Andreas Sturmlechner gentoo 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 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} + != -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 +}