From 71c4c3781a8859bffb16bc472593b9e8b2a667e3 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Mon, 21 Aug 2023 13:35:27 +0100 Subject: [PATCH] Initial import --- .gitignore | 2 + rpminspect.yaml | 5 + sources | 2 + webkit2gtk4.0.spec | 308 +++++++++++++++++++++++++++++++++++++++++++++ webkitgtk-keys.gpg | Bin 0 -> 2816 bytes 5 files changed, 317 insertions(+) create mode 100644 .gitignore create mode 100644 rpminspect.yaml create mode 100644 sources create mode 100644 webkit2gtk4.0.spec create mode 100644 webkitgtk-keys.gpg diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ef64ed7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/webkitgtk-2.41.91.tar.xz +/webkitgtk-2.41.91.tar.xz.asc diff --git a/rpminspect.yaml b/rpminspect.yaml new file mode 100644 index 0000000..f9e3c42 --- /dev/null +++ b/rpminspect.yaml @@ -0,0 +1,5 @@ +--- +inspections: + abidiff: off + changedfiles: off + filesize: off diff --git a/sources b/sources new file mode 100644 index 0000000..4a61f1b --- /dev/null +++ b/sources @@ -0,0 +1,2 @@ +SHA512 (webkitgtk-2.41.91.tar.xz) = 14381994830daff1a5126f0919760fdb7689a6ef4d96bdc147546839fbe5c012f71f3c4b51be6714bc25a0dc04260d4809d569fcc96cf60ae620fb8aeff5184a +SHA512 (webkitgtk-2.41.91.tar.xz.asc) = 8519795d85809e5c9ecfb8292e5bb9e6a963ff00388c08b1fb1d4d9554503212d1ab3fe51cbeecd4d391f4bc87b0770d28bc6428b38e0639807a98619320c961 diff --git a/webkit2gtk4.0.spec b/webkit2gtk4.0.spec new file mode 100644 index 0000000..a1f7ed6 --- /dev/null +++ b/webkit2gtk4.0.spec @@ -0,0 +1,308 @@ +## 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') + +# No libmanette in RHEL +%if !0%{?rhel} +%global with_gamepad 1 +%endif + +%global _lto_cflags %{nil} + +# Build documentation by default (use `rpmbuild --without docs` to override it). +# This is used by Coverity. Coverity injects custom compiler warnings, but +# any warning during WebKit docs build is fatal! +%bcond_without docs + +Name: webkit2gtk4.0 +Version: 2.41.91 +Release: %autorelease +Summary: WebKitGTK for GTK 3 and libsoup 2 + +License: LGPLv2 +URL: https://www.webkitgtk.org/ +Source0: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz +Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc +# Use the keys from https://webkitgtk.org/verifying.html +# $ gpg --import aperez.key carlosgc.key +# $ gpg --export --export-options export-minimal D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg +Source2: webkitgtk-keys.gpg + +BuildRequires: bison +BuildRequires: bubblewrap +BuildRequires: cmake +BuildRequires: flex +BuildRequires: gcc-c++ +BuildRequires: gettext +BuildRequires: gi-docgen +BuildRequires: git +BuildRequires: gnupg2 +BuildRequires: gperf +BuildRequires: hyphen-devel +BuildRequires: libatomic +BuildRequires: ninja-build +BuildRequires: openssl-devel +BuildRequires: perl(English) +BuildRequires: perl(FindBin) +BuildRequires: perl(JSON::PP) +BuildRequires: python3 +BuildRequires: ruby +BuildRequires: rubygems +BuildRequires: rubygem-json +BuildRequires: unifdef +BuildRequires: xdg-dbus-proxy + +BuildRequires: pkgconfig(atspi-2) +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(egl) +BuildRequires: pkgconfig(enchant-2) +BuildRequires: pkgconfig(epoxy) +BuildRequires: pkgconfig(fontconfig) +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(gbm) +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-bad-1.0) +BuildRequires: pkgconfig(gstreamer-plugins-base-1.0) +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(gtk4) +BuildRequires: pkgconfig(harfbuzz) +BuildRequires: pkgconfig(icu-uc) +BuildRequires: pkgconfig(lcms2) +BuildRequires: pkgconfig(libavif) +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(libgcrypt) +BuildRequires: pkgconfig(libjpeg) +BuildRequires: pkgconfig(libjxl) +BuildRequires: pkgconfig(libnotify) +BuildRequires: pkgconfig(libopenjp2) +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: javascriptcoregtk4.0%{?_isa} = %{version}-%{release} +Requires: bubblewrap +Requires: xdg-dbus-proxy +Recommends: geoclue2 +Recommends: gstreamer1-plugins-bad-free +Recommends: gstreamer1-plugins-good +Recommends: xdg-desktop-portal-gtk +Provides: bundled(angle) +Provides: bundled(pdfjs) +Provides: bundled(xdgmime) +Obsoletes: webkitgtk4 < %{version}-%{release} +Provides: webkitgtk4 = %{version}-%{release} +Obsoletes: webkit2gtk3 < %{version}-%{release} +Provides: webkit2gtk3 = %{version}-%{release} + +# Filter out provides for private libraries +%global __provides_exclude_from ^(%{_libdir}/webkit2gtk-4\\.0/.*\\.so)$ + +%description +WebKitGTK is the port of the WebKit web rendering engine to the +GTK platform. This package contains WebKitGTK for GTK 3 and libsoup 2. + +%package devel +Summary: Development files for webkit2gtk4.0 +Requires: webkit2gtk4.0%{?_isa} = %{version}-%{release} +Requires: javascriptcoregtk4.0%{?_isa} = %{version}-%{release} +Requires: javascriptcoregtk4.0-devel%{?_isa} = %{version}-%{release} +Obsoletes: webkitgtk4-devel < %{version}-%{release} +Provides: webkitgtk4-devel = %{version}-%{release} +Obsoletes: webkit2gtk3-devel < %{version}-%{release} +Provides: webkit2gtk3-devel = %{version}-%{release} + +%description devel +The webkit2gtk4.0-devel package contains libraries, build data, and header +files for developing applications that use webkit2gtk4.0. + +%if %{with docs} +%package doc +Summary: Documentation files for webkit2gtk4.0 +BuildArch: noarch +Requires: webkit2gtk4.0 = %{version}-%{release} +Obsoletes: webkitgtk4-doc < %{version}-%{release} +Provides: webkitgtk4-doc = %{version}-%{release} +Obsoletes: webkit2gtk3-doc < %{version}-%{release} +Provides: webkit2gtk3-doc = %{version}-%{release} +Recommends: gi-docgen-fonts + +%description doc +This package contains developer documentation for webkit2gtk4.0. +%endif + +%package -n javascriptcoregtk4.0 +Summary: JavaScript engine from webkit2gtk4.0 +Obsoletes: webkitgtk4-jsc < %{version}-%{release} +Provides: webkitgtk4-jsc = %{version}-%{release} +Obsoletes: webkit2gtk3-jsc < %{version}-%{release} +Provides: webkit2gtk3-jsc = %{version}-%{release} + +%description -n javascriptcoregtk4.0 +This package contains the JavaScript engine from webkit2gtk4.0. + +%package -n javascriptcoregtk4.0-devel +Summary: Development files for JavaScript engine from webkit2gtk4.0 +Requires: javascriptcoregtk4.0%{?_isa} = %{version}-%{release} +Obsoletes: webkitgtk4-jsc-devel < %{version}-%{release} +Provides: webkitgtk4-jsc-devel = %{version}-%{release} +Obsoletes: webkit2gtk3-jsc-devel < %{version}-%{release} +Provides: webkit2gtk3-jsc-devel = %{version}-%{release} + +%description -n javascriptcoregtk4.0-devel +The javascriptcoregtk4.0-devel package contains libraries, build data, and header +files for developing applications that use JavaScript engine from webkit2gtk-4.0. + +%prep +%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' +%autosetup -p1 -n webkitgtk-%{version} + +%build +# Increase the DIE limit so our debuginfo packages can be size-optimized. +# This previously decreased the size for x86_64 from ~5G to ~1.1G, but as of +# 2022 it's more like 850 MB -> 675 MB. This requires lots of RAM on the +# builders, so only do this for x86_64 and aarch64 to avoid overwhelming +# builders with less RAM. +# https://bugzilla.redhat.com/show_bug.cgi?id=1456261 +%global _dwz_max_die_limit_x86_64 250000000 +%global _dwz_max_die_limit_aarch64 250000000 + +# Require 32 GB of RAM per vCPU for debuginfo processing. 16 GB is not enough. +%global _find_debuginfo_opts %limit_build -m 32768 + +# Reduce debuginfo verbosity 32-bit builds to reduce memory consumption even more. +# https://bugs.webkit.org/show_bug.cgi?id=140176 +# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/I6IVNA52TXTBRQLKW45CJ5K4RA4WNGMI/ +%ifarch %{ix86} +%global optflags %(echo %{optflags} | sed 's/-g /-g1 /') +%endif + +# JIT is broken on ARM systems with new ARMv8.5 BTI extension at the moment +# Cf. https://bugzilla.redhat.com/show_bug.cgi?id=2130009 +# Cf. https://bugs.webkit.org/show_bug.cgi?id=245697 +# Disable BTI until this is fixed upstream. +%ifarch aarch64 +%global optflags %(echo %{optflags} | sed 's/-mbranch-protection=standard /-mbranch-protection=pac-ret /') +%endif + +%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 +%cmake \ + -GNinja \ + -DPORT=GTK \ + -DCMAKE_BUILD_TYPE=Release \ + -DUSE_SOUP2=ON \ + -DENABLE_WEBDRIVER=OFF \ +%if %{without docs} + -DENABLE_DOCUMENTATION=OFF \ +%endif +%if !0%{?with_gamepad} + -DENABLE_GAMEPAD=OFF \ +%endif +%if 0%{?rhel} +%ifarch aarch64 + -DUSE_64KB_PAGE_BLOCK=ON \ +%endif +%endif + %{nil} + +%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 +export NINJA_STATUS="[%f/%t %es] " +%cmake_build %limit_build -m 3072 + +%install +%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 +%cmake_install + +%find_lang WebKitGTK-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/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 WebKitGTK-4.0.lang +%license _license_files/*ThirdParty* +%license _license_files/*WebCore* +%license _license_files/*WebInspectorUI* +%license _license_files/*WTF* +%{_libdir}/libwebkit2gtk-4.0.so.37* +%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 + +%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 -n javascriptcoregtk4.0 +%license _license_files/*JavaScriptCore* +%{_libdir}/libjavascriptcoregtk-4.0.so.18* +%dir %{_libdir}/girepository-1.0 +%{_libdir}/girepository-1.0/JavaScriptCore-4.0.typelib + +%files -n javascriptcoregtk4.0-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/javascriptcoregtk-4.0/ +%{_datadir}/gtk-doc/html/webkit2gtk-4.0/ +%{_datadir}/gtk-doc/html/webkit2gtk-web-extension-4.0/ +%endif + +%changelog +%autochangelog diff --git a/webkitgtk-keys.gpg b/webkitgtk-keys.gpg new file mode 100644 index 0000000000000000000000000000000000000000..180e358ac0e97fa8d910e5e8c44ad83a2abba1ec GIT binary patch literal 2816 zcmb7_X*kr28o>WEhO9LyGa{KWF?MBVY?EVa>`N+3jWO80FSq6p%as+>CO^5TdT_pq< z#^ZR(ThT|{DJY(ls$AbDyH==j2er*hE8OW}H|8}ULWS7<-edQVe2(6!G~`G`h(uVh zb}k31h-w`W&~4j_-lon?r7?PMD}?&r;6OlsEBo&Al{I_ExVWCZx=b(Oz(UgIp}Vfy3M`_ zIL(gP`X`3g{z-Wcq&WnoA2T8B^cxmvD?G0&GB?+$(ZD)VTwdjQAWUDCQiuTvM%5hi9Hb~aWHW*C?W1i+AxtND#`CPR~o*+ITliS1WLrn%wYS5P!DD{KIK^l zfSnEccV5E=$T5%$fa0G|e@DOPu`xkX%SRQ(r-95Pb(_!}_4LepLtJ{>I*T%{cZuya zlK+!m4S$HM<>G`Vx!|PWr~d{{;Q(^5yd@P|U)DPW_1^JG ztwm8j7&TykY((511D9f55p$B+Eo3*^q(X4SsHAXepO=TBfOXyiJQ>o@qlT*pv85b)CEr^tcd>wB6*alNLztsgN8g)6_`z zAbIuVB|)7Uf2y~f5-+?WYW9_k{u9kD!{lm0IOGBgt5S0-<7V;!}9$V7BCD zPK~FwKuAU4?-BC_6=-9!2;=vGBC?Ujc;kc3*(bH&$a0^fsc%ATDz^t#H8lFMvI44F zR>=~D659I%gEANUpafn4`77OME#lK;fc$KwCdz$q)!d*`L4Xn`|W3)cPO4q=4v9&j3AZr?vzqBM9e>qhw+zpk`LBN^Nto!C=@V(0+ z>lf=Uats*jC-w6UpU|xp~C7;4?O;G?R8dtl;s$kc&MwPI{lUl$*aBOl|4 z{IuPUuf+xw0bEC5l^kMt@nN?xeynv#zmRVPU}8D8PaOdr(UX@dRj4m-y~%U?#6(H4 zLiZ!I%Ig=XzT(bv?*=yAJ_KT-SXX|ia=%-zm}`PQeL40n3l^nhAZrt^Yn{#&)GHZ# z|EEk6&nmXbh`UMU#Ew4XD10EhYY5q>sH@)T#5ayP2?`ESH-RYke9PmKR^D!o`H7O9 znnWhe>xFQ>PUCz-sMC)e`vi{7rK7woVWaYi@~_&nyseL3oEosP5gU|d&>#W5O6LlQe|;X>?9_MH$v1%4AyL>aM^r?&A2 zMpK~S6gy;8!cA{87tywJh3{hR;>CuXwiLkxeHCP!NeNquHh}OR2Lo)(;9sr;^K<_DFSMyU_=QE;8-sC% zk9-EQeEaI@@ys;6KMt~pp_hPLXzkIp*OqYZDq(AA3UB&>a1HCUr4NLg-3VC%inX2) zo|!A?R_@Jsk}pXu1&f`*dt}DVp!3Zm1KKD3Uc6P<+ijvE3oDxX~Gph%itzP`F;8WyR}L%jid7rK+nw8yO=Q(5Uu?|5(@W64>S_xKiAY)0r)))J=d^>SY~HPp>oMZ6^a z0*N33chgf$^!Ih#c$g^LNEW|`(!cU1CXLy_n`9Y!nI+DjarStaH| z^!J>na^E9wX86F|)~d~iUTobXC>4Ar^<+%4`;1kkuSFn}Ni|~HcnZnW8=;4%5M1yF zvUMjPL}~=5!}vdJ<#1ptFd)PX{xwxFKNHKLTfr0zDv1bnp@vN7{;cct^hd>6XU3HXAxRbfPypod$`)D)v1Yk5ZB?( zKq0^|+-7M`AT;vS*(GzxRC5&fBdfiCMll5{-J9+up>`6fpCO=!wu@@DuEr%3HEY&by zT|AeKI8faZ`(=gqc3Jp{>rR_Bm z{|3)b#Qo`Yrc~e9(f)<2N>6vo`K5fpG1(d91A)$j-EAr$lZUEb`{O$G^uoT}%xe7$ z5s`##>P^Hc0jsgSI-a6@$c4dBY_+XSZseratV=b_mPZZ>SlNLHCZ%}