Blame SPECS/webkit2gtk3.spec

e16eb3
## NOTE: Lots of files in various subdirectories have the same name (such as
e16eb3
## "LICENSE") so this short macro allows us to distinguish them by using their
e16eb3
## directory names (from the source tree) as prefixes for the files.
e16eb3
%global add_to_license_files() \
e16eb3
        mkdir -p _license_files ; \
e16eb3
        cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g')
e16eb3
e16eb3
Name:           webkit2gtk3
6045c0
Version:        2.28.4
6045c0
Release:        1%{?dist}
e16eb3
Summary:        GTK Web content engine library
e16eb3
e16eb3
License:        LGPLv2
e16eb3
URL:            http://www.webkitgtk.org/
e16eb3
Source0:        http://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz
e16eb3
e16eb3
# https://bugs.webkit.org/show_bug.cgi?id=209360
e16eb3
Patch0:         webkit-aarch64_page_size.patch
e16eb3
# https://bugs.webkit.org/show_bug.cgi?id=193749
6045c0
Patch1:         evolution-shared-secondary-process.patch
e16eb3
e16eb3
BuildRequires:  bison
e16eb3
BuildRequires:  bubblewrap
e16eb3
BuildRequires:  cmake
e16eb3
BuildRequires:  flex
e16eb3
BuildRequires:  gcc-c++
e16eb3
BuildRequires:  gettext
e16eb3
BuildRequires:  git
e16eb3
BuildRequires:  gperf
e16eb3
BuildRequires:  gtk-doc
e16eb3
BuildRequires:  hyphen-devel
e16eb3
BuildRequires:  libatomic
e16eb3
BuildRequires:  ninja-build
e16eb3
BuildRequires:  perl-File-Copy-Recursive
e16eb3
BuildRequires:  perl-JSON-PP
e16eb3
BuildRequires:  perl-Switch
e16eb3
BuildRequires:  python3
e16eb3
BuildRequires:  ruby
e16eb3
BuildRequires:  rubygem-json
e16eb3
BuildRequires:  rubygems
e16eb3
#BuildRequires:  xdg-dbus-proxy
e16eb3
e16eb3
BuildRequires:  pkgconfig(atspi-2)
e16eb3
BuildRequires:  pkgconfig(cairo)
e16eb3
BuildRequires:  pkgconfig(egl)
e16eb3
%ifarch aarch64 s390x
e16eb3
# On aarch64 and s390x enchant-2 is not available (gnome-less)
e16eb3
BuildRequires:  pkgconfig(enchant)
e16eb3
%else
e16eb3
BuildRequires:  pkgconfig(enchant-2)
e16eb3
%endif
e16eb3
BuildRequires:  pkgconfig(fontconfig)
e16eb3
BuildRequires:  pkgconfig(freetype2)
e16eb3
BuildRequires:  pkgconfig(geoclue-2.0)
e16eb3
BuildRequires:  pkgconfig(gl)
e16eb3
BuildRequires:  pkgconfig(glib-2.0)
e16eb3
BuildRequires:  pkgconfig(glesv2)
e16eb3
BuildRequires:  pkgconfig(gnutls)
e16eb3
BuildRequires:  pkgconfig(gobject-introspection-1.0)
e16eb3
BuildRequires:  pkgconfig(gstreamer-1.0)
e16eb3
BuildRequires:  pkgconfig(gstreamer-plugins-base-1.0)
e16eb3
BuildRequires:  pkgconfig(gstreamer-plugins-bad-1.0)
e16eb3
BuildRequires:  pkgconfig(gtk+-2.0)
e16eb3
BuildRequires:  pkgconfig(gtk+-3.0)
e16eb3
BuildRequires:  pkgconfig(harfbuzz)
e16eb3
BuildRequires:  pkgconfig(icu-uc)
e16eb3
BuildRequires:  pkgconfig(libjpeg)
e16eb3
BuildRequires:  pkgconfig(libnotify)
e16eb3
BuildRequires:  pkgconfig(libopenjp2)
e16eb3
BuildRequires:  pkgconfig(libpcre)
e16eb3
BuildRequires:  pkgconfig(libpng)
e16eb3
BuildRequires:  pkgconfig(libseccomp)
e16eb3
BuildRequires:  pkgconfig(libsecret-1)
e16eb3
BuildRequires:  pkgconfig(libsoup-2.4)
e16eb3
BuildRequires:  pkgconfig(libwebp)
e16eb3
BuildRequires:  pkgconfig(libwoff2dec)
e16eb3
BuildRequires:  pkgconfig(libxslt)
e16eb3
BuildRequires:  pkgconfig(sqlite3)
e16eb3
BuildRequires:  pkgconfig(upower-glib)
e16eb3
BuildRequires:  pkgconfig(wayland-client)
e16eb3
BuildRequires:  pkgconfig(wayland-egl)
e16eb3
BuildRequires:  pkgconfig(wayland-server)
e16eb3
BuildRequires:  pkgconfig(xt)
e16eb3
e16eb3
Requires:       bubblewrap
e16eb3
Requires:       geoclue2
e16eb3
#Requires:       xdg-dbus-proxy
e16eb3
e16eb3
# Obsolete libwebkit2gtk from the webkitgtk3 package
e16eb3
Obsoletes:      libwebkit2gtk < 2.5.0
e16eb3
Provides:       libwebkit2gtk = %{version}-%{release}
e16eb3
e16eb3
# This package was renamed, so obsolete the old webkitgtk4 package
e16eb3
Obsoletes:      webkitgtk4 < %{version}-%{release}
e16eb3
Provides:       webkitgtk4 = %{version}-%{release}
e16eb3
e16eb3
# GTK+ 2 plugins support was removed in 2.25.3
e16eb3
Obsoletes:      webkit2gtk3-plugin-process-gtk2 < %{version}-%{release}
e16eb3
Provides:       webkit2gtk3-plugin-process-gtk2 = %{version}-%{release}
e16eb3
Obsoletes:      webkitgtk4-plugin-process-gtk2 < %{version}-%{release}
e16eb3
Provides:       webkitgtk4-plugin-process-gtk2 = %{version}-%{release}
e16eb3
e16eb3
# We're supposed to specify versions here, but these libraries don't do
e16eb3
# normal releases. Accordingly, they're not suitable to be system libs.
e16eb3
Provides:       bundled(angle)
e16eb3
Provides:       bundled(xdgmime)
e16eb3
e16eb3
# Require the jsc subpackage
e16eb3
Requires:       %{name}-jsc%{?_isa} = %{version}-%{release}
e16eb3
e16eb3
# Filter out provides for private libraries
e16eb3
%global __provides_exclude_from ^%{_libdir}/webkit2gtk-4\\.0/.*\\.so$
e16eb3
e16eb3
%description
e16eb3
WebKitGTK is the port of the portable web rendering engine WebKit to the
e16eb3
GTK platform.
e16eb3
e16eb3
This package contains WebKit2 based WebKitGTK for GTK 3.
e16eb3
e16eb3
%package        devel
e16eb3
Summary:        Development files for %{name}
e16eb3
Requires:       %{name}%{?_isa} = %{version}-%{release}
e16eb3
Requires:       %{name}-jsc%{?_isa} = %{version}-%{release}
e16eb3
Requires:       %{name}-jsc-devel%{?_isa} = %{version}-%{release}
e16eb3
Obsoletes:      webkitgtk4-devel < %{version}-%{release}
e16eb3
Provides:       webkitgtk4-devel = %{version}-%{release}
e16eb3
e16eb3
%description    devel
e16eb3
The %{name}-devel package contains libraries, build data, and header
e16eb3
files for developing applications that use %{name}.
e16eb3
e16eb3
%package        doc
e16eb3
Summary:        Documentation files for %{name}
e16eb3
BuildArch:      noarch
e16eb3
Requires:       %{name} = %{version}-%{release}
e16eb3
Obsoletes:      webkitgtk4-doc < %{version}-%{release}
e16eb3
Provides:       webkitgtk4-doc = %{version}-%{release}
e16eb3
e16eb3
%description    doc
e16eb3
This package contains developer documentation for %{name}.
e16eb3
e16eb3
%package        jsc
e16eb3
Summary:        JavaScript engine from %{name}
e16eb3
Obsoletes:      webkitgtk4-jsc < %{version}-%{release}
e16eb3
Provides:       webkitgtk4-jsc = %{version}-%{release}
e16eb3
e16eb3
%description    jsc
e16eb3
This package contains JavaScript engine from %{name}.
e16eb3
e16eb3
%package        jsc-devel
e16eb3
Summary:        Development files for JavaScript engine from %{name}
e16eb3
Requires:       %{name}-jsc%{?_isa} = %{version}-%{release}
e16eb3
Obsoletes:      webkitgtk4-jsc-devel < %{version}-%{release}
e16eb3
Provides:       webkitgtk4-jsc-devel = %{version}-%{release}
e16eb3
e16eb3
%description    jsc-devel
e16eb3
The %{name}-jsc-devel package contains libraries, build data, and header
e16eb3
files for developing applications that use JavaScript engine from %{name}.
e16eb3
e16eb3
%prep
e16eb3
%autosetup -p1 -n webkitgtk-%{version} -S git
e16eb3
e16eb3
# Remove bundled libraries
e16eb3
rm -rf Source/ThirdParty/gtest/
e16eb3
rm -rf Source/ThirdParty/qunit/
e16eb3
e16eb3
%build
e16eb3
# Increase the DIE limit so our debuginfo packages could be size optimized.
e16eb3
# Decreases the size for x86_64 from ~5G to ~1.1G.
e16eb3
# https://bugzilla.redhat.com/show_bug.cgi?id=1456261
e16eb3
%global _dwz_max_die_limit 250000000
e16eb3
# The _dwz_max_die_limit is being overridden by the arch specific ones from the
e16eb3
# redhat-rpm-config so we need to set the arch specific ones as well - now it
e16eb3
# is only needed for x86_64.
e16eb3
%global _dwz_max_die_limit_x86_64 250000000
e16eb3
e16eb3
# Decrease debuginfo even on ix86 because of:
e16eb3
# https://bugs.webkit.org/show_bug.cgi?id=140176
e16eb3
%ifarch s390x %{arm} %{ix86} %{power64} %{mips}
e16eb3
# Decrease debuginfo verbosity to reduce memory consumption even more
e16eb3
%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
e16eb3
%endif
e16eb3
e16eb3
# BMalloc and JIT are disabled on aarch64, because of the non-standard page size
e16eb3
# that's causing problems there (it's enabled on Fedora).
e16eb3
#
e16eb3
# TODO: Package xdg-dbus-proxy for RHEL so we can enable bubblewrap sandbox.
e16eb3
# TODO: Package libwpe and wpebackend-fdo for RHEL so we can enable WPE renderer.
e16eb3
mkdir -p %{_target_platform}
e16eb3
pushd %{_target_platform}
e16eb3
%cmake \
e16eb3
  -GNinja \
e16eb3
  -DPORT=GTK \
e16eb3
  -DCMAKE_BUILD_TYPE=Release \
e16eb3
  -DENABLE_BUBBLEWRAP_SANDBOX=OFF \
e16eb3
  -DENABLE_GTKDOC=ON \
e16eb3
  -DENABLE_MINIBROWSER=ON \
e16eb3
  -DUSE_WPE_RENDERER=OFF \
e16eb3
  -DPYTHON_EXECUTABLE=%{_bindir}/python3 \
e16eb3
%ifarch s390x %{power64} aarch64
e16eb3
  -DENABLE_JIT=OFF \
e16eb3
  -DUSE_SYSTEM_MALLOC=ON \
e16eb3
%endif
e16eb3
  ..
e16eb3
popd
e16eb3
e16eb3
# Show the build time in the status
e16eb3
export NINJA_STATUS="[%f/%t][%e] "
6045c0
# brew has run out of memory building WebKitGTK 2.28.4 with -j6, so
6045c0
# use -j3 to reduce maximum memory usage.
6045c0
%ninja_build -C %{_target_platform} -j3
e16eb3
e16eb3
%install
e16eb3
%ninja_install -C %{_target_platform}
e16eb3
e16eb3
%find_lang WebKit2GTK-4.0
e16eb3
e16eb3
# Finally, copy over and rename various files for %%license inclusion
e16eb3
%add_to_license_files Source/JavaScriptCore/COPYING.LIB
e16eb3
%add_to_license_files Source/JavaScriptCore/icu/LICENSE
e16eb3
%add_to_license_files Source/ThirdParty/ANGLE/LICENSE
e16eb3
%add_to_license_files Source/ThirdParty/ANGLE/src/common/third_party/smhasher/LICENSE
e16eb3
%add_to_license_files Source/ThirdParty/ANGLE/src/third_party/compiler/LICENSE
e16eb3
%add_to_license_files Source/ThirdParty/ANGLE/src/third_party/libXNVCtrl/LICENSE
e16eb3
%add_to_license_files Source/WebCore/icu/LICENSE
e16eb3
%add_to_license_files Source/WebCore/LICENSE-APPLE
e16eb3
%add_to_license_files Source/WebCore/LICENSE-LGPL-2
e16eb3
%add_to_license_files Source/WebCore/LICENSE-LGPL-2.1
e16eb3
%add_to_license_files Source/WebInspectorUI/UserInterface/External/CodeMirror/LICENSE
e16eb3
%add_to_license_files Source/WebInspectorUI/UserInterface/External/Esprima/LICENSE
e16eb3
%add_to_license_files Source/WebInspectorUI/UserInterface/External/three.js/LICENSE
e16eb3
%add_to_license_files Source/WTF/icu/LICENSE
e16eb3
%add_to_license_files Source/WTF/wtf/dtoa/COPYING
e16eb3
%add_to_license_files Source/WTF/wtf/dtoa/LICENSE
e16eb3
e16eb3
%files -f WebKit2GTK-4.0.lang
e16eb3
%license _license_files/*ThirdParty*
e16eb3
%license _license_files/*WebCore*
e16eb3
%license _license_files/*WebInspectorUI*
e16eb3
%license _license_files/*WTF*
e16eb3
%{_libdir}/libwebkit2gtk-4.0.so.*
e16eb3
%dir %{_libdir}/girepository-1.0
e16eb3
%{_libdir}/girepository-1.0/WebKit2-4.0.typelib
e16eb3
%{_libdir}/girepository-1.0/WebKit2WebExtension-4.0.typelib
e16eb3
%{_libdir}/webkit2gtk-4.0/
e16eb3
%{_libexecdir}/webkit2gtk-4.0/
e16eb3
%exclude %{_libexecdir}/webkit2gtk-4.0/MiniBrowser
e16eb3
%{_bindir}/WebKitWebDriver
e16eb3
e16eb3
%files devel
e16eb3
%{_libexecdir}/webkit2gtk-4.0/MiniBrowser
e16eb3
%{_includedir}/webkitgtk-4.0/
e16eb3
%exclude %{_includedir}/webkitgtk-4.0/JavaScriptCore
e16eb3
%{_libdir}/libwebkit2gtk-4.0.so
e16eb3
%{_libdir}/pkgconfig/webkit2gtk-4.0.pc
e16eb3
%{_libdir}/pkgconfig/webkit2gtk-web-extension-4.0.pc
e16eb3
%dir %{_datadir}/gir-1.0
e16eb3
%{_datadir}/gir-1.0/WebKit2-4.0.gir
e16eb3
%{_datadir}/gir-1.0/WebKit2WebExtension-4.0.gir
e16eb3
e16eb3
%files jsc
e16eb3
%license _license_files/*JavaScriptCore*
e16eb3
%{_libdir}/libjavascriptcoregtk-4.0.so.*
e16eb3
%dir %{_libdir}/girepository-1.0
e16eb3
%{_libdir}/girepository-1.0/JavaScriptCore-4.0.typelib
e16eb3
e16eb3
%files jsc-devel
e16eb3
%{_libexecdir}/webkit2gtk-4.0/jsc
e16eb3
%dir %{_includedir}/webkitgtk-4.0
e16eb3
%{_includedir}/webkitgtk-4.0/JavaScriptCore/
e16eb3
%{_libdir}/libjavascriptcoregtk-4.0.so
e16eb3
%{_libdir}/pkgconfig/javascriptcoregtk-4.0.pc
e16eb3
%dir %{_datadir}/gir-1.0
e16eb3
%{_datadir}/gir-1.0/JavaScriptCore-4.0.gir
e16eb3
e16eb3
%files doc
e16eb3
%dir %{_datadir}/gtk-doc
e16eb3
%dir %{_datadir}/gtk-doc/html
e16eb3
%{_datadir}/gtk-doc/html/jsc-glib-4.0/
e16eb3
%{_datadir}/gtk-doc/html/webkit2gtk-4.0/
e16eb3
%{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
e16eb3
e16eb3
%changelog
6045c0
* Mon Aug 03 2020 Michael Catanzaro <mcatanzaro@redhat.com> - 2.28.4-1
6045c0
- Update to 2.28.4
6045c0
- Related: #1817143
6045c0
e16eb3
* Thu May 21 2020 Michael Catanzaro <mcatanzaro@redhat.com> - 2.28.2-2
e16eb3
- Related: rhbz#1817143 Properly remove webkit2gtk3-plugin-process-gtk2 package
e16eb3
e16eb3
* Thu May 14 2020 Michael Catanzaro <mcatanzaro@redhat.com> - 2.28.2-1
e16eb3
- Resolves: rhbz#1817143 Update to 2.28.2
e16eb3
e16eb3
* Mon Oct 14 2019 Eike Rathke <erack@redhat.com> - 2.24.4-3
e16eb3
- Related: rhbz#1748890 Bump NVR
e16eb3
e16eb3
* Fri Sep 27 2019 Eike Rathke <erack@redhat.com> - 2.24.4-1
e16eb3
- Resolves: rhbz#1748890 Update to 2.24.4
e16eb3
e16eb3
* Tue Jul 09 2019 Eike Rathke <erack@redhat.com> - 2.24.3-1
e16eb3
- Resolves: rhbz#1728277 Update to 2.24.3
e16eb3
e16eb3
* Wed May 22 2019 Eike Rathke <erack@redhat.com> - 2.24.2-2
e16eb3
- Related: rhbz#1696708 Use enchant instead of enchant-2 on aarch64 and s390x
e16eb3
e16eb3
* Tue May 21 2019 Eike Rathke <erack@redhat.com> - 2.24.2-1
e16eb3
- Resolves: rhbz#1696708 Rebase to 2.24.2
e16eb3
- Resolves: rhbz#1592271 Switch to Python 3 for build
e16eb3
e16eb3
* Tue Feb 12 2019 Eike Rathke <erack@redhat.com> - 2.22.6-1
e16eb3
- Resolves: rhbz#1676489 Update to 2.22.6
e16eb3
e16eb3
* Fri Jan 25 2019 Eike Rathke <erack@redhat.com> - 2.22.5-2
e16eb3
- Resolves: rhbz#1666984 Fix gigacage
e16eb3
e16eb3
* Tue Dec 18 2018 Eike Rathke <erack@redhat.com> - 2.22.5-1
e16eb3
- Update to 2.22.5
e16eb3
e16eb3
* Tue Oct 30 2018 Tomas Popela <tpopela@redhat.com> - 2.22.3-1
e16eb3
- Update to 2.22.3
e16eb3
- Resolves: rhbz#1641009
e16eb3
e16eb3
* Mon Sep 24 2018 Tomas Popela <tpopela@redhat.com> - 2.22.2-1
e16eb3
- Update to 2.22.2
e16eb3
- Resolves: rhbz#1625602
e16eb3
e16eb3
* Thu Sep 20 2018 Tomas Popela <tpopela@redhat.com> - 2.22.1-1
e16eb3
- Update to 2.22.1
e16eb3
- Resolves: rhbz#1625602
e16eb3
e16eb3
* Tue Sep 11 2018 Tomas Popela <tpopela@redhat.com> - 2.22.0-2
e16eb3
- Backport patches from RHEL 7
e16eb3
- Resolves: rhbz#1625602
e16eb3
e16eb3
* Wed Sep 05 2018 Tomas Popela <tpopela@redhat.com> - 2.22.0-1
e16eb3
- Update to 2.22.0
e16eb3
- Resolves: rhbz#1625602
e16eb3
e16eb3
* Tue Jul 17 2018 Tomas Popela <tpopela@redhat.com> - 2.20.3-3
e16eb3
- Update the python2 patch
e16eb3
e16eb3
* Mon Jun 18 2018 Tomas Popela <tpopela@redhat.com> - 2.20.3-3
e16eb3
- Export the python2 env variable
e16eb3
- Resolves: rhbz#1592264
e16eb3
e16eb3
* Mon Jun 11 2018 Tomas Popela <tpopela@redhat.com> - 2.20.3-1
e16eb3
- Update to 2.20.3
e16eb3
e16eb3
* Thu May 24 2018 Tomas Popela <tpopela@redhat.com> - 2.20.2-4
e16eb3
- Explicitly specify python2 over python and add python2 to BR
e16eb3
e16eb3
* Tue May 22 2018 Tomas Popela <tpopela@redhat.com> - 2.20.2-3
e16eb3
- aarch64 on RHEL 8 does have a 64kb page size
e16eb3
- Resolves: rhbz#1578576
e16eb3
e16eb3
* Tue May 22 2018 Tomas Popela <tpopela@redhat.com> - 2.20.2-2
e16eb3
- Temporary disable JIT and BMalloc on aarch64 due to Gigacage problems
e16eb3
- Resolves: rhbz#1578576
e16eb3
e16eb3
* Tue May 15 2018 Tomas Popela <tpopela@redhat.com> - 2.20.2-1
e16eb3
- Update to 2.20.2
e16eb3
- Resolves: rhbz#1577388
e16eb3
e16eb3
* Tue Apr 10 2018 Tomas Popela <tpopela@redhat.com> - 2.20.1-1
e16eb3
- Update to 2.20.1
e16eb3
e16eb3
* Mon Mar 12 2018 Kalev Lember <klember@redhat.com> - 2.20.0-2
e16eb3
- Bump webkitgtk4 obsoletes versions
e16eb3
e16eb3
* Mon Mar 12 2018 Tomas Popela <tpopela@redhat.com> - 2.20.0-1
e16eb3
- Update to 2.20.0
e16eb3
e16eb3
* Tue Mar 06 2018 Tomas Popela <tpopela@redhat.com> - 2.19.92-1
e16eb3
- Update to 2.19.92
e16eb3
e16eb3
* Wed Feb 21 2018 Tomas Popela <tpopela@redhat.com> - 2.19.91-1
e16eb3
- Update to 2.19.91
e16eb3
e16eb3
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.19.90-2
e16eb3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
e16eb3
e16eb3
* Mon Feb 05 2018 Tomas Popela <tpopela@redhat.com> - 2.19.90-1
e16eb3
- Update to 2.19.90
e16eb3
e16eb3
* Tue Jan 30 2018 Tomas Popela <tpopela@redhat.com> - 2.19.6-3
e16eb3
- Remove obsoleted ldconfig scriptlets
e16eb3
e16eb3
* Wed Jan 17 2018 Tomas Popela <tpopela@redhat.com> - 2.19.6-1
e16eb3
- Update to 2.19.6
e16eb3
e16eb3
* Thu Jan 11 2018 Tomas Popela <tpopela@redhat.com> - 2.19.5-2
e16eb3
- This package was formerly named webkitgtk4