summary refs log tree commit diff
path: root/gnu/packages/qt.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/qt.scm')
-rw-r--r--gnu/packages/qt.scm46
1 files changed, 28 insertions, 18 deletions
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index ce5ab656a5..ab390d37de 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -108,7 +108,23 @@ X11 (yet).")
              (sha256
                (base32
                  "1by2l8wxbqwvs7anb5ggmqhn2cfmhyw3a23bp1yyd240rdpa38ky"))
-             (patches (list (search-patch "qt5-runpath.patch")))))
+             (modules '((guix build utils)))
+             (snippet
+              '(begin
+                ;; Remove qtwebengine, which relies on a bundled copy of
+                ;; chromium. Not only does it fail compilation in qt 5.5:
+                ;;    3rdparty/chromium/ui/gfx/codec/jpeg_codec.cc:362:10:
+                ;;    error: cannot convert ‘bool’ to ‘boolean’ in return
+                ;; it might also pose security problems.
+                ;; Alternatively, we could use the "-skip qtwebengine"
+                ;; configuration option.
+                (delete-file-recursively "qtwebengine")
+                ;; Remove one of the two bundled harfbuzz copies in addition
+                ;; to passing "-system-harfbuzz".
+                (delete-file-recursively "qtbase/src/3rdparty/harfbuzz-ng")
+                ;; Remove the bundled sqlite copy in addition to
+                ;; passing "-system-sqlite".
+                (delete-file-recursively "qtbase/src/3rdparty/sqlite")))))
     (build-system gnu-build-system)
     (propagated-inputs
      `(("mesa" ,mesa)))
@@ -158,8 +174,6 @@ X11 (yet).")
      `(("bison" ,bison)
        ("flex" ,flex)
        ("gperf" ,gperf)
-       ;; Ninja is only needed for the disabled qtwebengine
-;;        ("ninja" ,ninja)
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
        ("python" ,python-2)
@@ -175,14 +189,6 @@ X11 (yet).")
                 (("/bin/pwd") (which "pwd")))
               (substitute* "qtbase/src/corelib/global/global.pri"
                 (("/bin/ls") (which "ls")))
-              ;; commented out since qtwebengine is not built, but left in
-              ;; for reference
-;;               (substitute* "qtwebengine/src/3rdparty/chromium/build/common.gypi"
-;;                 (("/bin/echo") (which "echo")))
-;;               (substitute* "qtwebengine/src/3rdparty/chromium/third_party/\
-;; WebKit/Source/build/scripts/scripts.gypi"
-;;                 (("/usr/bin/gcc") (which "gcc")))
-;;               (setenv "NINJA_PATH" (which "ninja"))
               ;; do not pass "--enable-fast-install", which makes the
               ;; configure process fail
               (zero? (system*
@@ -191,17 +197,14 @@ X11 (yet).")
                       "-prefix" out
                       "-opensource"
                       "-confirm-license"
+                      ;; Most "-system-..." are automatic, but some use
+                      ;; the bundled copy by default.
                       "-system-sqlite"
+                      "-system-harfbuzz"
                       ;; explicitly link with openssl instead of dlopening it
                       "-openssl-linked"
                       ;; explicitly link with dbus instead of dlopening it
                       "-dbus-linked"
-                      ;; drop chromium module (qtwebengine); it fails
-                      ;; compilation in qt 5.5:
-                      ;; 3rdparty/chromium/ui/gfx/codec/jpeg_codec.cc:362:10:
-                      ;; error: cannot convert ‘bool’ to ‘boolean’ in return
-                      ;; and might pose security problems.
-                      "-skip" "qtwebengine"
                       ;; drop special machine instructions not supported
                       ;; on all instances of the target
                       ,@(if (string-prefix? "x86_64"
@@ -243,7 +246,11 @@ developers using C++ or QML, a CSS & JavaScript like language.")
               (base32
                "183fca7n7439nlhxyg1z7aky0izgbyll3iwakw4gwivy16aj5272"))
              (patches (map search-patch
-                           '("qt4-ldflags.patch" "qt4-tests.patch")))))
+                           '("qt4-ldflags.patch")))
+             (modules '((guix build utils)))
+             (snippet
+              ;; Remove webkit module, which is not built.
+              '(delete-file-recursively "src/3rdparty/webkit"))))
     (inputs `(,@(alist-delete "harfbuzz"
                               (alist-delete "libjpeg" (package-inputs qt)))
               ("libjepg" ,libjpeg-8)
@@ -288,6 +295,9 @@ developers using C++ or QML, a CSS & JavaScript like language.")
                       "-confirm-license"
                       ;; explicitly link with dbus instead of dlopening it
                       "-dbus-linked"
+                      ;; Skip the webkit module; it fails to build on armhf
+                      ;; and, apart from that, may pose security risks.
+                      "-no-webkit"
                       ;; drop special machine instructions not supported
                       ;; on all instances of the target
                       ,@(if (string-prefix? "x86_64"