diff --git a/extra/qt5-webengine/PKGBUILD b/extra/qt5-webengine/PKGBUILD index 51db812b7..38225e796 100644 --- a/extra/qt5-webengine/PKGBUILD +++ b/extra/qt5-webengine/PKGBUILD @@ -11,14 +11,15 @@ highmem=1 pkgname=qt5-webengine _qtver=5.15.0 pkgver=${_qtver/-/} -pkgrel=4 +pkgrel=5 arch=('x86_64') url='https://www.qt.io' license=('LGPL3' 'LGPL2.1' 'BSD') pkgdesc='Provides support for web applications using the Chromium browser project' depends=('qt5-webchannel' 'qt5-location' 'libxcomposite' 'libxrandr' 'pciutils' 'libxss' 'libevent' 'snappy' 'nss' 'libxslt' 'minizip' 'ffmpeg' 're2' 'libvpx' 'krb5' 'ttf-font') -makedepends=('python2' 'gperf' 'jsoncpp' 'ninja' 'qt5-tools' 'poppler') +makedepends=('python2' 'gperf' 'jsoncpp' 'ninja' 'qt5-tools' 'poppler' 'libpipewire02') +optdepends=('libpipewire02: WebRTC desktop sharing under Wayland') groups=('qt' 'qt5') _pkgfqn="${pkgname/5-/}-everywhere-src-${_qtver}" source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz" @@ -30,6 +31,7 @@ source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/subm qtbug-85118.patch::"https://code.qt.io/cgit/qt/qtwebengine.git/patch/?id=e42ccdad" qtbug-62957.patch::"https://code.qt.io/cgit/qt/qtwebengine.git/patch/?id=f341988f" qtbug-62957-pre.patch::"https://code.qt.io/cgit/qt/qtwebengine.git/patch?id=75412200" + qt5-webengine-pipewire.patch 0001-ARM-toolchain-fixes.patch 0002-Fix-ARM-skia-ICE.patch) sha256sums=('c38e2fda7ed1b7d5a90f26abf231ec0715d78a5bc39a94673d8e39d75f04c5df' @@ -41,6 +43,7 @@ sha256sums=('c38e2fda7ed1b7d5a90f26abf231ec0715d78a5bc39a94673d8e39d75f04c5df' 'fc976a6a7198121a4c1b6026318098de278412d73634db31b1815a3cc7502657' '1a07ab59daa9552ad1a70abd03b00d40e542d9dd64fa6d7404d31c9a51e5eeba' 'd47ec2111c9713312158f800c01ca9358400b4e11273e470d57a53c36b7565c0' + '34cd6fdcdf7d20f9a32d4ad066535edad61735a83a895e9503edab247fee5542' '6cd3f4877e239c83df5ede59c74db2b2e84b4adce66ef83d30b3b4a3f04677e8' 'f389de929c6d27217a1c7e3e7118b06e4d15e17123c96ace2c7a791ecad6bcc7') @@ -57,6 +60,7 @@ prepare() { patch -p1 -i ../qtbug-85118.patch # Fix recentlyAudible signal patch -p1 -i ../qtbug-62957-pre.patch # Avoid the network context reset during http cache clear patch -p1 -i ../qtbug-62957.patch # Return valid path in Profile::GetPath() for incognito profiles + patch -p1 -i ../qt5-webengine-pipewire.patch # Add screen sharing support on wayland via pipewire cd "$srcdir/$_pkgfqn/src/3rdparty" patch -p1 -i ${srcdir}/0001-ARM-toolchain-fixes.patch @@ -71,7 +75,8 @@ build() { -webp \ -spellchecker \ -webengine-icu \ - -webengine-kerberos + -webengine-kerberos \ + -webengine-webrtc-pipewire make } diff --git a/extra/qt5-webengine/qt5-webengine-pipewire.patch b/extra/qt5-webengine/qt5-webengine-pipewire.patch new file mode 100644 index 000000000..5af522dcf --- /dev/null +++ b/extra/qt5-webengine/qt5-webengine-pipewire.patch @@ -0,0 +1,76 @@ +From e5b5fcb1a2c186f14ae35f4c48f593e6fa75dd87 Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen +Date: Mon, 29 Jun 2020 17:04:53 +0200 +Subject: Add pipewire detection and support + +Used for screensharing on wayland + +Fixes: QTBUG-85309 +Change-Id: I7ec61611bb9e3f318a6a5bd3a43212f391766628 +Reviewed-by: Kirill Burtsev +--- + src/buildtools/config/linux.pri | 2 ++ + src/core/configure.json | 15 +++++++++++++++ + 2 files changed, 17 insertions(+) + +diff --git a/src/buildtools/config/linux.pri b/src/buildtools/config/linux.pri +index e98524002..26d0dcf7d 100644 +--- a/src/buildtools/config/linux.pri ++++ b/src/buildtools/config/linux.pri +@@ -29,6 +29,8 @@ qtConfig(webengine-embedded-build) { + qtConfig(webengine-webrtc): gn_args += rtc_use_x11=true + } + ++ qtConfig(webengine-webrtc): qtConfig(webengine-webrtc-pipewire): gn_args += rtc_use_pipewire=true ++ + qtConfig(webengine-system-libevent): gn_args += use_system_libevent=true + qtConfig(webengine-system-libwebp): gn_args += use_system_libwebp=true + qtConfig(webengine-system-libxml2): gn_args += use_system_libxml=true use_system_libxslt=true +diff --git a/src/core/configure.json b/src/core/configure.json +index 1a2162723..7ba4a94c7 100644 +--- a/src/core/configure.json ++++ b/src/core/configure.json +@@ -25,6 +25,7 @@ + "webengine-native-spellchecker": "boolean", + "webengine-extensions": "boolean", + "webengine-webrtc": "boolean", ++ "webengine-webrtc-pipewire": "boolean", + "webengine-geolocation": "boolean", + "webengine-webchannel": "boolean", + "webengine-kerberos": "boolean", +@@ -67,6 +68,12 @@ + "sources": [ + { "type": "pkgConfig", "args": "libpulse >= 0.9.10 libpulse-mainloop-glib" } + ] ++ }, ++ "webengine-gio": { ++ "label": "gio", ++ "sources": [ ++ { "type": "pkgConfig", "args": "gio-2.0" } ++ ] + } + }, + "tests" : { +@@ -183,6 +190,13 @@ + "autoDetect": "!features.webengine-embedded-build", + "output": [ "privateFeature" ] + }, ++ "webengine-webrtc-pipewire": { ++ "label": "PipeWire over GIO", ++ "purpose": "Provides PipeWire support in WebRTC using GIO.", ++ "condition": "features.webengine-webrtc && libs.webengine-gio", ++ "autoDetect": "false", ++ "output": [ "privateFeature" ] ++ }, + "webengine-ozone-x11" : { + "label": "Support qpa-xcb", + "condition": "features.webengine-ozone-x11", +@@ -252,6 +266,7 @@ + "webengine-spellchecker", + "webengine-native-spellchecker", + "webengine-webrtc", ++ "webengine-webrtc-pipewire", + "webengine-geolocation", + "webengine-webchannel", + "webengine-kerberos", +--