From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andreas Enge Subject: bug#24404: "calibre" package fails to build. Date: Sun, 22 Jul 2018 11:49:14 +0200 Message-ID: <20180722094914.GA31191__32986.677150666$1532252894$gmane$org@jurong> References: <20180628170155.11a28321@mailbox.org> <20180721173203.GA10747@jurong> <20180721181358.GA892@jurong> <20180721183830.GP4585@macbook41> <20180721184822.GA12005@jurong> <20180721185225.GQ4585@macbook41> <20180721203448.GA6314@jurong> <20180721204211.GA29877@jurong> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="jRHKVT23PllUwdXP" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:48980) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fhB0A-0003nT-5z for bug-guix@gnu.org; Sun, 22 Jul 2018 05:50:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fhB06-0002d6-Hq for bug-guix@gnu.org; Sun, 22 Jul 2018 05:50:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:46533) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fhB06-0002cW-CB for bug-guix@gnu.org; Sun, 22 Jul 2018 05:50:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fhB05-0006bQ-Vr for bug-guix@gnu.org; Sun, 22 Jul 2018 05:50:02 -0400 Sender: "Debbugs-submit" Resent-Message-ID: Content-Disposition: inline In-Reply-To: <20180721204211.GA29877@jurong> List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: Efraim Flashner Cc: 24404@debbugs.gnu.org, "help-guix@gnu.org" --jRHKVT23PllUwdXP Content-Type: text/plain; charset=us-ascii Content-Disposition: inline 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 --jRHKVT23PllUwdXP Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="0001-gnu-qtwebkit-Update-to-5.212.0-alpha2.patch" >From 3fe25c8153e28823411d045251e7458c82e62421 Mon Sep 17 00:00:00 2001 From: Andreas Enge 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 --jRHKVT23PllUwdXP--