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 4AB0B158090 for ; Wed, 25 May 2022 23:11:54 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 5E5BEE0863; Wed, 25 May 2022 23:11:53 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (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 5478EE0863 for ; Wed, 25 May 2022 23:11:52 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (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 35F1E3412AC for ; Wed, 25 May 2022 23:11:51 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 3C71B34E for ; Wed, 25 May 2022 23:11:49 +0000 (UTC) From: "Sam James" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" Message-ID: <1653520288.3c4656a189e254231b94cef558530c42ea8db690.sam@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.4-r1.ebuild X-VCS-Directories: dev-qt/qtcore/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: 3c4656a189e254231b94cef558530c42ea8db690 X-VCS-Branch: master Date: Wed, 25 May 2022 23:11:49 +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: b6136bb6-d3fd-4981-831c-6234ede7b18d X-Archives-Hash: 16a6a2f3269cf75b0bb1e628f9aa436d commit: 3c4656a189e254231b94cef558530c42ea8db690 Author: Sam James gentoo org> AuthorDate: Wed May 25 23:10:33 2022 +0000 Commit: Sam James gentoo org> CommitDate: Wed May 25 23:11:28 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3c4656a1 dev-qt/qtcore: add FORTIFY_SOURCE=3 workaround (force back to =2) As discussed with asturm until we know what's happening with the upstream bug. We can consider the opensuse patch once that's resolved, if the upstream fix isn't made public, almost certainly via KDE Qt5PatchCollection. But we'll see. Closes: https://bugs.gentoo.org/847145 Signed-off-by: Sam James gentoo.org> dev-qt/qtcore/qtcore-5.15.4-r1.ebuild | 121 ++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) diff --git a/dev-qt/qtcore/qtcore-5.15.4-r1.ebuild b/dev-qt/qtcore/qtcore-5.15.4-r1.ebuild new file mode 100644 index 000000000000..034469ed1e79 --- /dev/null +++ b/dev-qt/qtcore/qtcore-5.15.4-r1.ebuild @@ -0,0 +1,121 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +QT5_KDEPATCHSET_REV=1 +QT5_MODULE="qtbase" +inherit linux-info flag-o-matic qt5-build + +DESCRIPTION="Cross-platform application development framework" +SLOT=5/${QT5_PV} + +if [[ ${QT5_BUILD_TYPE} == release ]]; then + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +IUSE="icu old-kernel systemd" + +DEPEND=" + dev-libs/double-conversion:= + dev-libs/glib:2 + dev-libs/libpcre2[pcre16,unicode] + sys-libs/zlib:= + icu? ( dev-libs/icu:= ) + !icu? ( virtual/libiconv ) + systemd? ( sys-apps/systemd:= ) +" +RDEPEND="${DEPEND}" + +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 +) + +PATCHES=( + "${FILESDIR}"/${PN}-5.15.3-pthread.patch # bug 803470 +) + +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 is-flagq '-O[23]' || is-flagq '-Ofast' ; 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 +} + +src_configure() { + local myconf=( + $(qt_use icu) + $(qt_use !icu iconv) + $(qt_use systemd journald) + ) + 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 +}