Archived
1
0
Fork 0

gnu: qtwebengine-5: Update to 5.15.8.

Fixes <https://issues.guix.gnu.org/52672>.

* gnu/packages/qt.scm (qtwebengine-5): Update to 5.15.8.
[source]: Fix indentation.
[arguments]: Use gexps.
This commit is contained in:
Maxim Cournoyer 2023-03-27 16:09:55 -04:00
parent d1bafb1086
commit 0f47e71840
No known key found for this signature in database
GPG key ID: 1260E46482E63562

View file

@ -2430,14 +2430,14 @@ using the Enchant spell-checking library.")
(package (package
(inherit qtsvg-5) (inherit qtsvg-5)
(name "qtwebengine") (name "qtwebengine")
(version "5.15.5") (version "5.15.8")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (qt-urls name version)) (uri (qt-urls name version))
(sha256 (sha256
(base32 (base32
"0zahr9w6rqdxwh2whsgk3fhcszs7wa9j95lq4sqi8xzin2wcgl17")) "1qv15g5anhlfsdwnjxy21vc3zxxm8149vysi774l93iab6mxqmjg"))
(modules '((ice-9 ftw) (modules '((ice-9 ftw)
(ice-9 match) (ice-9 match)
(srfi srfi-1) (srfi srfi-1)
@ -2445,180 +2445,181 @@ using the Enchant spell-checking library.")
(guix build utils))) (guix build utils)))
(snippet (snippet
#~(begin #~(begin
(let ((preserved-third-party-files (let ((preserved-third-party-files
'("base/third_party/double_conversion" '("base/third_party/double_conversion"
"base/third_party/cityhash" "base/third_party/cityhash"
"base/third_party/cityhash_v103" "base/third_party/cityhash_v103"
"base/third_party/dynamic_annotations" "base/third_party/dynamic_annotations"
"base/third_party/icu" "base/third_party/icu"
"base/third_party/libevent" "base/third_party/libevent"
"base/third_party/nspr" "base/third_party/nspr"
"base/third_party/superfasthash" "base/third_party/superfasthash"
"base/third_party/symbolize" "base/third_party/symbolize"
"base/third_party/xdg_mime" "base/third_party/xdg_mime"
"base/third_party/xdg_user_dirs" "base/third_party/xdg_user_dirs"
"net/third_party/mozilla_security_manager" "net/third_party/mozilla_security_manager"
"net/third_party/nss" "net/third_party/nss"
"net/third_party/quiche" "net/third_party/quiche"
"net/third_party/uri_template" "net/third_party/uri_template"
"third_party/abseil-cpp" "third_party/abseil-cpp"
"third_party/angle" "third_party/angle"
"third_party/angle/src/common/third_party/base" "third_party/angle/src/common/third_party/base"
"third_party/angle/src/common/third_party/smhasher" "third_party/angle/src/common/third_party/smhasher"
"third_party/angle/src/common/third_party/xxhash" "third_party/angle/src/common/third_party/xxhash"
"third_party/angle/src/third_party/compiler" "third_party/angle/src/third_party/compiler"
"third_party/axe-core" "third_party/axe-core"
"third_party/blink" "third_party/blink"
"third_party/boringssl" "third_party/boringssl"
"third_party/boringssl/src/third_party/fiat" "third_party/boringssl/src/third_party/fiat"
"third_party/breakpad" "third_party/breakpad"
"third_party/brotli" "third_party/brotli"
"third_party/catapult/common/py_vulcanize/py_vulcanize" "third_party/catapult/common/py_vulcanize/py_vulcanize"
"third_party/catapult/common/py_vulcanize/third_party" "third_party/catapult/common/py_vulcanize/third_party"
"third_party/catapult/third_party/beautifulsoup4" "third_party/catapult/third_party/beautifulsoup4"
"third_party/catapult/third_party/html5lib-python" "third_party/catapult/third_party/html5lib-python"
"third_party/catapult/third_party/polymer/components" "third_party/catapult/third_party/polymer/components"
"third_party/catapult/tracing" "third_party/catapult/tracing"
"third_party/catapult/tracing/third_party" "third_party/catapult/tracing/third_party"
"third_party/ced" "third_party/ced"
"third_party/cld_3" "third_party/cld_3"
"third_party/closure_compiler" "third_party/closure_compiler"
"third_party/crashpad" "third_party/crashpad"
"third_party/crashpad/crashpad/third_party/lss" "third_party/crashpad/crashpad/third_party/lss"
"third_party/crashpad/crashpad/third_party/zlib" "third_party/crashpad/crashpad/third_party/zlib"
"third_party/crc32c" "third_party/crc32c"
"third_party/dav1d" "third_party/dav1d"
"third_party/dawn" "third_party/dawn"
"third_party/devtools-frontend" "third_party/devtools-frontend"
"third_party/devtools-frontend/src/front_end/third_party" "third_party/devtools-frontend/src/front_end/third_party"
"third_party/devtools-frontend/src/third_party/typescript" "third_party/devtools-frontend/src/third_party/typescript"
"third_party/emoji-segmenter" "third_party/emoji-segmenter"
"third_party/ffmpeg" "third_party/ffmpeg"
"third_party/googletest" "third_party/googletest"
"third_party/harfbuzz-ng/utils" "third_party/harfbuzz-ng/utils"
"third_party/hunspell" "third_party/hunspell"
"third_party/iccjpeg" "third_party/iccjpeg"
"third_party/icu" "third_party/icu"
"third_party/inspector_protocol" "third_party/inspector_protocol"
"third_party/jinja2" "third_party/jinja2"
"third_party/jsoncpp" "third_party/jsoncpp"
"third_party/jstemplate" "third_party/jstemplate"
"third_party/khronos" "third_party/khronos"
"third_party/leveldatabase" "third_party/leveldatabase"
"third_party/libaddressinput" "third_party/libaddressinput"
"third_party/libavif" "third_party/libavif"
"third_party/libgifcodec" "third_party/libgifcodec"
"third_party/libjingle_xmpp" "third_party/libjingle_xmpp"
"third_party/libjpeg_turbo" "third_party/libjpeg_turbo"
"third_party/libpng" "third_party/libpng"
"third_party/libsrtp" "third_party/libsrtp"
"third_party/libsync" "third_party/libsync"
"third_party/libudev" "third_party/libudev"
"third_party/libvpx" "third_party/libvpx"
"third_party/libwebm" "third_party/libwebm"
"third_party/libwebp" "third_party/libwebp"
"third_party/libxml" "third_party/libxml"
"third_party/libxslt" "third_party/libxslt"
"third_party/libyuv" "third_party/libyuv"
"third_party/lottie" "third_party/lottie"
"third_party/lss" "third_party/lss"
"third_party/mako" "third_party/mako"
"third_party/markupsafe" "third_party/markupsafe"
"third_party/mesa_headers" "third_party/mesa_headers"
"third_party/metrics_proto" "third_party/metrics_proto"
"third_party/modp_b64" "third_party/modp_b64"
"third_party/nasm" "third_party/nasm"
"third_party/node" "third_party/node"
"third_party/one_euro_filter" "third_party/one_euro_filter"
"third_party/openh264/src/codec/api/svc" "third_party/openh264/src/codec/api/svc"
"third_party/opus" "third_party/opus"
"third_party/ots" "third_party/ots"
"third_party/pdfium" "third_party/pdfium"
"third_party/pdfium/third_party/agg23" "third_party/pdfium/third_party/agg23"
"third_party/pdfium/third_party/base" "third_party/pdfium/third_party/base"
"third_party/pdfium/third_party/freetype" "third_party/pdfium/third_party/freetype"
"third_party/pdfium/third_party/lcms" "third_party/pdfium/third_party/lcms"
"third_party/pdfium/third_party/libopenjpeg20" "third_party/pdfium/third_party/libopenjpeg20"
"third_party/pdfium/third_party/skia_shared" "third_party/pdfium/third_party/skia_shared"
"third_party/perfetto" "third_party/perfetto"
"third_party/pffft" "third_party/pffft"
"third_party/ply" "third_party/ply"
"third_party/polymer" "third_party/polymer"
"third_party/protobuf" "third_party/protobuf"
"third_party/protobuf/third_party/six" "third_party/protobuf/third_party/six"
"third_party/pyjson5" "third_party/pyjson5"
"third_party/re2" "third_party/re2"
"third_party/rnnoise" "third_party/rnnoise"
"third_party/skia" "third_party/skia"
"third_party/skia/include/third_party/skcms/skcms.h" "third_party/skia/include/third_party/skcms/skcms.h"
"third_party/skia/include/third_party/vulkan" "third_party/skia/include/third_party/vulkan"
"third_party/skia/third_party/skcms" "third_party/skia/third_party/skcms"
"third_party/smhasher" "third_party/smhasher"
"third_party/snappy" "third_party/snappy"
"third_party/sqlite" "third_party/sqlite"
"third_party/usb_ids" "third_party/usb_ids"
"third_party/usrsctp" "third_party/usrsctp"
"third_party/vulkan_memory_allocator" "third_party/vulkan_memory_allocator"
"third_party/web-animations-js" "third_party/web-animations-js"
"third_party/webrtc" "third_party/webrtc"
"third_party/webrtc/common_audio/third_party/ooura/fft_size_128" "third_party/webrtc/common_audio/third_party/ooura/fft_size_128"
"third_party/webrtc/common_audio/third_party/ooura/fft_size_256" "third_party/webrtc/common_audio/third_party/ooura/fft_size_256"
"third_party/webrtc/common_audio/third_party/spl_sqrt_floor" "third_party/webrtc/common_audio/third_party/spl_sqrt_floor"
"third_party/webrtc/modules/third_party/fft" "third_party/webrtc/modules/third_party/fft"
"third_party/webrtc/modules/third_party/g711" "third_party/webrtc/modules/third_party/g711"
"third_party/webrtc/modules/third_party/g722" "third_party/webrtc/modules/third_party/g722"
"third_party/webrtc/rtc_base/third_party/base64" "third_party/webrtc/rtc_base/third_party/base64"
"third_party/webrtc/rtc_base/third_party/sigslot" "third_party/webrtc/rtc_base/third_party/sigslot"
"third_party/webrtc_overrides" "third_party/webrtc_overrides"
"third_party/widevine/cdm/widevine_cdm_common.h" "third_party/widevine/cdm/widevine_cdm_common.h"
"third_party/widevine/cdm/widevine_cdm_version.h" "third_party/widevine/cdm/widevine_cdm_version.h"
"third_party/woff2" "third_party/woff2"
"third_party/xcbproto" "third_party/xcbproto"
"third_party/zlib" "third_party/zlib"
"url/third_party/mozilla" "url/third_party/mozilla"
"v8/src/third_party/utf8-decoder" "v8/src/third_party/utf8-decoder"
"v8/src/third_party/valgrind" "v8/src/third_party/valgrind"
"v8/src/third_party/siphash" "v8/src/third_party/siphash"
"v8/third_party/v8/builtins" "v8/third_party/v8/builtins"
"v8/third_party/inspector_protocol"))) "v8/third_party/inspector_protocol")))
(with-directory-excursion "src/3rdparty" (with-directory-excursion "src/3rdparty"
;; TODO: Try removing "gn" too for future versions of qtwebengine-5. ;; TODO: Try removing "gn" too for future versions of qtwebengine-5.
(delete-file-recursively "ninja") (delete-file-recursively "ninja")
(with-directory-excursion "chromium" (with-directory-excursion "chromium"
;; Delete bundled software and binaries that were not explicitly ;; Delete bundled software and binaries that were not explicitly
;; preserved above. ;; preserved above.
#$remove-third-party-files #$remove-third-party-files
;; Use relative header locations instead of hard coded ones. ;; Use relative header locations instead of hard coded ones.
(substitute* (substitute*
"base/third_party/dynamic_annotations/dynamic_annotations.c" "base/third_party/dynamic_annotations/dynamic_annotations.c"
(("base/third_party/valgrind") "valgrind")) (("base/third_party/valgrind") "valgrind"))
(substitute* (substitute* '("third_party/breakpad/breakpad/src/common\
'("third_party/breakpad/breakpad/src/common/linux/http_upload.cc" /linux/http_upload.cc"
"third_party/breakpad/breakpad/src/common/linux/libcurl_wrapper.h") "third_party/breakpad/breakpad/src/common/\
(("third_party/curl") "curl")) linux/libcurl_wrapper.h")
(substitute* (("third_party/curl") "curl"))
'("components/viz/common/gpu/vulkan_context_provider.h" (substitute*
"components/viz/common/resources/resource_format_utils.h" '("components/viz/common/gpu/vulkan_context_provider.h"
"gpu/config/gpu_info_collector_win.cc" "components/viz/common/resources/resource_format_utils.h"
"gpu/config/gpu_util.cc" "gpu/config/gpu_info_collector_win.cc"
"gpu/config/vulkan_info.h") "gpu/config/gpu_util.cc"
(("third_party/vulkan_headers/include/") "gpu/config/vulkan_info.h")
"")) (("third_party/vulkan_headers/include/")
""))
;; Replace Google Analytics bundle with an empty file and hope ;; Replace Google Analytics bundle with an empty file and hope
;; no one notices. ;; no one notices.
(mkdir-p "third_party/analytics") (mkdir-p "third_party/analytics")
(call-with-output-file (call-with-output-file
"third_party/analytics/google-analytics-bundle.js" "third_party/analytics/google-analytics-bundle.js"
(lambda (port) (lambda (port)
(const #t))))) (const #t)))))
;; Do not enable support for loading the Widevine DRM plugin. ;; Do not enable support for loading the Widevine DRM plugin.
(substitute* "src/buildtools/config/common.pri" (substitute* "src/buildtools/config/common.pri"
(("enable_widevine=true") (("enable_widevine=true")
"enable_widevine=false"))))))) "enable_widevine=false")))))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list bison (list bison
@ -2689,53 +2690,54 @@ using the Enchant spell-checking library.")
(guix build utils) (guix build utils)
(ice-9 textual-ports))) (ice-9 textual-ports)))
((#:phases phases) ((#:phases phases)
`(modify-phases ,phases #~(modify-phases #$phases
(add-before 'configure 'substitute-source (add-before 'configure 'substitute-source
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (with-atomic-file-replacement
(with-atomic-file-replacement "src/buildtools/config/linux.pri"
"src/buildtools/config/linux.pri" (lambda (in out)
(lambda (in out) (display (get-string-all in) out)
(display (get-string-all in) out) (display "\ngn_args += use_system_openh264=true\n" out)
(display "\ngn_args += use_system_openh264=true\n" out) (display "\ngn_args += link_pulseaudio = true\n" out)))
(display "\ngn_args += link_pulseaudio = true\n" out))) ;; Qtwebengine is not installed into the same prefix as
;; Qtwebengine is not installed into the same prefix as ;; qtbase. Some qtbase QTLibraryInfo constants will not
;; qtbase. Some qtbase QTLibraryInfo constants will not ;; work. Replace with the full path to the qtwebengine-5
;; work. Replace with the full path to the qtwebengine-5 ;; translations and locales in the store.
;; translations and locales in the store. (substitute* "src/core/web_engine_library_info.cpp"
(substitute* "src/core/web_engine_library_info.cpp" (("QLibraryInfo::location\\(QLibraryInfo::TranslationsPath\\)")
(("QLibraryInfo::location\\(QLibraryInfo::TranslationsPath\\)") (string-append "QLatin1String(\"" #$output
(string-append "QLatin1String(\"" out "/share/qt5/translations\")")) "/share/qt5/translations\")"))
(("QLibraryInfo::location\\(QLibraryInfo::DataPath\\)") (("QLibraryInfo::location\\(QLibraryInfo::DataPath\\)")
(string-append "QLatin1String(\"" out "/share/qt5\")"))) (string-append "QLatin1String(\"" #$output
;; Substitute full dynamic library path for nss. "/share/qt5\")")))
(substitute* "src/3rdparty/chromium/crypto/nss_util.cc" ;; Substitute full dynamic library path for nss.
(("libnssckbi.so") (substitute* "src/3rdparty/chromium/crypto/nss_util.cc"
(search-input-file inputs "lib/nss/libnssckbi.so"))) (("libnssckbi.so")
;; Substitute full dynamic library path for udev. (search-input-file inputs "lib/nss/libnssckbi.so")))
(substitute* "src/3rdparty/chromium/device/udev_linux/udev1_loader.cc" ;; Substitute full dynamic library path for udev.
(("libudev.so.1") (substitute* "src/3rdparty/chromium/device/udev_linux/udev1_loader.cc"
(search-input-file inputs "lib/libudev.so.1")))))) (("libudev.so.1")
(add-before 'configure 'set-env (search-input-file inputs "lib/libudev.so.1")))))
(lambda _ (add-before 'configure 'set-env
;; Avoids potential race conditions. (lambda _
(setenv "PYTHONDONTWRITEBYTECODE" "1") ;; Avoids potential race conditions.
(setenv "NINJAFLAGS" (setenv "PYTHONDONTWRITEBYTECODE" "1")
(string-append "-k1" ;less verbose build output (setenv "NINJAFLAGS"
;; Respect the '--cores' option of 'guix build'. (string-append "-k1" ;less verbose build output
" -j" (number->string (parallel-job-count)))))) ;; Respect the '--cores' option of 'guix build'.
(replace 'configure " -j" (number->string (parallel-job-count))))))
(lambda _ (replace 'configure
;; Valid QT_BUILD_PARTS variables are: (lambda _
;; libs tools tests examples demos docs translations ;; Valid QT_BUILD_PARTS variables are:
(invoke "qmake" "QT_BUILD_PARTS = libs tools" "--" ;; libs tools tests examples demos docs translations
"--webengine-printing-and-pdf=no" (invoke "qmake" "QT_BUILD_PARTS = libs tools" "--"
"--webengine-ffmpeg=system" "--webengine-printing-and-pdf=no"
"--webengine-ffmpeg=system"
;; FIXME: Building qtwebengine-5 5.12.2 with ;; FIXME: Building qtwebengine-5 5.12.2 with
;; icu4c >= 68 fails. ;; icu4c >= 68 fails.
;;"--webengine-icu=system" ;;"--webengine-icu=system"
"--webengine-pepper-plugins=no" "--webengine-pepper-plugins=no"
"-webengine-proprietary-codecs"))))) "-webengine-proprietary-codecs")))))
;; Tests are disabled due to "Could not find QtWebEngineProcess error" ;; Tests are disabled due to "Could not find QtWebEngineProcess error"
;; It's possible this can be fixed by setting QTWEBENGINEPROCESS_PATH ;; It's possible this can be fixed by setting QTWEBENGINEPROCESS_PATH
;; before running tests. ;; before running tests.