summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-04-15 13:30:25 +0200
committerLudovic Courtès <ludo@gnu.org>2015-04-15 18:13:56 +0200
commitd29843466abcd3e3a6e638c7c2b3511b82f70646 (patch)
treebdd56ff6a8840e51e1889fa2747fce2bf287ae1a /gnu
parent6c0dfb195c1ff65a60ab6f0e297fd37ea3d4c841 (diff)
downloadgnu-guix-d29843466abcd3e3a6e638c7c2b3511b82f70646.tar
gnu-guix-d29843466abcd3e3a6e638c7c2b3511b82f70646.tar.gz
gnu: qt-4: Do not set $LDFLAGS since that triggerred a build failure.
Fixes the build failure at <http://hydra.gnu.org/build/379884/log/raw>: 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.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/patches/qt4-ldflags.patch18
-rw-r--r--gnu/packages/qt.scm14
2 files changed, 22 insertions, 10 deletions
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: <https://bugreports.qt.io/browse/QTBUG-5471>.
++# 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"