commit:     35678fe2decea3d9de1a317c9e8e6a031437b334
Author:     Benda Xu <heroxbd <AT> gentoo <DOT> org>
AuthorDate: Wed Apr  8 08:50:19 2020 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Thu Apr  9 18:09:50 2020 +0000
URL:        https://gitweb.gentoo.org/proj/qt.git/commit/?id=35678fe2

dev-qt/qtcore: enable renameat2 and getentropy conditionally

Add USE=old-kernel to switch off the new syscalls.

renameat2() and getentropy() are not available until linux-3.17.

Bug: https://bugs.gentoo.org/669994
Package-Manager: Portage-2.3.88, Repoman-2.3.18
Signed-off-by: Benda Xu <heroxbd <AT> gentoo.org>
Closes: https://github.com/gentoo/qt/pull/214
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 dev-qt/qtcore/metadata.xml            |  1 +
 dev-qt/qtcore/qtcore-5.14.9999.ebuild | 16 ++++++++++++++--
 dev-qt/qtcore/qtcore-5.15.9999.ebuild | 16 ++++++++++++++--
 dev-qt/qtcore/qtcore-5.9999.ebuild    | 18 +++++++++++++++---
 4 files changed, 44 insertions(+), 7 deletions(-)

diff --git a/dev-qt/qtcore/metadata.xml b/dev-qt/qtcore/metadata.xml
index c612265c..34d2b272 100644
--- a/dev-qt/qtcore/metadata.xml
+++ b/dev-qt/qtcore/metadata.xml
@@ -6,6 +6,7 @@
                <name>Gentoo Qt Project</name>
        </maintainer>
        <use>
+               <flag name="old-kernel">disable new syscalls for Linux kernel 
>= 3.17</flag>
                <flag name="systemd">Enable native journald logging 
support</flag>
        </use>
        <upstream>

diff --git a/dev-qt/qtcore/qtcore-5.14.9999.ebuild 
b/dev-qt/qtcore/qtcore-5.14.9999.ebuild
index 9b476abf..a6f5b7fc 100644
--- a/dev-qt/qtcore/qtcore-5.14.9999.ebuild
+++ b/dev-qt/qtcore/qtcore-5.14.9999.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 QT5_MODULE="qtbase"
-inherit qt5-build
+inherit linux-info qt5-build
 
 DESCRIPTION="Cross-platform application development framework"
 
@@ -11,7 +11,7 @@ if [[ ${QT5_BUILD_TYPE} == release ]]; then
        KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
 fi
 
-IUSE="icu systemd"
+IUSE="icu old-kernel systemd"
 
 DEPEND="
        dev-libs/double-conversion:=
@@ -44,6 +44,16 @@ QT5_GENTOO_PRIVATE_CONFIG=(
 
 PATCHES=( "${FILESDIR}/${PN}-5.14.1-cmake-macro-backward-compat.patch" ) # bug 
703306
 
+pkg_pretend() {
+       if use kernel_linux; then
+               get_running_version
+               if kernel_is -lt 3 17 && ! use old-kernel; then
+                       ewarn "The running kernel is older than 3.17. 
USE=old-kernel is needed for ${CATEGORY}/${PN}"
+                       ewarn "to function on this kernel properly.  See Bug 
#669994."
+               fi
+       fi
+}
+
 src_prepare() {
        # don't add -O3 to CXXFLAGS, bug 549140
        sed -i -e '/CONFIG\s*+=/s/optimize_full//' src/corelib/corelib.pro || 
die
@@ -59,6 +69,8 @@ src_configure() {
                -no-feature-statx       # bug 672856
                $(qt_use icu)
                $(qt_use !icu iconv)
+               $(qt_use !old-kernel feature-renameat2)  # needs Linux 3.16, 
bug 669994
+               $(qt_use !old-kernel feature-getentropy) # needs Linux 3.17, 
bug 669994
                $(qt_use systemd journald)
        )
        qt5-build_src_configure

diff --git a/dev-qt/qtcore/qtcore-5.15.9999.ebuild 
b/dev-qt/qtcore/qtcore-5.15.9999.ebuild
index 9b476abf..a6f5b7fc 100644
--- a/dev-qt/qtcore/qtcore-5.15.9999.ebuild
+++ b/dev-qt/qtcore/qtcore-5.15.9999.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 QT5_MODULE="qtbase"
-inherit qt5-build
+inherit linux-info qt5-build
 
 DESCRIPTION="Cross-platform application development framework"
 
@@ -11,7 +11,7 @@ if [[ ${QT5_BUILD_TYPE} == release ]]; then
        KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
 fi
 
-IUSE="icu systemd"
+IUSE="icu old-kernel systemd"
 
 DEPEND="
        dev-libs/double-conversion:=
@@ -44,6 +44,16 @@ QT5_GENTOO_PRIVATE_CONFIG=(
 
 PATCHES=( "${FILESDIR}/${PN}-5.14.1-cmake-macro-backward-compat.patch" ) # bug 
703306
 
+pkg_pretend() {
+       if use kernel_linux; then
+               get_running_version
+               if kernel_is -lt 3 17 && ! use old-kernel; then
+                       ewarn "The running kernel is older than 3.17. 
USE=old-kernel is needed for ${CATEGORY}/${PN}"
+                       ewarn "to function on this kernel properly.  See Bug 
#669994."
+               fi
+       fi
+}
+
 src_prepare() {
        # don't add -O3 to CXXFLAGS, bug 549140
        sed -i -e '/CONFIG\s*+=/s/optimize_full//' src/corelib/corelib.pro || 
die
@@ -59,6 +69,8 @@ src_configure() {
                -no-feature-statx       # bug 672856
                $(qt_use icu)
                $(qt_use !icu iconv)
+               $(qt_use !old-kernel feature-renameat2)  # needs Linux 3.16, 
bug 669994
+               $(qt_use !old-kernel feature-getentropy) # needs Linux 3.17, 
bug 669994
                $(qt_use systemd journald)
        )
        qt5-build_src_configure

diff --git a/dev-qt/qtcore/qtcore-5.9999.ebuild 
b/dev-qt/qtcore/qtcore-5.9999.ebuild
index 4ef01cf6..c39aa396 100644
--- a/dev-qt/qtcore/qtcore-5.9999.ebuild
+++ b/dev-qt/qtcore/qtcore-5.9999.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
 QT5_MODULE="qtbase"
-inherit qt5-build
+inherit linux-info qt5-build
 
 DESCRIPTION="Cross-platform application development framework"
 
@@ -11,7 +11,7 @@ if [[ ${QT5_BUILD_TYPE} == release ]]; then
        KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
 fi
 
-IUSE="icu systemd"
+IUSE="icu old-kernel systemd"
 
 DEPEND="
        dev-libs/double-conversion:=
@@ -43,6 +43,16 @@ QT5_GENTOO_PRIVATE_CONFIG=(
        !:xml
 )
 
+pkg_pretend() {
+       if use kernel_linux; then
+               get_running_version
+               if kernel_is -lt 3 17 && ! use old-kernel; then
+                       ewarn "The running kernel is older than 3.17. 
USE=old-kernel is needed for ${CATEGORY}/${PN}"
+                       ewarn "to function on this kernel properly.  See Bug 
#669994."
+               fi
+       fi
+}
+
 src_prepare() {
        # don't add -O3 to CXXFLAGS, bug 549140
        sed -i -e '/CONFIG\s*+=/s/optimize_full//' src/corelib/corelib.pro || 
die
@@ -58,6 +68,8 @@ src_configure() {
                -no-feature-statx       # bug 672856
                $(qt_use icu)
                $(qt_use !icu iconv)
+               $(qt_use !old-kernel feature-renameat2)  # needs Linux 3.16, 
bug 669994
+               $(qt_use !old-kernel feature-getentropy) # needs Linux 3.17, 
bug 669994
                $(qt_use systemd journald)
        )
        qt5-build_src_configure

Reply via email to