From d29843466abcd3e3a6e638c7c2b3511b82f70646 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 15 Apr 2015 13:30:25 +0200 Subject: [PATCH] gnu: qt-4: Do not set $LDFLAGS since that triggerred a build failure. Fixes the build failure at : g++ -licui18n -Wl,-O1 [...] -o ../../../../bin/assistant [...] ld: warning: libQtCLucene.so.4, needed by /tmp/nix-build-qt-4.8.6.drv-0/qt-everywhere-opensource-src-4.8.6/lib/libQtHelp.so, not found (try using -rpath or -rpath-link) /tmp/nix-build-qt-4.8.6.drv-0/qt-everywhere-opensource-src-4.8.6/lib/libQtHelp.so: undefined reference to `QCLucenePhraseQuery::getTerms() const' [...] * gnu/packages/patches/qt4-ldflags.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/qt.scm (qt-4)[source]: Use it. [arguments]: Remove 'setenv' call in 'configure' phase. --- gnu-system.am | 1 + gnu/packages/patches/qt4-ldflags.patch | 18 ++++++++++++++++++ gnu/packages/qt.scm | 14 ++++---------- 3 files changed, 23 insertions(+), 10 deletions(-) create mode 100644 gnu/packages/patches/qt4-ldflags.patch diff --git a/gnu-system.am b/gnu-system.am index 1d3496f81f..d92aaaf891 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -520,6 +520,7 @@ dist_patch_DATA = \ gnu/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \ gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch \ gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ + gnu/packages/patches/qt4-ldflags.patch \ gnu/packages/patches/qt4-tests.patch \ gnu/packages/patches/qt5-runpath.patch \ gnu/packages/patches/ratpoison-shell.patch \ diff --git a/gnu/packages/patches/qt4-ldflags.patch b/gnu/packages/patches/qt4-ldflags.patch new file mode 100644 index 0000000000..0d6398018a --- /dev/null +++ b/gnu/packages/patches/qt4-ldflags.patch @@ -0,0 +1,18 @@ +Explicitly link against libicui18n so that libQtCore.so always finds it. + +--- qt-everywhere-opensource-src-4.8.6/src/corelib/corelib.pro 2015-04-15 12:01:41.661862663 +0200 ++++ qt-everywhere-opensource-src-4.8.6/src/corelib/corelib.pro 2015-04-15 12:03:57.954586336 +0200 +@@ -19,6 +19,13 @@ include(codecs/codecs.pri) + include(statemachine/statemachine.pri) + include(xml/xml.pri) + ++# Explicitly link with icui18n, which is dlopened by libQtCore.so. ++# We cannot do this by setting LDFLAGS because that then overrides ++# other LDFLAGS: . ++# XXX: According to the Nixpkgs recipe, this may be necessary for ++# further libraries (cups, gtk-x11-2.0, libgdk-x11-2.0). ++LIBS_PRIVATE += -licui18n ++ + !qpa:mac|darwin:LIBS_PRIVATE += -framework ApplicationServices + qpa:mac { + !ios { diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 911de16024..1787059f51 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -230,7 +230,8 @@ developers using C++ or QML, a CSS & JavaScript like language.") (sha256 (base32 "0b036iqgmbbv37dgwwfihw3mihjbnw3kb5kaisdy0qi8nn8xs54b")) - (patches (list (search-patch "qt4-tests.patch"))))) + (patches (map search-patch + '("qt4-ldflags.patch" "qt4-tests.patch"))))) (inputs `(,@(alist-delete "libjpeg" (package-inputs qt)) ("libjepg" ,libjpeg-8) ("libsm" ,libsm))) @@ -241,15 +242,8 @@ developers using C++ or QML, a CSS & JavaScript like language.") (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (substitute* '("configure") - (("/bin/pwd") (which "pwd"))) - ;; Explicitly link with icui18n, which is dlopened by - ;; QtCore.so. The LDFLAGS are in fact added to other flags - ;; determined by the configure phase. - ;; According to the nix recipe, this may be necessary for - ;; further libraries (cups, gtk-x11-2.0, libgdk-x11-2.0). - (setenv "LDFLAGS" "-licui18n") - ;; do not pass "--enable-fast-install", which makes the - ;; configure process fail + (("/bin/pwd") (which "pwd"))) + (zero? (system* "./configure" "-verbose"