chromium-browser-stable-test/chromium-browser-stable.spec

453 lines
14 KiB
RPMSpec
Raw Normal View History

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
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
2015-09-16 12:45:13 +03:00
%define clang 0
2015-06-22 21:51:15 +10:00
Summary: A fast web browser based on the Blink engine
Name: chromium-browser-stable
2016-01-14 10:33:01 +03:00
Version: 47.0.2526.111
Release: 1
2015-06-22 21:51:15 +10:00
License: BSD, LGPL
Group: Networking/WWW
Source0: https://commondatastorage.googleapis.com/chromium-browser-official/chromium-%{version}.tar.xz
Source1: chromium-wrapper
Source2: chromium-browser.desktop
Source30: master_preferences
Source31: default_bookmarks.html
Source32: chromium.default
Source100: icons.tar.bz2
Source997: depot_tools.tar.xz
Source998: gn-binaries.tar.xz
Source999: new-system-icons.tar.xz
Source1000: README.urpmi
Patch4: chromium-30.0.1599.66-master-prefs-path.patch
2015-02-09 22:38:31 +03:00
# PATCH-FIX-UPSTREAM Add more charset aliases
2015-06-22 21:51:15 +10:00
Patch6: chromium-more-codec-aliases.patch
2015-02-09 22:38:31 +03:00
# PATCH-FIX-OPENSUSE Adjust ldflags for better building
2015-06-22 21:51:15 +10:00
Patch8: adjust-ldflags-no-keep-memory.patch
2013-03-25 01:01:57 +04:00
# PATCH-FIX-OPENSUSE Compile the sandbox with -fPIE settings
2015-06-22 21:51:15 +10:00
Patch15: chromium-25.0.1364.172-sandbox-pie.patch
2013-03-25 01:01:57 +04:00
2015-09-07 11:03:24 +03:00
Patch20: chromium-gcc4.7.patch
# archlinux arm enhancement patches
2015-06-22 21:51:15 +10:00
Patch100: arm-webrtc-fix.patch
Patch101: chromium-arm-r0.patch
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-01-03 02:49:28 +03: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
Patch600: unbundle-libvpx_new-fix.patch
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
2016-01-02 21:05:41 +03:00
BuildRequires: %{_lib}jsoncpp-devel
2015-06-22 21:51:15 +10:00
BuildRequires: bison
BuildRequires: bzip2-devel
BuildRequires: cap-devel
BuildRequires: cups-devel
BuildRequires: elfutils-devel
2016-01-02 20:32:51 +03:00
BuildRequires: flex
BuildRequires: gperf
BuildRequires: gyp
2015-06-22 21:51:15 +10:00
BuildRequires: jpeg-devel
2016-01-02 20:32:51 +03:00
BuildRequires: ninja
2015-06-22 21:51:15 +10:00
BuildRequires: pam-devel
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(atk)
BuildRequires: pkgconfig(dbus-glib-1)
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(flac)
2016-01-02 20:32:51 +03:00
BuildRequires: pkgconfig(fontconfig)
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)
BuildRequires: pkgconfig(harfbuzz)
2016-01-02 20:32:51 +03:00
BuildRequires: pkgconfig(icu-i18n)
2015-06-22 21:51:15 +10:00
BuildRequires: pkgconfig(libevent)
BuildRequires: pkgconfig(libexif)
BuildRequires: pkgconfig(libgcrypt)
BuildRequires: pkgconfig(libgpsd)
BuildRequires: pkgconfig(libmtp)
BuildRequires: pkgconfig(libpci)
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(libusb-1.0)
BuildRequires: pkgconfig(libwebp)
BuildRequires: pkgconfig(libxml-2.0)
2016-01-02 22:13:07 +03:00
BuildRequires: pkgconfig(libxslt)
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(vpx) >= 1.5.0
2015-06-22 21:51:15 +10:00
BuildRequires: pkgconfig(xscrnsaver)
BuildRequires: pkgconfig(xt)
BuildRequires: pkgconfig(xtst)
BuildRequires: pkgconfig(zlib)
2016-01-02 20:32:51 +03:00
BuildRequires: speech-dispatcher-devel
BuildRequires: util-linux
BuildRequires: yasm
2015-06-22 21:51:15 +10:00
2015-09-02 15:09:51 +03:00
%if 0%{?clang}
BuildRequires: clang
%endif
2015-06-22 21:51:15 +10:00
Suggests: chromium-browser-pepper-flash
Suggests: chromium-widevinecdm-plugin
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
thoroughly tested. If you want the latest features, install the
chromium-browser-unstable package instead.
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-01-02 20:32:51 +03:00
#%{_crdir}/icudtl.dat
2015-06-22 21:51:15 +10:00
%{_crdir}/locales
%{_crdir}/lib
%{_crdir}/resources.pak
%{_crdir}/resources
%{_crdir}/chrome_*_percent.pak
%{_crdir}/content_resources.pak
%{_crdir}/keyboard_resources.pak
%{_crdir}/*_blob.bin
%{_crdir}/themes
%{_crdir}/default_apps
%dir %{_crdir}/pepper
%{_mandir}/man1/%{crname}*
%{_datadir}/applications/*.desktop
%{_iconsdir}/hicolor/*/apps/chromium*
%{_docdir}/%{name}/README.urpmi
#----------------------------------------------------------------------------
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
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
#----------------------------------------------------------------------------
%package -n chromedriver
2015-06-22 21:51:15 +10:00
Summary: WebDriver for Google Chrome/Chromium
Group: Development/Other
Requires: %{name} = %{version}-%{release}
%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
2015-06-22 21:51:15 +10:00
%setup -qn chromium-%{version} -a 998 -a 997 -a 999
2015-12-11 11:28:48 +03:00
2016-01-02 20:32:51 +03:00
# files we do not want from upstream source bundles
rm -rf breakpad/src/processor/testdata/
rm -rf chrome/app/test_data/dlls/
rm -rf chrome/common/extensions/docs/
#rm -rf chrome/test/data/
rm -rf chrome/tools/test/reference_build/chrome_linux/
rm -rf components/test/data/component_updater/jebgalgnebhfojomionfpkfelancnnkf/component1.dll
rm -rf content/test/data/
rm -rf net/data/
rm -rf ppapi/examples/
rm -rf ppapi/native_client/tests/
rm -rf third_party/apache-win32/
2015-12-11 11:28:48 +03:00
rm -rf third_party/binutils/
2016-01-02 20:32:51 +03:00
rm -rf third_party/expat/files/
rm -rf third_party/flac/include
rm -rf third_party/flac/src
rm -rf third_party/lcov
rm -rf third_party/libevent/*/*
rm -rf third_party/libevent/*.[ch]
rm -rf libexif/sources
rm -rf libjpeg/*.[ch]
rm -rf libjpeg_turbo
rm -rf libpng/*.[ch]
rm -rf libxslt/libexslt
rm -rf libxslt/libxslt
rm -rf libxslt/linux
rm -rf libxslt/mac
rm -rf libxslt/win32
rm -rf mesa/src/src
rm -rf swig
rm -rf third_party/WebKit/LayoutTests/
rm -rf third_party/WebKit/Tools/Scripts/
rm -rf third_party/xdg-utils/tests/
rm -rf third_party/yasm/source/
rm -rf tools/gyp/test/
rm -rf v8/test/
# 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 '.*\.\(gyp\|gypi\|isolate\)' -delete
2015-12-11 11:28:48 +03:00
2012-07-24 16:01:58 +04:00
%patch4 -p1 -b .prefs
2012-07-04 11:57:27 +04:00
2015-02-09 22:38:31 +03:00
%patch6 -p0
2015-04-15 16:04:07 +03:00
%patch8 -p1
2015-05-21 17:51:32 +03:00
#patch14 -p1
2013-03-25 01:01:57 +04:00
%patch15 -p1
2015-09-16 13:00:34 +03:00
#patch20 -p2
2015-09-07 11:03:24 +03:00
# archlinux arm enhancements
%patch100 -p0
%patch101 -p0
2015-09-07 09:49:47 +03:00
# new from debian
2015-09-07 10:22:47 +03:00
%patch500 -p1
%patch501 -p2
2015-09-07 09:49:47 +03:00
2016-01-03 02:49:28 +03:00
%patch502 -p1 -b .system-icu
#patch600 -p1
2016-01-02 20:32:51 +03:00
### build with widevine support
# Patch from crbug (chromium bugtracker)
# fix the missing define (if not, fail build) (need upstream fix) (https://crbug.com/473866)
sed '14i#define WIDEVINE_CDM_VERSION_STRING "Something fresh"' -i "third_party/widevine/cdm/stub/widevine_cdm_version.h"
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
%build
2015-10-22 13:02:58 +03:00
# https://groups.google.com/a/chromium.org/forum/#!topic/chromium-packagers/9JX1N2nf4PU
touch chrome/test/data/webui/i18n_process_css_test.html
touch chrome/test/data/webui_test_resources.grd
buildconfig+="-Dwerror=
-Dlinux_sandbox_chrome_path=%{_libdir}/%{name}/chrome
2015-06-22 21:51:15 +10:00
-Duse_system_ffmpeg=0
-Dbuild_ffmpegsumo=1
-Dproprietary_codecs=1
-Dremove_webcore_debug_symbols=1
-Dlogging_like_official_build=1
-Dlinux_fpic=1
-Ddisable_sse2=1
-Dcomponent=shared_library
-Dtoolkit_uses_gtk=0
-Dffmpeg_branding=Chrome
-Ddisable_nacl=1
-Ddisable_glibc=0
-Ddisable_pnacl=1
-Ddisable_newlib_untar=0
-Duse_system_xdg_utils=1
2015-06-19 00:38:51 +02:00
-Denable_hotwording=0
2016-01-02 20:32:51 +03:00
-Denable_widevine=1
-Denable_hidpi=1
-Denable_touch_ui=1
-Duse_gnome_keyring=1
-Duse_gconf=0
-Duse_sysroot=0
2015-09-16 19:44:03 +03:00
-Duse_aura=1"
2015-09-02 15:09:51 +03:00
%if 0%{?clang}
buildconfig+="-Dclang=1
-Dclang_use_chrome_plugins=0"
2015-09-02 15:09:51 +03:00
%else
buildconfig+=" -Dclang=0"
%endif
%if 0%{?chromium_system_libs}
2016-01-02 22:44:45 +03:00
buildconfig+=" -Duse_system_icu=1
-Duse_system_flac=1
2015-06-22 21:51:15 +10:00
-Duse_system_speex=1
2016-01-02 20:32:51 +03:00
-Duse_system_fontconfig=1
-Duse_system_jsoncpp=1
-Duse_system_expat=1
2015-06-22 21:51:15 +10:00
-Duse_system_libexif=1
-Duse_system_libevent=1
-Duse_system_libmtp=1
-Duse_system_opus=1
-Duse_system_bzip2=1
-Duse_system_harfbuzz=1
-Duse_system_libjpeg=1
-Duse_system_libpng=1
-Duse_system_libxslt=1
-Duse_system_libxml=0
2015-06-22 21:51:15 +10:00
-Duse_system_libyuv=1
-Duse_system_nspr=1
2016-01-02 20:32:51 +03:00
-Duse_system_protobuf=0
-Duse_system_zlib=1
-Duse_system_libvpx=0
2015-06-22 21:51:15 +10:00
-Duse_system_yasm=1"
%else
buildconfig+=" -Duse_system_flac=0
2015-06-22 21:51:15 +10:00
-Duse_system_speex=0
-Duse_system_libexif=0
-Duse_system_libevent=0
-Duse_system_libmtp=0
-Duse_system_opus=0
-Duse_system_bzip2=0
-Duse_system_harfbuzz=0
-Duse_system_libjpeg=0
-Duse_system_libpng=0
-Duse_system_libxslt=0
-Duse_system_libxml=0
-Duse_system_libyuv=0
-Duse_system_nspr=0
-Duse_system_protobuf=0
-Duse_system_yasm=0"
%endif
2014-11-20 18:47:51 +03:00
%ifarch x86_64
buildconfig+=" -Dsystem_libdir=lib64
-Dtarget_arch=x64"
2012-07-04 11:57:27 +04:00
%endif
2016-01-02 22:44:45 +03:00
buildconfig+=" -Dicu_use_data_file_flag=0
2015-06-22 21:51:15 +10:00
-Duse_pulseaudio=1
-Dlinux_link_libpci=1
-Dlinux_link_gnome_keyring=1
-Dlinux_link_gsettings=1
-Dlinux_link_libgps=1
-Dlinux_link_libspeechd=1
2015-06-22 21:51:15 +10:00
-Djavascript_engine=v8
-Dlinux_use_gold_binary=0
-Dlinux_use_gold_flags=0
-Dgoogle_api_key=AIzaSyD1hTe85_a14kr1Ks8T3Ce75rvbR1_Dx7Q
-Dgoogle_default_client_id=4139804441.apps.googleusercontent.com
-Dgoogle_default_client_secret=KDTRKEZk2jwT_7CDpcmMA--P"
2015-09-02 15:09:51 +03:00
%if 0%{?clang}
export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
# Modern Clang produces a *lot* of warnings
export CXXFLAGS="${CXXFLAGS} -Wno-unknown-warning-option -Wno-unused-local-typedef -Wunknown-attributes -Wno-tautological-undefined-compare"
2015-09-16 19:44:03 +03:00
#export GYP_DEFINES="clang=1 enable_hidpi=1 enable_touch_ui=1 enable_hotwording=0"
2015-09-02 15:09:51 +03:00
%else
2015-09-16 19:44:03 +03:00
#export GYP_DEFINES="enable_hidpi=1 enable_touch_ui=1 enable_hotwording=0"
2015-09-02 15:09:51 +03:00
%endif
build/linux/unbundle/replace_gyp_files.py $buildconfig
export GYP_GENERATORS='ninja'
./build/gyp_chromium build/all.gyp --depth=. $buildconfig
mkdir -p out/Release
2012-07-04 11:57:27 +04:00
2015-09-16 19:44:03 +03:00
ninja -C out/Release chrome chrome_sandbox chromedriver
#ninja -C out/Release chrome chrome_sandbox chromedriver widevinecdmadapter clearkeycdm
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
mkdir -p %{buildroot}%{_mandir}/man1
install -m 755 %{_src}/chromium-wrapper %{buildroot}%{_crdir}/
install -m 755 out/Release/chrome %{buildroot}%{_crdir}/
install -m 4755 out/Release/chrome_sandbox %{buildroot}%{_crdir}/chrome-sandbox
cp -a out/Release/chromedriver %{buildroot}%{_crdir}/chromedriver
2012-07-04 11:57:27 +04:00
install -m 644 out/Release/chrome.1 %{buildroot}%{_mandir}/man1/%{crname}.1
2014-04-10 12:38:43 +04:00
install -m 644 out/Release/*.pak %{buildroot}%{_crdir}/
2016-01-02 20:32:51 +03:00
#install -m 644 out/Release/icudtl.dat %{buildroot}%{_crdir}/
2015-03-08 03:05:03 +03:00
cp -a out/Release/*_blob.bin %{buildroot}%{_crdir}/
# chromium components
mkdir -p %{buildroot}%{_crdir}/lib/
cp -av out/Release/lib/*.so %{buildroot}%{_crdir}/lib/
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}
sed -i "s!@LIBDIR@!%{_libdir}!g" %{buildroot}%{_crdir}/chromium-wrapper
ln -s %{_crdir}/chromedriver %{buildroot}%{_bindir}/chromedriver
2012-07-04 11:57:27 +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
install -m 644 %{_src}/%{crname}.desktop %{buildroot}%{_datadir}/applications/
# 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 "*.nexe" -exec strip {} \;
2014-05-28 15:53:16 +04:00
mkdir -p %{buildroot}%{_docdir}/%{name}
install -p -m755 %{SOURCE1000} %{buildroot}%{_docdir}/%{name}
2014-05-23 19:01:13 +04:00