1 # TODO: review configure options:
2 # - ENABLE_WEBXR (experimental; BR: OpenXR >= 1.0.9, openxr.pc)?
3 # - ENABLE_ENCRYPTED_MEDIA, ENABLE_THUNDER (experimental; https://github.com/rdkcentral/Thunder)?
4 # - FTL_JIT on !x86_64?
5 # - MEDIA_RECORDER (experimental; BR: gstreamer-transcoder-devel >= 1.20)
6 # - WEB_RTC (experimental; BR: gstreamer-plugins-bad-devel (webrtc component) >= 1.20, openssl-devel)
7 # - WEB_RTC+MEDIA_STREAM (BR: openwebrtc)
8 # - USE_AVIF? (experimental; BR: libavif-devel >= 0.9.0)
9 # - USE_JPEGXL? (experimental; BR: libjxl-devel)
10 # - libsoup3 for HTTP/2 (drop USE_SOUP2=ON)? (BR: libsoup3-devel >= 3.0.0; changes abi tag from -1.0 to -1.1; doc tag remains -1.0)
13 %bcond_without libsoup2 # libWPEWebKit-1.0 (libsoup2 based) variant
14 %bcond_without libsoup3 # libWPEWebKit-1.1 (libsoup3 based) variant (HTTP/2 support)
16 # it's not possible to build this with debuginfo on 32bit archs due to
17 # memory constraints during linking
19 %define _enable_debug_packages 0
21 Summary: Port of WebKit embeddable web component to WPE
22 Summary(pl.UTF-8): Port osadzalnego komponentu WWW WebKit do WPE
24 # NOTE: 2.38.x is stable, 2.39.x devel
29 Source0: https://wpewebkit.org/releases/wpewebkit-%{version}.tar.xz
30 # Source0-md5: eb44d3132208218f3752170cae3220b8
31 Patch0: %{name}-x32.patch
32 Patch1: %{name}-gcc13.patch
33 Patch2: %{name}-driver-version-suffix.patch
34 URL: https://wpewebkit.org/
35 BuildRequires: /usr/bin/ld.gold
36 BuildRequires: EGL-devel
37 BuildRequires: OpenGLESv2-devel
38 BuildRequires: at-spi2-atk-devel >= 2.5.3
39 BuildRequires: atk-devel >= 1:2.16.0
40 BuildRequires: bubblewrap >= 0.3.1
41 BuildRequires: cairo-devel >= 1.16.0
42 BuildRequires: cmake >= 3.20
43 BuildRequires: docbook-dtd412-xml
44 BuildRequires: fontconfig-devel >= 2.13.0
45 BuildRequires: freetype-devel >= 1:2.9.0
46 BuildRequires: gcc-c++ >= 6:7.3.0
47 BuildRequires: gi-docgen
48 BuildRequires: glib2-devel >= 1:2.67.1
49 BuildRequires: glibc-misc
50 BuildRequires: gperf >= 3.0.1
51 BuildRequires: gstreamer-devel >= 1.14.0
52 BuildRequires: gstreamer-gl-devel >= 1.14.0
54 BuildRequires: gstreamer-plugins-bad-devel >= 1.14.0
55 # app,audio,fft,pbutils,tag,video
56 BuildRequires: gstreamer-plugins-base-devel >= 1.14.0
57 BuildRequires: gtk-doc >= 1.10
58 BuildRequires: harfbuzz-devel >= 1.4.2
59 BuildRequires: harfbuzz-icu-devel >= 1.4.2
60 BuildRequires: lcms2-devel >= 2
61 BuildRequires: libepoxy-devel >= 1.4.0
62 BuildRequires: libgcrypt-devel >= 1.7.0
63 BuildRequires: libicu-devel >= 61.2
64 BuildRequires: libjpeg-devel
65 BuildRequires: libpng-devel
66 BuildRequires: libseccomp-devel
67 %{?with_libsoup2:BuildRequires: libsoup-devel >= 2.54}
68 %{?with_libsoup3:BuildRequires: libsoup3-devel >= 3.0}
70 BuildRequires: libstdc++-devel >= 6:8.3
71 BuildRequires: libtasn1-devel
72 BuildRequires: libwebp-devel
73 BuildRequires: libwpe-devel >= 1.14.0
74 BuildRequires: libxml2-devel >= 1:2.8.0
75 BuildRequires: libxslt-devel >= 1.1.7
76 BuildRequires: openjpeg2-devel >= 2.2.0
77 BuildRequires: perl-base >= 1:5.10.0
78 BuildRequires: pkgconfig
79 BuildRequires: python >= 1:2.7.0
80 BuildRequires: rpm-build >= 4.6
81 BuildRequires: rpmbuild(macros) >= 1.699
82 BuildRequires: ruby >= 1:1.9
83 BuildRequires: ruby-modules >= 1:1.9
84 BuildRequires: sqlite3-devel >= 3
85 BuildRequires: systemd-devel
86 BuildRequires: tar >= 1:1.22
87 BuildRequires: wayland-devel
88 BuildRequires: wayland-egl-devel
89 BuildRequires: wpebackend-fdo-devel >= 1.9.0
90 BuildRequires: woff2-devel >= 1.0.2
91 BuildRequires: xdg-dbus-proxy
92 BuildRequires: xorg-lib-libICE-devel
93 BuildRequires: xorg-lib-libXcomposite-devel
94 BuildRequires: xorg-lib-libXdamage-devel
95 BuildRequires: xorg-lib-libXext-devel
96 BuildRequires: xorg-lib-libXrender-devel
97 BuildRequires: xorg-lib-libXt-devel
99 BuildRequires: zlib-devel
100 Requires: at-spi2-atk-libs >= 2.5.3
101 Requires: atk >= 1:2.16.0
102 Requires: cairo >= 1.16.0
103 Requires: fontconfig-libs >= 2.13.0
104 Requires: freetype >= 1:2.9.0
105 Requires: glib2 >= 1:2.67.1
106 Requires: gstreamer >= 1.2.3
107 Requires: gstreamer-plugins-base >= 1.2.3
108 Requires: harfbuzz >= 1.4.2
109 Requires: libepoxy >= 1.4.0
110 Requires: libgcrypt >= 1.7.0
111 Requires: libsoup >= 2.54.0
112 Requires: libwpe >= 1.14.0
113 Requires: libxml2 >= 1:2.8.0
114 Requires: libxslt >= 1.1.7
115 Requires: openjpeg2 >= 2.2.0
116 Requires: woff2 >= 1.0.2
117 Requires: wpebackend-fdo >= 1.9.0
118 # Source/JavaScriptCore/CMakeLists.txt /WTF_CPU_
119 ExclusiveArch: %{ix86} %{x8664} x32 %{arm} aarch64 hppa mips ppc ppc64 ppc64le s390 s390x sh4
120 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
122 %define _enable_debug_packages 0
125 wpe-webkit is a port of the WebKit embeddable web component to WPE.
127 WPE (Webkit Port for Embedded) is the reference WebKit port for
128 embedded and low-consumption computer devices.
130 %description -l pl.UTF-8
131 wpe-webkit to port osadzalnego komponentu WWW WebKit do WPE.
133 WPE (Webkit Port for Embedded) to wzorcowy port biblioteki WebKit dla
134 urządzeń komputerowych wbudowanych oraz o niskim poborze energii.
137 Summary: Development files for WebKit for WPE
138 Summary(pl.UTF-8): Pliki programistyczne komponentu WebKit dla WPE
139 Group: X11/Development/Libraries
140 Requires: %{name} = %{version}-%{release}
141 Requires: glib2-devel >= 1:2.67.1
142 Requires: libsoup-devel >= 2.54.0
143 Requires: libstdc++-devel >= 6:8.3
144 Requires: libwpe-devel >= 1.14.0
147 Development files for WebKit for WPE.
149 %description devel -l pl.UTF-8
150 Pliki programistyczne komponentu WebKit dla WPE.
153 Summary: API documentation for WebKit WPE port
154 Summary(pl.UTF-8): Dokumentacja API portu WebKitu do WPE
156 Requires: gtk-doc-common
160 API documentation for WebKit WPE port.
162 %description apidocs -l pl.UTF-8
163 Dokumentacja API portu WebKitu do WPE.
165 %package -n wpe-webkit1.1
166 Summary: Port of WebKit embeddable web component to WPE with HTTP/2 support
167 Summary(pl.UTF-8): Port osadzalnego komponentu WWW WebKit do WPE z obsługą HTTP/2
169 Requires: at-spi2-atk-libs >= 2.5.3
170 Requires: atk >= 1:2.16.0
171 Requires: cairo >= 1.16.0
172 Requires: fontconfig-libs >= 2.13.0
173 Requires: freetype >= 1:2.9.0
174 Requires: glib2 >= 1:2.67.1
175 Requires: gstreamer >= 1.2.3
176 Requires: gstreamer-plugins-base >= 1.2.3
177 Requires: harfbuzz >= 1.4.2
178 Requires: libepoxy >= 1.4.0
179 Requires: libgcrypt >= 1.7.0
180 Requires: libsoup3 >= 3.0.0
181 Requires: libwpe >= 1.14.0
182 Requires: libxml2 >= 1:2.8.0
183 Requires: libxslt >= 1.1.7
184 Requires: openjpeg2 >= 2.2.0
185 Requires: woff2 >= 1.0.2
186 Requires: wpebackend-fdo >= 1.9.0
188 %description -n wpe-webkit1.1
189 wpe-webkit1.1 is a port of the WebKit embeddable web component to WPE
190 with HTTP/2 (libsoup 3) support.
192 WPE (Webkit Port for Embedded) is the reference WebKit port for
193 embedded and low-consumption computer devices.
195 %description -n wpe-webkit1.1 -l pl.UTF-8
196 wpe-webkit1.1 to port osadzalnego komponentu WWW WebKit do WPE z
197 obsługą HTTP/2 (libsoup 3).
199 WPE (Webkit Port for Embedded) to wzorcowy port biblioteki WebKit dla
200 urządzeń komputerowych wbudowanych oraz o niskim poborze energii.
202 %package -n wpe-webkit1.1-devel
203 Summary: Development files for WebKit for WPE with HTTP/2 support
204 Summary(pl.UTF-8): Pliki programistyczne komponentu WebKit dla WPE z obsługą HTTP/2
205 Group: X11/Development/Libraries
206 Requires: %{name} = %{version}-%{release}
207 Requires: glib2-devel >= 1:2.67.1
208 Requires: libsoup3-devel >= 3.0.0
209 Requires: libstdc++-devel >= 6:8.3
210 Requires: libwpe-devel >= 1.14.0
212 %description -n wpe-webkit1.1-devel
213 Development files for WebKit for WPE with HTTP/2 support.
215 %description -n wpe-webkit1.1-devel -l pl.UTF-8
216 Pliki programistyczne komponentu WebKit dla WPE z obsługą HTTP/2.
218 %package -n wpe-webkit1.1-apidocs
219 Summary: API documentation for WebKit WPE port with HTTP/2 support
220 Summary(pl.UTF-8): Dokumentacja API portu WebKitu do WPE z obsługą HTTP/2
222 Requires: gtk-doc-common
225 %description -n wpe-webkit1.1-apidocs
226 API documentation for WebKit WPE port with HTTP/2 support.
228 %description -n wpe-webkit1.1-apidocs -l pl.UTF-8
229 Dokumentacja API portu WebKitu do WPE z obsługą HTTP/2.
232 %setup -q -n wpewebkit-%{version}
238 for kind in %{?with_libsoup2:soup2} %{?with_libsoup3:soup3} ; do
239 %cmake -B build-${kind} \
240 -DENABLE_GEOLOCATION=ON \
245 -DENABLE_SAMPLING_PROFILER=OFF \
248 -DENABLE_WEB_AUDIO=ON \
250 %ifarch %{ix86} %{x8664} x32
251 -DHAVE_SSE2_EXTENSIONS=ON \
254 -DSHOULD_INSTALL_JS_SHELL=ON \
255 $([ "$kind" = "soup2" ] && echo -DUSE_SOUP2=ON)
257 %{__make} -C build-${kind}
261 rm -rf $RPM_BUILD_ROOT
263 for kind in %{?with_libsoup2:soup2} %{?with_libsoup3:soup3} ; do
264 %{__make} -C build-${kind} install \
265 DESTDIR=$RPM_BUILD_ROOT
268 %if "%{_gtkdocdir}" != "%{_datadir}/gtk-doc/html"
269 install -d $RPM_BUILD_ROOT%{_gtkdocdir}
270 %{__mv} $RPM_BUILD_ROOT%{_datadir}/gtk-doc/html/* $RPM_BUILD_ROOT%{_gtkdocdir}
274 rm -rf $RPM_BUILD_ROOT
276 %post -p /sbin/ldconfig
277 %postun -p /sbin/ldconfig
279 %post -n wpe-webkit1.1 -p /sbin/ldconfig
280 %postun -n wpe-webkit1.1 -p /sbin/ldconfig
284 %defattr(644,root,root,755)
286 %attr(755,root,root) %{_bindir}/WPEWebDriver-1.0
287 %attr(755,root,root) %{_libdir}/libWPEWebKit-1.0.so.*.*.*
288 %attr(755,root,root) %ghost %{_libdir}/libWPEWebKit-1.0.so.3
289 %{_libdir}/girepository-1.0/WPEJavaScriptCore-1.0.typelib
290 %{_libdir}/girepository-1.0/WPEWebExtension-1.0.typelib
291 %{_libdir}/girepository-1.0/WPEWebKit-1.0.typelib
292 %if "%{_libexecdir}" != "%{_libdir}"
293 %dir %{_libexecdir}/wpe-webkit-1.0
295 %attr(755,root,root) %{_libexecdir}/wpe-webkit-1.0/WPENetworkProcess
296 %attr(755,root,root) %{_libexecdir}/wpe-webkit-1.0/WPEWebProcess
297 %attr(755,root,root) %{_libexecdir}/wpe-webkit-1.0/jsc
298 %dir %{_libdir}/wpe-webkit-1.0
299 %attr(755,root,root) %{_libdir}/wpe-webkit-1.0/libWPEWebInspectorResources.so
300 %dir %{_libdir}/wpe-webkit-1.0/injected-bundle
301 %attr(755,root,root) %{_libdir}/wpe-webkit-1.0/injected-bundle/libWPEInjectedBundle.so
304 %defattr(644,root,root,755)
305 %attr(755,root,root) %{_libdir}/libWPEWebKit-1.0.so
306 %{_includedir}/wpe-webkit-1.0
307 %{_datadir}/gir-1.0/WPEJavaScriptCore-1.0.gir
308 %{_datadir}/gir-1.0/WPEWebExtension-1.0.gir
309 %{_datadir}/gir-1.0/WPEWebKit-1.0.gir
310 %{_pkgconfigdir}/wpe-web-extension-1.0.pc
311 %{_pkgconfigdir}/wpe-webkit-1.0.pc
314 %defattr(644,root,root,755)
315 %{_gtkdocdir}/wpe-javascriptcore-1.0
316 %{_gtkdocdir}/wpe-web-extension-1.0
317 %{_gtkdocdir}/wpe-webkit-1.0
321 %files -n wpe-webkit1.1
322 %defattr(644,root,root,755)
324 %attr(755,root,root) %{_bindir}/WPEWebDriver-1.1
325 %attr(755,root,root) %{_libdir}/libWPEWebKit-1.1.so.*.*.*
326 %attr(755,root,root) %ghost %{_libdir}/libWPEWebKit-1.1.so.0
327 %{_libdir}/girepository-1.0/WPEJavaScriptCore-1.1.typelib
328 %{_libdir}/girepository-1.0/WPEWebExtension-1.1.typelib
329 %{_libdir}/girepository-1.0/WPEWebKit-1.1.typelib
330 %if "%{_libexecdir}" != "%{_libdir}"
331 %dir %{_libexecdir}/wpe-webkit-1.1
333 %attr(755,root,root) %{_libexecdir}/wpe-webkit-1.1/WPENetworkProcess
334 %attr(755,root,root) %{_libexecdir}/wpe-webkit-1.1/WPEWebProcess
335 %attr(755,root,root) %{_libexecdir}/wpe-webkit-1.1/jsc
336 %dir %{_libdir}/wpe-webkit-1.1
337 %attr(755,root,root) %{_libdir}/wpe-webkit-1.1/libWPEWebInspectorResources.so
338 %dir %{_libdir}/wpe-webkit-1.1/injected-bundle
339 %attr(755,root,root) %{_libdir}/wpe-webkit-1.1/injected-bundle/libWPEInjectedBundle.so
341 %files -n wpe-webkit1.1-devel
342 %defattr(644,root,root,755)
343 %attr(755,root,root) %{_libdir}/libWPEWebKit-1.1.so
344 %{_includedir}/wpe-webkit-1.1
345 %{_datadir}/gir-1.0/WPEJavaScriptCore-1.1.gir
346 %{_datadir}/gir-1.0/WPEWebExtension-1.1.gir
347 %{_datadir}/gir-1.0/WPEWebKit-1.1.gir
348 %{_pkgconfigdir}/wpe-web-extension-1.1.pc
349 %{_pkgconfigdir}/wpe-webkit-1.1.pc
351 %files -n wpe-webkit1.1-apidocs
352 %defattr(644,root,root,755)
353 %{_gtkdocdir}/wpe-javascriptcore-1.1
354 %{_gtkdocdir}/wpe-web-extension-1.1
355 %{_gtkdocdir}/wpe-webkit-1.1