Hi Guix, qtbase sometimes fails to build on core-updates. I now know that it only fails on Linux < 3.17, which is why I’ve seen the failure only on RHEL6 and RHEL7 systems with Linux 2.6.32 and 3.10, respectively.
With the attached patch, qtbase builds on all supported kernels as the minimum kernel version becomes 2.6.28, which is lower than the minimum for glibc. It disables code that depends on the “getentropy” and “renameat2” syscalls. Qtbase has a fallback implementation for random things when getentropy is not available. See src/corelib/global/qrandom.cpp for more information. Note that the *current* RHEL 7 kernel reports as 3.10. RHEL 7 is the latest Red Hat distribution that is currently available, so the problem affects not only old RHEL6 systems. What do you think about this patch? -- Ricardo
>From d215bef77823fdbbb297c3641a18952926dacef8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus <rek...@elephly.net> Date: Fri, 1 Jun 2018 13:19:25 +0200 Subject: [PATCH] gnu: qtbase: Fix build on older kernels. * gnu/packages/qt.scm (qtbase)[arguments]: Add configure flags "-no-feature-getentropy" and "-no-feature-renameat2". --- gnu/packages/qt.scm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index c3d0bff2f..a48a04fe4 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efr...@flashner.co.il> ;;; Copyright © 2016, 2017 Nils Gillmann <n...@n0.is> ;;; Copyright © 2016 Thomas Danckaert <p...@thomasdanckaert.be> -;;; Copyright © 2017 Ricardo Wurmus <rek...@elephly.net> +;;; Copyright © 2017, 2018 Ricardo Wurmus <rek...@elephly.net> ;;; Copyright © 2017 Quiliro <quil...@fsfla.org> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <m...@tobias.gr> ;;; Copyright © 2018 Nicolas Goaziou <m...@nicolasgoaziou.fr> @@ -487,6 +487,16 @@ developers using C++ or QML, a CSS & JavaScript like language.") out "/share/doc/qt5/examples") "-opensource" "-confirm-license" + + ;; These features require higher versions of Linux than the + ;; minimum version of the glibc. See + ;; src/corelib/global/minimum-linux_p.h. By disabling these + ;; features Qt5 applications can be used on the oldest + ;; kernels that the glibc supports, including the RHEL6 + ;; (2.6.32) and RHEL7 (3.10) kernels. + "-no-feature-getentropy" ; requires Linux 3.17 + "-no-feature-renameat2" ; requires Linux 3.16 + ;; Do not build examples; if desired, these could go ;; into a separate output, but for the time being, we ;; prefer to save the space and build time. -- 2.17.1