diff --git a/recipes/wip/libs/other/webkitgtk3/recipe.toml b/recipes/wip/libs/other/webkitgtk3/recipe.toml index 4d9512201..1d9b97cca 100644 --- a/recipes/wip/libs/other/webkitgtk3/recipe.toml +++ b/recipes/wip/libs/other/webkitgtk3/recipe.toml @@ -4,6 +4,7 @@ [source] tar = "https://webkitgtk.org/releases/webkitgtk-2.49.1.tar.xz" blake3 = "7f04acb2f909ad334fc623afb297ebca1d5a5005bda1682946fb37e044e45ecb" +patches = ["redox.patch"] [build] template = "custom" @@ -14,33 +15,37 @@ dependencies = [ "fontconfig", "freetype2", "fribidi", - "gettext", "gdk-pixbuf", + "gettext", "glib", "gstreamer", "gtk3", "harfbuzz", - #TODO: "libavif", "libepoxy", "libffi", - "libicu", - "libiconv", "libgcrypt", - "libjpeg", + "libgpg-error", + "libiconv", + "libicu", + "libjpeg-turbo", "libpng", + "libpsl", "libpthread-stubs", + "libsoup", "libtasn1", "libwebp", "libx11", "libxau", - "libxext", "libxcb", + "libxext", "libxfixes", "libxi", + "libxml2", "libxrandr", "libxrender", - "libxml2", + "libxslt", "mesa-x11", + "nghttp2", "pango", "pcre2", "pixman", @@ -48,13 +53,32 @@ dependencies = [ "sqlite3", "x11proto", "xextproto", + "xz", "zlib", ] script = """ DYNAMIC_INIT +#TODO: enable more features cookbook_cmake \ + -DCMAKE_CXX_STANDARD_LIBRARIES="-lintl -lgmodule-2.0 -lpsl -lnghttp2 -lffi -liconv -lpcre2-8" \ + -DENABLE_GAMEPAD=OFF \ + -DENABLE_INTROSPECTION=OFF \ + -DENABLE_JOURNALD_LOG=OFF \ + -DENABLE_SPEECH_SYNTHESIS=OFF \ + -DENABLE_SPELLCHECK=OFF \ -DPORT=GTK \ - -DLibGcrypt_GpgError_LIBRARY=lgcrypt \ - -DLibGcrypt_GpgError_INCLUDE_DIR="${COOKBOOK_SYSROOT}/usr/include" \ - -DUSE_GTK4=OFF + -DUNIX=1 \ + -DUSE_AVIF=OFF \ + -DUSE_GSTREAMER_GL=OFF \ + -DUSE_GTK4=OFF \ + -DUSE_JPEGXL=OFF \ + -DUSE_LCMS=OFF \ + -DUSE_LIBBACKTRACE=OFF \ + -DUSE_LIBDRM=OFF \ + -DUSE_LIBHYPHEN=OFF \ + -DUSE_LIBSECRET=OFF \ + -DUSE_SKIA=OFF \ + -DUSE_SYSPROF_CAPTURE=OFF \ + -DUSE_SYSTEM_SYSPROF_CAPTURE=OFF \ + -DUSE_WOFF2=OFF """ diff --git a/recipes/wip/libs/other/webkitgtk3/redox.patch b/recipes/wip/libs/other/webkitgtk3/redox.patch new file mode 100644 index 000000000..5e7323e69 --- /dev/null +++ b/recipes/wip/libs/other/webkitgtk3/redox.patch @@ -0,0 +1,417 @@ +diff -ruwN webkitgtk-2.49.1/Source/bmalloc/bmalloc/AvailableMemory.cpp source/Source/bmalloc/bmalloc/AvailableMemory.cpp +--- webkitgtk-2.49.1/Source/bmalloc/bmalloc/AvailableMemory.cpp 2023-09-18 01:56:46.719077300 -0600 ++++ source/Source/bmalloc/bmalloc/AvailableMemory.cpp 2025-05-10 19:08:48.967816054 -0600 +@@ -166,7 +166,7 @@ + if (!sysinfo(&info)) + return info.totalram * info.mem_unit; + return availableMemoryGuess; +-#elif BOS(UNIX) ++#elif BOS(UNIX) && !defined(__redox__) + long pages = sysconf(_SC_PHYS_PAGES); + long pageSize = sysconf(_SC_PAGE_SIZE); + if (pages == -1 || pageSize == -1) +diff -ruwN webkitgtk-2.49.1/Source/JavaScriptCore/heap/BlockDirectory.cpp source/Source/JavaScriptCore/heap/BlockDirectory.cpp +--- webkitgtk-2.49.1/Source/JavaScriptCore/heap/BlockDirectory.cpp 2025-03-20 11:07:59.015023500 -0600 ++++ source/Source/JavaScriptCore/heap/BlockDirectory.cpp 2025-05-10 21:38:36.889325942 -0600 +@@ -68,7 +68,7 @@ + // FIXME: We should figure out a solution for Windows and PlayStation. + // QNX doesn't have mincore(), though the information can be had. But since all mapped + // pages are resident, does it matter? +-#if OS(UNIX) && !PLATFORM(PLAYSTATION) && !OS(QNX) && !OS(HAIKU) ++#if OS(UNIX) && !PLATFORM(PLAYSTATION) && !OS(QNX) && !OS(HAIKU) && !defined(__redox__) + size_t pageSize = WTF::pageSize(); + ASSERT(!(MarkedBlock::blockSize % pageSize)); + auto numberOfPagesInMarkedBlock = MarkedBlock::blockSize / pageSize; +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/cpp_generator.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/cpp_generator.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/cpp_generator_templates.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/cpp_generator_templates.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_alternate_backend_dispatcher_header.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_alternate_backend_dispatcher_header.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_backend_dispatcher_header.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_backend_dispatcher_header.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_backend_dispatcher_implementation.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_backend_dispatcher_implementation.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_frontend_dispatcher_header.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_frontend_dispatcher_header.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_frontend_dispatcher_implementation.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_frontend_dispatcher_implementation.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_protocol_types_header.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_protocol_types_header.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_protocol_types_implementation.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_cpp_protocol_types_implementation.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_js_backend_commands.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_js_backend_commands.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_backend_dispatcher_header.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_backend_dispatcher_header.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_backend_dispatcher_implementation.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_backend_dispatcher_implementation.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_configuration_header.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_configuration_header.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_configuration_implementation.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_configuration_implementation.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_frontend_dispatcher_implementation.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_frontend_dispatcher_implementation.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_header.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_header.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_internal_header.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_internal_header.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_protocol_type_conversions_header.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_protocol_type_conversions_header.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_protocol_type_conversions_implementation.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_protocol_type_conversions_implementation.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_protocol_types_implementation.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generate_objc_protocol_types_implementation.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generator.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generator.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generator_templates.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/generator_templates.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/__init__.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/__init__.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/models.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/models.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/objc_generator.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/objc_generator.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/objc_generator_templates.cpython-311.pyc and source/Source/JavaScriptCore/inspector/scripts/codegen/__pycache__/objc_generator_templates.cpython-311.pyc differ +diff -ruwN webkitgtk-2.49.1/Source/JavaScriptCore/runtime/JSCBytecodeCacheVersion.cpp source/Source/JavaScriptCore/runtime/JSCBytecodeCacheVersion.cpp +--- webkitgtk-2.49.1/Source/JavaScriptCore/runtime/JSCBytecodeCacheVersion.cpp 2025-03-20 11:07:59.015023500 -0600 ++++ source/Source/JavaScriptCore/runtime/JSCBytecodeCacheVersion.cpp 2025-05-11 08:15:28.272811727 -0600 +@@ -37,7 +37,7 @@ + #include + #include + #include +-#else ++#elif !defined(__redox__) + #include + #endif + #endif +@@ -66,7 +66,7 @@ + } + cacheVersion.construct(0); + dataLogLnIf(JSCBytecodeCacheVersionInternal::verbose, "Failed to get UUID for JavaScriptCore framework"); +-#elif OS(UNIX) && !PLATFORM(PLAYSTATION) && !OS(HAIKU) ++#elif OS(UNIX) && !PLATFORM(PLAYSTATION) && !OS(HAIKU) && !defined(__redox__) + auto result = ([&] -> std::optional { + Dl_info info { }; + if (!dladdr(jsFunctionAddr, &info)) +diff -ruwN webkitgtk-2.49.1/Source/JavaScriptCore/runtime/MachineContext.h source/Source/JavaScriptCore/runtime/MachineContext.h +--- webkitgtk-2.49.1/Source/JavaScriptCore/runtime/MachineContext.h 2025-03-20 11:07:59.015023500 -0600 ++++ source/Source/JavaScriptCore/runtime/MachineContext.h 2025-05-11 08:58:07.039826666 -0600 +@@ -188,7 +188,7 @@ + #error Unknown Architecture + #endif + +-#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) ++#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) || defined(__redox__) + + #if CPU(X86_64) + return reinterpret_cast((uintptr_t&) machineContext.gregs[REG_RSP]); +@@ -317,7 +317,7 @@ + #error Unknown Architecture + #endif + +-#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) ++#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) || defined(__redox__) + + // The following sequence depends on glibc's sys/ucontext.h. + #if CPU(X86_64) +@@ -485,7 +485,7 @@ + #error Unknown Architecture + #endif + +-#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) ++#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) || defined(__redox__) + + // The following sequence depends on glibc's sys/ucontext.h. + #if CPU(X86_64) +@@ -679,7 +679,7 @@ + #error Unknown Architecture + #endif + +-#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) ++#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) || defined(__redox__) + + // The following sequence depends on glibc's sys/ucontext.h. + #if CPU(X86_64) +@@ -736,7 +736,7 @@ + #error Unknown Architecture + #endif + +-#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) ++#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) || defined(__redox__) + + // The following sequence depends on glibc's sys/ucontext.h. + #if CPU(X86_64) +@@ -864,7 +864,7 @@ + #error Unknown Architecture + #endif + +-#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) ++#elif OS(FUCHSIA) || OS(LINUX) || OS(HURD) || defined(__redox__) + + // The following sequence depends on glibc's sys/ucontext.h. + #if CPU(X86_64) +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/wasm/__pycache__/generateWasm.cpython-311.pyc and source/Source/JavaScriptCore/wasm/__pycache__/generateWasm.cpython-311.pyc differ +Binary files webkitgtk-2.49.1/Source/JavaScriptCore/yarr/__pycache__/hasher.cpython-311.pyc and source/Source/JavaScriptCore/yarr/__pycache__/hasher.cpython-311.pyc differ +diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/GLESv2.cmake source/Source/ThirdParty/ANGLE/GLESv2.cmake +--- webkitgtk-2.49.1/Source/ThirdParty/ANGLE/GLESv2.cmake 2025-02-17 05:59:58.567796700 -0700 ++++ source/Source/ThirdParty/ANGLE/GLESv2.cmake 2025-05-10 20:36:08.275484081 -0600 +@@ -120,7 +120,7 @@ + + if(is_linux OR is_chromeos OR is_android OR is_fuchsia) + list(APPEND libangle_common_sources +- "src/common/system_utils_linux.cpp" ++ #"src/common/system_utils_linux.cpp" + "src/common/system_utils_posix.cpp" + ) + endif() +diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/PlatformGTK.cmake source/Source/ThirdParty/ANGLE/PlatformGTK.cmake +--- webkitgtk-2.49.1/Source/ThirdParty/ANGLE/PlatformGTK.cmake 2023-10-21 01:33:32.730009300 -0600 ++++ source/Source/ThirdParty/ANGLE/PlatformGTK.cmake 2025-05-10 20:22:26.792451858 -0600 +@@ -1,4 +1,4 @@ +-list(APPEND ANGLE_DEFINITIONS ANGLE_PLATFORM_LINUX EGL_NO_PLATFORM_SPECIFIC_TYPES USE_SYSTEM_EGL) ++list(APPEND ANGLE_DEFINITIONS ANGLE_PLATFORM_POSIX EGL_NO_PLATFORM_SPECIFIC_TYPES USE_SYSTEM_EGL) + include(linux.cmake) + + if (USE_OPENGL) +diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/log_utils.h source/Source/ThirdParty/ANGLE/src/common/log_utils.h +--- webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/log_utils.h 2025-02-17 05:59:58.571796700 -0700 ++++ source/Source/ThirdParty/ANGLE/src/common/log_utils.h 2025-05-10 20:10:39.639595675 -0600 +@@ -136,10 +136,12 @@ + return FmtHexAutoSized(os, fmt.mValue, fmt.mPrefix, "0x", '0'); + } + ++#if !defined(__redox__) + friend std::wostream &operator<<(std::wostream &wos, const FmtHexHelper &fmt) + { + return FmtHexAutoSized(wos, fmt.mValue, fmt.mPrefix, L"0x", L'0'); + } ++#endif + }; + + } // namespace priv +diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/platform.h source/Source/ThirdParty/ANGLE/src/common/platform.h +--- webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/platform.h 2024-09-03 00:28:47.067031900 -0600 ++++ source/Source/ThirdParty/ANGLE/src/common/platform.h 2025-05-10 20:07:40.561378854 -0600 +@@ -28,7 +28,7 @@ + # define ANGLE_PLATFORM_POSIX 1 + #elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || \ + defined(__DragonFly__) || defined(__sun) || defined(__GLIBC__) || defined(__GNU__) || \ +- defined(__QNX__) || defined(__Fuchsia__) || defined(__HAIKU__) ++ defined(__QNX__) || defined(__Fuchsia__) || defined(__HAIKU__) || defined(__redox__) + # define ANGLE_PLATFORM_POSIX 1 + #else + # error Unsupported platform. +diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/system_utils_posix.cpp source/Source/ThirdParty/ANGLE/src/common/system_utils_posix.cpp +--- webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/common/system_utils_posix.cpp 2024-05-30 05:59:22.953676200 -0600 ++++ source/Source/ThirdParty/ANGLE/src/common/system_utils_posix.cpp 2025-05-10 20:28:38.268901621 -0600 +@@ -33,6 +33,11 @@ + # include + #endif + ++#if defined(__redox__) ++#define SEGV_MAPERR 1 ++#define SEGV_ACCERR 2 ++#endif ++ + namespace angle + { + +diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp source/Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp +--- webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp 2025-02-05 02:14:42.678567400 -0700 ++++ source/Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp 2025-05-10 20:42:33.040029309 -0600 +@@ -58,7 +58,7 @@ + # include "libANGLE/renderer/gl/wgl/DisplayWGL.h" + # elif ANGLE_ENABLE_CGL + # include "libANGLE/renderer/gl/cgl/DisplayCGL.h" +-# elif defined(ANGLE_PLATFORM_LINUX) ++# elif defined(ANGLE_PLATFORM_LINUX) || defined(__redox__) + # include "libANGLE/renderer/gl/egl/DisplayEGL.h" + # if defined(ANGLE_USE_X11) + # include "libANGLE/renderer/gl/glx/DisplayGLX_api.h" +@@ -422,7 +422,7 @@ + impl = new rx::DisplayCGL(state); + break; + +-# elif defined(ANGLE_PLATFORM_LINUX) ++# elif defined(ANGLE_PLATFORM_LINUX) || defined(__redox__) + # if defined(ANGLE_USE_GBM) + if (platformType == 0) + { +diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/libGLESv2.gni source/Source/ThirdParty/ANGLE/src/libGLESv2.gni +--- webkitgtk-2.49.1/Source/ThirdParty/ANGLE/src/libGLESv2.gni 2025-02-17 05:59:58.587796200 -0700 ++++ source/Source/ThirdParty/ANGLE/src/libGLESv2.gni 2025-05-10 20:36:18.426498466 -0600 +@@ -115,7 +115,7 @@ + + if (is_linux || is_chromeos || is_android || is_fuchsia) { + libangle_common_sources += [ +- "src/common/system_utils_linux.cpp", ++ #"src/common/system_utils_linux.cpp", + "src/common/system_utils_posix.cpp", + ] + } +diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/skia/src/gpu/ganesh/GrAutoLocaleSetter.h source/Source/ThirdParty/skia/src/gpu/ganesh/GrAutoLocaleSetter.h +--- webkitgtk-2.49.1/Source/ThirdParty/skia/src/gpu/ganesh/GrAutoLocaleSetter.h 2024-08-14 02:56:17.506453500 -0600 ++++ source/Source/ThirdParty/skia/src/gpu/ganesh/GrAutoLocaleSetter.h 2025-05-10 21:10:41.689374796 -0600 +@@ -27,7 +27,7 @@ + #define HAVE_XLOCALE 0 + #endif + +-#if defined(SK_BUILD_FOR_ANDROID) || defined(__UCLIBC__) || defined(_NEWLIB_VERSION) ++#if defined(SK_BUILD_FOR_ANDROID) || defined(__UCLIBC__) || defined(_NEWLIB_VERSION) || defined(__redox__) + #define HAVE_LOCALE_T 0 + #else + #define HAVE_LOCALE_T 1 +diff -ruwN webkitgtk-2.49.1/Source/ThirdParty/skia/src/ports/SkMemory_malloc.cpp source/Source/ThirdParty/skia/src/ports/SkMemory_malloc.cpp +--- webkitgtk-2.49.1/Source/ThirdParty/skia/src/ports/SkMemory_malloc.cpp 2024-05-30 05:59:23.965655000 -0600 ++++ source/Source/ThirdParty/skia/src/ports/SkMemory_malloc.cpp 2025-05-10 21:14:33.304664836 -0600 +@@ -126,7 +126,7 @@ + #elif defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 17 + completeSize = malloc_usable_size(addr); + SkASSERT(completeSize >= size); +- #elif defined(SK_BUILD_FOR_UNIX) ++ #elif defined(SK_BUILD_FOR_UNIX) && !defined(__redox__) + completeSize = malloc_usable_size(addr); + SkASSERT(completeSize >= size); + #elif defined(SK_BUILD_FOR_WIN) +diff -ruwN webkitgtk-2.49.1/Source/WebCore/PlatformGTK.cmake source/Source/WebCore/PlatformGTK.cmake +--- webkitgtk-2.49.1/Source/WebCore/PlatformGTK.cmake 2024-12-16 02:07:48.162613200 -0700 ++++ source/Source/WebCore/PlatformGTK.cmake 2025-05-10 19:05:57.526658690 -0600 +@@ -75,21 +75,18 @@ + ) + + list(APPEND WebCore_LIBRARIES +- ${ENCHANT_LIBRARIES} + ${GLIB_GIO_LIBRARIES} + ${GLIB_GMODULE_LIBRARIES} + ${GLIB_GOBJECT_LIBRARIES} + ${GLIB_LIBRARIES} + ${LIBSECRET_LIBRARIES} + ${LIBTASN1_LIBRARIES} +- ${HYPHEN_LIBRARIES} + ${UPOWERGLIB_LIBRARIES} + ${X11_X11_LIB} + GTK::GTK + ) + + list(APPEND WebCore_SYSTEM_INCLUDE_DIRECTORIES +- ${ENCHANT_INCLUDE_DIRS} + ${GIO_UNIX_INCLUDE_DIRS} + ${GLIB_INCLUDE_DIRS} + ${LIBSECRET_INCLUDE_DIRS} +diff -ruwN webkitgtk-2.49.1/Source/WebKit/PlatformGTK.cmake source/Source/WebKit/PlatformGTK.cmake +--- webkitgtk-2.49.1/Source/WebKit/PlatformGTK.cmake 2025-03-05 03:09:47.273706000 -0700 ++++ source/Source/WebKit/PlatformGTK.cmake 2025-05-10 18:54:43.437475299 -0600 +@@ -313,7 +313,6 @@ + ) + + list(APPEND WebKit_SYSTEM_INCLUDE_DIRECTORIES +- ${ENCHANT_INCLUDE_DIRS} + ${GIO_UNIX_INCLUDE_DIRS} + ${GLIB_INCLUDE_DIRS} + ${GSTREAMER_INCLUDE_DIRS} +diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/glib/FileSystemGlib.cpp source/Source/WTF/wtf/glib/FileSystemGlib.cpp +--- webkitgtk-2.49.1/Source/WTF/wtf/glib/FileSystemGlib.cpp 2024-12-16 02:07:48.134613800 -0700 ++++ source/Source/WTF/wtf/glib/FileSystemGlib.cpp 2025-05-10 20:14:04.266843426 -0600 +@@ -70,7 +70,7 @@ + return CString({ readLinkBuffer, static_cast(result) }); + WTF_ALLOW_UNSAFE_BUFFER_USAGE_END + } +-#elif OS(HURD) ++#elif OS(HURD) || defined(__redox__) + CString currentExecutablePath() + { + return { }; +diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/InlineASM.h source/Source/WTF/wtf/InlineASM.h +--- webkitgtk-2.49.1/Source/WTF/wtf/InlineASM.h 2024-09-23 04:54:44.750106000 -0600 ++++ source/Source/WTF/wtf/InlineASM.h 2025-05-10 21:34:44.313517406 -0600 +@@ -89,7 +89,8 @@ + || OS(HURD) \ + || OS(NETBSD) \ + || OS(QNX) \ +- || OS(WINDOWS) ++ || OS(WINDOWS) \ ++ || defined(__redox__) + // GNU as-compatible syntax. + #define LOCAL_LABEL_STRING(name) ".L" #name + #endif +diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/PlatformHave.h source/Source/WTF/wtf/PlatformHave.h +--- webkitgtk-2.49.1/Source/WTF/wtf/PlatformHave.h 2025-04-02 06:09:45.800669000 -0600 ++++ source/Source/WTF/wtf/PlatformHave.h 2025-05-11 08:45:52.150157369 -0600 +@@ -231,7 +231,7 @@ + #define HAVE_MACH_MEMORY_ENTRY 1 + #endif + +-#if OS(DARWIN) || OS(FUCHSIA) || ((OS(FREEBSD) || OS(HAIKU) || OS(NETBSD) || OS(OPENBSD) || OS(LINUX) || OS(HURD) || OS(QNX)) && (CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(RISCV64))) ++#if OS(DARWIN) || OS(FUCHSIA) || ((OS(FREEBSD) || OS(HAIKU) || OS(NETBSD) || OS(OPENBSD) || OS(LINUX) || OS(HURD) || OS(QNX) || defined(__redox__)) && (CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(RISCV64))) + #define HAVE_MACHINE_CONTEXT 1 + #endif + +diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/PlatformOS.h source/Source/WTF/wtf/PlatformOS.h +--- webkitgtk-2.49.1/Source/WTF/wtf/PlatformOS.h 2025-04-02 23:49:09.282701700 -0600 ++++ source/Source/WTF/wtf/PlatformOS.h 2025-05-10 21:44:33.694803473 -0600 +@@ -143,7 +143,8 @@ + || OS(OPENBSD) \ + || defined(unix) \ + || defined(__unix) \ +- || defined(__unix__) ++ || defined(__unix__) \ ++ || defined(__redox__) + #define WTF_OS_UNIX 1 + #endif + +diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/PlatformRegisters.h source/Source/WTF/wtf/PlatformRegisters.h +--- webkitgtk-2.49.1/Source/WTF/wtf/PlatformRegisters.h 2024-11-20 06:56:01.847236400 -0700 ++++ source/Source/WTF/wtf/PlatformRegisters.h 2025-05-10 19:12:14.761916702 -0600 +@@ -39,6 +39,8 @@ + typedef ucontext_t mcontext_t; + #elif OS(QNX) + #include ++#elif defined(__redox__) ++#include + #else + #include + #endif +diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/posix/CPUTimePOSIX.cpp source/Source/WTF/wtf/posix/CPUTimePOSIX.cpp +--- webkitgtk-2.49.1/Source/WTF/wtf/posix/CPUTimePOSIX.cpp 2023-09-18 01:56:45.363115500 -0600 ++++ source/Source/WTF/wtf/posix/CPUTimePOSIX.cpp 2025-05-10 19:30:23.676993788 -0600 +@@ -47,10 +47,14 @@ + + Seconds CPUTime::forCurrentThread() + { ++#if defined(__redox__) ++ return Seconds(0); ++#else + struct timespec ts { }; + int ret = clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts); + RELEASE_ASSERT(!ret); + return Seconds(ts.tv_sec) + Seconds::fromNanoseconds(ts.tv_nsec); ++#endif + } + + } +diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/posix/FileHandlePOSIX.cpp source/Source/WTF/wtf/posix/FileHandlePOSIX.cpp +--- webkitgtk-2.49.1/Source/WTF/wtf/posix/FileHandlePOSIX.cpp 2025-03-21 05:07:10.828055100 -0600 ++++ source/Source/WTF/wtf/posix/FileHandlePOSIX.cpp 2025-05-10 19:26:54.845585962 -0600 +@@ -39,6 +39,10 @@ + #include + #include + ++#if defined(__redox__) ++#define MAP_FILE 0 ++#endif ++ + namespace WTF::FileSystemImpl { + + std::optional FileHandle::read(std::span data) +diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/posix/ThreadingPOSIX.cpp source/Source/WTF/wtf/posix/ThreadingPOSIX.cpp +--- webkitgtk-2.49.1/Source/WTF/wtf/posix/ThreadingPOSIX.cpp 2025-03-05 03:09:47.149706400 -0700 ++++ source/Source/WTF/wtf/posix/ThreadingPOSIX.cpp 2025-05-10 19:19:09.728119543 -0600 +@@ -356,7 +356,7 @@ + + void Thread::changePriority(int delta) + { +-#if HAVE(PTHREAD_SETSCHEDPARAM) ++#if HAVE(PTHREAD_SETSCHEDPARAM) && !defined(__redox__) + Locker locker { m_mutex }; + + int policy; +diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/RAMSize.cpp source/Source/WTF/wtf/RAMSize.cpp +--- webkitgtk-2.49.1/Source/WTF/wtf/RAMSize.cpp 2024-10-01 01:40:32.303785300 -0600 ++++ source/Source/WTF/wtf/RAMSize.cpp 2025-05-10 19:09:18.889830704 -0600 +@@ -64,7 +64,7 @@ + struct sysinfo si; + sysinfo(&si); + return si.totalram * si.mem_unit; +-#elif OS(UNIX) || OS(HAIKU) ++#elif (OS(UNIX) && !defined(__redox__)) || OS(HAIKU) + long pages = sysconf(_SC_PHYS_PAGES); + long pageSize = sysconf(_SC_PAGE_SIZE); + return pages * pageSize; +diff -ruwN webkitgtk-2.49.1/Source/WTF/wtf/StackBounds.cpp source/Source/WTF/wtf/StackBounds.cpp +--- webkitgtk-2.49.1/Source/WTF/wtf/StackBounds.cpp 2025-03-18 02:33:00.063181400 -0600 ++++ source/Source/WTF/wtf/StackBounds.cpp 2025-05-10 19:16:43.976048337 -0600 +@@ -120,6 +120,8 @@ + #if HAVE(PTHREAD_NP_H) || OS(NETBSD) + // e.g. on FreeBSD 5.4, neundorf@kde.org + pthread_attr_get_np(thread, &sattr); ++#elif defined(__redox__) ++ //TODO + #else + // FIXME: this function is non-portable; other POSIX systems may have different np alternatives + pthread_getattr_np(thread, &sattr);