[chromium-browser-privacy: 3/8] Update to 83.0.4103.106
by qvint
commit 0b01f6a29d4fc16dbd9d3d973e5aee9c981f1aa3
Author: qvint <dotqvint(a)gmail.com>
Date: Wed Jun 17 20:07:17 2020 +0300
Update to 83.0.4103.106
chromium-freeworld.spec | 7 +++++--
sources | 2 +-
2 files changed, 6 insertions(+), 3 deletions(-)
---
diff --git a/chromium-freeworld.spec b/chromium-freeworld.spec
index ad62344..ab7e48b 100644
--- a/chromium-freeworld.spec
+++ b/chromium-freeworld.spec
@@ -69,8 +69,8 @@
%global ozone 0
##############################Package Definitions######################################
Name: chromium-freeworld
-Version: 83.0.4103.97
-Release: 2%{?dist}
+Version: 83.0.4103.106
+Release: 1%{?dist}
Summary: Chromium web browser built with all freeworld codecs and VA-API support
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)
URL: https://www.chromium.org/Home
@@ -748,6 +748,9 @@ appstream-util validate-relax --nonet "%{buildroot}%{_metainfodir}/%{name}.appda
%{chromiumdir}/swiftshader/libGLESv2.so
#########################################changelogs#################################################
%changelog
+* Wed Jun 17 2020 qvint <dotqvint(a)gmail.com> - 83.0.4103.106-1
+- Update to 83.0.4103.106
+
* Mon Jun 08 2020 qvint <dotqvint(a)gmail.com> - 83.0.4103.97-2
- Fix crash in ServiceWorker (rfbz#5671)
diff --git a/sources b/sources
index d064e1f..dd78efb 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (chromium-83.0.4103.97.tar.xz) = 5b7d7ab2f4e3d7ee965be4bba2d7ee1f3ce7f062920547639fd8d695eb8ef4a94153a99ecd10fb13b46fbcdec59ed3792231fec9c0773a457a60a551ebbe53c9
+SHA512 (chromium-83.0.4103.106.tar.xz) = 37d0298ec6794f753bc280352c9ea45d57dd5050240d468fd2a7465b2021ebb598cdc6c4538050dd1d626bcd4a146af87fb837619e08766d38d21821605bd3a8
4 years, 5 months
[chromium-browser-privacy: 2/8] Fix crash in ServiceWorker
by qvint
commit 6314d66137589969958360b4db4362c9fb8295d5
Author: qvint <dotqvint(a)gmail.com>
Date: Mon Jun 8 12:03:06 2020 +0300
Fix crash in ServiceWorker
See https://bugzilla.rpmfusion.org/show_bug.cgi?id=5671
chromium-83-gcc-r766770.patch | 134 ++++++++++++++++++++++++++++++++++++++++++
chromium-freeworld.spec | 6 +-
2 files changed, 139 insertions(+), 1 deletion(-)
---
diff --git a/chromium-83-gcc-r766770.patch b/chromium-83-gcc-r766770.patch
new file mode 100644
index 0000000..2b63ccf
--- /dev/null
+++ b/chromium-83-gcc-r766770.patch
@@ -0,0 +1,134 @@
+From bd59ce32629ef684624821419c43967b73d2989e Mon Sep 17 00:00:00 2001
+From: Hiroki Nakagawa <nhiroki(a)chromium.org>
+Date: Fri, 8 May 2020 08:25:31 +0000
+Subject: [PATCH] ServiceWorker: Avoid double destruction of
+ ServiceWorkerObjectHost on connection error
+
+This CL avoids the case where ServiceWorkerObjectHost is destroyed twice
+on ServiceWorkerObjectHost::OnConnectionError() when Chromium is built
+with the GCC build toolchain.
+
+> How does the issue happen?
+
+ServiceWorkerObjectHost has a cyclic reference like this:
+
+ServiceWorkerObjectHost
+ --([1] scoped_refptr)--> ServiceWorkerVersion
+ --([2] std::unique_ptr)--> ServiceWorkerProviderHost
+ --([3] std::unique_ptr)--> ServiceWorkerContainerHost
+ --([4] std::unique_ptr)--> ServiceWorkerObjectHost
+
+Note that ServiceWorkerContainerHost manages ServiceWorkerObjectHost in
+map<int64_t version_id, std::unique_ptr<ServiceWorkerObjectHost>>.
+
+When ServiceWorkerObjectHost::OnConnectionError() is called, the
+function removes the reference [4] from the map, and destroys
+ServiceWorkerObjectHost. If the object host has the last reference [1]
+to ServiceWorkerVersion, the destruction also cuts off the references
+[2] and [3], and destroys ServiceWorkerProviderHost and
+ServiceWorkerContainerHost.
+
+This seems to work well on the Chromium's default toolchain, but not
+work on the GCC toolchain. According to the report, destruction of
+ServiceWorkerContainerHost happens while the map owned by the container
+host is erasing the ServiceWorkerObjectHost, and this results in crash
+due to double destruction of the object host.
+
+I don't know the reason why this happens only on the GCC toolchain, but
+I suspect the order of object destruction on std::map::erase() could be
+different depending on the toolchains.
+
+> How does this CL fix this?
+
+The ideal fix is to redesign the ownership model of
+ServiceWorkerVersion, but it's not feasible in the short term.
+
+Instead, this CL avoids destruction of ServiceWorkerObjectHost on
+std::map::erase(). The new code takes the ownership of the object host
+from the map first, and then erases the entry from the map. This
+separates timings to erase the map entry and to destroy the object host,
+so the crash should no longer happen.
+
+Bug: 1056598
+Change-Id: Id30654cb575bc557c42044d6f0c6f1f9bfaed613
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2094496
+Reviewed-by: Makoto Shimazu <shimazu(a)chromium.org>
+Commit-Queue: Hiroki Nakagawa <nhiroki(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#766770}
+---
+ .../service_worker_container_host.cc | 10 +++++
+ .../service_worker_object_host_unittest.cc | 38 +++++++++++++++++++
+ 2 files changed, 48 insertions(+)
+
+--- a/content/browser/service_worker/service_worker_container_host.cc
++++ b/content/browser/service_worker/service_worker_container_host.cc
+@@ -713,6 +713,16 @@ void ServiceWorkerContainerHost::RemoveS
+ int64_t version_id) {
+ DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
+ DCHECK(base::Contains(service_worker_object_hosts_, version_id));
++
++ // ServiceWorkerObjectHost to be deleted may have the last reference to
++ // ServiceWorkerVersion that indirectly owns this ServiceWorkerContainerHost.
++ // If we erase the object host directly from the map, |this| could be deleted
++ // during the map operation and may crash. To avoid the case, we take the
++ // ownership of the object host from the map first, and then erase the entry
++ // from the map. See https://crbug.com/1056598 for details.
++ std::unique_ptr<ServiceWorkerObjectHost> to_be_deleted =
++ std::move(service_worker_object_hosts_[version_id]);
++ DCHECK(to_be_deleted);
+ service_worker_object_hosts_.erase(version_id);
+ }
+
+--- a/content/browser/service_worker/service_worker_object_host_unittest.cc
++++ b/content/browser/service_worker/service_worker_object_host_unittest.cc
+@@ -200,6 +200,19 @@ class ServiceWorkerObjectHostTest : publ
+ return registration_info;
+ }
+
++ void CallOnConnectionError(ServiceWorkerContainerHost* container_host,
++ int64_t version_id) {
++ // ServiceWorkerObjectHost has the last reference to the version.
++ ServiceWorkerObjectHost* object_host =
++ GetServiceWorkerObjectHost(container_host, version_id);
++ EXPECT_TRUE(object_host->version_->HasOneRef());
++
++ // Make sure that OnConnectionError induces destruction of the version and
++ // the object host.
++ object_host->receivers_.Clear();
++ object_host->OnConnectionError();
++ }
++
+ BrowserTaskEnvironment task_environment_;
+ std::unique_ptr<EmbeddedWorkerTestHelper> helper_;
+ scoped_refptr<ServiceWorkerRegistration> registration_;
+@@ -409,5 +422,30 @@ TEST_F(ServiceWorkerObjectHostTest, Disp
+ events[0]->source_info_for_client->client_type);
+ }
+
++// This is a regression test for https://crbug.com/1056598.
++TEST_F(ServiceWorkerObjectHostTest, OnConnectionError) {
++ const GURL scope("https://www.example.com/");
++ const GURL script_url("https://www.example.com/service_worker.js");
++ Initialize(std::make_unique<EmbeddedWorkerTestHelper>(base::FilePath()));
++ SetUpRegistration(scope, script_url);
++
++ // Create the provider host.
++ ASSERT_EQ(blink::ServiceWorkerStatusCode::kOk,
++ StartServiceWorker(version_.get()));
++
++ // Set up the case where the last reference to the version is owned by the
++ // service worker object host.
++ ServiceWorkerContainerHost* container_host =
++ version_->provider_host()->container_host();
++ ServiceWorkerVersion* version_rawptr = version_.get();
++ version_ = nullptr;
++ ASSERT_TRUE(version_rawptr->HasOneRef());
++
++ // Simulate the connection error that induces the object host destruction.
++ // This shouldn't crash.
++ CallOnConnectionError(container_host, version_rawptr->version_id());
++ base::RunLoop().RunUntilIdle();
++}
++
+ } // namespace service_worker_object_host_unittest
+ } // namespace content
diff --git a/chromium-freeworld.spec b/chromium-freeworld.spec
index 514cfdb..ad62344 100644
--- a/chromium-freeworld.spec
+++ b/chromium-freeworld.spec
@@ -70,7 +70,7 @@
##############################Package Definitions######################################
Name: chromium-freeworld
Version: 83.0.4103.97
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Chromium web browser built with all freeworld codecs and VA-API support
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)
URL: https://www.chromium.org/Home
@@ -219,6 +219,7 @@ Patch153: chromium-83-gcc-r762806.patch
Patch154: chromium-83-gcc-10-r31184.patch
Patch155: chromium-83-gcc-10-r766427.patch
%endif
+Patch156: chromium-83-gcc-r766770.patch
# Gentoo patches (short-term fixes):
Patch250: chromium-83-gcc-include.patch
@@ -747,6 +748,9 @@ appstream-util validate-relax --nonet "%{buildroot}%{_metainfodir}/%{name}.appda
%{chromiumdir}/swiftshader/libGLESv2.so
#########################################changelogs#################################################
%changelog
+* Mon Jun 08 2020 qvint <dotqvint(a)gmail.com> - 83.0.4103.97-2
+- Fix crash in ServiceWorker (rfbz#5671)
+
* Fri Jun 05 2020 qvint <dotqvint(a)gmail.com> - 83.0.4103.97-1
- Update to 83.0.4103.97
4 years, 5 months
[chromium-browser-privacy: 1/8] Update to 83.0.4103.97
by qvint
commit 6594851c537afb2e28c5fc5ef4f56be96fc4fe90
Author: qvint <dotqvint(a)gmail.com>
Date: Fri Jun 5 06:55:41 2020 +0300
Update to 83.0.4103.97
chromium-71.0.3578.98-py2-bootstrap.patch | 4 +-
chromium-81-gcc-10.patch | 86 -------------------------------
chromium-81-gcc-r742632.patch | 27 ----------
chromium-81-gcc-r742834.patch | 35 -------------
chromium-81-gcc-r743910.patch | 62 ----------------------
chromium-81-vaapi-r737459.patch | 52 -------------------
chromium-81-vaapi-r738595.patch | 31 -----------
chromium-82-gcc-noexcept.patch | 31 +++++++++++
chromium-82-gcc-template.patch | 48 +++++++++++++++++
chromium-83-gcc-10-r31184.patch | 35 +++++++++++++
chromium-83-gcc-10-r766427.patch | 27 ++++++++++
chromium-83-gcc-10.patch | 20 +++++++
chromium-83-gcc-include.patch | 22 ++++++++
chromium-83-gcc-iterator.patch | 36 +++++++++++++
chromium-83-gcc-r756880.patch | 69 +++++++++++++++++++++++++
chromium-83-gcc-r760272.patch | 27 ++++++++++
chromium-83-gcc-r760588.patch | 58 +++++++++++++++++++++
chromium-83-gcc-r762806.patch | 43 ++++++++++++++++
chromium-enable-vaapi.patch | 12 ++---
chromium-fix-vaapi-on-intel.patch | 8 +--
chromium-freeworld.spec | 30 ++++++++---
sources | 2 +-
22 files changed, 452 insertions(+), 313 deletions(-)
---
diff --git a/chromium-71.0.3578.98-py2-bootstrap.patch b/chromium-71.0.3578.98-py2-bootstrap.patch
index 5c5f0b2..c303f8b 100644
--- a/chromium-71.0.3578.98-py2-bootstrap.patch
+++ b/chromium-71.0.3578.98-py2-bootstrap.patch
@@ -1,6 +1,6 @@
--- a/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py
+++ b/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py
-@@ -74,7 +74,7 @@ def _MinifyJS(input_js):
+@@ -83,7 +83,7 @@ def _MinifyJS(input_js):
with tempfile.NamedTemporaryFile() as _:
args = [
@@ -9,7 +9,7 @@
rjsmin_path
]
p = subprocess.Popen(args,
-@@ -194,7 +194,7 @@ def _MinifyCSS(css_text):
+@@ -203,7 +203,7 @@ def _MinifyCSS(css_text):
os.path.join(py_vulcanize_path, 'third_party', 'rcssmin', 'rcssmin.py'))
with tempfile.NamedTemporaryFile() as _:
diff --git a/chromium-82-gcc-noexcept.patch b/chromium-82-gcc-noexcept.patch
new file mode 100644
index 0000000..5617e0a
--- /dev/null
+++ b/chromium-82-gcc-noexcept.patch
@@ -0,0 +1,31 @@
+--- a/third_party/blink/public/platform/cross_variant_mojo_util.h
++++ b/third_party/blink/public/platform/cross_variant_mojo_util.h
+@@ -124,7 +124,7 @@ class CrossVariantMojoAssociatedReceiver
+ ~CrossVariantMojoAssociatedReceiver() = default;
+
+ CrossVariantMojoAssociatedReceiver(
+- CrossVariantMojoAssociatedReceiver&&) noexcept = default;
++ CrossVariantMojoAssociatedReceiver&&) = default;
+ CrossVariantMojoAssociatedReceiver& operator=(
+ CrossVariantMojoAssociatedReceiver&&) noexcept = default;
+
+@@ -155,7 +155,7 @@ class CrossVariantMojoAssociatedRemote {
+ ~CrossVariantMojoAssociatedRemote() = default;
+
+ CrossVariantMojoAssociatedRemote(
+- CrossVariantMojoAssociatedRemote&&) noexcept = default;
++ CrossVariantMojoAssociatedRemote&&) = default;
+ CrossVariantMojoAssociatedRemote& operator=(
+ CrossVariantMojoAssociatedRemote&&) noexcept = default;
+
+--- a/ui/color/color_set.cc
++++ b/ui/color/color_set.cc
+@@ -11,7 +11,7 @@ ColorSet::ColorSet(ColorSetId id, ColorM
+
+ ColorSet::ColorSet(ColorSet&&) noexcept = default;
+
+-ColorSet& ColorSet::operator=(ColorSet&&) noexcept = default;
++ColorSet& ColorSet::operator=(ColorSet&&) = default;
+
+ ColorSet::~ColorSet() = default;
+
diff --git a/chromium-82-gcc-template.patch b/chromium-82-gcc-template.patch
new file mode 100644
index 0000000..b50b4eb
--- /dev/null
+++ b/chromium-82-gcc-template.patch
@@ -0,0 +1,48 @@
+--- a/content/public/browser/web_ui.h
++++ b/content/public/browser/web_ui.h
+@@ -138,22 +138,6 @@ class CONTENT_EXPORT WebUI {
+ template <typename T>
+ static T GetValue(const base::Value& value);
+
+- template <>
+- inline bool GetValue<bool>(const base::Value& value) {
+- return value.GetBool();
+- }
+-
+- template <>
+- inline int GetValue<int>(const base::Value& value) {
+- return value.GetInt();
+- }
+-
+- template <>
+- inline const std::string& GetValue<const std::string&>(
+- const base::Value& value) {
+- return value.GetString();
+- }
+-
+ template <typename Is, typename... Args>
+ struct Call;
+
+@@ -169,6 +153,22 @@ class CONTENT_EXPORT WebUI {
+ };
+ };
+
++template <>
++inline bool WebUI::GetValue<bool>(const base::Value& value) {
++ return value.GetBool();
++}
++
++template <>
++inline int WebUI::GetValue<int>(const base::Value& value) {
++ return value.GetInt();
++}
++
++template <>
++inline const std::string& WebUI::GetValue<const std::string&>(
++ const base::Value& value) {
++ return value.GetString();
++}
++
+ } // namespace content
+
+ #endif // CONTENT_PUBLIC_BROWSER_WEB_UI_H_
diff --git a/chromium-83-gcc-10-r31184.patch b/chromium-83-gcc-10-r31184.patch
new file mode 100644
index 0000000..962513d
--- /dev/null
+++ b/chromium-83-gcc-10-r31184.patch
@@ -0,0 +1,35 @@
+From 03fade52dae736275c4f4e7fe1cbd6fe82d7aa4c Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09(a)googlemail.com>
+Date: Sat, 02 May 2020 12:17:05 +0000
+Subject: [PATCH] IWYU: uint32_t is defined in cstdint
+
+This is required for gcc-10.
+
+Bug: None
+Change-Id: I0d04f720d09b42e1d54e058b897ddc047ef64bf6
+Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174204
+Reviewed-by: Magnus Flodman <mflodman(a)webrtc.org>
+Commit-Queue: Mirko Bonadei <mbonadei(a)webrtc.org>
+Cr-Commit-Position: refs/heads/master@{#31184}
+---
+
+--- a/third_party/webrtc/AUTHORS
++++ b/third_party/webrtc/AUTHORS
+@@ -89,6 +89,7 @@ Ramprakash Jelari <ennajelari(a)gmail.com>
+ CZ Theng <cz.theng(a)gmail.com>
+ Miguel Paris <mparisdiaz(a)gmail.com>
+ Raman Budny <budnyjj(a)gmail.com>
++Stephan Hartmann <stha09(a)googlemail.com>
+
+ &yet LLC <*(a)andyet.com>
+ Agora IO <*(a)agora.io>
+--- a/third_party/webrtc/call/rtx_receive_stream.h
++++ b/third_party/webrtc/call/rtx_receive_stream.h
+@@ -11,6 +11,7 @@
+ #ifndef CALL_RTX_RECEIVE_STREAM_H_
+ #define CALL_RTX_RECEIVE_STREAM_H_
+
++#include <cstdint>
+ #include <map>
+
+ #include "call/rtp_packet_sink_interface.h"
diff --git a/chromium-83-gcc-10-r766427.patch b/chromium-83-gcc-10-r766427.patch
new file mode 100644
index 0000000..5004cbc
--- /dev/null
+++ b/chromium-83-gcc-10-r766427.patch
@@ -0,0 +1,27 @@
+From 6d42d6eacce85aab3a964aa25b90778bb938acd6 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09(a)googlemail.com>
+Date: Thu, 7 May 2020 16:08:25 +0000
+Subject: [PATCH] IWYU: uint32_t is defined in cstdint
+
+This is required for gcc-10.
+
+Change-Id: I6659a14f885011941887702171f6e49b8740f049
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2174486
+Reviewed-by: Michael Spang <spang(a)chromium.org>
+Commit-Queue: Robert Kroeger <rjkroege(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#766427}
+---
+ ui/gfx/linux/drm_util_linux.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/ui/gfx/linux/drm_util_linux.h
++++ b/ui/gfx/linux/drm_util_linux.h
+@@ -5,6 +5,8 @@
+ #ifndef UI_GFX_LINUX_DRM_UTIL_LINUX_H_
+ #define UI_GFX_LINUX_DRM_UTIL_LINUX_H_
+
++#include <cstdint>
++
+ #include "ui/gfx/buffer_types.h"
+
+ namespace ui {
diff --git a/chromium-83-gcc-10.patch b/chromium-83-gcc-10.patch
new file mode 100644
index 0000000..3ac8bef
--- /dev/null
+++ b/chromium-83-gcc-10.patch
@@ -0,0 +1,20 @@
+--- a/chrome/browser/search/background/ntp_backgrounds.h
++++ b/chrome/browser/search/background/ntp_backgrounds.h
+@@ -6,6 +6,7 @@
+ #define CHROME_BROWSER_SEARCH_BACKGROUND_NTP_BACKGROUNDS_H_
+
+ #include <array>
++#include <cstddef>
+
+ class GURL;
+
+--- a/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
++++ b/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+@@ -12,6 +12,7 @@
+ #define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_
+
+ #include <array>
++#include <cstddef>
+
+ namespace webrtc {
+
diff --git a/chromium-83-gcc-include.patch b/chromium-83-gcc-include.patch
new file mode 100644
index 0000000..ecf5e5e
--- /dev/null
+++ b/chromium-83-gcc-include.patch
@@ -0,0 +1,22 @@
+--- a/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc
++++ b/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc
+@@ -2,6 +2,8 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <limits>
++
+ #include "chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.h"
+ #include "base/logging.h"
+
+--- a/third_party/blink/renderer/core/html/trust_token_attribute_parsing.h
++++ b/third_party/blink/renderer/core/html/trust_token_attribute_parsing.h
+@@ -5,6 +5,8 @@
+ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_TRUST_TOKEN_ATTRIBUTE_PARSING_H_
+ #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_TRUST_TOKEN_ATTRIBUTE_PARSING_H_
+
++#include <memory>
++
+ #include "base/optional.h"
+ #include "services/network/public/mojom/trust_tokens.mojom-blink-forward.h"
+ #include "third_party/blink/renderer/core/core_export.h"
diff --git a/chromium-83-gcc-iterator.patch b/chromium-83-gcc-iterator.patch
new file mode 100644
index 0000000..fa929d9
--- /dev/null
+++ b/chromium-83-gcc-iterator.patch
@@ -0,0 +1,36 @@
+From 4abcf0a76a7cb5c343be7d17c60cb908f3673c3d Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09(a)googlemail.com>
+Date: Thu, 9 Apr 2020 17:03:38 +0000
+Subject: [PATCH] libstdc++: replace std::any_of in blink::SerializedScriptValue
+
+Use of std::any_of requires STL compliant iterator. However,
+HashTableIterator does not define iterator_tag and therefore
+is no STL iterator.
+---
+ .../core/v8/serialization/serialized_script_value.h | 13 +++++++++----
+ 1 file changed, 9 insertions(+), 4 deletions(-)
+
+--- a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
++++ b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
+@@ -268,12 +268,17 @@ class CORE_EXPORT SerializedScriptValue
+ MessagePortChannelArray& GetStreamChannels() { return stream_channels_; }
+
+ bool IsLockedToAgentCluster() const {
++ auto AnyOfIsLockedToAgentCluster = [&]() {
++ for (auto entry = attachments_.begin();
++ entry != attachments_.end(); ++entry) {
++ if (entry->value->IsLockedToAgentCluster())
++ return true;
++ }
++ return false;
++ };
+ return !wasm_modules_.IsEmpty() ||
+ !shared_array_buffers_contents_.IsEmpty() ||
+- std::any_of(attachments_.begin(), attachments_.end(),
+- [](const auto& entry) {
+- return entry.value->IsLockedToAgentCluster();
+- });
++ AnyOfIsLockedToAgentCluster();
+ }
+
+ // Returns true after serializing script values that remote origins cannot
diff --git a/chromium-83-gcc-r756880.patch b/chromium-83-gcc-r756880.patch
new file mode 100644
index 0000000..69f8fb1
--- /dev/null
+++ b/chromium-83-gcc-r756880.patch
@@ -0,0 +1,69 @@
+From 8d115ddda495d0d2e1e1447392db6e9e6a8a1b32 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09(a)googlemail.com>
+Date: Tue, 7 Apr 2020 00:23:57 +0000
+Subject: [PATCH] GCC: fix template specialization in WTF::VectorMover
+
+GCC complains that explicit specialization in non-namespace scope
+is happening for MoveOverlappingImpl. However, secialization is
+not really necessary here with templates and can be moved
+into MoveOverlappingImpl method without changing generated code.
+
+Bug: 819294
+Change-Id: I90b893b9701748302f7b900fbcc2c341685fe0d3
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2126290
+Reviewed-by: Kent Tamura <tkent(a)chromium.org>
+Commit-Queue: Kent Tamura <tkent(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#756880}
+---
+ .../blink/renderer/platform/wtf/vector.h | 39 ++++++++-----------
+ 1 file changed, 16 insertions(+), 23 deletions(-)
+
+--- a/third_party/blink/renderer/platform/wtf/vector.h
++++ b/third_party/blink/renderer/platform/wtf/vector.h
+@@ -205,30 +205,23 @@ struct VectorMover<true, T, Allocator> {
+ }
+ }
+
+- template <bool = Allocator::kIsGarbageCollected>
+- static void MoveOverlappingImpl(const T* src, const T* src_end, T* dst);
+- template <>
+- static void MoveOverlappingImpl<false>(const T* src,
+- const T* src_end,
+- T* dst) {
+- memmove(dst, src,
+- reinterpret_cast<const char*>(src_end) -
+- reinterpret_cast<const char*>(src));
+- }
+- template <>
+- static void MoveOverlappingImpl<true>(const T* src,
+- const T* src_end,
+- T* dst) {
+- if (src == dst)
+- return;
+- if (dst < src) {
+- for (; src < src_end; ++src, ++dst)
+- AtomicWriteMemcpy<sizeof(T)>(dst, src);
++ static void MoveOverlappingImpl(const T* src, const T* src_end, T* dst) {
++ if (Allocator::kIsGarbageCollected) {
++ if (src == dst)
++ return;
++ if (dst < src) {
++ for (; src < src_end; ++src, ++dst)
++ AtomicWriteMemcpy<sizeof(T)>(dst, src);
++ } else {
++ --src_end;
++ T* dst_end = dst + (src_end - src);
++ for (; src_end >= src; --src_end, --dst_end)
++ AtomicWriteMemcpy<sizeof(T)>(dst_end, src_end);
++ }
+ } else {
+- --src_end;
+- T* dst_end = dst + (src_end - src);
+- for (; src_end >= src; --src_end, --dst_end)
+- AtomicWriteMemcpy<sizeof(T)>(dst_end, src_end);
++ memmove(dst, src,
++ reinterpret_cast<const char*>(src_end) -
++ reinterpret_cast<const char*>(src));
+ }
+ }
+
diff --git a/chromium-83-gcc-r760272.patch b/chromium-83-gcc-r760272.patch
new file mode 100644
index 0000000..7c201f8
--- /dev/null
+++ b/chromium-83-gcc-r760272.patch
@@ -0,0 +1,27 @@
+From 2b9d6daa0ab5ce45ec5555466d5a5a583a020ea8 Mon Sep 17 00:00:00 2001
+From: Daniel Playfair Cal <daniel.playfair.cal(a)gmail.com>
+Date: Sat, 18 Apr 2020 00:27:38 +0000
+Subject: [PATCH] Add missing algorithm header in crx_install_error.cc
+
+This is needed for the use of std::find.
+
+Change-Id: I2dc43b3887c467986c5346be5a9e27a987e1e5b3
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2152333
+Reviewed-by: Ken Rockot <rockot(a)google.com>
+Commit-Queue: Ken Rockot <rockot(a)google.com>
+Cr-Commit-Position: refs/heads/master@{#760272}
+---
+ extensions/browser/install/crx_install_error.cc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/extensions/browser/install/crx_install_error.cc
++++ b/extensions/browser/install/crx_install_error.cc
+@@ -4,6 +4,8 @@
+
+ #include "extensions/browser/install/crx_install_error.h"
+
++#include <algorithm>
++
+ #include "base/logging.h"
+ #include "extensions/browser/install/sandboxed_unpacker_failure_reason.h"
+
diff --git a/chromium-83-gcc-r760588.patch b/chromium-83-gcc-r760588.patch
new file mode 100644
index 0000000..ff6d78a
--- /dev/null
+++ b/chromium-83-gcc-r760588.patch
@@ -0,0 +1,58 @@
+From aeef68888d4c00b69facead2b934095a8cd17329 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09(a)googlemail.com>
+Date: Mon, 20 Apr 2020 18:21:43 +0000
+Subject: [PATCH] libstdc++: fix incomplete-type in AXTree for
+ NodeSetSizePosInSetInfo
+
+has only forward declaration of NodeSetSizePosInSetInfo. Therefore,
+move declaration from ax_tree.cc.
+
+std: :unordered_map<T, U> requires U to be fully declared. ax_tree.h
+Bug: 957519
+Change-Id: Ic1f4bf3ebfea229ece84251e46d4461b31873868
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2132403
+Reviewed-by: David Tseng <dtseng(a)chromium.org>
+Commit-Queue: David Tseng <dtseng(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#760588}
+---
+ ui/accessibility/ax_tree.cc | 10 ++--------
+ ui/accessibility/ax_tree.h | 9 ++++++++-
+ 2 files changed, 10 insertions(+), 9 deletions(-)
+
+--- a/ui/accessibility/ax_tree.cc
++++ b/ui/accessibility/ax_tree.cc
+@@ -567,14 +567,8 @@ struct AXTreeUpdateState {
+ const AXTree& tree;
+ };
+
+-struct AXTree::NodeSetSizePosInSetInfo {
+- NodeSetSizePosInSetInfo() = default;
+- ~NodeSetSizePosInSetInfo() = default;
+-
+- int32_t pos_in_set = 0;
+- int32_t set_size = 0;
+- base::Optional<int> lowest_hierarchical_level;
+-};
++AXTree::NodeSetSizePosInSetInfo::NodeSetSizePosInSetInfo() = default;
++AXTree::NodeSetSizePosInSetInfo::~NodeSetSizePosInSetInfo() = default;
+
+ struct AXTree::OrderedSetContent {
+ explicit OrderedSetContent(const AXNode* ordered_set = nullptr)
+--- a/ui/accessibility/ax_tree.h
++++ b/ui/accessibility/ax_tree.h
+@@ -328,7 +328,14 @@ class AX_EXPORT AXTree : public AXNode::
+ bool enable_extra_mac_nodes_ = false;
+
+ // Contains pos_in_set and set_size data for an AXNode.
+- struct NodeSetSizePosInSetInfo;
++ struct NodeSetSizePosInSetInfo {
++ NodeSetSizePosInSetInfo();
++ ~NodeSetSizePosInSetInfo();
++
++ int32_t pos_in_set = 0;
++ int32_t set_size = 0;
++ base::Optional<int> lowest_hierarchical_level;
++ };
+
+ // Represents the content of an ordered set which includes the ordered set
+ // items and the ordered set container if it exists.
diff --git a/chromium-83-gcc-r762806.patch b/chromium-83-gcc-r762806.patch
new file mode 100644
index 0000000..ff20cfe
--- /dev/null
+++ b/chromium-83-gcc-r762806.patch
@@ -0,0 +1,43 @@
+From 4af12b86673edcf82989a87a11496543a9478fb5 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09(a)googlemail.com>
+Date: Mon, 27 Apr 2020 12:05:48 +0000
+Subject: [PATCH] libstdc++: make NGPhysicalContainerFragment::ConstIterator
+ usable with std::all_of
+
+Use of std::all_of requires STL compliant iterator. However,
+NGPhysicalContainerFragment::ConstIterator does not define
+iterator_tag and therefore is no STL iterator. To make it
+compliant derive NGPhysicalContainerFragment::ConstIterator from
+std::iterator.
+
+Bug: 957519
+Change-Id: Id042f987ca093ece6cd1cd10f601eb1909700d08
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2153148
+Reviewed-by: Aleks Totic <atotic(a)chromium.org>
+Commit-Queue: Morten Stenshorne <mstensho(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#762806}
+---
+ .../renderer/core/layout/ng/ng_physical_container_fragment.h | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h
++++ b/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h
+@@ -5,6 +5,8 @@
+ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_PHYSICAL_CONTAINER_FRAGMENT_H_
+ #define THIRD_PARTY_BLINK_RENDERER_CORE_LAYOUT_NG_NG_PHYSICAL_CONTAINER_FRAGMENT_H_
+
++#include <iterator>
++
+ #include "base/containers/span.h"
+ #include "third_party/blink/renderer/core/core_export.h"
+ #include "third_party/blink/renderer/core/layout/geometry/physical_rect.h"
+@@ -31,7 +33,8 @@ class CORE_EXPORT NGPhysicalContainerFra
+ PostLayoutChildLinkList(wtf_size_t count, const NGLink* buffer)
+ : count_(count), buffer_(buffer) {}
+
+- class ConstIterator {
++ class ConstIterator
++ : public std::iterator<std::input_iterator_tag, NGLink> {
+ STACK_ALLOCATED();
+
+ public:
diff --git a/chromium-enable-vaapi.patch b/chromium-enable-vaapi.patch
index 403c00f..ece03af 100644
--- a/chromium-enable-vaapi.patch
+++ b/chromium-enable-vaapi.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Enable VAAPI on Linux
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
-@@ -1923,7 +1923,7 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -2153,7 +2153,7 @@ const FeatureEntry kFeatureEntries[] = {
"disable-accelerated-video-decode",
flag_descriptions::kAcceleratedVideoDecodeName,
flag_descriptions::kAcceleratedVideoDecodeDescription,
@@ -14,9 +14,9 @@ Subject: [PATCH] Enable VAAPI on Linux
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
},
{
-@@ -2355,12 +2355,12 @@ const FeatureEntry kFeatureEntries[] = {
- FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)},
- #endif // !defined(OS_ANDROID)
+@@ -2585,12 +2585,12 @@ const FeatureEntry kFeatureEntries[] = {
+ flag_descriptions::kWebXrForceRuntimeDescription, kOsDesktop,
+ MULTI_VALUE_TYPE(kWebXrForceRuntimeChoices)},
#endif // ENABLE_VR
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
@@ -32,7 +32,7 @@ Subject: [PATCH] Enable VAAPI on Linux
FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)},
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
-@@ -3004,16 +3004,19 @@ const char kMetalDescription[] =
+@@ -2980,16 +2980,19 @@ const char kMetalDescription[] =
#endif
@@ -57,7 +57,7 @@ Subject: [PATCH] Enable VAAPI on Linux
"Use the aggregated ML model to rank the suggested apps.";
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
-@@ -1733,13 +1733,19 @@ extern const char kMetalDescription[];
+@@ -1711,13 +1711,19 @@ extern const char kMetalDescription[];
#endif // defined(OS_MACOSX)
diff --git a/chromium-fix-vaapi-on-intel.patch b/chromium-fix-vaapi-on-intel.patch
index a5b494b..73281f4 100644
--- a/chromium-fix-vaapi-on-intel.patch
+++ b/chromium-fix-vaapi-on-intel.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Move offending function to chromeos only
--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-@@ -64,6 +64,7 @@ void ReportToUMA(VAVDADecoderFailure fai
+@@ -66,6 +66,7 @@ void ReportToUMA(VAVDADecoderFailure fai
VAVDA_DECODER_FAILURES_MAX + 1);
}
@@ -13,7 +13,7 @@ Subject: [PATCH] Move offending function to chromeos only
// Returns true if the CPU is an Intel Gemini Lake or later (including Kaby
// Lake) Cpu platform id's are referenced from the following file in kernel
// source arch/x86/include/asm/intel-family.h
-@@ -76,6 +77,7 @@ bool IsGeminiLakeOrLater() {
+@@ -78,6 +79,7 @@ bool IsGeminiLakeOrLater() {
cpuid.model() >= kGeminiLakeModelId;
return is_geminilake_or_later;
}
@@ -21,7 +21,7 @@ Subject: [PATCH] Move offending function to chromeos only
} // namespace
-@@ -1171,6 +1173,8 @@ VaapiVideoDecodeAccelerator::DecideBuffe
+@@ -1155,6 +1157,8 @@ VaapiVideoDecodeAccelerator::DecideBuffe
if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
return BufferAllocationMode::kNormal;
@@ -30,7 +30,7 @@ Subject: [PATCH] Move offending function to chromeos only
// On Gemini Lake, Kaby Lake and later we can pass to libva the client's
// PictureBuffers to decode onto, which skips the use of the Vpp unit and its
// associated format reconciliation copy, avoiding all internal buffer
-@@ -1187,6 +1191,7 @@ VaapiVideoDecodeAccelerator::DecideBuffe
+@@ -1171,6 +1175,7 @@ VaapiVideoDecodeAccelerator::DecideBuffe
num_extra_pics_ = 3;
return BufferAllocationMode::kNone;
}
diff --git a/chromium-freeworld.spec b/chromium-freeworld.spec
index 078c2fe..514cfdb 100644
--- a/chromium-freeworld.spec
+++ b/chromium-freeworld.spec
@@ -69,7 +69,7 @@
%global ozone 0
##############################Package Definitions######################################
Name: chromium-freeworld
-Version: 81.0.4044.138
+Version: 83.0.4103.97
Release: 1%{?dist}
Summary: Chromium web browser built with all freeworld codecs and VA-API support
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)
@@ -154,6 +154,7 @@ Buildrequires: python2-six
BuildRequires: python2-ply
%endif
%endif
+BuildRequires: python2-setuptools
%if %{with system_re2}
BuildRequires: re2-devel
%endif
@@ -210,15 +211,22 @@ Recommends: libva-utils
ExclusiveArch: x86_64
# Google patches (short-term fixes and backports):
-Patch150: chromium-81-vaapi-r737459.patch
-Patch151: chromium-81-vaapi-r738595.patch
-Patch152: chromium-81-gcc-r742632.patch
-Patch153: chromium-81-gcc-r742834.patch
-Patch154: chromium-81-gcc-r743910.patch
+Patch150: chromium-83-gcc-r756880.patch
+Patch151: chromium-83-gcc-r760272.patch
+Patch152: chromium-83-gcc-r760588.patch
+Patch153: chromium-83-gcc-r762806.patch
+%if 0%{?fedora} >= 32
+Patch154: chromium-83-gcc-10-r31184.patch
+Patch155: chromium-83-gcc-10-r766427.patch
+%endif
# Gentoo patches (short-term fixes):
+Patch250: chromium-83-gcc-include.patch
+Patch251: chromium-83-gcc-iterator.patch
+Patch252: chromium-82-gcc-template.patch
+Patch253: chromium-82-gcc-noexcept.patch
%if 0%{?fedora} >= 32
-Patch250: chromium-81-gcc-10.patch
+Patch254: chromium-83-gcc-10.patch
%endif
# Fedora patches:
@@ -320,6 +328,7 @@ find -depth -type f -writable -name "*.py" -exec sed -iE '1s=^#! */usr/bin/\(pyt
third_party/devscripts \
third_party/devtools-frontend \
third_party/devtools-frontend/src/front_end/third_party/fabricjs \
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse \
third_party/devtools-frontend/src/front_end/third_party/wasmparser \
third_party/devtools-frontend/src/third_party \
third_party/dom_distiller_js \
@@ -336,6 +345,7 @@ find -depth -type f -writable -name "*.py" -exec sed -iE '1s=^#! */usr/bin/\(pyt
%if !%{with system_harfbuzz}
third_party/harfbuzz-ng \
%endif
+ third_party/harfbuzz-ng/utils \
third_party/hunspell \
third_party/iccjpeg \
%if !%{with system_libicu}
@@ -371,6 +381,7 @@ find -depth -type f -writable -name "*.py" -exec sed -iE '1s=^#! */usr/bin/\(pyt
third_party/libyuv \
third_party/lss \
third_party/lzma_sdk \
+ third_party/mako \
%if 0%{?bundlepylibs}
third_party/markupsafe \
%endif
@@ -417,6 +428,7 @@ find -depth -type f -writable -name "*.py" -exec sed -iE '1s=^#! */usr/bin/\(pyt
%endif
third_party/rnnoise \
third_party/s2cellid \
+ third_party/schema_org \
third_party/skia \
third_party/skia/include/third_party/skcms \
third_party/skia/include/third_party/vulkan \
@@ -428,6 +440,7 @@ find -depth -type f -writable -name "*.py" -exec sed -iE '1s=^#! */usr/bin/\(pyt
third_party/SPIRV-Tools \
third_party/sqlite \
third_party/swiftshader \
+ third_party/swiftshader/third_party/astc-encoder \
third_party/swiftshader/third_party/llvm-7.0 \
third_party/swiftshader/third_party/llvm-subzero \
third_party/swiftshader/third_party/marl \
@@ -734,6 +747,9 @@ appstream-util validate-relax --nonet "%{buildroot}%{_metainfodir}/%{name}.appda
%{chromiumdir}/swiftshader/libGLESv2.so
#########################################changelogs#################################################
%changelog
+* Fri Jun 05 2020 qvint <dotqvint(a)gmail.com> - 83.0.4103.97-1
+- Update to 83.0.4103.97
+
* Wed May 06 2020 qvint <dotqvint(a)gmail.com> - 81.0.4044.138-1
- Update to 81.0.4044.138
- Fix touchpad scrolling under XWayland (rfbz#5621)
diff --git a/sources b/sources
index dad27c2..d064e1f 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (chromium-81.0.4044.138.tar.xz) = 9f686b27b2f8ea5c15f50b0ddcd24745aec41e28af8c38618e18771401bd5cfb26939b9ac49973ea804cda458a939c1a6ad59cb24fb1937b7687c3d908183437
+SHA512 (chromium-83.0.4103.97.tar.xz) = 5b7d7ab2f4e3d7ee965be4bba2d7ee1f3ce7f062920547639fd8d695eb8ef4a94153a99ecd10fb13b46fbcdec59ed3792231fec9c0773a457a60a551ebbe53c9
4 years, 5 months
[chromium-browser-privacy] (8 commits) ...Try alternative locations for the Widevine CDM library
by qvint
Summary of changes:
6594851... Update to 83.0.4103.97
6314d66... Fix crash in ServiceWorker
0b01f6a... Update to 83.0.4103.106
a5dfb5b... Disable python byte compiling
faad28c... Update to 83.0.4103.116
fc21bc1... Sync spec and sources with free/chromium-freeworld
3c5d625... Update ungoogled-chromium to 83.0.4103.116-1
2fdd830... Try alternative locations for the Widevine CDM library
4 years, 5 months
[nvidia-settings-390xx] Update to 390.138
by Leigh Scott
commit 7bbb6c837cad7a075e80435891379db6d7737fc9
Author: Leigh Scott <leigh123linux(a)gmail.com>
Date: Fri Jun 26 20:25:40 2020 +0100
Update to 390.138
.gitignore | 1 +
gcc-10.patch | 116 +++++++++++++++++++++++++++++++++------------
nvidia-settings-390xx.spec | 10 ++--
sources | 2 +-
4 files changed, 93 insertions(+), 36 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index dbd566d..d7ae97e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
/nvidia-settings-390.116.tar.bz2
/nvidia-settings-390.129.tar.bz2
/nvidia-settings-390.132.tar.bz2
+/nvidia-settings-390.138.tar.bz2
diff --git a/gcc-10.patch b/gcc-10.patch
index 26c5548..0646fae 100644
--- a/gcc-10.patch
+++ b/gcc-10.patch
@@ -1,54 +1,108 @@
-From 292dcc6c02e615e73791f67cdf76b5d191657822 Mon Sep 17 00:00:00 2001
-From: Jeroen Roovers <jer(a)gentoo.org>
-Date: Mon, 27 Jan 2020 20:49:20 +0100
-Subject: [PATCH] ctkvdpau: Fix CFLAGS=-fno-common
+From a7c1f5fce6303a643fadff7d85d59934bd0cf6b6 Mon Sep 17 00:00:00 2001
+From: Aaron Plattner <aplattner(a)nvidia.com>
+Date: Mon, 18 May 2020 15:27:01 -0700
+Subject: [PATCH] nvidia-settings: Make VDPAUDeviceFunctions static to
+ ctkvdpau.c
-GCC 10 will enable -fno-common by default[0], which causes the linker to
-fail like this [1], even for older GCC versions for which it is
-explicitly enabled:
+GCC 10 defaults to building with -fno-common, which exposes a bug in
+nvidia-settings: The VDPAUDeviceFunctions structure is defined as global in
+ctkvdpau.h, so both ctkvdpau.o and ctkwindow.o have it as a global, non-static
+"tentative definition" symbol. The GCC 10 man page describes it like this:
-```
-/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld:
-./gtk3/ctkvdpau.o:/home/jer/portage/x11-drivers/nvidia-drivers-440.44-r1/work/nvidia-settings-440.44/src/gtk+-2.x/ctkvdpau.h:70:
-multiple definition of `VDPAUDeviceFunctions';
-./gtk3/ctkwindow.o:/home/jer/portage/x11-drivers/nvidia-drivers-440.44-r1/work/nvidia-settings-440.44/src/gtk+-2.x/ctkvdpau.h:70:
-first defined here
+ -fcommon
+ In C code, this option controls the placement of global variables
+ defined without an initializer, known as tentative definitions in
+ the C standard. Tentative definitions are distinct from
+ declarations of a variable with the "extern" keyword, which do not
+ allocate storage.
-```
+ The default is -fno-common, which specifies that the compiler
+ places uninitialized global variables in the BSS section of the
+ object file. This inhibits the merging of tentative definitions by
+ the linker so you get a multiple-definition error if the same
+ variable is accidentally defined in more than one compilation unit.
-Fix this by declaring VDPAUDeviceFunctions as extern and by defining it
-explicitly.
+ The -fcommon places uninitialized global variables in a common
+ block. This allows the linker to resolve all tentative definitions
+ of the same variable in different compilation units to the same
+ object, or to a non-tentative definition. This behavior is
+ inconsistent with C++, and on many targets implies a speed and code
+ size penalty on global variable references. It is mainly useful to
+ enable legacy code to link without errors.
-[0] https://gcc.gnu.org/gcc-10/porting_to.html#common
-[1] https://bugs.gentoo.org/706742
+Since the copy of VDPAUDeviceFunctions in ctkwindow.o is not used, just remove
+it by moving the definition of this structure into ctkvdpau.c.
---
- src/gtk+-2.x/ctkvdpau.c | 2 ++
- src/gtk+-2.x/ctkvdpau.h | 2 +-
- 2 files changed, 3 insertions(+), 1 deletion(-)
+ src/gtk+-2.x/ctkvdpau.c | 23 +++++++++++++++++++++++
+ src/gtk+-2.x/ctkvdpau.h | 24 ------------------------
+ 2 files changed, 23 insertions(+), 24 deletions(-)
diff --git a/src/gtk+-2.x/ctkvdpau.c b/src/gtk+-2.x/ctkvdpau.c
-index 2f120f0..315243f 100644
+index 2f120f0..6149c28 100644
--- a/src/gtk+-2.x/ctkvdpau.c
+++ b/src/gtk+-2.x/ctkvdpau.c
-@@ -103,6 +103,8 @@ const gchar* __video_mixer_parameter_help =
+@@ -103,6 +103,29 @@ const gchar* __video_mixer_parameter_help =
const gchar* __video_mixer_attribute_help =
"This shows the video mixer attributes and any applicable ranges.";
-+struct VDPAUDeviceImpl VDPAUDeviceFunctions;
++static struct VDPAUDeviceImpl {
++
++ VdpGetErrorString *GetErrorString;
++ VdpGetProcAddress *GetProcAddress;
++ VdpGetApiVersion *GetApiVersion;
++ VdpGetInformationString *GetInformationString;
++ VdpVideoSurfaceQueryCapabilities *VideoSurfaceQueryCapabilities;
++ VdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities
++ *VideoSurfaceQueryGetPutBitsYCbCrCapabilities;
++ VdpOutputSurfaceQueryCapabilities *OutputSurfaceQueryCapabilities;
++ VdpOutputSurfaceQueryGetPutBitsNativeCapabilities
++ *OutputSurfaceQueryGetPutBitsNativeCapabilities;
++ VdpOutputSurfaceQueryPutBitsYCbCrCapabilities
++ *OutputSurfaceQueryPutBitsYCbCrCapabilities;
++ VdpBitmapSurfaceQueryCapabilities *BitmapSurfaceQueryCapabilities;
++ VdpDecoderQueryCapabilities *DecoderQueryCapabilities;
++ VdpVideoMixerQueryFeatureSupport *VideoMixerQueryFeatureSupport;
++ VdpVideoMixerQueryParameterSupport *VideoMixerQueryParameterSupport;
++ VdpVideoMixerQueryAttributeSupport *VideoMixerQueryAttributeSupport;
++ VdpVideoMixerQueryParameterValueRange *VideoMixerQueryParameterValueRange;
++ VdpVideoMixerQueryAttributeValueRange *VideoMixerQueryAttributeValueRange;
++} VDPAUDeviceFunctions;
+
static int queryOutputSurface(CtkVDPAU *ctk_vdpau, VdpDevice device,
VdpGetProcAddress *getProcAddress);
diff --git a/src/gtk+-2.x/ctkvdpau.h b/src/gtk+-2.x/ctkvdpau.h
-index ec58d36..ffff839 100644
+index ec58d36..2652f6f 100644
--- a/src/gtk+-2.x/ctkvdpau.h
+++ b/src/gtk+-2.x/ctkvdpau.h
-@@ -46,7 +46,7 @@ G_BEGIN_DECLS
+@@ -45,30 +45,6 @@ G_BEGIN_DECLS
+ #define CTK_VDPAU_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS ((obj), CTK_TYPE_VDPAU, CtkVDPAUClass))
-
+-
-struct VDPAUDeviceImpl {
-+extern struct VDPAUDeviceImpl {
-
- VdpGetErrorString *GetErrorString;
- VdpGetProcAddress *GetProcAddress;
+-
+- VdpGetErrorString *GetErrorString;
+- VdpGetProcAddress *GetProcAddress;
+- VdpGetApiVersion *GetApiVersion;
+- VdpGetInformationString *GetInformationString;
+- VdpVideoSurfaceQueryCapabilities *VideoSurfaceQueryCapabilities;
+- VdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities
+- *VideoSurfaceQueryGetPutBitsYCbCrCapabilities;
+- VdpOutputSurfaceQueryCapabilities *OutputSurfaceQueryCapabilities;
+- VdpOutputSurfaceQueryGetPutBitsNativeCapabilities
+- *OutputSurfaceQueryGetPutBitsNativeCapabilities;
+- VdpOutputSurfaceQueryPutBitsYCbCrCapabilities
+- *OutputSurfaceQueryPutBitsYCbCrCapabilities;
+- VdpBitmapSurfaceQueryCapabilities *BitmapSurfaceQueryCapabilities;
+- VdpDecoderQueryCapabilities *DecoderQueryCapabilities;
+- VdpVideoMixerQueryFeatureSupport *VideoMixerQueryFeatureSupport;
+- VdpVideoMixerQueryParameterSupport *VideoMixerQueryParameterSupport;
+- VdpVideoMixerQueryAttributeSupport *VideoMixerQueryAttributeSupport;
+- VdpVideoMixerQueryParameterValueRange *VideoMixerQueryParameterValueRange;
+- VdpVideoMixerQueryAttributeValueRange *VideoMixerQueryAttributeValueRange;
+-} VDPAUDeviceFunctions;
+-
+ /* Generic description structure */
+ typedef struct
+ {
diff --git a/nvidia-settings-390xx.spec b/nvidia-settings-390xx.spec
index 9689b3f..4260004 100644
--- a/nvidia-settings-390xx.spec
+++ b/nvidia-settings-390xx.spec
@@ -1,6 +1,6 @@
Name: nvidia-settings-390xx
-Version: 390.132
-Release: 2%{?dist}
+Version: 390.138
+Release: 1%{?dist}
Summary: Configure the NVIDIA 390xx series graphics driver
License: GPLv2+
@@ -8,8 +8,7 @@ URL: https://download.nvidia.com/XFree86/nvidia-settings/
Source0: %{url}/nvidia-settings-%{version}.tar.bz2
Source1: nvidia-settings-user.desktop
Source2: nvidia-settings.appdata.xml
-# https://github.com/NVIDIA/nvidia-settings/pull/47
-Patch0: gcc-10.patch
+Patch0: https://github.com/NVIDIA/nvidia-settings/commit/a7c1f5fce6303a643fadff7d...
ExclusiveArch: i686 x86_64 armv7hl
@@ -127,6 +126,9 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.appdata.xml
%changelog
+* Fri Jun 26 2020 Leigh Scott <leigh123linux(a)gmail.com> - 390.138-1
+- Update to 390.138
+
* Wed Feb 05 2020 RPM Fusion Release Engineering <leigh123linux(a)gmail.com> - 390.132-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
diff --git a/sources b/sources
index d1a4711..645acc5 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (nvidia-settings-390.132.tar.bz2) = 12553edc1a1ba9c3f578e0e921b25ec7114cbc80a55621cbd612a1bd85c9a518e221b30809058e4df5da6ae75ea7a1cd5c3d9c8f02a0898bc8c08ac9c22ccee3
+SHA512 (nvidia-settings-390.138.tar.bz2) = 6c54ff039840098c23f2091b4c33ab2b712ff90c16829c568bc39c9375cb2f4fb677bb5ab90efcf2034b15a1d93d13f1fbb40dde1d90092073af7d9f3c16de97
4 years, 5 months
[nvidia-390xx-kmod/el7] (10 commits) ...Update to 390.138 release
by Leigh Scott
Summary of changes:
6e0734b... - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass (*)
8f604b9... Patches for kernel 5.5 and 5.6 (*)
ea0e1f5... Correct changelog date after merge (*)
d5dd32c... Drop armv7hl build (*)
e25249b... Fix build on f30 i686 (*)
1ed67e1... Update kernel-5.6 patch (*)
6ab9d79... Prepare for kernel 5.7 (*)
f1af634... Actually apply patch for kernel-5.7 (*)
967d7a8... Actually apply patch for kernel-5.7 (*)
820f584... Update to 390.138 release (*)
(*) This commit already existed in another branch; no separate mail sent
4 years, 5 months