2015-01-08 23:01:48 +01:00
#
# spec file for package libqt5-qtwebengine
#
2017-06-13 16:05:23 +02:00
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
2015-01-08 23:01:48 +01:00
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define qt5_snapshot 0
2017-12-23 12:14:44 +01:00
%if %{?suse_version} <= 1320
2017-06-13 16:05:23 +02:00
%bcond_with system_vpx
%else
2017-12-23 12:14:44 +01:00
# Needs libvpx > 1.6.1
%bcond_with system_vpx
2017-06-13 16:05:23 +02:00
%endif
2017-12-23 12:14:44 +01:00
%if %{?suse_version} < 1330
2017-06-13 16:05:23 +02:00
%bcond_with system_icu
%else
2017-12-23 12:14:44 +01:00
# Change to without once ICU 59 is supported
2017-06-13 16:05:23 +02:00
%bcond_with system_icu
%endif
2017-12-23 12:14:44 +01:00
%if %{?suse_version} >= 1330 || (0%{?is_opensuse} && 0%{?sle_version} >= 120200)
2017-09-29 11:50:16 +02:00
%bcond_without system_ffmpeg
%else
%bcond_with system_ffmpeg
%endif
2017-12-23 12:14:44 +01:00
%if %{?suse_version} >= 1320 || (0%{?suse_version} == 1315 && 0%{?sle_version} >= 120200)
2017-06-13 16:05:23 +02:00
%bcond_without system_minizip
%else
%bcond_with system_minizip
%endif
# This is just overall condition to contain everything we can't provide on SLE12
%if 0%{?suse_version} >= 1320 || 0%{?is_opensuse}
%bcond_with sle_bundles
%bcond_without system_harfbuzz
%else
%bcond_without sle_bundles
%bcond_with system_harfbuzz
%endif
2015-01-08 23:01:48 +01:00
Name : libqt5-qtwebengine
2017-12-23 12:14:44 +01:00
Version : 5.10.0
2015-01-08 23:01:48 +01:00
Release : 0
2015-06-06 09:53:01 +02:00
Summary : Qt 5 WebEngine Library
2017-12-23 12:14:44 +01:00
License : LGPL-2.1-with-Qt-Company-Qt-exception-1.1 or LGPL-3.0-with-Qt-Company-Qt-exception-1.1
2015-01-08 23:01:48 +01:00
Group : Development/Libraries/X11
2017-06-13 16:05:23 +02:00
Url : https://www.qt.io
2015-01-08 23:01:48 +01:00
%define base_name libqt5
2017-12-23 12:14:44 +01:00
%define real_version 5.10.0
%define so_version 5.10.0
%define tar_version qtwebengine-everywhere-src-5.10.0
Source : https://download.qt.io/official_releases/qt/5.10/%{real_version} /submodules/%{tar_version} .tar.xz
2015-01-08 23:01:48 +01:00
Source1 : baselibs.conf
2016-10-01 23:50:33 +02:00
# PATCH-FIX-UPSTREAM armv6-ffmpeg-no-thumb.patch - Fix ffmpeg configuration for armv6
2017-07-08 12:24:53 +02:00
Patch1 : armv6-ffmpeg-no-thumb.patch
2018-01-16 09:38:51 +01:00
# PATCH-FIX-UPSTREAM disable-gpu-when-using-nouveau-boo-1005323.diff
2017-07-08 12:24:53 +02:00
Patch2 : disable-gpu-when-using-nouveau-boo-1005323.diff
2017-10-13 14:02:58 +02:00
# PATCH-FIX-UPSTREAM harmony-fix.diff -- Show the patent-free LCD rendering. Without this patch, only grayscale rendering is used. (for freetype-2.8.1) boo#1061344
2017-12-23 12:14:44 +01:00
Patch5 : harmony-fix.diff
2015-09-27 08:37:48 +02:00
# http://www.chromium.org/blink not ported to PowerPC
2015-12-09 19:50:57 +01:00
ExcludeArch : ppc ppc64 ppc64le s390 s390x
2016-10-01 23:50:33 +02:00
# Try to fix i586 MemoryErrors with rpmlint
#!BuildIgnore: rpmlint
2015-01-08 23:01:48 +01:00
BuildRequires : bison
BuildRequires : fdupes
BuildRequires : flac-devel
BuildRequires : flex
BuildRequires : gperf
2017-06-13 16:05:23 +02:00
# It really wants a commit hash, even if it's not in a .git checkout...
BuildRequires : git-core
2015-01-08 23:01:48 +01:00
BuildRequires : hunspell-devel
BuildRequires : krb5
BuildRequires : krb5-devel
BuildRequires : libcap-devel
BuildRequires : libgcrypt-devel
BuildRequires : libicu-devel
BuildRequires : libjpeg-devel
BuildRequires : libpng-devel
2017-12-23 12:14:44 +01:00
BuildRequires : procps
2015-01-08 23:01:48 +01:00
BuildRequires : libqt5-qtbase-private-headers-devel >= %{version}
BuildRequires : libqt5-qtdeclarative-private-headers-devel >= %{version}
2016-06-29 15:10:40 +02:00
BuildRequires : libqt5-qttools-private-headers-devel >= %{version}
2017-06-13 16:05:23 +02:00
BuildRequires : libqt5-qtlocation-private-headers-devel >= %{version}
2015-09-27 08:37:48 +02:00
BuildRequires : libqt5-qtwebchannel-private-headers-devel >= %{version}
2015-01-08 23:01:48 +01:00
BuildRequires : libqt5-qtxmlpatterns-private-headers-devel >= %{version}
2017-12-23 12:14:44 +01:00
BuildRequires : libQt5QuickControls2-devel
2015-01-08 23:01:48 +01:00
BuildRequires : pam-devel
BuildRequires : pciutils-devel
BuildRequires : perl-JSON
BuildRequires : pkg-config
BuildRequires : python
BuildRequires : python-devel
BuildRequires : python-xml
BuildRequires : re2c
2017-12-23 12:14:44 +01:00
BuildRequires : re2-devel
2015-06-06 09:53:01 +02:00
BuildRequires : snappy-devel
2015-01-08 23:01:48 +01:00
BuildRequires : sqlite3-devel
BuildRequires : update-desktop-files
BuildRequires : usbutils
BuildRequires : util-linux
BuildRequires : valgrind-devel
BuildRequires : wdiff
BuildRequires : xz
BuildRequires : yasm
BuildRequires : perl(Switch)
BuildRequires : pkgconfig(alsa)
2016-05-19 12:14:13 +02:00
BuildRequires : pkgconfig(atk)
2015-01-08 23:01:48 +01:00
BuildRequires : pkgconfig(bzip2)
BuildRequires : pkgconfig(cairo)
BuildRequires : pkgconfig(dbus-1)
BuildRequires : pkgconfig(fontconfig)
BuildRequires : pkgconfig(freetype2)
BuildRequires : pkgconfig(gio-2.0)
BuildRequires : pkgconfig(glib-2.0)
BuildRequires : pkgconfig(gmodule-2.0)
BuildRequires : pkgconfig(gobject-2.0)
BuildRequires : pkgconfig(gthread-2.0)
2015-09-27 08:37:48 +02:00
%if 0%{?suse_version} >= 1315
2015-06-06 09:53:01 +02:00
BuildRequires : pkgconfig(jsoncpp)
%endif
2016-05-19 12:14:13 +02:00
BuildRequires : binutils-gold
2015-01-08 23:01:48 +01:00
BuildRequires : pkgconfig(libcrypto)
BuildRequires : pkgconfig(libdrm)
BuildRequires : pkgconfig(libevent)
BuildRequires : pkgconfig(libexif)
BuildRequires : pkgconfig(libmtp)
BuildRequires : pkgconfig(libpci)
BuildRequires : pkgconfig(libpng)
BuildRequires : pkgconfig(libpulse)
BuildRequires : pkgconfig(libsrtp)
BuildRequires : pkgconfig(libudev)
BuildRequires : pkgconfig(libusb-1.0)
BuildRequires : pkgconfig(libwebp)
2015-06-06 09:53:01 +02:00
BuildRequires : pkgconfig(libxml-2.0)
2015-01-08 23:01:48 +01:00
BuildRequires : pkgconfig(libxslt)
BuildRequires : pkgconfig(nspr)
BuildRequires : pkgconfig(nss)
BuildRequires : pkgconfig(opus)
BuildRequires : pkgconfig(pangocairo)
BuildRequires : pkgconfig(pangoft2)
BuildRequires : pkgconfig(protobuf)
BuildRequires : pkgconfig(speex)
BuildRequires : pkgconfig(x11)
BuildRequires : pkgconfig(xcomposite)
BuildRequires : pkgconfig(xcursor)
BuildRequires : pkgconfig(xdamage)
BuildRequires : pkgconfig(xext)
BuildRequires : pkgconfig(xfixes)
BuildRequires : pkgconfig(xi)
BuildRequires : pkgconfig(xrandr)
BuildRequires : pkgconfig(xrender)
BuildRequires : pkgconfig(xscrnsaver)
BuildRequires : pkgconfig(xt)
BuildRequires : pkgconfig(xtst)
BuildRequires : pkgconfig(zlib)
2017-06-13 16:05:23 +02:00
%if !%{with sle_bundles}
BuildRequires : yasm-devel
%endif
%if %{with system_minizip}
BuildRequires : pkgconfig(minizip)
%endif
%if %{with system_harfbuzz}
BuildRequires : pkgconfig(harfbuzz) >= 1.2.0
%endif
%if %{with system_icu}
BuildRequires : pkgconfig(icu-i18n) >= 54.0
%endif
%if %{with system_vpx}
BuildRequires : pkgconfig(vpx) >= 1.4.0
%endif
2017-09-29 11:50:16 +02:00
%if %{with system_ffmpeg}
BuildRequires : libavformat-devel
BuildRequires : libavcodec-devel
BuildRequires : libavutil-devel
%endif
2015-01-08 23:01:48 +01:00
%if %qt5_snapshot
#to create the forwarding headers
BuildRequires : perl
%endif
2015-03-01 15:27:02 +01:00
%requires_ge libQt5Network5
%requires_ge libQtQuick5
%requires_ge libQt5Widgets5
2015-01-08 23:01:48 +01:00
BuildRoot : %{_tmppath} /%{name} -%{version} -build
%description
2017-06-13 16:05:23 +02:00
Qt WebEngine provides functionality for rendering regions of dynamic
web content.
2015-01-08 23:01:48 +01:00
2017-06-13 16:05:23 +02:00
The functionality in Qt WebEngine is divided into the following
modules:
* QtWebEngineCore: Provides public API shared by both QtWebEngine and
QtWebEngineWidgets
* QtWebEngine: Provides QML types for rendering web content within a
QML application
* QtWebEngineWidgets: Provides a web browser engine as well as C++
classes to render and interact with web content
2015-01-08 23:01:48 +01:00
%package devel
2017-06-13 16:05:23 +02:00
Summary : Development files for the Qt5 WebEngine library
2015-01-08 23:01:48 +01:00
Group : Development/Libraries/X11
Requires : %{name} = %{version}
%description devel
2017-12-23 12:14:44 +01:00
You need this package if you want to compile programs with Qt WebEngine.
2015-01-08 23:01:48 +01:00
%package private-headers-devel
2017-06-13 16:05:23 +02:00
Summary : Non-ABI stable experimental API for the Qt5 WebEngine library
2015-01-08 23:01:48 +01:00
Group : Development/Libraries/C and C++
BuildArch : noarch
Requires : %{name} -devel = %{version}
Requires : libqt5-qtbase-private-headers-devel >= %{version}
Requires : libqt5-qtdeclarative-private-headers-devel >= %{version}
%description private-headers-devel
2017-12-23 12:14:44 +01:00
This package provides private headers of libqt5-qtwebengine that are normally
2015-01-08 23:01:48 +01:00
not used by application development and that do not have any ABI or
API guarantees. The packages that build against these have to require
the exact Qt version.
%package examples
Summary : Qt5 location examples
Group : Development/Libraries/X11
2017-12-23 12:14:44 +01:00
Requires : libqt5-qtquickcontrols2
2015-01-08 23:01:48 +01:00
Recommends: %{name} -devel
%description examples
2017-06-13 16:05:23 +02:00
Examples for the libqt5-qtwebengine module.
2015-01-08 23:01:48 +01:00
2017-06-13 16:05:23 +02:00
%prep
2017-12-23 12:14:44 +01:00
%setup -q -n %{tar_version}
2017-06-13 16:05:23 +02:00
sed -i 's|$(STRIP)|strip|g' src/core/core_module.pro
2017-07-08 12:24:53 +02:00
%patch1 -p1
2017-06-13 16:05:23 +02:00
%patch2 -p1
2017-12-23 12:14:44 +01:00
%patch5 -p1
2017-06-18 13:49:13 +02:00
# QTBUG-61128
sed -i -e '/toolprefix = /d' -e 's/\${toolprefix}//g' \
src/3rdparty/chromium/build/toolchain/linux/BUILD.gn
2015-01-08 23:01:48 +01:00
%build
%if %qt5_snapshot
#force the configure script to generate the forwarding headers (it checks whether .git directory exists)
mkdir .git
%endif
2015-06-06 09:53:01 +02:00
2016-10-01 23:50:33 +02:00
%ifarch armv6l armv6hl
# Tell src/core/gyp_run.pro to configure for armv6, hard float, no neon
RPM_OPT_FLAGS+=" - m a r c h = a r m v 6 z k - m f l o a t - a b i = h a r d - m f p u = v f p "
%endif
2015-09-27 08:37:48 +02:00
%ifnarch x86_64
2016-11-05 21:23:52 +01:00
RPM_OPT_FLAGS=" $RPM_OPT_FLAGS "
2015-09-27 08:37:48 +02:00
export RPM_OPT_FLAGS=${RPM_OPT_FLAGS /-g / }
%endif
2017-06-18 13:49:13 +02:00
# It does not actually include proprietary codecs, it only makes it attempt to use ffmpeg
2016-05-19 12:14:13 +02:00
%qmake5 QMAKE_CFLAGS=" $RPM_OPT_FLAGS " \
2017-12-23 12:14:44 +01:00
QMAKE_LFLAGS+=" - W l , - - n o - k e e p - m e m o r y - W l , - - h a s h - s i z e = 3 1 - W l , - - r e d u c e - m e m o r y - o v e r h e a d s " \
qtwebengine.pro -- \
-webengine-alsa -no-webengine-embedded-build \
2017-06-13 16:05:23 +02:00
%if %{with system_icu}
2017-12-23 12:14:44 +01:00
-system-webengine-icu \
2017-06-13 16:05:23 +02:00
%endif
2017-12-23 12:14:44 +01:00
%if %{with system_ffmpeg}
-system-webengine-ffmpeg \
-webengine-proprietary-codecs \
%endif
-system-webengine-opus -system-webengine-webp -webengine-pepper-plugins -webengine-printing-and-pdf
2015-09-27 08:37:48 +02:00
2017-07-30 11:20:28 +02:00
# do not run too many parallel jobs, per bigger memory size worker it uses more
2017-12-23 12:14:44 +01:00
# parallel then cost more memory. Determine the right number of parallel
# processes based on the available memory
makeproc=" % { ? j o b s : %{jobs} } "
echo " A v a i l a b l e m e m o r y : "
free
echo " S y s t e m l i m i t s : "
ulimit -a
if test -n " $ m a k e p r o c " -a " $ m a k e p r o c " -gt 1 ; then
mem_per_process=1300
max_mem=`LANG=C free -t -m | sed -n " s | ^ M e m : * \ ( [ 0 - 9 ] * \ ) . * $ | \1 | p " `
max_jobs=" $ ( ( $ m a x _ m e m / $ m e m _ p e r _ p r o c e s s ) ) "
test " $ m a k e p r o c " -gt " $ m a x _ j o b s " && makeproc=" $ m a x _ j o b s " && echo " W a r n i n g : R e d u c i n g n u m b e r o f j o b s t o $ m a x _ j o b s b e c a u s e o f m e m o r y l i m i t s "
test " $ m a k e p r o c " -le 0 && makeproc=1 && echo " W a r n i n g : D o n o t u s e t h e p a r a l l e l b u i l d a t a l l b e c u s e o f m e m o r y l i m i t s "
fi
# Ensure that also the internal chromium build follows the right number of parallell
# processess instead of its defaults.
export NINJAFLAGS=" - j $ m a k e p r o c "
make -j$makeproc VERBOSE=1
2015-01-08 23:01:48 +01:00
%install
%qmake5_install
#cat %{buildroot}/%{_libdir}/pkgconfig/Qt*Web*.pc
2017-06-13 16:05:23 +02:00
find %{buildroot} /%{_libdir} -type f -name '*la' -print -exec perl -pi -e 's, -L%{_builddir}/\S+,,g' {} +
find %{buildroot} /%{_libdir} -type f -name '*pc' -print -exec perl -pi -e " s , - L $RPM_BUILD_DIR / ? \ S + , , g " {} + -exec sed -i -e " s , ^ m o c _ l o c a t i o n = . * , m o c _ l o c a t i o n = % l i b q t 5 _ b i n d i r / m o c , " -e " s , u i c _ l o c a t i o n = . * , u i c _ l o c a t i o n = % l i b q t 5 _ b i n d i r / u i c , " {} +
find %{buildroot} /%{_libdir} -type f -name '*pc' -exec sed -i -e " / ^ R P M _ B U I L D _ D I R / d " {} +
2015-01-08 23:01:48 +01:00
sed -i '/^Libs.private/d' %{buildroot} %{_libdir} /pkgconfig/Qt*Web*.pc
# kill .la files
rm -f %{buildroot} %{_libqt5_libdir}/lib*.la
2015-06-06 09:53:01 +02:00
# webenginecore expects icudatl.dat at this location
2016-05-19 12:14:13 +02:00
# ln -sf %{_datadir}/icu/*/icudt*l.dat %{buildroot}%{_datadir}/qt5/icudtl.dat
2015-01-08 23:01:48 +01:00
2017-06-13 16:05:23 +02:00
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
2015-01-08 23:01:48 +01:00
%files
%defattr (-,root,root,755)
%doc LICENSE.*
%{_libqt5_libdir}/libQt*Web*.so.*
%{_datadir} /qt5/
%dir %{_libqt5_libexecdir}
%{_libqt5_libexecdir}/QtWebEngineProcess
%{_libqt5_archdatadir}/qml/QtWebEngine/
2016-06-29 15:10:40 +02:00
%{_libqt5_plugindir}/designer/
2017-06-13 16:05:23 +02:00
%{_libqt5_bindir}/qwebengine_convert_dict
2015-01-08 23:01:48 +01:00
%files private-headers-devel
%defattr (-,root,root,755)
%doc LICENSE.*
%{_libqt5_includedir}/*/%{so_version}
%files devel
%defattr (-,root,root,755)
%doc LICENSE.*
%exclude %{_libqt5_includedir}/*/%{so_version}
%{_libqt5_includedir}/*/
2016-06-29 15:10:40 +02:00
%{_libqt5_libdir}/cmake/Qt5*/
2015-01-08 23:01:48 +01:00
%{_libqt5_libdir}/libQt*Web*.so
%{_libqt5_libdir}/libQt*Web*.prl
%{_libqt5_libdir}/qt5/mkspecs/modules/qt_lib_*.pri
%{_libqt5_libdir}/pkgconfig/Qt*Web*.pc
%files examples
%defattr (-,root,root,755)
%doc LICENSE.*
%{_libqt5_examplesdir}/
%changelog