diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec new file mode 100644 index 0000000000000000000000000000000000000000..e096d6f0765961a8b42b26d4593fd0eb262a94ed --- /dev/null +++ b/webkit2gtk3.spec @@ -0,0 +1,259 @@ +%define anolis_release 1 +## NOTE: Lots of files in various subdirectories have the same name (such as +## "LICENSE") so this short macro allows us to distinguish them by using their +## directory names (from the source tree) as prefixes for the files. +%global add_to_license_files() \ + mkdir -p _license_files ; \ + cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') + +%bcond_without docs + +Name: webkit2gtk3 +Version: 2.36.0 +Release: %{anolis_release}%{?dist} +Summary: GTK Web content engine library + +License: LGPLv2 +URL: https://www.webkitgtk.org/ +Source0: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz + +BuildRequires: bison +BuildRequires: bubblewrap +BuildRequires: cmake +BuildRequires: flex +BuildRequires: gcc-c++ +BuildRequires: gettext +BuildRequires: git +BuildRequires: gnupg2 +BuildRequires: gperf +BuildRequires: gtk-doc +BuildRequires: hyphen-devel +BuildRequires: libatomic +BuildRequires: ninja-build +BuildRequires: perl(English) +BuildRequires: perl(File::Copy::Recursive) +BuildRequires: perl(FindBin) +BuildRequires: perl(JSON::PP) +BuildRequires: perl(Switch) +BuildRequires: python3 +BuildRequires: ruby +BuildRequires: rubygems +BuildRequires: rubygem-json +BuildRequires: xdg-dbus-proxy + +BuildRequires: pkgconfig(atspi-2) +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(egl) +BuildRequires: pkgconfig(enchant-2) +BuildRequires: pkgconfig(fontconfig) +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(gl) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(glesv2) +BuildRequires: pkgconfig(gobject-introspection-1.0) +BuildRequires: pkgconfig(gstreamer-1.0) +BuildRequires: pkgconfig(gstreamer-plugins-base-1.0) +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(harfbuzz) +BuildRequires: pkgconfig(icu-uc) +BuildRequires: pkgconfig(lcms2) +BuildRequires: pkgconfig(libgcrypt) +BuildRequires: pkgconfig(libjpeg) +BuildRequires: pkgconfig(libnotify) +BuildRequires: pkgconfig(libopenjp2) +BuildRequires: pkgconfig(libpcre) +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libseccomp) +BuildRequires: pkgconfig(libsecret-1) +BuildRequires: pkgconfig(libsoup-2.4) +BuildRequires: pkgconfig(libsystemd) +BuildRequires: pkgconfig(libtasn1) +BuildRequires: pkgconfig(libwebp) +BuildRequires: pkgconfig(libwoff2dec) +BuildRequires: pkgconfig(libxslt) +%if 0%{?with_gamepad} +BuildRequires: pkgconfig(manette-0.2) +%endif +BuildRequires: pkgconfig(sqlite3) +BuildRequires: pkgconfig(upower-glib) +BuildRequires: pkgconfig(wayland-client) +BuildRequires: pkgconfig(wayland-egl) +BuildRequires: pkgconfig(wayland-protocols) +BuildRequires: pkgconfig(wayland-server) +BuildRequires: pkgconfig(wpe-1.0) +BuildRequires: pkgconfig(wpebackend-fdo-1.0) +BuildRequires: pkgconfig(xt) + +Requires: bubblewrap +Requires: xdg-dbus-proxy + +Recommends: geoclue2 +Recommends: gstreamer1-plugins-bad-free +Recommends: gstreamer1-plugins-good +Recommends: xdg-desktop-portal-gtk + +Obsoletes: webkitgtk4 < %{version}-%{release} +Provides: webkitgtk4 = %{version}-%{release} + +Provides: bundled(angle) +Provides: bundled(xdgmime) + +Requires: %{name}-jsc = %{version}-%{release} + +%global __provides_exclude_from ^%{_libdir}/webkit2gtk-4\\.0/.*\\.so$ + +%description +WebKitGTK is the port of the portable web rendering engine WebKit to the +GTK platform. + +This package contains WebKit2 based WebKitGTK for GTK 3. + +%package devel +Summary: Development files for %{name} +Requires: %{name} = %{version}-%{release} +Requires: %{name}-jsc = %{version}-%{release} +Requires: %{name}-jsc-devel = %{version}-%{release} +Obsoletes: webkitgtk4-devel < %{version}-%{release} +Provides: webkitgtk4-devel = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries, build data, and header +files for developing applications that use %{name}. + +%if %{with docs} +%package doc +Summary: Documentation files for %{name} +BuildArch: noarch +Requires: %{name} = %{version}-%{release} +Obsoletes: webkitgtk4-doc < %{version}-%{release} +Provides: webkitgtk4-doc = %{version}-%{release} + +%description doc +This package contains developer documentation for %{name}. +%endif + +%package jsc +Summary: JavaScript engine from %{name} +Obsoletes: webkitgtk4-jsc < %{version}-%{release} +Provides: webkitgtk4-jsc = %{version}-%{release} + +%description jsc +This package contains JavaScript engine from %{name}. + +%package jsc-devel +Summary: Development files for JavaScript engine from %{name} +Requires: %{name}-jsc = %{version}-%{release} +Obsoletes: webkitgtk4-jsc-devel < %{version}-%{release} +Provides: webkitgtk4-jsc-devel = %{version}-%{release} + +%description jsc-devel +The %{name}-jsc-devel package contains libraries, build data, and header +files for developing applications that use JavaScript engine from %{name}. + +%prep +%autosetup -p1 -n webkitgtk-%{version} + +# Remove bundled libraries +rm -rf Source/ThirdParty/gtest/ +rm -rf Source/ThirdParty/qunit/ + +%build +# Increase the DIE limit so our debuginfo packages could be size optimized. +# Decreases the size for x86_64 from ~5G to ~1.1G. +%global _dwz_max_die_limit 250000000 +%global _dwz_max_die_limit_x86_64 250000000 + +%cmake \ + -GNinja \ + -DPORT=GTK \ + -DCMAKE_BUILD_TYPE=Release \ + -DENABLE_MINIBROWSER=ON \ + -DUSE_SOUP2=ON \ + -DUSE_LD_GOLD=OFF \ +%if %{with docs} + -DENABLE_GTKDOC=ON \ +%endif +%if !0%{?with_gamepad} + -DENABLE_GAMEPAD=OFF \ +%endif + %{nil} + +# Show the build time in the status. Require 2 GB of RAM per vCPU. +export NINJA_STATUS="[%f/%t][%e] " +%cmake_build + +%install +%cmake_install + +%find_lang WebKit2GTK-4.0 + +# Finally, copy over and rename various files for %%license inclusion +%add_to_license_files Source/JavaScriptCore/COPYING.LIB +%add_to_license_files Source/ThirdParty/ANGLE/LICENSE +%add_to_license_files Source/ThirdParty/ANGLE/src/common/third_party/smhasher/LICENSE +%add_to_license_files Source/ThirdParty/ANGLE/src/third_party/libXNVCtrl/LICENSE +%add_to_license_files Source/WebCore/LICENSE-APPLE +%add_to_license_files Source/WebCore/LICENSE-LGPL-2 +%add_to_license_files Source/WebCore/LICENSE-LGPL-2.1 +%add_to_license_files Source/WebInspectorUI/UserInterface/External/CodeMirror/LICENSE +%add_to_license_files Source/WebInspectorUI/UserInterface/External/Esprima/LICENSE +%add_to_license_files Source/WebInspectorUI/UserInterface/External/three.js/LICENSE +%add_to_license_files Source/WTF/icu/LICENSE +%add_to_license_files Source/WTF/wtf/dtoa/COPYING +%add_to_license_files Source/WTF/wtf/dtoa/LICENSE + +%files -f WebKit2GTK-4.0.lang +%license _license_files/*ThirdParty* +%license _license_files/*WebCore* +%license _license_files/*WebInspectorUI* +%license _license_files/*WTF* +%{_libdir}/libwebkit2gtk-4.0.so.* +%dir %{_libdir}/girepository-1.0 +%{_libdir}/girepository-1.0/WebKit2-4.0.typelib +%{_libdir}/girepository-1.0/WebKit2WebExtension-4.0.typelib +%{_libdir}/webkit2gtk-4.0/ +%{_libexecdir}/webkit2gtk-4.0/ +%exclude %{_libexecdir}/webkit2gtk-4.0/MiniBrowser +%exclude %{_libexecdir}/webkit2gtk-4.0/jsc +%{_bindir}/WebKitWebDriver + +%files devel +%{_libexecdir}/webkit2gtk-4.0/MiniBrowser +%{_includedir}/webkitgtk-4.0/ +%exclude %{_includedir}/webkitgtk-4.0/JavaScriptCore +%exclude %{_includedir}/webkitgtk-4.0/jsc +%{_libdir}/libwebkit2gtk-4.0.so +%{_libdir}/pkgconfig/webkit2gtk-4.0.pc +%{_libdir}/pkgconfig/webkit2gtk-web-extension-4.0.pc +%dir %{_datadir}/gir-1.0 +%{_datadir}/gir-1.0/WebKit2-4.0.gir +%{_datadir}/gir-1.0/WebKit2WebExtension-4.0.gir + +%files jsc +%license _license_files/*JavaScriptCore* +%{_libdir}/libjavascriptcoregtk-4.0.so.* +%dir %{_libdir}/girepository-1.0 +%{_libdir}/girepository-1.0/JavaScriptCore-4.0.typelib + +%files jsc-devel +%{_libexecdir}/webkit2gtk-4.0/jsc +%dir %{_includedir}/webkitgtk-4.0 +%{_includedir}/webkitgtk-4.0/JavaScriptCore/ +%{_includedir}/webkitgtk-4.0/jsc/ +%{_libdir}/libjavascriptcoregtk-4.0.so +%{_libdir}/pkgconfig/javascriptcoregtk-4.0.pc +%dir %{_datadir}/gir-1.0 +%{_datadir}/gir-1.0/JavaScriptCore-4.0.gir + +%if %{with docs} +%files doc +%dir %{_datadir}/gtk-doc +%dir %{_datadir}/gtk-doc/html +%{_datadir}/gtk-doc/html/jsc-glib-4.0/ +%{_datadir}/gtk-doc/html/webkit2gtk-4.0/ +%{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ +%endif + +%changelog +* Thu Apr 14 2022 Chunmei Xu - 2.36.0-1 +- init from upstream diff --git a/webkitgtk-2.36.0.tar.xz b/webkitgtk-2.36.0.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..717f5694de3a8505c35a3d49b6c858743a5e8dc7 Binary files /dev/null and b/webkitgtk-2.36.0.tar.xz differ