## 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') Name: webkit2gtk3 Version: 2.19.5 Release: 2%{?dist} Summary: GTK+ Web content engine library License: LGPLv2 URL: http://www.webkitgtk.org/ Source0: http://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz # https://bugs.webkit.org/show_bug.cgi?id=162611 Patch0: user-agent-branding.patch # https://fedoraproject.org/wiki/Packaging:CryptoPolicies # https://bugs.webkit.org/show_bug.cgi?id=158785 Patch1: fedora-crypto-policy.patch # https://bugs.webkit.org/show_bug.cgi?id=132333 Patch2: cloop-big-endians.patch BuildRequires: at-spi2-core-devel BuildRequires: bison BuildRequires: brotli-devel BuildRequires: cairo-devel BuildRequires: cmake BuildRequires: enchant-devel BuildRequires: flex BuildRequires: fontconfig-devel BuildRequires: freetype-devel BuildRequires: geoclue2-devel BuildRequires: gettext BuildRequires: glib2-devel BuildRequires: gnutls-devel BuildRequires: gobject-introspection-devel BuildRequires: gperf BuildRequires: gstreamer1-devel BuildRequires: gstreamer1-plugins-base-devel BuildRequires: gstreamer1-plugins-bad-free-devel BuildRequires: gtk2-devel BuildRequires: gtk3-devel BuildRequires: gtk-doc BuildRequires: harfbuzz-devel BuildRequires: hyphen-devel BuildRequires: libicu-devel BuildRequires: libjpeg-devel BuildRequires: libnotify-devel BuildRequires: libpng-devel BuildRequires: libsecret-devel BuildRequires: libsoup-devel BuildRequires: libwebp-devel BuildRequires: libxslt-devel BuildRequires: libXt-devel BuildRequires: libwayland-client-devel BuildRequires: libwayland-egl-devel BuildRequires: libwayland-server-devel BuildRequires: mesa-libEGL-devel BuildRequires: mesa-libGL-devel BuildRequires: mesa-libGLES-devel BuildRequires: pcre-devel BuildRequires: perl-File-Copy-Recursive BuildRequires: perl-JSON-PP BuildRequires: perl-Switch BuildRequires: ruby BuildRequires: rubygems BuildRequires: sqlite-devel BuildRequires: upower-devel BuildRequires: woff2-devel %ifarch ppc BuildRequires: libatomic %endif Requires: geoclue2 # Obsolete libwebkit2gtk from the webkitgtk3 package Obsoletes: libwebkit2gtk < 2.5.0 Provides: libwebkit2gtk = %{version}-%{release} # This package was renamed, so obsolete the old webkitgtk4 package Obsoletes: webkitgtk4 < 2.19.5-2 Provides: webkitgtk4 = %{version}-%{release} # We're supposed to specify versions here, but these crap Google libs don't do # normal releases. Accordingly, they're not suitable to be system libs. Provides: bundled(angle) # Require the jsc subpackage Requires: %{name}-jsc%{?_isa} = %{version}-%{release} # Recommend the support for the GTK+ 2 based NPAPI plugins Recommends: %{name}-plugin-process-gtk2%{?_isa} = %{version}-%{release} # Filter out provides for private libraries %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}%{?_isa} = %{version}-%{release} Requires: %{name}-jsc%{?_isa} = %{version}-%{release} Requires: %{name}-jsc-devel%{?_isa} = %{version}-%{release} Obsoletes: webkitgtk4-devel < 2.19.5-2 Provides: webkitgtk4-devel = %{version}-%{release} %description devel The %{name}-devel package contains libraries, build data, and header files for developing applications that use %{name}. %package doc Summary: Documentation files for %{name} BuildArch: noarch Requires: %{name} = %{version}-%{release} Obsoletes: webkitgtk4-doc < 2.19.5-2 Provides: webkitgtk4-doc = %{version}-%{release} %description doc This package contains developer documentation for %{name}. %package jsc Summary: JavaScript engine from %{name} Obsoletes: webkitgtk4-jsc < 2.19.5-2 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%{?_isa} = %{version}-%{release} Obsoletes: webkitgtk4-jsc-devel < 2.19.5-2 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}. %package plugin-process-gtk2 Summary: GTK+ 2 based NPAPI plugins support for %{name} Requires: %{name}-jsc%{?_isa} = %{version}-%{release} Obsoletes: %{name} < 2.12.0-3 Obsoletes: webkitgtk4-plugin-process-gtk2 < 2.19.5-2 Provides: webkitgtk4-plugin-process-gtk2 = %{version}-%{release} %description plugin-process-gtk2 Support for the GTK+ 2 based NPAPI plugins (such as Adobe Flash) for %{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. # https://bugzilla.redhat.com/show_bug.cgi?id=1456261 %global _dwz_max_die_limit 250000000 # The _dwz_max_die_limit is being overridden by the arch specific ones from the # redhat-rpm-config so we need to set the arch specific ones as well - now it # is only needed for x86_64. %global _dwz_max_die_limit_x86_64 250000000 %ifarch s390 aarch64 # Use linker flags to reduce memory consumption - on other arches the ld.gold is # used and also it doesn't have the --reduce-memory-overheads option %global optflags %{optflags} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads %endif # Decrease debuginfo even on ix86 because of: # https://bugs.webkit.org/show_bug.cgi?id=140176 %ifarch s390 s390x %{arm} %{ix86} ppc %{power64} %{mips} # Decrease debuginfo verbosity to reduce memory consumption even more %global optflags %(echo %{optflags} | sed 's/-g /-g1 /') %endif %ifarch ppc # Use linker flag -relax to get WebKit build under ppc(32) with JIT disabled %global optflags %{optflags} -Wl,-relax %endif %if 0%{?fedora} %global optflags %{optflags} -DUSER_AGENT_GTK_DISTRIBUTOR_NAME=\'\\"Fedora\\"\' %endif # Disable ld.gold on s390 as it does not have it. # Also for aarch64 as the support is in upstream, but not packaged in Fedora. mkdir -p %{_target_platform} pushd %{_target_platform} %cmake \ -DPORT=GTK \ -DCMAKE_BUILD_TYPE=Release \ -DENABLE_GTKDOC=ON \ -DENABLE_MINIBROWSER=ON \ %ifarch s390 aarch64 -DUSE_LD_GOLD=OFF \ %endif %ifarch s390 s390x ppc %{power64} -DENABLE_JIT=OFF \ -DUSE_SYSTEM_MALLOC=ON \ %endif .. popd make %{?_smp_mflags} -C %{_target_platform} %install %make_install -C %{_target_platform} %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/JavaScriptCore/icu/LICENSE %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/compiler/LICENSE %add_to_license_files Source/ThirdParty/ANGLE/src/third_party/libXNVCtrl/LICENSE %add_to_license_files Source/WebCore/icu/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/ESLint/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 %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %post jsc -p /sbin/ldconfig %postun jsc -p /sbin/ldconfig %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/ %{_bindir}/WebKitWebDriver %exclude %{_libexecdir}/webkit2gtk-4.0/WebKitPluginProcess2 %files devel %{_libexecdir}/webkit2gtk-4.0/MiniBrowser %{_includedir}/webkitgtk-4.0/ %exclude %{_includedir}/webkitgtk-4.0/JavaScriptCore %{_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/ %{_libdir}/libjavascriptcoregtk-4.0.so %{_libdir}/pkgconfig/javascriptcoregtk-4.0.pc %dir %{_datadir}/gir-1.0 %{_datadir}/gir-1.0/JavaScriptCore-4.0.gir %files plugin-process-gtk2 %{_libexecdir}/webkit2gtk-4.0/WebKitPluginProcess2 %files doc %dir %{_datadir}/gtk-doc %dir %{_datadir}/gtk-doc/html %{_datadir}/gtk-doc/html/webkit2gtk-4.0/ %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ %changelog * Thu Jan 11 2018 Tomas Popela - 2.19.5-2 - This package was formerly named webkitgtk4