mirror of
https://git.freebsd.org/ports.git
synced 2025-07-17 17:29:23 -04:00
New port: www/qt5-webengine.
Qt WebEngine provides functionality for rendering regions of dynamic web content. In other words, this is Chromium's Blink web engine and parts of Chromium's content layer wrapped by Qt. Qt WebKit is deprecated upstream, and WebEngine is the future. This port has been in the works for a very long time, with contributions by myself, tcberner, Adriaan de Groot and Marie Loise Nolden. Since most of the port is just a large part of Chromium's code base, this means sharing some of the pain www/chromium goes through by having to patch a ton of files. We cannot share the exact same patches because this version of Qt WebEngine is based on an older Chromium release. I have verified that the port works, but it is possible that many things are still wrong or missing, so bug reports are encouraged. Reviewed by: Adriaan de Groot <groot@kde.org>, tcberner Differential Revision: https://reviews.freebsd.org/D12063
This commit is contained in:
parent
e3fb8ce76d
commit
90652af7cd
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=448132
82 changed files with 1801 additions and 3 deletions
|
@ -92,8 +92,8 @@ QT_DIST= 3d base canvas3d charts connectivity datavis3d declarative \
|
|||
declarative-render2d gamepad graphicaleffects imageformats \
|
||||
location multimedia quickcontrols quickcontrols2 script scxml \
|
||||
sensors serialbus serialport svg tools translations \
|
||||
virtualkeyboard wayland webchannel websockets x11extras \
|
||||
xmlpatterns
|
||||
virtualkeyboard wayland webchannel webengine \
|
||||
websockets x11extras xmlpatterns
|
||||
. endif
|
||||
. endif
|
||||
|
||||
|
@ -321,7 +321,7 @@ _USE_QT5_ONLY= 3d buildtools canvas3d charts concurrent connectivity \
|
|||
qdbus qdoc qdoc-data qev qml quick quickcontrols \
|
||||
quickcontrols2 scxml sensors serialbus serialport \
|
||||
sql-tds uiplugin uitools virtualkeyboard wayland webchannel \
|
||||
websockets websockets-qml widgets x11extras
|
||||
webengine websockets websockets-qml widgets x11extras
|
||||
|
||||
3d_PORT= graphics/${_QT_RELNAME}-3d
|
||||
3d_LIB= libQt${_QT_LIBVER}3DCore.so
|
||||
|
@ -592,6 +592,9 @@ virtualkeyboard_PATH= ${QT_PLUGINDIR}/platforminputcontexts/libqtvirtualkeyboard
|
|||
webchannel_PORT= www/${_QT_RELNAME}-webchannel
|
||||
webchannel_LIB= libQt${_QT_LIBVER}WebChannel.so
|
||||
|
||||
webengine_PORT= www/${_QT_RELNAME}-webengine
|
||||
webengine_LIB= libQt${_QT_LIBVER}WebEngine.so
|
||||
|
||||
websockets_PORT= www/${_QT_RELNAME}-websockets
|
||||
websockets_LIB= libQt${_QT_LIBVER}WebSockets.so
|
||||
|
||||
|
|
|
@ -51,6 +51,8 @@ SHA256 (KDE/Qt/5.7.1/qtwayland-opensource-src-5.7.1.tar.xz) = f23fc5e180c8af5b38
|
|||
SIZE (KDE/Qt/5.7.1/qtwayland-opensource-src-5.7.1.tar.xz) = 291776
|
||||
SHA256 (KDE/Qt/5.7.1/qtwebchannel-opensource-src-5.7.1.tar.xz) = 63ab3ac76ff993009cfa978162a764e05b763cacb70d1a862893f8de4492319b
|
||||
SIZE (KDE/Qt/5.7.1/qtwebchannel-opensource-src-5.7.1.tar.xz) = 122436
|
||||
SHA256 (KDE/Qt/5.7.1/qtwebengine-opensource-src-5.7.1.tar.xz) = 2101883e3d632b50133a14e3bbdc1d4d649e405c9618f2eef1b72a7b821ccc2b
|
||||
SIZE (KDE/Qt/5.7.1/qtwebengine-opensource-src-5.7.1.tar.xz) = 163782564
|
||||
SHA256 (KDE/Qt/5.7.1/qtwebsockets-opensource-src-5.7.1.tar.xz) = 5c2a75b68e7f2e98530659b33bb08edee83013832dbf99cc5b40afc8a90652d1
|
||||
SIZE (KDE/Qt/5.7.1/qtwebsockets-opensource-src-5.7.1.tar.xz) = 193204
|
||||
SHA256 (KDE/Qt/5.7.1/qtx11extras-opensource-src-5.7.1.tar.xz) = 5f5a0c2cc66ec01c2f2f31eff32fea26bd0bc03741a5dfd803b13870aa4ce427
|
||||
|
|
|
@ -1864,6 +1864,7 @@
|
|||
SUBDIR += qooxdoo
|
||||
SUBDIR += qt4-webkit
|
||||
SUBDIR += qt5-webchannel
|
||||
SUBDIR += qt5-webengine
|
||||
SUBDIR += qt5-webkit
|
||||
SUBDIR += qt5-websockets
|
||||
SUBDIR += qt5-websockets-qml
|
||||
|
|
105
www/qt5-webengine/Makefile
Normal file
105
www/qt5-webengine/Makefile
Normal file
|
@ -0,0 +1,105 @@
|
|||
# $FreeBSD$
|
||||
|
||||
# QtWebEngine itself is a very thin layer of Qt code on top of a large part of
|
||||
# Chromium (everything up to the content/ layer). As such, most of the work in
|
||||
# this port revolves around taming Chromium and getting it to build on FreeBSD.
|
||||
# While it does build at the moment, there are several items that should be
|
||||
# investigated or improved:
|
||||
# - 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 and printing. 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.
|
||||
|
||||
PORTNAME= webengine
|
||||
DISTVERSION= ${QT5_VERSION}
|
||||
CATEGORIES= www
|
||||
PKGNAMEPREFIX= qt5-
|
||||
|
||||
MAINTAINER= kde@FreeBSD.org
|
||||
COMMENT= Qt 5 library to render web content
|
||||
|
||||
BUILD_DEPENDS= bison:devel/bison \
|
||||
ninja:devel/ninja \
|
||||
python:lang/python \
|
||||
yasm:devel/yasm \
|
||||
${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat
|
||||
LIB_DEPENDS= libdbus-1.so:devel/dbus \
|
||||
libevent.so:devel/libevent \
|
||||
libfontconfig.so:x11-fonts/fontconfig \
|
||||
libfreetype.so:print/freetype2 \
|
||||
libjsoncpp.so:devel/jsoncpp \
|
||||
libnspr4.so:devel/nspr \
|
||||
libnss3.so:security/nss \
|
||||
libopus.so:audio/opus \
|
||||
libpci.so:devel/libpci \
|
||||
libpng.so:graphics/png \
|
||||
libprotobuf.so:devel/protobuf \
|
||||
libsnappy.so:archivers/snappy \
|
||||
libsrtp.so:net/libsrtp \
|
||||
libwebp.so:graphics/webp
|
||||
|
||||
OPTIONS_SINGLE= AUDIO
|
||||
OPTIONS_SINGLE_AUDIO= ALSA PULSEAUDIO
|
||||
OPTIONS_DEFAULT= ALSA
|
||||
|
||||
AUDIO_DESC= Audio backend
|
||||
|
||||
ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
|
||||
ALSA_QMAKE_ON= QT_CONFIG+=alsa
|
||||
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
|
||||
PULSEAUDIO_QMAKE_ON= QT_CONFIG+=pulseaudio
|
||||
|
||||
# We pass `norecursive' to USES=qmake because src/plugins/plugins.pro checks
|
||||
# whether webenginewidgets is available, which fails when qmake processes all
|
||||
# .pro files at once.
|
||||
USES= gperf jpeg python:2,build pkgconfig \
|
||||
qmake:norecursive,outsource shebangfix
|
||||
USE_GNOME= glib20 libxml2 libxslt
|
||||
USE_QT5= core designer gui location network qml quick webchannel \
|
||||
widgets buildtools_build qmake_build
|
||||
USE_XORG= scrnsaverproto x11 xcomposite xcursor xext xi xproto \
|
||||
xrandr xrender xscrnsaver xtst
|
||||
|
||||
USE_LDCONFIG= ${QT_LIBDIR}
|
||||
|
||||
QT_DIST= ${PORTNAME}
|
||||
|
||||
QMAKE_ARGS= WEBENGINE_CONFIG+=use_nss \
|
||||
WEBENGINE_CONFIG+=use_proprietary_codecs \
|
||||
WEBENGINE_CONFIG+=use_system_libevent
|
||||
|
||||
# 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.
|
||||
ALL_TARGET= first
|
||||
|
||||
# The build system reads the environment variable $NINJA_PATH to decide whether
|
||||
# to boostrap ninja or not (and also to invoke it afterwards). CC and CXX are
|
||||
# read by some Chromium code to determine which compiler to invoke when running
|
||||
# some configuration tests.
|
||||
# Since we use USES=qmake:norecursive, we also need to pass some variables to
|
||||
# MAKE_ENV because part of the configuration process happens during the build.
|
||||
CONFIGURE_ENV+= NINJAFLAGS="-j${MAKE_JOBS_NUMBER}" \
|
||||
NINJA_PATH="${LOCALBASE}/bin/ninja"
|
||||
MAKE_ENV+= CC="${CC}" CXX="${CXX}" ${CONFIGURE_ENV}
|
||||
|
||||
post-extract:
|
||||
# Install FreeBSD's freebsd.pri file.
|
||||
${CP} ${FILESDIR}/freebsd.pri ${WRKSRC}/src/core/config/freebsd.pri
|
||||
# Unbundle libusb.
|
||||
${RM} -r ${WRKSRC}/src/3rdparty/chromium/third_party/libusb/src
|
||||
${CP} ${WRKSRC}/src/3rdparty/chromium/build/linux/unbundle/libusb.gyp \
|
||||
${WRKSRC}/src/3rdparty/chromium/third_party/libusb/libusb.gyp
|
||||
# Unbundle libxml.
|
||||
${CP} ${WRKSRC}/src/3rdparty/chromium/build/linux/unbundle/libxml.gyp \
|
||||
${WRKSRC}/src/3rdparty/chromium/third_party/libxml/libxml.gyp
|
||||
|
||||
post-patch:
|
||||
# Too many occurrences to keep in a patch in files/.
|
||||
${REINPLACE_CMD} -e 's,OS == "linux",(OS == "linux" or OS == "freebsd"),g' \
|
||||
${WRKSRC}/src/3rdparty/chromium/third_party/ffmpeg/ffmpeg_generated.gypi
|
||||
|
||||
.include <bsd.port.mk>
|
1
www/qt5-webengine/distinfo
Normal file
1
www/qt5-webengine/distinfo
Normal file
|
@ -0,0 +1 @@
|
|||
TIMESTAMP = 1491910958
|
16
www/qt5-webengine/files/freebsd.pri
Normal file
16
www/qt5-webengine/files/freebsd.pri
Normal file
|
@ -0,0 +1,16 @@
|
|||
include(desktop_linux.pri)
|
||||
|
||||
GYP_CONFIG += disable_nacl=1 \
|
||||
enable_basic_printing=0 \
|
||||
enable_printing=0 \
|
||||
enable_webrtc=0 \
|
||||
enable_hidpi=1 \
|
||||
use_dbus=1 \
|
||||
use_pulseaudio=0
|
||||
|
||||
# Once the port works better, we can think about readding the diverse `use_system_<foo>`
|
||||
# for bundled libraries.
|
||||
# For now, only add very few system libraries.
|
||||
GYP_CONFIG += use_system_yasm=1 \
|
||||
use_system_libusb=1 \
|
||||
use_system_libcxx=1
|
|
@ -0,0 +1,13 @@
|
|||
Disable USE_SYMBOLIZE, it assumes Linux is being used and does things such as
|
||||
reading from /proc.
|
||||
--- src/3rdparty/chromium/base/base.gyp.orig 2017-04-19 16:31:45 UTC
|
||||
+++ src/3rdparty/chromium/base/base.gyp
|
||||
@@ -46,7 +46,7 @@
|
||||
'xdg_mime',
|
||||
],
|
||||
'defines': [
|
||||
- 'USE_SYMBOLIZE',
|
||||
+ # 'USE_SYMBOLIZE',
|
||||
],
|
||||
}, { # desktop_linux == 0 and chromeos == 0
|
||||
'sources/': [
|
|
@ -0,0 +1,17 @@
|
|||
--- src/3rdparty/chromium/base/base.gypi.orig 2016-11-07 14:46:18 UTC
|
||||
+++ src/3rdparty/chromium/base/base.gypi
|
||||
@@ -1006,9 +1006,14 @@
|
||||
'process/memory_stubs.cc',
|
||||
],
|
||||
'sources/': [
|
||||
+ ['exclude', '^debug/proc_maps_linux\\.cc$'],
|
||||
+ ['exclude', '^files/file_path_watcher_fsevents\\.cc$'],
|
||||
['exclude', '^files/file_path_watcher_linux\\.cc$'],
|
||||
['exclude', '^files/file_path_watcher_stub\\.cc$'],
|
||||
['exclude', '^files/file_util_linux\\.cc$'],
|
||||
+ ['exclude', '^process/memory_linux\\.cc$'],
|
||||
+ ['exclude', '^process/process_iterator_linux\\.cc$'],
|
||||
+ ['exclude', '^process/process_metrics_linux\\.cc$'],
|
||||
['exclude', '^process/process_linux\\.cc$'],
|
||||
['exclude', '^sys_info_linux\\.cc$'],
|
||||
],
|
|
@ -0,0 +1,13 @@
|
|||
--- src/3rdparty/chromium/base/files/file_path_watcher_kqueue.cc.orig 2017-04-19 09:33:16 UTC
|
||||
+++ src/3rdparty/chromium/base/files/file_path_watcher_kqueue.cc
|
||||
@@ -388,4 +388,10 @@ void FilePathWatcherKQueue::CancelOnMess
|
||||
}
|
||||
}
|
||||
|
||||
+// In the upstream version, this method is implemented in
|
||||
+// file_path_watcher_mac.cc, which we obviously do not use.
|
||||
+FilePathWatcher::FilePathWatcher() {
|
||||
+ impl_ = new FilePathWatcherKQueue();
|
||||
+}
|
||||
+
|
||||
} // namespace base
|
|
@ -0,0 +1,14 @@
|
|||
--- src/3rdparty/chromium/base/files/file_path_watcher_kqueue.h.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/base/files/file_path_watcher_kqueue.h
|
||||
@@ -5,6 +5,11 @@
|
||||
#ifndef BASE_FILES_FILE_PATH_WATCHER_KQUEUE_H_
|
||||
#define BASE_FILES_FILE_PATH_WATCHER_KQUEUE_H_
|
||||
|
||||
+#ifdef __FreeBSD__
|
||||
+#include <sys/stdint.h>
|
||||
+#include <sys/types.h>
|
||||
+#endif
|
||||
+
|
||||
#include <sys/event.h>
|
||||
#include <vector>
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
--- src/3rdparty/chromium/base/posix/unix_domain_socket_linux.cc.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/base/posix/unix_domain_socket_linux.cc
|
||||
@@ -21,6 +21,15 @@
|
||||
#include <sys/uio.h>
|
||||
#endif
|
||||
|
||||
+#if defined(__FreeBSD__)
|
||||
+// Port over Linux ucred structure
|
||||
+struct ucred {
|
||||
+ pid_t pid; // process ID of the sending process
|
||||
+ uid_t uid; // user ID of the sending process
|
||||
+ gid_t gid; // group ID of the sending process
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
namespace base {
|
||||
|
||||
const size_t UnixDomainSocket::kMaxFileDescriptors = 16;
|
||||
@@ -41,7 +50,13 @@ static bool CreateSocketPair(ScopedFD* one, ScopedFD*
|
||||
// static
|
||||
bool UnixDomainSocket::EnableReceiveProcessId(int fd) {
|
||||
const int enable = 1;
|
||||
+#if defined(__FreeBSD__)
|
||||
+ // XXX(rene) do this? :
|
||||
+ // taken from dbus, Academic Free License 2.1 / GPL 2+
|
||||
+ return 0; // fake OK
|
||||
+#else
|
||||
return setsockopt(fd, SOL_SOCKET, SO_PASSCRED, &enable, sizeof(enable)) == 0;
|
||||
+#endif
|
||||
}
|
||||
#endif // !defined(OS_NACL_NONSFI)
|
||||
|
||||
@@ -147,7 +162,11 @@ ssize_t UnixDomainSocket::RecvMsgWithFlags(int fd,
|
||||
// The PNaCl toolchain for Non-SFI binary build does not support
|
||||
// SCM_CREDENTIALS.
|
||||
if (cmsg->cmsg_level == SOL_SOCKET &&
|
||||
+#if defined(__FreeBSD__)
|
||||
+ 1) {
|
||||
+#else
|
||||
cmsg->cmsg_type == SCM_CREDENTIALS) {
|
||||
+#endif
|
||||
DCHECK_EQ(payload_len, sizeof(struct ucred));
|
||||
DCHECK_EQ(pid, -1);
|
||||
pid = reinterpret_cast<struct ucred*>(CMSG_DATA(cmsg))->pid;
|
|
@ -0,0 +1,15 @@
|
|||
Use the definition in memory.cc instead.
|
||||
--- src/3rdparty/chromium/base/process/memory_stubs.cc.orig 2017-04-19 16:40:17 UTC
|
||||
+++ src/3rdparty/chromium/base/process/memory_stubs.cc
|
||||
@@ -32,9 +32,11 @@ bool UncheckedMalloc(size_t size, void**
|
||||
return *result != nullptr;
|
||||
}
|
||||
|
||||
+#if !defined(OS_BSD)
|
||||
bool UncheckedCalloc(size_t num_items, size_t size, void** result) {
|
||||
*result = calloc(num_items, size);
|
||||
return *result != nullptr;
|
||||
}
|
||||
+#endif
|
||||
|
||||
} // namespace base
|
|
@ -0,0 +1,10 @@
|
|||
--- src/3rdparty/chromium/base/process/process_posix.cc.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/base/process/process_posix.cc
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <stdint.h>
|
||||
#include <sys/resource.h>
|
||||
#include <sys/wait.h>
|
||||
+#include <signal.h>
|
||||
|
||||
#include "base/files/scoped_file.h"
|
||||
#include "base/logging.h"
|
|
@ -0,0 +1,21 @@
|
|||
--- src/3rdparty/chromium/base/threading/platform_thread_linux.cc.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/base/threading/platform_thread_linux.cc
|
||||
@@ -17,7 +17,9 @@
|
||||
|
||||
#if !defined(OS_NACL)
|
||||
#include <pthread.h>
|
||||
+#if !defined(OS_BSD)
|
||||
#include <sys/prctl.h>
|
||||
+#endif
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
@@ -81,7 +83,7 @@ void PlatformThread::SetName(const std::string& name)
|
||||
ThreadIdNameManager::GetInstance()->SetName(CurrentId(), name);
|
||||
tracked_objects::ThreadData::InitializeThreadContext(name);
|
||||
|
||||
-#if !defined(OS_NACL)
|
||||
+#if !defined(OS_NACL) && !defined(OS_BSD)
|
||||
// On linux we can get the thread names to show up in the debugger by setting
|
||||
// the process name for the LWP. We don't want to do this for the main
|
||||
// thread because that would rename the process, causing tools like killall
|
|
@ -0,0 +1,29 @@
|
|||
--- src/3rdparty/chromium/base/trace_event/process_memory_dump.cc.orig 2016-11-07 14:46:18 UTC
|
||||
+++ src/3rdparty/chromium/base/trace_event/process_memory_dump.cc
|
||||
@@ -52,7 +52,7 @@ size_t ProcessMemoryDump::CountResidentB
|
||||
const size_t page_count = (chunk_size + page_size - 1) / page_size;
|
||||
size_t resident_page_count = 0;
|
||||
|
||||
-#if defined(OS_MACOSX) || defined(OS_IOS)
|
||||
+#if defined(OS_MACOSX) || defined(OS_IOS) || defined(OS_BSD)
|
||||
std::vector<char> vec(page_count + 1);
|
||||
// mincore in MAC does not fail with EAGAIN.
|
||||
result = mincore(chunk_start, chunk_size, vec.data());
|
||||
@@ -61,7 +61,7 @@ size_t ProcessMemoryDump::CountResidentB
|
||||
|
||||
for (size_t i = 0; i < page_count; i++)
|
||||
resident_page_count += vec[i] & MINCORE_INCORE ? 1 : 0;
|
||||
-#else // defined(OS_MACOSX) || defined(OS_IOS)
|
||||
+#else // defined(OS_MACOSX) || defined(OS_IOS) || defined(OS_BSD)
|
||||
std::vector<unsigned char> vec(page_count + 1);
|
||||
int error_counter = 0;
|
||||
// HANDLE_EINTR tries for 100 times. So following the same pattern.
|
||||
@@ -73,7 +73,7 @@ size_t ProcessMemoryDump::CountResidentB
|
||||
|
||||
for (size_t i = 0; i < page_count; i++)
|
||||
resident_page_count += vec[i];
|
||||
-#endif // defined(OS_MACOSX) || defined(OS_IOS)
|
||||
+#endif // defined(OS_MACOSX) || defined(OS_IOS) || defined(OS_BSD)
|
||||
|
||||
total_resident_size += resident_page_count * page_size;
|
||||
offset += kMaxChunkSize;
|
|
@ -0,0 +1,11 @@
|
|||
--- src/3rdparty/chromium/base/tracked_objects.cc.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/base/tracked_objects.cc
|
||||
@@ -431,7 +431,7 @@ void ThreadData::OnThreadTerminationCleanup() {
|
||||
}
|
||||
// We must NOT do any allocations during this callback.
|
||||
// Using the simple linked lists avoids all allocations.
|
||||
- DCHECK_EQ(this->next_retired_worker_, reinterpret_cast<ThreadData*>(NULL));
|
||||
+ DCHECK_EQ(this->next_retired_worker_, reinterpret_cast<ThreadData*>(0));
|
||||
this->next_retired_worker_ = first_retired_worker_;
|
||||
first_retired_worker_ = this;
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
--- src/3rdparty/chromium/build/common.gypi.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/build/common.gypi
|
||||
@@ -4781,6 +4781,13 @@
|
||||
'ldflags': [
|
||||
'-Wl,--no-keep-memory',
|
||||
],
|
||||
+ 'ldflags!': [
|
||||
+ '-ldl',
|
||||
+ '-pie',
|
||||
+ ],
|
||||
+ 'libraries!': [
|
||||
+ '-ldl',
|
||||
+ ],
|
||||
},
|
||||
}],
|
||||
# Android-specific options; note that most are set above with Linux.
|
|
@ -0,0 +1,20 @@
|
|||
--- src/3rdparty/chromium/build/linux/unbundle/libusb.gyp.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/build/linux/unbundle/libusb.gyp
|
||||
@@ -18,14 +18,14 @@
|
||||
],
|
||||
'direct_dependent_settings': {
|
||||
'cflags': [
|
||||
- '<!@(pkg-config --cflags libusb-1.0)',
|
||||
+ '',
|
||||
],
|
||||
'link_settings': {
|
||||
'ldflags': [
|
||||
- '<!@(pkg-config --libs-only-L --libs-only-other libusb-1.0)',
|
||||
+ '-lusb',
|
||||
],
|
||||
'libraries': [
|
||||
- '<!@(pkg-config --libs-only-l libusb-1.0)',
|
||||
+ '-lusb',
|
||||
],
|
||||
},
|
||||
},
|
|
@ -0,0 +1,30 @@
|
|||
We currently do not use the zygote code that Linux does.
|
||||
--- src/3rdparty/chromium/content/app/content_main_runner.cc.orig 2017-04-19 16:52:23 UTC
|
||||
+++ src/3rdparty/chromium/content/app/content_main_runner.cc
|
||||
@@ -265,7 +265,7 @@ struct MainFunction {
|
||||
int (*function)(const MainFunctionParams&);
|
||||
};
|
||||
|
||||
-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
|
||||
+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
|
||||
// On platforms that use the zygote, we have a special subset of
|
||||
// subprocesses that are launched via the zygote. This function
|
||||
// fills in some process-launching bits around ZygoteMain().
|
||||
@@ -314,7 +314,7 @@ int RunZygote(const MainFunctionParams&
|
||||
NOTREACHED() << "Unknown zygote process type: " << process_type;
|
||||
return 1;
|
||||
}
|
||||
-#endif // defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
|
||||
+#endif // defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
|
||||
|
||||
#if !defined(OS_IOS)
|
||||
static void RegisterMainThreadFactories() {
|
||||
@@ -385,7 +385,7 @@ int RunNamedProcessTypeMain(
|
||||
}
|
||||
}
|
||||
|
||||
-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
|
||||
+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
|
||||
// Zygote startup is special -- see RunZygote comments above
|
||||
// for why we don't use ZygoteMain directly.
|
||||
if (process_type == switches::kZygoteProcess)
|
|
@ -0,0 +1,20 @@
|
|||
--- src/3rdparty/chromium/content/browser/browser_main_loop.cc.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/content/browser/browser_main_loop.cc
|
||||
@@ -189,7 +189,7 @@
|
||||
namespace content {
|
||||
namespace {
|
||||
|
||||
-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
|
||||
+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
|
||||
void SetupSandbox(const base::CommandLine& parsed_command_line) {
|
||||
TRACE_EVENT0("startup", "SetupSandbox");
|
||||
base::FilePath sandbox_binary;
|
||||
@@ -440,7 +440,7 @@ void BrowserMainLoop::EarlyInitialization() {
|
||||
TRACE_EVENT0("startup", "BrowserMainLoop::EarlyInitialization");
|
||||
TRACK_SCOPED_REGION("Startup", "BrowserMainLoop::EarlyInitialization");
|
||||
|
||||
-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
|
||||
+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
|
||||
// No thread should be created before this call, as SetupSandbox()
|
||||
// will end-up using fork().
|
||||
SetupSandbox(parsed_command_line_);
|
|
@ -0,0 +1,38 @@
|
|||
--- src/3rdparty/chromium/content/browser/child_process_launcher.cc.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/content/browser/child_process_launcher.cc
|
||||
@@ -198,7 +198,7 @@ void LaunchOnLauncherThread(const NotifyCallback& call
|
||||
// We need to close the client end of the IPC channel to reliably detect
|
||||
// child termination.
|
||||
|
||||
-#if !defined(OS_MACOSX)
|
||||
+#if !defined(OS_MACOSX) && !defined(OS_BSD)
|
||||
if (use_zygote) {
|
||||
base::ProcessHandle handle = ZygoteHostImpl::GetInstance()->ForkRequest(
|
||||
cmd_line->argv(), std::move(files_to_register), process_type);
|
||||
@@ -296,7 +296,7 @@ void TerminateOnLauncherThread(bool zygote, base::Proc
|
||||
process.Terminate(RESULT_CODE_NORMAL_EXIT, false);
|
||||
// On POSIX, we must additionally reap the child.
|
||||
#if defined(OS_POSIX)
|
||||
-#if !defined(OS_MACOSX)
|
||||
+#if !defined(OS_MACOSX) && !defined(OS_BSD)
|
||||
if (zygote) {
|
||||
// If the renderer was created via a zygote, we have to proxy the reaping
|
||||
// through the zygote process.
|
||||
@@ -398,7 +398,7 @@ void ChildProcessLauncher::Launch(
|
||||
|
||||
void ChildProcessLauncher::UpdateTerminationStatus(bool known_dead) {
|
||||
DCHECK(CalledOnValidThread());
|
||||
-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
|
||||
+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
|
||||
if (zygote_) {
|
||||
termination_status_ = ZygoteHostImpl::GetInstance()->
|
||||
GetTerminationStatus(process_.Handle(), known_dead, &exit_code_);
|
||||
@@ -469,7 +469,7 @@ void ChildProcessLauncher::Notify(
|
||||
starting_ = false;
|
||||
process_ = std::move(process);
|
||||
|
||||
-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
|
||||
+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) && !defined(OS_BSD)
|
||||
zygote_ = zygote;
|
||||
#endif
|
||||
if (process_.IsValid()) {
|
|
@ -0,0 +1,20 @@
|
|||
--- src/3rdparty/chromium/content/browser/download/file_metadata_linux.cc.orig 2017-04-20 13:00:41 UTC
|
||||
+++ src/3rdparty/chromium/content/browser/download/file_metadata_linux.cc
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
#include <stddef.h>
|
||||
#include <sys/types.h>
|
||||
-#include <sys/xattr.h>
|
||||
+#include <sys/extattr.h>
|
||||
|
||||
#include "base/files/file_path.h"
|
||||
#include "base/files/file_util.h"
|
||||
@@ -21,7 +21,7 @@ const char kReferrerURLAttrName[] = "use
|
||||
static void SetExtendedFileAttribute(const char* path, const char* name,
|
||||
const char* value, size_t value_size,
|
||||
int flags) {
|
||||
- int result = setxattr(path, name, value, value_size, flags);
|
||||
+ int result = extattr_set_file(path, EXTATTR_NAMESPACE_USER, name, value, value_size);
|
||||
if (result) {
|
||||
DPLOG(ERROR)
|
||||
<< "Could not set extended attribute " << name << " on file " << path;
|
|
@ -0,0 +1,16 @@
|
|||
--- src/3rdparty/chromium/content/browser/frame_host/render_widget_host_view_guest.cc.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/content/browser/frame_host/render_widget_host_view_guest.cc
|
||||
@@ -338,11 +338,11 @@ gfx::NativeView RenderWidgetHostViewGuest::GetNativeVi
|
||||
|
||||
gfx::NativeViewId RenderWidgetHostViewGuest::GetNativeViewId() const {
|
||||
if (!guest_)
|
||||
- return static_cast<gfx::NativeViewId>(NULL);
|
||||
+ return reinterpret_cast<gfx::NativeViewId>(NULL);
|
||||
|
||||
RenderWidgetHostView* rwhv = guest_->GetOwnerRenderWidgetHostView();
|
||||
if (!rwhv)
|
||||
- return static_cast<gfx::NativeViewId>(NULL);
|
||||
+ return reinterpret_cast<gfx::NativeViewId>(NULL);
|
||||
return rwhv->GetNativeViewId();
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
--- src/3rdparty/chromium/content/browser/geolocation/location_arbitrator_impl.cc.orig 2017-04-19 16:57:24 UTC
|
||||
+++ src/3rdparty/chromium/content/browser/geolocation/location_arbitrator_impl.cc
|
||||
@@ -174,7 +174,7 @@ LocationProvider* LocationArbitratorImpl
|
||||
}
|
||||
|
||||
LocationProvider* LocationArbitratorImpl::NewSystemLocationProvider() {
|
||||
-#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
|
||||
+#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || defined(OS_BSD)
|
||||
return NULL;
|
||||
#else
|
||||
return content::NewSystemLocationProvider();
|
|
@ -0,0 +1,33 @@
|
|||
--- src/3rdparty/chromium/content/content_browser.gypi.orig 2016-11-07 14:46:18 UTC
|
||||
+++ src/3rdparty/chromium/content/content_browser.gypi
|
||||
@@ -2140,6 +2140,9 @@
|
||||
['os_bsd==1', {
|
||||
'sources/': [
|
||||
['exclude', '^browser/gamepad/gamepad_platform_data_fetcher_linux\\.cc$'],
|
||||
+ ['exclude', '^browser/zygote_host/zygote_host_impl_linux\\.cc$'],
|
||||
+ ['exclude', '^zygote/zygote_linux\\.cc$'],
|
||||
+ ['exclude', '^zygote/zygote_main_linux\\.cc$'],
|
||||
],
|
||||
}],
|
||||
['use_aura==1', {
|
||||
@@ -2191,14 +2194,16 @@
|
||||
'browser/geolocation/empty_wifi_data_provider.cc',
|
||||
],
|
||||
}],
|
||||
- ['OS == "linux" and use_dbus==1', {
|
||||
- 'sources!': [
|
||||
- 'browser/geolocation/empty_wifi_data_provider.cc',
|
||||
- ],
|
||||
+ ['use_dbus==1', {
|
||||
'dependencies': [
|
||||
'../build/linux/system.gyp:dbus',
|
||||
'../dbus/dbus.gyp:dbus',
|
||||
],
|
||||
+ }],
|
||||
+ ['OS == "linux" and use_dbus==1', {
|
||||
+ 'sources!': [
|
||||
+ 'browser/geolocation/empty_wifi_data_provider.cc',
|
||||
+ ],
|
||||
}, { # OS != "linux" or use_dbus==0
|
||||
'sources!': [
|
||||
'browser/geolocation/wifi_data_provider_linux.cc',
|
|
@ -0,0 +1,32 @@
|
|||
--- src/3rdparty/chromium/content/content_common.gypi.orig 2016-11-07 14:46:18 UTC
|
||||
+++ src/3rdparty/chromium/content/content_common.gypi
|
||||
@@ -12,6 +12,7 @@
|
||||
'../skia/skia.gyp:skia',
|
||||
'../third_party/WebKit/public/blink_headers.gyp:blink_headers',
|
||||
'../third_party/icu/icu.gyp:icuuc',
|
||||
+ '../third_party/mesa/mesa.gyp:mesa_headers',
|
||||
'../ui/accessibility/accessibility.gyp:accessibility',
|
||||
'../ui/accessibility/accessibility.gyp:ax_gen',
|
||||
'../ui/base/ime/ui_base_ime.gyp:ui_base_ime',
|
||||
@@ -756,6 +757,21 @@
|
||||
'content.gyp:common_aidl',
|
||||
],
|
||||
}],
|
||||
+ ['os_bsd==1', {
|
||||
+ 'sources!': [
|
||||
+ 'common/sandbox_linux/bpf_cros_arm_gpu_policy_linux.cc',
|
||||
+ 'common/sandbox_linux/bpf_gpu_policy_linux.cc',
|
||||
+ 'common/sandbox_linux/bpf_ppapi_policy_linux.cc',
|
||||
+ 'common/sandbox_linux/bpf_renderer_policy_linux.cc',
|
||||
+ 'common/sandbox_linux/bpf_utility_policy_linux.cc',
|
||||
+ 'common/sandbox_linux/sandbox_bpf_base_policy_linux.cc',
|
||||
+ 'common/sandbox_linux/sandbox_debug_handling_linux.cc',
|
||||
+ 'common/sandbox_linux/sandbox_init_linux.cc',
|
||||
+ 'common/sandbox_linux/sandbox_linux.cc',
|
||||
+ 'common/sandbox_linux/sandbox_seccomp_bpf_linux.cc',
|
||||
+ 'common/set_process_title_linux.cc',
|
||||
+ ],
|
||||
+ }],
|
||||
['use_pango == 1', {
|
||||
'dependencies': [
|
||||
'../build/linux/system.gyp:pangocairo',
|
|
@ -0,0 +1,18 @@
|
|||
--- src/3rdparty/chromium/content/gpu/gpu_child_thread.cc.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/content/gpu/gpu_child_thread.cc
|
||||
@@ -306,6 +306,7 @@ void GpuChildThread::StopWatchdog() {
|
||||
}
|
||||
|
||||
void GpuChildThread::OnCollectGraphicsInfo() {
|
||||
+#if !defined(OS_FREEBSD)
|
||||
#if defined(OS_WIN)
|
||||
// GPU full info collection should only happen on un-sandboxed GPU process
|
||||
// or single process/in-process gpu mode on Windows.
|
||||
@@ -348,6 +349,7 @@ void GpuChildThread::OnCollectGraphicsInfo() {
|
||||
base::MessageLoop::current()->QuitWhenIdle();
|
||||
}
|
||||
#endif // OS_WIN
|
||||
+#endif
|
||||
}
|
||||
|
||||
void GpuChildThread::OnGetVideoMemoryUsageStats() {
|
|
@ -0,0 +1,45 @@
|
|||
--- src/3rdparty/chromium/content/gpu/gpu_main.cc.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/content/gpu/gpu_main.cc
|
||||
@@ -99,7 +99,7 @@ void GetGpuInfoFromCommandLine(gpu::GPUInfo& gpu_info,
|
||||
const base::CommandLine& command_line);
|
||||
bool WarmUpSandbox(const base::CommandLine& command_line);
|
||||
|
||||
-#if !defined(OS_MACOSX)
|
||||
+#if !defined(OS_MACOSX) && !defined(OS_FREEBSD)
|
||||
bool CollectGraphicsInfo(gpu::GPUInfo& gpu_info);
|
||||
#endif
|
||||
|
||||
@@ -191,13 +191,13 @@ int GpuMain(const MainFunctionParams& parameters) {
|
||||
#else
|
||||
base::MessageLoop main_message_loop(base::MessageLoop::TYPE_UI);
|
||||
#endif
|
||||
-#elif defined(OS_LINUX) && defined(USE_X11)
|
||||
+#elif (defined(OS_LINUX)||defined(OS_BSD)) && defined(USE_X11)
|
||||
// We need a UI loop so that we can grab the Expose events. See GLSurfaceGLX
|
||||
// and https://crbug.com/326995.
|
||||
base::MessageLoop main_message_loop(base::MessageLoop::TYPE_UI);
|
||||
scoped_ptr<ui::PlatformEventSource> event_source =
|
||||
ui::PlatformEventSource::CreateDefault();
|
||||
-#elif defined(OS_LINUX)
|
||||
+#elif defined(OS_LINUX)||defined(OS_BSD)
|
||||
base::MessageLoop main_message_loop(base::MessageLoop::TYPE_DEFAULT);
|
||||
#elif defined(OS_MACOSX)
|
||||
// This is necessary for CoreAnimation layers hosted in the GPU process to be
|
||||
@@ -303,7 +303,7 @@ int GpuMain(const MainFunctionParams& parameters) {
|
||||
// and we already registered them through SetGpuInfo() above.
|
||||
base::TimeTicks before_collect_context_graphics_info =
|
||||
base::TimeTicks::Now();
|
||||
-#if !defined(OS_MACOSX)
|
||||
+#if !defined(OS_MACOSX) && !defined(OS_FREEBSD)
|
||||
if (!CollectGraphicsInfo(gpu_info))
|
||||
dead_on_arrival = true;
|
||||
|
||||
@@ -457,7 +457,7 @@ bool WarmUpSandbox(const base::CommandLine& command_li
|
||||
return true;
|
||||
}
|
||||
|
||||
-#if !defined(OS_MACOSX)
|
||||
+#if !defined(OS_MACOSX) && !defined(OS_FREEBSD)
|
||||
bool CollectGraphicsInfo(gpu::GPUInfo& gpu_info) {
|
||||
TRACE_EVENT0("gpu,startup", "Collect Graphics Info");
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
--- src/3rdparty/chromium/content/renderer/devtools/v8_sampling_profiler.cc.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/content/renderer/devtools/v8_sampling_profiler.cc
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
+#include <ucontext.h>
|
||||
|
||||
#include "base/format_macros.h"
|
||||
#include "base/location.h"
|
||||
@@ -544,6 +546,10 @@ void V8SamplingThread::HandleProfilerSignal(int signal
|
||||
state.pc = reinterpret_cast<void*>(mcontext->__ss.REG_64_32(__rip, __eip));
|
||||
state.sp = reinterpret_cast<void*>(mcontext->__ss.REG_64_32(__rsp, __esp));
|
||||
state.fp = reinterpret_cast<void*>(mcontext->__ss.REG_64_32(__rbp, __ebp));
|
||||
+#elif defined(OS_FREEBSD)
|
||||
+ state.pc = reinterpret_cast<void*>(mcontext.REG_64_32(mc_rip, mc_eip));
|
||||
+ state.sp = reinterpret_cast<void*>(mcontext.REG_64_32(mc_rsp, mc_esp));
|
||||
+ state.fp = reinterpret_cast<void*>(mcontext.REG_64_32(mc_rbp, mc_ebp));
|
||||
#else
|
||||
state.pc =
|
||||
reinterpret_cast<void*>(mcontext.gregs[REG_64_32(REG_RIP, REG_EIP)]);
|
|
@ -0,0 +1,18 @@
|
|||
--- src/3rdparty/chromium/content/renderer/renderer_main_platform_delegate_linux.cc.orig 2017-04-20 13:24:44 UTC
|
||||
+++ src/3rdparty/chromium/content/renderer/renderer_main_platform_delegate_linux.cc
|
||||
@@ -29,6 +29,7 @@ void RendererMainPlatformDelegate::Platf
|
||||
}
|
||||
|
||||
bool RendererMainPlatformDelegate::EnableSandbox() {
|
||||
+#if defined(OS_LINUX)
|
||||
// The setuid sandbox is started in the zygote process: zygote_main_linux.cc
|
||||
// http://code.google.com/p/chromium/wiki/LinuxSUIDSandbox
|
||||
//
|
||||
@@ -60,6 +61,7 @@ bool RendererMainPlatformDelegate::Enabl
|
||||
}
|
||||
#endif // __x86_64__
|
||||
|
||||
+#endif // defined(OS_LINUX)
|
||||
return true;
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
--- src/3rdparty/chromium/crypto/nss_util.cc.orig 2017-04-23 10:32:17 UTC
|
||||
+++ src/3rdparty/chromium/crypto/nss_util.cc
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
#include "crypto/nss_util_internal.h"
|
||||
|
||||
-#if defined(OS_OPENBSD)
|
||||
+#if defined(OS_BSD)
|
||||
#include <sys/mount.h>
|
||||
#include <sys/param.h>
|
||||
#endif
|
||||
@@ -158,10 +158,10 @@ void UseLocalCacheOfNSSDatabaseIfNFS(con
|
||||
base::FileSystemType fs_type = base::FILE_SYSTEM_UNKNOWN;
|
||||
if (base::GetFileSystemType(database_dir, &fs_type))
|
||||
db_on_nfs = (fs_type == base::FILE_SYSTEM_NFS);
|
||||
-#elif defined(OS_OPENBSD)
|
||||
+#elif defined(OS_BSD)
|
||||
struct statfs buf;
|
||||
if (statfs(database_dir.value().c_str(), &buf) == 0)
|
||||
- db_on_nfs = (strcmp(buf.f_fstypename, MOUNT_NFS) == 0);
|
||||
+ db_on_nfs = (strcmp(buf.f_fstypename, "nfs") == 0);
|
||||
#else
|
||||
NOTIMPLEMENTED();
|
||||
#endif
|
|
@ -0,0 +1,22 @@
|
|||
--- src/3rdparty/chromium/device/usb/usb_context.cc.orig 2017-04-11 14:15:58 UTC
|
||||
+++ src/3rdparty/chromium/device/usb/usb_context.cc
|
||||
@@ -9,8 +9,7 @@
|
||||
#include "base/macros.h"
|
||||
#include "base/threading/simple_thread.h"
|
||||
#include "device/usb/usb_error.h"
|
||||
-#include "third_party/libusb/src/libusb/interrupt.h"
|
||||
-#include "third_party/libusb/src/libusb/libusb.h"
|
||||
+#include "libusb.h"
|
||||
|
||||
namespace device {
|
||||
|
||||
@@ -58,7 +57,9 @@ void UsbContext::UsbEventHandler::Run() {
|
||||
|
||||
void UsbContext::UsbEventHandler::Stop() {
|
||||
base::subtle::Release_Store(&running_, 0);
|
||||
+#if !defined(__FreeBSD__)
|
||||
libusb_interrupt_handle_event(context_);
|
||||
+#endif
|
||||
}
|
||||
|
||||
UsbContext::UsbContext(PlatformUsbContext context) : context_(context) {
|
|
@ -0,0 +1,48 @@
|
|||
The hotplug API is not available on FreeBSD <= 10.3.
|
||||
|
||||
The API was added in base r302080, so it is part of FreeBSD 11.0+. It was
|
||||
MFC'ed to stable/10 in r302275, which is between __FreeBSD_version's 1003505
|
||||
(r302228) and 1003506 (r304611).
|
||||
--- src/3rdparty/chromium/device/usb/usb_service_impl.cc.orig 2017-04-20 16:14:07 UTC
|
||||
+++ src/3rdparty/chromium/device/usb/usb_service_impl.cc
|
||||
@@ -482,6 +482,7 @@ UsbServiceImpl::UsbServiceImpl(
|
||||
}
|
||||
context_ = new UsbContext(platform_context);
|
||||
|
||||
+#if defined(__FreeBSD_version) && __FreeBSD_version >= 1003506
|
||||
rv = libusb_hotplug_register_callback(
|
||||
context_->context(),
|
||||
static_cast<libusb_hotplug_event>(LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED |
|
||||
@@ -492,6 +493,7 @@ UsbServiceImpl::UsbServiceImpl(
|
||||
if (rv == LIBUSB_SUCCESS) {
|
||||
hotplug_enabled_ = true;
|
||||
}
|
||||
+#endif
|
||||
|
||||
RefreshDevices();
|
||||
#if defined(OS_WIN)
|
||||
@@ -504,7 +506,9 @@ UsbServiceImpl::UsbServiceImpl(
|
||||
|
||||
UsbServiceImpl::~UsbServiceImpl() {
|
||||
if (hotplug_enabled_) {
|
||||
+#if defined(__FreeBSD_version) && __FreeBSD_version >= 1003506
|
||||
libusb_hotplug_deregister_callback(context_->context(), hotplug_handle_);
|
||||
+#endif
|
||||
}
|
||||
for (const auto& map_entry : devices_) {
|
||||
map_entry.second->OnDisconnect();
|
||||
@@ -744,6 +748,7 @@ void UsbServiceImpl::RemoveDevice(scoped
|
||||
}
|
||||
|
||||
// static
|
||||
+#if defined(__FreeBSD_version) && __FreeBSD_version >= 1003506
|
||||
int LIBUSB_CALL UsbServiceImpl::HotplugCallback(libusb_context* context,
|
||||
PlatformUsbDevice device,
|
||||
libusb_hotplug_event event,
|
||||
@@ -799,5 +804,6 @@ void UsbServiceImpl::OnPlatformDeviceRem
|
||||
}
|
||||
libusb_unref_device(platform_device);
|
||||
}
|
||||
+#endif // defined(__FreeBSD_version) && __FreeBSD_version >= 1003506
|
||||
|
||||
} // namespace device
|
|
@ -0,0 +1,33 @@
|
|||
The hotplug API is not available on FreeBSD <= 10.3.
|
||||
|
||||
The API was added in base r302080, so it is part of FreeBSD 11.0+. It was
|
||||
MFC'ed to stable/10 in r302275, which is between __FreeBSD_version's 1003505
|
||||
(r302228) and 1003506 (r304611).
|
||||
--- src/3rdparty/chromium/device/usb/usb_service_impl.h.orig 2017-04-20 16:14:03 UTC
|
||||
+++ src/3rdparty/chromium/device/usb/usb_service_impl.h
|
||||
@@ -72,6 +72,7 @@ class UsbServiceImpl :
|
||||
void RemoveDevice(scoped_refptr<UsbDeviceImpl> device);
|
||||
|
||||
// Handle hotplug events from libusb.
|
||||
+#if defined(__FreeBSD_version) && __FreeBSD_version >= 1003506
|
||||
static int LIBUSB_CALL HotplugCallback(libusb_context* context,
|
||||
PlatformUsbDevice device,
|
||||
libusb_hotplug_event event,
|
||||
@@ -79,6 +80,7 @@ class UsbServiceImpl :
|
||||
// These functions release a reference to the provided platform device.
|
||||
void OnPlatformDeviceAdded(PlatformUsbDevice platform_device);
|
||||
void OnPlatformDeviceRemoved(PlatformUsbDevice platform_device);
|
||||
+#endif
|
||||
|
||||
scoped_refptr<UsbContext> context_;
|
||||
scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
|
||||
@@ -88,7 +90,9 @@ class UsbServiceImpl :
|
||||
// connected instead of only when a full enumeration is requested.
|
||||
// TODO(reillyg): Support this on all platforms. crbug.com/411715
|
||||
bool hotplug_enabled_ = false;
|
||||
+#if defined(__FreeBSD_version) && __FreeBSD_version >= 1003506
|
||||
libusb_hotplug_callback_handle hotplug_handle_;
|
||||
+#endif
|
||||
|
||||
// Enumeration callbacks are queued until an enumeration completes.
|
||||
bool enumeration_ready_ = false;
|
|
@ -0,0 +1,17 @@
|
|||
--- src/3rdparty/chromium/gpu/gpu_config.gypi.orig 2016-11-07 14:46:18 UTC
|
||||
+++ src/3rdparty/chromium/gpu/gpu_config.gypi
|
||||
@@ -66,12 +66,12 @@
|
||||
'../third_party/amd/amd_videocard_info_win.cc',
|
||||
],
|
||||
}],
|
||||
- ['OS=="linux" and use_libpci==1 and (use_x11==1 or use_ozone==1)', {
|
||||
+ ['(OS=="linux" or os_bsd==1) and use_libpci==1 and (use_x11==1 or use_ozone==1)', {
|
||||
'dependencies': [
|
||||
'../build/linux/system.gyp:libpci',
|
||||
],
|
||||
}],
|
||||
- ['OS=="linux" and use_x11==1', {
|
||||
+ ['(OS=="linux" or os_bsd==1) and use_x11==1', {
|
||||
'dependencies': [
|
||||
'../build/linux/system.gyp:x11',
|
||||
'../build/linux/system.gyp:xext',
|
|
@ -0,0 +1,11 @@
|
|||
--- src/3rdparty/chromium/media/capture/video/file_video_capture_device_factory.cc.orig 2017-04-23 10:37:42 UTC
|
||||
+++ src/3rdparty/chromium/media/capture/video/file_video_capture_device_factory.cc
|
||||
@@ -50,7 +50,7 @@ void FileVideoCaptureDeviceFactory::GetD
|
||||
device_names->push_back(VideoCaptureDevice::Name(
|
||||
command_line_file_path.value(), kFileVideoCaptureDeviceName,
|
||||
VideoCaptureDevice::Name::AVFOUNDATION));
|
||||
-#elif defined(OS_LINUX)
|
||||
+#elif defined(OS_LINUX) || defined(OS_BSD)
|
||||
device_names->push_back(VideoCaptureDevice::Name(
|
||||
command_line_file_path.value(), kFileVideoCaptureDeviceName,
|
||||
VideoCaptureDevice::Name::V4L2_SINGLE_PLANE));
|
|
@ -0,0 +1,21 @@
|
|||
--- src/3rdparty/chromium/media/capture/video/linux/v4l2_capture_delegate.cc.orig 2017-04-19 19:13:43 UTC
|
||||
+++ src/3rdparty/chromium/media/capture/video/linux/v4l2_capture_delegate.cc
|
||||
@@ -20,7 +20,7 @@
|
||||
#include "media/capture/video/linux/v4l2_capture_delegate_single_plane.h"
|
||||
#include "media/capture/video/linux/video_capture_device_linux.h"
|
||||
|
||||
-#if !defined(OS_OPENBSD)
|
||||
+#if !defined(OS_BSD)
|
||||
#include <linux/version.h>
|
||||
#endif
|
||||
|
||||
@@ -277,9 +277,7 @@ void V4L2CaptureDelegate::AllocateAndSta
|
||||
// operation (|errno| == EINVAL in this case) or plain failure.
|
||||
if ((power_line_frequency_ == V4L2_CID_POWER_LINE_FREQUENCY_50HZ)
|
||||
|| (power_line_frequency_ == V4L2_CID_POWER_LINE_FREQUENCY_60HZ)
|
||||
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
|
||||
|| (power_line_frequency_ == V4L2_CID_POWER_LINE_FREQUENCY_AUTO)
|
||||
-#endif
|
||||
) {
|
||||
struct v4l2_control control = {};
|
||||
control.id = V4L2_CID_POWER_LINE_FREQUENCY;
|
|
@ -0,0 +1,25 @@
|
|||
--- src/3rdparty/chromium/media/capture/video/linux/video_capture_device_linux.cc.orig 2016-11-07 14:46:18 UTC
|
||||
+++ src/3rdparty/chromium/media/capture/video/linux/video_capture_device_linux.cc
|
||||
@@ -17,7 +17,9 @@
|
||||
#include <sys/videoio.h>
|
||||
#else
|
||||
#include <linux/videodev2.h>
|
||||
+#if !defined(OS_BSD)
|
||||
#include <linux/version.h>
|
||||
+#endif // defined(OS_BSD)
|
||||
#endif
|
||||
|
||||
namespace media {
|
||||
@@ -144,12 +146,8 @@ int VideoCaptureDeviceLinux::TranslatePo
|
||||
case media::PowerLineFrequency::FREQUENCY_60HZ:
|
||||
return V4L2_CID_POWER_LINE_FREQUENCY_60HZ;
|
||||
default:
|
||||
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
|
||||
// If we have no idea of the frequency, at least try and set it to AUTO.
|
||||
return V4L2_CID_POWER_LINE_FREQUENCY_AUTO;
|
||||
-#else
|
||||
- return V4L2_CID_POWER_LINE_FREQUENCY_60HZ;
|
||||
-#endif
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
--- src/3rdparty/chromium/media/capture/video/video_capture_device.cc.orig 2016-11-07 14:46:18 UTC
|
||||
+++ src/3rdparty/chromium/media/capture/video/video_capture_device.cc
|
||||
@@ -35,7 +35,7 @@ VideoCaptureDevice::Name::Name(const std
|
||||
: device_name_(name), unique_id_(id) {
|
||||
}
|
||||
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
VideoCaptureDevice::Name::Name(const std::string& name,
|
||||
const std::string& id,
|
||||
const CaptureApiType api_type)
|
||||
@@ -82,7 +82,7 @@ VideoCaptureDevice::Name::Name(const std
|
||||
VideoCaptureDevice::Name::~Name() {
|
||||
}
|
||||
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
const char* VideoCaptureDevice::Name::GetCaptureApiTypeString() const {
|
||||
switch (capture_api_type()) {
|
||||
case V4L2_SINGLE_PLANE:
|
|
@ -0,0 +1,38 @@
|
|||
--- src/3rdparty/chromium/media/capture/video/video_capture_device.h.orig 2016-11-07 14:46:18 UTC
|
||||
+++ src/3rdparty/chromium/media/capture/video/video_capture_device.h
|
||||
@@ -51,7 +51,7 @@ class MEDIA_EXPORT VideoCaptureDevice {
|
||||
Name();
|
||||
Name(const std::string& name, const std::string& id);
|
||||
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
// Linux/CrOS targets Capture Api type: it can only be set on construction.
|
||||
enum CaptureApiType {
|
||||
V4L2_SINGLE_PLANE,
|
||||
@@ -83,7 +83,7 @@ class MEDIA_EXPORT VideoCaptureDevice {
|
||||
#endif
|
||||
|
||||
#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
|
||||
- defined(OS_ANDROID)
|
||||
+ defined(OS_ANDROID) || defined(OS_BSD)
|
||||
Name(const std::string& name,
|
||||
const std::string& id,
|
||||
const CaptureApiType api_type);
|
||||
@@ -120,7 +120,7 @@ class MEDIA_EXPORT VideoCaptureDevice {
|
||||
bool operator<(const Name& other) const { return unique_id_ < other.id(); }
|
||||
|
||||
#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
|
||||
- defined(OS_ANDROID)
|
||||
+ defined(OS_ANDROID) || defined(OS_BSD)
|
||||
CaptureApiType capture_api_type() const {
|
||||
return capture_api_class_.capture_api_type();
|
||||
}
|
||||
@@ -144,7 +144,7 @@ class MEDIA_EXPORT VideoCaptureDevice {
|
||||
std::string device_name_;
|
||||
std::string unique_id_;
|
||||
#if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
|
||||
- defined(OS_ANDROID)
|
||||
+ defined(OS_ANDROID) || defined(OS_BSD)
|
||||
// This class wraps the CaptureApiType to give it a by default value if not
|
||||
// initialized.
|
||||
class CaptureApiClass {
|
|
@ -0,0 +1,11 @@
|
|||
--- src/3rdparty/chromium/media/capture/video/video_capture_device_factory.cc.orig 2017-04-23 20:12:45 UTC
|
||||
+++ src/3rdparty/chromium/media/capture/video/video_capture_device_factory.cc
|
||||
@@ -55,7 +55,7 @@ void VideoCaptureDeviceFactory::Enumerat
|
||||
}
|
||||
|
||||
#if !defined(OS_MACOSX) && !defined(OS_LINUX) && !defined(OS_ANDROID) && \
|
||||
- !defined(OS_WIN)
|
||||
+ !defined(OS_WIN) && !defined(OS_BSD)
|
||||
// static
|
||||
VideoCaptureDeviceFactory*
|
||||
VideoCaptureDeviceFactory::CreateVideoCaptureDeviceFactory(
|
|
@ -0,0 +1,10 @@
|
|||
--- src/3rdparty/chromium/media/filters/vp9_parser.h.orig 2016-11-07 14:46:18 UTC
|
||||
+++ src/3rdparty/chromium/media/filters/vp9_parser.h
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
+#include <sys/types.h>
|
||||
|
||||
#include <deque>
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
--- src/3rdparty/chromium/media/media.gyp.orig 2016-11-07 14:46:18 UTC
|
||||
+++ src/3rdparty/chromium/media/media.gyp
|
||||
@@ -809,7 +809,7 @@
|
||||
'capture/video/linux/v4l2_capture_delegate_multi_plane.h',
|
||||
],
|
||||
}],
|
||||
- ['OS=="linux"', {
|
||||
+ ['OS=="linux" or os_bsd==1', {
|
||||
'conditions': [
|
||||
['use_x11==1', {
|
||||
'dependencies': [
|
||||
@@ -1146,7 +1146,7 @@
|
||||
'base/simd/filter_yuv_sse2.cc',
|
||||
],
|
||||
}],
|
||||
- ['OS!="linux" and OS!="win"', {
|
||||
+ ['OS!="linux" and OS!="win" and os_bsd!=1', {
|
||||
'sources!': [
|
||||
'base/keyboard_event_counter.cc',
|
||||
'base/keyboard_event_counter.h',
|
|
@ -0,0 +1,15 @@
|
|||
--- src/3rdparty/chromium/net/base/address_tracker_linux.h.orig 2016-11-07 14:46:18 UTC
|
||||
+++ src/3rdparty/chromium/net/base/address_tracker_linux.h
|
||||
@@ -6,10 +6,12 @@
|
||||
#define NET_BASE_ADDRESS_TRACKER_LINUX_H_
|
||||
|
||||
#include <sys/socket.h> // Needed to include netlink.
|
||||
+#if !defined(__FreeBSD__)
|
||||
// Mask superfluous definition of |struct net|. This is fixed in Linux 2.6.38.
|
||||
#define net net_kernel
|
||||
#include <linux/rtnetlink.h>
|
||||
#undef net
|
||||
+#endif
|
||||
#include <stddef.h>
|
||||
|
||||
#include <map>
|
|
@ -0,0 +1,21 @@
|
|||
Piggyback on the existing #ifdefs for the definitions of some stub functions.
|
||||
--- src/3rdparty/chromium/net/base/network_interfaces_posix.cc.orig 2017-04-20 16:49:59 UTC
|
||||
+++ src/3rdparty/chromium/net/base/network_interfaces_posix.cc
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
#include "base/memory/scoped_ptr.h"
|
||||
|
||||
-#if !defined(OS_NACL)
|
||||
+#if !defined(OS_NACL) && !defined(OS_BSD)
|
||||
#include "net/base/network_interfaces_posix.h"
|
||||
#include <net/if.h>
|
||||
#include <netinet/in.h>
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
namespace net {
|
||||
|
||||
-#if !defined(OS_NACL)
|
||||
+#if !defined(OS_NACL) && !defined(OS_BSD)
|
||||
namespace internal {
|
||||
|
||||
// The application layer can pass |policy| defined in net_util.h to
|
|
@ -0,0 +1,11 @@
|
|||
Needed on FreeBSD 10.3.
|
||||
--- src/3rdparty/chromium/net/dns/address_sorter_posix.cc.orig 2017-04-20 10:17:24 UTC
|
||||
+++ src/3rdparty/chromium/net/dns/address_sorter_posix.cc
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <sys/socket.h> // Must be included before ifaddrs.h.
|
||||
#include <ifaddrs.h>
|
||||
#include <net/if.h>
|
||||
+#include <net/if_var.h>
|
||||
#include <netinet/in_var.h>
|
||||
#include <string.h>
|
||||
#include <sys/ioctl.h>
|
|
@ -0,0 +1,17 @@
|
|||
Include all headers required by res_init(3) and friends.
|
||||
|
||||
Note that as of base r289315 (present in FreeBSD 11+), the libc resolver
|
||||
already reloads /etc/resolv.conf when it is changed, so we should also consider
|
||||
whether to just disable this functionality in Chromium altogether.
|
||||
--- src/3rdparty/chromium/net/dns/dns_reloader.cc.orig 2016-11-07 14:46:18 UTC
|
||||
+++ src/3rdparty/chromium/net/dns/dns_reloader.cc
|
||||
@@ -7,6 +7,9 @@
|
||||
#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) && \
|
||||
!defined(OS_ANDROID)
|
||||
|
||||
+#include <sys/types.h>
|
||||
+#include <netinet/in.h>
|
||||
+#include <arpa/nameser.h>
|
||||
#include <resolv.h>
|
||||
|
||||
#include "base/lazy_instance.h"
|
|
@ -0,0 +1,33 @@
|
|||
--- src/3rdparty/chromium/net/net.gypi.orig 2017-04-19 19:48:59 UTC
|
||||
+++ src/3rdparty/chromium/net/net.gypi
|
||||
@@ -435,8 +435,8 @@
|
||||
'android/network_library.h',
|
||||
'android/traffic_stats.cc',
|
||||
'android/traffic_stats.h',
|
||||
- 'base/address_tracker_linux.cc',
|
||||
- 'base/address_tracker_linux.h',
|
||||
+ # 'base/address_tracker_linux.cc',
|
||||
+ # 'base/address_tracker_linux.h',
|
||||
'base/backoff_entry.cc',
|
||||
'base/backoff_entry.h',
|
||||
'base/backoff_entry_serializer.cc',
|
||||
@@ -497,8 +497,8 @@
|
||||
'base/network_change_notifier.cc',
|
||||
'base/network_change_notifier.h',
|
||||
'base/network_change_notifier_factory.h',
|
||||
- 'base/network_change_notifier_linux.cc',
|
||||
- 'base/network_change_notifier_linux.h',
|
||||
+ # 'base/network_change_notifier_linux.cc',
|
||||
+ # 'base/network_change_notifier_linux.h',
|
||||
'base/network_change_notifier_mac.cc',
|
||||
'base/network_change_notifier_mac.h',
|
||||
'base/network_change_notifier_win.cc',
|
||||
@@ -509,7 +509,7 @@
|
||||
'base/network_delegate.h',
|
||||
'base/network_delegate_impl.cc',
|
||||
'base/network_delegate_impl.h',
|
||||
- 'base/network_interfaces_linux.cc',
|
||||
+ # 'base/network_interfaces_linux.cc',
|
||||
'base/network_interfaces_mac.cc',
|
||||
'base/network_interfaces_win.cc',
|
||||
'base/network_quality_estimator.cc',
|
|
@ -0,0 +1,10 @@
|
|||
--- src/3rdparty/chromium/ppapi/shared_impl/private/net_address_private_impl.cc.orig 2016-11-07 14:46:18 UTC
|
||||
+++ src/3rdparty/chromium/ppapi/shared_impl/private/net_address_private_impl.cc
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <ws2tcpip.h>
|
||||
#elif defined(OS_POSIX) && !defined(OS_NACL)
|
||||
#include <arpa/inet.h>
|
||||
+#include <netinet/in.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/types.h>
|
||||
#endif
|
|
@ -0,0 +1,11 @@
|
|||
--- src/3rdparty/chromium/skia/skia_chrome.gypi.orig 2017-04-20 12:39:06 UTC
|
||||
+++ src/3rdparty/chromium/skia/skia_chrome.gypi
|
||||
@@ -66,7 +66,7 @@
|
||||
'ext/skia_utils_base.cc',
|
||||
],
|
||||
}],
|
||||
- [ 'OS != "android" and (OS != "linux" or use_cairo==1)', {
|
||||
+ [ 'OS != "android" and ((OS != "linux" and os_bsd != 1) or use_cairo==1)', {
|
||||
'sources!': [
|
||||
'ext/bitmap_platform_device_skia.cc',
|
||||
],
|
|
@ -0,0 +1,11 @@
|
|||
--- src/3rdparty/chromium/third_party/WebKit/Source/bindings/core/v8/V8ScriptRunner.cpp.orig 2017-04-11 12:57:39 UTC
|
||||
+++ src/3rdparty/chromium/third_party/WebKit/Source/bindings/core/v8/V8ScriptRunner.cpp
|
||||
@@ -43,6 +43,8 @@
|
||||
|
||||
#if OS(WIN)
|
||||
#include <malloc.h>
|
||||
+#elif defined(__FreeBSD__)
|
||||
+#include <stdlib.h>
|
||||
#else
|
||||
#include <alloca.h>
|
||||
#endif
|
|
@ -0,0 +1,34 @@
|
|||
--- src/3rdparty/chromium/third_party/WebKit/Source/core/core.gyp.orig 2016-11-07 14:46:18 UTC
|
||||
+++ src/3rdparty/chromium/third_party/WebKit/Source/core/core.gyp
|
||||
@@ -458,13 +458,13 @@
|
||||
'layout/LayoutThemeMac.mm',
|
||||
],
|
||||
}],
|
||||
- ['OS != "linux"', {
|
||||
+ ['OS != "linux" and os_bsd != 1', {
|
||||
'sources!': [
|
||||
'layout/LayoutThemeLinux.cpp',
|
||||
'layout/LayoutThemeLinux.h',
|
||||
],
|
||||
}],
|
||||
- ['OS != "linux" and OS != "android"', {
|
||||
+ ['OS != "linux" and OS != "android" and os_bsd != 1', {
|
||||
'sources!': [
|
||||
'layout/LayoutThemeFontProviderLinux.cpp',
|
||||
],
|
||||
@@ -785,13 +785,13 @@
|
||||
'layout/LayoutThemeMac.mm',
|
||||
],
|
||||
}],
|
||||
- ['OS != "linux"', {
|
||||
+ ['OS != "linux" and os_bsd != 1', {
|
||||
'sources!': [
|
||||
'layout/LayoutThemeLinux.cpp',
|
||||
'layout/LayoutThemeLinux.h',
|
||||
],
|
||||
}],
|
||||
- ['OS != "linux" and OS != "android"', {
|
||||
+ ['OS != "linux" and OS != "android" and os_bsd == 1', {
|
||||
'sources!': [
|
||||
'layout/LayoutThemeFontProviderLinux.cpp',
|
||||
],
|
|
@ -0,0 +1,38 @@
|
|||
--- src/3rdparty/chromium/third_party/WebKit/Source/platform/blink_platform.gyp.orig 2016-11-07 14:46:18 UTC
|
||||
+++ src/3rdparty/chromium/third_party/WebKit/Source/platform/blink_platform.gyp
|
||||
@@ -203,7 +204,7 @@
|
||||
['include', 'graphics/cpu/x86/WebGLImageConversionSSE\\.h$'],
|
||||
],
|
||||
}],
|
||||
- ['OS=="linux" or OS=="android" or OS=="win"', {
|
||||
+ ['OS=="linux" or OS=="android" or OS=="win" or os_bsd==1', {
|
||||
'sources/': [
|
||||
# Cherry-pick files excluded by the broader regular expressions above.
|
||||
['include', 'fonts/opentype/OpenTypeTypes\\.h$'],
|
||||
@@ -214,7 +215,7 @@
|
||||
],
|
||||
},
|
||||
],
|
||||
- ['OS=="linux" or OS=="android"', {
|
||||
+ ['OS=="linux" or OS=="android" or os_bsd==1', {
|
||||
'sources/': [
|
||||
['include', 'fonts/linux/FontPlatformDataLinux\\.cpp$'],
|
||||
]
|
||||
@@ -307,7 +308,7 @@
|
||||
['exclude', 'scroll/ScrollbarThemeMac'],
|
||||
],
|
||||
}],
|
||||
- ['OS != "linux" and OS != "mac" and OS != "win"', {
|
||||
+ ['OS != "linux" and OS != "mac" and OS != "win" and os_bsd != 1', {
|
||||
'sources/': [
|
||||
['exclude', 'VDMX[^/]+\\.(cpp|h)$'],
|
||||
],
|
||||
@@ -350,7 +351,7 @@
|
||||
['exclude', 'Android\\.cpp$'],
|
||||
],
|
||||
}],
|
||||
- ['OS=="linux"', {
|
||||
+ ['OS=="linux" or os_bsd==1', {
|
||||
'dependencies': [
|
||||
'<(DEPTH)/build/linux/system.gyp:fontconfig',
|
||||
],
|
|
@ -0,0 +1,11 @@
|
|||
--- src/3rdparty/chromium/third_party/WebKit/Source/platform/fonts/FontPlatformData.cpp.orig 2017-04-11 14:26:52 UTC
|
||||
+++ src/3rdparty/chromium/third_party/WebKit/Source/platform/fonts/FontPlatformData.cpp
|
||||
@@ -357,7 +357,7 @@ PassRefPtr<SharedBuffer> FontPlatformData::openTypeTab
|
||||
{
|
||||
RefPtr<SharedBuffer> buffer;
|
||||
|
||||
- SkFontTableTag tag = WTF::bswap32(table);
|
||||
+ SkFontTableTag tag = bswap32(table);
|
||||
const size_t tableSize = m_typeface->getTableSize(tag);
|
||||
if (tableSize) {
|
||||
Vector<char> tableBuffer(tableSize);
|
|
@ -0,0 +1,11 @@
|
|||
--- src/3rdparty/chromium/third_party/WebKit/Source/platform/heap/StackFrameDepth.cpp.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/third_party/WebKit/Source/platform/heap/StackFrameDepth.cpp
|
||||
@@ -6,6 +6,8 @@
|
||||
|
||||
#include "public/platform/Platform.h"
|
||||
|
||||
+#include <pthread_np.h>
|
||||
+
|
||||
#if OS(WIN)
|
||||
#include <stddef.h>
|
||||
#include <windows.h>
|
|
@ -0,0 +1,11 @@
|
|||
--- src/3rdparty/chromium/third_party/WebKit/Source/web/web.gyp.orig 2017-04-19 18:03:26 UTC
|
||||
+++ src/3rdparty/chromium/third_party/WebKit/Source/web/web.gyp
|
||||
@@ -161,7 +161,7 @@
|
||||
'../core/core.gyp:webcore',
|
||||
],
|
||||
}],
|
||||
- ['OS == "linux"', {
|
||||
+ ['OS == "linux" or os_bsd == 1', {
|
||||
'dependencies': [
|
||||
'<(DEPTH)/build/linux/system.gyp:fontconfig',
|
||||
],
|
|
@ -0,0 +1,18 @@
|
|||
--- src/3rdparty/chromium/third_party/WebKit/Source/wtf/ByteSwap.h.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/third_party/WebKit/Source/wtf/ByteSwap.h
|
||||
@@ -52,9 +52,15 @@ ALWAYS_INLINE uint16_t bswap16(uint16_t x) { return _b
|
||||
|
||||
#else
|
||||
|
||||
+#ifndef bswap64
|
||||
ALWAYS_INLINE uint64_t bswap64(uint64_t x) { return __builtin_bswap64(x); }
|
||||
+#endif
|
||||
+#ifndef bswap32
|
||||
ALWAYS_INLINE uint32_t bswap32(uint32_t x) { return __builtin_bswap32(x); }
|
||||
+#endif
|
||||
+#ifndef bswap16
|
||||
ALWAYS_INLINE uint16_t bswap16(uint16_t x) { return __builtin_bswap16(x); }
|
||||
+#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
--- src/3rdparty/chromium/third_party/ffmpeg/libavutil/mem.c.orig 2017-04-28 19:55:07 UTC
|
||||
+++ src/3rdparty/chromium/third_party/ffmpeg/libavutil/mem.c
|
||||
@@ -32,9 +32,6 @@
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
-#if HAVE_MALLOC_H
|
||||
-#include <malloc.h>
|
||||
-#endif
|
||||
|
||||
#include "avassert.h"
|
||||
#include "avutil.h"
|
|
@ -0,0 +1,11 @@
|
|||
--- src/3rdparty/chromium/third_party/libjingle/libjingle.gyp.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/third_party/libjingle/libjingle.gyp
|
||||
@@ -395,7 +395,7 @@
|
||||
],
|
||||
'conditions': [
|
||||
# TODO(mallinath) - Enable SCTP for iOS.
|
||||
- ['OS!="ios"', {
|
||||
+ ['OS!="ios" and os_bsd!=1', {
|
||||
'defines': [
|
||||
'HAVE_SCTP',
|
||||
],
|
|
@ -0,0 +1,12 @@
|
|||
Already fixed upstream:
|
||||
https://github.com/khaledhosny/ots/commit/5d82ccd35fa61f605a43a5433625e379ca0f4018
|
||||
--- src/3rdparty/chromium/third_party/ots/include/opentype-sanitiser.h.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/third_party/ots/include/opentype-sanitiser.h
|
||||
@@ -22,6 +22,7 @@ typedef unsigned __int64 uint64_t;
|
||||
#else
|
||||
#include <arpa/inet.h>
|
||||
#include <stdint.h>
|
||||
+#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
#include <algorithm>
|
|
@ -0,0 +1,47 @@
|
|||
--- src/3rdparty/chromium/third_party/sfntly/src/cpp/src/sfntly/table/core/cmap_table.cc.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/third_party/sfntly/src/cpp/src/sfntly/table/core/cmap_table.cc
|
||||
@@ -439,7 +439,7 @@ CMapTable::CMapFormat0::Builder::Builder(
|
||||
}
|
||||
|
||||
CMapTable::CMapFormat0::Builder::Builder(const CMapId& cmap_id)
|
||||
- : CMap::Builder(reinterpret_cast<ReadableFontData*>(NULL),
|
||||
+ : CMap::Builder(static_cast<ReadableFontData*>(NULL),
|
||||
CMapFormat::kFormat0,
|
||||
cmap_id) {
|
||||
}
|
||||
@@ -563,7 +563,7 @@ CMapTable::CMapFormat2::Builder::Builder(WritableFontD
|
||||
: CMapTable::CMap::Builder(data ? down_cast<WritableFontData*>(
|
||||
data->Slice(offset, data->ReadUShort(
|
||||
offset + Offset::kFormat0Length)))
|
||||
- : reinterpret_cast<WritableFontData*>(NULL),
|
||||
+ : static_cast<WritableFontData*>(NULL),
|
||||
CMapFormat::kFormat2, cmap_id) {
|
||||
// TODO(arthurhsu): FIXIT: heavy lifting and leak, need fix.
|
||||
}
|
||||
@@ -574,7 +574,7 @@ CMapTable::CMapFormat2::Builder::Builder(ReadableFontD
|
||||
: CMapTable::CMap::Builder(data ? down_cast<ReadableFontData*>(
|
||||
data->Slice(offset, data->ReadUShort(
|
||||
offset + Offset::kFormat0Length)))
|
||||
- : reinterpret_cast<ReadableFontData*>(NULL),
|
||||
+ : static_cast<ReadableFontData*>(NULL),
|
||||
CMapFormat::kFormat2, cmap_id) {
|
||||
// TODO(arthurhsu): FIXIT: heavy lifting and leak, need fix.
|
||||
}
|
||||
@@ -958,7 +958,7 @@ CMapTable::CMapFormat4::Builder::Builder(WritableFontD
|
||||
CMapTable::CMapFormat4::Builder::Builder(SegmentList* segments,
|
||||
IntegerList* glyph_id_array,
|
||||
const CMapId& cmap_id)
|
||||
- : CMap::Builder(reinterpret_cast<ReadableFontData*>(NULL),
|
||||
+ : CMap::Builder(static_cast<ReadableFontData*>(NULL),
|
||||
CMapFormat::kFormat4, cmap_id),
|
||||
segments_(segments->begin(), segments->end()),
|
||||
glyph_id_array_(glyph_id_array->begin(), glyph_id_array->end()) {
|
||||
@@ -966,7 +966,7 @@ CMapTable::CMapFormat4::Builder::Builder(SegmentList*
|
||||
}
|
||||
|
||||
CMapTable::CMapFormat4::Builder::Builder(const CMapId& cmap_id)
|
||||
- : CMap::Builder(reinterpret_cast<ReadableFontData*>(NULL),
|
||||
+ : CMap::Builder(static_cast<ReadableFontData*>(NULL),
|
||||
CMapFormat::kFormat4, cmap_id) {
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
--- src/3rdparty/chromium/third_party/webrtc/base/platform_thread.cc.orig 2016-11-07 14:46:18 UTC
|
||||
+++ src/3rdparty/chromium/third_party/webrtc/base/platform_thread.cc
|
||||
@@ -12,6 +12,8 @@
|
||||
|
||||
#include "webrtc/base/checks.h"
|
||||
|
||||
+#include <pthread_np.h>
|
||||
+
|
||||
#if defined(WEBRTC_LINUX)
|
||||
#include <sys/prctl.h>
|
||||
#include <sys/syscall.h>
|
||||
@@ -30,6 +32,8 @@ PlatformThreadId CurrentThreadId() {
|
||||
ret = syscall(__NR_gettid);
|
||||
#elif defined(WEBRTC_ANDROID)
|
||||
ret = gettid();
|
||||
+#elif defined(BSD)
|
||||
+ ret = pthread_getthreadid_np();
|
||||
#else
|
||||
// Default implementation for nacl and solaris.
|
||||
ret = reinterpret_cast<pid_t>(pthread_self());
|
||||
@@ -73,6 +77,8 @@ void SetCurrentThreadName(const char* na
|
||||
prctl(PR_SET_NAME, reinterpret_cast<unsigned long>(name));
|
||||
#elif defined(WEBRTC_MAC) || defined(WEBRTC_IOS)
|
||||
pthread_setname_np(name);
|
||||
+#elif defined(BSD)
|
||||
+ pthread_set_name_np(pthread_self(), name);
|
||||
#endif
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
--- src/3rdparty/chromium/third_party/webrtc/base/taskrunner.cc.orig 2016-11-07 14:46:18 UTC
|
||||
+++ src/3rdparty/chromium/third_party/webrtc/base/taskrunner.cc
|
||||
@@ -102,7 +102,7 @@ void TaskRunner::InternalRunTasks(bool i
|
||||
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());
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
Define WEBRTC_BSD, to better handle FreeBSD in the sources.
|
||||
|
||||
Copied from www/chromium.
|
||||
|
||||
--- src/3rdparty/chromium/third_party/webrtc/build/common.gypi.orig 2016-11-07 14:46:18 UTC
|
||||
+++ src/3rdparty/chromium/third_party/webrtc/build/common.gypi
|
||||
@@ -352,6 +352,11 @@
|
||||
'WEBRTC_LINUX',
|
||||
],
|
||||
}],
|
||||
+ ['os_bsd==1', {
|
||||
+ 'defines': [
|
||||
+ 'BSD',
|
||||
+ ],
|
||||
+ }],
|
||||
['OS=="mac"', {
|
||||
'defines': [
|
||||
'WEBRTC_MAC',
|
|
@ -0,0 +1,11 @@
|
|||
--- src/3rdparty/chromium/third_party/webrtc/modules/rtp_rtcp/source/rtp_utility.cc.orig 2017-04-20 13:10:18 UTC
|
||||
+++ src/3rdparty/chromium/third_party/webrtc/modules/rtp_rtcp/source/rtp_utility.cc
|
||||
@@ -57,7 +57,7 @@ bool StringCompare(const char* str1, con
|
||||
const uint32_t length) {
|
||||
return _strnicmp(str1, str2, length) == 0;
|
||||
}
|
||||
-#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
|
||||
+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) || defined(BSD)
|
||||
bool StringCompare(const char* str1, const char* str2,
|
||||
const uint32_t length) {
|
||||
return strncasecmp(str1, str2, length) == 0;
|
|
@ -0,0 +1,10 @@
|
|||
--- src/3rdparty/chromium/third_party/webrtc/modules/video_capture/device_info_impl.cc.orig 2017-04-19 18:46:33 UTC
|
||||
+++ src/3rdparty/chromium/third_party/webrtc/modules/video_capture/device_info_impl.cc
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
+#include "webrtc/base/stringutils.h"
|
||||
#include "webrtc/modules/video_capture/device_info_impl.h"
|
||||
#include "webrtc/modules/video_capture/video_capture_config.h"
|
||||
#include "webrtc/system_wrappers/include/logging.h"
|
|
@ -0,0 +1,10 @@
|
|||
--- src/3rdparty/chromium/third_party/webrtc/system_wrappers/source/atomic32_posix.cc.orig 2016-11-07 14:46:18 UTC
|
||||
+++ src/3rdparty/chromium/third_party/webrtc/system_wrappers/source/atomic32_posix.cc
|
||||
@@ -12,7 +12,6 @@
|
||||
|
||||
#include <assert.h>
|
||||
#include <inttypes.h>
|
||||
-#include <malloc.h>
|
||||
|
||||
#include "webrtc/common_types.h"
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
--- src/3rdparty/chromium/third_party/webrtc/system_wrappers/source/condition_variable.cc.orig 2017-04-19 18:46:43 UTC
|
||||
+++ src/3rdparty/chromium/third_party/webrtc/system_wrappers/source/condition_variable.cc
|
||||
@@ -14,7 +14,7 @@
|
||||
#include <windows.h>
|
||||
#include "webrtc/system_wrappers/source/condition_variable_event_win.h"
|
||||
#include "webrtc/system_wrappers/source/condition_variable_native_win.h"
|
||||
-#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
|
||||
+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) || defined(BSD)
|
||||
#include <pthread.h>
|
||||
#include "webrtc/system_wrappers/source/condition_variable_posix.h"
|
||||
#endif
|
||||
@@ -31,7 +31,7 @@ ConditionVariableWrapper* ConditionVaria
|
||||
ret_val = new ConditionVariableEventWin();
|
||||
}
|
||||
return ret_val;
|
||||
-#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
|
||||
+#elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC) || defined(BSD)
|
||||
return ConditionVariablePosix::Create();
|
||||
#else
|
||||
return NULL;
|
|
@ -0,0 +1,25 @@
|
|||
--- src/3rdparty/chromium/third_party/webrtc/voice_engine/voice_engine_defines.h.orig 2016-11-07 14:46:18 UTC
|
||||
+++ src/3rdparty/chromium/third_party/webrtc/voice_engine/voice_engine_defines.h
|
||||
@@ -203,19 +203,21 @@ inline int VoEChannelId(int moduleId) {
|
||||
|
||||
// *** LINUX ***
|
||||
|
||||
-#ifdef WEBRTC_LINUX
|
||||
+#if defined(WEBRTC_LINUX) || defined(BSD)
|
||||
|
||||
#include <arpa/inet.h>
|
||||
#include <netinet/in.h>
|
||||
#include <pthread.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/types.h>
|
||||
+#ifndef BSD
|
||||
#ifndef QNX
|
||||
#include <linux/net.h>
|
||||
#ifndef ANDROID
|
||||
#include <sys/soundcard.h>
|
||||
#endif // ANDROID
|
||||
#endif // QNX
|
||||
+#endif // BSD
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <sched.h>
|
|
@ -0,0 +1,11 @@
|
|||
--- src/3rdparty/chromium/ui/events/event_switches.cc.orig 2017-04-19 09:39:54 UTC
|
||||
+++ src/3rdparty/chromium/ui/events/event_switches.cc
|
||||
@@ -28,7 +28,7 @@ const char kTouchEventsDisabled[] = "dis
|
||||
const char kCompensateForUnstablePinchZoom[] =
|
||||
"compensate-for-unstable-pinch-zoom";
|
||||
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
// Tells chrome to interpret events from these devices as touch events. Only
|
||||
// available with XInput 2 (i.e. X server 1.8 or above). The id's of the
|
||||
// devices can be retrieved from 'xinput list'.
|
|
@ -0,0 +1,11 @@
|
|||
--- src/3rdparty/chromium/ui/events/event_switches.h.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/ui/events/event_switches.h
|
||||
@@ -18,7 +18,7 @@ EVENTS_BASE_EXPORT extern const char kTouchEventsEnabl
|
||||
EVENTS_BASE_EXPORT extern const char kTouchEventsDisabled[];
|
||||
EVENTS_BASE_EXPORT extern const char kCompensateForUnstablePinchZoom[];
|
||||
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
|
||||
EVENTS_BASE_EXPORT extern const char kTouchDevices[];
|
||||
#endif
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
--- src/3rdparty/chromium/ui/gl/gl.gyp.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/ui/gl/gl.gyp
|
||||
@@ -132,7 +132,7 @@
|
||||
'trace_util.h',
|
||||
],
|
||||
'conditions': [
|
||||
- ['OS in ("win", "android", "linux")', {
|
||||
+ ['OS in ("win", "android", "linux", "freebsd")', {
|
||||
'sources': [
|
||||
'egl_util.cc',
|
||||
'egl_util.h',
|
||||
@@ -150,7 +150,7 @@
|
||||
'gl_surface_egl.h',
|
||||
],
|
||||
}],
|
||||
- ['OS in ("android", "linux")', {
|
||||
+ ['OS in ("android", "linux", "freebsd")', {
|
||||
'sources': [
|
||||
'gl_implementation_osmesa.cc',
|
||||
'gl_implementation_osmesa.h',
|
|
@ -0,0 +1,14 @@
|
|||
--- src/3rdparty/chromium/v8/src/crankshaft/lithium.cc.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/v8/src/crankshaft/lithium.cc
|
||||
@@ -125,11 +125,6 @@ void LOperand::PrintTo(StringStream* stream) {
|
||||
|
||||
|
||||
template<LOperand::Kind kOperandKind, int kNumCachedOperands>
|
||||
-LSubKindOperand<kOperandKind, kNumCachedOperands>*
|
||||
-LSubKindOperand<kOperandKind, kNumCachedOperands>::cache = NULL;
|
||||
-
|
||||
-
|
||||
-template<LOperand::Kind kOperandKind, int kNumCachedOperands>
|
||||
void LSubKindOperand<kOperandKind, kNumCachedOperands>::SetUpCache() {
|
||||
if (cache) return;
|
||||
cache = new LSubKindOperand[kNumCachedOperands];
|
|
@ -0,0 +1,14 @@
|
|||
--- src/3rdparty/chromium/v8/src/crankshaft/lithium.h.orig 2017-04-11 14:08:45 UTC
|
||||
+++ src/3rdparty/chromium/v8/src/crankshaft/lithium.h
|
||||
@@ -344,6 +344,11 @@ LITHIUM_OPERAND_LIST(LITHIUM_TYPEDEF_SUBKIND_OPERAND_C
|
||||
#undef LITHIUM_TYPEDEF_SUBKIND_OPERAND_CLASS
|
||||
|
||||
|
||||
+template<LOperand::Kind kOperandKind, int kNumCachedOperands>
|
||||
+LSubKindOperand<kOperandKind, kNumCachedOperands>*
|
||||
+LSubKindOperand<kOperandKind, kNumCachedOperands>::cache = NULL;
|
||||
+
|
||||
+
|
||||
class LParallelMove final : public ZoneObject {
|
||||
public:
|
||||
explicit LParallelMove(Zone* zone) : move_operands_(4, zone) { }
|
13
www/qt5-webengine/files/patch-src_core_core__common.pri
Normal file
13
www/qt5-webengine/files/patch-src_core_core__common.pri
Normal file
|
@ -0,0 +1,13 @@
|
|||
Do not pass --no-undefined to the linker, Chromium uses `environ'.
|
||||
--- src/core/core_common.pri.orig 2017-04-18 20:27:53 UTC
|
||||
+++ src/core/core_common.pri
|
||||
@@ -5,6 +5,9 @@ TARGET = QtWebEngineCore
|
||||
QT += qml quick webchannel
|
||||
QT_PRIVATE += quick-private gui-private core-private webenginecoreheaders-private
|
||||
|
||||
+# The code uses environ, so we cannot pass --no-undefined to the linker.
|
||||
+freebsd: QMAKE_LFLAGS_NOUNDEF =
|
||||
+
|
||||
# Make QtCreator happy.
|
||||
CHROMIUM_SRC_DIR = $$QTWEBENGINE_ROOT/$$getChromiumSrcDir()
|
||||
INCLUDEPATH += $$CHROMIUM_SRC_DIR
|
13
www/qt5-webengine/files/patch-src_core_core__module.pro
Normal file
13
www/qt5-webengine/files/patch-src_core_core__module.pro
Normal file
|
@ -0,0 +1,13 @@
|
|||
Generate split out debug files on FreeBSD too.
|
||||
|
||||
--- src/core/core_module.pro.orig 2017-04-20 22:41:02 UTC
|
||||
+++ src/core/core_module.pro
|
||||
@@ -42,7 +42,7 @@ CONFIG -= bsymbolic_functions
|
||||
|
||||
contains(QT_CONFIG, egl): CONFIG += egl
|
||||
|
||||
-linux: contains(QT_CONFIG, separate_debug_info): QMAKE_POST_LINK="cd $(DESTDIR) && $(STRIP) --strip-unneeded $(TARGET)"
|
||||
+unix: contains(QT_CONFIG, separate_debug_info): QMAKE_POST_LINK="cd $(DESTDIR) && $(STRIP) --strip-unneeded $(TARGET)"
|
||||
|
||||
REPACK_DIR = $$OUT_PWD/$$getConfigDir()/gen/repack
|
||||
# Duplicated from resources/resources.gyp
|
13
www/qt5-webengine/files/patch-src_core_gyp__run.pro
Normal file
13
www/qt5-webengine/files/patch-src_core_gyp__run.pro
Normal file
|
@ -0,0 +1,13 @@
|
|||
Include the freebsd.pri file provided by the port, to pass FreeBSD specific
|
||||
settings to gyp.
|
||||
|
||||
--- src/core/gyp_run.pro.orig 2017-04-11 14:08:46 UTC
|
||||
+++ src/core/gyp_run.pro
|
||||
@@ -15,6 +15,7 @@ cross_compile {
|
||||
linux: include(config/desktop_linux.pri)
|
||||
mac: include(config/mac_osx.pri)
|
||||
win32: include(config/windows.pri)
|
||||
+ freebsd: include(config/freebsd.pri)
|
||||
}
|
||||
GYP_CONFIG += qtwe_process_name_debug=$$QTWEBENGINEPROCESS_NAME_DEBUG
|
||||
GYP_CONFIG += qtwe_process_name_release=$$QTWEBENGINEPROCESS_NAME_RELEASE
|
11
www/qt5-webengine/files/patch-src_core_qtwebengine.gypi
Normal file
11
www/qt5-webengine/files/patch-src_core_qtwebengine.gypi
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- src/core/qtwebengine.gypi.orig 2017-04-19 08:40:53 UTC
|
||||
+++ src/core/qtwebengine.gypi
|
||||
@@ -109,7 +109,7 @@
|
||||
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
|
||||
'msvs_disabled_warnings': [ 4267, 4996, ],
|
||||
}], # OS=="win"
|
||||
- ['OS=="linux"', {
|
||||
+ ['os_posix==1', {
|
||||
'dependencies': [
|
||||
'<(chromium_src_dir)/build/linux/system.gyp:fontconfig',
|
||||
],
|
|
@ -0,0 +1,22 @@
|
|||
--- tools/qmake/config.tests/khr/khr.pro.orig 2017-04-19 08:32:39 UTC
|
||||
+++ tools/qmake/config.tests/khr/khr.pro
|
||||
@@ -3,4 +3,4 @@
|
||||
|
||||
CONFIG-=qt
|
||||
|
||||
-linux:SOURCES += khr.cpp
|
||||
+SOURCES += khr.cpp
|
||||
--- tools/qmake/config.tests/snappy/snappy.pro.orig 2017-04-11 14:08:45 UTC
|
||||
+++ tools/qmake/config.tests/snappy/snappy.pro
|
||||
@@ -1,3 +1,3 @@
|
||||
-linux:SOURCES += snappy.cpp
|
||||
+SOURCES += snappy.cpp
|
||||
LIBS += -lsnappy
|
||||
CONFIG -= qt
|
||||
--- tools/qmake/config.tests/srtp/srtp.pro.orig 2017-04-11 14:08:45 UTC
|
||||
+++ tools/qmake/config.tests/srtp/srtp.pro
|
||||
@@ -1,3 +1,3 @@
|
||||
-linux:SOURCES += srtp.cpp
|
||||
+SOURCES += srtp.cpp
|
||||
LIBS += -lsrtp
|
||||
CONFIG -= qt
|
|
@ -0,0 +1,29 @@
|
|||
--- tools/qmake/mkspecs/features/configure.prf.orig 2017-04-19 08:37:44 UTC
|
||||
+++ tools/qmake/mkspecs/features/configure.prf
|
||||
@@ -4,7 +4,7 @@ load(functions)
|
||||
|
||||
defineTest(runConfigure) {
|
||||
webengine_successfully_configured: return(true)
|
||||
- linux:contains(QT_CONFIG,no-pkg-config) {
|
||||
+ unix:contains(QT_CONFIG,no-pkg-config) {
|
||||
skipBuild("pkg-config is required")
|
||||
return(false)
|
||||
}
|
||||
@@ -20,7 +20,7 @@ defineTest(runConfigure) {
|
||||
qtCompileTest($$test)
|
||||
}
|
||||
|
||||
- linux {
|
||||
+ unix {
|
||||
!config_khr:skipBuild("khronos development headers appear to be missing (mesa/libegl1-mesa-dev)")
|
||||
|
||||
REQUIRED_PACKAGES = dbus-1 fontconfig
|
||||
@@ -78,7 +78,7 @@ defineTest(runConfigure) {
|
||||
# This is called from default_post, at which point we've also parsed
|
||||
# command line options
|
||||
defineTest(finalizeConfigure) {
|
||||
- linux {
|
||||
+ unix {
|
||||
use?(nss) {
|
||||
log("Certificate handling.............. Using system NSS$${EOL}")
|
||||
} else {
|
|
@ -0,0 +1,11 @@
|
|||
Allow qt5-webengine to be built on FreeBSD with clang
|
||||
|
||||
--- tools/qmake/mkspecs/features/functions.prf.orig 2017-04-11 14:08:45 UTC
|
||||
+++ tools/qmake/mkspecs/features/functions.prf
|
||||
@@ -1,5 +1,5 @@
|
||||
defineTest(isPlatformSupported) {
|
||||
- linux {
|
||||
+ unix {
|
||||
!gcc:!clang {
|
||||
skipBuild("Qt WebEngine on Linux requires clang or GCC.")
|
||||
return(false)
|
195
www/qt5-webengine/pkg-plist
Normal file
195
www/qt5-webengine/pkg-plist
Normal file
|
@ -0,0 +1,195 @@
|
|||
%%QT_INCDIR%%/QtWebEngine/%%FULLVER%%/QtWebEngine/private/qquickwebenginecertificateerror_p.h
|
||||
%%QT_INCDIR%%/QtWebEngine/%%FULLVER%%/QtWebEngine/private/qquickwebenginecontextmenudata_p.h
|
||||
%%QT_INCDIR%%/QtWebEngine/%%FULLVER%%/QtWebEngine/private/qquickwebenginedownloaditem_p.h
|
||||
%%QT_INCDIR%%/QtWebEngine/%%FULLVER%%/QtWebEngine/private/qquickwebenginedownloaditem_p_p.h
|
||||
%%QT_INCDIR%%/QtWebEngine/%%FULLVER%%/QtWebEngine/private/qquickwebenginefaviconprovider_p_p.h
|
||||
%%QT_INCDIR%%/QtWebEngine/%%FULLVER%%/QtWebEngine/private/qquickwebenginehistory_p.h
|
||||
%%QT_INCDIR%%/QtWebEngine/%%FULLVER%%/QtWebEngine/private/qquickwebenginehistory_p_p.h
|
||||
%%QT_INCDIR%%/QtWebEngine/%%FULLVER%%/QtWebEngine/private/qquickwebengineloadrequest_p.h
|
||||
%%QT_INCDIR%%/QtWebEngine/%%FULLVER%%/QtWebEngine/private/qquickwebenginenavigationrequest_p.h
|
||||
%%QT_INCDIR%%/QtWebEngine/%%FULLVER%%/QtWebEngine/private/qquickwebenginenewviewrequest_p.h
|
||||
%%QT_INCDIR%%/QtWebEngine/%%FULLVER%%/QtWebEngine/private/qquickwebengineprofile_p.h
|
||||
%%QT_INCDIR%%/QtWebEngine/%%FULLVER%%/QtWebEngine/private/qquickwebenginescript_p.h
|
||||
%%QT_INCDIR%%/QtWebEngine/%%FULLVER%%/QtWebEngine/private/qquickwebenginescript_p_p.h
|
||||
%%QT_INCDIR%%/QtWebEngine/%%FULLVER%%/QtWebEngine/private/qquickwebenginesettings_p.h
|
||||
%%QT_INCDIR%%/QtWebEngine/%%FULLVER%%/QtWebEngine/private/qquickwebenginesingleton_p.h
|
||||
%%QT_INCDIR%%/QtWebEngine/%%FULLVER%%/QtWebEngine/private/qquickwebenginetestsupport_p.h
|
||||
%%QT_INCDIR%%/QtWebEngine/%%FULLVER%%/QtWebEngine/private/qquickwebengineview_p.h
|
||||
%%QT_INCDIR%%/QtWebEngine/%%FULLVER%%/QtWebEngine/private/qquickwebengineview_p_p.h
|
||||
%%QT_INCDIR%%/QtWebEngine/%%FULLVER%%/QtWebEngine/private/qtwebengineglobal_p.h
|
||||
%%QT_INCDIR%%/QtWebEngine/QQuickWebEngineProfile
|
||||
%%QT_INCDIR%%/QtWebEngine/QtWebEngine
|
||||
%%QT_INCDIR%%/QtWebEngine/QtWebEngineDepends
|
||||
%%QT_INCDIR%%/QtWebEngine/QtWebEngineVersion
|
||||
%%QT_INCDIR%%/QtWebEngine/qquickwebengineprofile.h
|
||||
%%QT_INCDIR%%/QtWebEngine/qtwebengineglobal.h
|
||||
%%QT_INCDIR%%/QtWebEngine/qtwebengineversion.h
|
||||
%%QT_INCDIR%%/QtWebEngineCore/%%FULLVER%%/QtWebEngineCore/private/qtwebenginecoreglobal_p.h
|
||||
%%QT_INCDIR%%/QtWebEngineCore/%%FULLVER%%/QtWebEngineCore/private/qwebenginecallback_p.h
|
||||
%%QT_INCDIR%%/QtWebEngineCore/%%FULLVER%%/QtWebEngineCore/private/qwebenginecookiestore_p.h
|
||||
%%QT_INCDIR%%/QtWebEngineCore/%%FULLVER%%/QtWebEngineCore/private/qwebengineurlrequestinfo_p.h
|
||||
%%QT_INCDIR%%/QtWebEngineCore/QWebEngineCallback
|
||||
%%QT_INCDIR%%/QtWebEngineCore/QWebEngineCookieStore
|
||||
%%QT_INCDIR%%/QtWebEngineCore/QWebEngineUrlRequestInfo
|
||||
%%QT_INCDIR%%/QtWebEngineCore/QWebEngineUrlRequestInterceptor
|
||||
%%QT_INCDIR%%/QtWebEngineCore/QWebEngineUrlRequestJob
|
||||
%%QT_INCDIR%%/QtWebEngineCore/QWebEngineUrlSchemeHandler
|
||||
%%QT_INCDIR%%/QtWebEngineCore/QtWebEngineCore
|
||||
%%QT_INCDIR%%/QtWebEngineCore/QtWebEngineCoreDepends
|
||||
%%QT_INCDIR%%/QtWebEngineCore/QtWebEngineCoreVersion
|
||||
%%QT_INCDIR%%/QtWebEngineCore/qtwebenginecoreglobal.h
|
||||
%%QT_INCDIR%%/QtWebEngineCore/qtwebenginecoreversion.h
|
||||
%%QT_INCDIR%%/QtWebEngineCore/qwebenginecallback.h
|
||||
%%QT_INCDIR%%/QtWebEngineCore/qwebenginecookiestore.h
|
||||
%%QT_INCDIR%%/QtWebEngineCore/qwebengineurlrequestinfo.h
|
||||
%%QT_INCDIR%%/QtWebEngineCore/qwebengineurlrequestinterceptor.h
|
||||
%%QT_INCDIR%%/QtWebEngineCore/qwebengineurlrequestjob.h
|
||||
%%QT_INCDIR%%/QtWebEngineCore/qwebengineurlschemehandler.h
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/%%FULLVER%%/QtWebEngineWidgets/private/qwebenginedownloaditem_p.h
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/%%FULLVER%%/QtWebEngineWidgets/private/qwebenginehistory_p.h
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/%%FULLVER%%/QtWebEngineWidgets/private/qwebenginepage_p.h
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/%%FULLVER%%/QtWebEngineWidgets/private/qwebengineprofile_p.h
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/%%FULLVER%%/QtWebEngineWidgets/private/qwebenginescriptcollection_p.h
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/%%FULLVER%%/QtWebEngineWidgets/private/qwebengineview_p.h
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/QWebEngineCertificateError
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/QWebEngineContextMenuData
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/QWebEngineDownloadItem
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/QWebEngineFullScreenRequest
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/QWebEngineHistory
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/QWebEngineHistoryItem
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/QWebEnginePage
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/QWebEngineProfile
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/QWebEngineScript
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/QWebEngineScriptCollection
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/QWebEngineSettings
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/QWebEngineView
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/QtWebEngineWidgets
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/QtWebEngineWidgetsDepends
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/QtWebEngineWidgetsVersion
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/qtwebenginewidgetsglobal.h
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/qtwebenginewidgetsversion.h
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/qwebenginecertificateerror.h
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/qwebenginecontextmenudata.h
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/qwebenginedownloaditem.h
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/qwebenginefullscreenrequest.h
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/qwebenginehistory.h
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/qwebenginepage.h
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/qwebengineprofile.h
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/qwebenginescript.h
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/qwebenginescriptcollection.h
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/qwebenginesettings.h
|
||||
%%QT_INCDIR%%/QtWebEngineWidgets/qwebengineview.h
|
||||
%%QT_CMAKEDIR%%/Qt5Designer/Qt5Designer_QWebEngineViewPlugin.cmake
|
||||
%%QT_CMAKEDIR%%/Qt5WebEngine/Qt5WebEngineConfig.cmake
|
||||
%%QT_CMAKEDIR%%/Qt5WebEngine/Qt5WebEngineConfigVersion.cmake
|
||||
%%QT_CMAKEDIR%%/Qt5WebEngineCore/Qt5WebEngineCoreConfig.cmake
|
||||
%%QT_CMAKEDIR%%/Qt5WebEngineCore/Qt5WebEngineCoreConfigVersion.cmake
|
||||
%%QT_CMAKEDIR%%/Qt5WebEngineWidgets/Qt5WebEngineWidgetsConfig.cmake
|
||||
%%QT_CMAKEDIR%%/Qt5WebEngineWidgets/Qt5WebEngineWidgetsConfigVersion.cmake
|
||||
%%QT_LIBDIR%%/libQt5WebEngine.prl
|
||||
%%QT_LIBDIR%%/libQt5WebEngine.so
|
||||
%%QT_LIBDIR%%/libQt5WebEngine.so.5
|
||||
%%QT_LIBDIR%%/libQt5WebEngine.so.%%SHORTVER%%
|
||||
%%QT_LIBDIR%%/libQt5WebEngine.so.%%FULLVER%%
|
||||
%%DEBUG%%%%QT_LIBDIR%%/libQt5WebEngine.so.%%FULLVER%%.debug
|
||||
%%QT_LIBDIR%%/libQt5WebEngineCore.prl
|
||||
%%QT_LIBDIR%%/libQt5WebEngineCore.so
|
||||
%%QT_LIBDIR%%/libQt5WebEngineCore.so.5
|
||||
%%QT_LIBDIR%%/libQt5WebEngineCore.so.%%SHORTVER%%
|
||||
%%QT_LIBDIR%%/libQt5WebEngineCore.so.%%FULLVER%%
|
||||
%%DEBUG%%%%QT_LIBDIR%%/libQt5WebEngineCore.so.%%FULLVER%%.debug
|
||||
%%QT_LIBDIR%%/libQt5WebEngineWidgets.prl
|
||||
%%QT_LIBDIR%%/libQt5WebEngineWidgets.so
|
||||
%%QT_LIBDIR%%/libQt5WebEngineWidgets.so.5
|
||||
%%QT_LIBDIR%%/libQt5WebEngineWidgets.so.%%SHORTVER%%
|
||||
%%QT_LIBDIR%%/libQt5WebEngineWidgets.so.%%FULLVER%%
|
||||
%%DEBUG%%%%QT_LIBDIR%%/libQt5WebEngineWidgets.so.%%FULLVER%%.debug
|
||||
%%QT_MKSPECDIR%%/modules/qt_lib_webengine.pri
|
||||
%%QT_MKSPECDIR%%/modules/qt_lib_webengine_private.pri
|
||||
%%QT_MKSPECDIR%%/modules/qt_lib_webenginecore.pri
|
||||
%%QT_MKSPECDIR%%/modules/qt_lib_webenginecore_private.pri
|
||||
%%QT_MKSPECDIR%%/modules/qt_lib_webenginecoreheaders_private.pri
|
||||
%%QT_MKSPECDIR%%/modules/qt_lib_webenginewidgets.pri
|
||||
%%QT_MKSPECDIR%%/modules/qt_lib_webenginewidgets_private.pri
|
||||
%%QT_PLUGINDIR%%/designer/libqwebengineview.so
|
||||
%%DEBUG%%%%QT_PLUGINDIR%%/designer/libqwebengineview.so.debug
|
||||
%%QT_QMLDIR%%/QtWebEngine/UIDelegates/AlertDialog.qml
|
||||
%%QT_QMLDIR%%/QtWebEngine/UIDelegates/AuthenticationDialog.qml
|
||||
%%QT_QMLDIR%%/QtWebEngine/UIDelegates/ColorDialog.qml
|
||||
%%QT_QMLDIR%%/QtWebEngine/UIDelegates/ConfirmDialog.qml
|
||||
%%QT_QMLDIR%%/QtWebEngine/UIDelegates/FilePicker.qml
|
||||
%%QT_QMLDIR%%/QtWebEngine/UIDelegates/Menu.qml
|
||||
%%QT_QMLDIR%%/QtWebEngine/UIDelegates/MenuItem.qml
|
||||
%%QT_QMLDIR%%/QtWebEngine/UIDelegates/MenuSeparator.qml
|
||||
%%QT_QMLDIR%%/QtWebEngine/UIDelegates/MessageBubble.qml
|
||||
%%QT_QMLDIR%%/QtWebEngine/UIDelegates/PromptDialog.qml
|
||||
%%QT_QMLDIR%%/QtWebEngine/UIDelegates/qmldir
|
||||
%%QT_QMLDIR%%/QtWebEngine/experimental/libqtwebengineexperimentalplugin.so
|
||||
%%DEBUG%%%%QT_QMLDIR%%/QtWebEngine/experimental/libqtwebengineexperimentalplugin.so.debug
|
||||
%%QT_QMLDIR%%/QtWebEngine/experimental/qmldir
|
||||
%%QT_QMLDIR%%/QtWebEngine/libqtwebengineplugin.so
|
||||
%%DEBUG%%%%QT_QMLDIR%%/QtWebEngine/libqtwebengineplugin.so.debug
|
||||
%%QT_QMLDIR%%/QtWebEngine/plugins.qmltypes
|
||||
%%QT_QMLDIR%%/QtWebEngine/qmldir
|
||||
libdata/pkgconfig/Qt5WebEngine.pc
|
||||
libdata/pkgconfig/Qt5WebEngineCore.pc
|
||||
libdata/pkgconfig/Qt5WebEngineWidgets.pc
|
||||
%%QT_LIBEXECDIR%%/QtWebEngineProcess
|
||||
%%QT_DATADIR%%/resources/icudtl.dat
|
||||
%%QT_DATADIR%%/resources/qtwebengine_devtools_resources.pak
|
||||
%%QT_DATADIR%%/resources/qtwebengine_resources.pak
|
||||
%%QT_DATADIR%%/resources/qtwebengine_resources_100p.pak
|
||||
%%QT_DATADIR%%/resources/qtwebengine_resources_200p.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/am.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/ar.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/bg.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/bn.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/ca.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/cs.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/da.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/de.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/el.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/en-GB.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/en-US.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/es-419.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/es.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/et.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/fa.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/fi.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/fil.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/fr.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/gu.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/he.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/hi.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/hr.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/hu.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/id.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/it.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/ja.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/kn.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/ko.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/lt.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/lv.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/ml.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/mr.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/ms.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/nb.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/nl.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/pl.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/pt-BR.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/pt-PT.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/ro.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/ru.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/sk.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/sl.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/sr.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/sv.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/sw.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/ta.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/te.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/th.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/tr.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/uk.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/vi.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/zh-CN.pak
|
||||
%%QT_L10NDIR%%/qtwebengine_locales/zh-TW.pak
|
Loading…
Add table
Reference in a new issue