Date: Thu, 13 Jun 2019 08:44:40 +0000 (UTC) From: Kai Knoblich <kai@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r504068 - in head: . www/qt5-webengine www/qt5-webengine/files Message-ID: <201906130844.x5D8iewM045774@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kai Date: Thu Jun 13 08:44:39 2019 New Revision: 504068 URL: https://svnweb.freebsd.org/changeset/ports/504068 Log: www/qt5-webengine: Enable support for WebRTC and video capture devices When accessing video capture devices warnings like below are emitted [2]: [40533:463527936:0420/214650.072475:ERROR:create_video_capture_device_factory.cc(58)] Not implemented reached in std::unique_ptr<VideoCaptureDeviceFactory> media::(anonymous namespace)::CreatePlatformSpecificVideoCaptureDeviceFactory(scoped_refptr<base::SingleThreadTaskRunner>) Also websites that want to access the camera, microphone, etc. exhibit broken behavior, e.g. no dialogs to permit access on the desired capture devices come up. [1] Thus add the related patches from www/chromium [2] that enable support for video capture devices and explicitly activate the WebRTC feature. [1] PR: 236915 [1], 237423 [2] Submitted by: cmt [2] Reported by: thea20lineisameme@protonmail.com [1] Reviewed by: rakuco, tcberner (kde), Lorenzo Salvadore Approved by: tcberner (kde) Differential Revision: https://reviews.freebsd.org/D19900 Added: head/www/qt5-webengine/files/patch-src_3rdparty_chromium_media_capture_video_create__video__capture__device__factory.cc (contents, props changed) head/www/qt5-webengine/files/patch-src_3rdparty_chromium_media_capture_video_shared__memory__handle__provider.cc (contents, props changed) head/www/qt5-webengine/files/patch-src_3rdparty_chromium_media_capture_video_shared__memory__handle__provider.h (contents, props changed) Deleted: head/www/qt5-webengine/files/patch-src_3rdparty_chromium_third__party_webrtc_webrtc.gni Modified: head/UPDATING head/www/qt5-webengine/Makefile head/www/qt5-webengine/files/patch-clang Modified: head/UPDATING ============================================================================== --- head/UPDATING Thu Jun 13 08:31:30 2019 (r504067) +++ head/UPDATING Thu Jun 13 08:44:39 2019 (r504068) @@ -5,6 +5,16 @@ they are unavoidable. You should get into the habit of checking this file for changes each time you update your ports collection, before attempting any port upgrades. +20190613: + AFFECTS: users of www/qt5-webengine + AUTHOR: kai@FreeBSD.org + + Users that upgrade www/qt5-webengine without using pkg/poudriere might + experience failures due to conflicts with the installed version of 5.12.2. + + In that case, pkg delete -f the qt5-webengine package before building + the updated version. + 20190611: AFFECTS: users of net/routinator AUTHOR: rodrigo@FreeBSD.org Modified: head/www/qt5-webengine/Makefile ============================================================================== --- head/www/qt5-webengine/Makefile Thu Jun 13 08:31:30 2019 (r504067) +++ head/www/qt5-webengine/Makefile Thu Jun 13 08:44:39 2019 (r504068) @@ -8,8 +8,6 @@ # - We are using several stub files, especially in Chromium's base/ and net/ # layers. We should look at implementing the missing bits instead. # - We are currently not using any sandboxing mechanism. -# - We are disabling support for features such as WebRTC. We need to see what -# it would take to properly support them. # - We need to see if more "use_system_<FOO>" flags can be passed. # - The process of porting QtWebEngine needs to be documented so we can move to # newer releases more easily. @@ -20,6 +18,7 @@ PORTNAME= webengine DISTVERSION= ${QT5_VERSION} +PORTREVISION= 1 CATEGORIES= www PKGNAMEPREFIX= qt5- @@ -85,7 +84,7 @@ USE_XORG= x11 xcb xcomposite xcursor xext xi xorgproto USE_LDCONFIG= ${QT_LIBDIR} -QMAKE_CONFIGURE_ARGS= -proprietary-codecs -system-ffmpeg -disable-webrtc +QMAKE_CONFIGURE_ARGS= -proprietary-codecs -system-ffmpeg # We could just set it to an empty string as well. "all" does not account for # dependencies correctly in the generated Makefiles, use the right target here. Modified: head/www/qt5-webengine/files/patch-clang ============================================================================== --- head/www/qt5-webengine/files/patch-clang Thu Jun 13 08:31:30 2019 (r504067) +++ head/www/qt5-webengine/files/patch-clang Thu Jun 13 08:44:39 2019 (r504068) @@ -38,6 +38,17 @@ EXPECT_CALL(callback_, OnError()).Times(2); +--- src/3rdparty/chromium/third_party/libjingle_xmpp/task_runner/taskrunner.cc.orig 2019-03-07 09:23:57 UTC ++++ src/3rdparty/chromium/third_party/libjingle_xmpp/task_runner/taskrunner.cc +@@ -95,7 +95,7 @@ void TaskRunner::InternalRunTasks(bool in_destructor) + std::vector<Task *>::iterator it; + it = std::remove(tasks_.begin(), + tasks_.end(), +- reinterpret_cast<Task *>(NULL)); ++ static_cast<Task *>(NULL)); + + tasks_.erase(it, tasks_.end()); + --- src/3rdparty/chromium/third_party/sfntly/src/cpp/src/sfntly/table/core/cmap_table.cc.orig 2018-11-13 18:25:11 UTC +++ src/3rdparty/chromium/third_party/sfntly/src/cpp/src/sfntly/table/core/cmap_table.cc @@ -439,7 +439,7 @@ CMapTable::CMapFormat0::Builder::Builder( Added: head/www/qt5-webengine/files/patch-src_3rdparty_chromium_media_capture_video_create__video__capture__device__factory.cc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/www/qt5-webengine/files/patch-src_3rdparty_chromium_media_capture_video_create__video__capture__device__factory.cc Thu Jun 13 08:44:39 2019 (r504068) @@ -0,0 +1,20 @@ +--- src/3rdparty/chromium/media/capture/video/create_video_capture_device_factory.cc.orig 2019-03-07 09:23:57 UTC ++++ src/3rdparty/chromium/media/capture/video/create_video_capture_device_factory.cc +@@ -10,7 +10,7 @@ + #include "media/capture/video/fake_video_capture_device_factory.h" + #include "media/capture/video/file_video_capture_device_factory.h" + +-#if defined(OS_LINUX) && !defined(OS_CHROMEOS) ++#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD) + #include "media/capture/video/linux/video_capture_device_factory_linux.h" + #elif defined(OS_CHROMEOS) + #include "media/capture/video/chromeos/public/cros_features.h" +@@ -31,7 +31,7 @@ namespace { + std::unique_ptr<VideoCaptureDeviceFactory> + CreatePlatformSpecificVideoCaptureDeviceFactory( + scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) { +-#if defined(OS_LINUX) && !defined(OS_CHROMEOS) ++#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD) + return std::make_unique<VideoCaptureDeviceFactoryLinux>(ui_task_runner); + #elif defined(OS_CHROMEOS) + // On Chrome OS we have to support two use cases: Added: head/www/qt5-webengine/files/patch-src_3rdparty_chromium_media_capture_video_shared__memory__handle__provider.cc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/www/qt5-webengine/files/patch-src_3rdparty_chromium_media_capture_video_shared__memory__handle__provider.cc Thu Jun 13 08:44:39 2019 (r504068) @@ -0,0 +1,11 @@ +--- src/3rdparty/chromium/media/capture/video/shared_memory_handle_provider.cc.orig 2019-03-07 09:23:57 UTC ++++ src/3rdparty/chromium/media/capture/video/shared_memory_handle_provider.cc +@@ -63,7 +63,7 @@ bool SharedMemoryHandleProvider::InitFromMojoHandle( + return true; + } + +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) + bool SharedMemoryHandleProvider::InitAsReadOnlyFromRawFileDescriptor( + mojo::ScopedHandle fd_handle, + uint32_t memory_size_in_bytes) { Added: head/www/qt5-webengine/files/patch-src_3rdparty_chromium_media_capture_video_shared__memory__handle__provider.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/www/qt5-webengine/files/patch-src_3rdparty_chromium_media_capture_video_shared__memory__handle__provider.h Thu Jun 13 08:44:39 2019 (r504068) @@ -0,0 +1,11 @@ +--- src/3rdparty/chromium/media/capture/video/shared_memory_handle_provider.h.orig 2019-03-07 09:23:57 UTC ++++ src/3rdparty/chromium/media/capture/video/shared_memory_handle_provider.h +@@ -38,7 +38,7 @@ class CAPTURE_EXPORT SharedMemoryHandleProvider + + // This requires platforms where base::SharedMemoryHandle is backed by a + // file descriptor. +-#if defined(OS_LINUX) ++#if defined(OS_LINUX) || defined(OS_BSD) + bool InitAsReadOnlyFromRawFileDescriptor(mojo::ScopedHandle fd_handle, + uint32_t memory_size_in_bytes); + #endif // defined(OS_LINUX)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201906130844.x5D8iewM045774>