From patchwork Sat Nov 5 20:24:54 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Thomas Danckaert X-Patchwork-Id: 17228 Received: (qmail 56758 invoked by uid 89); 5 Nov 2016 20:26:22 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.99.2 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-4.1 required=5.0 tests=AWL, BAYES_00, RP_MATCHES_RCVD, SPF_PASS autolearn=ham version=3.3.2 spammy=D*be, H*c:Multipart, rebuilt, federico X-Spam-Status: No, score=-4.1 required=5.0 tests=AWL, BAYES_00, RP_MATCHES_RCVD, SPF_PASS autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: X-HELO: lists.gnu.org Received: from lists.gnu.org (HELO lists.gnu.org) (208.118.235.17) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 05 Nov 2016 20:26:11 +0000 Received: from localhost ([::1]:57000 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c37XV-0003Es-Vf for patchwork@sourceware.org; Sat, 05 Nov 2016 16:26:09 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57229) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c37Wf-0002pD-H9 for guix-devel@gnu.org; Sat, 05 Nov 2016 16:25:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c37Wb-0007Xp-Sr for guix-devel@gnu.org; Sat, 05 Nov 2016 16:25:17 -0400 Received: from s02-out.spamexperts.axc.nl ([159.253.1.2]:54642 helo=s02.spamexperts.axc.nl) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1c37Wb-0007Lz-K5 for guix-devel@gnu.org; Sat, 05 Nov 2016 16:25:13 -0400 Received: from vserver42.axc.nl ([159.253.0.80]) by s02.spamexperts.axc.nl with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.86) (envelope-from ) id 1c37WS-00036v-6d; Sat, 05 Nov 2016 21:25:06 +0100 Received: from mail.axc.nl ([159.253.0.157]:60108) by vserver42.axc.nl with esmtp (Exim 4.87) (envelope-from ) id 1c37WP-0000mu-EV; Sat, 05 Nov 2016 21:25:02 +0100 Date: Sat, 05 Nov 2016 21:24:54 +0100 (CET) Message-Id: <20161105.212454.307496631396320122.post@thomasdanckaert.be> To: leo@famulari.name Subject: Re: [PATCH] gnu: Add qtwebkit. From: Thomas Danckaert In-Reply-To: <20161105184538.GB11070@jasmine> References: <20161030002214.GA18050@jasmine> <20161102.140509.1673098785705461056.post@thomasdanckaert.be> <20161105184538.GB11070@jasmine> X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 PrimaryMX: Accepted email from trusted host. Hint: This skips spam scanning so make sure other host is not vulnerable X-Relay-Host: 159.253.0.157 SpamTally: Final spam score: 0 X-Filter-ID: s0sct1PQhAABKnZB5plbIaExX4b9HB97Y0LqBeziPXa8B5kabb+8+DRlCqSxA333XewBu5TuhjJr gH3eyFBy7qCo+ub4/Pav5/8A2Xz+6Z8s9SMRpc/u9EmxBYXpmku32PmBs4oXJtK6O5+rEtj1MLkK etBbXb6BcGjdupnRHzJrQHM9hCZSAINwk5sh6ITaalnqryCjdQvS6nIii/ZRGNexIQgu7Hea74SE 1jHl/BY/zZYp7A17IcRZjfLDnxhHkXjgCzoHHGu8PBGBDc1uD9ezYqxGMqsKjARq8PBC4qi6Kaqx u4OXf0187LRXz09F8G+J5rSCUA8Fpwxue5lU836m+UeFXprlCOm3BAEbJtA08IdhVgW1e+O8e/JQ QxDsuVLNvXyvZlaz8d5k782rVIt5fFfk2VbyzeRjivpQx2VM8lxtOJ4U6XFEeBV5MfpYRVBRGk3A EYn48xy5ViyWHAFe0PXT7f5oDqbfJDbcgRz4P5EPUJxxUaJiEJpOBLF9TKo0Phw2v9gxpgezIOrY iut8SZIre3lcCVPTX3lhtH7X2nXJw5QJZLbxhiCXWZgnNOJ6cVpatj9Fo+CylgZO8xJ49d0XeQ/U dr9UbbclqqgDuaslwcVXIK5YZ8pDC5w8IU5B4i8ou+G8oFlJZc+ukxgD/FVEY7v4laIdTJ8d+KAk 2fjW/YqTRhg0JlFifvoqMS+4ayUpOtEhdxekWDmK9g== X-Report-Abuse-To: spam@s01.spamexperts.axc.nl X-Originating-IP: 159.253.0.80 X-SpamExperts-Domain: vserver42.axc.nl X-SpamExperts-Username: 159.253.0.80 Authentication-Results: spamexperts.axc.nl; auth=pass smtp.auth=159.253.0.80@vserver42.axc.nl X-SpamExperts-Outgoing-Class: ham X-SpamExperts-Outgoing-Evidence: Combined (0.05) X-Recommended-Action: accept X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 159.253.1.2 X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: guix-devel@gnu.org Errors-To: guix-devel-bounces+patchwork=sourceware.org@gnu.org Sender: "Guix-devel" From: Leo Famulari Subject: Re: [PATCH] gnu: Add qtwebkit. Date: Sat, 5 Nov 2016 14:45:38 -0400 > Can you add a code comment mentioning that this package is not > officially supported by the Qt project? done! I've attached an updated patch, as well as a follow-up patch for the texmaker package. cheers, Thomas From 0348e13d0aaae4034e8a76f47512e64432b1f84f Mon Sep 17 00:00:00 2001 From: Thomas Danckaert Date: Wed, 26 Oct 2016 11:11:01 +0200 Subject: [PATCH 1/2] gnu: Add qtwebkit. * gnu/packages/qt.scm (qtwebkit): New variable. --- gnu/packages/qt.scm | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index a1e5fde..cf6af6a 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Ludovic Courtès ;;; Copyright © 2015, 2016 Efraim Flashner ;;; Copyright © 2016 ng0 +;;; Copyright © 2016 Thomas Danckaert ;;; ;;; This file is part of GNU Guix. ;;; @@ -1112,3 +1113,116 @@ contain over 620 classes.") "QtKeychain is a Qt library to store passwords and other secret data securely. It will not store any data unencrypted unless explicitly requested.") (license license:bsd-3))) + +(define-public qtwebkit + (package + (name "qtwebkit") + (version "5.7.0") + (source + (origin + (method url-fetch) + (uri (string-append "http://download.qt.io/community_releases/" + (version-major+minor version) + "/" version "/qtwebkit-opensource-src-" version + ".tar.xz")) + ;; note: since Qt 5.6, Qt no longer officially supports qtwebkit + (sha256 + (base32 + "1prlpl3zslzpr1iv7m3irvxjxn3v8nlxh21v9k2kaq4fpwy2b8y7")))) + (build-system gnu-build-system) + (native-inputs + `(("perl" ,perl) + ("python" ,python-2.7) + ("ruby" ,ruby) + ("bison" ,bison) + ("flex" ,flex) + ("gperf" ,gperf) + ("pkg-config" ,pkg-config))) + (inputs + `(("icu" ,icu4c) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("libwebp" ,libwebp) + ("sqlite" ,sqlite) + ("fontconfig" ,fontconfig) + ("libxrender", libxrender) + ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("qtmultimedia" ,qtmultimedia) + ("libxml2" ,libxml2) + ("libxslt" ,libxslt) + ("libx11" ,libx11) + ("libxcomposite" ,libxcomposite))) + (arguments + `(#:phases + (modify-phases %standard-phases + (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))))))))) + (home-page "https://www.webkit.org") + (synopsis "Web browser engine and classes to render and interact with web +content") + (description "QtWebKit provides a Web browser engine that makes it easy to +embed content from the World Wide Web into your Qt application. At the same +time Web content can be enhanced with native controls.") + + (license license:lgpl2.1+))) -- 2.7.4