Blame SPECS/webkit2gtk3.spec

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