# Conditional build:
%bcond_with ffmpegsumo # using ffmpegsumo
-%define flashv 20.0.0.306
%define state stable
%if "%{state}" == "beta" || "%{state}" == "unstable"
%define gcsuffix -%{state}
%endif
Summary: Google Chrome
-Name: google-chrome
-Version: 48.0.2564.116
+Name: google-chrome%{?gcsuffix}
+Version: 88.0.4324.182
Release: 1
License: Multiple, see http://chrome.google.com/
Group: Applications/Networking
-Source0: http://dl.google.com/linux/chrome/rpm/stable/i386/%{name}-%{state}-%{version}-%{release}.i386.rpm
-# NoSource0-md5: 58e1b9ddda744852b04f0ec55ce9076f
+Source0: http://dl.google.com/linux/chrome/rpm/stable/x86_64/google-chrome-%{state}-%{version}-%{release}.x86_64.rpm
+# NoSource0-md5: 35919fa4002ec8a31220a1fda708a7c0
NoSource: 0
-Source1: http://dl.google.com/linux/chrome/rpm/stable/x86_64/%{name}-%{state}-%{version}-%{release}.x86_64.rpm
-# NoSource1-md5: 05851e778d3c67d3f0324430d340c764
-NoSource: 1
-Source2: %{name}.sh
-Source4: find-lang.sh
+Source1: google-chrome.sh
+Source2: find-lang.sh
URL: http://chrome.google.com/
BuildRequires: rpm-utils
BuildRequires: rpmbuild(macros) >= 1.453
BuildRequires: sed >= 4.0
Requires: browser-plugins >= 2.0
+Requires: cpuinfo(sse2)
# crashes if no fontconfig font present
Requires: fonts-Type1-urw
Requires: hicolor-icon-theme
-Requires: xdg-utils >= 1.0.2-4
# https://www.phoronix.com/scan.php?page=news_item&px=Google-Chrome-TSYNC-Kernel
Requires: uname(release) >= 3.17
-Suggests: browser-plugin-adobe-flash
+Requires: xdg-utils >= 1.0.2-4
Provides: wwwbrowser
-# add conflicts to trigger their update when main package is updated
-Conflicts: browser-plugin-adobe-flash < %{flashv}-%{!?rel:1}%{?rel:%{rel}}
-ExclusiveArch: %{ix86} %{x8664}
+ExclusiveArch: %{x8664}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%{expand:%%define crver %{version}}
%define no_install_post_strip 1
%define ffmpeg_caps libffmpegsumo.so
-%define flash_caps libpepflashplayer.so
# list of script capabilities (regexps) not to be used in Provides
-%define _noautoprov %{ffmpeg_caps} %{flash_caps}
+%define _noautoprov %{ffmpeg_caps}
# do not require them either
%define _noautoreq %{_noautoprov}
pt-BR, pt-PT, ro, ru, sk, sl, sr, sv, ta, te, th, tr, uk, vi, zh-CN,
zh-TW
-# IMPORTANT: keep flash plugin defined as last package
-%package -n browser-plugin-adobe-flash
-Summary: Adobe Flash plugin from Google Chrome
-Summary(pl.UTF-8): Wtyczka Adobe Flash z Google Chrome
-Version: %{flashv}
-Release: %{!?rel:1}%{?rel:%{rel}}
-License: Free to use, non-distributable
-Group: X11/Applications/Multimedia
-Requires: browser-plugins >= 2.0
-Conflicts: google-chrome < 19.0.1084.52
-
-%description -n browser-plugin-adobe-flash
-Adobe Flash plugin from Google Chrome, which is not available in
-Chromium.
-
-%description -n browser-plugin-adobe-flash -l pl.UTF-8
-Wtyczka Adobe Flash z Google Chrome, która nie jest dostępna w
-Chromium.
-
%prep
%setup -qcT
-%ifarch %{ix86}
SOURCE=%{S:0}
-%endif
-%ifarch %{x8664}
-SOURCE=%{S:1}
-%endif
V=$(rpm -qp --nodigest --nosignature --qf '%{V}' $SOURCE)
R=$(rpm -qp --nodigest --nosignature --qf '%{R}' $SOURCE)
mv chrome%{?gcsuffix}/product_logo_*.{png,xpm} .
mv usr/share/applications/google-chrome%{?gcsuffix}.desktop .
mv chrome%{?gcsuffix}/google-chrome* .
+mv chrome%{?gcsuffix}/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so chrome%{?gcsuffix}/
chmod a+x chrome%{?gcsuffix}/lib*.so*
-# separate to subpackage
-install -d browser-plugins
-mv chrome%{?gcsuffix}/PepperFlash browser-plugins
-chmod a+rx browser-plugins/PepperFlash/*.so
-
# included in gnome-control-center-2.28.1-3
rm default-app-block default-apps/google-chrome%{?gcsuffix}.xml
rm chrome%{?gcsuffix}/xdg-settings
rm chrome%{?gcsuffix}/xdg-mime
-[ -f *.1.gz ] && gzip -d *.1.gz
+if [ -n "$(ls *.1.gz)" ]; then
+ for file in *.1.gz; do
+ [ -f "$file" ] && gzip -d "$file"
+ done
+fi
-%{__sed} -e 's,@localedir@,%{_libdir}/%{name},' %{SOURCE4} > find-lang.sh
+%{__sed} -e 's,@localedir@,%{_libdir}/%{name},' %{SOURCE2} > find-lang.sh
%{__sed} -i 's;/opt/google/chrome/product_logo_48.png;%{name}.png;' google-chrome%{?gcsuffix}.desktop
%{__sed} -i 's;/opt/google/chrome;%{_bindir};' google-chrome%{?gcsuffix}.desktop
%{__sed} -i 's;xhtml_xml;xhtml+xml;' google-chrome%{?gcsuffix}.desktop
%{__sed} -i 's#google-chrome-\(stable\|beta\|unstable\)#google-chrome#g' google-chrome%{?gcsuffix}.desktop
%build
-v=$(awk -F'"' '/version/{print $4}' browser-plugins/PepperFlash/manifest.json)
-if [ "$v" != "%{flashv}" ]; then
- : wrong version
- exit 1
-fi
-
-# create extra file, for simplier scripting in chromium-browser.sh
-echo "version=%{flashv}" > browser-plugins/PepperFlash/manifest.ver
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}/%{name}/{plugins,pepper},%{_mandir}/man1,%{_desktopdir},%{_libdir}/%{name}/themes} \
+install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}/%{name}/plugins,%{_mandir}/man1,%{_desktopdir},%{_libdir}/%{name}/themes} \
$RPM_BUILD_ROOT%{_datadir}/%{name}/extensions
-install -p %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}/%{name}
+install -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/%{name}
+sed -i -e 's#RPM_STATE#%{state}#g' $RPM_BUILD_ROOT%{_bindir}/%{name}
+
%{__sed} -i -e 's,@libdir@,%{_libdir}/%{name},' $RPM_BUILD_ROOT%{_bindir}/%{name}
cp -a chrome%{?gcsuffix}/* $RPM_BUILD_ROOT%{_libdir}/%{name}
-cp -p google-chrome%{?gcsuffix}.1 $RPM_BUILD_ROOT%{_mandir}/man1/google-chrome.1
+cp -p google-chrome-%{state}.1 $RPM_BUILD_ROOT%{_mandir}/man1/google-chrome%{?gcsuffix}.1
# for google-chrome --help
-echo ".so google-chrome.1" > $RPM_BUILD_ROOT%{_mandir}/man1/chrome.1
-cp -p google-chrome%{?gcsuffix}.desktop $RPM_BUILD_ROOT%{_desktopdir}/google-chrome.desktop
+echo ".so google-chrome%{?gcsuffix}.1" > $RPM_BUILD_ROOT%{_mandir}/man1/chrome%{?gcsuffix}.1
+cp -p google-chrome%{?gcsuffix}.desktop $RPM_BUILD_ROOT%{_desktopdir}/google-chrome%{?gcsuffix}.desktop
for icon in product_logo_*.png; do
size=${icon##product_logo_}
size=${size%.png}
+ size=${size%_%{state}}
install -d $RPM_BUILD_ROOT%{_iconsdir}/hicolor/${size}x${size}/apps
cp -p $icon $RPM_BUILD_ROOT%{_iconsdir}/hicolor/${size}x${size}/apps/%{name}.png
done
-install -d $RPM_BUILD_ROOT%{_browserpluginsdir}
-cp -a browser-plugins/* $RPM_BUILD_ROOT%{_browserpluginsdir}
-
%browser_plugins_add_browser %{name} -p %{_libdir}/%{name}/plugins
# binary needs to be at that specific location, or it will abort:
# content/browser/browser_main_loop.cc
ln -s %{_libdir}/%{name} $RPM_BUILD_ROOT/opt/google/chrome%{?gcsuffix}
-# official rpm just add libudev.so.0 -> libudev.so.1 symlink, so we use similar hack here
-if grep -qE "libudev\.so\.0" $RPM_BUILD_ROOT%{_libdir}/%{name}/chrome; then
- %{__sed} -i -e 's#libudev\.so\.0#libudev.so.1#g' $RPM_BUILD_ROOT%{_libdir}/%{name}/chrome
-else
- echo "Hack no longer needed? No longer linked with libudev.so.0 ?" >&2
- exit 1
-fi
-
# find locales
%find_lang %{name}.lang
# always package en-US (in main package)
%update_browser_plugins
fi
-%post -n browser-plugin-adobe-flash
-%update_browser_plugins
-
-%postun -n browser-plugin-adobe-flash
-if [ "$1" = 0 ]; then
- %update_browser_plugins
-fi
-
-# FIXME: chrome *needs* it to be in application dir. add symlink until it can load from other places
-# FIXME: link PepperFlash, browser-plugins ignores subdirs, and currently nothing else than chrome browsers can do pepper
-%triggerin -n browser-plugin-adobe-flash -- google-chrome
-test -L %{_libdir}/%{name}/PepperFlash || ln -sf %{_browserpluginsdir}/PepperFlash %{_libdir}/%{name}/PepperFlash
-
-%triggerun -n browser-plugin-adobe-flash -- google-chrome
-if [ "$1" = "0" ] || [ "$2" = "0" ] && [ -L %{_libdir}/%{name}/PepperFlash ]; then
- rm -f %{_libdir}/%{name}/PepperFlash
-fi
-
-%triggerin -n browser-plugin-adobe-flash -- chromium-browser-bin
-test -L %{_libdir}/chromium-browser-bin/PepperFlash || ln -sf %{_browserpluginsdir}/PepperFlash %{_libdir}/chromium-browser-bin/PepperFlash
-
-%triggerun -n browser-plugin-adobe-flash -- chromium-browser-bin
-if [ "$1" = "0" ] || [ "$2" = "0" ] && [ -L %{_libdir}/chromium-browser-bin/PepperFlash ]; then
- rm -f %{_libdir}/chromium-browser-bin/PepperFlash
-fi
-
%files
%defattr(644,root,root,755)
%{_iconsdir}/hicolor/*/apps/%{name}.png
%dir %{_libdir}/%{name}
+%{_libdir}/%{name}/MEIPreload
%{_libdir}/%{name}/icudtl.dat
%{_libdir}/%{name}/chrome_*_percent.pak
%{_libdir}/%{name}/resources.pak
-%{_libdir}/%{name}/natives_blob.bin
-%{_libdir}/%{name}/snapshot_blob.bin
+%{_libdir}/%{name}/v8_context_snapshot.bin
+%{_libdir}/%{name}/libEGL.so
+%{_libdir}/%{name}/libGLESv2.so
%dir %{_libdir}/%{name}/locales
%{_libdir}/%{name}/locales/en-US.pak
-%{_libdir}/%{name}/locales/fake-bidi.pak
+#%{_libdir}/%{name}/locales/fake-bidi.pak
%dir %{_libdir}/%{name}/plugins
-# hardcoded list of pepper plugins chrome can load
-# see https://chromium.googlesource.com/chromium/chromium/+/trunk/chrome/common/chrome_paths.cc
-%dir %{_libdir}/%{name}/pepper
%dir %{_datadir}/%{name}
# The path to the external extension <id>.json files.
# see https://chromium.googlesource.com/chromium/chromium/+/trunk/chrome/common/chrome_paths.cc
# These unique permissions are intentional and necessary for the sandboxing
%attr(4555,root,root) %{_libdir}/%{name}/chrome-sandbox
+%attr(755,root,root) %{_libdir}/%{name}/crashpad_handler
+
# nacl
%attr(755,root,root) %{_libdir}/%{name}/nacl_helper
%attr(755,root,root) %{_libdir}/%{name}/nacl_helper_bootstrap
# DRM
%attr(755,root,root) %{_libdir}/%{name}/libwidevinecdm.so
-%attr(755,root,root) %{_libdir}/%{name}/libwidevinecdmadapter.so
+
+# replace with mesa symlinks?
+%dir %{_libdir}/%{name}/swiftshader
+%attr(755,root,root) %{_libdir}/%{name}/swiftshader/libEGL.so
+%attr(755,root,root) %{_libdir}/%{name}/swiftshader/libGLESv2.so
# ffmpeg libs
%if %{with ffmpegsumo}
%attr(755,root,root) %{_libdir}/%{name}/libffmpegsumo.so
%endif
+%{_libdir}/%{name}/WidevineCdm
+
# hack
%dir /opt/google
/opt/google/chrome%{?gcsuffix}
%files l10n -f %{name}.lang
%defattr(644,root,root,755)
-
-%files -n browser-plugin-adobe-flash
-%defattr(644,root,root,755)
-%dir %{_browserpluginsdir}/PepperFlash
-%{_browserpluginsdir}/PepperFlash/manifest.json
-%{_browserpluginsdir}/PepperFlash/manifest.ver
-%attr(755,root,root) %{_browserpluginsdir}/PepperFlash/libpepflashplayer.so