gnu: qt@5: Fix build failure on glibc 2.28.

* gnu/packages/patches/qt-5-renameat2.patch: New file.
* gnu/packages/qt.scm (qt)[source]: Use it.
* gnu/local.mk (dist_patch_DATA): Add it.
This commit is contained in:
Ludovic Courtès 2018-11-18 10:18:42 +01:00
parent 774f8bbeb1
commit af50b4abc0
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
3 changed files with 38 additions and 1 deletions

View File

@ -1099,6 +1099,7 @@ dist_patch_DATA = \
%D%/packages/patches/qt4-ldflags.patch \ %D%/packages/patches/qt4-ldflags.patch \
%D%/packages/patches/qtbase-use-TZDIR.patch \ %D%/packages/patches/qtbase-use-TZDIR.patch \
%D%/packages/patches/qtscript-disable-tests.patch \ %D%/packages/patches/qtscript-disable-tests.patch \
%D%/packages/patches/qt-5-renameat2.patch \
%D%/packages/patches/quagga-reproducible-build.patch \ %D%/packages/patches/quagga-reproducible-build.patch \
%D%/packages/patches/quickswitch-fix-dmenu-check.patch \ %D%/packages/patches/quickswitch-fix-dmenu-check.patch \
%D%/packages/patches/quilt-test-fix-regex.patch \ %D%/packages/patches/quilt-test-fix-regex.patch \

View File

@ -0,0 +1,35 @@
Avoid conflicting declaration of 'renameat2' on glibc 2.28
(see <https://github.com/meta-qt5/meta-qt5/issues/94>.)
Patch from <https://github.com/meta-qt5/meta-qt5/pull/95>
by Andreas Müller <schnitzeltony@gmail.com>.
---
src/corelib/io/qfilesystemengine_unix.cpp | 11 ++++++++++++
1 file changed, 11 insertions(+)
diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp
index be6ce48d0cb..1bf1bebc7f1 100644
--- a/qtbase/src/corelib/io/qfilesystemengine_unix.cpp
+++ b/qtbase/src/corelib/io/qfilesystemengine_unix.cpp
@@ -98,6 +98,17 @@ extern "C" NSString *NSTemporaryDirectory();
# define FICLONE _IOW(0x94, 9, int)
#endif
+// renameat2/statx features for non bootstrapped build
+#ifndef QT_BOOTSTRAPPED
+#ifdef __GLIBC_PREREQ
+# define QT_FEATURE_renameat2 (__GLIBC_PREREQ(2, 28) ? 1 : -1)
+# define QT_FEATURE_statx (__GLIBC_PREREQ(2, 28) ? 1 : -1)
+#else
+# define QT_FEATURE_renameat2 -1
+# define QT_FEATURE_statx -1
+#endif
+#endif
+
# if defined(Q_OS_ANDROID)
// renameat2() and statx() are disabled on Android because quite a few systems
// come with sandboxes that kill applications that make system calls outside a
--
2.14.4

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
@ -121,6 +121,7 @@ system, and the core design of Django is reused in Grantlee.")
(sha256 (sha256
(base32 (base32
"10faac59jvz6dxxljdkaknlxazpnaxgvqdcszabfbbkc1f24n466")) "10faac59jvz6dxxljdkaknlxazpnaxgvqdcszabfbbkc1f24n466"))
(patches (search-patches "qt-5-renameat2.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin