[packages/gtk-webkit4] - updated to 2.38.5 - added gir patch to add missing inter-gir dependencies - added lowmem bcond to

qboosh qboosh at pld-linux.org
Tue Apr 25 19:21:16 CEST 2023


commit c1d5b85e99c4e44123373e9443fecb69f0719725
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Mon Apr 24 22:08:34 2023 +0200

    - updated to 2.38.5
    - added gir patch to add missing inter-gir dependencies
    - added lowmem bcond to allow build on 4GB x86 system

 gtk-webkit4-gir.patch | 20 +++++++++++++
 gtk-webkit4.spec      | 82 ++++++++++++++++++++++++++++++++-------------------
 2 files changed, 72 insertions(+), 30 deletions(-)
---
diff --git a/gtk-webkit4.spec b/gtk-webkit4.spec
index 53b0af7..c065fce 100644
--- a/gtk-webkit4.spec
+++ b/gtk-webkit4.spec
@@ -1,8 +1,8 @@
 # TODO: review configure options:
 # - FTL_JIT on !x86_64?
-# - WEB_RTC+MEDIA_STREAM (BR: openwebrtc)
-# - AVIF? (BR: libavif-devel >= 0.9.0)
-# - JPEGXL? (BR: libjxl-devel)
+# - WEB_RTC+MEDIA_STREAM (experimental; BR: openwebrtc)
+# - AVIF? (experimental; BR: libavif-devel >= 0.9.0)
+# - JPEGXL? (experimental; BR: libjxl-devel)
 # - THUNDER? (BR: Thunder + ThunderClientLibraries)
 #
 # Conditional build:
@@ -12,6 +12,7 @@
 %bcond_without	gtk3		# webkit-4.x (gtk3 based) variants
 %bcond_without	gtk4		# webkit-5.0 (gtk4/libsoup3 based) variant
 %bcond_without	wayland		# Wayland target (requires GTK+ wayland target)
+%bcond_with	lowmem		# try to reduce build memory usage (disable unified build, adjust gcc gc)
 #
 # it's not possible to build this with debuginfo on 32bit archs due to
 # memory constraints during linking
@@ -22,14 +23,15 @@ Summary:	Port of WebKit embeddable web component to GTK+ 3
 Summary(pl.UTF-8):	Port osadzalnego komponentu WWW WebKit do GTK+ 3
 Name:		gtk-webkit4
 # NOTE: 2.34.x is stable, 2.35.x devel
-Version:	2.36.1
-Release:	3
+Version:	2.38.5
+Release:	1
 License:	BSD-like
 Group:		X11/Libraries
 Source0:	https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz
-# Source0-md5:	e6100df7f82d95a4e65176b10f5ab011
+# Source0-md5:	de05d314a3ecb5fb3835e4d84f8f466d
 Patch0:		x32.patch
 Patch1:		%{name}-icu59.patch
+Patch2:		%{name}-gir.patch
 URL:		https://webkitgtk.org/
 BuildRequires:	/usr/bin/ld.gold
 BuildRequires:	EGL-devel
@@ -39,7 +41,7 @@ BuildRequires:	at-spi2-core-devel >= 2.5.3
 BuildRequires:	atk-devel >= 1:2.16.0
 BuildRequires:	bubblewrap >= 0.3.1
 BuildRequires:	cairo-devel >= 1.16.0
-BuildRequires:	cmake >= 3.12
+BuildRequires:	cmake >= 3.20
 BuildRequires:	docbook-dtd412-xml
 BuildRequires:	enchant2-devel >= 2
 BuildRequires:	fontconfig-devel >= 2.13.0
@@ -47,6 +49,7 @@ BuildRequires:	freetype-devel >= 1:2.9.0
 BuildRequires:	gcc-c++ >= 6:7.3.0
 BuildRequires:	gettext-devel
 BuildRequires:	gettext-tools
+BuildRequires:	gi-docgen
 BuildRequires:	glib2-devel >= 1:2.67.1
 BuildRequires:	glibc-misc
 %{?with_introspection:BuildRequires:	gobject-introspection-devel >= 1.32.0}
@@ -63,7 +66,7 @@ BuildRequires:	gtk-doc >= 1.10
 BuildRequires:	harfbuzz-devel >= 1.4.2
 BuildRequires:	harfbuzz-icu-devel >= 1.4.2
 BuildRequires:	hyphen-devel
-BuildRequires:	lcms2-devel
+BuildRequires:	lcms2-devel >= 2
 BuildRequires:	libgcrypt-devel >= 1.7.0
 BuildRequires:	libicu-devel >= 61.2
 BuildRequires:	libjpeg-devel
@@ -75,7 +78,7 @@ BuildRequires:	libsecret-devel
 %{?with_libsoup2:BuildRequires:	libsoup-devel >= 2.54}
 %{?with_libsoup3:BuildRequires:	libsoup3-devel >= 3.0}
 # -std=c++2a
-BuildRequires:	libstdc++-devel >= 6:8
+BuildRequires:	libstdc++-devel >= 6:8.3
 BuildRequires:	libtasn1-devel
 BuildRequires:	libwebp-devel
 BuildRequires:	libwpe-devel >= 1.3.0
@@ -121,6 +124,7 @@ Requires:	gtk+3 >= 3.22.0
 Requires:	harfbuzz >= 1.4.2
 Requires:	libgcrypt >= 1.7.0
 Requires:	libsoup >= 2.54
+Requires:	libwpe >= 1.3.0
 Requires:	libxml2 >= 1:2.8.0
 Requires:	libxslt >= 1.1.7
 Requires:	openjpeg2 >= 2.2.0
@@ -150,7 +154,7 @@ Requires:	%{name} = %{version}-%{release}
 Requires:	glib2-devel >= 1:2.67.1
 Requires:	gtk+3-devel >= 3.22.0
 Requires:	libsoup-devel >= 2.54
-Requires:	libstdc++-devel >= 6:8
+Requires:	libstdc++-devel >= 6:8.3
 
 %description devel
 Development files for WebKit for GTK+ 3.
@@ -187,6 +191,7 @@ Requires:	gtk+3 >= 3.22.0
 Requires:	harfbuzz >= 1.4.2
 Requires:	libgcrypt >= 1.7.0
 Requires:	libsoup3 >= 3.0
+Requires:	libwpe >= 1.3.0
 Requires:	libxml2 >= 1:2.8.0
 Requires:	libxslt >= 1.1.7
 Requires:	openjpeg2 >= 2.2.0
@@ -210,7 +215,7 @@ Requires:	gtk-webkit4.1 = %{version}-%{release}
 Requires:	glib2-devel >= 1:2.67.1
 Requires:	gtk+3-devel >= 3.22.0
 Requires:	libsoup3-devel >= 3.0
-Requires:	libstdc++-devel >= 6:8
+Requires:	libstdc++-devel >= 6:8.3
 
 %description -n gtk-webkit4.1-devel
 Development files for WebKit for GTK+ 3 with HTTP/2 support.
@@ -218,6 +223,19 @@ Development files for WebKit for GTK+ 3 with HTTP/2 support.
 %description -n gtk-webkit4.1-devel -l pl.UTF-8
 Pliki programistyczne komponentu WebKit dla GTK+ 3 z obsługą HTTP/2.
 
+%package -n gtk-webkit4.1-apidocs
+Summary:	API documentation for WebKit GTK+ 3 port with HTTP/2 support
+Summary(pl.UTF-8):	Dokumentacja API portu WebKitu do GTK+ 3 z obsługą HTTP/2
+Group:		Documentation
+Requires:	gtk-doc-common
+BuildArch:	noarch
+
+%description -n gtk-webkit4.1-apidocs
+API documentation for WebKit GTK+ 3 port with HTTP/2 support.
+
+%description -n gtk-webkit4.1-apidocs -l pl.UTF-8
+Dokumentacja API portu WebKitu do GTK+ 3 z obsługą HTTP/2.
+
 %package -n gtk-webkit5
 Summary:	Port of WebKit embeddable web component to GTK 4
 Summary(pl.UTF-8):	Port osadzalnego komponentu WWW WebKit do GTK 4
@@ -234,6 +252,7 @@ Requires:	gtk4 >= 4.0
 Requires:	harfbuzz >= 1.4.2
 Requires:	libgcrypt >= 1.7.0
 Requires:	libsoup3 >= 3.0
+Requires:	libwpe >= 1.3.0
 Requires:	libxml2 >= 1:2.8.0
 Requires:	libxslt >= 1.1.7
 Requires:	openjpeg2 >= 2.2.0
@@ -255,7 +274,7 @@ Requires:	gtk-webkit5 = %{version}-%{release}
 Requires:	glib2-devel >= 1:2.67.1
 Requires:	gtk4-devel >= 4.0
 Requires:	libsoup3-devel >= 3.0
-Requires:	libstdc++-devel >= 6:8
+Requires:	libstdc++-devel >= 6:8.3
 
 %description -n gtk-webkit5-devel
 Development files for WebKit for GTK 4.
@@ -280,19 +299,19 @@ Dokumentacja API portu WebKitu do GTK 4.
 %setup -q -n webkitgtk-%{version}
 %patch0 -p1
 %patch1 -p1
+%patch2 -p1
 
 %build
+%if %{with lowmem}
+CXXFLAGS="%{rpmcxxflags} --param ggc-min-expand=30 --param ggc-min-heapsize=768"
+%endif
 for kind in %{?with_gtk3:%{?with_libsoup2:soup2} %{?with_libsoup3:soup3}} %{?with_gtk4:gtk4} ; do
 install -d build-${kind}
-cd build-${kind}
-# gtk4 variant is missing some files in dist:
-# Source/WebKit/UIProcess/API/gtk/docs/webkit2gtk-5.0-sections.txt
-# Source/WebKit/UIProcess/API/gtk/docs/webkit2gtk-5.0.types
-# don't know how to generate them, disable GTKDOC for now
-%cmake .. \
+%cmake -B build-${kind} \
 	-DENABLE_GEOLOCATION=ON \
-	$([ "$kind" != "gtk4" ] && echo -DENABLE_GTKDOC=ON) \
+	-DENABLE_GTKDOC=ON \
 	%{!?with_introspection:-DENABLE_INTROSPECTION=OFF} \
+	%{?with_lowmem:-DENABLE_UNIFIED_BUILDS=OFF} \
 	-DENABLE_VIDEO=ON \
 	%{!?with_wayland:-DENABLE_WAYLAND_TARGET=OFF} \
 	-DENABLE_WEB_AUDIO=ON \
@@ -310,8 +329,7 @@ cd build-${kind}
 	$([ "$kind" = "gtk4" ] && echo -DUSE_GTK4=ON) \
 	$([ "$kind" = "soup2" ] && echo -DUSE_SOUP2=ON)
 
-%{__make}
-cd ..
+%{__make} -C build-${kind}
 done
 
 %install
@@ -360,6 +378,7 @@ rm -rf $RPM_BUILD_ROOT
 %if "%{_libexecdir}" != "%{_libdir}"
 %dir %{_libexecdir}/webkit2gtk-4.0
 %endif
+%attr(755,root,root) %{_libexecdir}/webkit2gtk-4.0/MiniBrowser
 %attr(755,root,root) %{_libexecdir}/webkit2gtk-4.0/WebKitNetworkProcess
 %attr(755,root,root) %{_libexecdir}/webkit2gtk-4.0/WebKitWebProcess
 %attr(755,root,root) %{_libexecdir}/webkit2gtk-4.0/jsc
@@ -380,14 +399,12 @@ rm -rf $RPM_BUILD_ROOT
 %{_pkgconfigdir}/javascriptcoregtk-4.0.pc
 %{_pkgconfigdir}/webkit2gtk-4.0.pc
 %{_pkgconfigdir}/webkit2gtk-web-extension-4.0.pc
-%endif
 
-%if %{with gtk3}
 %files apidocs
 %defattr(644,root,root,755)
-%{_gtkdocdir}/jsc-glib-4.0
+%{_gtkdocdir}/javascriptcoregtk-4.0
 %{_gtkdocdir}/webkit2gtk-4.0
-%{_gtkdocdir}/webkitdomgtk-4.0
+%{_gtkdocdir}/webkit2gtk-web-extension-4.0
 %endif
 
 %if %{with gtk3} && %{with libsoup3}
@@ -406,6 +423,7 @@ rm -rf $RPM_BUILD_ROOT
 %if "%{_libexecdir}" != "%{_libdir}"
 %dir %{_libexecdir}/webkit2gtk-4.1
 %endif
+%attr(755,root,root) %{_libexecdir}/webkit2gtk-4.1/MiniBrowser
 %attr(755,root,root) %{_libexecdir}/webkit2gtk-4.1/WebKitNetworkProcess
 %attr(755,root,root) %{_libexecdir}/webkit2gtk-4.1/WebKitWebProcess
 %attr(755,root,root) %{_libexecdir}/webkit2gtk-4.1/jsc
@@ -426,6 +444,12 @@ rm -rf $RPM_BUILD_ROOT
 %{_pkgconfigdir}/javascriptcoregtk-4.1.pc
 %{_pkgconfigdir}/webkit2gtk-4.1.pc
 %{_pkgconfigdir}/webkit2gtk-web-extension-4.1.pc
+
+%files -n gtk-webkit4.1-apidocs
+%defattr(644,root,root,755)
+%{_gtkdocdir}/javascriptcoregtk-4.1
+%{_gtkdocdir}/webkit2gtk-4.1
+%{_gtkdocdir}/webkit2gtk-web-extension-4.1
 %endif
 
 %if %{with gtk4}
@@ -444,6 +468,7 @@ rm -rf $RPM_BUILD_ROOT
 %if "%{_libexecdir}" != "%{_libdir}"
 %dir %{_libexecdir}/webkit2gtk-5.0
 %endif
+%attr(755,root,root) %{_libexecdir}/webkit2gtk-5.0/MiniBrowser
 %attr(755,root,root) %{_libexecdir}/webkit2gtk-5.0/WebKitNetworkProcess
 %attr(755,root,root) %{_libexecdir}/webkit2gtk-5.0/WebKitWebProcess
 %attr(755,root,root) %{_libexecdir}/webkit2gtk-5.0/jsc
@@ -465,12 +490,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_pkgconfigdir}/webkit2gtk-5.0.pc
 %{_pkgconfigdir}/webkit2gtk-web-extension-5.0.pc
 
-# disabled for now, see note on cmake
-%if 0
 %files -n gtk-webkit5-apidocs
 %defattr(644,root,root,755)
-%{_gtkdocdir}/jsc-glib-5.0
+%{_gtkdocdir}/javascriptcoregtk-5.0
 %{_gtkdocdir}/webkit2gtk-5.0
-%{_gtkdocdir}/webkitdomgtk-5.0
-%endif
+%{_gtkdocdir}/webkit2gtk-web-extension-5.0
 %endif
diff --git a/gtk-webkit4-gir.patch b/gtk-webkit4-gir.patch
new file mode 100644
index 0000000..7fd9584
--- /dev/null
+++ b/gtk-webkit4-gir.patch
@@ -0,0 +1,20 @@
+#--- webkitgtk-2.38.5/Source/WebKit/PlatformGTK.cmake.orig	2022-09-14 13:58:10.556863500 +0200
+#+++ webkitgtk-2.38.5/Source/WebKit/PlatformGTK.cmake	2023-04-22 19:21:53.186764446 +0200
+#@@ -764,3 +764,6 @@ GI_INTROSPECT(WebKit2WebExtension ${WEBK
+# GI_DOCGEN(WebKit2WebExtension gtk/webkit2gtk-webextension.toml.in
+#     CONTENT_TEMPLATES gtk/urlmap.js
+# )
+#+
+#+add_dependencies(gir-WebKit2 gir-JavaScriptCore)
+#+add_dependencies(gir-WebKit2WebExtension gir-JavaScriptCore)
+--- webkitgtk-2.38.5/Source/cmake/FindGI.cmake.orig	2023-02-14 10:01:07.457508800 +0100
++++ webkitgtk-2.38.5/Source/cmake/FindGI.cmake	2023-04-22 19:21:53.186764446 +0200
+@@ -265,7 +265,7 @@ function(GI_INTROSPECT namespace nsversi
+             get_property(dep_gir_lib TARGET "gir-${dep}" PROPERTY GI_GIR_LIBRARY)
+             if (dep_gir_path)
+                 list(APPEND scanner_flags "--include-uninstalled=${dep_gir_path}")
+-                list(APPEND gir_deps "${dep_gir_path}")
++                list(APPEND gir_deps "gir-${dep}")
+             else ()
+                 message(AUTHOR_WARNING
+                     "Target '${dep}' listed as a dependency but it has not "
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/gtk-webkit4.git/commitdiff/c1d5b85e99c4e44123373e9443fecb69f0719725



More information about the pld-cvs-commit mailing list