From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:44476) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ihg0G-000879-J1 for guix-patches@gnu.org; Wed, 18 Dec 2019 15:33:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ihg0E-0002ST-Vo for guix-patches@gnu.org; Wed, 18 Dec 2019 15:33:04 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:38013) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ihg0D-0002Qy-TW for guix-patches@gnu.org; Wed, 18 Dec 2019 15:33:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ihg0D-0001fJ-Od for guix-patches@gnu.org; Wed, 18 Dec 2019 15:33:01 -0500 Subject: [bug#35866] [PATCH] gnu: Add qtwebengine. References: <20190523062344.20601-1-mrosset@bufio.org> In-Reply-To: <20190523062344.20601-1-mrosset@bufio.org> Resent-Message-ID: From: Mike Rosset Date: Wed, 18 Dec 2019 12:32:23 -0800 Message-Id: <20191218203223.22861-1-mike.rosset@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 35866@debbugs.gnu.org Cc: mike.rosset@gmail.com * gnu/packages/qt.scm (qtwebengine): New variable. This is a new qtwebengine patch with working locales. qtwebengine now inherits qtsvg This also uses substitute-keyword-arguments to only replace configure phase. --- gnu/packages/qt.scm | 129 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index c0d652a407..12028fd64c 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -52,30 +52,40 @@ #:use-module (gnu packages flex) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gcc) + #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) #:use-module (gnu packages glib) + #:use-module (gnu packages gnupg) #:use-module (gnu packages gperf) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) + #:use-module (gnu packages libevent) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages maths) + #:use-module (gnu packages ninja) #:use-module (gnu packages nss) #:use-module (gnu packages pciutils) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages protobuf) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages regex) #:use-module (gnu packages ruby) #:use-module (gnu packages sdl) + #:use-module (gnu packages serialization) #:use-module (gnu packages sqlite) + #:use-module (gnu packages telephony) #:use-module (gnu packages tls) + #:use-module (gnu packages video) #:use-module (gnu packages vulkan) #:use-module (gnu packages xdisorg) + #:use-module (gnu packages xiph) #:use-module (gnu packages xorg) #:use-module (gnu packages xml) #:use-module (srfi srfi-1)) @@ -2020,6 +2030,125 @@ time Web content can be enhanced with native controls.") (license license:lgpl2.1+))) +(define-public qtwebengine + (package (inherit qtsvg) + (name "qtwebengine") + (version (package-version qtbase)) + (source + (origin + (method url-fetch) + (uri + (string-append "https://download.qt.io/official_releases/qt/" + (substring version 0 4) + "/" version "/submodules/" + (string-append name "-everywhere-src-" version) + ".tar.xz")) + (sha256 + (base32 + "08c60nh95m98mcqk444axs76xi6m9x0wvdxrzk9c2cxwqdbz59fa")))) + (build-system gnu-build-system) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex) + ("gperf" ,gperf) + ("ninja" ,ninja) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("python-2" ,python-2) + ("ruby" ,ruby) + )) + (inputs + `(("alsa-lib" ,alsa-lib) + ("atk" ,atk) + ("cups-minimal" ,cups-minimal) + ("dbus" ,dbus) + ("ffmpeg" ,ffmpeg) + ("fontconfig" ,fontconfig) + ("harbuzz" ,harfbuzz) + ("icu4c" ,icu4c) + ("jsoncpp" ,jsoncpp) + ("lcms" ,lcms) + ("libcap" ,libcap) + ("libevent" ,libevent) + ("libgcrypt" ,libgcrypt) + ("libjpeg" ,libjpeg-turbo) + ;; libsrtp not found by qmake. seems to not have config.tests? + ("libsrtp" ,libsrtp) + ;; FIXME: error: ?struct vpx_svc_ref_frame_config? has no member named ?frame_flags? + ;; ("libvpx" ,libvpx) + ("libwebp" ,libwebp) + ("libx11" ,libx11) + ("libxcb" ,libxcb) + ("libxcomposite" ,libxcomposite) + ("libxcursor" ,libxcursor) + ("libxi" ,libxi) + ("libxkbcommon" ,libxkbcommon) + ;; libxml not found due to icu not enabled in libxml? + ("libxml2" ,libxml2) + ("libxrandr" ,libxrandr) + ("libxrender" ,libxrender) + ("libxslt" ,libxslt) + ("libxtst" ,libxtst) + ("mesa" ,mesa) + ("minizip" ,minizip) + ("nss" ,nss) + ("opus" ,opus) + ("pciutils" ,pciutils) + ("protobuf" ,protobuf) + ;; ("pulseaudio" ,pulseaudio) + ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("qtmultimedia" ,qtmultimedia) + ("qtwebchannel" ,qtwebchannel) + ("re2" ,re2) + ("snappy" ,snappy) + ("udev" ,eudev) + ("xcb-util" ,xcb-util))) + (arguments + (substitute-keyword-arguments (package-arguments qtsvg) + ((#:phases phases) + `(modify-phases ,phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Avoids potential race conditions + (setenv "PYTHONDONTWRITEBYTECODE" "1") + ;; Make build output less verbose + (setenv "NINJAFLAGS" "-k1") + ;; Use this output translations not qtbase + (substitute* "src/core/web_engine_library_info.cpp" + (("QLibraryInfo::location\\(QLibraryInfo::TranslationsPath\\)") + (format #f "QLatin1String(\"~a\")" (string-append (assoc-ref outputs "out") "/share/qt5/translations"))) + (("QLibraryInfo::location\\(QLibraryInfo::DataPath\\)") + (format #f "QLatin1String(\"~a\")" (string-append (assoc-ref outputs "out") "/share/qt5")))) + ;; Substitute full dynamic path for nss + (substitute* "src/3rdparty/chromium/crypto/nss_util.cc" + (("libnssckbi.so") + (string-append (assoc-ref inputs "nss") "/lib/nss/libnssckbi.so"))) + ;; Substitute full dynamic path for udev + (substitute* "src/3rdparty/chromium/device/udev_linux/udev1_loader.cc" + (("libudev.so.1") + (string-append (assoc-ref inputs "udev") "/lib/libudev.so.1"))) + ;; Valid QT_BUILD_PARTS variables are: + ;; libs tools tests examples demos docs translations + (invoke "qmake" "QT_BUILD_PARTS = libs tools" "--" + "--webengine-printing-and-pdf=no" + "--webengine-ffmpeg=system" + "--webengine-icu=system" + "--webengine-pepper-plugins=no"))))) + ((#:tests? _ #f) #f))) + (native-search-paths + (list (search-path-specification + (file-type 'regular) + (separator #f) + (variable "QTWEBENGINEPROCESS_PATH") + (files '("lib/qt5/libexec/QtWebEngineProcess"))))) + (home-page "https://www.qt.io") + (synopsis "Qt WebEngine Module") + (description "Qt5WebEngine provides support for web +applications using the Chromium browser project.") + (license + (package-license qt)))) + (define-public dotherside (package (name "dotherside") -- 2.24.1