[vdr-tvguideng] Rebuilt for new VDR API version 2.4.1
by Martin Gansser
commit fa53ed2894674e26daa061ed5fe9283bc7506fe0
Author: Martin Gansser <mgansser(a)online.de>
Date: Tue Jul 2 14:19:22 2019 +0200
Rebuilt for new VDR API version 2.4.1
vdr-tvguideng.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
---
diff --git a/vdr-tvguideng.spec b/vdr-tvguideng.spec
index 4d9bf7f..7c3c690 100644
--- a/vdr-tvguideng.spec
+++ b/vdr-tvguideng.spec
@@ -2,7 +2,7 @@
Name: vdr-%{pname}
Version: 0.3.0
-Release: 11%{?dist}
+Release: 12%{?dist}
Summary: TvGuideNG is a highly customizable 2D EPG viewer plugin
License: GPLv2+
URL: http://projects.vdr-developer.org/projects/plg-tvguideng
@@ -45,6 +45,9 @@ make install DESTDIR=%{buildroot}
%{vdr_plugindir}/libvdr-*.so.%{vdr_apiversion}
%changelog
+* Mon Jul 01 2019 Martin Gansser <martinkg(a)fedoraproject.org> - 0.3.0-12
+- Rebuilt for new VDR API version 2.4.1
+
* Tue Jun 18 2019 Martin Gansser <martinkg(a)fedoraproject.org> - 0.3.0-11
- Rebuilt for new VDR API version
5 years, 3 months
[chromium-freeworld/f29: 5/5] Merge branch 'master' into f29
by Vasiliy Glazov
commit 9e1c30ccf3c59bd76a3ce62ce4aca7305d786424
Merge: 365e3c4 e3bce63
Author: Vasiliy Glazov <vascom2(a)gmail.com>
Date: Tue Jul 2 12:13:51 2019 +0300
Merge branch 'master' into f29
.gitignore | 2 +
chromium-60.0.3112.78-no-zlib-mangle.patch | 13 -
chromium-65.0.3325.162-epel7-stdc++.patch | 12 -
chromium-67.0.3396.99-py3fix.patch | 12 -
...m-71.0.3578.98-vaapi-libva1-compatibility.patch | 14 -
chromium-73-gcc-0.patch | 108 ----
chromium-73-gcc-1.patch | 99 ----
chromium-73-gcc-2.patch | 51 --
chromium-73-gcc-3.patch | 69 ---
chromium-73-gcc-4.patch | 59 --
chromium-73-gcc-5.patch | 65 --
chromium-73-gcc-6.patch | 88 ---
...mium-73.0.3683.75-aarch64-crashpad-limits.patch | 11 -
chromium-73.0.3683.75-el7-fix-noexcept.patch | 54 --
chromium-73.0.3683.75-no-header-hygiene.patch | 17 -
chromium-73.0.3683.75-vaapi-i686-fpermissive.patch | 23 -
chromium-75.0.3770.100-el7-fix-noexcept.patch | 54 ++
chromium-75.0.3770.100-epel7-stdc++.patch | 11 +
chromium-75.0.3770.100-fix-v8-gcc.patch | 14 +
chromium-75.0.3770.80-SIOCGSTAMP.patch | 15 +
...ium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch | 14 +
chromium-75.0.3770.80-gcc-no-assume.patch | 21 +
chromium-75.0.3770.80-grpc-gettid-fix.patch | 22 +
chromium-75.0.3770.80-no-zlib-mangle.patch | 14 +
chromium-75.0.3770.80-pure-virtual-crash-fix.patch | 24 +
chromium-75.0.3770.80-revert-daff6b.patch | 13 +
chromium-75.0.3770.80-vaapi-i686-fpermissive.patch | 23 +
...m-75.0.3770.80-vaapi-libva1-compatibility.patch | 14 +
chromium-freeworld.spec | 114 ++--
chromium-widevine-other-locations.patch | 23 +
revert-gn-4960.patch | 655 +++++++++++++++++++++
revert-gn-4980.patch | 134 +++++
sources | 2 +-
33 files changed, 1133 insertions(+), 731 deletions(-)
---
5 years, 3 months
[chromium-freeworld/f29] (5 commits) ...Merge branch 'master' into f29
by Vasiliy Glazov
Summary of changes:
9d38c91... Update to 73.0.3683.103. (*)
1d33fa7... Uploaded sources. (*)
63fe8ae... Update to 75.0.3770.100. (*)
e3bce63... Update source file. (*)
9e1c30c... Merge branch 'master' into f29
(*) This commit already existed in another branch; no separate mail sent
5 years, 3 months
[chromium-freeworld/f30] (4 commits) ...Update source file.
by Vasiliy Glazov
Summary of changes:
9d38c91... Update to 73.0.3683.103. (*)
1d33fa7... Uploaded sources. (*)
63fe8ae... Update to 75.0.3770.100. (*)
e3bce63... Update source file. (*)
(*) This commit already existed in another branch; no separate mail sent
5 years, 3 months
[chromium-freeworld] Update source file.
by Vasiliy Glazov
commit e3bce63281524fb9a6c1b5c68393c8d6e1861859
Author: Vasiliy Glazov <vascom2(a)gmail.com>
Date: Tue Jul 2 10:20:26 2019 +0300
Update source file.
.gitignore | 1 +
1 file changed, 1 insertion(+)
---
diff --git a/.gitignore b/.gitignore
index c6aef2e..137ad4e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -72,3 +72,4 @@
/chromium-73.0.3683.86.tar.xz
/node-v8.9.1-linux-x64.tar.gz
/chromium-73.0.3683.103.tar.xz
+/chromium-75.0.3770.100.tar.xz
5 years, 3 months
[chromium-freeworld] Update to 75.0.3770.100.
by Vasiliy Glazov
commit 63fe8ae5ab680c43e93debb4484da001e01239ce
Author: Vasiliy Glazov <vascom2(a)gmail.com>
Date: Tue Jul 2 10:07:46 2019 +0300
Update to 75.0.3770.100.
chromium-60.0.3112.78-no-zlib-mangle.patch | 13 -
chromium-65.0.3325.162-epel7-stdc++.patch | 12 -
chromium-67.0.3396.99-py3fix.patch | 12 -
...m-71.0.3578.98-vaapi-libva1-compatibility.patch | 14 -
chromium-73-gcc-0.patch | 108 ----
chromium-73-gcc-1.patch | 99 ----
chromium-73-gcc-2.patch | 51 --
chromium-73-gcc-3.patch | 69 ---
chromium-73-gcc-4.patch | 59 --
chromium-73-gcc-5.patch | 65 --
chromium-73-gcc-6.patch | 88 ---
...mium-73.0.3683.103-glibc-2.29-clone-vfork.patch | 29 -
...mium-73.0.3683.75-aarch64-crashpad-limits.patch | 11 -
chromium-73.0.3683.75-el7-fix-noexcept.patch | 54 --
chromium-73.0.3683.75-no-header-hygiene.patch | 17 -
chromium-73.0.3683.75-vaapi-i686-fpermissive.patch | 23 -
chromium-75.0.3770.100-el7-fix-noexcept.patch | 54 ++
chromium-75.0.3770.100-epel7-stdc++.patch | 11 +
chromium-75.0.3770.100-fix-v8-gcc.patch | 14 +
chromium-75.0.3770.80-SIOCGSTAMP.patch | 15 +
...ium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch | 14 +
chromium-75.0.3770.80-gcc-no-assume.patch | 21 +
chromium-75.0.3770.80-grpc-gettid-fix.patch | 22 +
chromium-75.0.3770.80-no-zlib-mangle.patch | 14 +
chromium-75.0.3770.80-pure-virtual-crash-fix.patch | 24 +
chromium-75.0.3770.80-revert-daff6b.patch | 13 +
chromium-75.0.3770.80-vaapi-i686-fpermissive.patch | 23 +
...m-75.0.3770.80-vaapi-libva1-compatibility.patch | 14 +
chromium-freeworld.spec | 115 ++--
chromium-widevine-other-locations.patch | 23 +
revert-gn-4960.patch | 655 +++++++++++++++++++++
revert-gn-4980.patch | 134 +++++
sources | 2 +-
33 files changed, 1128 insertions(+), 764 deletions(-)
---
diff --git a/chromium-75.0.3770.100-el7-fix-noexcept.patch b/chromium-75.0.3770.100-el7-fix-noexcept.patch
new file mode 100644
index 0000000..eaba072
--- /dev/null
+++ b/chromium-75.0.3770.100-el7-fix-noexcept.patch
@@ -0,0 +1,54 @@
+diff -up chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc
+--- chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-06-18 11:47:55.000000000 -0400
++++ chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc 2019-06-20 10:17:27.440446569 -0400
+@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
+ provider_id_(provider_id) {}
+
+ MediaSink::MediaSink(const MediaSink& other) = default;
+-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
++MediaSink::MediaSink(MediaSink&& other) = default;
+ MediaSink::MediaSink() = default;
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::IsMaybeCloudSink() const {
+ switch (icon_type_) {
+diff -up chromium-75.0.3770.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-75.0.3770.100/components/policy/core/common/policy_map.cc
+--- chromium-75.0.3770.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-06-18 11:48:01.000000000 -0400
++++ chromium-75.0.3770.100/components/policy/core/common/policy_map.cc 2019-06-20 10:17:27.444446463 -0400
+@@ -31,7 +31,7 @@ PolicyMap::Entry::Entry(
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+diff -up chromium-75.0.3770.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-75.0.3770.100/components/signin/core/browser/account_info.cc
+--- chromium-75.0.3770.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-06-20 10:17:27.444446463 -0400
++++ chromium-75.0.3770.100/components/signin/core/browser/account_info.cc 2019-06-20 10:19:17.959532865 -0400
+@@ -51,7 +51,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
+ CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
+ default;
+
+-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
++CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
+ default;
+
+ bool CoreAccountInfo::IsEmpty() const {
+diff -up chromium-75.0.3770.100/gpu/config/gpu_info.cc.el7-noexcept chromium-75.0.3770.100/gpu/config/gpu_info.cc
+--- chromium-75.0.3770.100/gpu/config/gpu_info.cc.el7-noexcept 2019-06-18 11:48:10.000000000 -0400
++++ chromium-75.0.3770.100/gpu/config/gpu_info.cc 2019-06-20 10:17:27.445446437 -0400
+@@ -181,7 +181,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
diff --git a/chromium-75.0.3770.100-epel7-stdc++.patch b/chromium-75.0.3770.100-epel7-stdc++.patch
new file mode 100644
index 0000000..e4d62a0
--- /dev/null
+++ b/chromium-75.0.3770.100-epel7-stdc++.patch
@@ -0,0 +1,11 @@
+diff -up chromium-75.0.3770.100/build/config/BUILD.gn.epel7 chromium-75.0.3770.100/build/config/BUILD.gn
+--- chromium-75.0.3770.100/build/config/BUILD.gn.epel7 2019-06-20 10:10:03.099549006 -0400
++++ chromium-75.0.3770.100/build/config/BUILD.gn 2019-06-20 10:10:21.483158162 -0400
+@@ -267,6 +267,7 @@ config("default_libs") {
+ "dl",
+ "pthread",
+ "rt",
++ "stdc++",
+ ]
+ }
+ }
diff --git a/chromium-75.0.3770.100-fix-v8-gcc.patch b/chromium-75.0.3770.100-fix-v8-gcc.patch
new file mode 100644
index 0000000..4a1a4b0
--- /dev/null
+++ b/chromium-75.0.3770.100-fix-v8-gcc.patch
@@ -0,0 +1,14 @@
+diff -up chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-75.0.3770.100/v8/src/objects/js-objects.cc
+--- chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-06-25 10:55:08.132254304 -0400
++++ chromium-75.0.3770.100/v8/src/objects/js-objects.cc 2019-06-25 10:55:23.147933648 -0400
+@@ -3792,6 +3792,10 @@ void JSObject::ApplyAttributesToDictiona
+ }
+ }
+
++template void JSObject::ApplyAttributesToDictionary(
++ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
++ const PropertyAttributes attributes);
++
+ template <PropertyAttributes attrs>
+ Maybe<bool> JSObject::PreventExtensionsWithTransition(
+ Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium-75.0.3770.80-SIOCGSTAMP.patch b/chromium-75.0.3770.80-SIOCGSTAMP.patch
new file mode 100644
index 0000000..0ef1e7f
--- /dev/null
+++ b/chromium-75.0.3770.80-SIOCGSTAMP.patch
@@ -0,0 +1,15 @@
+diff -up chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h
+--- chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP 2019-06-06 10:04:57.050403639 -0400
++++ chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h 2019-06-06 10:06:03.975121688 -0400
+@@ -16,6 +16,11 @@
+ #define WEBRTC_USE_EPOLL 1
+ #endif
+
++// for SIOCGSTAMP in Linux 5.2
++#if defined(WEBRTC_LINUX)
++#include <linux/sockios.h>
++#endif
++
+ #include <memory>
+ #include <set>
+ #include <vector>
diff --git a/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch b/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
new file mode 100644
index 0000000..2a8ac2f
--- /dev/null
+++ b/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
@@ -0,0 +1,14 @@
+diff -up chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc
+--- chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix 2019-06-06 12:42:27.431575032 -0400
++++ chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc 2019-06-06 12:43:05.692848409 -0400
+@@ -31,8 +31,8 @@ void CompositorFrameReportingController:
+
+ void CompositorFrameReportingController::WillBeginMainFrame() {
+ DCHECK(reporters_[PipelineStage::kBeginImplFrame]);
+- DCHECK_NE(reporters_[PipelineStage::kBeginMainFrame],
+- reporters_[PipelineStage::kBeginImplFrame]);
++ DCHECK(reporters_[PipelineStage::kBeginMainFrame] !=
++ reporters_[PipelineStage::kBeginImplFrame]);
+ reporters_[PipelineStage::kBeginImplFrame]->StartStage(
+ "SendBeginMainFrameToCommit");
+ AdvanceReporterStage(PipelineStage::kBeginImplFrame,
diff --git a/chromium-75.0.3770.80-gcc-no-assume.patch b/chromium-75.0.3770.80-gcc-no-assume.patch
new file mode 100644
index 0000000..0bbb08f
--- /dev/null
+++ b/chromium-75.0.3770.80-gcc-no-assume.patch
@@ -0,0 +1,21 @@
+diff -up chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume chromium-75.0.3770.80/third_party/angle/src/common/debug.h
+--- chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume 2019-06-06 17:38:01.876631704 -0400
++++ chromium-75.0.3770.80/third_party/angle/src/common/debug.h 2019-06-07 09:30:06.205446547 -0400
+@@ -248,7 +248,7 @@ std::ostream &FmtHex(std::ostream &os, T
+ # define EVENT(message, ...) (void(0))
+ #endif
+
+-#if defined(COMPILER_GCC) || defined(__clang__)
++#if defined(__GNUC__)
+ # define ANGLE_CRASH() __builtin_trap()
+ #else
+ # define ANGLE_CRASH() ((void)(*(volatile char *)0 = 0)), __assume(0)
+@@ -336,7 +336,7 @@ std::ostream &FmtHex(std::ostream &os, T
+ # define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
+ _Pragma("clang diagnostic push") _Pragma("clang diagnostic error \"-Wpadded\"")
+ # define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("clang diagnostic pop")
+-#elif defined(COMPILER_GCC)
++#elif defined(__GNUC__)
+ # define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
+ _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic error \"-Wpadded\"")
+ # define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("GCC diagnostic pop")
diff --git a/chromium-75.0.3770.80-grpc-gettid-fix.patch b/chromium-75.0.3770.80-grpc-gettid-fix.patch
new file mode 100644
index 0000000..c526f4a
--- /dev/null
+++ b/chromium-75.0.3770.80-grpc-gettid-fix.patch
@@ -0,0 +1,22 @@
+diff -up chromium-75.0.3770.80/third_party/grpc/src/src/core/lib/gpr/log_linux.cc.gettid-fix chromium-75.0.3770.80/third_party/grpc/src/src/core/lib/gpr/log_linux.cc
+--- chromium-75.0.3770.80/third_party/grpc/src/src/core/lib/gpr/log_linux.cc.gettid-fix 2019-06-12 17:05:01.720907204 -0400
++++ chromium-75.0.3770.80/third_party/grpc/src/src/core/lib/gpr/log_linux.cc 2019-06-12 17:06:01.000671370 -0400
+@@ -40,7 +40,8 @@
+ #include <time.h>
+ #include <unistd.h>
+
+-static long gettid(void) { return syscall(__NR_gettid); }
++/* renamed to avoid conflict with glibc 'gettid()' */
++static long gettid_gpr(void) { return syscall(__NR_gettid); }
+
+ void gpr_log(const char* file, int line, gpr_log_severity severity,
+ const char* format, ...) {
+@@ -70,7 +71,7 @@ void gpr_default_log(gpr_log_func_args*
+ gpr_timespec now = gpr_now(GPR_CLOCK_REALTIME);
+ struct tm tm;
+ static __thread long tid = 0;
+- if (tid == 0) tid = gettid();
++ if (tid == 0) tid = gettid_gpr();
+
+ timer = static_cast<time_t>(now.tv_sec);
+ final_slash = strrchr(args->file, '/');
diff --git a/chromium-75.0.3770.80-no-zlib-mangle.patch b/chromium-75.0.3770.80-no-zlib-mangle.patch
new file mode 100644
index 0000000..998be67
--- /dev/null
+++ b/chromium-75.0.3770.80-no-zlib-mangle.patch
@@ -0,0 +1,14 @@
+diff -up chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle chromium-75.0.3770.80/third_party/zlib/zconf.h
+--- chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle 2019-06-05 11:12:30.420412467 -0400
++++ chromium-75.0.3770.80/third_party/zlib/zconf.h 2019-06-05 11:17:43.512683058 -0400
+@@ -8,10 +8,6 @@
+ #ifndef ZCONF_H
+ #define ZCONF_H
+
+-/* This include does prefixing as below, but with an updated set of names. Also
+- * sets up export macros in component builds. */
+-#include "chromeconf.h"
+-
+ /*
+ * If you *really* need a unique prefix for all types and library functions,
+ * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
diff --git a/chromium-75.0.3770.80-pure-virtual-crash-fix.patch b/chromium-75.0.3770.80-pure-virtual-crash-fix.patch
new file mode 100644
index 0000000..06c909f
--- /dev/null
+++ b/chromium-75.0.3770.80-pure-virtual-crash-fix.patch
@@ -0,0 +1,24 @@
+diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc
+--- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix 2019-06-07 15:03:43.302202979 -0400
++++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc 2019-06-07 15:04:25.140393048 -0400
+@@ -116,4 +116,9 @@ void RenderProcessUserData::RenderProces
+ base::Unretained(process_node_.get()), info.exit_code));
+ }
+
++void RenderProcessUserData::RenderProcessHostDestroyed(
++ content::RenderProcessHost* host) {
++ host->RemoveUserData(kRenderProcessUserDataKey);
++}
++
+ } // namespace performance_manager
+diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h
+--- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix 2019-06-07 15:04:43.530039597 -0400
++++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h 2019-06-07 15:05:13.770458374 -0400
+@@ -47,6 +47,7 @@ class RenderProcessUserData : public bas
+ void RenderProcessExited(
+ content::RenderProcessHost* host,
+ const content::ChildProcessTerminationInfo& info) override;
++ void RenderProcessHostDestroyed(content::RenderProcessHost* host) override;
+
+ // All instances are linked together in a doubly linked list to allow orderly
+ // destruction at browser shutdown time.
diff --git a/chromium-75.0.3770.80-revert-daff6b.patch b/chromium-75.0.3770.80-revert-daff6b.patch
new file mode 100644
index 0000000..f996898
--- /dev/null
+++ b/chromium-75.0.3770.80-revert-daff6b.patch
@@ -0,0 +1,13 @@
+diff -up chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc
+--- chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b 2019-06-06 14:54:13.819190586 -0400
++++ chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc 2019-06-06 14:54:31.892839991 -0400
+@@ -154,8 +154,7 @@ AutocompleteMatch::AutocompleteMatch(con
+ additional_info(match.additional_info),
+ duplicate_matches(match.duplicate_matches) {}
+
+-AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) noexcept =
+- default;
++AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) = default;
+
+ AutocompleteMatch::~AutocompleteMatch() {
+ }
diff --git a/chromium-75.0.3770.80-vaapi-i686-fpermissive.patch b/chromium-75.0.3770.80-vaapi-i686-fpermissive.patch
new file mode 100644
index 0000000..c44473d
--- /dev/null
+++ b/chromium-75.0.3770.80-vaapi-i686-fpermissive.patch
@@ -0,0 +1,23 @@
+diff -up chromium-75.0.3770.80/media/gpu/vaapi/BUILD.gn.i686permissive chromium-75.0.3770.80/media/gpu/vaapi/BUILD.gn
+--- chromium-75.0.3770.80/media/gpu/vaapi/BUILD.gn.i686permissive 2019-06-10 14:47:37.315515026 -0400
++++ chromium-75.0.3770.80/media/gpu/vaapi/BUILD.gn 2019-06-10 14:48:25.250604888 -0400
+@@ -11,6 +11,10 @@ import("//ui/ozone/ozone.gni")
+
+ assert(use_vaapi)
+
++config("vaapi_permissive") {
++ cflags = [ "-fpermissive" ]
++}
++
+ generate_stubs("libva_stubs") {
+ extra_header = "va_stub_header.fragment"
+ sigs = [ "va.sigs" ]
+@@ -89,6 +93,8 @@ source_set("vaapi") {
+ deps += [ "//media/gpu/linux" ]
+ }
+
++ configs += [ ":vaapi_permissive" ]
++
+ if (use_x11) {
+ configs += [ "//build/config/linux:x11" ]
+ deps += [ "//ui/gfx/x" ]
diff --git a/chromium-75.0.3770.80-vaapi-libva1-compatibility.patch b/chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
new file mode 100644
index 0000000..dc0bfcb
--- /dev/null
+++ b/chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
@@ -0,0 +1,14 @@
+diff -up chromium-75.0.3770.80/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc.va1compat chromium-75.0.3770.80/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc
+--- chromium-75.0.3770.80/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc.va1compat 2019-06-05 11:35:57.274466969 -0400
++++ chromium-75.0.3770.80/media/gpu/vaapi/vaapi_mjpeg_decode_accelerator.cc 2019-06-05 11:36:17.201067326 -0400
+@@ -39,6 +39,10 @@ enum VAJDADecoderFailure {
+ VAJDA_DECODER_FAILURES_MAX,
+ };
+
++#ifndef VA_FOURCC_I420
++#define VA_FOURCC_I420 VA_FOURCC('I', '4', '2', '0')
++#endif
++
+ static void ReportToVAJDADecoderFailureUMA(VAJDADecoderFailure failure) {
+ UMA_HISTOGRAM_ENUMERATION("Media.VAJDA.DecoderFailure", failure,
+ VAJDA_DECODER_FAILURES_MAX + 1);
diff --git a/chromium-freeworld.spec b/chromium-freeworld.spec
index f6859c9..3af12a1 100644
--- a/chromium-freeworld.spec
+++ b/chromium-freeworld.spec
@@ -12,6 +12,9 @@
# We usually want this.
%global build_headless 1
+# We'd like to always have this on.
+%global use_vaapi 0
+
# NEVER EVER EVER turn this on in official builds
%global freeworld 1
%if %{freeworld}
@@ -51,9 +54,9 @@
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libEGL|libGLESv2|libVkICD_mock_icd|libVkLayer_core_validation|libVkLayer_object_tracker|libVkLayer_parameter_validation|libVkLayer_threading|libVkLayer_unique_objects|libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libbase|libbase_i18n|libbindings|libbindings_base|libblink_android_mojo_bindings_shared|libblink_common|libblink_controller|libblink_core|libblink_core_mojo_bindings_shared|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_modules|libblink_mojo_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcatalog_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcdm_manager|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent|libcontent_common_mojo_bindings_shar
ed|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcrash_key|libcrcrypto|libdbus|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevices|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_shared_typemap_traits|libgcm|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_switches|libgfx_x11|libgin|libgl_in_process_context|libgl_init|lib
gl_wrapper|libgles2|libgles2_implementation|libgles2_utils|libgpu|libgpu_ipc_service|libgtkui|libheadless|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|liblive_tab_count_metrics|libmanager|libmedia_blink|libmedia_gpu|libmedia_mojo_services|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirclient.so.9|libmirclient.so.9.TOC|libmirroring_service|libmojo_base_lib|libmojo_base_mojom|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_shared_typemap_traits|libmojo_core_embedder|libmojo_core_embedder_internal|libmojo_core_ports|libmojo_cpp_platform|libmojo_ime_lib|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojo_public_system|libmojo_public_system_cpp|libmojom_core_shared|libmojom_modules_shared|libmojom_platform_shared|libnative_th
eme|libnet|libnet_with_v8|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_cpp|libresource_coordinator_cpp_base|libresource_coordinator_cpp_features|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libservice|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom|libservice_manager_mojom_blink|libservice_manager_mojom_constants|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_shared|libservice_manager_mojom_traits|libsessions|libshared_memory_support|libshell_dialogs|l
ibskia|libsnapshot|libspeech_recognition_error_code_mojom|libspeech_recognition_error_code_mojom_blink|libspeech_recognition_error_code_mojom_shared|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing|libtracing_cpp|libtracing_mojom|libtracing_mojom_shared|libui_accessibility_ax_mojom|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_base|libui_base_clipboard|libui_base_clipboard_types|libui_base_ime|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|libui_views_mus_lib|liburl|liburl_ipc|liburl_matcher|libusb_shared|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libvr_base|libvr_common|libvr_ui|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature
_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebdata_common|libwebgpu|libwebview|libwm|libwm_public|libwtf|libx11_events_platform|libx11_window|libzygote|libmedia|libffmpeg|libfontconfig
+%global privlibs libEGL|libGLESv2|libVkICD_mock_icd|libVkLayer_core_validation|libVkLayer_object_lifetimes|libVkLayer_stateless_validation|libVkLayer_thread_safety|libVkLayer_unique_objects|libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libauthenticator_test_mojo_bindings_shared|libbase|libbase_i18n|libbindings|libbindings_base|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojo_bindings_shared|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcdm_manager|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent|libconten
t_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcrash_key|libcrcrypto|libdbus|libdbus_thread_linux|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevices|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_shared_typemap_traits|libgcm|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_switches|libgfx_x1
1|libgin|libgl_in_process_context|libgl_init|libgl_wrapper|libgles2|libgles2_implementation|libgles2_utils|libgpu|libgpu_ipc_service|libgtkui|libheadless|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|liblive_tab_count_metrics|libmanager|libmedia_blink|libmedia_filters_jpeg_parser|libmedia_gpu|libmedia_mojo_services|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirclient.so.9|libmirroring_service|libmojo_base_lib|libmojo_base_mojom|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_shared_typemap_traits|libmojo_core_embedder|libmojo_core_embedder_internal|libmojo_core_ports|libmojo_cpp_platform|libmojo_ime_lib|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojo_public_system|libmojo_public_system_cpp|libmojom_core_shared|libmoj
om_mhtml_load_result_shared|libmojom_modules_shared|libmojom_platform_shared|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_cpp_base|libresource_coordinator_cpp_features|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libservice|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom|libservice_manager_mojom_blink|libservice_manager_mojom_constants|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_shared|libservice_manage
r_mojom_traits|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing|libtracing_cpp|libtracing_mojom|libtracing_mojom_shared|libui_accessibility_ax_mojom|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_base|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime|libui_base_ime_init|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|libui_views_mus_lib|liburl|liburl_ipc|liburl_matcher|libusb_shared|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature_mojo_binding
s_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebdata_common|libwebgpu|libwebview|libwm|libwm_public|libwtf|libx11_events_platform|libx11_window|libzygote|libmedia|libffmpeg|libfontconfig
%else
-%global privlibs libEGL|libGLESv2|libVkICD_mock_icd|libVkLayer_core_validation|libVkLayer_object_tracker|libVkLayer_parameter_validation|libVkLayer_threading|libVkLayer_unique_objects|libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libbase|libbase_i18n|libbindings|libbindings_base|libblink_android_mojo_bindings_shared|libblink_common|libblink_controller|libblink_core|libblink_core_mojo_bindings_shared|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_modules|libblink_mojo_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcatalog_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcdm_manager|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent|libcontent_common_mojo_bindings_shar
ed|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcrash_key|libcrcrypto|libdbus|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevices|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_shared_typemap_traits|libgcm|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_switches|libgfx_x11|libgin|libgl_in_process_context|libgl_init|lib
gl_wrapper|libgles2|libgles2_implementation|libgles2_utils|libgpu|libgpu_ipc_service|libgtkui|libheadless|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|liblive_tab_count_metrics|libmanager|libmedia_blink|libmedia_gpu|libmedia_mojo_services|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirclient.so.9|libmirclient.so.9.TOC|libmirroring_service|libmojo_base_lib|libmojo_base_mojom|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_shared_typemap_traits|libmojo_core_embedder|libmojo_core_embedder_internal|libmojo_core_ports|libmojo_cpp_platform|libmojo_ime_lib|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojo_public_system|libmojo_public_system_cpp|libmojom_core_shared|libmojom_modules_shared|libmojom_platform_shared|libnative_th
eme|libnet|libnet_with_v8|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_cpp|libresource_coordinator_cpp_base|libresource_coordinator_cpp_features|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libservice|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom|libservice_manager_mojom_blink|libservice_manager_mojom_constants|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_shared|libservice_manager_mojom_traits|libsessions|libshared_memory_support|libshell_dialogs|l
ibskia|libsnapshot|libspeech_recognition_error_code_mojom|libspeech_recognition_error_code_mojom_blink|libspeech_recognition_error_code_mojom_shared|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing|libtracing_cpp|libtracing_mojom|libtracing_mojom_shared|libui_accessibility_ax_mojom|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_base|libui_base_clipboard|libui_base_clipboard_types|libui_base_ime|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|libui_views_mus_lib|liburl|liburl_ipc|liburl_matcher|libusb_shared|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libvr_base|libvr_common|libvr_ui|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature
_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebdata_common|libwebgpu|libwebview|libwm|libwm_public|libwtf|libx11_events_platform|libx11_window|libzygote|libmedia|libffmpeg
+%global privlibs libEGL|libGLESv2|libVkICD_mock_icd|libVkLayer_core_validation|libVkLayer_object_lifetimes|libVkLayer_stateless_validation|libVkLayer_thread_safety|libVkLayer_unique_objects|libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libauthenticator_test_mojo_bindings_shared|libbase|libbase_i18n|libbindings|libbindings_base|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojo_bindings_shared|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcdm_manager|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent|libconten
t_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcrash_key|libcrcrypto|libdbus|libdbus_thread_linux|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevices|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_shared_typemap_traits|libgcm|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_switches|libgfx_x1
1|libgin|libgl_in_process_context|libgl_init|libgl_wrapper|libgles2|libgles2_implementation|libgles2_utils|libgpu|libgpu_ipc_service|libgtkui|libheadless|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|liblive_tab_count_metrics|libmanager|libmedia_blink|libmedia_filters_jpeg_parser|libmedia_gpu|libmedia_mojo_services|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirclient.so.9|libmirroring_service|libmojo_base_lib|libmojo_base_mojom|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_shared_typemap_traits|libmojo_core_embedder|libmojo_core_embedder_internal|libmojo_core_ports|libmojo_cpp_platform|libmojo_ime_lib|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojo_public_system|libmojo_public_system_cpp|libmojom_core_shared|libmoj
om_mhtml_load_result_shared|libmojom_modules_shared|libmojom_platform_shared|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_cpp_base|libresource_coordinator_cpp_features|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libservice|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom|libservice_manager_mojom_blink|libservice_manager_mojom_constants|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_shared|libservice_manage
r_mojom_traits|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing|libtracing_cpp|libtracing_mojom|libtracing_mojom_shared|libui_accessibility_ax_mojom|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_base|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime|libui_base_ime_init|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|libui_views_mus_lib|liburl|liburl_ipc|liburl_matcher|libusb_shared|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature_mojo_binding
s_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebdata_common|libwebgpu|libwebview|libwm|libwm_public|libwtf|libx11_events_platform|libx11_window|libzygote|libmedia|libffmpeg
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
@@ -154,15 +157,15 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 73
+%global majorversion 75
%if %{freeworld}
Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3683.103
-Release: 1%{?dist}
+Version: %{majorversion}.0.3770.100
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -227,7 +230,7 @@ Patch42: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
Patch43: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch45: chromium-60.0.3112.78-no-zlib-mangle.patch
+Patch45: chromium-75.0.3770.80-no-zlib-mangle.patch
# Apply these changes to work around EPEL7 compiler issues
Patch46: chromium-62.0.3202.62-kmaxskip-constexpr.patch
Patch47: chromium-60.0.3112.90-vulkan-force-c99.patch
@@ -251,7 +254,7 @@ Patch85: chromium-68.0.3440.106-boolfix.patch
# From Debian
Patch86: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
# Use lstdc++ on EPEL7 only
-Patch87: chromium-65.0.3325.162-epel7-stdc++.patch
+Patch87: chromium-75.0.3770.100-epel7-stdc++.patch
# Missing files in tarball
Patch88: chromium-66.0.3359.117-missing-files.patch
# https://chromium.googlesource.com/chromium/src/+/ba4141e451f4e0b1b19410b1...
@@ -280,7 +283,6 @@ Patch100: chromium-67.0.3396.62-epel7-use-old-python-exec-syntax.patch
# Add "Fedora" to the user agent string
Patch101: chromium-72.0.3626.121-fedora-user-agent.patch
# Try to fix version.py for Rawhide
-Patch102: chromium-67.0.3396.99-py3fix.patch
Patch103: chromium-71.0.3578.98-py2-bootstrap.patch
# Fix default on redeclaration error
# https://chromium.googlesource.com/chromium/src/+/122692ccee62223f266a988c...
@@ -304,32 +306,40 @@ Patch119: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
# Enable VAAPI support on Linux
# NOTE: This patch will never land upstream
Patch121: enable-vaapi.patch
-Patch122: chromium-73.0.3683.75-vaapi-i686-fpermissive.patch
+Patch122: chromium-75.0.3770.80-vaapi-i686-fpermissive.patch
# Fix compatibility with VA-API library (libva) version 1
-Patch124: chromium-71.0.3578.98-vaapi-libva1-compatibility.patch
+Patch124: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
Patch126: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
-# Thank you Gentoo.
-#
-Patch128: chromium-73-gcc-0.patch
-Patch129: chromium-73-gcc-1.patch
-Patch130: chromium-73-gcc-2.patch
-Patch131: chromium-73-gcc-3.patch
-Patch132: chromium-73-gcc-4.patch
-Patch133: chromium-73-gcc-5.patch
-Patch134: chromium-73-gcc-6.patch
+# Thanks Ubuntu
+# Disable these two patches when v75 lands
+Patch130: revert-gn-4980.patch
+Patch131: revert-gn-4960.patch
+# Try to load widevine from other places
+Patch132: chromium-widevine-other-locations.patch
# Disable -fno-delete-null-pointer-checks
Patch135: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
# Add #include <cstring> to get pipewire code to build
Patch136: chromium-73.0.3683.75-pipewire-cstring-fix.patch
-# Conditionalize header-hygiene flags for clang
-Patch137: chromium-73.0.3683.75-no-header-hygiene.patch
-# Add missing #include <limits> needed to build crashpad for aarch64
-Patch138: chromium-73.0.3683.75-aarch64-crashpad-limits.patch
# el7 only patch
-Patch139: chromium-73.0.3683.75-el7-fix-noexcept.patch
-# https://bugs.chromium.org/p/chromium/issues/detail?id=949312
-Patch140: chromium-73.0.3683.103-glibc-2.29-clone-vfork.patch
+Patch139: chromium-75.0.3770.100-el7-fix-noexcept.patch
+# gcc does not have __assume
+Patch140: chromium-75.0.3770.80-gcc-no-assume.patch
+# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
+Patch141: chromium-75.0.3770.80-SIOCGSTAMP.patch
+# https://chromium.googlesource.com/chromium/src/+/aeed4d1f15ce84a17ea0bc21...
+Patch142: chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
+# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
+# It might make clang happy but it breaks gcc. F*** clang.
+Patch143: chromium-75.0.3770.80-revert-daff6b.patch
+# Avoid pure virtual crash destroying RenderProcessUserData
+# https://chromium.googlesource.com/chromium/src/+/cdf306db81efaaaa95448758...
+Patch144: chromium-75.0.3770.80-pure-virtual-crash-fix.patch
+# rename function to avoid conflict with rawhide glibc "gettid()"
+Patch145: chromium-75.0.3770.80-grpc-gettid-fix.patch
+# fix v8 compile with gcc
+# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
+Patch146: chromium-75.0.3770.100-fix-v8-gcc.patch
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
@@ -880,7 +890,6 @@ udev.
# %%patch100 -p1 -b .oldexec
%endif
%patch101 -p1 -b .fedora-user-agent
-%patch102 -p1 -b .py3fix
%patch103 -p1 -b .py2
# %%patch108 -p1 -b .move-unique-ptr
%patch110 -p1 -b .fix-default-redeclaration
@@ -892,27 +901,29 @@ udev.
# %%patch116 -p1 -b .r591015
%patch117 -p1 -b .nofc
%patch119 -p1 -b .aarch64-new-stat
+%if %{use_vaapi}
%patch121 -p1 -b .vaapi
+%endif
%ifarch i686
%patch122 -p1 -b .i686permissive
%endif
%patch124 -p1 -b .va1compat
%patch126 -p1 -b .gcc9
-%patch128 -p1 -b .gentoogcc0
-%patch129 -p1 -b .gentoogcc1
-%patch130 -p1 -b .gentoogcc2
-%patch131 -p1 -b .gentoogcc3
-%patch132 -p1 -b .gentoogcc4
-%patch133 -p1 -b .gentoogcc5
-%patch134 -p1 -b .gentoogcc6
+# %%patch130 -p1 -b .revert-gn-4980
+# %%patch131 -p1 -b .revert-gn-4960
+%patch132 -p1 -b .widevine-other-locations
%patch135 -p1 -b .disable-ndnpc
%patch136 -p1 -b .cstring-fix
-%patch137 -p1 -b .nohh
-%patch138 -p1 -b .aarch64-limits
%if 0%{?rhel} == 7
%patch139 -p1 -b .el7-noexcept
%endif
-%patch140 -p1 -b .glibc229
+%patch140 -p1 -b .gcc-assume
+%patch141 -p1 -b .SIOCGSTAMP
+%patch142 -p1 -b .gcc-dcheck_ne-fix
+%patch143 -p1 -b .revert-daff6b
+%patch144 -p1 -b .pure-virtual-fix
+%patch145 -p1 -b .gettid-fix
+%patch146 -p1 -b .fix-v8-gcc
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
@@ -1103,12 +1114,14 @@ CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=true is_component_build=true'
%else
CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=false is_component_build=false'
%endif
-CHROMIUM_BROWSER_GN_DEFINES+=' remove_webcore_debug_symbols=true enable_hangout_services_extension=true'
+CHROMIUM_BROWSER_GN_DEFINES+=' blink_symbol_level=0 enable_hangout_services_extension=true'
CHROMIUM_BROWSER_GN_DEFINES+=' use_aura=true'
CHROMIUM_BROWSER_GN_DEFINES+=' enable_widevine=true'
+%if %{use_vaapi}
%if 0%{?fedora} >= 28
CHROMIUM_BROWSER_GN_DEFINES+=' use_vaapi=true'
%endif
+%endif
%if 0%{?fedora}
CHROMIUM_BROWSER_GN_DEFINES+=' rtc_use_pipewire=true rtc_link_pipewire=true'
%endif
@@ -1170,6 +1183,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/angle/third_party/vulkan-tools' \
'third_party/angle/third_party/vulkan-validation-layers' \
'third_party/apple_apsl' \
+ 'third_party/axe-core' \
'third_party/blanketjs' \
'third_party/blink' \
'third_party/boringssl' \
@@ -1195,14 +1209,17 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/cld_3' \
'third_party/closure_compiler' \
'third_party/crashpad' \
+ 'third_party/crashpad/crashpad/third_party/lss' \
'third_party/crashpad/crashpad/third_party/zlib/' \
'third_party/crc32c' \
'third_party/cros_system_api' \
+ 'third_party/dav1d' \
+ 'third_party/dawn' \
'third_party/devscripts' \
'third_party/dom_distiller_js' \
+ 'third_party/emoji-segmenter' \
'third_party/expat' \
'third_party/ffmpeg' \
- 'third_party/fips181' \
'third_party/flac' \
'third_party/flatbuffers' \
'third_party/flot' \
@@ -1212,6 +1229,9 @@ build/linux/unbundle/remove_bundled_libraries.py \
'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/glslang' \
+ 'third_party/grpc' \
+ 'third_party/grpc/src/third_party/nanopb' \
'third_party/harfbuzz-ng' \
'third_party/hunspell' \
'third_party/iccjpeg' \
@@ -1276,6 +1296,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/pdfium/third_party/libtiff' \
'third_party/pdfium/third_party/skia_shared' \
'third_party/perfetto' \
+ 'third_party/pffft' \
'third_party/ply' \
'third_party/polymer' \
'third_party/protobuf' \
@@ -1901,6 +1922,22 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Jun 25 2019 Tom Callaway <spot(a)fedoraproject.org> - 75.0.3770.100-2
+- fix v8 compile with gcc
+
+* Thu Jun 20 2019 Tom Callaway <spot(a)fedoraproject.org> - 75.0.3770.100-1
+- update to 75.0.3770.100
+
+* Fri Jun 14 2019 Tom Callaway <spot(a)fedoraproject.org> - 75.0.3770.90-1
+- update to 75.0.3770.90
+
+* Wed Jun 5 2019 Tom Callaway <spot(a)fedoraproject.org> - 75.0.3770.80-1
+- update to 75.0.3770.80
+- disable vaapi (via conditional), too broken
+
+* Fri May 31 2019 Tom Callaway <spot(a)fedoraproject.org> - 74.0.3729.169-1
+- update to 74.0.3729.169
+
* Thu Apr 11 2019 Tom Callaway <spot(a)fedoraproject.org> - 73.0.3683.103-1
- update to 73.0.3683.103
- add CLONE_VFORK logic to seccomp filter for linux to handle glibc 2.29 change
diff --git a/chromium-widevine-other-locations.patch b/chromium-widevine-other-locations.patch
new file mode 100644
index 0000000..0460180
--- /dev/null
+++ b/chromium-widevine-other-locations.patch
@@ -0,0 +1,23 @@
+Description: try alternative locations for libwidevinecdm.so:
+ - $HOME/.local/lib/ (snap-friendly, see https://launchpad.net/bugs/1738149)
+ - /opt/google/chrome/ (installed by official google chrome package)
+Author: Olivier Tilloy <olivier.tilloy(a)canonical.com>
+
+--- a/chrome/common/chrome_paths.cc
++++ b/chrome/common/chrome_paths.cc
+@@ -377,6 +377,15 @@ bool PathProvider(int key, base::FilePat
+ // TODO(crbug.com/663554): Remove this after component updated CDM is
+ // supported on Linux and ChromeOS.
+ case chrome::FILE_WIDEVINE_CDM:
++ base::PathService::Get(base::DIR_HOME, &cur);
++ cur = cur.Append(FILE_PATH_LITERAL(".local/lib/libwidevinecdm.so"));
++ if (base::PathExists(cur)) {
++ break;
++ }
++ if (base::PathExists(base::FilePath(FILE_PATH_LITERAL("/opt/google/chrome/libwidevinecdm.so")))) {
++ cur = base::FilePath(FILE_PATH_LITERAL("/opt/google/chrome/libwidevinecdm.so"));
++ break;
++ }
+ if (!GetComponentDirectory(&cur))
+ return false;
+ cur =
diff --git a/revert-gn-4960.patch b/revert-gn-4960.patch
new file mode 100644
index 0000000..bb51ada
--- /dev/null
+++ b/revert-gn-4960.patch
@@ -0,0 +1,655 @@
+Description: revert https://gn.googlesource.com/gn/+/0d038c2e0a32a528713d3dfaf1f1e0cdfe87fd46, which breaks the chromium build
+
+--- a/tools/gn/build/gen.py
++++ b/tools/gn/build/gen.py
+@@ -522,6 +522,7 @@ def WriteGNNinja(path, platform, host, o
+ 'tools/gn/setup.cc',
+ 'tools/gn/source_dir.cc',
+ 'tools/gn/source_file.cc',
++ 'tools/gn/source_file_type.cc',
+ 'tools/gn/standard_out.cc',
+ 'tools/gn/string_utils.cc',
+ 'tools/gn/substitution_list.cc',
+--- a/tools/gn/tools/gn/c_tool.h
++++ b/tools/gn/tools/gn/c_tool.h
+@@ -12,6 +12,7 @@
+ #include "tools/gn/label.h"
+ #include "tools/gn/label_ptr.h"
+ #include "tools/gn/scope.h"
++#include "tools/gn/source_file_type.h"
+ #include "tools/gn/substitution_list.h"
+ #include "tools/gn/substitution_pattern.h"
+ #include "tools/gn/tool.h"
+--- a/tools/gn/tools/gn/compile_commands_writer.cc
++++ b/tools/gn/tools/gn/compile_commands_writer.cc
+@@ -122,7 +122,7 @@ void WriteCommand(const Target* target,
+ const CompileFlags& flags,
+ std::vector<OutputFile>& tool_outputs,
+ PathOutput& path_output,
+- SourceFile::Type source_type,
++ SourceFileType source_type,
+ const char* tool_name,
+ EscapeOptions opts,
+ std::string* compile_commands) {
+@@ -144,16 +144,16 @@ void WriteCommand(const Target* target,
+ } else if (range.type == &CSubstitutionCFlags) {
+ command_out << flags.cflags;
+ } else if (range.type == &CSubstitutionCFlagsC) {
+- if (source_type == SourceFile::SOURCE_C)
++ if (source_type == SOURCE_C)
+ command_out << flags.cflags_c;
+ } else if (range.type == &CSubstitutionCFlagsCc) {
+- if (source_type == SourceFile::SOURCE_CPP)
++ if (source_type == SOURCE_CPP)
+ command_out << flags.cflags_cc;
+ } else if (range.type == &CSubstitutionCFlagsObjC) {
+- if (source_type == SourceFile::SOURCE_M)
++ if (source_type == SOURCE_M)
+ command_out << flags.cflags_objc;
+ } else if (range.type == &CSubstitutionCFlagsObjCc) {
+- if (source_type == SourceFile::SOURCE_MM)
++ if (source_type == SOURCE_MM)
+ command_out << flags.cflags_objcc;
+ } else if (range.type == &SubstitutionLabel ||
+ range.type == &SubstitutionLabelName ||
+@@ -222,11 +222,9 @@ void CompileCommandsWriter::RenderJSON(c
+ for (const auto& source : target->sources()) {
+ // If this source is not a C/C++/ObjC/ObjC++ source (not header) file,
+ // continue as it does not belong in the compilation database.
+- SourceFile::Type source_type = source.type();
+- if (source_type != SourceFile::SOURCE_CPP &&
+- source_type != SourceFile::SOURCE_C &&
+- source_type != SourceFile::SOURCE_M &&
+- source_type != SourceFile::SOURCE_MM)
++ SourceFileType source_type = GetSourceFileType(source);
++ if (source_type != SOURCE_CPP && source_type != SOURCE_C &&
++ source_type != SOURCE_M && source_type != SOURCE_MM)
+ continue;
+
+ const char* tool_name = Tool::kToolNone;
+@@ -324,4 +322,4 @@ void CompileCommandsWriter::VisitDeps(co
+ VisitDeps(pair.ptr, visited);
+ }
+ }
+-}
++}
+\ No newline at end of file
+--- a/tools/gn/tools/gn/general_tool.h
++++ b/tools/gn/tools/gn/general_tool.h
+@@ -11,6 +11,7 @@
+ #include "base/macros.h"
+ #include "tools/gn/label.h"
+ #include "tools/gn/label_ptr.h"
++#include "tools/gn/source_file_type.h"
+ #include "tools/gn/substitution_list.h"
+ #include "tools/gn/substitution_pattern.h"
+ #include "tools/gn/tool.h"
+--- a/tools/gn/tools/gn/header_checker.cc
++++ b/tools/gn/tools/gn/header_checker.cc
+@@ -18,6 +18,7 @@
+ #include "tools/gn/err.h"
+ #include "tools/gn/filesystem_utils.h"
+ #include "tools/gn/scheduler.h"
++#include "tools/gn/source_file_type.h"
+ #include "tools/gn/target.h"
+ #include "tools/gn/trace.h"
+ #include "util/worker_pool.h"
+@@ -151,10 +152,9 @@ void HeaderChecker::RunCheckOverFiles(co
+
+ for (const auto& file : files) {
+ // Only check C-like source files (RC files also have includes).
+- SourceFile::Type type = file.first.type();
+- if (type != SourceFile::SOURCE_CPP && type != SourceFile::SOURCE_H &&
+- type != SourceFile::SOURCE_C && type != SourceFile::SOURCE_M &&
+- type != SourceFile::SOURCE_MM && type != SourceFile::SOURCE_RC)
++ SourceFileType type = GetSourceFileType(file.first);
++ if (type != SOURCE_CPP && type != SOURCE_H && type != SOURCE_C &&
++ type != SOURCE_M && type != SOURCE_MM && type != SOURCE_RC)
+ continue;
+
+ if (!check_generated_) {
+--- a/tools/gn/tools/gn/ninja_binary_target_writer.cc
++++ b/tools/gn/tools/gn/ninja_binary_target_writer.cc
+@@ -23,23 +23,22 @@
+ #include "tools/gn/ninja_utils.h"
+ #include "tools/gn/scheduler.h"
+ #include "tools/gn/settings.h"
++#include "tools/gn/source_file_type.h"
+ #include "tools/gn/string_utils.h"
+ #include "tools/gn/substitution_writer.h"
+ #include "tools/gn/target.h"
+
+ bool NinjaBinaryTargetWriter::SourceFileTypeSet::CSourceUsed() {
+- return Get(SourceFile::SOURCE_CPP) || Get(SourceFile::SOURCE_H) ||
+- Get(SourceFile::SOURCE_C) || Get(SourceFile::SOURCE_M) ||
+- Get(SourceFile::SOURCE_MM) || Get(SourceFile::SOURCE_RC) ||
+- Get(SourceFile::SOURCE_S);
++ return Get(SOURCE_CPP) || Get(SOURCE_H) || Get(SOURCE_C) || Get(SOURCE_M) ||
++ Get(SOURCE_MM) || Get(SOURCE_RC) || Get(SOURCE_S);
+ }
+
+ bool NinjaBinaryTargetWriter::SourceFileTypeSet::RustSourceUsed() {
+- return Get(SourceFile::SOURCE_RS);
++ return Get(SOURCE_RS);
+ }
+
+ bool NinjaBinaryTargetWriter::SourceFileTypeSet::GoSourceUsed() {
+- return Get(SourceFile::SOURCE_GO);
++ return Get(SOURCE_GO);
+ }
+
+ NinjaBinaryTargetWriter::NinjaBinaryTargetWriter(const Target* target,
+@@ -50,6 +49,10 @@ NinjaBinaryTargetWriter::NinjaBinaryTarg
+ NinjaBinaryTargetWriter::~NinjaBinaryTargetWriter() = default;
+
+ void NinjaBinaryTargetWriter::Run() {
++ SourceFileTypeSet used_types;
++ for (const auto& source : target_->sources())
++ used_types.Set(GetSourceFileType(source));
++
+ NinjaCBinaryTargetWriter writer(target_, out_);
+ writer.Run();
+ }
+--- a/tools/gn/tools/gn/ninja_binary_target_writer.h
++++ b/tools/gn/tools/gn/ninja_binary_target_writer.h
+@@ -23,12 +23,11 @@ class NinjaBinaryTargetWriter : public N
+ class SourceFileTypeSet {
+ public:
+ SourceFileTypeSet() {
+- memset(flags_, 0,
+- sizeof(bool) * static_cast<int>(SourceFile::SOURCE_NUMTYPES));
++ memset(flags_, 0, sizeof(bool) * static_cast<int>(SOURCE_NUMTYPES));
+ }
+
+- void Set(SourceFile::Type type) { flags_[static_cast<int>(type)] = true; }
+- bool Get(SourceFile::Type type) const {
++ void Set(SourceFileType type) { flags_[static_cast<int>(type)] = true; }
++ bool Get(SourceFileType type) const {
+ return flags_[static_cast<int>(type)];
+ }
+
+@@ -37,7 +36,7 @@ class NinjaBinaryTargetWriter : public N
+ bool GoSourceUsed();
+
+ private:
+- bool flags_[static_cast<int>(SourceFile::SOURCE_NUMTYPES)];
++ bool flags_[static_cast<int>(SOURCE_NUMTYPES)];
+ };
+
+ NinjaBinaryTargetWriter(const Target* target, std::ostream& out);
+--- a/tools/gn/tools/gn/ninja_c_binary_target_writer.cc
++++ b/tools/gn/tools/gn/ninja_c_binary_target_writer.cc
+@@ -24,6 +24,7 @@
+ #include "tools/gn/ninja_utils.h"
+ #include "tools/gn/scheduler.h"
+ #include "tools/gn/settings.h"
++#include "tools/gn/source_file_type.h"
+ #include "tools/gn/string_utils.h"
+ #include "tools/gn/substitution_writer.h"
+ #include "tools/gn/target.h"
+@@ -66,27 +67,27 @@ void AddSourceSetObjectFiles(const Targe
+ if (source_set->GetOutputFilesForSource(source, &tool_name, &tool_outputs))
+ obj_files->push_back(tool_outputs[0]);
+
+- used_types.Set(source.type());
++ used_types.Set(GetSourceFileType(source));
+ }
+
+ // Add MSVC precompiled header object files. GCC .gch files are not object
+ // files so they are omitted.
+ if (source_set->config_values().has_precompiled_headers()) {
+- if (used_types.Get(SourceFile::SOURCE_C)) {
++ if (used_types.Get(SOURCE_C)) {
+ const CTool* tool = source_set->toolchain()->GetToolAsC(CTool::kCToolCc);
+ if (tool && tool->precompiled_header_type() == CTool::PCH_MSVC) {
+ GetPCHOutputFiles(source_set, CTool::kCToolCc, &tool_outputs);
+ obj_files->Append(tool_outputs.begin(), tool_outputs.end());
+ }
+ }
+- if (used_types.Get(SourceFile::SOURCE_CPP)) {
++ if (used_types.Get(SOURCE_CPP)) {
+ const CTool* tool = source_set->toolchain()->GetToolAsC(CTool::kCToolCxx);
+ if (tool && tool->precompiled_header_type() == CTool::PCH_MSVC) {
+ GetPCHOutputFiles(source_set, CTool::kCToolCxx, &tool_outputs);
+ obj_files->Append(tool_outputs.begin(), tool_outputs.end());
+ }
+ }
+- if (used_types.Get(SourceFile::SOURCE_M)) {
++ if (used_types.Get(SOURCE_M)) {
+ const CTool* tool =
+ source_set->toolchain()->GetToolAsC(CTool::kCToolObjC);
+ if (tool && tool->precompiled_header_type() == CTool::PCH_MSVC) {
+@@ -94,7 +95,7 @@ void AddSourceSetObjectFiles(const Targe
+ obj_files->Append(tool_outputs.begin(), tool_outputs.end());
+ }
+ }
+- if (used_types.Get(SourceFile::SOURCE_MM)) {
++ if (used_types.Get(SOURCE_MM)) {
+ const CTool* tool =
+ source_set->toolchain()->GetToolAsC(CTool::kCToolObjCxx);
+ if (tool && tool->precompiled_header_type() == CTool::PCH_MSVC) {
+@@ -118,7 +119,7 @@ void NinjaCBinaryTargetWriter::Run() {
+ // Figure out what source types are needed.
+ SourceFileTypeSet used_types;
+ for (const auto& source : target_->sources())
+- used_types.Set(source.type());
++ used_types.Set(GetSourceFileType(source));
+
+ WriteCompilerVars(used_types);
+
+@@ -234,34 +235,31 @@ void NinjaCBinaryTargetWriter::WriteComp
+ target_->config_values().has_precompiled_headers();
+
+ EscapeOptions opts = GetFlagOptions();
+- if (used_types.Get(SourceFile::SOURCE_S) ||
+- used_types.Get(SourceFile::SOURCE_ASM)) {
++ if (used_types.Get(SOURCE_S) || used_types.Get(SOURCE_ASM)) {
+ WriteOneFlag(target_, &CSubstitutionAsmFlags, false, Tool::kToolNone,
+ &ConfigValues::asmflags, opts, path_output_, out_);
+ }
+- if (used_types.Get(SourceFile::SOURCE_C) ||
+- used_types.Get(SourceFile::SOURCE_CPP) ||
+- used_types.Get(SourceFile::SOURCE_M) ||
+- used_types.Get(SourceFile::SOURCE_MM)) {
++ if (used_types.Get(SOURCE_C) || used_types.Get(SOURCE_CPP) ||
++ used_types.Get(SOURCE_M) || used_types.Get(SOURCE_MM)) {
+ WriteOneFlag(target_, &CSubstitutionCFlags, false, Tool::kToolNone,
+ &ConfigValues::cflags, opts, path_output_, out_);
+ }
+- if (used_types.Get(SourceFile::SOURCE_C)) {
++ if (used_types.Get(SOURCE_C)) {
+ WriteOneFlag(target_, &CSubstitutionCFlagsC, has_precompiled_headers,
+ CTool::kCToolCc, &ConfigValues::cflags_c, opts, path_output_,
+ out_);
+ }
+- if (used_types.Get(SourceFile::SOURCE_CPP)) {
++ if (used_types.Get(SOURCE_CPP)) {
+ WriteOneFlag(target_, &CSubstitutionCFlagsCc, has_precompiled_headers,
+ CTool::kCToolCxx, &ConfigValues::cflags_cc, opts, path_output_,
+ out_);
+ }
+- if (used_types.Get(SourceFile::SOURCE_M)) {
++ if (used_types.Get(SOURCE_M)) {
+ WriteOneFlag(target_, &CSubstitutionCFlagsObjC, has_precompiled_headers,
+ CTool::kCToolObjC, &ConfigValues::cflags_objc, opts,
+ path_output_, out_);
+ }
+- if (used_types.Get(SourceFile::SOURCE_MM)) {
++ if (used_types.Get(SOURCE_MM)) {
+ WriteOneFlag(target_, &CSubstitutionCFlagsObjCc, has_precompiled_headers,
+ CTool::kCToolObjCxx, &ConfigValues::cflags_objcc, opts,
+ path_output_, out_);
+@@ -321,14 +319,14 @@ void NinjaCBinaryTargetWriter::WritePCHC
+
+ const CTool* tool_c = target_->toolchain()->GetToolAsC(CTool::kCToolCc);
+ if (tool_c && tool_c->precompiled_header_type() != CTool::PCH_NONE &&
+- used_types.Get(SourceFile::SOURCE_C)) {
++ used_types.Get(SOURCE_C)) {
+ WritePCHCommand(&CSubstitutionCFlagsC, CTool::kCToolCc,
+ tool_c->precompiled_header_type(), input_dep,
+ order_only_deps, object_files, other_files);
+ }
+ const CTool* tool_cxx = target_->toolchain()->GetToolAsC(CTool::kCToolCxx);
+ if (tool_cxx && tool_cxx->precompiled_header_type() != CTool::PCH_NONE &&
+- used_types.Get(SourceFile::SOURCE_CPP)) {
++ used_types.Get(SOURCE_CPP)) {
+ WritePCHCommand(&CSubstitutionCFlagsCc, CTool::kCToolCxx,
+ tool_cxx->precompiled_header_type(), input_dep,
+ order_only_deps, object_files, other_files);
+@@ -336,7 +334,7 @@ void NinjaCBinaryTargetWriter::WritePCHC
+
+ const CTool* tool_objc = target_->toolchain()->GetToolAsC(CTool::kCToolObjC);
+ if (tool_objc && tool_objc->precompiled_header_type() == CTool::PCH_GCC &&
+- used_types.Get(SourceFile::SOURCE_M)) {
++ used_types.Get(SOURCE_M)) {
+ WritePCHCommand(&CSubstitutionCFlagsObjC, CTool::kCToolObjC,
+ tool_objc->precompiled_header_type(), input_dep,
+ order_only_deps, object_files, other_files);
+@@ -345,7 +343,7 @@ void NinjaCBinaryTargetWriter::WritePCHC
+ const CTool* tool_objcxx =
+ target_->toolchain()->GetToolAsC(CTool::kCToolObjCxx);
+ if (tool_objcxx && tool_objcxx->precompiled_header_type() == CTool::PCH_GCC &&
+- used_types.Get(SourceFile::SOURCE_MM)) {
++ used_types.Get(SOURCE_MM)) {
+ WritePCHCommand(&CSubstitutionCFlagsObjCc, CTool::kCToolObjCxx,
+ tool_objcxx->precompiled_header_type(), input_dep,
+ order_only_deps, object_files, other_files);
+@@ -478,7 +476,7 @@ void NinjaCBinaryTargetWriter::WriteSour
+ deps.resize(0);
+ const char* tool_name = Tool::kToolNone;
+ if (!target_->GetOutputFilesForSource(source, &tool_name, &tool_outputs)) {
+- if (source.type() == SourceFile::SOURCE_DEF)
++ if (GetSourceFileType(source) == SOURCE_DEF)
+ other_files->push_back(source);
+ continue; // No output for this source.
+ }
+@@ -599,7 +597,7 @@ void NinjaCBinaryTargetWriter::WriteLink
+ const SourceFile* optional_def_file = nullptr;
+ if (!other_files.empty()) {
+ for (const SourceFile& src_file : other_files) {
+- if (src_file.type() == SourceFile::SOURCE_DEF) {
++ if (GetSourceFileType(src_file) == SOURCE_DEF) {
+ optional_def_file = &src_file;
+ implicit_deps.push_back(
+ OutputFile(settings_->build_settings(), src_file));
+--- a/tools/gn/tools/gn/source_file.cc
++++ b/tools/gn/tools/gn/source_file.cc
+@@ -21,48 +21,18 @@ void AssertValueSourceFileString(const s
+ DCHECK(!EndsWithSlash(s)) << s;
+ }
+
+-SourceFile::Type GetSourceFileType(const std::string& file) {
+- base::StringPiece extension = FindExtension(&file);
+- if (extension == "cc" || extension == "cpp" || extension == "cxx")
+- return SourceFile::SOURCE_CPP;
+- if (extension == "h" || extension == "hpp" || extension == "hxx" ||
+- extension == "hh" || extension == "inc")
+- return SourceFile::SOURCE_H;
+- if (extension == "c")
+- return SourceFile::SOURCE_C;
+- if (extension == "m")
+- return SourceFile::SOURCE_M;
+- if (extension == "mm")
+- return SourceFile::SOURCE_MM;
+- if (extension == "rc")
+- return SourceFile::SOURCE_RC;
+- if (extension == "S" || extension == "s" || extension == "asm")
+- return SourceFile::SOURCE_S;
+- if (extension == "o" || extension == "obj")
+- return SourceFile::SOURCE_O;
+- if (extension == "def")
+- return SourceFile::SOURCE_DEF;
+- if (extension == "rs")
+- return SourceFile::SOURCE_RS;
+- if (extension == "go")
+- return SourceFile::SOURCE_GO;
+-
+- return SourceFile::SOURCE_UNKNOWN;
+-}
+-
+ } // namespace
+
+-SourceFile::SourceFile() : type_(SOURCE_UNKNOWN) {}
++SourceFile::SourceFile() = default;
+
+ SourceFile::SourceFile(const base::StringPiece& p)
+- : value_(p.data(), p.size()), type_(GetSourceFileType(value_)) {
++ : value_(p.data(), p.size()) {
+ DCHECK(!value_.empty());
+ AssertValueSourceFileString(value_);
+ NormalizePath(&value_);
+ }
+
+-SourceFile::SourceFile(SwapIn, std::string* value)
+- : type_(GetSourceFileType(*value)) {
++SourceFile::SourceFile(SwapIn, std::string* value) {
+ value_.swap(*value);
+ DCHECK(!value_.empty());
+ AssertValueSourceFileString(value_);
+--- a/tools/gn/tools/gn/source_file.h
++++ b/tools/gn/tools/gn/source_file.h
+@@ -20,28 +20,6 @@ class SourceDir;
+ // ends in one.
+ class SourceFile {
+ public:
+- // This should be sequential integers starting from 0 so they can be used as
+- // array indices.
+- enum Type {
+- SOURCE_UNKNOWN = 0,
+- SOURCE_ASM,
+- SOURCE_C,
+- SOURCE_CPP,
+- SOURCE_H,
+- SOURCE_M,
+- SOURCE_MM,
+- SOURCE_S,
+- SOURCE_RC,
+- SOURCE_O, // Object files can be inputs, too. Also counts .obj.
+- SOURCE_DEF,
+-
+- SOURCE_RS,
+- SOURCE_GO,
+-
+- // Must be last.
+- SOURCE_NUMTYPES,
+- };
+-
+ enum SwapIn { SWAP_IN };
+
+ SourceFile();
+@@ -58,7 +36,6 @@ class SourceFile {
+
+ bool is_null() const { return value_.empty(); }
+ const std::string& value() const { return value_; }
+- Type type() const { return type_; }
+
+ // Returns everything after the last slash.
+ std::string GetName() const;
+@@ -103,7 +80,6 @@ class SourceFile {
+ friend class SourceDir;
+
+ std::string value_;
+- Type type_;
+
+ // Copy & assign supported.
+ };
+--- /dev/null
++++ b/tools/gn/tools/gn/source_file_type.cc
+@@ -0,0 +1,37 @@
++// Copyright 2014 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "tools/gn/source_file_type.h"
++
++#include "tools/gn/filesystem_utils.h"
++#include "tools/gn/source_file.h"
++
++SourceFileType GetSourceFileType(const SourceFile& file) {
++ base::StringPiece extension = FindExtension(&file.value());
++ if (extension == "cc" || extension == "cpp" || extension == "cxx")
++ return SOURCE_CPP;
++ if (extension == "h" || extension == "hpp" || extension == "hxx" ||
++ extension == "hh")
++ return SOURCE_H;
++ if (extension == "c")
++ return SOURCE_C;
++ if (extension == "m")
++ return SOURCE_M;
++ if (extension == "mm")
++ return SOURCE_MM;
++ if (extension == "rc")
++ return SOURCE_RC;
++ if (extension == "S" || extension == "s" || extension == "asm")
++ return SOURCE_S;
++ if (extension == "o" || extension == "obj")
++ return SOURCE_O;
++ if (extension == "def")
++ return SOURCE_DEF;
++ if (extension == "rs")
++ return SOURCE_RS;
++ if (extension == "go")
++ return SOURCE_GO;
++
++ return SOURCE_UNKNOWN;
++}
+--- /dev/null
++++ b/tools/gn/tools/gn/source_file_type.h
+@@ -0,0 +1,34 @@
++// Copyright 2014 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef TOOLS_GN_SOURCE_FILE_TYPE_H_
++#define TOOLS_GN_SOURCE_FILE_TYPE_H_
++
++class SourceFile;
++
++// This should be sequential integers starting from 0 so they can be used as
++// array indices.
++enum SourceFileType {
++ SOURCE_UNKNOWN = 0,
++ SOURCE_ASM,
++ SOURCE_C,
++ SOURCE_CPP,
++ SOURCE_H,
++ SOURCE_M,
++ SOURCE_MM,
++ SOURCE_S,
++ SOURCE_RC,
++ SOURCE_O, // Object files can be inputs, too. Also counts .obj.
++ SOURCE_DEF,
++
++ SOURCE_RS,
++ SOURCE_GO,
++
++ // Must be last.
++ SOURCE_NUMTYPES,
++};
++
++SourceFileType GetSourceFileType(const SourceFile& file);
++
++#endif // TOOLS_GN_SOURCE_FILE_TYPE_H_
+--- a/tools/gn/tools/gn/target.cc
++++ b/tools/gn/tools/gn/target.cc
+@@ -16,6 +16,7 @@
+ #include "tools/gn/filesystem_utils.h"
+ #include "tools/gn/functions.h"
+ #include "tools/gn/scheduler.h"
++#include "tools/gn/source_file_type.h"
+ #include "tools/gn/substitution_writer.h"
+ #include "tools/gn/tool.h"
+ #include "tools/gn/toolchain.h"
+@@ -486,10 +487,10 @@ bool Target::GetOutputFilesForSource(con
+ outputs->clear();
+ *computed_tool_type = Tool::kToolNone;
+
+- SourceFile::Type file_type = source.type();
+- if (file_type == SourceFile::SOURCE_UNKNOWN)
++ SourceFileType file_type = GetSourceFileType(source);
++ if (file_type == SOURCE_UNKNOWN)
+ return false;
+- if (file_type == SourceFile::SOURCE_O) {
++ if (file_type == SOURCE_O) {
+ // Object files just get passed to the output and not compiled.
+ outputs->push_back(OutputFile(settings()->build_settings(), source));
+ return true;
+--- a/tools/gn/tools/gn/tool.cc
++++ b/tools/gn/tools/gn/tool.cc
+@@ -261,27 +261,27 @@ std::unique_ptr<Tool> Tool::CreateTool(c
+ }
+
+ // static
+-const char* Tool::GetToolTypeForSourceType(SourceFile::Type type) {
++const char* Tool::GetToolTypeForSourceType(SourceFileType type) {
+ switch (type) {
+- case SourceFile::SOURCE_C:
++ case SOURCE_C:
+ return CTool::kCToolCc;
+- case SourceFile::SOURCE_CPP:
++ case SOURCE_CPP:
+ return CTool::kCToolCxx;
+- case SourceFile::SOURCE_M:
++ case SOURCE_M:
+ return CTool::kCToolObjC;
+- case SourceFile::SOURCE_MM:
++ case SOURCE_MM:
+ return CTool::kCToolObjCxx;
+- case SourceFile::SOURCE_ASM:
+- case SourceFile::SOURCE_S:
++ case SOURCE_ASM:
++ case SOURCE_S:
+ return CTool::kCToolAsm;
+- case SourceFile::SOURCE_RC:
++ case SOURCE_RC:
+ return CTool::kCToolRc;
+- case SourceFile::SOURCE_UNKNOWN:
+- case SourceFile::SOURCE_H:
+- case SourceFile::SOURCE_O:
+- case SourceFile::SOURCE_DEF:
+- case SourceFile::SOURCE_GO:
+- case SourceFile::SOURCE_RS:
++ case SOURCE_UNKNOWN:
++ case SOURCE_H:
++ case SOURCE_O:
++ case SOURCE_DEF:
++ case SOURCE_GO:
++ case SOURCE_RS:
+ return kToolNone;
+ default:
+ NOTREACHED();
+--- a/tools/gn/tools/gn/tool.h
++++ b/tools/gn/tools/gn/tool.h
+@@ -12,7 +12,7 @@
+ #include "tools/gn/label.h"
+ #include "tools/gn/label_ptr.h"
+ #include "tools/gn/scope.h"
+-#include "tools/gn/source_file.h"
++#include "tools/gn/source_file_type.h"
+ #include "tools/gn/substitution_list.h"
+ #include "tools/gn/substitution_pattern.h"
+
+@@ -171,7 +171,7 @@ class Tool {
+ Toolchain* toolchain,
+ Err* err);
+
+- static const char* GetToolTypeForSourceType(SourceFile::Type type);
++ static const char* GetToolTypeForSourceType(SourceFileType type);
+ static const char* GetToolTypeForTargetFinalOutput(const Target* target);
+
+ protected:
+--- a/tools/gn/tools/gn/toolchain.cc
++++ b/tools/gn/tools/gn/toolchain.cc
+@@ -88,16 +88,16 @@ void Toolchain::ToolchainSetupComplete()
+ setup_complete_ = true;
+ }
+
+-const Tool* Toolchain::GetToolForSourceType(SourceFile::Type type) const {
++const Tool* Toolchain::GetToolForSourceType(SourceFileType type) const {
+ return GetTool(Tool::GetToolTypeForSourceType(type));
+ }
+
+-const CTool* Toolchain::GetToolForSourceTypeAsC(SourceFile::Type type) const {
++const CTool* Toolchain::GetToolForSourceTypeAsC(SourceFileType type) const {
+ return GetToolAsC(Tool::GetToolTypeForSourceType(type));
+ }
+
+ const GeneralTool* Toolchain::GetToolForSourceTypeAsGeneral(
+- SourceFile::Type type) const {
++ SourceFileType type) const {
+ return GetToolAsGeneral(Tool::GetToolTypeForSourceType(type));
+ }
+
+--- a/tools/gn/tools/gn/toolchain.h
++++ b/tools/gn/tools/gn/toolchain.h
+@@ -12,6 +12,7 @@
+ #include "tools/gn/item.h"
+ #include "tools/gn/label_ptr.h"
+ #include "tools/gn/scope.h"
++#include "tools/gn/source_file_type.h"
+ #include "tools/gn/substitution_type.h"
+ #include "tools/gn/tool.h"
+ #include "tools/gn/value.h"
+@@ -87,9 +88,9 @@ class Toolchain : public Item {
+ }
+
+ // Returns the tool for compiling the given source file type.
+- const Tool* GetToolForSourceType(SourceFile::Type type) const;
+- const CTool* GetToolForSourceTypeAsC(SourceFile::Type type) const;
+- const GeneralTool* GetToolForSourceTypeAsGeneral(SourceFile::Type type) const;
++ const Tool* GetToolForSourceType(SourceFileType type) const;
++ const CTool* GetToolForSourceTypeAsC(SourceFileType type) const;
++ const GeneralTool* GetToolForSourceTypeAsGeneral(SourceFileType type) const;
+
+ // Returns the tool that produces the final output for the given target type.
+ // This isn't necessarily the tool you would expect. For copy target, this
+--- a/tools/gn/tools/gn/visual_studio_writer.cc
++++ b/tools/gn/tools/gn/visual_studio_writer.cc
+@@ -24,6 +24,7 @@
+ #include "tools/gn/label_pattern.h"
+ #include "tools/gn/parse_tree.h"
+ #include "tools/gn/path_output.h"
++#include "tools/gn/source_file_type.h"
+ #include "tools/gn/standard_out.h"
+ #include "tools/gn/target.h"
+ #include "tools/gn/variables.h"
diff --git a/revert-gn-4980.patch b/revert-gn-4980.patch
new file mode 100644
index 0000000..fe550e9
--- /dev/null
+++ b/revert-gn-4980.patch
@@ -0,0 +1,134 @@
+Description: revert https://gn.googlesource.com/gn/+/8730b0feb6b991fa47368566501ab9ccfb453c92, which breaks the chromium build
+
+--- a/tools/gn/tools/gn/binary_target_generator.cc
++++ b/tools/gn/tools/gn/binary_target_generator.cc
+@@ -68,38 +68,6 @@ void BinaryTargetGenerator::DoRun() {
+ return;
+ }
+
+-bool BinaryTargetGenerator::FillSources() {
+- bool ret = TargetGenerator::FillSources();
+- for (std::size_t i = 0; i < target_->sources().size(); ++i) {
+- const auto& source = target_->sources()[i];
+- switch (source.type()) {
+- case SourceFile::SOURCE_CPP:
+- case SourceFile::SOURCE_H:
+- case SourceFile::SOURCE_C:
+- case SourceFile::SOURCE_M:
+- case SourceFile::SOURCE_MM:
+- case SourceFile::SOURCE_S:
+- case SourceFile::SOURCE_ASM:
+- case SourceFile::SOURCE_O:
+- // These are allowed.
+- break;
+- case SourceFile::SOURCE_RC:
+- case SourceFile::SOURCE_DEF:
+- case SourceFile::SOURCE_RS:
+- case SourceFile::SOURCE_GO:
+- case SourceFile::SOURCE_UNKNOWN:
+- case SourceFile::SOURCE_NUMTYPES:
+- *err_ =
+- Err(scope_->GetValue(variables::kSources, true)->list_value()[i],
+- std::string("Only source, header, and object files belong in "
+- "the sources of a ") +
+- Target::GetStringForOutputType(target_->output_type()) +
+- ". " + source.value() + " is not one of the valid types.");
+- }
+- }
+- return ret;
+-}
+-
+ bool BinaryTargetGenerator::FillCompleteStaticLib() {
+ if (target_->output_type() == Target::STATIC_LIBRARY) {
+ const Value* value = scope_->GetValue(variables::kCompleteStaticLib, true);
+--- a/tools/gn/tools/gn/binary_target_generator.h
++++ b/tools/gn/tools/gn/binary_target_generator.h
+@@ -22,7 +22,6 @@ class BinaryTargetGenerator : public Tar
+
+ protected:
+ void DoRun() override;
+- bool FillSources() override;
+
+ private:
+ bool FillCompleteStaticLib();
+--- a/tools/gn/tools/gn/source_dir.cc
++++ b/tools/gn/tools/gn/source_dir.cc
+@@ -98,10 +98,10 @@ SourceFile SourceDir::ResolveRelativeFil
+ return ret;
+
+ const std::string& input_string = p.string_value();
+- if (!ValidateResolveInput<std::string>(true, p, input_string, err))
++ if (!ValidateResolveInput<std::string>(true, p, input_string, err)) {
+ return ret;
+-
+- ret.SetValue(ResolveRelative(input_string, value_, true, source_root));
++ }
++ ret.value_ = ResolveRelative(input_string, value_, true, source_root);
+ return ret;
+ }
+
+--- a/tools/gn/tools/gn/source_file.cc
++++ b/tools/gn/tools/gn/source_file.cc
+@@ -55,19 +55,18 @@ SourceFile::Type GetSourceFileType(const
+ SourceFile::SourceFile() : type_(SOURCE_UNKNOWN) {}
+
+ SourceFile::SourceFile(const base::StringPiece& p)
+- : value_(p.data(), p.size()) {
++ : value_(p.data(), p.size()), type_(GetSourceFileType(value_)) {
+ DCHECK(!value_.empty());
+ AssertValueSourceFileString(value_);
+ NormalizePath(&value_);
+- type_ = GetSourceFileType(value_);
+ }
+
+-SourceFile::SourceFile(SwapIn, std::string* value) {
++SourceFile::SourceFile(SwapIn, std::string* value)
++ : type_(GetSourceFileType(*value)) {
+ value_.swap(*value);
+ DCHECK(!value_.empty());
+ AssertValueSourceFileString(value_);
+ NormalizePath(&value_);
+- type_ = GetSourceFileType(value_);
+ }
+
+ SourceFile::~SourceFile() = default;
+@@ -93,8 +92,3 @@ SourceDir SourceFile::GetDir() const {
+ base::FilePath SourceFile::Resolve(const base::FilePath& source_root) const {
+ return ResolvePath(value_, true, source_root);
+ }
+-
+-void SourceFile::SetValue(const std::string& value) {
+- value_ = value;
+- type_ = GetSourceFileType(value_);
+-}
+--- a/tools/gn/tools/gn/source_file.h
++++ b/tools/gn/tools/gn/source_file.h
+@@ -97,16 +97,11 @@ class SourceFile {
+ return value_ < other.value_;
+ }
+
+- void swap(SourceFile& other) {
+- value_.swap(other.value_);
+- std::swap(type_, other.type_);
+- }
++ void swap(SourceFile& other) { value_.swap(other.value_); }
+
+ private:
+ friend class SourceDir;
+
+- void SetValue(const std::string& value);
+-
+ std::string value_;
+ Type type_;
+
+--- a/tools/gn/tools/gn/target_generator.h
++++ b/tools/gn/tools/gn/target_generator.h
+@@ -47,7 +47,7 @@ class TargetGenerator {
+
+ const BuildSettings* GetBuildSettings() const;
+
+- virtual bool FillSources();
++ bool FillSources();
+ bool FillPublic();
+ bool FillConfigs();
+ bool FillOutputs(bool allow_substitutions);
diff --git a/sources b/sources
index a165f65..dced2ee 100644
--- a/sources
+++ b/sources
@@ -16,4 +16,4 @@ fa87472a877e70c5bce22e42be5c25a9 Arimo-Italic.ttf
314394b29c1d15a73c3f00316003810a MuktiNarrow-0.94.tar.bz2
4d610887ff4d445cbc639aae7828d139 gelasio.zip
49a7f897775cce21d2b69968b8af1cea depot_tools.git-master.tar.gz
-6614c55c213b9348ce7f4d072fe0a848 chromium-73.0.3683.103.tar.xz
+89e08b5a7f6f7ad006ce8eeec858a4d8 chromium-75.0.3770.100.tar.xz
5 years, 3 months
[vlc] Update to 20190702
by Nicolas Chauvet
commit 0221cb2d1577ccdc7841fb5d0f4a6315e8e5b9d1
Author: Nicolas Chauvet <kwizart(a)gmail.com>
Date: Tue Jul 2 08:22:26 2019 +0200
Update to 20190702
sources | 2 +-
vlc.spec | 11 +++++++----
2 files changed, 8 insertions(+), 5 deletions(-)
---
diff --git a/sources b/sources
index 81cb17f..0e167b7 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-1adf2fe21070378b0e45ad163d3b232d vlc-3.0.7.1.tar.xz
+3f66239c70e9cdaabec359adcdbae89c vlc-3.0.8-20190702-0221.tar.xz
diff --git a/vlc.spec b/vlc.spec
index 189f2ac..34f8d88 100644
--- a/vlc.spec
+++ b/vlc.spec
@@ -1,6 +1,6 @@
-#global vlc_date 20190406
+%global vlc_date 20190702
#global vlc_rc -rc9
-#global vlc_tag -#{?vlc_date}-0223
+%global vlc_tag -%{?vlc_date}-0221
%if 0%{?vlc_tag:1}
%global vlc_url https://nightlies.videolan.org/build/source/
%else
@@ -50,8 +50,8 @@
Summary: The cross-platform open-source multimedia framework, player and server
Epoch: 1
Name: vlc
-Version: 3.0.7.1
-Release: 4%{?dist}
+Version: 3.0.8
+Release: 0.1%{?dist}
License: GPLv2+
URL: https://www.videolan.org
Source0: %{vlc_url}/%{?!vlc_tag:%{version}/}vlc-%{version}%{?vlc_tag}.tar.xz
@@ -551,6 +551,9 @@ fi || :
%changelog
+* Tue Jul 02 2019 Nicolas Chauvet <kwizart(a)gmail.com> - 1:3.0.8-0.1
+- Update to 20190702
+
* Tue Jun 18 2019 Nicolas Chauvet <kwizart(a)gmail.com> - 1:3.0.7.1-4
- Avoid files listed twice
- Rework with/without options
5 years, 3 months