X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/c4d769d359c67680fe55c3b71e659cd31837f3ec..refs/heads/wip-bees:/gnu/packages/webkit.scm diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm index 808790e0a5..083c8ccb08 100644 --- a/gnu/packages/webkit.scm +++ b/gnu/packages/webkit.scm @@ -2,8 +2,8 @@ ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2015 David Hashe ;;; Copyright © 2015 Ricardo Wurmus -;;; Copyright © 2015, 2016, 2017, 2018, 2019 Mark H Weaver -;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Mark H Weaver +;;; Copyright © 2018–2021 Tobias Geerinckx-Rice ;;; Copyright © 2018 Pierre Neidhardt ;;; Copyright © 2019 Marius Bakke ;;; @@ -32,9 +32,11 @@ #:use-module (gnu packages) #:use-module (gnu packages base) #:use-module (gnu packages bison) + #:use-module (gnu packages compression) #:use-module (gnu packages docbook) #:use-module (gnu packages enchant) #:use-module (gnu packages flex) + #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gcc) #:use-module (gnu packages gettext) @@ -64,43 +66,42 @@ (define-public libwpe (package (name "libwpe") - (version "1.4.0") - (source (origin - (method url-fetch) - (uri (string-append "https://wpewebkit.org/releases/libwpe-" - version ".tar.xz")) - (sha256 - (base32 - "1221vs72zs87anrzhbm6pf8jnii7s6ms7mkzj6nlds9zqd7lklz2")))) + (version "1.6.0") + (source + (origin + (method url-fetch) + (uri + (string-append "https://wpewebkit.org/releases/libwpe-" + version ".tar.xz")) + (sha256 + (base32 "141w35b488jjhanl3nrm0awrbcy6hb579fk8n9vbpx07m2wcd1rm")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ;no tests (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ("python" ,python-wrapper))) (inputs `(("mesa" ,mesa))) (propagated-inputs - `(;; In Requires of wpe-1.0.pc. - ("libxkbcommon" ,libxkbcommon))) + `(("libxkbcommon" ,libxkbcommon))) + (synopsis "General-purpose library for WPE") + (description "LibWPE is general-purpose library specifically developed for +the WPE-flavored port of WebKit.") (home-page "https://wpewebkit.org/") - (synopsis "Platform agnostic WebKit interfaces") - (description - "@code{libwpe} is a small library that defines programming interfaces -for use by WebKit, and provides a mechanism for loading a platform-specific -backend which implements them.") (license license:bsd-2))) (define-public wpebackend-fdo (package (name "wpebackend-fdo") - (version "1.4.2") + (version "1.6.1") (source (origin (method url-fetch) (uri (string-append "https://wpewebkit.org/releases/" "wpebackend-fdo-" version ".tar.xz")) (sha256 (base32 - "07wd736d4nhd2vpxnjzv9pb8firvbn11jmdbnhpkhjxbxa1k86pw")))) + "1jdi43gciqjgvhnqxs160f3hmp1hkqhrllb0hhmldyxc4wryw3kl")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ;no tests @@ -118,17 +119,123 @@ backend which implements them.") engine that uses Wayland for graphics output.") (license license:bsd-2))) +(define-public wpewebkit + (package + (name "wpewebkit") + (version "2.30.5") + (source + (origin + (method url-fetch) + (uri + (string-append "https://wpewebkit.org/releases/" + name "-" version ".tar.xz")) + (sha256 + (base32 "16imr0kmzhs7dz6jva9750xbsdz9v50playnagabajy30x7pymsb")))) + (build-system cmake-build-system) + (outputs '("out" "doc")) + (arguments + `(#:tests? #f ; XXX: To be enabled + #:configure-flags + (list + "-DPORT=WPE" + ;; XXX: To be enabled. + ;; "-DENABLE_ACCELERATED_2D_CANVAS=ON" + "-DUSE_SYSTEMD=OFF" + "-DENABLE_ENCRYPTED_MEDIA=OFF" + "-DENABLE_GTKDOC=ON" + "-DUSE_GSTREAMER_GL=OFF") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'setenv + (lambda _ + (setenv "HOME" "/tmp") + #t)) + (add-after 'unpack 'patch-docbook-xml + (lambda* (#:key inputs #:allow-other-keys) + (for-each + (lambda (file) + (substitute* file + (("http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd") + (string-append (assoc-ref inputs "docbook-xml") + "/xml/dtd/docbook/docbookx.dtd")))) + (find-files "Source" "\\.sgml$")) + #t)) + (add-after 'install 'move-doc-files + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + (mkdir-p (string-append doc "/share")) + (rename-file + (string-append out "/share/gtk-doc") + (string-append doc "/share/gtk-doc")) + #t)))))) + (native-inputs + `(("docbook-xml" ,docbook-xml-4.1.2) + ("docbook-xsl" ,docbook-xsl) + ("glib:bin" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) + ("gtk-doc" ,gtk-doc/stable) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("python" ,python-wrapper) + ("python2" ,python-2.7) + ("ruby" ,ruby))) + (inputs + `(("atk" ,atk) + ("atk-bridge" ,at-spi2-atk) + ("bubblewrap" ,bubblewrap) + ("cairo" ,cairo) + ("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("gperf" ,gperf) + ("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base) + ("harfbuzz" ,harfbuzz) + ("icu" ,icu4c) + ("libepoxy" ,libepoxy) + ("libgcrypt" ,libgcrypt) + ("libjpeg" ,libjpeg-turbo) + ("libpng" ,libpng) + ("libseccomp" ,libseccomp) + ("libtasn1" ,libtasn1) + ("libxml2" ,libxml2) + ("libxslt" ,libxslt) + ("mesa" ,mesa) + ("openjpeg" ,openjpeg) + ("sqlite" ,sqlite) + ("webp" ,libwebp) + ("woff2" ,woff2) + ("xdg-dbus-proxy" ,xdg-dbus-proxy) + ("zlib" ,zlib))) + (propagated-inputs + `(("glib" ,glib) + ("libsoup" ,libsoup) + ("wpe" ,libwpe))) + (synopsis "WebKit port optimized for embedded devices") + (description "WPE WebKit allows embedders to create simple and performant +systems based on Web platform technologies. It is designed with hardware +acceleration in mind, leveraging common 3D graphics APIs for best performance.") + (home-page "https://wpewebkit.org/") + (license + (list + ;; Rendering and JavaScript Engines. + license:lgpl2.1+ + ;; Others + license:bsd-2)))) + (define-public webkitgtk (package (name "webkitgtk") - (version "2.28.0") + (version "2.32.0") (source (origin (method url-fetch) (uri (string-append "https://www.webkitgtk.org/releases/" "webkitgtk-" version ".tar.xz")) (sha256 (base32 - "12qfs9w93c5kiyi14ynm4rf4ad3c213dvzmdrc9c3ab2iwbks7rn")))) + "1w3b0w8izp0i070grhv19j631sdcd0mcqnjnax13k8mdx7dg8zcx")) + (patches (search-patches "webkitgtk-share-store.patch" + "webkitgtk-bind-all-fonts.patch")))) (build-system cmake-build-system) (outputs '("out" "doc")) (arguments @@ -137,6 +244,10 @@ engine that uses Wayland for graphics output.") #:configure-flags (list "-DPORT=GTK" "-DENABLE_GTKDOC=ON" ; No doc by default + ;; Requires libmanette, new dependency added in 2.32.0. + ;; TODO Decide if we should enable this + "-DENABLE_GAMEPAD=OFF" + "-DUSE_SYSTEMD=OFF" (string-append ; uses lib64 by default "-DLIB_INSTALL_DIR=" (assoc-ref %outputs "out") "/lib") @@ -148,14 +259,18 @@ engine that uses Wayland for graphics output.") ;; included. More investigation is needed. For ;; now, we explicitly disable it to prevent an error ;; at configuration time. - "-DUSE_GSTREAMER_GL=OFF" - - ;; XXX Disable WOFF2 ‘web fonts’. These were never - ;; supported in our previous builds. Enabling them - ;; requires building libwoff2 and possibly woff2dec. - "-DUSE_WOFF2=OFF") + "-DUSE_GSTREAMER_GL=OFF") #:phases (modify-phases %standard-phases + (add-after 'unpack 'configure-bubblewrap-store-directory + (lambda _ + ;; This phase is a corollary to 'webkitgtk-share-store.patch' to + ;; avoid hard coding /gnu/store, for users with other prefixes. + (let ((store-directory (%store-directory))) + (substitute* + "Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp" + (("@storedir@") store-directory)) + #t))) (add-after 'unpack 'patch-gtk-doc-scan (lambda* (#:key inputs #:allow-other-keys) (for-each (lambda (file) @@ -189,7 +304,7 @@ engine that uses Wayland for graphics output.") ("perl" ,perl) ("pkg-config" ,pkg-config) ("python" ,python-wrapper) - ("gtk-doc" ,gtk-doc) ; For documentation generation + ("gtk-doc" ,gtk-doc/stable) ; For documentation generation ("docbook-xml" ,docbook-xml) ; For documentation generation ("ruby" ,ruby))) (propagated-inputs @@ -221,6 +336,7 @@ engine that uses Wayland for graphics output.") ("mesa" ,mesa) ("openjpeg" ,openjpeg) ("sqlite" ,sqlite) + ("woff2" ,woff2) ("wpebackend-fdo" ,wpebackend-fdo) ("xdg-dbus-proxy" ,xdg-dbus-proxy))) (home-page "https://www.webkitgtk.org/")