Skip site navigation (1)Skip section navigation (2)
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>