unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
From: Andreas Enge <andreas@enge.fr>
To: Efraim Flashner <efraim@flashner.co.il>
Cc: 24404@debbugs.gnu.org, "help-guix@gnu.org" <help-guix@gnu.org>
Subject: bug#24404: "calibre" package fails to build.
Date: Sun, 22 Jul 2018 11:49:14 +0200	[thread overview]
Message-ID: <20180722094914.GA31191__32986.677150666$1532252894$gmane$org@jurong> (raw)
In-Reply-To: <20180721204211.GA29877@jurong>

[-- Attachment #1: Type: text/plain, Size: 1069 bytes --]

Hello,

I ended up disabling tests (see comments in the patch).
Now the package builds, but tries to install into the Qt directory; at the
end of the cmake phase, it prints:
  -- Installing in the same prefix as Qt, adopting their path scheme.
The previous version of the package contains a phase to adapt this,
but the .pri files to be modified do not exist any more.

I also tried to inherit from qtsvg like other qt* packages; but the
gnu-build-system does not work any more for qtwebkit, the build finishes
in a few seconds creating only the documentation and not compiling the code...

At this point, I am giving up; it would be nice if someone else could take
a look, I am attaching the current patch.

If there is no progress during the next few days, I would suggest to re-add
pyqt@5.9 for calibre. What do you think?

Andreas

PS: There is a thread from 2016 in which the Calibre author states that he
    will stick with qtwebkit and in the worst case take over the maintenance
    of a fork:
       https://www.mobileread.com/forums/showthread.php?t=270258


[-- Attachment #2: 0001-gnu-qtwebkit-Update-to-5.212.0-alpha2.patch --]
[-- Type: text/plain, Size: 8879 bytes --]

From 3fe25c8153e28823411d045251e7458c82e62421 Mon Sep 17 00:00:00 2001
From: Andreas Enge <andreas@enge.fr>
Date: Sun, 22 Jul 2018 11:38:58 +0200
Subject: [PATCH] gnu: qtwebkit: Update to 5.212.0-alpha2.

* gnu/packages/qt.scm (qtwebkit): Update to 5.212.0-alpha2.
* gnu/packages/patches/qtwebkit-pbutils-include.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register the patch.
---
 gnu/local.mk                                  |  1 +
 .../patches/qtwebkit-pbutils-include.patch    | 15 ++++
 gnu/packages/qt.scm                           | 87 +++----------------
 3 files changed, 30 insertions(+), 73 deletions(-)
 create mode 100644 gnu/packages/patches/qtwebkit-pbutils-include.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index e55c2bf3b..066b9fb42 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1092,6 +1092,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/qtbase-use-TZDIR.patch			\
   %D%/packages/patches/qtoctave-qt-5.11-fix.patch		\
   %D%/packages/patches/qtscript-disable-tests.patch		\
+  %D%/packages/patches/qtwebkit-pbutils-include.patch           \
   %D%/packages/patches/quagga-reproducible-build.patch          \
   %D%/packages/patches/quassel-qt-5.11.patch			\
   %D%/packages/patches/quickswitch-fix-dmenu-check.patch	\
diff --git a/gnu/packages/patches/qtwebkit-pbutils-include.patch b/gnu/packages/patches/qtwebkit-pbutils-include.patch
new file mode 100644
index 000000000..57961e7a5
--- /dev/null
+++ b/gnu/packages/patches/qtwebkit-pbutils-include.patch
@@ -0,0 +1,15 @@
+Patch taken from Nix:
+   https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/qt-5/5.11/qtwebkit.patch
+
+diff --git a/Source/WebKit2/PlatformQt.cmake b/Source/WebKit2/PlatformQt.cmake
+--- a/Source/WebKit2/PlatformQt.cmake
++++ b/Source/WebKit2/PlatformQt.cmake
+@@ -261,6 +261,7 @@
+ list(APPEND WebKit2_SYSTEM_INCLUDE_DIRECTORIES
+     ${GLIB_INCLUDE_DIRS}
+     ${GSTREAMER_INCLUDE_DIRS}
++    ${GSTREAMER_PBUTILS_INCLUDE_DIRS}
+     ${Qt5Quick_INCLUDE_DIRS}
+     ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
+     ${SQLITE_INCLUDE_DIR}
+
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index a15d6453c..5386fc6d0 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -1991,18 +1991,16 @@ different kinds of sliders, and much more.")
 (define-public qtwebkit
   (package
     (name "qtwebkit")
-    (version "5.9.1")
+    (version "5.212.0-alpha2")
     (source
       (origin
         (method url-fetch)
-        (uri (string-append "https://download.qt.io/official_releases/qt/"
-                            (version-major+minor version) "/" version
-                            "/submodules/" name "-opensource-src-"
-                            version ".tar.xz"))
+        (uri "https://github.com/annulen/webkit/releases/download/qtwebkit-5.212.0-alpha2/qtwebkit-5.212.0-alpha2.tar.xz")
         (sha256
          (base32
-          "1ksjn1vjbfhdm4y4rg08ag4krk87ahp7qcdcpwll42l0rnz61998"))))
-    (build-system gnu-build-system)
+          "12lg7w00d8wsj672s1y5z5gm0xdcgs16nas0b5bgq4byavg03ygq"))
+        (patches (search-patches "qtwebkit-pbutils-include.patch"))))
+    (build-system cmake-build-system)
     (native-inputs
      `(("perl" ,perl)
        ("python" ,python-2.7)
@@ -2013,6 +2011,8 @@ different kinds of sliders, and much more.")
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("icu" ,icu4c)
+       ("glib" ,glib)
+       ("gst-plugins-base" ,gst-plugins-base)
        ("libjpeg" ,libjpeg)
        ("libpng" ,libpng)
        ("libwebp" ,libwebp)
@@ -2021,85 +2021,26 @@ different kinds of sliders, and much more.")
        ("libxrender" ,libxrender)
        ("qtbase" ,qtbase)
        ("qtdeclarative" ,qtdeclarative)
+       ("qtlocation" ,qtlocation)
        ("qtmultimedia" ,qtmultimedia)
+       ("qtsensors" ,qtsensors)
+       ("qtwebchannel" ,qtwebchannel)
        ("libxml2" ,libxml2)
        ("libxslt" ,libxslt)
        ("libx11" ,libx11)
        ("libxcomposite" ,libxcomposite)))
     (arguments
-     `(#:phases
+     `(#:tests? #f ; no apparent tests; it might be necessary to set
+                   ; ENABLE_API_TESTS, see CMakeLists.txt
+       #:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'fix-qmlwebkit-plugins-rpath
-           (lambda _
-             (substitute* "Source/WebKit/qt/declarative/experimental/experimental.pri"
-               (("RPATHDIR_RELATIVE_TO_DESTDIR = \\.\\./\\.\\./lib")
-                "RPATHDIR_RELATIVE_TO_DESTDIR = ../../../../../lib"))
-             (substitute* "Source/WebKit/qt/declarative/public.pri"
-               (("RPATHDIR_RELATIVE_TO_DESTDIR = \\.\\./\\.\\./lib")
-                "RPATHDIR_RELATIVE_TO_DESTDIR = ../../../../lib"))
-             #t))
          (replace 'configure
                   (lambda* (#:key outputs #:allow-other-keys)
                     (let ((out (assoc-ref outputs "out")))
                       (setenv "QMAKEPATH"
                               (string-append (getcwd) "/Tools/qmake:"
                                              (getenv "QMAKEPATH")))
-                      (system* "qmake"))))
-         ;; prevent webkit from trying to install into the qtbase store directory,
-         ;; and replace references to the build directory in linker options:
-         (add-before 'build 'patch-installpaths
-                     (lambda* (#:key outputs inputs #:allow-other-keys)
-                       (let* ((out (assoc-ref outputs "out"))
-                              (qtbase (assoc-ref inputs "qtbase"))
-                              (builddir (getcwd))
-                              (linkbuild (string-append "-L" builddir))
-                              (linkout (string-append "-L" out))
-                              (makefiles
-                               (map-in-order
-                                (lambda (i)
-                                  (let* ((in (car i))
-                                         (mf (string-append (dirname in) "/"
-                                                            (cdr i))))
-                                    ;; by default, these Makefiles are
-                                    ;; generated during install, but we need
-                                    ;; to generate them now
-                                    (system* "qmake" in "-o" mf)
-                                    mf))
-                                '(("Source/api.pri" . "Makefile.api")
-                                  ("Source/widgetsapi.pri"
-                                   . "Makefile.widgetsapi")
-                                  ("Source/WebKit2/WebProcess.pro"
-                                   . "Makefile.WebProcess")
-                                  ("Source/WebKit2/PluginProcess.pro"
-                                   . "Makefile.PluginProcess")
-                                  ("Source/WebKit/qt/declarative/public.pri"
-                                   . "Makefile.declarative.public")
-                                  ("Source/WebKit/qt/declarative/experimental/experimental.pri"
-                                   . "Makefile.declarative.experimental")
-                                  ("Source/WebKit/qt/examples/platformplugin/platformplugin.pro"
-                                   . "Makefile")))))
-                         ;; Order of qmake calls and substitutions matters here.
-                         (system* "qmake" "-prl" "Source/widgetsapi.pri"
-                                  "-o" "Source/Makefile")
-                         (substitute* (find-files "lib" "libQt5.*\\.prl")
-                           ((linkbuild) linkout))
-                         (substitute* (find-files "lib"
-                                                  "libQt5WebKit.*\\.la")
-                           (("libdir='.*'")
-                            (string-append "libdir='" out "/lib'"))
-                           ((linkbuild) linkout))
-                         (substitute* (find-files "lib/pkgconfig"
-                                                  "Qt5WebKit.*\\.pc")
-                           (((string-append "prefix=" qtbase))
-                            (string-append "prefix=" out))
-                           ((linkbuild) linkout))
-                         ;; Makefiles must be modified after .prl/.la/.pc
-                         ;; files, lest they get rebuilt:
-                         (substitute* makefiles
-                           (((string-append "\\$\\(INSTALL_ROOT\\)" qtbase))
-                            out )
-                           (((string-append "-Wl,-rpath," builddir))
-                            (string-append "-Wl,-rpath," out)))))))))
+                      (system* "qmake")))))))
     (home-page "https://www.webkit.org")
     (synopsis "Web browser engine and classes to render and interact with web
 content")
-- 
2.18.0


  reply	other threads:[~2018-07-22  9:50 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20180628170155.11a28321@mailbox.org>
     [not found] ` <20180721173203.GA10747@jurong>
2018-07-21 18:13   ` bug#24404: "calibre" package fails to build Andreas Enge
     [not found]   ` <20180721181358.GA892@jurong>
2018-07-21 18:19     ` Andreas Enge
2018-07-21 18:38     ` Efraim Flashner
     [not found]     ` <20180721183830.GP4585@macbook41>
2018-07-21 18:48       ` Andreas Enge
     [not found]       ` <20180721184822.GA12005@jurong>
2018-07-21 18:52         ` Efraim Flashner
     [not found]         ` <20180721185225.GQ4585@macbook41>
2018-07-21 20:34           ` Andreas Enge
     [not found]           ` <20180721203448.GA6314@jurong>
2018-07-21 20:42             ` Andreas Enge
2018-07-22  9:49               ` Andreas Enge [this message]
     [not found]               ` <20180722094914.GA31191@jurong>
2018-08-01 10:17                 ` Efraim Flashner
     [not found]                 ` <20180801101739.GB31156@macbook41>
2018-08-01 12:46                   ` Brendan Tildesley
2018-08-01 16:41                     ` Efraim Flashner
2018-08-02 12:30                       ` Andreas Enge
2018-08-02 15:00                         ` Efraim Flashner
2018-08-02 15:07                           ` Andreas Enge
2018-08-02 16:22                             ` Andreas Enge
2018-08-02 16:49                               ` Andreas Enge
2018-08-02 17:04                                 ` Andreas Enge
2018-08-02 17:23                                   ` Andreas Enge
2018-08-02 16:31                             ` Andreas Enge
2019-02-19 22:25   ` bug#32238: Close Andreas Enge
2016-09-10  2:50 bug#24404: Calibre can't find QtWebKitWidgets Leo Famulari
2018-12-08 14:49 ` bug#24404: "calibre" package fails to build Andreas Enge

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='20180722094914.GA31191__32986.677150666$1532252894$gmane$org@jurong' \
    --to=andreas@enge.fr \
    --cc=24404@debbugs.gnu.org \
    --cc=efraim@flashner.co.il \
    --cc=help-guix@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).