2018-04-24 14:28:44 +03:00
# This spec file is based on other spec files, ebuilds, PKGBUILDs available from
# [1] https://repos.fedorapeople.org/repos/spot/chromium/
# [2] https://copr.fedoraproject.org/coprs/churchyard/chromium-russianfedora-tested/
# [3] https://www.archlinux.org/packages/extra/x86_64/chromium/
# [4] https://src.fedoraproject.org/rpms/chromium/
# [5] https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/
2018-10-14 13:14:10 +03:00
# [6] https://svnweb.freebsd.org/ports/head/www/chromium/Makefile?view=markup
# [7] https://packages.altlinux.org/ru/Sisyphus/srpms/chromium/spec
# [8] https://build.opensuse.org/package/show/network:chromium/chromium
2018-04-24 14:28:44 +03:00
# Get the version number of latest stable version
# $ curl -s 'https://omahaproxy.appspot.com/all?os=linux&channel=stable' | sed 1d | cut -d , -f 3
2014-11-24 14:25:53 +03:00
%global _build_pkgcheck_set %{nil}
2014-11-24 10:50:36 +03:00
2015-11-11 18:16:42 +03:00
# eol 'fix' corrupts some .bin
%define dont_fix_eol 1
2016-02-25 12:05:16 +03:00
%define _disable_lto 1
2015-11-11 18:16:42 +03:00
2012-07-04 11:57:27 +04:00
%define crname chromium-browser
%define _crdir %{_libdir}/%{crname}
%define _src %{_topdir}/SOURCES
2016-01-02 20:34:16 +03:00
%define chromium_system_libs 1
2016-11-21 19:31:15 +10:00
%define ffmpeg 1
2016-03-08 19:43:38 +03:00
%define icu 0
2018-10-14 13:08:58 +03:00
%define libva 1
2018-04-24 14:28:44 +03:00
%define clang 1
2018-05-28 14:04:45 +03:00
%define jsoncpp 0
2015-02-09 22:50:26 +03:00
2016-11-17 23:12:20 +10:00
# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys
# Note: these are for Mageia use ONLY.
# For your own builds, please get your own set of keys.
2018-06-28 02:44:56 +03:00
%define google_api_key AIzaSyDhhIHB_kQZodiWr8yDAm8E3GwEyiXmuDU
%define google_default_client_id 1039996407057-q599ngv7i6ni4sbkd2fsns30246r9s9v.apps.googleusercontent.com
%define google_default_client_secret mRHXPjlS4cLpp1beCiXoYbLZ
2016-11-17 23:12:20 +10:00
2015-06-22 21:51:15 +10:00
Summary : A fast web browser based on the Blink engine
Name : chromium-browser-stable
2018-09-22 00:11:52 +03:00
Version : 69.0.3497.100
2018-10-14 01:55:18 +03:00
Release : 3
2015-06-22 21:51:15 +10:00
License : BSD, LGPL
Group : Networking/WWW
2017-01-31 10:51:58 +03:00
Url : https://www.chromium.org/Home
2015-06-22 21:51:15 +10:00
Source0 : https://commondatastorage.googleapis.com/chromium-browser-official/chromium-%{version} .tar.xz
Source1 : chromium-wrapper
Source2 : chromium-browser.desktop
2016-11-17 23:12:20 +10:00
# Setup toolchain for rosa builds, from gentoo
# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/toolchain/BUILD.gn
Source5 : BUILD.gn
Source10 : %{name} .rpmlintrc
2015-06-22 21:51:15 +10:00
Source30 : master_preferences
Source31 : default_bookmarks.html
Source32 : chromium.default
Source100 : icons.tar.bz2
Source997 : depot_tools.tar.xz
Source999 : new-system-icons.tar.xz
Patch4 : chromium-30.0.1599.66-master-prefs-path.patch
2016-12-06 19:54:52 +03:00
2016-11-17 23:12:20 +10:00
Patch22 : chromium-54-proprietary-codecs-assert.patch
2018-08-13 15:03:08 +03:00
%if 0%{jsoncpp}
2016-11-17 23:12:20 +10:00
# (cjw) add missing unbundle gn files (1)
Patch28 : chromium-53-gn-system-icu-jsoncpp.patch
2018-08-13 15:03:08 +03:00
%endif
2016-11-17 23:12:20 +10:00
# (cjw) build pdfium with system libtiff and libpng
Patch30 : chromium-52-pdfium-system-libtiff-libpng.patch
2016-12-06 19:54:52 +03:00
# (cjw) Recognize mimetypes for matroska (.mkv) and AVI (.avi) formats (video/x-matroska and audio/x-matroska, video/x-msvideo) + handle A52 "AC3" and DTS compressed audio.
Patch32 : chromium-55-extra-media.patch
# (cjw) fix webrtc build with system ffmpeg
Patch35 : chromium-50-system-ffmpeg-3.patch
2017-08-09 15:04:16 +03:00
# (cjw) fix build with current glib...
Patch36 : chromium-58-glib.patch
2017-09-19 14:51:35 +03:00
# clang builtin subtract functions, scoped enum
Patch47 : chromium-61-gcc5.patch
2016-11-18 21:58:26 +10:00
2015-09-07 09:49:47 +03:00
# New from Debian
Patch500 : chromium-third-party-cookies-off-by-default.patch
Patch501 : chromium-ps-print.patch
2016-01-03 00:58:07 +03:00
# Google patched their bundled copy of icu 54 to include API functionality that wasn't added until 55.
# :P
2016-11-17 23:12:20 +10:00
Patch502 : chromium-45.0.2454.101-system-icu-54-does-not-have-detectHostTimeZone.patch
2016-01-02 20:32:51 +03:00
# Patch to fix build with use_system_libvpx
# Chromium bug #541273
2016-01-22 11:33:10 +03:00
# fix build with icu other than 54
Patch504 : chromium-system-icu-r0.patch
2018-09-22 16:40:06 +03:00
2018-01-23 08:13:40 +03:00
# https://aur.archlinux.org/packages/chromium-vaapi/
2018-10-14 13:08:58 +03:00
# https://github.com/saiarcot895/chromium-ubuntu-build
2018-09-22 00:11:52 +03:00
Patch508 : chromium-vaapi-r20.patch
2018-08-13 15:03:08 +03:00
Patch509 : chromium-widevine-r2.patch
2018-01-23 08:13:40 +03:00
2017-08-09 15:04:16 +03:00
# ROSA Build
Patch600 : chromium-buildname-60.0.3112.90.patch
2017-11-02 05:09:14 +03:00
# Patch to fix build
Patch601 : chromium-62-include-cstdlib.patch
2018-01-06 00:13:37 +03:00
2018-05-28 14:04:45 +03:00
# https://github.com/RussianFedora/chromium/blob/fedora-stable/chromium-66.0.3359.81-system-clang.patch
Patch603 : chromium-66.0.3359.81-system-clang.patch
# http://ftp.riken.jp/Linux/gentoo/www-client/chromium/files/
2018-09-22 00:11:52 +03:00
Patch604 : chromium-compiler-r4.patch
Patch605 : chromium-ffmpeg-ebp-r1.patch
2018-08-13 15:03:08 +03:00
# https://chromium.googlesource.com/chromium/src/+/40a8d84a54ac47d3299194c5377aebd71714f1f0%5E%21/
Patch607 : chromium-67.0.3396.87-fix-build-llvm-ar.patch
2017-03-29 01:04:37 +03:00
2018-09-22 00:11:52 +03:00
# /usr/bin/ld.lld: error: undefined symbol: Cr_z_***
Patch626 : chromium-68.0.3440.106-linker-build-error.patch
# Add "ROSA" to the user agent string
Patch627 : chromium-68.0.3440.106-rosa-user-agent.patch
# Do not prefix libpng functions
Patch629 : chromium-60.0.3112.78-no-libpng-prefix.patch
# Fix errors build in 69
Patch631 : chromium-69.0.3497.100-build-error-in-clang6.patch
2018-10-14 01:55:18 +03:00
# From https://salsa.debian.org/chromium-team/chromium/tree/master/debian/patches
Patch710 : Debian-Fixes-gpu-timeout.patch
2018-10-14 13:07:16 +03:00
# https://build.opensuse.org/package/show/network:chromium/chromium
Patch720 : openSUSE-Compile-the-sandbox-with-fPIE-settings.patch
2018-10-14 01:55:18 +03:00
2015-06-22 21:51:15 +10:00
Provides : %{crname} = %{EVRD}
Conflicts : chromium-browser-unstable
Conflicts : chromium-browser-beta
Obsoletes : chromium-browser < 1:9.0.597.94
BuildRequires : bison
2018-04-24 14:28:44 +03:00
%if 0%{?clang}
BuildRequires : clang
BuildRequires : lld
BuildRequires : libcxx-devel
BuildRequires : libcxxabi-devel
%endif
2018-09-22 00:11:52 +03:00
# gn needs these
BuildRequires : libstdc++-static-devel
2016-11-17 23:12:20 +10:00
BuildRequires : flex
BuildRequires : git
BuildRequires : gperf
BuildRequires : gyp
BuildRequires : ninja
2017-04-22 14:06:55 +03:00
BuildRequires : nodejs >= 6.7.0
2016-11-17 23:12:20 +10:00
BuildRequires : util-linux
BuildRequires : yasm
BuildRequires : atomic-devel
2015-06-22 21:51:15 +10:00
BuildRequires : bzip2-devel
BuildRequires : cap-devel
BuildRequires : cups-devel
BuildRequires : elfutils-devel
2018-08-13 15:03:08 +03:00
BuildRequires : jpeg-devel
2018-05-28 14:04:45 +03:00
%if 0%{jsoncpp}
2016-11-17 23:12:20 +10:00
BuildRequires : jsoncpp-devel
2018-05-28 14:04:45 +03:00
%endif
2015-06-22 21:51:15 +10:00
BuildRequires : pam-devel
2016-11-17 23:12:20 +10:00
BuildRequires : snappy-devel
BuildRequires : speech-dispatcher-devel
2015-06-22 21:51:15 +10:00
BuildRequires : pkgconfig(alsa)
BuildRequires : pkgconfig(atk)
BuildRequires : pkgconfig(dbus-glib-1)
BuildRequires : pkgconfig(expat)
2016-02-09 13:16:15 +03:00
%if 0%{?ffmpeg}
2018-08-13 15:28:54 +03:00
BuildRequires : pkgconfig(libavcodec) >= 4.0.2
2016-02-09 13:16:15 +03:00
%endif
2015-06-22 21:51:15 +10:00
BuildRequires : pkgconfig(flac)
2016-01-02 20:32:51 +03:00
BuildRequires : pkgconfig(fontconfig)
2017-08-09 15:04:16 +03:00
BuildRequires : pkgconfig(freetype2)
2015-06-22 21:51:15 +10:00
BuildRequires : pkgconfig(gconf-2.0)
BuildRequires : pkgconfig(gl)
BuildRequires : pkgconfig(glib-2.0)
BuildRequires : pkgconfig(glu)
BuildRequires : pkgconfig(gnome-keyring-1)
BuildRequires : pkgconfig(gstreamer-plugins-base-1.0)
BuildRequires : pkgconfig(gtk+-2.0)
2016-03-08 19:51:23 +03:00
BuildRequires : pkgconfig(gtk+-3.0)
2017-07-21 15:01:06 +03:00
BuildRequires : pkgconfig(harfbuzz)
2016-03-08 19:43:38 +03:00
%if 0%{icu}
2016-01-02 20:32:51 +03:00
BuildRequires : pkgconfig(icu-i18n)
2016-03-08 19:43:38 +03:00
%endif
2015-06-22 21:51:15 +10:00
BuildRequires : pkgconfig(libexif)
BuildRequires : pkgconfig(libgcrypt)
BuildRequires : pkgconfig(libgpsd)
BuildRequires : pkgconfig(libmtp)
2016-11-17 23:12:20 +10:00
BuildRequires : pkgconfig(libopenjp2)
2015-06-22 21:51:15 +10:00
BuildRequires : pkgconfig(libpci)
2016-11-17 23:12:20 +10:00
BuildRequires : pkgconfig(libpng)
2015-06-22 21:51:15 +10:00
BuildRequires : pkgconfig(libpulse)
2016-11-17 23:12:20 +10:00
BuildRequires : pkgconfig(libtiff-4)
2015-06-22 21:51:15 +10:00
BuildRequires : pkgconfig(libusb-1.0)
2016-01-10 21:49:52 +03:00
BuildRequires : pkgconfig(libxml-2.0)
2016-01-02 22:13:07 +03:00
BuildRequires : pkgconfig(libxslt)
2016-03-08 19:46:48 +03:00
%if 0%{?libva}
2016-01-21 16:07:13 +03:00
BuildRequires : pkgconfig(libva)
2016-03-08 19:46:48 +03:00
%endif
2015-06-22 21:51:15 +10:00
BuildRequires : pkgconfig(minizip)
BuildRequires : pkgconfig(nspr)
BuildRequires : pkgconfig(nss)
BuildRequires : pkgconfig(opus)
BuildRequires : pkgconfig(speex)
BuildRequires : pkgconfig(udev)
BuildRequires : pkgconfig(xscrnsaver)
BuildRequires : pkgconfig(xt)
BuildRequires : pkgconfig(xtst)
BuildRequires : pkgconfig(zlib)
2018-10-14 02:07:43 +03:00
BuildRequires : pkgconfig(vpx)
2018-10-14 13:00:06 +03:00
BuildRequires : pkgconfig(krb5-gssapi)
2018-09-22 00:11:52 +03:00
BuildRequires : pythonegg(beautifulsoup4)
BuildRequires : pythonegg(html5lib)
2015-09-02 15:09:51 +03:00
2015-06-22 21:51:15 +10:00
Suggests : chromium-browser-pepper-flash
2016-11-19 02:30:47 +10:00
Conflicts : chromium-widevinecdm-plugin < 54
Obsoletes : chromium-widevinecdm-plugin < 54
2015-06-22 21:51:15 +10:00
Conflicts : chromium-browser-beta
Conflicts : chromium-browser-unstable
Obsoletes : chromium-browser < 1:9.0.597.94
Obsoletes : chromium-browser-pdf-plugin < 17.0.0.169
Provides : %{crname} = %{EVRD}
ExclusiveArch : %{ix86} x86_64 armv7l
2012-07-04 11:57:27 +04:00
%description
Chromium is a browser that combines a minimal design with sophisticated
technology to make the web faster, safer, and easier.
This is the stable channel Chromium browser. It offers a rock solid
browser which is updated with features and fixes once they have been
2018-04-24 14:28:44 +03:00
thoroughly tested.
2012-07-04 11:57:27 +04:00
Note: If you are reverting from unstable to stable or beta channel, you may
experience tab crashes on startup. This crash only affects tabs restored
during the first launch due to a change in how tab state is stored.
See http://bugs.chromium.org/34688. It's always a good idea to back up
your profile before changing channels.
2015-06-22 21:51:15 +10:00
%files
%config %{_sysconfdir} /%{crname}
%config %{_sysconfdir} /default/%{crname}
%{_bindir} /%{crname}
%{_crdir} /chromium-wrapper
%{_crdir} /chrome
%{_crdir} /chrome-sandbox
2016-03-08 19:43:38 +03:00
%{_crdir} /icudtl.dat
2015-06-22 21:51:15 +10:00
%{_crdir} /locales
2017-03-11 21:09:25 +03:00
%{_crdir} /*.pak
2015-06-22 21:51:15 +10:00
%{_crdir} /resources
%{_crdir} /themes
%{_crdir} /default_apps
2018-01-23 08:13:40 +03:00
%{_crdir} /swiftshader
2015-06-22 21:51:15 +10:00
%dir %{_crdir} /pepper
%{_datadir} /applications/*.desktop
%{_iconsdir} /hicolor/*/apps/chromium*
2017-07-29 03:30:57 +03:00
%post
2017-07-28 19:13:43 +03:00
# Remove chromium-browser-install package if we have it installed
if [ `rpm -q chromium-browser-install | wc -w` == 1 ]
then
rpm -e chromium-browser-install
fi
2015-06-22 21:51:15 +10:00
#----------------------------------------------------------------------------
2012-07-04 11:57:27 +04:00
%package -n chromium-browser
2015-06-22 21:51:15 +10:00
Summary : A fast web browser based on the Blink engine
Epoch : 1
Group : Networking/WWW
2018-09-22 00:11:52 +03:00
# No %%{EVRD}
2015-06-22 23:25:15 +10:00
Requires : %{name} = %{version} -%{release}
2012-07-04 11:57:27 +04:00
%description -n chromium-browser
Chromium is a browser that combines a minimal design with sophisticated
technology to make the web faster, safer, and easier.
This is a transition package that installs the stable channel Chromium
browser. If you prefer the dev channel browser, install the
chromium-browser-unstable package instead.
2015-06-22 21:51:15 +10:00
%files -n chromium-browser
#----------------------------------------------------------------------------
2013-01-25 15:10:50 +04:00
%package -n chromedriver
2015-06-22 21:51:15 +10:00
Summary : WebDriver for Google Chrome/Chromium
Group : Development/Other
2018-09-22 00:11:52 +03:00
# No %%{EVRD}
Requires : %{name} = %{version} -%{release}
2013-01-25 15:10:50 +04:00
%description -n chromedriver
WebDriver is an open source tool for automated testing of webapps across many
browsers. It provides capabilities for navigating to web pages, user input,
JavaScript execution, and more. ChromeDriver is a standalone server which
implements WebDriver's wire protocol for Chromium. It is being developed by
members of the Chromium and WebDriver teams.
2012-07-24 13:18:14 +04:00
2015-06-22 21:51:15 +10:00
%files -n chromedriver
%doc LICENSE AUTHORS
%{_bindir} /chromedriver
%{_crdir} /chromedriver
#----------------------------------------------------------------------------
2012-07-04 11:57:27 +04:00
%prep
2016-11-17 23:12:20 +10:00
%setup -qn chromium-%{version} -a 997 -a 999
2015-12-11 11:28:48 +03:00
2012-07-24 16:01:58 +04:00
%patch4 -p1 -b .prefs
2016-11-17 23:12:20 +10:00
%patch22 -p1
2018-08-13 15:03:08 +03:00
%if 0%{jsoncpp}
2016-11-17 23:12:20 +10:00
%patch28 -p1
2018-08-13 15:03:08 +03:00
%endif
2016-11-17 23:12:20 +10:00
%patch30 -p1
2016-12-06 19:54:52 +03:00
%patch32 -p1
%if 0%{?ffmpeg}
%patch35 -p1
%endif
2017-07-21 15:01:06 +03:00
%patch36 -p1
2017-09-19 14:51:35 +03:00
%patch47 -p1
2016-11-18 21:58:26 +10:00
2015-09-07 09:49:47 +03:00
# new from debian
2015-09-07 10:22:47 +03:00
%patch500 -p1
2017-01-31 10:51:58 +03:00
%patch501 -p1
2015-09-07 09:49:47 +03:00
2016-03-08 19:43:38 +03:00
%if 0%{icu}
2016-01-29 18:38:34 +03:00
%patch502 -p1 -b .system-icu
%patch504 -p0 -b .icu-ver
2016-03-08 19:43:38 +03:00
%endif
2016-03-08 19:46:48 +03:00
%if 0%{?libva}
2018-05-28 14:04:45 +03:00
%patch508 -p1 -b .vaapi
2016-03-08 19:46:48 +03:00
%endif
2018-04-24 14:28:44 +03:00
%patch509 -p1
2016-03-08 19:46:48 +03:00
2017-03-29 01:04:37 +03:00
%patch600 -p1
2017-09-19 14:51:35 +03:00
%patch601 -p1
2018-04-24 14:28:44 +03:00
%patch603 -p1
2018-05-28 14:04:45 +03:00
%patch604 -p1
%patch605 -p1
2018-04-24 14:28:44 +03:00
2018-08-13 15:03:08 +03:00
%patch607 -p1
2018-09-22 00:11:52 +03:00
%patch626 -p1
%patch627 -p1
%patch629 -p1
%patch631 -p1 -b .clang6
2018-10-14 01:55:18 +03:00
%patch710 -p1
2018-10-14 13:07:16 +03:00
%patch720 -p1
2018-10-14 01:55:18 +03:00
2018-04-24 14:28:44 +03:00
mkdir -p third_party/llvm-build/Release+Asserts/bin
pushd third_party/llvm-build/Release+Asserts/bin
2018-05-28 14:04:45 +03:00
ln -sf /usr/bin/clang clang
ln -sf /usr/bin/clang++ clang++
2018-04-24 14:28:44 +03:00
popd
2017-03-29 01:04:37 +03:00
2018-09-22 00:11:52 +03:00
# Remove most of the bundled libraries. Libraries specified below (taken from
# Gentoo's Chromium ebuild) are the libraries that needs to be preserved.
build/linux/unbundle/remove_bundled_libraries.py \
'buildtools/third_party/libc++' \
'buildtools/third_party/libc++abi' \
'base/third_party/dmg_fp' \
'base/third_party/dynamic_annotations' \
'base/third_party/icu' \
'base/third_party/libevent' \
'base/third_party/nspr' \
'base/third_party/superfasthash' \
'base/third_party/symbolize' \
'base/third_party/valgrind' \
'base/third_party/xdg_mime' \
'base/third_party/xdg_user_dirs' \
'chrome/third_party/mozilla_security_manager' \
'courgette/third_party' \
'net/third_party/http2' \
'net/third_party/mozilla_security_manager' \
'net/third_party/nss' \
'net/third_party/quic' \
'net/third_party/spdy' \
'third_party/WebKit' \
'third_party/abseil-cpp' \
'third_party/adobe' \
'third_party/analytics' \
'third_party/angle' \
'third_party/angle/src/common/third_party/base' \
'third_party/angle/src/common/third_party/smhasher' \
'third_party/angle/src/third_party/compiler' \
'third_party/angle/src/third_party/libXNVCtrl' \
'third_party/angle/src/third_party/trace_event' \
'third_party/angle/third_party/glslang' \
'third_party/angle/third_party/spirv-headers' \
'third_party/angle/third_party/spirv-tools' \
'third_party/angle/third_party/vulkan-headers' \
'third_party/angle/third_party/vulkan-loader' \
'third_party/angle/third_party/vulkan-tools' \
'third_party/angle/third_party/vulkan-validation-layers' \
'third_party/apple_apsl' \
'third_party/blanketjs' \
'third_party/blink' \
'third_party/boringssl' \
'third_party/boringssl/src/third_party/fiat' \
'third_party/breakpad' \
'third_party/breakpad/breakpad/src/third_party/curl' \
'third_party/brotli' \
'third_party/cacheinvalidation' \
'third_party/catapult' \
'third_party/catapult/common/py_vulcanize/third_party/rcssmin' \
'third_party/catapult/common/py_vulcanize/third_party/rjsmin' \
'third_party/catapult/third_party/beautifulsoup4' \
'third_party/catapult/third_party/html5lib-python' \
'third_party/catapult/third_party/polymer' \
'third_party/catapult/third_party/six' \
'third_party/catapult/tracing/third_party/d3' \
'third_party/catapult/tracing/third_party/gl-matrix' \
'third_party/catapult/tracing/third_party/jszip' \
'third_party/catapult/tracing/third_party/mannwhitneyu' \
'third_party/catapult/tracing/third_party/oboe' \
'third_party/catapult/tracing/third_party/pako' \
'third_party/ced' \
'third_party/cld_3' \
'third_party/crashpad' \
'third_party/crc32c' \
'third_party/cros_system_api' \
'third_party/devscripts' \
'third_party/dom_distiller_js' \
'third_party/expat' \
'third_party/ffmpeg' \
'third_party/fips181' \
'third_party/flac' \
'third_party/flatbuffers' \
'third_party/flot' \
'third_party/fontconfig' \
'third_party/freetype' \
'third_party/glslang-angle' \
'third_party/google_input_tools' \
'third_party/google_input_tools/third_party/closure_library' \
'third_party/google_input_tools/third_party/closure_library/third_party/closure' \
'third_party/googletest' \
'third_party/harfbuzz-ng' \
'third_party/hunspell' \
'third_party/iccjpeg' \
'third_party/icu' \
'third_party/inspector_protocol' \
'third_party/jinja2' \
'third_party/jstemplate' \
'third_party/khronos' \
'third_party/libXNVCtrl' \
'third_party/libaddressinput' \
'third_party/libaom' \
'third_party/libdrm' \
'third_party/libjingle' \
'third_party/libjpeg_turbo' \
'third_party/libphonenumber' \
'third_party/libpng' \
'third_party/libsecret' \
'third_party/libsrtp' \
'third_party/libsync' \
'third_party/libudev' \
'third_party/libusb' \
'third_party/libvpx' \
'third_party/libvpx/source/libvpx/third_party/x86inc' \
'third_party/libxml' \
'third_party/libxml/chromium' \
'third_party/libxslt' \
'third_party/libwebm' \
'third_party/libwebp' \
'third_party/libyuv' \
'third_party/llvm-build' \
'third_party/lss' \
'third_party/lzma_sdk' \
'third_party/markupsafe' \
'third_party/mesa' \
'third_party/metrics_proto' \
'third_party/modp_b64' \
'third_party/node' \
'third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2' \
'third_party/openh264' \
'third_party/openmax_dl' \
'third_party/opus' \
'third_party/ots' \
'third_party/pdfium' \
'third_party/pdfium/third_party/agg23' \
'third_party/pdfium/third_party/base' \
'third_party/pdfium/third_party/bigint' \
'third_party/pdfium/third_party/freetype' \
'third_party/pdfium/third_party/lcms' \
'third_party/pdfium/third_party/libopenjpeg20' \
'third_party/pdfium/third_party/libpng16' \
'third_party/pdfium/third_party/libtiff' \
'third_party/pdfium/third_party/skia_shared' \
'third_party/perfetto' \
'third_party/ply' \
'third_party/polymer' \
'third_party/protobuf' \
'third_party/protobuf/third_party/six' \
'third_party/pyjson5' \
'third_party/qcms' \
'third_party/qunit' \
'third_party/re2' \
'third_party/rnnoise' \
'third_party/s2cellid' \
'third_party/sfntly' \
'third_party/simplejson' \
'third_party/sinonjs' \
'third_party/skia' \
'third_party/skia/third_party/gif' \
'third_party/skia/third_party/skcms' \
'third_party/skia/third_party/vulkan' \
'third_party/smhasher' \
'third_party/snappy' \
'third_party/speech-dispatcher' \
'third_party/spirv-headers' \
'third_party/spirv-tools-angle' \
'third_party/sqlite' \
'third_party/swiftshader' \
'third_party/swiftshader/third_party/subzero' \
'third_party/swiftshader/third_party/LLVM' \
'third_party/swiftshader/third_party/llvm-subzero' \
'third_party/tcmalloc' \
'third_party/test_fonts' \
'third_party/unrar' \
'third_party/usb_ids' \
'third_party/usrsctp' \
'third_party/vulkan' \
'third_party/vulkan-validation-layers' \
'third_party/web-animations-js' \
'third_party/webdriver' \
'third_party/webrtc' \
'third_party/widevine' \
'third_party/woff2' \
'third_party/xdg-utils' \
'third_party/yasm' \
'tools/gn/base/third_party/icu' \
'url/third_party/mozilla' \
'v8/src/third_party/utf8-decoder' \
'v8/src/third_party/valgrind' \
'v8/third_party/antlr4' \
'v8/third_party/inspector_protocol' \
--do-remove
2016-11-17 23:12:20 +10:00
# Remove bundled ICU; its header files appear to get picked up instead of
# the system ones, leading to errors during the final link stage.
# https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/BNGvJc08B6Q
#find third_party/icu -type f \! -regex '.*\.\(gn\|gni\|isolate\)' -delete
2016-01-02 20:32:51 +03:00
2012-07-04 11:57:27 +04:00
# Hard code extra version
2015-10-22 13:02:58 +03:00
FILE=chrome/common/channel_info_posix.cc
2012-07-04 11:57:27 +04:00
sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"%{product_vendor} %{product_version}"/' $FILE
cmp $FILE $FILE.orig && exit 1
2017-04-22 13:40:30 +03:00
# setup node
mkdir -p third_party/node/linux/node-linux-x64/bin
ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/node
2012-07-04 11:57:27 +04:00
%build
2018-10-14 01:55:18 +03:00
%define system_gn_list ffmpeg flac libxslt snappy yasm libpng libdrm fontconfig freetype harfbuzz-ng libvpx
2017-03-11 21:09:25 +03:00
# opus
2016-11-17 23:12:20 +10:00
# icu
# libevent
# libwebp
2016-12-07 13:54:53 +10:00
# System libxml must be built with icu support to be used in Chromium
# libxml
2018-05-28 14:04:45 +03:00
# jsoncpp
2016-11-17 23:12:20 +10:00
2016-11-19 13:14:12 +10:00
%define use_gold true
2018-09-22 16:40:06 +03:00
%if 0%{clang}
2018-04-24 14:28:44 +03:00
%define is_clang true
%else
%define is_clang false
%endif
2018-08-13 15:03:08 +03:00
# widevinecdmadapter
2018-09-26 00:21:20 +03:00
# Build error with widevinecdmadapter in 67.0.3396.62 (fixed)
2018-08-13 15:03:08 +03:00
%define widevine 1
2018-09-22 16:40:06 +03:00
%if 0%{widevine}
2018-08-13 15:03:08 +03:00
%define is_widevine true
%else
%define is_widevine false
%endif
%define lld 1
2018-09-22 16:40:06 +03:00
%if 0%{lld}
2018-08-13 15:03:08 +03:00
%define is_lld true
%else
%define is_lld false
%endif
2018-09-26 00:21:20 +03:00
# jumbo https://chromium.googlesource.com/chromium/src/+/master/docs/jumbo.md
# (Alzim) 1 - localhost, 0 - ABF build
2018-09-27 01:06:31 +03:00
%define localhost 0
2018-09-26 00:21:20 +03:00
%if 0%{localhost}
%define is_limit 75
2018-09-22 16:40:06 +03:00
%else
2018-09-27 01:06:31 +03:00
%define is_limit 10
2018-09-26 00:21:20 +03:00
%endif
%if 0%{?libva}
%define is_vaapi true
%else
%define is_vaapi false
2018-09-22 16:40:06 +03:00
%endif
2016-11-17 23:12:20 +10:00
# v NO TABS IN HERE!
2018-05-28 14:04:45 +03:00
%define gn_config use_sysroot=false \
2016-11-17 23:12:20 +10:00
system_libdir=" % { _ l i b } " \
icu_use_data_file=true \
enable_nacl=false \
is_nacl_glibc=false \
binutils_path=" %{_bindir} " \
linux_use_bundled_binutils=false \
2016-11-19 13:14:12 +10:00
use_gold=%{use_gold} \
2016-11-17 23:12:20 +10:00
custom_toolchain=" %{_sourcedir} : d e f a u l t " \
proprietary_codecs=true \
enable_ac3_eac3_audio_demuxing=true \
enable_mse_mpeg2ts_stream_parser=true \
enable_hevc_demuxing=true \
2018-08-10 18:30:29 +03:00
use_system_libjpeg=true \
2016-11-17 23:12:20 +10:00
use_libjpeg_turbo=false \
2018-08-13 15:03:08 +03:00
enable_widevine=%{is_widevine} \
2016-11-17 23:12:20 +10:00
pdf_enable_xfa=true \
use_pulseaudio=true \
2018-10-14 13:00:06 +03:00
use_kerberos=true \
2016-11-17 23:12:20 +10:00
use_allocator=" n o n e " \
treat_warnings_as_errors=false \
fatal_linker_warnings=false \
2016-11-19 02:16:30 +10:00
use_aura=true \
2018-10-14 13:00:06 +03:00
use_libpci=true \
2016-11-17 23:12:20 +10:00
is_debug=false \
2018-04-24 14:28:44 +03:00
is_clang=%{is_clang} \
clang_use_chrome_plugins=false \
2018-05-28 14:04:45 +03:00
clang_base_path=" / u s r " \
2018-10-14 13:00:06 +03:00
use_jumbo_build=true \
2018-09-26 00:21:20 +03:00
jumbo_file_merge_limit = %{is_limit} \
2018-08-13 15:03:08 +03:00
use_lld=%{is_lld} \
2018-01-06 00:13:37 +03:00
use_system_freetype=true \
use_system_harfbuzz=true \
2018-02-22 01:25:01 +03:00
use_system_libpng=true \
2018-10-14 01:55:18 +03:00
use_system_zlib=false \
2018-09-26 00:21:20 +03:00
use_vaapi=%{is_vaapi} \
2018-05-28 14:04:45 +03:00
v8_use_external_startup_data=false \
2016-11-17 23:12:20 +10:00
google_api_key=" %{google_api_key} " \
google_default_client_id=" %{google_default_client_id} " \
google_default_client_secret=" %{google_default_client_secret} "
build/linux/unbundle/replace_gn_files.py --system-libraries %{system_gn_list}
third_party/libaddressinput/chromium/tools/update-strings.py
2018-04-24 14:28:44 +03:00
%if 0%{?clang}
export CC=clang
2018-05-28 14:04:45 +03:00
export CXX=clang++
2018-04-24 14:28:44 +03:00
export AR=ar
export NM=nm
2018-09-22 00:11:52 +03:00
# flags to fix i586 builds
export LDFLAGS=" $ L D F L A G S - W l , - z , n o t e x t "
2018-04-24 14:28:44 +03:00
%else
2016-11-17 23:12:20 +10:00
%setup _compile_flags
CC=%{__cc} ; export CC
CXX=%{__cxx} ; export CXX
AR=%{__ar} ; export AR
NM=%{__nm} ; export NM
LD=%{__cxx} ; export LD
# filter out some flags to fix i586 builds
CFLAGS=$(echo " $ C F L A G S " |sed -e 's/-gdwarf-4//' -e 's/-fvar-tracking-assignments//' -e 's/-frecord-gcc-switches//' )
CXXFLAGS=$(echo " $ C X X F L A G S " |sed -e 's/-gdwarf-4//' -e 's/-fvar-tracking-assignments//' -e 's/-frecord-gcc-switches//' )
2017-11-02 05:09:14 +03:00
CFLAGS=" $ C F L A G S - W n o - e r r o r = p o i n t e r - t o - i n t - c a s t - W n o - e r r o r = i n t - t o - p o i n t e r - c a s t "
2018-09-22 00:11:52 +03:00
CXXFLAGS=" $ C X X F L A G S - W n o - e r r o r = a t t r i b u t e s - W n o - e r r o r = c o m m e n t - W n o - e r r o r = u n u s e d - v a r i a b l e - W n o - e r r o r = s t r i c t - o v e r f l o w - W n o - e r r o r = d e p r e c a t e d - d e c l a r a t i o n s "
2018-04-24 14:28:44 +03:00
%endif
2017-11-02 05:09:14 +03:00
2016-11-17 23:12:20 +10:00
python tools/gn/bootstrap/bootstrap.py --gn-gen-args='%{gn_config}'
out/Release/gn gen --args='%{gn_config}' out/Release
pushd out/Release
2018-08-13 15:03:08 +03:00
# widevinecdmadapter
# Build error with widevinecdmadapter in 67.0.3396.62
ninja %{_smp_mflags} chrome chrome_sandbox chromedriver
2016-11-17 23:12:20 +10:00
popd
2012-07-04 11:57:27 +04:00
%install
mkdir -p %{buildroot} %{_bindir}
mkdir -p %{buildroot} %{_crdir} /locales
mkdir -p %{buildroot} %{_crdir} /themes
mkdir -p %{buildroot} %{_crdir} /default_apps
2016-12-06 19:54:52 +03:00
install -m 755 %{SOURCE1} %{buildroot} %{_crdir} /chromium-wrapper
2012-07-04 11:57:27 +04:00
install -m 755 out/Release/chrome %{buildroot} %{_crdir} /
install -m 4755 out/Release/chrome_sandbox %{buildroot} %{_crdir} /chrome-sandbox
2013-01-25 15:10:50 +04:00
cp -a out/Release/chromedriver %{buildroot} %{_crdir} /chromedriver
2014-04-10 12:38:43 +04:00
install -m 644 out/Release/*.pak %{buildroot} %{_crdir} /
2016-03-08 19:43:38 +03:00
install -m 644 out/Release/icudtl.dat %{buildroot} %{_crdir} /
2015-02-09 22:50:26 +03:00
2012-07-04 11:57:27 +04:00
install -m 644 out/Release/locales/*.pak %{buildroot} %{_crdir} /locales/
install -m 644 out/Release/resources.pak %{buildroot} %{_crdir} /
install -m 644 chrome/browser/resources/default_apps/* %{buildroot} %{_crdir} /default_apps/
ln -s %{_crdir} /chromium-wrapper %{buildroot} %{_bindir} /%{crname}
2014-05-14 17:35:50 +04:00
sed -i " s ! @ L I B D I R @ ! %{_libdir} ! g " %{buildroot} %{_crdir} /chromium-wrapper
2013-01-25 15:10:50 +04:00
ln -s %{_crdir} /chromedriver %{buildroot} %{_bindir} /chromedriver
2012-07-04 11:57:27 +04:00
2018-01-23 08:13:40 +03:00
cp -r out/Release/swiftshader %{buildroot} %{_crdir}
2014-05-14 17:35:50 +04:00
# create global config file
mkdir -p %{buildroot} %{_sysconfdir} /default
install -m644 %{SOURCE32} %{buildroot} %{_sysconfdir} /default/%{crname}
# create pepper dir. talkplugin works fine only if sylinks in pepper
mkdir -p %{buildroot} %{_crdir} /pepper
2012-07-04 11:57:27 +04:00
find out/Release/resources/ -name " * . d " -exec rm {} \;
cp -r out/Release/resources %{buildroot} %{_crdir}
# desktop file
mkdir -p %{buildroot} %{_datadir} /applications
2017-01-16 16:04:48 +03:00
install -m 644 %{SOURCE2} %{buildroot} %{_datadir} /applications/
2012-07-04 11:57:27 +04:00
# icon
2014-05-29 12:59:28 +04:00
mkdir -p %{buildroot} %{_iconsdir} /hicolor/
tar xjf %{SOURCE100} -C %{buildroot} %{_iconsdir} /hicolor/
2012-07-04 11:57:27 +04:00
2012-07-24 16:01:58 +04:00
mkdir -p %{buildroot} %{_sysconfdir} /%{crname}
install -m 0644 %{SOURCE30} %{buildroot} %{_sysconfdir} /%{crname} /
install -m 0644 %{SOURCE31} %{buildroot} %{_sysconfdir} /%{crname} /
2012-10-23 15:04:10 +04:00
find %{buildroot} -name " * . n e x e " -exec strip {} \;