Compare commits
1 commit
edge
...
qt6-qtwebe
Author | SHA1 | Date | |
---|---|---|---|
0e0b3c47a3 |
23 changed files with 897 additions and 0 deletions
16
backports/qt6-qtwebengine/0001-Enable-building-on-musl.patch
Normal file
16
backports/qt6-qtwebengine/0001-Enable-building-on-musl.patch
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
diff --git a/configure.cmake b/configure.cmake
|
||||||
|
index 172831c6..76813841 100644
|
||||||
|
--- a/configure.cmake
|
||||||
|
+++ b/configure.cmake
|
||||||
|
@@ -403,11 +403,6 @@ add_check_for_support(
|
||||||
|
CONDITION NOT LINUX OR PkgConfig_FOUND
|
||||||
|
MESSAGE "A pkg-config support is required."
|
||||||
|
)
|
||||||
|
-add_check_for_support(
|
||||||
|
- MODULES QtWebEngine QtPdf
|
||||||
|
- CONDITION NOT LINUX OR TEST_glibc
|
||||||
|
- MESSAGE "A suitable version >= 2.17 of glibc is required."
|
||||||
|
-)
|
||||||
|
add_check_for_support(
|
||||||
|
MODULES QtWebEngine QtPdf
|
||||||
|
CONDITION NOT LINUX OR TEST_khr
|
18
backports/qt6-qtwebengine/0002-temp-failure-retry.patch
Normal file
18
backports/qt6-qtwebengine/0002-temp-failure-retry.patch
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
random glibc macro
|
||||||
|
--- a/src/3rdparty/chromium/sandbox/linux/suid/process_util.h
|
||||||
|
+++ b/src/3rdparty/chromium/sandbox/linux/suid/process_util.h
|
||||||
|
@@ -11,6 +11,14 @@
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
+// Some additional functions
|
||||||
|
+# define TEMP_FAILURE_RETRY(expression) \
|
||||||
|
+ (__extension__ \
|
||||||
|
+ ({ long int __result; \
|
||||||
|
+ do __result = (long int) (expression); \
|
||||||
|
+ while (__result == -1L && errno == EINTR); \
|
||||||
|
+ __result; }))
|
||||||
|
+
|
||||||
|
// This adjusts /proc/process/oom_score_adj so the Linux OOM killer
|
||||||
|
// will prefer certain process types over others. The range for the
|
||||||
|
// adjustment is [-1000, 1000], with [0, 1000] being user accessible.
|
73
backports/qt6-qtwebengine/0003-qt-musl-mallinfo.patch
Normal file
73
backports/qt6-qtwebengine/0003-qt-musl-mallinfo.patch
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
musl does not implement mallinfo()/mallinfo2()
|
||||||
|
(or rather, malloc-ng, musl's allocator, doesn't)
|
||||||
|
--
|
||||||
|
--- a/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc
|
||||||
|
+++ b/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc
|
||||||
|
@@ -185,7 +185,6 @@
|
||||||
|
#define MALLINFO2_FOUND_IN_LIBC
|
||||||
|
struct mallinfo2 info = mallinfo2();
|
||||||
|
#endif
|
||||||
|
-#endif // defined(__GLIBC__) && defined(__GLIBC_PREREQ)
|
||||||
|
#if !defined(MALLINFO2_FOUND_IN_LIBC)
|
||||||
|
struct mallinfo info = mallinfo();
|
||||||
|
#endif
|
||||||
|
@@ -205,6 +204,7 @@
|
||||||
|
sys_alloc_dump->AddScalar(MemoryAllocatorDump::kNameSize,
|
||||||
|
MemoryAllocatorDump::kUnitsBytes, info.uordblks);
|
||||||
|
}
|
||||||
|
+#endif // defined(__GLIBC__) && defined(__GLIBC_PREREQ)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@@ -339,7 +340,7 @@
|
||||||
|
&allocated_objects_count);
|
||||||
|
#elif BUILDFLAG(IS_FUCHSIA)
|
||||||
|
// TODO(fuchsia): Port, see https://crbug.com/706592.
|
||||||
|
-#else
|
||||||
|
+#elif defined(__GLIBC__)
|
||||||
|
ReportMallinfoStats(/*pmd=*/nullptr, &total_virtual_size, &resident_size,
|
||||||
|
&allocated_objects_size, &allocated_objects_count);
|
||||||
|
#endif
|
||||||
|
--- a/src/3rdparty/chromium/base/process/process_metrics_posix.cc
|
||||||
|
+++ b/src/3rdparty/chromium/base/process/process_metrics_posix.cc
|
||||||
|
@@ -105,7 +105,7 @@
|
||||||
|
|
||||||
|
#endif // !BUILDFLAG(IS_FUCHSIA)
|
||||||
|
|
||||||
|
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
|
||||||
|
+#if (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
size_t GetMallocUsageMallinfo() {
|
||||||
|
@@ -123,7 +123,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace
|
||||||
|
-#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ||
|
||||||
|
+#endif // (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS) ||
|
||||||
|
// BUILDFLAG(IS_ANDROID)
|
||||||
|
|
||||||
|
size_t ProcessMetrics::GetMallocUsage() {
|
||||||
|
@@ -131,9 +131,9 @@
|
||||||
|
malloc_statistics_t stats = {0};
|
||||||
|
malloc_zone_statistics(nullptr, &stats);
|
||||||
|
return stats.size_in_use;
|
||||||
|
-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
|
||||||
|
+#elif (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
|
||||||
|
return GetMallocUsageMallinfo();
|
||||||
|
-#elif BUILDFLAG(IS_FUCHSIA)
|
||||||
|
+#else
|
||||||
|
// TODO(fuchsia): Not currently exposed. https://crbug.com/735087.
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
--- a/src/3rdparty/chromium/base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_partition_alloc.cc
|
||||||
|
+++ b/src/3rdparty/chromium/base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_partition_alloc.cc
|
||||||
|
@@ -717,7 +717,7 @@
|
||||||
|
|
||||||
|
#endif // !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_ANDROID)
|
||||||
|
|
||||||
|
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
|
||||||
|
+#if 0
|
||||||
|
SHIM_ALWAYS_EXPORT struct mallinfo mallinfo(void) __THROW {
|
||||||
|
base::SimplePartitionStatsDumper allocator_dumper;
|
||||||
|
Allocator()->DumpStats("malloc", true, &allocator_dumper);
|
64
backports/qt6-qtwebengine/0004-qt-musl-resolve.patch
Normal file
64
backports/qt6-qtwebengine/0004-qt-musl-resolve.patch
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
--- a/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc
|
||||||
|
+++ b/src/3rdparty/chromium/net/dns/public/scoped_res_state.cc
|
||||||
|
@@ -13,7 +13,7 @@
|
||||||
|
namespace net {
|
||||||
|
|
||||||
|
ScopedResState::ScopedResState() {
|
||||||
|
-#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FUCHSIA)
|
||||||
|
+#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FUCHSIA) || defined(_GNU_SOURCE)
|
||||||
|
// Note: res_ninit in glibc always returns 0 and sets RES_INIT.
|
||||||
|
// res_init behaves the same way.
|
||||||
|
memset(&_res, 0, sizeof(_res));
|
||||||
|
@@ -25,16 +25,8 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
ScopedResState::~ScopedResState() {
|
||||||
|
-#if !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA)
|
||||||
|
-
|
||||||
|
- // Prefer res_ndestroy where available.
|
||||||
|
-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
|
||||||
|
- res_ndestroy(&res_);
|
||||||
|
-#else
|
||||||
|
- res_nclose(&res_);
|
||||||
|
-#endif // BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
|
||||||
|
-
|
||||||
|
-#endif // !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA)
|
||||||
|
+ // musl res_init() doesn't actually do anything
|
||||||
|
+ // no destruction is necessary as no memory has been allocated
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ScopedResState::IsValid() const {
|
||||||
|
--- a/src/3rdparty/chromium/net/dns/dns_reloader.cc
|
||||||
|
+++ b/src/3rdparty/chromium/net/dns/dns_reloader.cc
|
||||||
|
@@ -6,8 +6,7 @@
|
||||||
|
|
||||||
|
#include "build/build_config.h"
|
||||||
|
|
||||||
|
-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_OPENBSD) && \
|
||||||
|
- !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_FUCHSIA)
|
||||||
|
+#if defined(__GLIBC__)
|
||||||
|
|
||||||
|
#include <resolv.h>
|
||||||
|
|
||||||
|
--- a/src/3rdparty/chromium/net/dns/host_resolver_system_task.cc
|
||||||
|
+++ b/src/3rdparty/chromium/net/dns/host_resolver_system_task.cc
|
||||||
|
@@ -310,8 +310,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
void EnsureSystemHostResolverCallReady() {
|
||||||
|
-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_OPENBSD) && \
|
||||||
|
- !BUILDFLAG(IS_ANDROID)
|
||||||
|
+#if defined(__GLIBC__)
|
||||||
|
EnsureDnsReloaderInit();
|
||||||
|
#elif BUILDFLAG(IS_WIN)
|
||||||
|
EnsureWinsockInit();
|
||||||
|
@@ -396,8 +396,7 @@
|
||||||
|
base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
|
||||||
|
base::BlockingType::WILL_BLOCK);
|
||||||
|
|
||||||
|
-#if BUILDFLAG(IS_POSIX) && \
|
||||||
|
- !(BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_ANDROID))
|
||||||
|
+#if defined(__GLIBC__)
|
||||||
|
DnsReloaderMaybeReload();
|
||||||
|
#endif
|
||||||
|
auto [ai, err, os_error] = AddressInfo::Get(host, hints, nullptr, network);
|
13
backports/qt6-qtwebengine/0005-qt-musl-crashpad.patch
Normal file
13
backports/qt6-qtwebengine/0005-qt-musl-crashpad.patch
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
diff --git a/src/3rdparty/chromium/third_party/crashpad/crashpad/util/linux/thread_info.h b/src/3rdparty/chromium/third_party/crashpad/crashpad/util/linux/thread_info.h
|
||||||
|
index 5b55c24..08cec52 100644
|
||||||
|
--- a/src/3rdparty/chromium/third_party/crashpad/crashpad/util/linux/thread_info.h
|
||||||
|
+++ b/src/3rdparty/chromium/third_party/crashpad/crashpad/util/linux/thread_info.h
|
||||||
|
@@ -273,7 +273,7 @@ union FloatContext {
|
||||||
|
"Size mismatch");
|
||||||
|
#elif defined(ARCH_CPU_ARMEL)
|
||||||
|
static_assert(sizeof(f32_t::fpregs) == sizeof(user_fpregs), "Size mismatch");
|
||||||
|
-#if !defined(__GLIBC__)
|
||||||
|
+#if defined(OS_ANDROID)
|
||||||
|
static_assert(sizeof(f32_t::vfp) == sizeof(user_vfp), "Size mismatch");
|
||||||
|
#endif
|
||||||
|
#elif defined(ARCH_CPU_ARM64)
|
97
backports/qt6-qtwebengine/0006-no-execinfo.patch
Normal file
97
backports/qt6-qtwebengine/0006-no-execinfo.patch
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
this can be linked to, but is entirely useless
|
||||||
|
--- 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
|
||||||
|
|
||||||
|
@@ -89,7 +89,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.
|
||||||
|
@@ -136,7 +136,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.
|
||||||
|
@@ -839,7 +839,7 @@
|
||||||
|
// If we do not have unwind tables, then try tracing using frame pointers.
|
||||||
|
return base::debug::TraceStackFramePointers(const_cast<const void**>(trace),
|
||||||
|
count, 0);
|
||||||
|
-#elif !defined(__UCLIBC__) && !defined(_AIX)
|
||||||
|
+#elif 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));
|
||||||
|
@@ -852,13 +852,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.orig
|
||||||
|
+++ 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>
|
||||||
|
|
||||||
|
@@ -96,7 +98,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
|
||||||
|
@@ -251,7 +253,9 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
void StackTrace::OutputToStream(std::ostream* os) const {
|
||||||
|
+#if defined(__GLIBC__) && !defined(_AIX)
|
||||||
|
OutputToStreamWithPrefix(os, nullptr);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string StackTrace::ToString() const {
|
||||||
|
@@ -281,7 +281,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();
|
101
backports/qt6-qtwebengine/0007-musl-sandbox.patch
Normal file
101
backports/qt6-qtwebengine/0007-musl-sandbox.patch
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc ./sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
|
||||||
|
index ff5a1c0..da56b9b 100644
|
||||||
|
--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
|
||||||
|
+++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
|
||||||
|
@@ -139,21 +139,11 @@ namespace sandbox {
|
||||||
|
// present (as in newer versions of posix_spawn).
|
||||||
|
ResultExpr RestrictCloneToThreadsAndEPERMFork() {
|
||||||
|
const Arg<unsigned long> flags(0);
|
||||||
|
-
|
||||||
|
- // TODO(mdempsky): Extend DSL to support (flags & ~mask1) == mask2.
|
||||||
|
- const uint64_t kAndroidCloneMask = CLONE_VM | CLONE_FS | CLONE_FILES |
|
||||||
|
- CLONE_SIGHAND | CLONE_THREAD |
|
||||||
|
- CLONE_SYSVSEM;
|
||||||
|
- const uint64_t kObsoleteAndroidCloneMask = kAndroidCloneMask | CLONE_DETACHED;
|
||||||
|
-
|
||||||
|
- const uint64_t kGlibcPthreadFlags =
|
||||||
|
- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_THREAD |
|
||||||
|
- CLONE_SYSVSEM | CLONE_SETTLS | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID;
|
||||||
|
- const BoolExpr glibc_test = flags == kGlibcPthreadFlags;
|
||||||
|
-
|
||||||
|
- const BoolExpr android_test =
|
||||||
|
- AnyOf(flags == kAndroidCloneMask, flags == kObsoleteAndroidCloneMask,
|
||||||
|
- flags == kGlibcPthreadFlags);
|
||||||
|
+ const int required = CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
|
||||||
|
+ CLONE_THREAD | CLONE_SYSVSEM;
|
||||||
|
+ const int safe = CLONE_SETTLS | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID |
|
||||||
|
+ CLONE_DETACHED;
|
||||||
|
+ const BoolExpr thread_clone_ok = (flags&~safe)==required;
|
||||||
|
|
||||||
|
// The following two flags are the two important flags in any vfork-emulating
|
||||||
|
// clone call. EPERM any clone call that contains both of them.
|
||||||
|
@@ -163,7 +153,7 @@ ResultExpr RestrictCloneToThreadsAndEPERMFork() {
|
||||||
|
AnyOf((flags & (CLONE_VM | CLONE_THREAD)) == 0,
|
||||||
|
(flags & kImportantCloneVforkFlags) == kImportantCloneVforkFlags);
|
||||||
|
|
||||||
|
- return If(IsAndroid() ? android_test : glibc_test, Allow())
|
||||||
|
+ return If(thread_clone_ok, Allow())
|
||||||
|
.ElseIf(is_fork_or_clone_vfork, Error(EPERM))
|
||||||
|
.Else(CrashSIGSYSClone());
|
||||||
|
}
|
||||||
|
diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc ./sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
|
||||||
|
index d9d1882..0567557 100644
|
||||||
|
--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
|
||||||
|
+++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
|
||||||
|
@@ -392,6 +392,7 @@ bool SyscallSets::IsAllowedProcessStartOrDeath(int sysno) {
|
||||||
|
#if defined(__i386__)
|
||||||
|
case __NR_waitpid:
|
||||||
|
#endif
|
||||||
|
+ case __NR_set_tid_address:
|
||||||
|
return true;
|
||||||
|
case __NR_clone: // Should be parameter-restricted.
|
||||||
|
case __NR_setns: // Privileged.
|
||||||
|
@@ -404,7 +405,6 @@ bool SyscallSets::IsAllowedProcessStartOrDeath(int sysno) {
|
||||||
|
#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
|
||||||
|
case __NR_set_thread_area:
|
||||||
|
#endif
|
||||||
|
- case __NR_set_tid_address:
|
||||||
|
case __NR_unshare:
|
||||||
|
#if !defined(__mips__) && !defined(__aarch64__)
|
||||||
|
case __NR_vfork:
|
||||||
|
@@ -514,6 +514,8 @@ bool SyscallSets::IsAllowedAddressSpaceAccess(int sysno) {
|
||||||
|
case __NR_mlock:
|
||||||
|
case __NR_munlock:
|
||||||
|
case __NR_munmap:
|
||||||
|
+ case __NR_mremap:
|
||||||
|
+ case __NR_membarrier:
|
||||||
|
return true;
|
||||||
|
case __NR_madvise:
|
||||||
|
case __NR_mincore:
|
||||||
|
@@ -531,7 +533,6 @@ bool SyscallSets::IsAllowedAddressSpaceAccess(int sysno) {
|
||||||
|
case __NR_modify_ldt:
|
||||||
|
#endif
|
||||||
|
case __NR_mprotect:
|
||||||
|
- case __NR_mremap:
|
||||||
|
case __NR_msync:
|
||||||
|
case __NR_munlockall:
|
||||||
|
case __NR_readahead:
|
||||||
|
diff --git a/sandbox/linux/system_headers/linux_syscalls.h ./sandbox/linux/system_headers/linux_syscalls.h
|
||||||
|
index 2b78a0c..b6fedb5 100644
|
||||||
|
--- a/src/3rdparty/chromium/sandbox/linux/system_headers/linux_syscalls.h
|
||||||
|
+++ b/src/3rdparty/chromium/sandbox/linux/system_headers/linux_syscalls.h
|
||||||
|
@@ -10,6 +10,7 @@
|
||||||
|
#define SANDBOX_LINUX_SYSTEM_HEADERS_LINUX_SYSCALLS_H_
|
||||||
|
|
||||||
|
#include "build/build_config.h"
|
||||||
|
+#include <sys/syscall.h>
|
||||||
|
|
||||||
|
#if defined(__x86_64__)
|
||||||
|
#include "sandbox/linux/system_headers/x86_64_linux_syscalls.h"
|
||||||
|
--- a/src/3rdparty/chromium/sandbox/policy/linux/bpf_renderer_policy_linux.cc
|
||||||
|
+++ b/src/3rdparty/chromium/sandbox/policy/linux/bpf_renderer_policy_linux.cc
|
||||||
|
@@ -94,6 +94,9 @@
|
||||||
|
case __NR_pwrite64:
|
||||||
|
case __NR_sched_get_priority_max:
|
||||||
|
case __NR_sched_get_priority_min:
|
||||||
|
+ case __NR_sched_getparam:
|
||||||
|
+ case __NR_sched_getscheduler:
|
||||||
|
+ case __NR_sched_setscheduler:
|
||||||
|
case __NR_sysinfo:
|
||||||
|
case __NR_times:
|
||||||
|
case __NR_uname:
|
12
backports/qt6-qtwebengine/0008-musl-stat.patch
Normal file
12
backports/qt6-qtwebengine/0008-musl-stat.patch
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
--- a/src/3rdparty/chromium/base/files/file.h
|
||||||
|
+++ b/src/3rdparty/chromium/base/files/file.h
|
||||||
|
@@ -19,7 +19,8 @@
|
||||||
|
#include "build/build_config.h"
|
||||||
|
|
||||||
|
#if BUILDFLAG(IS_BSD) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_NACL) || \
|
||||||
|
- BUILDFLAG(IS_FUCHSIA) || (BUILDFLAG(IS_ANDROID) && __ANDROID_API__ < 21)
|
||||||
|
+ BUILDFLAG(IS_FUCHSIA) || (BUILDFLAG(IS_ANDROID) && __ANDROID_API__ < 21) || \
|
||||||
|
+ (defined(OS_LINUX) && !defined(__GLIBC__))
|
||||||
|
struct stat;
|
||||||
|
namespace base {
|
||||||
|
typedef struct stat stat_wrapper_t;
|
31
backports/qt6-qtwebengine/0009-close.patch
Normal file
31
backports/qt6-qtwebengine/0009-close.patch
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
--- a/src/3rdparty/chromium/base/files/scoped_file_linux.cc
|
||||||
|
+++ b/src/3rdparty/chromium/base/files/scoped_file_linux.cc
|
||||||
|
@@ -7,6 +7,7 @@
|
||||||
|
#include <algorithm>
|
||||||
|
#include <array>
|
||||||
|
#include <atomic>
|
||||||
|
+#include <dlfcn.h>
|
||||||
|
|
||||||
|
#include "base/compiler_specific.h"
|
||||||
|
#include "base/debug/stack_trace.h"
|
||||||
|
@@ -80,9 +81,18 @@
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
-int __close(int);
|
||||||
|
-
|
||||||
|
__attribute__((visibility("default"), noinline)) int close(int fd) {
|
||||||
|
+ static int (*__close)(int) = nullptr;
|
||||||
|
+
|
||||||
|
+ if (__close == nullptr) {
|
||||||
|
+ __close = (int (*)(int))dlsym(RTLD_NEXT, "close");
|
||||||
|
+
|
||||||
|
+ if (__close == nullptr) {
|
||||||
|
+ RAW_LOG(ERROR, "musl close not found\n");
|
||||||
|
+ IMMEDIATE_CRASH();
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (base::IsFDOwned(fd) && g_is_ownership_enforced)
|
||||||
|
CrashOnFdOwnershipViolation();
|
||||||
|
return __close(fd);
|
13
backports/qt6-qtwebengine/0010-canonicalize-file-name.patch
Normal file
13
backports/qt6-qtwebengine/0010-canonicalize-file-name.patch
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
no canonicalize_file_name on musl. funnily, the file using this says this is
|
||||||
|
not portable, but avoids the nonportability of realpath(path, NULL);
|
||||||
|
--- a/src/3rdparty/chromium/third_party/nasm/config/config-linux.h
|
||||||
|
+++ b/src/3rdparty/chromium/third_party/nasm/config/config-linux.h
|
||||||
|
@@ -139,7 +139,7 @@
|
||||||
|
#define HAVE_ACCESS 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `canonicalize_file_name' function. */
|
||||||
|
-#define HAVE_CANONICALIZE_FILE_NAME 1
|
||||||
|
+/* #define HAVE_CANONICALIZE_FILE_NAME 1 */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `cpu_to_le16' intrinsic function. */
|
||||||
|
/* #undef HAVE_CPU_TO_LE16 */
|
20
backports/qt6-qtwebengine/0011-wtf-stacksize.patch
Normal file
20
backports/qt6-qtwebengine/0011-wtf-stacksize.patch
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
--- 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__) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || \
|
||||||
|
+#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || \
|
||||||
|
BUILDFLAG(IS_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__) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || \
|
||||||
|
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || \
|
||||||
|
BUILDFLAG(IS_FUCHSIA)
|
||||||
|
pthread_attr_t attr;
|
||||||
|
int error;
|
20
backports/qt6-qtwebengine/0014-missing-includes.patch
Normal file
20
backports/qt6-qtwebengine/0014-missing-includes.patch
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
--- a/src/3rdparty/chromium/sandbox/linux/services/credentials.h
|
||||||
|
+++ b/src/3rdparty/chromium/sandbox/linux/services/credentials.h
|
||||||
|
@@ -13,6 +13,7 @@
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
+#include <sys/types.h>
|
||||||
|
|
||||||
|
#include "sandbox/linux/system_headers/capability.h"
|
||||||
|
#include "sandbox/sandbox_export.h"
|
||||||
|
--- a/src/3rdparty/chromium/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h
|
||||||
|
+++ b/src/3rdparty/chromium/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h
|
||||||
|
@@ -2,6 +2,7 @@
|
||||||
|
#define QUICHE_HTTP2_ADAPTER_WINDOW_MANAGER_H_
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
|
+#include <inttypes.h>
|
||||||
|
|
||||||
|
#include <functional>
|
||||||
|
|
159
backports/qt6-qtwebengine/APKBUILD
Normal file
159
backports/qt6-qtwebengine/APKBUILD
Normal file
|
@ -0,0 +1,159 @@
|
||||||
|
# Contributor: Bart Ribbers <bribbers@disroot.org>
|
||||||
|
# Maintainer: Bart Ribbers <bribbers@disroot.org>
|
||||||
|
pkgname=qt6-qtwebengine
|
||||||
|
pkgver=6.5.2
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Provides support for web applications using the Chromium browser project"
|
||||||
|
url="https://qt.io/"
|
||||||
|
# riscv64 unknown current CPU
|
||||||
|
# s390x blocked by qt6-qtdeclarative
|
||||||
|
# ppc64le not supported by chromium
|
||||||
|
# 32-bit arches are blocked by memory exhaustion and "libblink_core.a: error adding symbols: file format not recognized"
|
||||||
|
arch="all !riscv64 !s390x !ppc64le !armv7 !x86 !armhf"
|
||||||
|
license="LGPL-2.1-only AND LGPL-3.0-only AND GPL-3.0-only AND Qt-GPL-exception-1.0"
|
||||||
|
depends_dev="
|
||||||
|
alsa-lib-dev
|
||||||
|
ffmpeg-dev
|
||||||
|
icu-dev
|
||||||
|
krb5-dev
|
||||||
|
lcms2-dev
|
||||||
|
libevent-dev
|
||||||
|
libvpx-dev>=1.10.0-r1
|
||||||
|
libxkbfile-dev
|
||||||
|
libxml2-dev
|
||||||
|
libxslt-dev
|
||||||
|
minizip-dev
|
||||||
|
nss-dev
|
||||||
|
opus-dev
|
||||||
|
pciutils-dev
|
||||||
|
pipewire-dev
|
||||||
|
pulseaudio-dev
|
||||||
|
qt6-qtbase-dev
|
||||||
|
qt6-qtdeclarative-dev
|
||||||
|
qt6-qtpositioning-dev
|
||||||
|
qt6-qttools-dev
|
||||||
|
qt6-qtwebchannel-dev
|
||||||
|
snappy-dev
|
||||||
|
"
|
||||||
|
makedepends="$depends_dev
|
||||||
|
bison
|
||||||
|
bsd-compat-headers
|
||||||
|
clang
|
||||||
|
cmake
|
||||||
|
flex
|
||||||
|
lld
|
||||||
|
llvm
|
||||||
|
gperf
|
||||||
|
gzip
|
||||||
|
nodejs
|
||||||
|
perl
|
||||||
|
py3-html5lib
|
||||||
|
python3
|
||||||
|
samurai
|
||||||
|
"
|
||||||
|
subpackages="$pkgname-dev"
|
||||||
|
builddir="$srcdir/qtwebengine-everywhere-src-${pkgver/_/-}"
|
||||||
|
|
||||||
|
case $pkgver in
|
||||||
|
*_alpha*|*_beta*|*_rc*) _rel=development_releases;;
|
||||||
|
*) _rel=official_releases;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
source="https://download.qt.io/$_rel/qt/${pkgver%.*}/${pkgver/_/-}/submodules/qtwebengine-everywhere-src-${pkgver/_/-}.tar.xz
|
||||||
|
0001-Enable-building-on-musl.patch
|
||||||
|
0002-temp-failure-retry.patch
|
||||||
|
0003-qt-musl-mallinfo.patch
|
||||||
|
0004-qt-musl-resolve.patch
|
||||||
|
0005-qt-musl-crashpad.patch
|
||||||
|
0006-no-execinfo.patch
|
||||||
|
0007-musl-sandbox.patch
|
||||||
|
0008-musl-stat.patch
|
||||||
|
0009-close.patch
|
||||||
|
0010-canonicalize-file-name.patch
|
||||||
|
0011-wtf-stacksize.patch
|
||||||
|
0014-missing-includes.patch
|
||||||
|
aarch64-skia.patch
|
||||||
|
chromium-use-alpine-target.patch
|
||||||
|
clang16-aescrypto.patch
|
||||||
|
default-pthread-stacksize.patch
|
||||||
|
fix-narrowing-cast.patch
|
||||||
|
gcc13.patch
|
||||||
|
lfs64.patch
|
||||||
|
no-sandbox-settls.patch
|
||||||
|
pipewire-fcntl-call.patch
|
||||||
|
systypes.patch
|
||||||
|
"
|
||||||
|
|
||||||
|
build() {
|
||||||
|
export CC=clang
|
||||||
|
export CXX=clang++
|
||||||
|
export AR=llvm-ar
|
||||||
|
export NM=llvm-nm
|
||||||
|
export RANLIB=llvm-ranlib
|
||||||
|
export LDFLAGS="$LDFLAGS -fuse-ld=lld"
|
||||||
|
export CFLAGS="${CFLAGS/-fstack-clash-protection} -D_LARGEFILE64_SOURCE -Wno-builtin-macro-redefined -Wno-deprecated-declarations"
|
||||||
|
export CXXFLAGS="${CXXFLAGS/-fstack-clash-protection} -D_LARGEFILE64_SOURCE -Wno-builtin-macro-redefined -Wno-deprecated-declarations"
|
||||||
|
|
||||||
|
cmake -B build -G Ninja \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
|
-DINSTALL_BINDIR=lib/qt6/bin \
|
||||||
|
-DINSTALL_DOCDIR=share/doc/qt6 \
|
||||||
|
-DINSTALL_ARCHDATADIR=lib/qt6 \
|
||||||
|
-DINSTALL_DATADIR=share/qt6 \
|
||||||
|
-DINSTALL_INCLUDEDIR=include/qt6 \
|
||||||
|
-DINSTALL_MKSPECSDIR=lib/qt6/mkspecs \
|
||||||
|
-DINSTALL_EXAMPLESDIR=share/doc/qt6/examples \
|
||||||
|
-DQT_FEATURE_use_lld_linker=ON \
|
||||||
|
-DQT_FEATURE_webengine_system_alsa=ON \
|
||||||
|
-DQT_FEATURE_webengine_system_ffmpeg=ON \
|
||||||
|
-DQT_FEATURE_webengine_system_icu=ON \
|
||||||
|
-DQT_FEATURE_webengine_system_libevent=ON \
|
||||||
|
-DQT_FEATURE_webengine_system_libpci=ON \
|
||||||
|
-DQT_FEATURE_webengine_system_libpng=ON \
|
||||||
|
-DQT_FEATURE_webengine_system_libwebp=ON \
|
||||||
|
-DQT_FEATURE_webengine_system_libxml=ON \
|
||||||
|
-DQT_FEATURE_webengine_system_minizip=ON \
|
||||||
|
-DQT_FEATURE_webengine_system_opus=ON \
|
||||||
|
-DQT_FEATURE_webengine_system_pulseaudio=ON \
|
||||||
|
-DQT_FEATURE_webengine_system_zlib=ON \
|
||||||
|
-DQT_FEATURE_webengine_proprietary_codecs=ON \
|
||||||
|
-DQT_FEATURE_webengine_kerberos=ON \
|
||||||
|
-DQT_FEATURE_webengine_webrtc_pipewire=ON
|
||||||
|
cmake --build build
|
||||||
|
}
|
||||||
|
|
||||||
|
check() {
|
||||||
|
cd build
|
||||||
|
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
DESTDIR="$pkgdir" cmake --install build
|
||||||
|
}
|
||||||
|
|
||||||
|
sha512sums="
|
||||||
|
f5791002495ebfa9912477f39a96d28bd4f4329f636f6b2055f1b811503b3c394c3ddd7baed5643f78f1905b1e8f860b4202b5d8e4afe5791e5450b9f46eac12 qtwebengine-everywhere-src-6.5.2.tar.xz
|
||||||
|
9a05c07c4616053d247b1200cdd1883e8067babc5ab5bc169ea1599643d120c445fb4db586f5e247e122711f37e148d13fc8a7443d879877d7c82fb1f778db58 0001-Enable-building-on-musl.patch
|
||||||
|
7b6ed37975c55e5ebc20b9a6207044b6f86102d69caa6fdd457078a7ae242026d3de5537651d3d86497ba18ddd1e97523aa082da4dff703a8a4f618bccd4af57 0002-temp-failure-retry.patch
|
||||||
|
82433802b2f22391a6321782eae7f60a2a8453b3a73199cfb7a4e7cd3fc7388ef9896651a7a55d0c8ec67bccb9d4b065709e0f48c0eeadda670225c0462590bb 0003-qt-musl-mallinfo.patch
|
||||||
|
75fdfcff866f31f4afc6bd73ad67c4d8bcb91f7257e2a6056192b1f12e8fb3a587b6ae5f52e6985cf7d2cfcbe3b5e791e99898da01986492b755facb26c11858 0004-qt-musl-resolve.patch
|
||||||
|
173c401e1a0daa7a1471880807e4fb0a74fc338a0f306dc067147878c29e7bb94cae43c37fe2bf21dd7a7ffd2d739697fd21d10c059ce647df01d8236612cc68 0005-qt-musl-crashpad.patch
|
||||||
|
54040483142e12b45860ad09f744182cf2319b6aa0bb59d6a903b28d13fdeff296252fee1c4481cce57ada41bf84b42b88c2de10d8b3b5c62b917045ca9e2298 0006-no-execinfo.patch
|
||||||
|
5603a1f6cf17d201f32eedd3e67f6ea0796477cb047084af8b0bdb08e897bdcbc7cd90770689a8050c846be4cc0ff8b01af6349c70eac13e024aa85e3fc6cb1c 0007-musl-sandbox.patch
|
||||||
|
af362cf6154efe442fd6411b96cc49e64b6ae5ccc7fa2bff299559143f1c7677309a196ffbb58e28e1e61fca08106582867d667c96dbd7bf698c06053db5f666 0008-musl-stat.patch
|
||||||
|
484efce13cf1c918fb03f41cbf85d43c8811ba71876be85e8939441a299b918f12113ee93eb456fa8b5590326655b9fcd1fd2949c6a2f5edf81fe5ddb0e61255 0009-close.patch
|
||||||
|
2c7b3039b892f9c2c58cd70f88b3a4d60bcd330143f3547472f1b857fbb37b534c3b79c081b3ce6eea52b236cf1af1dea09e38e22351f0201fe7f1fa70f8974f 0010-canonicalize-file-name.patch
|
||||||
|
cebe80c406d5d7232d70fbe0988eb40d9d420bd785f9398b65ebfe6c56098ac6345dd5c907fcbdf02d1f27f1052535147f72aabda078a6e6ce9e624c0b997961 0011-wtf-stacksize.patch
|
||||||
|
74ff6d0d36c49d3542d614ad8efde7451b710dc2d8857c85fd6fdc51540f540a90a6133f2255e3af7cf3f133dc5be4c30c508672d2026546a84e0ff1c7251a64 0014-missing-includes.patch
|
||||||
|
3b97486b0873a17b35c2187557b320069462e0d08ba88af4af7878628dbeeecfe2ab5bcfc7640c8c87c4c30dbac611d4170c25201c4e7971fbd58eed31e4d756 aarch64-skia.patch
|
||||||
|
35fd16614f3012f4793221983920f85b209abd543331b14d13bf50d23e028fa34756099a3429028d948a825ec97e9dfeb371fd48852d3f3e5de9f3794e03a7f7 chromium-use-alpine-target.patch
|
||||||
|
9e93fb4fb8d1b4bb009e516845c342fa4a13a309671c7c48474f4e94cbd78709ed90ca6a0c8d30422d90eb6476f7ed973e2515705e5bd494ea5eddb2603aa3de clang16-aescrypto.patch
|
||||||
|
8cac36aa644cb1c7d6cbe860dbc5aec2298eb5115db3ea1ac38bcd084ff1185ab21af954d3def0a823863abfe758e16fe231365ba7d8cd4348d5bd6147fae5f3 default-pthread-stacksize.patch
|
||||||
|
2bf4b7e66edc7cd3afddbcdfc9501d55eba4b6d11bbbc75f4107042f909a1fd5b5166e9274d2da53241f2c1cfde7472dfc640af23e3a3d9c2d01cf72ae5cfffd fix-narrowing-cast.patch
|
||||||
|
83057708d6deac9141c88637cccaaabef33d9276e9f02e123d7a782ab5cae46073bfcf6bf2aa4c57eca467b6bc3b6416354a5e7352ad38e71cfe5f46ae8d488a gcc13.patch
|
||||||
|
cef2bef9b6daac9c2d51e6a3430a6e7ffa21ecec7ce6a2160891db8fd24d32b47237a77a6b6bf1c9f52d7c9a4dadc9d5ea4bffa7da012367882aae8bdd3df926 lfs64.patch
|
||||||
|
17141b0de8d629fc4a620318965ab7d6099da90de2a7172f7536a0a2dcded1bdc8b004c36c9000e7f03209e3eeee6e2570037174a0ffd8472ebc2e9af8409ff0 no-sandbox-settls.patch
|
||||||
|
3c3965bf6d7835c0f1744a11675a301639379fac93df7a9b631c029b652d32708f421ca8461595eb58d5e7e886ba5f959ff04436bae204e295d4bfb6f905bd37 pipewire-fcntl-call.patch
|
||||||
|
3f9268b47bcb03b485e39e49188f85e5943237713bdb1cf00e97b456064345314c02387c135f979a26cf48fc636a5d492ba7ce817741d4651ce404358a35751a systypes.patch
|
||||||
|
"
|
20
backports/qt6-qtwebengine/aarch64-skia.patch
Normal file
20
backports/qt6-qtwebengine/aarch64-skia.patch
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
--- a/src/3rdparty/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h
|
||||||
|
+++ b/src/3rdparty/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h
|
||||||
|
@@ -976,7 +976,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
SI F from_half(U16 h) {
|
||||||
|
-#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \
|
||||||
|
+#if 0 && 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);
|
||||||
|
@@ -1002,7 +1002,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
SI U16 to_half(F f) {
|
||||||
|
-#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \
|
||||||
|
+#if 0 && 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);
|
30
backports/qt6-qtwebengine/chromium-use-alpine-target.patch
Normal file
30
backports/qt6-qtwebengine/chromium-use-alpine-target.patch
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
building for arm targets by default passes --target to clang, because it
|
||||||
|
assumes it's cross compiling (so passes --target as if the host is different,
|
||||||
|
instead of assuming default)
|
||||||
|
|
||||||
|
probably also works: removing this entirely. but to be safe, pass the alpine clang host triple
|
||||||
|
--
|
||||||
|
--- a/src/3rdparty/chromium/build/config/compiler/BUILD.gn
|
||||||
|
+++ b/src/3rdparty/chromium/build/config/compiler/BUILD.gn
|
||||||
|
@@ -915,8 +915,8 @@ config("compiler_cpu_abi") {
|
||||||
|
} else if (current_cpu == "arm") {
|
||||||
|
if (is_clang && !is_android && !is_nacl &&
|
||||||
|
!(is_chromeos_lacros && is_chromeos_device)) {
|
||||||
|
- cflags += [ "--target=arm-linux-gnueabihf" ]
|
||||||
|
- ldflags += [ "--target=arm-linux-gnueabihf" ]
|
||||||
|
+ cflags += [ "--target=armv7-alpine-linux-musleabihf" ]
|
||||||
|
+ ldflags += [ "--target=armv7-alpine-linux-musleabihf" ]
|
||||||
|
}
|
||||||
|
if (!is_nacl) {
|
||||||
|
cflags += [
|
||||||
|
@@ -930,8 +930,8 @@ config("compiler_cpu_abi") {
|
||||||
|
} else if (current_cpu == "arm64") {
|
||||||
|
if (is_clang && !is_android && !is_nacl && !is_fuchsia &&
|
||||||
|
!(is_chromeos_lacros && is_chromeos_device)) {
|
||||||
|
- cflags += [ "--target=aarch64-linux-gnu" ]
|
||||||
|
- ldflags += [ "--target=aarch64-linux-gnu" ]
|
||||||
|
+ cflags += [ "--target=aarch64-alpine-linux-musl" ]
|
||||||
|
+ ldflags += [ "--target=aarch64-alpine-linux-musl" ]
|
||||||
|
}
|
||||||
|
if (is_android) {
|
||||||
|
# Outline atomics crash on Exynos 9810. http://crbug.com/1272795
|
29
backports/qt6-qtwebengine/clang16-aescrypto.patch
Normal file
29
backports/qt6-qtwebengine/clang16-aescrypto.patch
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
clang-16 refuses to compile code that uses certain extensions that were before
|
||||||
|
implicitly enabled.
|
||||||
|
g++ also rejects it.
|
||||||
|
add the required extensions to compile the vectorised code with runtime detection.
|
||||||
|
the code already does this, but these -Xclang args don't work for some reason
|
||||||
|
--
|
||||||
|
--- a/src/3rdparty/chromium/third_party/crc32c/BUILD.gn
|
||||||
|
+++ b/src/3rdparty/chromium/third_party/crc32c/BUILD.gn
|
||||||
|
@@ -109,19 +109,7 @@
|
||||||
|
if (current_cpu == "arm64") {
|
||||||
|
if (is_clang) {
|
||||||
|
cflags = [
|
||||||
|
- "-march=armv8-a",
|
||||||
|
-
|
||||||
|
- # Some builds set -march to a different value from the above.
|
||||||
|
- # The specific feature flags below enable the instructions we need
|
||||||
|
- # in these cases. See https://crbug.com/934016 for example.
|
||||||
|
- "-Xclang",
|
||||||
|
- "-target-feature",
|
||||||
|
- "-Xclang",
|
||||||
|
- "+crc",
|
||||||
|
- "-Xclang",
|
||||||
|
- "-target-feature",
|
||||||
|
- "-Xclang",
|
||||||
|
- "+crypto",
|
||||||
|
+ "-march=armv8-a+crc+crypto",
|
||||||
|
]
|
||||||
|
} else {
|
||||||
|
cflags = [ "-march=armv8-a+crc+crypto" ]
|
23
backports/qt6-qtwebengine/default-pthread-stacksize.patch
Normal file
23
backports/qt6-qtwebengine/default-pthread-stacksize.patch
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
--- a/src/3rdparty/chromium/base/threading/platform_thread_linux.cc
|
||||||
|
+++ b/src/3rdparty/chromium/base/threading/platform_thread_linux.cc
|
||||||
|
@@ -186,7 +186,8 @@
|
||||||
|
|
||||||
|
size_t GetDefaultThreadStackSize(const pthread_attr_t& attributes) {
|
||||||
|
#if !defined(THREAD_SANITIZER)
|
||||||
|
- return 0;
|
||||||
|
+ // use 2mb to avoid running out of space. This is what android uses
|
||||||
|
+ return 2 * (1 << 20);
|
||||||
|
#else
|
||||||
|
// ThreadSanitizer bloats the stack heavily. Evidence has been that the
|
||||||
|
// default stack size isn't enough for some browser tests.
|
||||||
|
--- a/src/3rdparty/chromium/base/threading/platform_thread_unittest.cc.orig
|
||||||
|
+++ b/src/3rdparty/chromium/base/threading/platform_thread_unittest.cc
|
||||||
|
@@ -411,7 +411,7 @@
|
||||||
|
((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
|
||||||
|
!defined(THREAD_SANITIZER)) || \
|
||||||
|
(BUILDFLAG(IS_ANDROID) && !defined(ADDRESS_SANITIZER))
|
||||||
|
- EXPECT_EQ(0u, stack_size);
|
||||||
|
+ EXPECT_EQ(2u << 20, stack_size);
|
||||||
|
#else
|
||||||
|
EXPECT_GT(stack_size, 0u);
|
||||||
|
EXPECT_LT(stack_size, 20u * (1 << 20));
|
44
backports/qt6-qtwebengine/fix-narrowing-cast.patch
Normal file
44
backports/qt6-qtwebengine/fix-narrowing-cast.patch
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
--- a/src/3rdparty/chromium/base/files/file_util_linux.cc
|
||||||
|
+++ b/src/3rdparty/chromium/base/files/file_util_linux.cc
|
||||||
|
@@ -30,7 +30,7 @@
|
||||||
|
case EXT2_SUPER_MAGIC: // Also ext3 and ext4
|
||||||
|
case MSDOS_SUPER_MAGIC:
|
||||||
|
case REISERFS_SUPER_MAGIC:
|
||||||
|
- case static_cast<int>(BTRFS_SUPER_MAGIC):
|
||||||
|
+ case BTRFS_SUPER_MAGIC:
|
||||||
|
case 0x5346544E: // NTFS
|
||||||
|
case 0x58465342: // XFS
|
||||||
|
case 0x3153464A: // JFS
|
||||||
|
@@ -40,14 +40,14 @@
|
||||||
|
*type = FILE_SYSTEM_NFS;
|
||||||
|
break;
|
||||||
|
case SMB_SUPER_MAGIC:
|
||||||
|
- case static_cast<int>(0xFF534D42): // CIFS
|
||||||
|
+ case 0xFF534D42: // CIFS
|
||||||
|
*type = FILE_SYSTEM_SMB;
|
||||||
|
break;
|
||||||
|
case CODA_SUPER_MAGIC:
|
||||||
|
*type = FILE_SYSTEM_CODA;
|
||||||
|
break;
|
||||||
|
- case static_cast<int>(HUGETLBFS_MAGIC):
|
||||||
|
- case static_cast<int>(RAMFS_MAGIC):
|
||||||
|
+ case HUGETLBFS_MAGIC:
|
||||||
|
+ case RAMFS_MAGIC:
|
||||||
|
case TMPFS_MAGIC:
|
||||||
|
*type = FILE_SYSTEM_MEMORY;
|
||||||
|
break;
|
||||||
|
--- a/src/3rdparty/chromium/base/system/sys_info_posix.cc
|
||||||
|
+++ b/src/3rdparty/chromium/base/system/sys_info_posix.cc
|
||||||
|
@@ -100,10 +100,10 @@
|
||||||
|
if (HANDLE_EINTR(statfs(path.value().c_str(), &stats)) != 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
switch (stats.f_type) {
|
||||||
|
case TMPFS_MAGIC:
|
||||||
|
- case static_cast<int>(HUGETLBFS_MAGIC):
|
||||||
|
- case static_cast<int>(RAMFS_MAGIC):
|
||||||
|
+ case HUGETLBFS_MAGIC:
|
||||||
|
+ case RAMFS_MAGIC:
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
30
backports/qt6-qtwebengine/gcc13.patch
Normal file
30
backports/qt6-qtwebengine/gcc13.patch
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
--- a/src/3rdparty/chromium/third_party/webrtc/rtc_base/system/file_wrapper.h
|
||||||
|
+++ b/src/3rdparty/chromium/third_party/webrtc/rtc_base/system/file_wrapper.h
|
||||||
|
@@ -11,6 +11,7 @@
|
||||||
|
#ifndef RTC_BASE_SYSTEM_FILE_WRAPPER_H_
|
||||||
|
#define RTC_BASE_SYSTEM_FILE_WRAPPER_H_
|
||||||
|
|
||||||
|
+#include <stdint.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
--- a/src/3rdparty/chromium/components/variations/seed_response.h
|
||||||
|
+++ b/src/3rdparty/chromium/components/variations/seed_response.h
|
||||||
|
@@ -5,6 +5,7 @@
|
||||||
|
#ifndef COMPONENTS_VARIATIONS_SEED_RESPONSE_H_
|
||||||
|
#define COMPONENTS_VARIATIONS_SEED_RESPONSE_H_
|
||||||
|
|
||||||
|
+#include <cstdint>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
namespace variations {
|
||||||
|
--- a/src/3rdparty/chromium/gpu/config/gpu_driver_bug_workarounds.h
|
||||||
|
+++ b/src/3rdparty/chromium/gpu/config/gpu_driver_bug_workarounds.h
|
||||||
|
@@ -5,6 +5,7 @@
|
||||||
|
#ifndef GPU_CONFIG_GPU_DRIVER_BUG_WORKAROUNDS_H_
|
||||||
|
#define GPU_CONFIG_GPU_DRIVER_BUG_WORKAROUNDS_H_
|
||||||
|
|
||||||
|
+#include <cstdint>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include "base/macros.h"
|
41
backports/qt6-qtwebengine/lfs64.patch
Normal file
41
backports/qt6-qtwebengine/lfs64.patch
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
diff --git a/src/3rdparty/gn/src/base/files/file.h b/src/3rdparty/gn/src/base/files/file.h
|
||||||
|
index 2c94eb4..b2db71a 100644
|
||||||
|
--- a/src/3rdparty/gn/src/base/files/file.h
|
||||||
|
+++ b/src/3rdparty/gn/src/base/files/file.h
|
||||||
|
@@ -26,7 +26,7 @@ namespace base {
|
||||||
|
defined(OS_ANDROID) && __ANDROID_API__ < 21
|
||||||
|
typedef struct stat stat_wrapper_t;
|
||||||
|
#elif defined(OS_POSIX) || defined(OS_FUCHSIA)
|
||||||
|
-typedef struct stat64 stat_wrapper_t;
|
||||||
|
+typedef struct stat stat_wrapper_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Thin wrapper around an OS-level file.
|
||||||
|
diff --git a/src/3rdparty/gn/src/base/files/file_util_posix.cc b/src/3rdparty/gn/src/base/files/file_util_posix.cc
|
||||||
|
index ac281c4..f05a2e8 100644
|
||||||
|
--- a/src/3rdparty/gn/src/base/files/file_util_posix.cc
|
||||||
|
+++ b/src/3rdparty/gn/src/base/files/file_util_posix.cc
|
||||||
|
@@ -70,10 +70,10 @@ int CallLstat(const char* path, stat_wrapper_t* sb) {
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
int CallStat(const char* path, stat_wrapper_t* sb) {
|
||||||
|
- return stat64(path, sb);
|
||||||
|
+ return stat(path, sb);
|
||||||
|
}
|
||||||
|
int CallLstat(const char* path, stat_wrapper_t* sb) {
|
||||||
|
- return lstat64(path, sb);
|
||||||
|
+ return lstat(path, sb);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
--- a/src/3rdparty/gn/src/base/files/file_posix.cc
|
||||||
|
+++ b/src/3rdparty/gn/src/base/files/file_posix.cc
|
||||||
|
@@ -32,7 +32,7 @@
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
int CallFstat(int fd, stat_wrapper_t* sb) {
|
||||||
|
- return fstat64(fd, sb);
|
||||||
|
+ return fstat(fd, sb);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
14
backports/qt6-qtwebengine/no-sandbox-settls.patch
Normal file
14
backports/qt6-qtwebengine/no-sandbox-settls.patch
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
this optimisation of CLONE_SETTLS is not valid used like this, and future musl
|
||||||
|
clone(3) will EINVAL on this use
|
||||||
|
--
|
||||||
|
--- a/src/3rdparty/chromium/sandbox/linux/services/credentials.cc
|
||||||
|
+++ b/src/3rdparty/chromium/sandbox/linux/services/credentials.cc
|
||||||
|
@@ -89,7 +89,7 @@
|
||||||
|
|
||||||
|
int clone_flags = CLONE_FS | LINUX_SIGCHLD;
|
||||||
|
void* tls = nullptr;
|
||||||
|
-#if (defined(ARCH_CPU_X86_64) || defined(ARCH_CPU_ARM_FAMILY)) && \
|
||||||
|
+#if 0 && (defined(ARCH_CPU_X86_64) || defined(ARCH_CPU_ARM_FAMILY)) && \
|
||||||
|
!defined(MEMORY_SANITIZER)
|
||||||
|
// Use CLONE_VM | CLONE_VFORK as an optimization to avoid copying page tables.
|
||||||
|
// Since clone writes to the new child's TLS before returning, we must set a
|
18
backports/qt6-qtwebengine/pipewire-fcntl-call.patch
Normal file
18
backports/qt6-qtwebengine/pipewire-fcntl-call.patch
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
Patch-Source: https://webrtc-review.googlesource.com/c/src/+/305120
|
||||||
|
--
|
||||||
|
diff --git a/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc b/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc
|
||||||
|
index 5878180..b2ad7ad 100644
|
||||||
|
--- a/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc
|
||||||
|
+++ b/src/3rdparty/chromium/third_party/webrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc
|
||||||
|
@@ -452,8 +452,8 @@
|
||||||
|
PipeWireThreadLoopLock thread_loop_lock(pw_main_loop_);
|
||||||
|
|
||||||
|
if (fd >= 0) {
|
||||||
|
- pw_core_ = pw_context_connect_fd(
|
||||||
|
- pw_context_, fcntl(fd, F_DUPFD_CLOEXEC), nullptr, 0);
|
||||||
|
+ pw_core_ = pw_context_connect_fd(
|
||||||
|
+ pw_context_, fcntl(fd, F_DUPFD_CLOEXEC, 0), nullptr, 0);
|
||||||
|
} else {
|
||||||
|
pw_core_ = pw_context_connect(pw_context_, nullptr, 0);
|
||||||
|
}
|
||||||
|
|
11
backports/qt6-qtwebengine/systypes.patch
Normal file
11
backports/qt6-qtwebengine/systypes.patch
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
--- a/src/3rdparty/chromium/base/third_party/symbolize/symbolize.h
|
||||||
|
+++ b/src/3rdparty/chromium/base/third_party/symbolize/symbolize.h
|
||||||
|
@@ -58,6 +58,8 @@
|
||||||
|
#include "config.h"
|
||||||
|
#include "glog/logging.h"
|
||||||
|
|
||||||
|
+#include <sys/types.h>
|
||||||
|
+
|
||||||
|
#ifdef HAVE_SYMBOLIZE
|
||||||
|
|
||||||
|
#if defined(__ELF__) // defined by gcc
|
Loading…
Reference in a new issue