new package: qt5-qtwebengine

This commit is contained in:
Chongyun Lee 2023-01-06 23:30:07 +08:00 committed by xtkoba
parent 4dfa1f1836
commit 67bf160355
45 changed files with 6163 additions and 0 deletions

View File

@ -0,0 +1,77 @@
--- a/src/buildtools/configure.json
+++ b/src/buildtools/configure.json
@@ -264,18 +264,6 @@
"label": "system gn",
"type": "detectGn"
},
- "webengine-glibc": {
- "label": "glibc > 2.16",
- "type": "compile",
- "test": {
- "include": "features.h",
- "tail": [
- "#if __GLIBC__ < 2 || __GLIBC_MINOR__ < 17",
- "#error glibc versions below 2.17 are not supported",
- "#endif"
- ]
- }
- },
"webengine-gperf": {
"label": "gperf",
"type": "detectGperf"
@@ -379,7 +367,6 @@
&& (!config.sanitizer || features.webengine-sanitizer)
&& (!config.linux || features.pkg-config)
&& (!config.linux || features.webengine-host-pkg-config)
- && (!config.linux || features.webengine-system-glibc)
&& (!config.linux || features.webengine-system-khr)
&& (!config.linux || features.webengine-system-nss)
&& (!config.linux || features.webengine-system-dbus)
@@ -517,11 +504,6 @@
"condition": "config.unix && !config.darwin && libs.webengine-nss",
"output": [ "privateFeature" ]
},
- "webengine-system-glibc": {
- "label": "glibc",
- "condition": "config.linux && tests.webengine-glibc",
- "output": [ "privateFeature" ]
- },
"webengine-system-x11" : {
"label": "x11",
"condition": "config.unix && libs.webengine-x11",
@@ -782,8 +764,7 @@
"webengine-system-fontconfig",
"webengine-system-dbus",
"webengine-system-nss",
- "webengine-system-khr",
- "webengine-system-glibc"
+ "webengine-system-khr"
]
},
{
--- a/src/buildtools/config/support.pri
+++ b/src/buildtools/config/support.pri
@@ -26,7 +26,6 @@
!qtwebengine_checkForSanitizer(QtWebEngine):return(false)
linux:!qtwebengine_checkForPkgCfg(QtWebEngine):return(false)
linux:!qtwebengine_checkForHostPkgCfg(QtWebEngine):return(false)
- linux:!qtwebengine_checkForGlibc(QtWebEngine):return(false)
linux:!qtwebengine_checkForKhronos(QtWebEngine):return(false)
linux:!qtwebengine_checkForPackage(QtWebEngine,nss):return(false)
linux:!qtwebengine_checkForPackage(QtWebEngine,dbus):return(false)
@@ -187,15 +186,6 @@
return(false)
}
return(true)
-}
-
-defineTest(qtwebengine_checkForGlibc) {
- module = $$1
- !qtConfig(webengine-system-glibc) {
- qtwebengine_skipBuild("A suitable version >= 2.27 of libc required to build $${module} could not be found.")
- return(false)
- }
- return(true)
}
defineTest(qtwebengine_checkForKhronos) {

View File

@ -0,0 +1,25 @@
--- a/src/buildtools/configure.json
+++ b/src/buildtools/configure.json
@@ -365,13 +365,12 @@
&& features.webengine-python2
&& features.webengine-nodejs
&& (!config.sanitizer || features.webengine-sanitizer)
- && (!config.linux || features.pkg-config)
&& (!config.linux || features.webengine-host-pkg-config)
&& (!config.linux || features.webengine-system-khr)
&& (!config.linux || features.webengine-system-nss)
&& (!config.linux || features.webengine-system-dbus)
&& (!config.linux || features.webengine-system-fontconfig)
- && (!config.linux || !features.pkg-config || !features.xcb || features.webengine-ozone-x11)
+ && (!config.linux || !features.xcb || features.webengine-ozone-x11)
&& (!config.win32 || features.webengine-win-compiler64)
&& (!config.win32 || features.webengine-winversion)",
"output": [ "privateFeature" ]
@@ -389,7 +388,6 @@
&& features.webengine-flex
&& features.webengine-python2
&& (!config.sanitizer || features.webengine-sanitizer)
- && (!config.linux || features.pkg-config)
&& (!config.linux || features.webengine-host-pkg-config)
&& (!config.win32 || features.webengine-winversion)",
"output": [ "privateFeature" ]

View File

@ -0,0 +1,24 @@
--- a/src/3rdparty/chromium/build/config/compiler/BUILD.gn
+++ b/src/3rdparty/chromium/build/config/compiler/BUILD.gn
@@ -783,8 +783,8 @@
}
} else if (current_cpu == "arm") {
if (is_clang && !is_android && !is_nacl) {
- cflags += [ "--target=arm-linux-gnueabihf" ]
- ldflags += [ "--target=arm-linux-gnueabihf" ]
+ cflags += [ "--target=armv7a-linux-androideabi24" ]
+ ldflags += [ "--target=armv7a-linux-androideabi24" ]
}
if (!is_nacl) {
cflags += [
@@ -797,8 +797,8 @@
}
} else if (current_cpu == "arm64") {
if (is_clang && !is_android && !is_nacl && !is_fuchsia) {
- cflags += [ "--target=aarch64-linux-gnu" ]
- ldflags += [ "--target=aarch64-linux-gnu" ]
+ cflags += [ "--target=aarch64-linux-android24" ]
+ ldflags += [ "--target=aarch64-linux-android24" ]
}
} else if (current_cpu == "mipsel" && !is_nacl) {
ldflags += [ "-Wl,--hash-style=sysv" ]

View File

@ -0,0 +1,46 @@
--- a/src/3rdparty/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h
+++ b/src/3rdparty/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h
@@ -21,9 +21,9 @@
template <typename Dst, typename Src>
SI Dst widen_cast(const Src& src) {
- static_assert(sizeof(Dst) > sizeof(Src), "");
- static_assert(std::is_trivially_copyable<Dst>::value, "");
- static_assert(std::is_trivially_copyable<Src>::value, "");
+ static_assert(sizeof(Dst) > sizeof(Src));
+ static_assert(std::is_trivially_copyable<Dst>::value);
+ static_assert(std::is_trivially_copyable<Src>::value);
Dst dst;
memcpy(&dst, &src, sizeof(Src));
return dst;
@@ -980,13 +980,8 @@
SI F from_half(U16 h) {
#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \
&& !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-#if defined(SK_BUILD_FOR_MAC)
return vcvt_f32_f16(h);
-#else
- __fp16 fp16;
- memcpy(&fp16, &h, sizeof(U16));
- return float(fp16);
-#endif
+
#elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_SKX)
return _mm256_cvtph_ps(h);
@@ -1006,14 +1001,8 @@
SI U16 to_half(F f) {
#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \
&& !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-#if defined(SK_BUILD_FOR_MAC)
return vcvt_f16_f32(f);
-#else
- __fp16 fp16 = __fp16(f);
- U16 u16;
- memcpy(&u16, &fp16, sizeof(U16));
- return u16;
-#endif
+
#elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_SKX)
return _mm256_cvtps_ph(f, _MM_FROUND_CUR_DIRECTION);

View File

@ -0,0 +1,18 @@
--- a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
+++ b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
@@ -194,6 +194,7 @@
//
// The following code only works if notes are ordered as expected.
switch (type) {
+#if !defined(__ANDROID__)
case NT_PRSTATUS: {
if (description.length() != sizeof(elf_prstatus)) {
fprintf(stderr, "Found NT_PRSTATUS descriptor of unexpected size\n");
@@ -231,6 +232,7 @@
thread_infos_.push_back(info);
break;
}
+#endif
case NT_SIGINFO: {
if (description.length() != sizeof(siginfo_t)) {
fprintf(stderr, "Found NT_SIGINFO descriptor of unexpected size\n");

View File

@ -0,0 +1,107 @@
--- a/src/3rdparty/chromium/base/debug/stack_trace_posix.cc
+++ b/src/3rdparty/chromium/base/debug/stack_trace_posix.cc
@@ -27,7 +27,7 @@
#if !defined(USE_SYMBOLIZE)
#include <cxxabi.h>
#endif
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
#include <execinfo.h>
#endif
@@ -88,7 +88,7 @@
// Note: code in this function is NOT async-signal safe (std::string uses
// malloc internally).
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
std::string::size_type search_from = 0;
while (search_from < text->size()) {
// Look for the start of a mangled symbol, from search_from.
@@ -135,7 +135,7 @@
virtual ~BacktraceOutputHandler() = default;
};
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
void OutputPointer(void* pointer, BacktraceOutputHandler* handler) {
// This should be more than enough to store a 64-bit number in hex:
// 16 hex digits + 1 for null-terminator.
@@ -834,7 +834,7 @@
// NOTE: This code MUST be async-signal safe (it's used by in-process
// stack dumping signal handler). NO malloc or stdio is allowed here.
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
// Though the backtrace API man page does not list any possible negative
// return values, we take no chance.
return base::saturated_cast<size_t>(backtrace(trace, count));
@@ -847,13 +847,13 @@
// NOTE: This code MUST be async-signal safe (it's used by in-process
// stack dumping signal handler). NO malloc or stdio is allowed here.
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
PrintBacktraceOutputHandler handler;
ProcessBacktrace(trace_, count_, prefix_string, &handler);
#endif
}
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
void StackTrace::OutputToStreamWithPrefix(std::ostream* os,
const char* prefix_string) const {
StreamBacktraceOutputHandler handler(os);
--- a/src/3rdparty/chromium/v8/src/codegen/external-reference-table.cc
+++ b/src/3rdparty/chromium/v8/src/codegen/external-reference-table.cc
@@ -11,7 +11,9 @@
#if defined(DEBUG) && defined(V8_OS_LINUX) && !defined(V8_OS_ANDROID)
#define SYMBOLIZE_FUNCTION
+#if defined(__GLIBC__)
#include <execinfo.h>
+#endif
#include <vector>
#endif // DEBUG && V8_OS_LINUX && !V8_OS_ANDROID
@@ -93,7 +95,7 @@
}
const char* ExternalReferenceTable::ResolveSymbol(void* address) {
-#ifdef SYMBOLIZE_FUNCTION
+#if defined(SYMBOLIZE_FUNCTION) && defined(__GLIBC__)
char** names = backtrace_symbols(&address, 1);
const char* name = names[0];
// The array of names is malloc'ed. However, each name string is static
--- a/src/3rdparty/chromium/base/debug/stack_trace.cc
+++ b/src/3rdparty/chromium/base/debug/stack_trace.cc
@@ -217,7 +217,9 @@
}
void StackTrace::OutputToStream(std::ostream* os) const {
+#if defined(__GLIBC__) && !defined(_AIX)
OutputToStreamWithPrefix(os, nullptr);
+#endif
}
std::string StackTrace::ToString() const {
@@ -225,7 +227,7 @@
}
std::string StackTrace::ToStringWithPrefix(const char* prefix_string) const {
std::stringstream stream;
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
OutputToStreamWithPrefix(&stream, prefix_string);
#endif
return stream.str();
--- a/src/3rdparty/chromium/v8/src/base/debug/stack_trace_posix.cc
+++ b/src/3rdparty/chromium/v8/src/base/debug/stack_trace_posix.cc
@@ -25,7 +25,7 @@
#include <string>
#include <vector>
-#if V8_LIBC_GLIBC || V8_LIBC_BSD || V8_LIBC_UCLIBC || V8_OS_SOLARIS
+#if (V8_LIBC_GLIBC || V8_LIBC_BSD || V8_LIBC_UCLIBC || V8_OS_SOLARIS) && !defined(__ANDROID__)
#define HAVE_EXECINFO_H 1
#endif

View File

@ -0,0 +1,10 @@
--- a/src/buildtools/config/linux.pri
+++ b/src/buildtools/config/linux.pri
@@ -48,6 +48,7 @@
cross_compile:!host_build {
TOOLCHAIN_SYSROOT = $$[QT_SYSROOT]
+ isEmpty(TOOLCHAIN_SYSROOT): TOOLCHAIN_SYSROOT = $$DUMMY_SYSROOT
!isEmpty(TOOLCHAIN_SYSROOT): gn_args += target_sysroot=\"$${TOOLCHAIN_SYSROOT}\"
}

View File

@ -0,0 +1,11 @@
--- a/src/3rdparty/chromium/base/files/file_posix.cc
+++ b/src/3rdparty/chromium/base/files/file_posix.cc
@@ -50,7 +50,7 @@
}
int CallFutimes(PlatformFile file, const struct timeval times[2]) {
-#ifdef __USE_XOPEN2K8
+#if defined(__USE_XOPEN2K8) || (defined(__ANDROID__) && __ANDROID_API__ < 26)
// futimens should be available, but futimes might not be
// http://pubs.opengroup.org/onlinepubs/9699919799/

View File

@ -0,0 +1,58 @@
From d5fe7a471fd6ab1bbb2ec9d270f44bddcefaa015 Mon Sep 17 00:00:00 2001
From: Jeongik Cha <jeongik@google.com>
Date: Wed, 10 Mar 2021 06:09:02 +0000
Subject: [PATCH] Supplement the condition for strerror_r in bionic
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The current condition assumes that bionic is used for only android
device target, but it can be host target as well.
So to support an android host target using bionic instead of glibc,
supplement the condition for strerror_r as the condition in strings.h
in bionic.
Test: build libchrome for linux_glibc, linux_bionic, android_bionic
Bug: b/181203470
Change-Id: Id4bec947ecb90c06c47db2cc77b721041b1931d9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2738587
Reviewed-by: François Doray <fdoray@chromium.org>
Reviewed-by: Albert J. Wong <ajwong@chromium.org>
Auto-Submit: Jeongik Cha <jeongik@google.com>
Commit-Queue: Jeongik Cha <jeongik@google.com>
Cr-Commit-Position: refs/heads/master@{#861445}
---
base/posix/safe_strerror.cc | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)
diff --git a/base/posix/safe_strerror.cc b/base/posix/safe_strerror.cc
index aef5742d33135..aab8b879218b5 100644
--- a/src/3rdparty/chromium/base/posix/safe_strerror.cc
+++ b/src/3rdparty/chromium/base/posix/safe_strerror.cc
@@ -2,14 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#if defined(__ANDROID__)
-// Post-L versions of bionic define the GNU-specific strerror_r if _GNU_SOURCE
-// is defined, but the symbol is renamed to __gnu_strerror_r which only exists
-// on those later versions. To preserve ABI compatibility with older versions,
-// undefine _GNU_SOURCE and use the POSIX version.
-#undef _GNU_SOURCE
-#endif
-
#include "base/posix/safe_strerror.h"
#include <errno.h>
@@ -22,6 +14,11 @@ namespace base {
#if defined(__GLIBC__) || defined(OS_NACL)
#define USE_HISTORICAL_STRERRO_R 1
+// Post-L versions of bionic define the GNU-specific strerror_r if _GNU_SOURCE
+// is defined, but the symbol is renamed to __gnu_strerror_r which only exists
+// on those later versions. For parity, add the same condition as bionic.
+#elif defined(__BIONIC__) && defined(_GNU_SOURCE) && __ANDROID_API__ >= 23
+#define USE_HISTORICAL_STRERRO_R 1
#else
#define USE_HISTORICAL_STRERRO_R 0
#endif

View File

@ -0,0 +1,11 @@
--- a/src/3rdparty/chromium/base/synchronization/lock_impl_posix.cc
+++ b/src/3rdparty/chromium/base/synchronization/lock_impl_posix.cc
@@ -59,7 +59,7 @@
// Lock::PriorityInheritanceAvailable still must be checked as the code may
// compile but the underlying platform still may not correctly support priority
// inheritance locks.
-#if defined(OS_NACL) || defined(OS_ANDROID) || defined(OS_FUCHSIA)
+#if defined(OS_NACL) || defined(OS_ANDROID) || defined(OS_FUCHSIA) || defined(__TERMUX__)
#define PRIORITY_INHERITANCE_LOCKS_POSSIBLE() 0
#else
#define PRIORITY_INHERITANCE_LOCKS_POSSIBLE() 1

View File

@ -0,0 +1,99 @@
--- a/src/3rdparty/chromium/net/dns/dns_config_service_posix.cc
+++ b/src/3rdparty/chromium/net/dns/dns_config_service_posix.cc
@@ -54,7 +54,7 @@
FILE_PATH_LITERAL("/system/etc/hosts");
#else
const base::FilePath::CharType kFilePathHosts[] =
- FILE_PATH_LITERAL("/etc/hosts");
+ FILE_PATH_LITERAL("@TERMUX_PREFIX@/etc/hosts");
#endif
#if defined(OS_IOS)
@@ -103,7 +103,7 @@
#else // !defined(OS_IOS) && !defined(OS_ANDROID) && !defined(OS_MAC)
#ifndef _PATH_RESCONF // Normally defined in <resolv.h>
-#define _PATH_RESCONF "/etc/resolv.conf"
+#define _PATH_RESCONF "@TERMUX_PREFIX@/etc/resolv.conf"
#endif
const base::FilePath::CharType kFilePathConfig[] =
@@ -148,7 +148,7 @@
base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
base::BlockingType::MAY_BLOCK);
dns_config->unhandled_options = false;
-#if !defined(OS_ANDROID)
+#if !defined(OS_ANDROID) && !defined(__TERMUX__)
ConfigParsePosixResult result;
// TODO(fuchsia): Use res_ninit() when it's implemented on Fuchsia.
#if defined(OS_OPENBSD) || defined(OS_FUCHSIA)
@@ -192,6 +192,16 @@
// Override timeout value to match default setting on Windows.
dns_config->timeout = kDnsDefaultTimeout;
return result;
+#elif defined(__TERMUX__)
+ dns_config->nameservers.clear();
+ IPAddress termux_dns_address;
+ bool parsed_termux = termux_dns_address.AssignFromIPLiteral("8.8.8.8");
+ if (parsed_termux) {
+ IPEndPoint termux_dns(termux_dns_address, dns_protocol::kDefaultPort);
+ dns_config->nameservers.push_back(termux_dns);
+ }
+ dns_config->timeout = kDnsDefaultTimeout;
+ return CONFIG_PARSE_POSIX_OK;
#else // defined(OS_ANDROID)
dns_config->nameservers.clear();
@@ -468,7 +478,7 @@
hosts_reader_ = base::MakeRefCounted<HostsReader>(this);
}
-#if !defined(OS_ANDROID)
+#if !defined(OS_ANDROID) && !defined(__TERMUX__)
ConfigParsePosixResult ConvertResStateToDnsConfig(const struct __res_state& res,
DnsConfig* dns_config) {
DCHECK(dns_config);
--- a/src/3rdparty/chromium/net/dns/dns_reloader.cc
+++ b/src/3rdparty/chromium/net/dns/dns_reloader.cc
@@ -5,7 +5,7 @@
#include "net/dns/dns_reloader.h"
#if defined(OS_POSIX) && !defined(OS_APPLE) && !defined(OS_OPENBSD) && \
- !defined(OS_ANDROID) && !defined(OS_FUCHSIA)
+ !defined(OS_ANDROID) && !defined(OS_FUCHSIA) && !defined(__TERMUX__)
#include <resolv.h>
--- a/src/3rdparty/chromium/net/dns/dns_reloader.h
+++ b/src/3rdparty/chromium/net/dns/dns_reloader.h
@@ -7,7 +7,7 @@
#include "build/build_config.h"
-#if defined(OS_POSIX) && !defined(OS_APPLE) && !defined(OS_OPENBSD)
+#if defined(OS_POSIX) && !defined(OS_APPLE) && !defined(OS_OPENBSD) && !defined(__TERMUX__)
namespace net {
// Call on the network thread before calling DnsReloaderMaybeReload() anywhere.
--- a/src/3rdparty/chromium/net/dns/host_resolver_proc.cc
+++ b/src/3rdparty/chromium/net/dns/host_resolver_proc.cc
@@ -160,7 +160,7 @@
base::BlockingType::WILL_BLOCK);
#if defined(OS_POSIX) && !defined(OS_APPLE) && !defined(OS_OPENBSD) && \
- !defined(OS_ANDROID) && !defined(OS_FUCHSIA)
+ !defined(OS_ANDROID) && !defined(OS_FUCHSIA) && !defined(__TERMUX__)
DnsReloaderMaybeReload();
#endif
base::Optional<AddressInfo> ai;
--- a/src/3rdparty/chromium/net/dns/host_resolver_manager.cc
+++ b/src/3rdparty/chromium/net/dns/host_resolver_manager.cc
@@ -2779,7 +2779,7 @@
if (system_dns_config_notifier_)
system_dns_config_notifier_->AddObserver(this);
#if defined(OS_POSIX) && !defined(OS_APPLE) && !defined(OS_OPENBSD) && \
- !defined(OS_ANDROID)
+ !defined(OS_ANDROID) && !defined(__TERMUX__)
EnsureDnsReloaderInit();
#endif

View File

@ -0,0 +1,22 @@
--- a/src/3rdparty/chromium/third_party/crashpad/crashpad/util/file/file_io_posix.cc
+++ b/src/3rdparty/chromium/third_party/crashpad/crashpad/util/file/file_io_posix.cc
@@ -19,6 +19,7 @@
#include <sys/file.h>
#include <sys/mman.h>
#include <sys/stat.h>
+#include <sys/syscall.h>
#include <unistd.h>
#include <algorithm>
@@ -154,6 +155,11 @@
}
#if defined(OS_LINUX) || defined(OS_CHROMEOS)
+
+#if defined __ANDROID__ && __ANDROID_API__ < 30
+#define memfd_create(name,flags) syscall(SYS_memfd_create,name,flags)
+#endif
+
FileHandle LoggingOpenMemoryFileForReadAndWrite(const base::FilePath& name) {
DCHECK(name.value().find('/') == std::string::npos);

View File

@ -0,0 +1,11 @@
--- a/src/3rdparty/chromium/base/files/file_util_posix.cc
+++ b/src/3rdparty/chromium/base/files/file_util_posix.cc
@@ -1118,7 +1118,7 @@
#if !defined(OS_ANDROID)
// This is implemented in file_util_android.cc for that platform.
bool GetShmemTempDir(bool executable, FilePath* path) {
-#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX)
+#if (defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX)) && !defined(__TERMUX__)
bool disable_dev_shm = false;
#if !defined(OS_CHROMEOS) && !BUILDFLAG(IS_LACROS)
disable_dev_shm = CommandLine::ForCurrentProcess()->HasSwitch(

View File

@ -0,0 +1,11 @@
--- a/src/3rdparty/chromium/third_party/crashpad/crashpad/util/posix/close_multiple.cc
+++ b/src/3rdparty/chromium/third_party/crashpad/crashpad/util/posix/close_multiple.cc
@@ -128,7 +128,7 @@
// bionic/libc/bionic/ndk_cruft.cpp getdtablesize().
int max_fd = implicit_cast<int>(sysconf(_SC_OPEN_MAX));
-#if !defined(OS_ANDROID)
+#if !defined(OS_ANDROID) && !defined(__TERMUX__)
// getdtablesize() was removed effective Android 5.0.0 (API 21). Since it
// returns the same thing as the sysconf() above, just skip it. See
// https://android.googlesource.com/platform/bionic/+/462abab12b074c62c0999859e65d5a32ebb41951.

View File

@ -0,0 +1,11 @@
--- a/src/3rdparty/chromium/services/device/serial/serial_io_handler_posix.cc
+++ b/src/3rdparty/chromium/services/device/serial/serial_io_handler_posix.cc
@@ -16,7 +16,7 @@
#include "build/build_config.h"
#include "components/device_event_log/device_event_log.h"
-#if defined(OS_LINUX) || defined(OS_CHROMEOS)
+#if (defined(OS_LINUX) && !defined(__TERMUX__)) || defined(OS_CHROMEOS)
#include <asm-generic/ioctls.h>
#include <linux/serial.h>

View File

@ -0,0 +1,22 @@
Origin: https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/community/chromium/wtf-stacksize.patch
--- a/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc
+++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc
@@ -29,7 +29,7 @@
// FIXME: On Mac OSX and Linux, this method cannot estimate stack size
// correctly for the main thread.
-#elif defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
+#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
defined(OS_FUCHSIA)
// pthread_getattr_np() can fail if the thread is not invoked by
// pthread_create() (e.g., the main thread of blink_unittests).
@@ -97,7 +97,7 @@
}
void* GetStackStart() {
-#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
defined(OS_FUCHSIA)
pthread_attr_t attr;
int error;

View File

@ -0,0 +1,11 @@
--- a/src/3rdparty/chromium/content/common/set_process_title.cc
+++ b/src/3rdparty/chromium/content/common/set_process_title.cc
@@ -44,7 +44,7 @@
// TODO(jrg): Find out if setproctitle or equivalent is available on Android.
#if defined(OS_POSIX) && !defined(OS_MAC) && !defined(OS_SOLARIS) && \
- !defined(OS_ANDROID) && !defined(OS_FUCHSIA)
+ !defined(OS_ANDROID) && !defined(OS_FUCHSIA) && !defined(__TERMUX__)
void SetProcessTitleFromCommandLine(const char** main_argv) {
// Build a single string which consists of all the arguments separated

View File

@ -0,0 +1,23 @@
--- a/src/3rdparty/chromium/third_party/khronos/EGL/eglplatform.h
+++ b/src/3rdparty/chromium/third_party/khronos/EGL/eglplatform.h
@@ -88,7 +88,7 @@
typedef struct gbm_bo *EGLNativePixmapType;
typedef void *EGLNativeWindowType;
-#elif defined(__ANDROID__) || defined(ANDROID)
+#elif (defined(__ANDROID__) || defined(ANDROID)) && !defined(__TERMUX__)
struct ANativeWindow;
struct egl_native_pixmap_t;
--- a/src/3rdparty/chromium/third_party/angle/include/EGL/eglplatform.h
+++ b/src/3rdparty/chromium/third_party/angle/include/EGL/eglplatform.h
@@ -88,7 +88,7 @@
typedef struct gbm_bo *EGLNativePixmapType;
typedef void *EGLNativeWindowType;
-#elif defined(__ANDROID__) || defined(ANDROID)
+#elif (defined(__ANDROID__) || defined(ANDROID)) && !defined(__TERMUX__)
struct ANativeWindow;
struct egl_native_pixmap_t;

View File

@ -0,0 +1,38 @@
--- a/src/core/api/qtbug-61521.cpp
+++ b/src/core/api/qtbug-61521.cpp
@@ -40,6 +40,9 @@
#include <stdlib.h>
#include <malloc.h>
+#include <errno.h>
+#include <unistd.h>
+
#define SHIM_ALIAS_SYMBOL(fn) __attribute__((weak, alias(#fn)))
#define SHIM_SYMBOL_VERSION(fn) __asm__(".symver __" #fn "," #fn "@Qt_5")
#define SHIM_HIDDEN __attribute__ ((visibility ("hidden")))
@@ -107,11 +110,25 @@
}
SHIM_HIDDEN void* ShimValloc(size_t size) {
+#ifdef __BIONIC__
+ return memalign(getpagesize(), size);
+#else
return valloc(size);
+#endif
}
SHIM_HIDDEN void* ShimPvalloc(size_t size) {
+#ifdef __BIONIC__
+ size_t pagesize = getpagesize();
+ size_t bytes = __BIONIC_ALIGN(size, pagesize);
+ if (bytes < size) {
+ errno = ENOMEM;
+ return nullptr;
+ }
+ return memalign(pagesize, bytes);
+#else
return pvalloc(size);
+#endif
}
SHIM_HIDDEN int ShimPosixMemalign(void** r, size_t a, size_t s) {

View File

@ -0,0 +1,10 @@
--- a/src/buildtools/config/linking.pri
+++ b/src/buildtools/config/linking.pri
@@ -68,6 +68,7 @@
!contains(flag, .*as-needed$): \
!contains(flag, ^-B.*): \
!contains(flag, ^-fuse-ld.*): \
+ !contains(flag, ^--sysroot.*): \
QMAKE_LFLAGS += $$flag
}
} else {

View File

@ -0,0 +1,14 @@
--- a/src/buildtools/config/linux.pri
+++ b/src/buildtools/config/linux.pri
@@ -170,10 +170,6 @@
} else {
gn_args += use_system_freetype=false
}
- qtConfig(webengine-system-harfbuzz) {
- gn_args += use_system_harfbuzz=true
- } else {
- gn_args += use_system_harfbuzz=false
- }
+ gn_args += use_system_freetype=false
gn_args += use_glib=false
}

View File

@ -0,0 +1,11 @@
--- a/src/buildtools/config/linux.pri
+++ b/src/buildtools/config/linux.pri
@@ -83,7 +83,7 @@
gn_args += arm_use_neon=false
# If the toolchain does not explicitly specify to use NEON instructions
# we use arm_neon_optional for ARMv7
- equals(MARMV, 7): gn_args += arm_optionally_use_neon=true
+ # equals(MARMV, 7): gn_args += arm_optionally_use_neon=true
}
}

View File

@ -0,0 +1,9 @@
--- a/src/3rdparty/chromium/third_party/ffmpeg/ffmpeg_options.gni
+++ b/src/3rdparty/chromium/third_party/ffmpeg/ffmpeg_options.gni
@@ -70,4 +70,6 @@
os_config = "linux"
} else if (is_win && !is_clang) {
os_config = "win-msvc"
+} else if (is_linux && (current_cpu == "x86")) {
+ os_config = "linux-noasm"
}

View File

@ -0,0 +1,21 @@
--- a/src/core/web_engine_context.cpp
+++ b/src/core/web_engine_context.cpp
@@ -624,6 +624,10 @@
parsedCommandLine->AppendSwitchASCII(service_manager::switches::kApplicationName, QCoreApplication::applicationName().toUtf8().toPercentEncoding().toStdString());
+#ifdef __TERMUX__
+ parsedCommandLine->AppendSwitch(sandbox::policy::switches::kNoSandbox);
+ qInfo() << "Sandboxing disabled.";
+#else
// Enable sandboxing on OS X and Linux (Desktop / Embedded) by default.
bool disable_sandbox = qEnvironmentVariableIsSet(kDisableSandboxEnv);
if (!disable_sandbox) {
@@ -634,6 +638,7 @@
parsedCommandLine->AppendSwitch(sandbox::policy::switches::kNoSandbox);
qInfo() << "Sandboxing disabled by user.";
}
+#endif
parsedCommandLine->AppendSwitch(switches::kEnableThreadedCompositing);

View File

@ -0,0 +1,11 @@
--- a/src/3rdparty/chromium/v8/src/trap-handler/trap-handler.h
+++ b/src/3rdparty/chromium/v8/src/trap-handler/trap-handler.h
@@ -17,7 +17,7 @@
namespace trap_handler {
// TODO(eholk): Support trap handlers on other platforms.
-#if V8_TARGET_ARCH_X64 && V8_OS_LINUX && !V8_OS_ANDROID
+#if V8_TARGET_ARCH_X64 && V8_OS_LINUX
#define V8_TRAP_HANDLER_SUPPORTED true
#elif V8_TARGET_ARCH_X64 && V8_OS_WIN
#define V8_TRAP_HANDLER_SUPPORTED true

View File

@ -0,0 +1,11 @@
--- a/src/buildtools/config/linux.pri
+++ b/src/buildtools/config/linux.pri
@@ -11,7 +11,7 @@
use_cups=false \
use_gio=false \
use_gnome_keyring=false \
- use_udev=true \
+ use_udev=false \
use_bundled_fontconfig=false \
use_sysroot=false \
enable_session_service=false \

View File

@ -0,0 +1,80 @@
TERMUX_PKG_HOMEPAGE=https://github.com/qt/qtwebengine
TERMUX_PKG_DESCRIPTION="Qt 5 Web Engine Library"
TERMUX_PKG_LICENSE="LGPL-3.0, LGPL-2.1, BSD 3-Clause"
TERMUX_PKG_MAINTAINER="@licy183"
TERMUX_PKG_VERSION="5.15.12"
TERMUX_PKG_SRCURL=git+https://github.com/qt/qtwebengine
TERMUX_PKG_GIT_BRANCH=v5.15.12-lts
TERMUX_PKG_DEPENDS="fontconfig, dbus, libc++, libjpeg-turbo, libminizip, libnss, libpng, libre2, libsnappy, libvpx, libwebp, libx11, libxml2, libxslt, libxkbfile, qt5-qtbase, qt5-qtdeclarative, zlib"
TERMUX_PKG_BUILD_DEPENDS="qt5-qtbase-cross-tools, qt5-qtdeclarative-cross-tools"
TERMUX_PKG_NO_STATICSPLIT=true
termux_step_configure() {
cd $TERMUX_PKG_SRCDIR
termux_setup_ninja
termux_setup_nodejs
# Remove termux's dummy pkg-config
local _host_pkg_config="$(cat $(command -v pkg-config) | grep exec | awk '{print $2}')"
rm -rf $TERMUX_PKG_TMPDIR/host-pkg-config-bin
mkdir -p $TERMUX_PKG_TMPDIR/host-pkg-config-bin
ln -s $_host_pkg_config $TERMUX_PKG_TMPDIR/host-pkg-config-bin/pkg-config
ln -s $(command -v pkg-config) $TERMUX_PKG_TMPDIR/host-pkg-config-bin/$TERMUX_HOST_PLATFORM-pkg-config
export PATH="$TERMUX_PKG_TMPDIR/host-pkg-config-bin:$PATH"
# Create dummy sysroot
rm -rf $TERMUX_PKG_TMPDIR/sysroot
mkdir -p $TERMUX_PKG_TMPDIR/sysroot
pushd $TERMUX_PKG_TMPDIR/sysroot
mkdir -p usr/include usr/lib usr/bin
cp -R $TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/include/* usr/include
cp -R $TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/include/$TERMUX_HOST_PLATFORM/* usr/include
cp -R $TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/lib/$TERMUX_HOST_PLATFORM/$TERMUX_PKG_API_LEVEL/* usr/lib/
cp "$TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/lib/$TERMUX_HOST_PLATFORM/libc++_shared.so" usr/lib/
cp "$TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/lib/$TERMUX_HOST_PLATFORM/libc++_static.a" usr/lib/
cp "$TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/lib/$TERMUX_HOST_PLATFORM/libc++abi.a" usr/lib/
cp -Rf $TERMUX_PREFIX/include/* usr/include
cp -Rf $TERMUX_PREFIX/lib/* usr/lib
ln -sf /data ./data
popd
# Dummy pthread, rt and resolve
echo "INPUT(-llog -liconv -landroid-shmem)" > "$TERMUX_PREFIX/lib/librt.so"
echo '!<arch>' > "$TERMUX_PREFIX/lib/libpthread.a"
echo '!<arch>' > "$TERMUX_PREFIX/lib/libresolv.a"
# Copy ffmpeg headers for i686. They are generated without asm.
cp -Rf $TERMUX_PKG_BUILDER_DIR/ffmpeg-headers/* src/3rdparty/chromium/third_party/ffmpeg/chromium/config/
# Do not run ninja -v, unless NINJAFLAGS is set
: ${NINJAFLAGS:=" "}
export NINJAFLAGS
cd $TERMUX_PKG_BUILDDIR/
"${TERMUX_PREFIX}/opt/qt/cross/bin/qmake" \
$TERMUX_PKG_SRCDIR \
QT_CONFIG-=no-pkg-config \
DUMMY_SYSROOT=$TERMUX_PKG_TMPDIR/sysroot \
PKG_CONFIG_SYSROOT_DIR= \
PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR \
PKG_CONFIG_EXECUTABLE=$(command -v pkg-config)
}
termux_step_post_make_install() {
#######################################################
##
## Fixes & cleanup.
##
#######################################################
## Drop QMAKE_PRL_BUILD_DIR because reference the build dir.
find "${TERMUX_PREFIX}/lib" -type f -name "libQt5WebEngine*.prl" \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' "{}" \;
## Remove *.la files.
find "${TERMUX_PREFIX}/lib" -iname \*.la -delete
# Remove dummy files
rm $TERMUX_PREFIX/lib/lib{{pthread,resolv}.a,rt.so}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
static const AVBitStreamFilter * const bitstream_filters[] = {
&ff_null_bsf,
NULL };

View File

@ -0,0 +1,20 @@
static const AVCodec * const codec_list[] = {
&ff_h264_decoder,
&ff_theora_decoder,
&ff_vp3_decoder,
&ff_vp8_decoder,
&ff_aac_decoder,
&ff_flac_decoder,
&ff_mp3_decoder,
&ff_vorbis_decoder,
&ff_pcm_alaw_decoder,
&ff_pcm_f32le_decoder,
&ff_pcm_mulaw_decoder,
&ff_pcm_s16be_decoder,
&ff_pcm_s16le_decoder,
&ff_pcm_s24be_decoder,
&ff_pcm_s24le_decoder,
&ff_pcm_s32le_decoder,
&ff_pcm_u8_decoder,
&ff_libopus_decoder,
NULL };

View File

@ -0,0 +1,11 @@
static const AVCodecParser * const parser_list[] = {
&ff_aac_parser,
&ff_flac_parser,
&ff_h264_parser,
&ff_mpegaudio_parser,
&ff_opus_parser,
&ff_vorbis_parser,
&ff_vp3_parser,
&ff_vp8_parser,
&ff_vp9_parser,
NULL };

View File

@ -0,0 +1,9 @@
static const AVInputFormat * const demuxer_list[] = {
&ff_aac_demuxer,
&ff_flac_demuxer,
&ff_matroska_demuxer,
&ff_mov_demuxer,
&ff_mp3_demuxer,
&ff_ogg_demuxer,
&ff_wav_demuxer,
NULL };

View File

@ -0,0 +1,2 @@
static const AVOutputFormat * const muxer_list[] = {
NULL };

View File

@ -0,0 +1,2 @@
static const URLProtocol * const url_protocols[] = {
NULL };

View File

@ -0,0 +1,6 @@
/* Generated by ffmpeg configure */
#ifndef AVUTIL_AVCONFIG_H
#define AVUTIL_AVCONFIG_H
#define AV_HAVE_BIGENDIAN 0
#define AV_HAVE_FAST_UNALIGNED 0
#endif /* AVUTIL_AVCONFIG_H */

View File

@ -0,0 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
#define FFMPEG_VERSION "N-99931-gb6530ca24d"
#endif /* AVUTIL_FFVERSION_H */

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
static const AVBitStreamFilter * const bitstream_filters[] = {
&ff_null_bsf,
NULL };

View File

@ -0,0 +1,18 @@
static const AVCodec * const codec_list[] = {
&ff_theora_decoder,
&ff_vp3_decoder,
&ff_vp8_decoder,
&ff_flac_decoder,
&ff_mp3_decoder,
&ff_vorbis_decoder,
&ff_pcm_alaw_decoder,
&ff_pcm_f32le_decoder,
&ff_pcm_mulaw_decoder,
&ff_pcm_s16be_decoder,
&ff_pcm_s16le_decoder,
&ff_pcm_s24be_decoder,
&ff_pcm_s24le_decoder,
&ff_pcm_s32le_decoder,
&ff_pcm_u8_decoder,
&ff_libopus_decoder,
NULL };

View File

@ -0,0 +1,9 @@
static const AVCodecParser * const parser_list[] = {
&ff_flac_parser,
&ff_mpegaudio_parser,
&ff_opus_parser,
&ff_vorbis_parser,
&ff_vp3_parser,
&ff_vp8_parser,
&ff_vp9_parser,
NULL };

View File

@ -0,0 +1,8 @@
static const AVInputFormat * const demuxer_list[] = {
&ff_flac_demuxer,
&ff_matroska_demuxer,
&ff_mov_demuxer,
&ff_mp3_demuxer,
&ff_ogg_demuxer,
&ff_wav_demuxer,
NULL };

View File

@ -0,0 +1,2 @@
static const AVOutputFormat * const muxer_list[] = {
NULL };

View File

@ -0,0 +1,2 @@
static const URLProtocol * const url_protocols[] = {
NULL };

View File

@ -0,0 +1,6 @@
/* Generated by ffmpeg configure */
#ifndef AVUTIL_AVCONFIG_H
#define AVUTIL_AVCONFIG_H
#define AV_HAVE_BIGENDIAN 0
#define AV_HAVE_FAST_UNALIGNED 0
#endif /* AVUTIL_AVCONFIG_H */

View File

@ -0,0 +1,5 @@
/* Automatically generated by version.sh, do not manually edit! */
#ifndef AVUTIL_FFVERSION_H
#define AVUTIL_FFVERSION_H
#define FFMPEG_VERSION "N-99931-gb6530ca24d"
#endif /* AVUTIL_FFVERSION_H */