Blame SPECS/webkit2gtk3.spec

05e78c
## NOTE: Lots of files in various subdirectories have the same name (such as
05e78c
## "LICENSE") so this short macro allows us to distinguish them by using their
05e78c
## directory names (from the source tree) as prefixes for the files.
05e78c
%global add_to_license_files() \
05e78c
        mkdir -p _license_files ; \
05e78c
        cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g')
05e78c
05e78c
Name:           webkit2gtk3
05e78c
Version:        2.22.6
05e78c
Release:        1%{?dist}
05e78c
Summary:        GTK+ Web content engine library
05e78c
05e78c
License:        LGPLv2
05e78c
URL:            http://www.webkitgtk.org/
05e78c
Source0:        http://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz
05e78c
05e78c
# https://bugs.webkit.org/show_bug.cgi?id=132333
05e78c
Patch0:        webkit-cloop_big_endians.patch
05e78c
# Explicitly specify python2 over python
05e78c
Patch1:        webkit-python2.patch
05e78c
Patch2:        webkit-aarch64_page_size.patch
05e78c
# https://bugzilla.redhat.com/show_bug.cgi?id=1591638
05e78c
Patch3:        webkit-atk_crash.patch
05e78c
# https://bugzilla.redhat.com/show_bug.cgi?id=1503624
05e78c
Patch4:        webkit-atk_continuation_crash.patch
05e78c
05e78c
BuildRequires:  at-spi2-core-devel
05e78c
BuildRequires:  bison
05e78c
BuildRequires:  cairo-devel
05e78c
BuildRequires:  cmake
05e78c
BuildRequires:  enchant-devel
05e78c
BuildRequires:  flex
05e78c
BuildRequires:  fontconfig-devel
05e78c
BuildRequires:  freetype-devel
05e78c
BuildRequires:  git
05e78c
BuildRequires:  geoclue2-devel
05e78c
BuildRequires:  gettext
05e78c
BuildRequires:  glib2-devel
05e78c
BuildRequires:  gnutls-devel
05e78c
BuildRequires:  gobject-introspection-devel
05e78c
BuildRequires:  gperf
05e78c
BuildRequires:  gstreamer1-devel
05e78c
BuildRequires:  gstreamer1-plugins-base-devel
05e78c
BuildRequires:  gstreamer1-plugins-bad-free-devel
05e78c
BuildRequires:  gtk2-devel
05e78c
BuildRequires:  gtk3-devel
05e78c
BuildRequires:  gtk-doc
05e78c
BuildRequires:  harfbuzz-devel
05e78c
BuildRequires:  hyphen-devel
05e78c
BuildRequires:  libicu-devel
05e78c
BuildRequires:  libjpeg-devel
05e78c
BuildRequires:  libnotify-devel
05e78c
BuildRequires:  libpng-devel
05e78c
BuildRequires:  libsecret-devel
05e78c
BuildRequires:  libsoup-devel
05e78c
BuildRequires:  libwebp-devel
05e78c
BuildRequires:  libxslt-devel
05e78c
BuildRequires:  libXt-devel
05e78c
BuildRequires:  libwayland-client-devel
05e78c
BuildRequires:  libwayland-egl-devel
05e78c
BuildRequires:  libwayland-server-devel
05e78c
BuildRequires:  mesa-libEGL-devel
05e78c
BuildRequires:  mesa-libGL-devel
05e78c
BuildRequires:  mesa-libGLES-devel
05e78c
BuildRequires:  pcre-devel
05e78c
BuildRequires:  perl-File-Copy-Recursive
05e78c
BuildRequires:  perl-JSON-PP
05e78c
BuildRequires:  perl-Switch
05e78c
BuildRequires:  python2
05e78c
BuildRequires:  ruby
05e78c
BuildRequires:  rubygems
05e78c
BuildRequires:  sqlite-devel
05e78c
BuildRequires:  upower-devel
05e78c
BuildRequires:  woff2-devel
05e78c
05e78c
Requires:       geoclue2
05e78c
05e78c
# Obsolete libwebkit2gtk from the webkitgtk3 package
05e78c
Obsoletes:      libwebkit2gtk < 2.5.0
05e78c
Provides:       libwebkit2gtk = %{version}-%{release}
05e78c
05e78c
# This package was renamed, so obsolete the old webkitgtk4 package
05e78c
Obsoletes:      webkitgtk4 < %{version}-%{release}
05e78c
Provides:       webkitgtk4 = %{version}-%{release}
05e78c
05e78c
# We're supposed to specify versions here, but these crap Google libs don't do
05e78c
# normal releases. Accordingly, they're not suitable to be system libs.
05e78c
Provides:       bundled(angle)
05e78c
05e78c
# Require the jsc subpackage
05e78c
Requires:       %{name}-jsc%{?_isa} = %{version}-%{release}
05e78c
05e78c
# Recommend the support for the GTK+ 2 based NPAPI plugins
05e78c
Recommends:     %{name}-plugin-process-gtk2%{?_isa} = %{version}-%{release}
05e78c
05e78c
# Filter out provides for private libraries
05e78c
%global __provides_exclude_from ^%{_libdir}/webkit2gtk-4\\.0/.*\\.so$
05e78c
05e78c
%description
05e78c
WebKitGTK+ is the port of the portable web rendering engine WebKit to the
05e78c
GTK+ platform.
05e78c
05e78c
This package contains WebKit2 based WebKitGTK+ for GTK+ 3.
05e78c
05e78c
%package        devel
05e78c
Summary:        Development files for %{name}
05e78c
Requires:       %{name}%{?_isa} = %{version}-%{release}
05e78c
Requires:       %{name}-jsc%{?_isa} = %{version}-%{release}
05e78c
Requires:       %{name}-jsc-devel%{?_isa} = %{version}-%{release}
05e78c
Obsoletes:      webkitgtk4-devel < %{version}-%{release}
05e78c
Provides:       webkitgtk4-devel = %{version}-%{release}
05e78c
05e78c
%description    devel
05e78c
The %{name}-devel package contains libraries, build data, and header
05e78c
files for developing applications that use %{name}.
05e78c
05e78c
%package        doc
05e78c
Summary:        Documentation files for %{name}
05e78c
BuildArch:      noarch
05e78c
Requires:       %{name} = %{version}-%{release}
05e78c
Obsoletes:      webkitgtk4-doc < %{version}-%{release}
05e78c
Provides:       webkitgtk4-doc = %{version}-%{release}
05e78c
05e78c
%description    doc
05e78c
This package contains developer documentation for %{name}.
05e78c
05e78c
%package        jsc
05e78c
Summary:        JavaScript engine from %{name}
05e78c
Obsoletes:      webkitgtk4-jsc < %{version}-%{release}
05e78c
Provides:       webkitgtk4-jsc = %{version}-%{release}
05e78c
05e78c
%description    jsc
05e78c
This package contains JavaScript engine from %{name}.
05e78c
05e78c
%package        jsc-devel
05e78c
Summary:        Development files for JavaScript engine from %{name}
05e78c
Requires:       %{name}-jsc%{?_isa} = %{version}-%{release}
05e78c
Obsoletes:      webkitgtk4-jsc-devel < %{version}-%{release}
05e78c
Provides:       webkitgtk4-jsc-devel = %{version}-%{release}
05e78c
05e78c
%description    jsc-devel
05e78c
The %{name}-jsc-devel package contains libraries, build data, and header
05e78c
files for developing applications that use JavaScript engine from %{name}.
05e78c
05e78c
%package        plugin-process-gtk2
05e78c
Summary:        GTK+ 2 based NPAPI plugins support for %{name}
05e78c
Requires:       %{name}-jsc%{?_isa} = %{version}-%{release}
05e78c
Obsoletes:      %{name} < 2.12.0-3
05e78c
Obsoletes:      webkitgtk4-plugin-process-gtk2 < %{version}-%{release}
05e78c
Provides:       webkitgtk4-plugin-process-gtk2 = %{version}-%{release}
05e78c
05e78c
%description    plugin-process-gtk2
05e78c
Support for the GTK+ 2 based NPAPI plugins (such as Adobe Flash) for %{name}.
05e78c
05e78c
%prep
05e78c
%autosetup -p1 -n webkitgtk-%{version} -S git
05e78c
05e78c
# Remove bundled libraries
05e78c
rm -rf Source/ThirdParty/gtest/
05e78c
rm -rf Source/ThirdParty/qunit/
05e78c
05e78c
%build
05e78c
export RHEL_ALLOW_PYTHON2_FOR_BUILD=1
05e78c
# Increase the DIE limit so our debuginfo packages could be size optimized.
05e78c
# Decreases the size for x86_64 from ~5G to ~1.1G.
05e78c
# https://bugzilla.redhat.com/show_bug.cgi?id=1456261
05e78c
%global _dwz_max_die_limit 250000000
05e78c
# The _dwz_max_die_limit is being overridden by the arch specific ones from the
05e78c
# redhat-rpm-config so we need to set the arch specific ones as well - now it
05e78c
# is only needed for x86_64.
05e78c
%global _dwz_max_die_limit_x86_64 250000000
05e78c
05e78c
# Decrease debuginfo even on ix86 because of:
05e78c
# https://bugs.webkit.org/show_bug.cgi?id=140176
05e78c
%ifarch s390x %{arm} %{ix86} %{power64} %{mips}
05e78c
# Decrease debuginfo verbosity to reduce memory consumption even more
05e78c
%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
05e78c
%endif
05e78c
05e78c
# BMalloc and JIT are disabled on aarch64, because of the non-standard page size
05e78c
# that's causing problems there (it's enabled on Fedora)
05e78c
mkdir -p %{_target_platform}
05e78c
pushd %{_target_platform}
05e78c
%cmake \
05e78c
  -DPORT=GTK \
05e78c
  -DCMAKE_BUILD_TYPE=Release \
05e78c
  -DENABLE_GTKDOC=ON \
05e78c
  -DENABLE_MINIBROWSER=ON \
05e78c
%ifarch s390x %{power64} aarch64
05e78c
  -DENABLE_JIT=OFF \
05e78c
  -DUSE_SYSTEM_MALLOC=ON \
05e78c
%endif
05e78c
  ..
05e78c
popd
05e78c
05e78c
# Remove the static amount of jobs once
05e78c
# https://projects.engineering.redhat.com/browse/BREW-2146 is resolved
05e78c
# make %{?_smp_mflags} -C %{_target_platform}
05e78c
make -j6 -C %{_target_platform}
05e78c
05e78c
%install
05e78c
%make_install -C %{_target_platform}
05e78c
05e78c
%find_lang WebKit2GTK-4.0
05e78c
05e78c
# Finally, copy over and rename various files for %%license inclusion
05e78c
%add_to_license_files Source/JavaScriptCore/COPYING.LIB
05e78c
%add_to_license_files Source/JavaScriptCore/icu/LICENSE
05e78c
%add_to_license_files Source/ThirdParty/ANGLE/LICENSE
05e78c
%add_to_license_files Source/ThirdParty/ANGLE/src/common/third_party/smhasher/LICENSE
05e78c
%add_to_license_files Source/ThirdParty/ANGLE/src/third_party/compiler/LICENSE
05e78c
%add_to_license_files Source/ThirdParty/ANGLE/src/third_party/libXNVCtrl/LICENSE
05e78c
%add_to_license_files Source/WebCore/icu/LICENSE
05e78c
%add_to_license_files Source/WebCore/LICENSE-APPLE
05e78c
%add_to_license_files Source/WebCore/LICENSE-LGPL-2
05e78c
%add_to_license_files Source/WebCore/LICENSE-LGPL-2.1
05e78c
%add_to_license_files Source/WebInspectorUI/UserInterface/External/CodeMirror/LICENSE
05e78c
%add_to_license_files Source/WebInspectorUI/UserInterface/External/ESLint/LICENSE
05e78c
%add_to_license_files Source/WebInspectorUI/UserInterface/External/Esprima/LICENSE
05e78c
%add_to_license_files Source/WebInspectorUI/UserInterface/External/three.js/LICENSE
05e78c
%add_to_license_files Source/WTF/icu/LICENSE
05e78c
%add_to_license_files Source/WTF/wtf/dtoa/COPYING
05e78c
%add_to_license_files Source/WTF/wtf/dtoa/LICENSE
05e78c
05e78c
%files -f WebKit2GTK-4.0.lang
05e78c
%license _license_files/*ThirdParty*
05e78c
%license _license_files/*WebCore*
05e78c
%license _license_files/*WebInspectorUI*
05e78c
%license _license_files/*WTF*
05e78c
%{_libdir}/libwebkit2gtk-4.0.so.*
05e78c
%dir %{_libdir}/girepository-1.0
05e78c
%{_libdir}/girepository-1.0/WebKit2-4.0.typelib
05e78c
%{_libdir}/girepository-1.0/WebKit2WebExtension-4.0.typelib
05e78c
%{_libdir}/webkit2gtk-4.0/
05e78c
%{_libexecdir}/webkit2gtk-4.0/
05e78c
%exclude %{_libexecdir}/webkit2gtk-4.0/MiniBrowser
05e78c
%exclude %{_libexecdir}/webkit2gtk-4.0/WebKitPluginProcess2
05e78c
%{_bindir}/WebKitWebDriver
05e78c
05e78c
%files devel
05e78c
%{_libexecdir}/webkit2gtk-4.0/MiniBrowser
05e78c
%{_includedir}/webkitgtk-4.0/
05e78c
%exclude %{_includedir}/webkitgtk-4.0/JavaScriptCore
05e78c
%{_libdir}/libwebkit2gtk-4.0.so
05e78c
%{_libdir}/pkgconfig/webkit2gtk-4.0.pc
05e78c
%{_libdir}/pkgconfig/webkit2gtk-web-extension-4.0.pc
05e78c
%dir %{_datadir}/gir-1.0
05e78c
%{_datadir}/gir-1.0/WebKit2-4.0.gir
05e78c
%{_datadir}/gir-1.0/WebKit2WebExtension-4.0.gir
05e78c
05e78c
%files jsc
05e78c
%license _license_files/*JavaScriptCore*
05e78c
%{_libdir}/libjavascriptcoregtk-4.0.so.*
05e78c
%dir %{_libdir}/girepository-1.0
05e78c
%{_libdir}/girepository-1.0/JavaScriptCore-4.0.typelib
05e78c
05e78c
%files jsc-devel
05e78c
%{_libexecdir}/webkit2gtk-4.0/jsc
05e78c
%dir %{_includedir}/webkitgtk-4.0
05e78c
%{_includedir}/webkitgtk-4.0/JavaScriptCore/
05e78c
%{_libdir}/libjavascriptcoregtk-4.0.so
05e78c
%{_libdir}/pkgconfig/javascriptcoregtk-4.0.pc
05e78c
%dir %{_datadir}/gir-1.0
05e78c
%{_datadir}/gir-1.0/JavaScriptCore-4.0.gir
05e78c
05e78c
%files plugin-process-gtk2
05e78c
%{_libexecdir}/webkit2gtk-4.0/WebKitPluginProcess2
05e78c
05e78c
%files doc
05e78c
%dir %{_datadir}/gtk-doc
05e78c
%dir %{_datadir}/gtk-doc/html
05e78c
%{_datadir}/gtk-doc/html/jsc-glib-4.0/
05e78c
%{_datadir}/gtk-doc/html/webkit2gtk-4.0/
05e78c
%{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
05e78c
05e78c
%changelog
05e78c
* Tue Feb 12 2019 Eike Rathke <erack@redhat.com> - 2.22.6-1
05e78c
- Resolves: rhbz#1676489 Update to 2.22.6
05e78c
05e78c
* Fri Jan 25 2019 Eike Rathke <erack@redhat.com> - 2.22.5-2
05e78c
- Resolves: rhbz#1666984 Fix gigacage
05e78c
05e78c
* Tue Dec 18 2018 Eike Rathke <erack@redhat.com> - 2.22.5-1
05e78c
- Update to 2.22.5
05e78c
05e78c
* Tue Oct 30 2018 Tomas Popela <tpopela@redhat.com> - 2.22.3-1
05e78c
- Update to 2.22.3
05e78c
- Resolves: rhbz#1641009
05e78c
05e78c
* Mon Sep 24 2018 Tomas Popela <tpopela@redhat.com> - 2.22.2-1
05e78c
- Update to 2.22.2
05e78c
- Resolves: rhbz#1625602
05e78c
05e78c
* Thu Sep 20 2018 Tomas Popela <tpopela@redhat.com> - 2.22.1-1
05e78c
- Update to 2.22.1
05e78c
- Resolves: rhbz#1625602
05e78c
05e78c
* Tue Sep 11 2018 Tomas Popela <tpopela@redhat.com> - 2.22.0-2
05e78c
- Backport patches from RHEL 7
05e78c
- Resolves: rhbz#1625602
05e78c
05e78c
* Wed Sep 05 2018 Tomas Popela <tpopela@redhat.com> - 2.22.0-1
05e78c
- Update to 2.22.0
05e78c
- Resolves: rhbz#1625602
05e78c
05e78c
* Tue Jul 17 2018 Tomas Popela <tpopela@redhat.com> - 2.20.3-3
05e78c
- Update the python2 patch
05e78c
05e78c
* Mon Jun 18 2018 Tomas Popela <tpopela@redhat.com> - 2.20.3-3
05e78c
- Export the python2 env variable
05e78c
- Resolves: rhbz#1592264
05e78c
05e78c
* Mon Jun 11 2018 Tomas Popela <tpopela@redhat.com> - 2.20.3-1
05e78c
- Update to 2.20.3
05e78c
05e78c
* Thu May 24 2018 Tomas Popela <tpopela@redhat.com> - 2.20.2-4
05e78c
- Explicitly specify python2 over python and add python2 to BR
05e78c
05e78c
* Tue May 22 2018 Tomas Popela <tpopela@redhat.com> - 2.20.2-3
05e78c
- aarch64 on RHEL 8 does have a 64kb page size
05e78c
- Resolves: rhbz#1578576
05e78c
05e78c
* Tue May 22 2018 Tomas Popela <tpopela@redhat.com> - 2.20.2-2
05e78c
- Temporary disable JIT and BMalloc on aarch64 due to Gigacage problems
05e78c
- Resolves: rhbz#1578576
05e78c
05e78c
* Tue May 15 2018 Tomas Popela <tpopela@redhat.com> - 2.20.2-1
05e78c
- Update to 2.20.2
05e78c
- Resolves: rhbz#1577388
05e78c
05e78c
* Tue Apr 10 2018 Tomas Popela <tpopela@redhat.com> - 2.20.1-1
05e78c
- Update to 2.20.1
05e78c
05e78c
* Mon Mar 12 2018 Kalev Lember <klember@redhat.com> - 2.20.0-2
05e78c
- Bump webkitgtk4 obsoletes versions
05e78c
05e78c
* Mon Mar 12 2018 Tomas Popela <tpopela@redhat.com> - 2.20.0-1
05e78c
- Update to 2.20.0
05e78c
05e78c
* Tue Mar 06 2018 Tomas Popela <tpopela@redhat.com> - 2.19.92-1
05e78c
- Update to 2.19.92
05e78c
05e78c
* Wed Feb 21 2018 Tomas Popela <tpopela@redhat.com> - 2.19.91-1
05e78c
- Update to 2.19.91
05e78c
05e78c
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.19.90-2
05e78c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
05e78c
05e78c
* Mon Feb 05 2018 Tomas Popela <tpopela@redhat.com> - 2.19.90-1
05e78c
- Update to 2.19.90
05e78c
05e78c
* Tue Jan 30 2018 Tomas Popela <tpopela@redhat.com> - 2.19.6-3
05e78c
- Remove obsoleted ldconfig scriptlets
05e78c
05e78c
* Wed Jan 17 2018 Tomas Popela <tpopela@redhat.com> - 2.19.6-1
05e78c
- Update to 2.19.6
05e78c
05e78c
* Thu Jan 11 2018 Tomas Popela <tpopela@redhat.com> - 2.19.5-2
05e78c
- This package was formerly named webkitgtk4