diff --git a/.gitignore b/.gitignore index 62f8e777..351b0e33 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ /chromium-57.0.2987.110-clean.tar.xz /chromium-57.0.2987.133-clean.tar.xz /chromium-58.0.3029.81-clean.tar.xz +/chromium-58.0.3029.110-clean.tar.xz diff --git a/chromium-52.0.2743.82-widevinefix.patch b/chromium-52.0.2743.82-widevinefix.patch deleted file mode 100644 index 86414a6d..00000000 --- a/chromium-52.0.2743.82-widevinefix.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -up chromium-52.0.2743.82/chrome/common/chrome_content_client.cc.widevinefix chromium-52.0.2743.82/chrome/common/chrome_content_client.cc ---- chromium-52.0.2743.82/chrome/common/chrome_content_client.cc.widevinefix 2016-07-22 12:18:49.505235856 -0400 -+++ chromium-52.0.2743.82/chrome/common/chrome_content_client.cc 2016-07-22 12:20:04.200789682 -0400 -@@ -203,10 +203,7 @@ void ComputeBuiltInPlugins(std::vectorpush_back(content::CdmInfo(kWidevineCdmType, version, cdm_path, - codecs_supported)); - } diff --git a/chromium-58.0.3029.81-ffmpeg-stdatomic.patch b/chromium-58.0.3029.81-ffmpeg-stdatomic.patch new file mode 100644 index 00000000..e08d5b2e --- /dev/null +++ b/chromium-58.0.3029.81-ffmpeg-stdatomic.patch @@ -0,0 +1,14 @@ +diff -up chromium-57.0.2987.21/third_party/ffmpeg/libavutil/cpu.c.ffmpeg_stdatomic chromium-57.0.2987.21/third_party/ffmpeg/libavutil/cpu.c +--- chromium-57.0.2987.21/third_party/ffmpeg/libavutil/cpu.c.ffmpeg_stdatomic 2017-02-03 07:07:36.000000000 +0100 ++++ chromium-57.0.2987.21/third_party/ffmpeg/libavutil/cpu.c 2017-02-09 11:54:34.083000442 +0100 +@@ -20,6 +20,10 @@ + // Chromium: Windows doesn't provide stdatomic.h, so use the compat version. + #if defined(_MSC_VER) + #include ++// GCC 4.8 didn't have stdatomic, but was advertising it. ++// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58016 ++#elif !defined(__clang__) && defined(__GNUC__) && (__GNUC__ == 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ == 8))) ++#include + #else + #include + #endif diff --git a/chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch b/chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch new file mode 100644 index 00000000..ddb94a07 --- /dev/null +++ b/chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch @@ -0,0 +1,19 @@ +diff -up chromium-58.0.3029.96/ui/events/devices/x11/device_data_manager_x11.cc.revert chromium-58.0.3029.96/ui/events/devices/x11/device_data_manager_x11.cc +--- chromium-58.0.3029.96/ui/events/devices/x11/device_data_manager_x11.cc.revert 2017-05-08 14:58:11.767482431 -0400 ++++ chromium-58.0.3029.96/ui/events/devices/x11/device_data_manager_x11.cc 2017-05-08 14:58:37.722960109 -0400 +@@ -790,15 +790,6 @@ void DeviceDataManagerX11::UpdateScrollC + DCHECK(deviceid >= 0 && deviceid < kMaxDeviceNum); + ScrollInfo& info = scroll_data_[deviceid]; + +- bool legacy_scroll_available = +- (scroll_class_info->flags & XIScrollFlagNoEmulation) == 0; +- // If the device's highest resolution is lower than the resolution of xinput1 +- // then use xinput1's events instead (ie. don't configure smooth scrolling). +- if (legacy_scroll_available && +- std::abs(scroll_class_info->increment) <= 1.0) { +- return; +- } +- + switch (scroll_class_info->scroll_type) { + case XIScrollTypeVertical: + info.vertical.number = scroll_class_info->number; diff --git a/chromium.spec b/chromium.spec index f0b04a32..21fa0949 100644 --- a/chromium.spec +++ b/chromium.spec @@ -20,7 +20,7 @@ # Requires is trickier. %global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so -%global privlibs libaccessibility|libaura_extra|libaura|libbase_i18n|libbase|libbindings|libblink_common|libblink_core|libblink_modules|libblink_platform|libblink_web|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture|libcc_animation|libcc_blink|libcc_ipc|libcc_proto|libcc|libcc_surfaces|libchromium_sqlite3|libclearkeycdm|libcloud_policy_proto_generated_compile|libcommon|libcompositor|libcontent|libcpp|libcrcrypto|libdbus|libdevice_base|libdevice_battery|libdevice_event_log|libdevice_gamepad|libdevices|libdevice_vibration|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay_compositor|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libEGL|libevents_base|libevents_devices_x11|libevents_ipc|libevents_ozone_layout|libevents|libevents_x|libffmpeg|libfont_service_library|libgcm|libgeneric_sensor|libgeolocation|libgeometry|libgesture_detection|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_ipc|libgfx|libgfx_x11|libgin|libgles2_c_lib|libgles2_implementation|libgles2_utils|libGLESv2|libgl_in_process_context|libgl_init|libgl_wrapper|libgpu|libgtk2ui|libicui18n|libicuuc|libipc|libjs|libkeyboard|libkeyboard_with_content|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|libmedia_blink|libmedia_gpu|libmedia|libmessage_center|libmidi|libmojo_common_lib|libmojo_ime_lib|libmojo_public_system_cpp|libmojo_public_system|libmojo_system_impl|libnative_theme|libnet|libnet_with_v8|libonc|libplatform|libpolicy_component|libpolicy_proto|libpower_monitor|libpower_save_blocker|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|librange|libsandbox_services|libseccomp_bpf|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtest_ime_driver_library|libtime_zone_monitor|libtracing_library|libtracing|libui_base_ime|libui_base|libui_base_x|libui_data_pack|libui_library|libui_touch_selection|libui_views_mus_lib|liburl_ipc|liburl_matcher|liburl|libuser_manager|libuser_prefs|libv8_libbase|libv8_libplatform|libv8|libviews|libwebdata_common|libweb_dialogs|libwebview|libwidevinecdmadapter|libwidevinecdm|libwm|libwtf|libx11_events_platform|libx11_window +%global privlibs libaccessibility|libaura_extra|libaura|libbase_i18n|libbase|libbindings|libblink_common|libblink_core|libblink_modules|libblink_platform|libblink_web|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture|libcapture_base|libcapture_lib|libcc_animation|libcc_blink|libcc_ipc|libcc_paint|libcc_proto|libcc|libcc_surfaces|libchromium_sqlite3|libclearkeycdm|libcloud_policy_proto_generated_compile|libcommon|libcompositor|libcontent|libcpp|libcrcrypto|libdbus|libdevice_base|libdevice_battery|libdevice_event_log|libdevice_gamepad|libdevices|libdevice_vibration|libdevice_vr|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay_compositor|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libEGL|libevents_base|libevents_devices_x11|libevents_ipc|libevents_ozone_layout|libevents|libevents_x|libfingerprint|libffmpeg|libfont_service_library|libgcm|libgeneric_sensor|libgeolocation|libgeometry|libgesture_detection|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_ipc|libgfx|libgfx_x11|libgin|libgles2_c_lib|libgles2_implementation|libgles2_utils|libGLESv2|libgl_in_process_context|libgl_init|libgl_wrapper|libgpu|libgtk2ui|libicui18n|libicuuc|libipc|libjs|libkeyboard|libkeyboard_with_content|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|libmedia_blink|libmedia_gpu|libmedia|libmessage_center|libmidi|libmojo_common_lib|libmojo_ime_lib|libmojo_public_system_cpp|libmojo_public_system|libmojo_system_impl|libnative_theme|libnet|libnet_with_v8|libonc|libplatform|libpolicy_component|libpolicy_proto|libpower_monitor|libpower_save_blocker|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|librange|libsandbox_services|libseccomp_bpf|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtest_ime_driver_library|libtime_zone_monitor|libtracing_library|libtracing|libui_base_ime|libui_base|libui_base_x|libui_data_pack|libui_library|libui_touch_selection|libui_views_mus_lib|liburl_ipc|liburl_matcher|liburl|libuser_manager|libuser_prefs|libv8_libbase|libv8_libplatform|libv8|libviews|libwebdata_common|libweb_dialogs|libwebview|libwidevinecdmadapter|libwidevinecdm|libwm|libwtf|libx11_events_platform|libx11_window %global __requires_exclude ^(%{privlibs})\\.so # Try to not use the Xvfb as it is slow.. @@ -96,7 +96,7 @@ BuildRequires: libicu-devel >= 5.4 %global majorversion 58 Name: chromium%{chromium_channel} -Version: %{majorversion}.0.3029.81 +Version: %{majorversion}.0.3029.110 Release: 1%{?dist} Summary: A WebKit (Blink) powered web browser Url: http://www.chromium.org/Home @@ -158,7 +158,12 @@ Patch34: chromium-58.0.3029.81-enable-mp3.patch # Fix gn build # https://chromium.googlesource.com/chromium/src.git/+/379e35f6f3eaa41a97f2659249509ca599749b27%5E%21/tools/gn/bootstrap/bootstrap.py Patch35: chromium-58.0.3029.81-fix-gn.patch - +# Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8db6940240c563cf4%5E%21/#F0 +# https://bugs.chromium.org/p/chromium/issues/detail?id=712737 +# https://bugzilla.redhat.com/show_bug.cgi?id=1446851 +Patch36: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch +# Correctly compile the stdatomic.h in ffmpeg with gcc 4.8 +Patch37: chromium-58.0.3029.81-ffmpeg-stdatomic.patch ### Chromium Tests Patches ### Patch100: chromium-46.0.2490.86-use_system_opus.patch @@ -194,11 +199,6 @@ Source10: https://dl.google.com/dl/edgedl/chrome/policy/policy_templates.zip Source11: chrome-remote-desktop@.service Source12: chromium-browser.appdata.xml Source13: master_preferences -# Only needed for platforms where gcc doesn't have stdatomic.h -# RHEL 7 or older -# Taken from https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/compat/atomics/gcc/stdatomic.h -# on 2017-03-26 -Source14: stdatomic.h # We can assume gcc and binutils. BuildRequires: gcc-c++ @@ -543,17 +543,13 @@ members of the Chromium and WebDriver teams. %patch33 -p1 -b .gcc7 %patch34 -p1 -b .mp3 %patch35 -p1 -b .fixgn +%patch36 -p1 -b .revert +%patch37 -p1 -b .ffmpeg-stdatomic ### Chromium Tests Patches ### %patch100 -p1 -b .use_system_opus %patch101 -p1 -b .use_system_harfbuzz -%if 0%{?fedora} >= 24 -# Do nothing. We're modern enough to not need it. -%else -cp -a %{SOURCE14} third_party/ffmpeg/ -%endif - %if 0%{?asan} export CC="clang" export CXX="clang++" @@ -1453,13 +1449,13 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-desktop %post -n chrome-remote-desktop -%systemd_post chrome-remote-desktop.service +%systemd_post chrome-remote-desktop@.service %preun -n chrome-remote-desktop -%systemd_preun chrome-remote-desktop.service +%systemd_preun chrome-remote-desktop@.service %postun -n chrome-remote-desktop -%systemd_postun_with_restart chrome-remote-desktop.service +%systemd_postun_with_restart chrome-remote-desktop@.service %files %doc AUTHORS @@ -1593,6 +1589,12 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %{chromium_path}/chromedriver %changelog +* Mon May 15 2017 Tom Callaway 58.0.3029.110-1 +- update to 58.0.3029.110 + +* Mon May 8 2017 Tom Callaway 58.0.3029.96-1 +- update to 58.0.3029.96 + * Fri Apr 21 2017 Tom Callaway 58.0.3029.81-1 - update to 58.0.3029.81 diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh index 39e68f73..01a89fc9 100644 --- a/clean_ffmpeg.sh +++ b/clean_ffmpeg.sh @@ -182,7 +182,8 @@ header_files=" libavcodec/x86/inline_asm.h \ libavutil/version.h \ libswresample/swresample.h \ libswresample/version.h \ - compat/va_copy.h " + compat/va_copy.h \ + compat/atomics/gcc/stdatomic.h " manual_files=" libavcodec/x86/hpeldsp_rnd_template.c \ libavcodec/x86/rnd_template.c \ diff --git a/sources b/sources index a80c7379..5faaaee3 100644 --- a/sources +++ b/sources @@ -1,3 +1,4 @@ SHA512 (depot_tools.git-master.tar.gz) = d3d6a1873b2b0296a8cd99e0d8d2e629a17b1808934b4972556168f8b4ccea60577ebaeab4445baf15afb1b04080808db59a832a5b61d247bd48da14fa6acf03 SHA512 (policy_templates.zip) = 28f1f85eab1719dd1c6a70f7e4cd1c9bea46215adc327a32f2509098e70768a61dbb8b24c186279ec4e4e1299953c219e9eb71af6d5527fe9e422599ad0d785e SHA512 (chromium-58.0.3029.81-clean.tar.xz) = b2ac41d6eccfd025d816b814354330fe4a9bb81c212fd7b98f79cc6f0c693d1b2ce5fbe0ce9397d43808ffcfa171585769c9db5d4b7d24e9bf548c450f8ad7f6 +SHA512 (chromium-58.0.3029.110-clean.tar.xz) = f26be2eaabe47d6294fd411bbb9abe07721c54fe06e6792a3ff0bd173571bb84ee673bc022f626883fc133e5285cf1386ba8539351d4eb82102feb3cab5f9852 diff --git a/stdatomic.h b/stdatomic.h deleted file mode 100644 index 2b646874..00000000 --- a/stdatomic.h +++ /dev/null @@ -1,173 +0,0 @@ -/* - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/* - * based on vlc_atomic.h from VLC - * Copyright (C) 2010 RĂ©mi Denis-Courmont - */ - -#ifndef COMPAT_ATOMICS_GCC_STDATOMIC_H -#define COMPAT_ATOMICS_GCC_STDATOMIC_H - -#include -#include - -#define ATOMIC_FLAG_INIT 0 - -#define ATOMIC_VAR_INIT(value) (value) - -#define atomic_init(obj, value) \ -do { \ - *(obj) = (value); \ -} while(0) - -#define kill_dependency(y) ((void)0) - -#define atomic_thread_fence(order) \ - __sync_synchronize() - -#define atomic_signal_fence(order) \ - ((void)0) - -#define atomic_is_lock_free(obj) 0 - -typedef _Bool atomic_flag; -typedef _Bool atomic_bool; -typedef char atomic_char; -typedef signed char atomic_schar; -typedef unsigned char atomic_uchar; -typedef short atomic_short; -typedef unsigned short atomic_ushort; -typedef int atomic_int; -typedef unsigned int atomic_uint; -typedef long atomic_long; -typedef unsigned long atomic_ulong; -typedef long long atomic_llong; -typedef unsigned long long atomic_ullong; -typedef wchar_t atomic_wchar_t; -typedef int_least8_t atomic_int_least8_t; -typedef uint_least8_t atomic_uint_least8_t; -typedef int_least16_t atomic_int_least16_t; -typedef uint_least16_t atomic_uint_least16_t; -typedef int_least32_t atomic_int_least32_t; -typedef uint_least32_t atomic_uint_least32_t; -typedef int_least64_t atomic_int_least64_t; -typedef uint_least64_t atomic_uint_least64_t; -typedef int_fast8_t atomic_int_fast8_t; -typedef uint_fast8_t atomic_uint_fast8_t; -typedef int_fast16_t atomic_int_fast16_t; -typedef uint_fast16_t atomic_uint_fast16_t; -typedef int_fast32_t atomic_int_fast32_t; -typedef uint_fast32_t atomic_uint_fast32_t; -typedef int_fast64_t atomic_int_fast64_t; -typedef uint_fast64_t atomic_uint_fast64_t; -typedef intptr_t atomic_intptr_t; -typedef uintptr_t atomic_uintptr_t; -typedef size_t atomic_size_t; -typedef ptrdiff_t atomic_ptrdiff_t; -typedef intmax_t atomic_intmax_t; -typedef uintmax_t atomic_uintmax_t; - -#define atomic_store(object, desired) \ -do { \ - *(object) = (desired); \ - __sync_synchronize(); \ -} while (0) - -#define atomic_store_explicit(object, desired, order) \ - atomic_store(object, desired) - -#define atomic_load(object) \ - (__sync_synchronize(), *(object)) - -#define atomic_load_explicit(object, order) \ - atomic_load(object) - -#define atomic_exchange(object, desired) \ -({ \ - __typeof__(object) _obj = (object); \ - __typeof__(*object) _old; \ - do \ - _old = atomic_load(_obj); \ - while (!__sync_bool_compare_and_swap(_obj, _old, (desired))); \ - _old; \ -}) - -#define atomic_exchange_explicit(object, desired, order) \ - atomic_exchange(object, desired) - -#define atomic_compare_exchange_strong(object, expected, desired) \ -({ \ - __typeof__(object) _exp = (expected); \ - __typeof__(*object) _old = *_exp; \ - *_exp = __sync_val_compare_and_swap((object), _old, (desired)); \ - *_exp == _old; \ -}) - -#define atomic_compare_exchange_strong_explicit(object, expected, desired, success, failure) \ - atomic_compare_exchange_strong(object, expected, desired) - -#define atomic_compare_exchange_weak(object, expected, desired) \ - atomic_compare_exchange_strong(object, expected, desired) - -#define atomic_compare_exchange_weak_explicit(object, expected, desired, success, failure) \ - atomic_compare_exchange_weak(object, expected, desired) - -#define atomic_fetch_add(object, operand) \ - __sync_fetch_and_add(object, operand) - -#define atomic_fetch_add_explicit(object, operand, order) \ - atomic_fetch_add(object, operand) - -#define atomic_fetch_sub(object, operand) \ - __sync_fetch_and_sub(object, operand) - -#define atomic_fetch_sub_explicit(object, operand, order) \ - atomic_fetch_sub(object, operand) - -#define atomic_fetch_or(object, operand) \ - __sync_fetch_and_or(object, operand) - -#define atomic_fetch_or_explicit(object, operand, order) \ - atomic_fetch_or(object, operand) - -#define atomic_fetch_xor(object, operand) \ - __sync_fetch_and_sub(object, operand) - -#define atomic_fetch_xor_explicit(object, operand, order) \ - atomic_fetch_sub(object, operand) - -#define atomic_fetch_and(object, operand) \ - __sync_fetch_and_and(object, operand) - -#define atomic_fetch_and_explicit(object, operand, order) \ - atomic_fetch_and(object, operand) - -#define atomic_flag_test_and_set(object) \ - atomic_exchange(object, 1) - -#define atomic_flag_test_and_set_explicit(object, order) \ - atomic_flag_test_and_set(object) - -#define atomic_flag_clear(object) \ - atomic_store(object, 0) - -#define atomic_flag_clear_explicit(object, order) \ - atomic_flag_clear(object) - -#endif /* COMPAT_ATOMICS_GCC_STDATOMIC_H */