From e1589bbe96941f9e13e5a342a9f501da9c510933 Mon Sep 17 00:00:00 2001 From: EnumDev Date: Tue, 30 Sep 2025 15:09:04 +0300 Subject: [PATCH] Update package version to 2.50.0 --- pkg.info | 149 ++++++++++++++++++++++++++-- source-files/gstreamer-1.27.2.patch | 57 +++++++++++ source.sh | 14 +-- 3 files changed, 207 insertions(+), 13 deletions(-) create mode 100644 source-files/gstreamer-1.27.2.patch diff --git a/pkg.info b/pkg.info index e307909..7c531a7 100644 --- a/pkg.info +++ b/pkg.info @@ -1,17 +1,154 @@ name: webkitgtk description: Cross-platform web browser engine for GTK -version: 2.48.6 -revision: 2 +version: 2.50.0 +revision: 1 url: https://webkitgtk.org/ license: AFL2.0 OR GPL2-or-later,Apache-2.0,Apache-2.0 WITH LLVM-exception,BSD-2-Clause,BSD-2-Clause-Views,BSD-3-Clause,BSD-Source-Code,BSL1.0,GPL2-only,GPL3-only WITH Autoconf-exception-3.0,GPL3-or-later WITH Bison-exception-2.2,ICU,ISC,LGPL2.1-only,LGPL2.1-or-later,MIT,MPL1.1,MPL2,NCSA,NCSA OR MIT,OFL1.1,SunPro,Unicode-TOU,bzip2-1.0.6 architecture: any -depends: ["at-spi2-core", "bubblewrap", "cairo", "enchant", "expat", "fontconfig", "freetype2", "gcc-libs", "gdk-pixbuf", "glib", "glibc", "gst-plugins-bad", "gst-plugins-base", "gstreamer", "gtk4", "harfbuzz", "icu", "libavif", "libdrm", "libepoxy", "libgcrypt", "libglvnd", "libjpeg-turbo", "libjxl", "libpng", "libseccomp", "libsecret", "libsoup", "libtasn1", "libwebp", "libx11", "libxml2", "libxslt", "mesa", "openjpeg", "pango", "sqlite", "wayland", "woff2", "xdg-dbus-proxy", "zlib"] -make_depends: ["cmake", "gobject-introspection", "gperf", "python3", "ruby", "unifdef", "wayland-protocols"] type: source +depends: + - at-spi2-core + - bubblewrap + - cairo + - enchant + - expat + - fontconfig + - freetype2 + - gcc-libs + - gdk-pixbuf + - glib + - glibc + - gst-plugins-bad + - gst-plugins-base + - gstreamer + - gtk4 + - harfbuzz + - icu + - libavif + - libdrm + - libepoxy + - libgcrypt + - libglvnd + - libjpeg-turbo + - libjxl + - libpng + - libseccomp + - libsecret + - libsoup + - libtasn1 + - libwebp + - libx11 + - libxml2 + - libxslt + - mesa + - openjpeg + - pango + - sqlite + - wayland + - woff2 + - xdg-dbus-proxy + - zlib +make_depends: + - clang + - cmake + - gobject-introspection + - gperf + - lld + - python3 + - ruby + - unifdef + - wayland-protocols +downloads: + - url: https://webkitgtk.org/releases/webkitgtk-${BPM_PKG_VERSION}.tar.xz + extract_to_bpm_source: true + extract_strip_components: 1 + checksum: e564b8099f9a3ae32409539b290bbd2ad084e99b6d22d4aac5e51e4554df8bc2 split_packages: - name: webkitgtk4 - depends: ["at-spi2-core", "bubblewrap", "cairo", "enchant", "expat", "fontconfig", "freetype2", "gcc-libs", "gdk-pixbuf", "glib", "glibc", "gst-plugins-bad", "gst-plugins-base", "gstreamer", "gtk4", "harfbuzz", "icu", "libavif", "libdrm", "libepoxy", "libgcrypt", "libglvnd", "libjpeg-turbo", "libjxl", "libpng", "libseccomp", "libsecret", "libsoup", "libtasn1", "libwebp", "libx11", "libxml2", "libxslt", "mesa", "openjpeg", "pango", "sqlite", "wayland", "woff2", "xdg-dbus-proxy", "zlib"] description: Cross-platform web browser engine for GTK4 + depends: + - at-spi2-core + - bubblewrap + - cairo + - enchant + - expat + - fontconfig + - freetype2 + - gcc-libs + - gdk-pixbuf + - glib + - glibc + - gst-plugins-bad + - gst-plugins-base + - gstreamer + - gtk4 + - harfbuzz + - icu + - libavif + - libdrm + - libepoxy + - libgcrypt + - libglvnd + - libjpeg-turbo + - libjxl + - libpng + - libseccomp + - libsecret + - libsoup + - libtasn1 + - libwebp + - libx11 + - libxml2 + - libxslt + - mesa + - openjpeg + - pango + - sqlite + - wayland + - woff2 + - xdg-dbus-proxy + - zlib - name: webkitgtk3 - depends: ["at-spi2-core", "bubblewrap", "cairo", "enchant", "expat", "fontconfig", "freetype2", "gcc-libs", "gdk-pixbuf", "glib", "glibc", "gst-plugins-bad", "gst-plugins-base", "gstreamer", "gtk3", "harfbuzz", "icu", "libavif", "libdrm", "libepoxy", "libgcrypt", "libglvnd", "libjpeg-turbo", "libjxl", "libpng", "libseccomp", "libsecret", "libsoup", "libtasn1", "libwebp", "libx11", "libxml2", "libxslt", "mesa", "openjpeg", "pango", "sqlite", "wayland", "woff2", "xdg-dbus-proxy", "zlib"] description: Cross-platform web browser engine for GTK3 + depends: + - at-spi2-core + - bubblewrap + - cairo + - enchant + - expat + - fontconfig + - freetype2 + - gcc-libs + - gdk-pixbuf + - glib + - glibc + - gst-plugins-bad + - gst-plugins-base + - gstreamer + - gtk3 + - harfbuzz + - icu + - libavif + - libdrm + - libepoxy + - libgcrypt + - libglvnd + - libjpeg-turbo + - libjxl + - libpng + - libseccomp + - libsecret + - libsoup + - libtasn1 + - libwebp + - libx11 + - libxml2 + - libxslt + - mesa + - openjpeg + - pango + - sqlite + - wayland + - woff2 + - xdg-dbus-proxy + - zlib diff --git a/source-files/gstreamer-1.27.2.patch b/source-files/gstreamer-1.27.2.patch new file mode 100644 index 0000000..ad5c3af --- /dev/null +++ b/source-files/gstreamer-1.27.2.patch @@ -0,0 +1,57 @@ +From 61a456e19153033fd9592f40b985d5d03483e969 Mon Sep 17 00:00:00 2001 +From: Philippe Normand +Date: Tue, 30 Sep 2025 00:53:34 -0700 +Subject: [PATCH] [GStreamer] Build broken when using GStreamer 1.27.2 built + from tarballs https://bugs.webkit.org/show_bug.cgi?id=299656 + +Reviewed by Xabier Rodriguez-Calvar. + +gst_pad_probe_info_set_buffer() will ship in GStreamer 1.27.3 which hasn't been released yet. So +when building against 1.27.2 use our internal implementation. Also make sure builds against current +GStreamer git main still work, by checking the full (including nano) version. + +* Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp: +* Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h: + +Canonical link: https://commits.webkit.org/300744@main +--- + .../WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp | 2 +- + Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h | 5 ++++- + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp b/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp +index 3e974df4e292..ef2b2fb013cf 100644 +--- a/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp ++++ b/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp +@@ -2045,7 +2045,7 @@ GstBuffer* gst_buffer_new_memdup(gconstpointer data, gsize size) + } + #endif + +-#if !GST_CHECK_VERSION(1, 27, 0) ++#if !GST_CHECK_VERSION_FULL(1, 27, 2, 1) && !GST_CHECK_VERSION(1, 27, 3) && !GST_CHECK_VERSION(1, 28, 0) + void gst_pad_probe_info_set_buffer(GstPadProbeInfo* info, GstBuffer* buffer) + { + g_return_if_fail(info->type & GST_PAD_PROBE_TYPE_BUFFER); +diff --git a/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h b/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h +index 3e8fe5112676..f8286c5a999a 100644 +--- a/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h ++++ b/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h +@@ -50,6 +50,9 @@ using TrackID = uint64_t; + template + using TrackIDHashMap = HashMap, WTF::UnsignedWithZeroKeyHashTraits>; + ++#define GST_CHECK_VERSION_FULL(major, minor, micro, nano) \ ++ (GST_CHECK_VERSION(major, minor, micro) && (GST_VERSION_NANO >= nano)) ++ + inline bool webkitGstCheckVersion(guint major, guint minor, guint micro) + { + guint currentMajor, currentMinor, currentMicro, currentNano; +@@ -469,7 +472,7 @@ class GstIteratorAdaptor { + GstBuffer* gst_buffer_new_memdup(gconstpointer data, gsize size); + #endif + +-#if !GST_CHECK_VERSION(1, 27, 0) ++#if !GST_CHECK_VERSION_FULL(1, 27, 2, 1) && !GST_CHECK_VERSION(1, 27, 3) && !GST_CHECK_VERSION(1, 28, 0) + void gst_pad_probe_info_set_buffer(GstPadProbeInfo*, GstBuffer*); + #endif + diff --git a/source.sh b/source.sh index f2a6718..071c65a 100644 --- a/source.sh +++ b/source.sh @@ -2,20 +2,16 @@ # BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE # BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT -DOWNLOAD="https://webkitgtk.org/releases/webkitgtk-${BPM_PKG_VERSION}.tar.xz" -FILENAME="${DOWNLOAD##*/}" - # The prepare function is executed in the root of the temp directory -# This function is used for downloading files and putting them into the correct location +# This function is used for putting downloaded files to the correct location or applying patches prepare() { - wget "$DOWNLOAD" - tar -xvf "$FILENAME" --strip-components=1 -C "$BPM_SOURCE" + cd "$BPM_SOURCE" + patch -Np1 -i "$BPM_WORKDIR"/gstreamer-1.27.2.patch } # The build function is executed in the source directory # This function is used to compile the source code build() { - local options=( -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr @@ -35,6 +31,10 @@ build() { -DUSE_SYSPROF_CAPTURE=NO -Wno-dev ) + + # Use Clang as recommended by upstream + export CC=clang CXX=clang++ + LDFLAGS+=" =fise-ld=lld" cmake -B build-gtk4 "${options[@]}" -DUSE_GTK4=ON cmake -B build-gtk3 "${options[@]}" -DUSE_GTK4=OFF