From 027a6992b3012363d8dc5268e2222faddf8d4b57 Mon Sep 17 00:00:00 2001 From: Tom spot Callaway Date: Mon, 7 Feb 2022 16:53:43 -0500 Subject: [PATCH 1/2] 98.0.4758.80 --- chromium-95-libyuv-arm.patch | 13 ++ chromium-96.0.4664.45-missing-cstring.patch | 23 --- chromium-98-MiraclePtr-gcc-ice.patch | 91 ++++++++++ chromium-98-WaylandFrameManager-check.patch | 27 +++ chromium-98.0.4758.80-EnumTable-crash.patch | 75 ++++++++ ...um-98.0.4758.80-el7-extra-operator==.patch | 15 ++ ...80-enable-hardware-accelerated-mjpeg.patch | 62 +++++++ chromium-98.0.4758.80-epel7-erase-fix.patch | 20 +++ chromium-98.0.4758.80-epel7-old-cups.patch | 167 ++++++++++++++++++ ...758.80-epel7-old-headers-workarounds.patch | 127 +++++++++++++ chromium-98.0.4758.80-fedora-user-agent.patch | 12 ++ chromium-98.0.4758.80-remoting-cstring.patch | 56 ++++++ ...4758.80-remoting-extra-qualification.patch | 84 +++++++++ chromium-browser.desktop | 2 +- chromium.spec | 83 +++++---- sources | 2 +- 16 files changed, 791 insertions(+), 68 deletions(-) create mode 100644 chromium-95-libyuv-arm.patch create mode 100644 chromium-98-MiraclePtr-gcc-ice.patch create mode 100644 chromium-98-WaylandFrameManager-check.patch create mode 100644 chromium-98.0.4758.80-EnumTable-crash.patch create mode 100644 chromium-98.0.4758.80-el7-extra-operator==.patch create mode 100644 chromium-98.0.4758.80-enable-hardware-accelerated-mjpeg.patch create mode 100644 chromium-98.0.4758.80-epel7-erase-fix.patch create mode 100644 chromium-98.0.4758.80-epel7-old-cups.patch create mode 100644 chromium-98.0.4758.80-epel7-old-headers-workarounds.patch create mode 100644 chromium-98.0.4758.80-fedora-user-agent.patch create mode 100644 chromium-98.0.4758.80-remoting-cstring.patch create mode 100644 chromium-98.0.4758.80-remoting-extra-qualification.patch diff --git a/chromium-95-libyuv-arm.patch b/chromium-95-libyuv-arm.patch new file mode 100644 index 00000000..25a8cdb8 --- /dev/null +++ b/chromium-95-libyuv-arm.patch @@ -0,0 +1,13 @@ +diff --git a/third_party/libyuv/source/row_neon.cc b/third_party/libyuv/source/row_neon.cc +index 6ef6f1c..e4a9e1e 100644 +--- a/third_party/libyuv/source/row_neon.cc ++++ b/third_party/libyuv/source/row_neon.cc +@@ -2346,7 +2346,7 @@ void ARGBToAB64Row_NEON(const uint8_t* src_argb, + uint16_t* dst_ab64, + int width) { + asm volatile( +- "vld1.8 q4, %3 \n" // shuffler ++ "vld1.8 {d8, d9}, %3 \n" // shuffler + "1: \n" + "vld1.8 {q0}, [%0]! \n" + "vld1.8 {q2}, [%0]! \n" diff --git a/chromium-96.0.4664.45-missing-cstring.patch b/chromium-96.0.4664.45-missing-cstring.patch index fa8580b9..5a5fa2f9 100644 --- a/chromium-96.0.4664.45-missing-cstring.patch +++ b/chromium-96.0.4664.45-missing-cstring.patch @@ -1,26 +1,3 @@ -diff -up chromium-96.0.4664.45/net/base/test_data_stream.cc.missing-cstring chromium-96.0.4664.45/net/base/test_data_stream.cc ---- chromium-96.0.4664.45/net/base/test_data_stream.cc.missing-cstring 2021-11-12 05:24:31.000000000 -0500 -+++ chromium-96.0.4664.45/net/base/test_data_stream.cc 2021-11-19 17:10:02.927438695 -0500 -@@ -5,6 +5,7 @@ - #include "net/base/test_data_stream.h" - - #include -+#include - - namespace net { - -diff -up chromium-96.0.4664.45/net/filter/filter_source_stream_test_util.cc.missing-cstring chromium-96.0.4664.45/net/filter/filter_source_stream_test_util.cc ---- chromium-96.0.4664.45/net/filter/filter_source_stream_test_util.cc.missing-cstring 2021-11-12 05:24:32.000000000 -0500 -+++ chromium-96.0.4664.45/net/filter/filter_source_stream_test_util.cc 2021-11-19 17:10:02.927438695 -0500 -@@ -4,6 +4,8 @@ - - #include "net/filter/filter_source_stream_test_util.h" - -+#include -+ - #include "base/bit_cast.h" - #include "base/check_op.h" - #include "third_party/zlib/zlib.h" diff -up chromium-96.0.4664.45/third_party/webrtc/audio/utility/channel_mixer.cc.missing-cstring chromium-96.0.4664.45/third_party/webrtc/audio/utility/channel_mixer.cc --- chromium-96.0.4664.45/third_party/webrtc/audio/utility/channel_mixer.cc.missing-cstring 2021-11-12 05:28:09.000000000 -0500 +++ chromium-96.0.4664.45/third_party/webrtc/audio/utility/channel_mixer.cc 2021-11-19 17:10:02.927438695 -0500 diff --git a/chromium-98-MiraclePtr-gcc-ice.patch b/chromium-98-MiraclePtr-gcc-ice.patch new file mode 100644 index 00000000..c538befe --- /dev/null +++ b/chromium-98-MiraclePtr-gcc-ice.patch @@ -0,0 +1,91 @@ +Workaround GCC ICE with MiraclePtr, see https://gcc.gnu.org/PR103455 + +--- a/gpu/command_buffer/client/gl_helper.h ++++ b/gpu/command_buffer/client/gl_helper.h +@@ -34,7 +34,7 @@ class ScopedGLuint { + GenFunc gen_func, + DeleteFunc delete_func) + : gl_(gl), id_(0u), delete_func_(delete_func) { +- (gl_->*gen_func)(1, &id_); ++ (gl_.get()->*gen_func)(1, &id_); + } + + operator GLuint() const { return id_; } +@@ -46,7 +46,7 @@ class ScopedGLuint { + + ~ScopedGLuint() { + if (id_ != 0) { +- (gl_->*delete_func_)(1, &id_); ++ (gl_.get()->*delete_func_)(1, &id_); + } + } + +@@ -86,13 +86,13 @@ class ScopedBinder { + typedef void (gles2::GLES2Interface::*BindFunc)(GLenum target, GLuint id); + ScopedBinder(gles2::GLES2Interface* gl, GLuint id, BindFunc bind_func) + : gl_(gl), bind_func_(bind_func) { +- (gl_->*bind_func_)(Target, id); ++ (gl_.get()->*bind_func_)(Target, id); + } + + ScopedBinder(const ScopedBinder&) = delete; + ScopedBinder& operator=(const ScopedBinder&) = delete; + +- virtual ~ScopedBinder() { (gl_->*bind_func_)(Target, 0); } ++ virtual ~ScopedBinder() { (gl_.get()->*bind_func_)(Target, 0); } + + private: + raw_ptr gl_; +--- a/ui/accessibility/ax_node.h ++++ b/ui/accessibility/ax_node.h +@@ -822,10 +822,10 @@ AXNode::ChildIteratorBase*LastChild)()) ++ if (child_ == (parent_.get()->*LastChild)()) + child_ = nullptr; + else +- child_ = (child_->*NextSibling)(); ++ child_ = (child_.get()->*NextSibling)(); + } + + return *this; +@@ -850,12 +850,12 @@ AXNode::ChildIteratorBase*LastChild)(); ++ child_ = (parent_.get()->*LastChild)(); + // Decrement the iterator gives us the previous element, except when the + // iterator is at the beginning; in which case, decrementing the iterator + // remains at the beginning. +- else if (child_ != (parent_->*FirstChild)()) +- child_ = (child_->*PreviousSibling)(); ++ else if (child_ != (parent_.get()->*FirstChild)()) ++ child_ = (child_.get()->*PreviousSibling)(); + } + + return *this; +--- a/ui/views/layout/flex_layout_types.cc ++++ b/ui/views/layout/flex_layout_types.cc +@@ -59,7 +59,7 @@ class LazySize { + const gfx::Size& operator*() const { return *get(); } + const gfx::Size* get() const { + if (!size_) +- size_ = (view_->*size_func_)(); ++ size_ = (view_.get()->*size_func_)(); + return &size_.value(); + } + LazyDimension width() const { +--- a/chrome/browser/ui/views/passwords/auto_signin_first_run_dialog_view.cc ++++ b/chrome/browser/ui/views/passwords/auto_signin_first_run_dialog_view.cc +@@ -37,7 +37,7 @@ AutoSigninFirstRunDialogView::AutoSigninFirstRunDialogView( + auto call_controller = [](AutoSigninFirstRunDialogView* dialog, + ControllerCallbackFn func) { + if (dialog->controller_) { +- (dialog->controller_->*func)(); ++ (dialog->controller_.get()->*func)(); + } + }; + SetAcceptCallback( diff --git a/chromium-98-WaylandFrameManager-check.patch b/chromium-98-WaylandFrameManager-check.patch new file mode 100644 index 00000000..dc8b06b3 --- /dev/null +++ b/chromium-98-WaylandFrameManager-check.patch @@ -0,0 +1,27 @@ +From 8e2458ffc6727943518a622753b074b42e713403 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Sat, 18 Dec 2021 08:38:57 +0000 +Subject: [PATCH] libstdc++: fix DCHECK_NE in ui::WaylandFrameManager + +There is no CheckOpValueStr() for std::unique_ptr. Use get() to +compare pointer values. +--- + ui/ozone/platform/wayland/host/wayland_frame_manager.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ui/ozone/platform/wayland/host/wayland_frame_manager.cc b/ui/ozone/platform/wayland/host/wayland_frame_manager.cc +index 569526c..58fae14 100644 +--- a/ui/ozone/platform/wayland/host/wayland_frame_manager.cc ++++ b/ui/ozone/platform/wayland/host/wayland_frame_manager.cc +@@ -379,7 +379,7 @@ void WaylandFrameManager::OnPresentation( + // Investigate the issue with surface sync. + frame->feedback = gfx::PresentationFeedback::Failure(); + } +- CHECK_NE(frame, submitted_frames_.back()); ++ CHECK_NE(frame.get(), submitted_frames_.back().get()); + } + MaybeProcessSubmittedFrames(); + } +-- +2.32.0 + diff --git a/chromium-98.0.4758.80-EnumTable-crash.patch b/chromium-98.0.4758.80-EnumTable-crash.patch new file mode 100644 index 00000000..68459ba8 --- /dev/null +++ b/chromium-98.0.4758.80-EnumTable-crash.patch @@ -0,0 +1,75 @@ +diff -up chromium-98.0.4758.80/components/cast_channel/enum_table.h.EnumTable-crash chromium-98.0.4758.80/components/cast_channel/enum_table.h +--- chromium-98.0.4758.80/components/cast_channel/enum_table.h.EnumTable-crash 2022-02-01 00:41:47.000000000 +0000 ++++ chromium-98.0.4758.80/components/cast_channel/enum_table.h 2022-02-02 18:54:23.096214186 +0000 +@@ -8,6 +8,7 @@ + #include + #include + #include ++#include + + #include "base/check_op.h" + #include "base/notreached.h" +@@ -187,7 +188,6 @@ class + inline constexpr GenericEnumTableEntry(int32_t value); + inline constexpr GenericEnumTableEntry(int32_t value, base::StringPiece str); + +- GenericEnumTableEntry(const GenericEnumTableEntry&) = delete; + GenericEnumTableEntry& operator=(const GenericEnumTableEntry&) = delete; + + private: +@@ -253,7 +253,6 @@ class EnumTable { + constexpr Entry(E value, base::StringPiece str) + : GenericEnumTableEntry(static_cast(value), str) {} + +- Entry(const Entry&) = delete; + Entry& operator=(const Entry&) = delete; + }; + +@@ -312,15 +311,14 @@ class EnumTable { + if (is_sorted_) { + const std::size_t index = static_cast(value); + if (ANALYZER_ASSUME_TRUE(index < data_.size())) { +- const auto& entry = data_.begin()[index]; ++ const auto& entry = data_[index]; + if (ANALYZER_ASSUME_TRUE(entry.has_str())) + return entry.str(); + } + return absl::nullopt; + } + return GenericEnumTableEntry::FindByValue( +- reinterpret_cast(data_.begin()), +- data_.size(), static_cast(value)); ++ &data_[0], data_.size(), static_cast(value)); + } + + // This overload of GetString is designed for cases where the argument is a +@@ -348,8 +346,7 @@ class EnumTable { + // enum value directly. + absl::optional GetEnum(base::StringPiece str) const { + auto* entry = GenericEnumTableEntry::FindByString( +- reinterpret_cast(data_.begin()), +- data_.size(), str); ++ &data_[0], data_.size(), str); + return entry ? static_cast(entry->value) : absl::optional(); + } + +@@ -364,7 +361,7 @@ class EnumTable { + // Align the data on a cache line boundary. + alignas(64) + #endif +- std::initializer_list data_; ++ const std::vector data_; + bool is_sorted_; + + constexpr EnumTable(std::initializer_list data, bool is_sorted) +@@ -376,8 +373,8 @@ class EnumTable { + + for (std::size_t i = 0; i < data.size(); i++) { + for (std::size_t j = i + 1; j < data.size(); j++) { +- const Entry& ei = data.begin()[i]; +- const Entry& ej = data.begin()[j]; ++ const Entry& ei = data[i]; ++ const Entry& ej = data[j]; + DCHECK(ei.value != ej.value) + << "Found duplicate enum values at indices " << i << " and " << j; + DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str())) diff --git a/chromium-98.0.4758.80-el7-extra-operator==.patch b/chromium-98.0.4758.80-el7-extra-operator==.patch new file mode 100644 index 00000000..a6c37a82 --- /dev/null +++ b/chromium-98.0.4758.80-el7-extra-operator==.patch @@ -0,0 +1,15 @@ +diff -up chromium-98.0.4758.80/base/allocator/partition_allocator/starscan/metadata_allocator.h.wtf chromium-98.0.4758.80/base/allocator/partition_allocator/starscan/metadata_allocator.h +--- chromium-98.0.4758.80/base/allocator/partition_allocator/starscan/metadata_allocator.h.wtf 2022-02-05 16:05:15.125570250 +0000 ++++ chromium-98.0.4758.80/base/allocator/partition_allocator/starscan/metadata_allocator.h 2022-02-05 16:11:45.519670294 +0000 +@@ -39,6 +39,11 @@ class MetadataAllocator { + } + + template ++ bool operator==(const MetadataAllocator&) const { ++ return true; ++ } ++ ++ template + bool operator!=(const MetadataAllocator& o) { + return !operator==(o); + } diff --git a/chromium-98.0.4758.80-enable-hardware-accelerated-mjpeg.patch b/chromium-98.0.4758.80-enable-hardware-accelerated-mjpeg.patch new file mode 100644 index 00000000..71e28c19 --- /dev/null +++ b/chromium-98.0.4758.80-enable-hardware-accelerated-mjpeg.patch @@ -0,0 +1,62 @@ +diff -up chromium-98.0.4758.80/chrome/browser/about_flags.cc.accel-mjpeg chromium-98.0.4758.80/chrome/browser/about_flags.cc +--- chromium-98.0.4758.80/chrome/browser/about_flags.cc.accel-mjpeg 2022-02-01 00:41:40.000000000 +0000 ++++ chromium-98.0.4758.80/chrome/browser/about_flags.cc 2022-02-02 19:23:15.554137616 +0000 +@@ -3822,12 +3822,12 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kWebXrForceRuntimeDescription, kOsDesktop, + MULTI_VALUE_TYPE(kWebXrForceRuntimeChoices)}, + #endif // ENABLE_VR +-#if BUILDFLAG(IS_CHROMEOS_ASH) ++#if BUILDFLAG(IS_CHROMEOS_ASH) || defined(OS_LINUX) + {"disable-accelerated-mjpeg-decode", + flag_descriptions::kAcceleratedMjpegDecodeName, +- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS, ++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)}, +-#endif // BUILDFLAG(IS_CHROMEOS_ASH) ++#endif // BUILDFLAG(IS_CHROMEOS_ASH) || OS_LINUX + {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName, + flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop, + FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)}, +diff -up chromium-98.0.4758.80/chrome/browser/flag_descriptions.cc.accel-mjpeg chromium-98.0.4758.80/chrome/browser/flag_descriptions.cc +--- chromium-98.0.4758.80/chrome/browser/flag_descriptions.cc.accel-mjpeg 2022-02-02 19:23:15.555137569 +0000 ++++ chromium-98.0.4758.80/chrome/browser/flag_descriptions.cc 2022-02-02 19:30:58.315465225 +0000 +@@ -3979,7 +3979,7 @@ const char kUseAngleGL[] = "OpenGL"; + + // Chrome OS ------------------------------------------------------------------- + +-#if BUILDFLAG(IS_CHROMEOS_ASH) ++#if BUILDFLAG(IS_CHROMEOS_ASH) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + const char kAcceleratedMjpegDecodeName[] = + "Hardware-accelerated mjpeg decode for captured frame"; +@@ -3987,6 +3987,10 @@ const char kAcceleratedMjpegDecodeDescri + "Enable hardware-accelerated mjpeg decode for captured frame where " + "available."; + ++#endif ++ ++#if BUILDFLAG(IS_CHROMEOS_ASH) ++ + const char kAllowDisableMouseAccelerationName[] = + "Allow disabling mouse acceleration"; + const char kAllowDisableMouseAccelerationDescription[] = +diff -up chromium-98.0.4758.80/chrome/browser/flag_descriptions.h.accel-mjpeg chromium-98.0.4758.80/chrome/browser/flag_descriptions.h +--- chromium-98.0.4758.80/chrome/browser/flag_descriptions.h.accel-mjpeg 2022-02-02 19:23:15.556137523 +0000 ++++ chromium-98.0.4758.80/chrome/browser/flag_descriptions.h 2022-02-02 19:31:59.585595773 +0000 +@@ -2297,11 +2297,15 @@ extern const char kUseAngleGL[]; + + // Chrome OS ------------------------------------------------------------------ + +-#if BUILDFLAG(IS_CHROMEOS_ASH) ++#if BUILDFLAG(IS_CHROMEOS_ASH) || (defined(OS_LINUX) && !defined(OS_ANDROID)) + + extern const char kAcceleratedMjpegDecodeName[]; + extern const char kAcceleratedMjpegDecodeDescription[]; + ++#endif ++ ++#if BUILDFLAG(IS_CHROMEOS_ASH) ++ + extern const char kAllowDisableMouseAccelerationName[]; + extern const char kAllowDisableMouseAccelerationDescription[]; + diff --git a/chromium-98.0.4758.80-epel7-erase-fix.patch b/chromium-98.0.4758.80-epel7-erase-fix.patch new file mode 100644 index 00000000..230e9d66 --- /dev/null +++ b/chromium-98.0.4758.80-epel7-erase-fix.patch @@ -0,0 +1,20 @@ +diff -up chromium-98.0.4758.80/components/ui_devtools/views/ui_element_with_metadata.cc.erase-fix chromium-98.0.4758.80/components/ui_devtools/views/ui_element_with_metadata.cc +--- chromium-98.0.4758.80/components/ui_devtools/views/ui_element_with_metadata.cc.erase-fix 2022-02-03 19:16:57.784979831 +0000 ++++ chromium-98.0.4758.80/components/ui_devtools/views/ui_element_with_metadata.cc 2022-02-03 19:17:12.983633352 +0000 +@@ -19,14 +19,14 @@ namespace { + // Remove any custom editor "prefixes" from the property name. The prefixes must + // not be valid identifier characters. + void StripPrefix(std::string& property_name) { +- auto cur = property_name.cbegin(); ++ auto cur = property_name.begin(); + for (; cur < property_name.cend(); ++cur) { + if ((*cur >= 'A' && *cur <= 'Z') || (*cur >= 'a' && *cur <= 'z') || + *cur == '_') { + break; + } + } +- property_name.erase(property_name.cbegin(), cur); ++ property_name.erase(property_name.begin(), cur); + } + + } // namespace diff --git a/chromium-98.0.4758.80-epel7-old-cups.patch b/chromium-98.0.4758.80-epel7-old-cups.patch new file mode 100644 index 00000000..8ed30b76 --- /dev/null +++ b/chromium-98.0.4758.80-epel7-old-cups.patch @@ -0,0 +1,167 @@ +diff -up chromium-98.0.4758.80/chrome/service/cloud_print/print_system_cups.cc.el7cups chromium-98.0.4758.80/chrome/service/cloud_print/print_system_cups.cc +--- chromium-98.0.4758.80/chrome/service/cloud_print/print_system_cups.cc.el7cups 2022-02-05 16:24:50.301779674 +0000 ++++ chromium-98.0.4758.80/chrome/service/cloud_print/print_system_cups.cc 2022-02-05 16:24:50.302779651 +0000 +@@ -729,8 +729,9 @@ int PrintSystemCUPS::PrintFile(const GUR + // Use default (local) print server. + if (url.is_empty()) + return cupsPrintFile(name, filename, title, num_options, options); +- +- printing::HttpConnectionCUPS http(url, encryption, /*blocking=*/false); ++ ++ printing::HttpConnectionCUPS http(url, encryption); ++ http.SetBlocking(false); + return cupsPrintFile2(http.http(), name, filename, title, num_options, + options); + } +@@ -746,7 +747,8 @@ int PrintSystemCUPS::GetJobs(cups_job_t* + if (url.is_empty()) + return cupsGetJobs(jobs, name, myjobs, whichjobs); + +- printing::HttpConnectionCUPS http(url, encryption, /*blocking=*/false); ++ printing::HttpConnectionCUPS http(url, encryption); ++ http.SetBlocking(false); + return cupsGetJobs2(http.http(), jobs, name, myjobs, whichjobs); + } + +diff -up chromium-98.0.4758.80/printing/backend/cups_helper.cc.el7cups chromium-98.0.4758.80/printing/backend/cups_helper.cc +--- chromium-98.0.4758.80/printing/backend/cups_helper.cc.el7cups 2022-02-05 16:25:16.885173676 +0000 ++++ chromium-98.0.4758.80/printing/backend/cups_helper.cc 2022-02-05 16:25:16.886173653 +0000 +@@ -34,18 +34,6 @@ namespace printing { + // This section contains helper code for PPD parsing for semantic capabilities. + namespace { + +-// Function availability can be tested by checking whether its address is not +-// nullptr. Weak symbols remove the need for platform specific build flags and +-// allow for appropriate CUPS usage on platforms with non-uniform version +-// support, namely Linux. +-#define WEAK_CUPS_FN(x) extern "C" __attribute__((weak)) decltype(x) x +- +-WEAK_CUPS_FN(httpConnect2); +- +-// Timeout for establishing a CUPS connection. It is expected that cupsd is +-// able to start and respond on all systems within this duration. +-constexpr base::TimeDelta kCupsTimeout = base::Seconds(5); +- + // CUPS default max copies value (parsed from kCupsMaxCopies PPD attribute). + constexpr int32_t kDefaultMaxCopies = 9999; + constexpr char kCupsMaxCopies[] = "cupsMaxCopies"; +@@ -527,8 +515,7 @@ const int kDefaultIPPServerPort = 631; + // Helper wrapper around http_t structure, with connection and cleanup + // functionality. + HttpConnectionCUPS::HttpConnectionCUPS(const GURL& print_server_url, +- http_encryption_t encryption, +- bool blocking) ++ http_encryption_t encryption) + : http_(nullptr) { + // If we have an empty url, use default print server. + if (print_server_url.is_empty()) +@@ -538,17 +525,10 @@ HttpConnectionCUPS::HttpConnectionCUPS(c + if (port == url::PORT_UNSPECIFIED) + port = kDefaultIPPServerPort; + +- if (httpConnect2) { +- http_ = httpConnect2(print_server_url.host().c_str(), port, +- /*addrlist=*/nullptr, AF_UNSPEC, encryption, +- blocking ? 1 : 0, kCupsTimeout.InMilliseconds(), +- /*cancel=*/nullptr); +- } else { +- // Continue to use deprecated CUPS calls because because older Linux +- // distribution such as RHEL/CentOS 7 are shipped with CUPS 1.6. +- http_ = +- httpConnectEncrypt(print_server_url.host().c_str(), port, encryption); +- } ++ // Continue to use deprecated CUPS calls because because older Linux ++ // distribution such as RHEL/CentOS 7 are shipped with CUPS 1.6. ++ http_ = ++ httpConnectEncrypt(print_server_url.host().c_str(), port, encryption); + + if (!http_) { + LOG(ERROR) << "CP_CUPS: Failed connecting to print server: " +@@ -556,8 +536,6 @@ HttpConnectionCUPS::HttpConnectionCUPS(c + return; + } + +- if (!httpConnect2) +- httpBlocking(http_, blocking ? 1 : 0); + } + + HttpConnectionCUPS::~HttpConnectionCUPS() { +@@ -565,6 +543,10 @@ HttpConnectionCUPS::~HttpConnectionCUPS( + httpClose(http_); + } + ++void HttpConnectionCUPS::SetBlocking(bool blocking) { ++ httpBlocking(http_, blocking ? 1 : 0); ++} ++ + http_t* HttpConnectionCUPS::http() { + return http_; + } +diff -up chromium-98.0.4758.80/printing/backend/cups_helper.h.el7cups chromium-98.0.4758.80/printing/backend/cups_helper.h +--- chromium-98.0.4758.80/printing/backend/cups_helper.h.el7cups 2022-02-05 16:25:16.886173653 +0000 ++++ chromium-98.0.4758.80/printing/backend/cups_helper.h 2022-02-05 16:25:16.886173653 +0000 +@@ -34,10 +34,11 @@ constexpr cups_ptype_t kDestinationsFilt + class COMPONENT_EXPORT(PRINT_BACKEND) HttpConnectionCUPS { + public: + HttpConnectionCUPS(const GURL& print_server_url, +- http_encryption_t encryption, +- bool blocking); ++ http_encryption_t encryption); + ~HttpConnectionCUPS(); + ++ void SetBlocking(bool blocking); ++ + http_t* http(); + + private: +diff -up chromium-98.0.4758.80/printing/backend/print_backend_cups.cc.el7cups chromium-98.0.4758.80/printing/backend/print_backend_cups.cc +--- chromium-98.0.4758.80/printing/backend/print_backend_cups.cc.el7cups 2022-02-05 16:25:16.887173630 +0000 ++++ chromium-98.0.4758.80/printing/backend/print_backend_cups.cc 2022-02-07 00:23:16.315248327 +0000 +@@ -146,7 +146,7 @@ mojom::ResultCode PrintBackendCUPS::Enum + // not showing as available. Using cupsEnumDests() allows us to do our own + // filtering should any duplicates occur. + CupsDestsData dests_data = {0, nullptr}; +- ipp_status_t last_error = IPP_STATUS_OK; ++ ipp_status_t last_error = IPP_OK; + if (print_server_url_.is_empty()) { + VLOG(1) << "CUPS: using cupsEnumDests to enumerate printers"; + if (!cupsEnumDests(CUPS_DEST_FLAGS_NONE, kCupsTimeoutMs, +@@ -173,7 +173,7 @@ mojom::ResultCode PrintBackendCUPS::Enum + // no printer drivers installed. Rely upon CUPS error code to distinguish + // between these. + DCHECK(!dests_data.dests); +- if (last_error != IPP_STATUS_ERROR_NOT_FOUND) { ++ if (last_error != IPP_NOT_FOUND) { + VLOG(1) << "CUPS: Error getting printers from CUPS server" + << ", server: " << print_server_url_ + << ", error: " << static_cast(last_error) << " - " +@@ -336,7 +336,8 @@ int PrintBackendCUPS::GetDests(cups_dest + if (print_server_url_.is_empty()) + return cupsGetDests2(CUPS_HTTP_DEFAULT, dests); + +- HttpConnectionCUPS http(print_server_url_, cups_encryption_, blocking_); ++ HttpConnectionCUPS http(print_server_url_, cups_encryption_); ++ http.SetBlocking(blocking_); + + // This call must be made in the same scope as `http` because its destructor + // closes the connection. +@@ -362,7 +363,8 @@ base::FilePath PrintBackendCUPS::GetPPD( + // connection will timeout after 10 seconds of no data period. And it will + // return the same way as if data was completely and successfully + // downloaded. +- HttpConnectionCUPS http(print_server_url_, cups_encryption_, blocking_); ++ HttpConnectionCUPS http(print_server_url_, cups_encryption_); ++ http.SetBlocking(blocking_); + ppd_file_path = cupsGetPPD2(http.http(), name); + // Check if the get full PPD, since non-blocking call may simply return + // normally after timeout expired. +@@ -398,7 +400,8 @@ PrintBackendCUPS::ScopedDestination Prin + // Use default (local) print server. + dest = cupsGetNamedDest(CUPS_HTTP_DEFAULT, printer_name.c_str(), nullptr); + } else { +- HttpConnectionCUPS http(print_server_url_, cups_encryption_, blocking_); ++ HttpConnectionCUPS http(print_server_url_, cups_encryption_); ++ http.SetBlocking(blocking_); + dest = cupsGetNamedDest(http.http(), printer_name.c_str(), nullptr); + } + return ScopedDestination(dest); diff --git a/chromium-98.0.4758.80-epel7-old-headers-workarounds.patch b/chromium-98.0.4758.80-epel7-old-headers-workarounds.patch new file mode 100644 index 00000000..325ba15e --- /dev/null +++ b/chromium-98.0.4758.80-epel7-old-headers-workarounds.patch @@ -0,0 +1,127 @@ +diff -up chromium-98.0.4758.80/mojo/core/channel_linux.cc.epel7-header-workarounds chromium-98.0.4758.80/mojo/core/channel_linux.cc +--- chromium-98.0.4758.80/mojo/core/channel_linux.cc.epel7-header-workarounds 2022-02-03 18:37:49.535504412 +0000 ++++ chromium-98.0.4758.80/mojo/core/channel_linux.cc 2022-02-03 18:55:08.833815527 +0000 +@@ -44,6 +44,25 @@ + #include "base/android/build_info.h" + #endif + ++#ifndef F_LINUX_SPECIFIC_BASE ++#define F_LINUX_SPECIFIC_BASE 1024 ++#endif ++#ifndef F_SEAL_SEAL ++#define F_SEAL_SEAL 0x0001 ++#endif ++#ifndef F_SEAL_SHRINK ++#define F_SEAL_SHRINK 0x0002 ++#endif ++#ifndef F_SEAL_GROW ++#define F_SEAL_GROW 0x0004 ++#endif ++#ifndef F_ADD_SEALS ++#define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9) ++#endif ++#ifndef F_GET_SEALS ++#define F_GET_SEALS (F_LINUX_SPECIFIC_BASE + 10) ++#endif ++ + #ifndef EFD_ZERO_ON_WAKE + #define EFD_ZERO_ON_WAKE O_NOFOLLOW + #endif +diff -up chromium-98.0.4758.80/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc.epel7-header-workarounds chromium-98.0.4758.80/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc +--- chromium-98.0.4758.80/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc.epel7-header-workarounds 2022-02-01 00:41:54.000000000 +0000 ++++ chromium-98.0.4758.80/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc 2022-02-03 18:37:49.536504389 +0000 +@@ -53,6 +53,25 @@ + + #endif // defined(OS_ANDROID) + ++#ifndef F_LINUX_SPECIFIC_BASE ++#define F_LINUX_SPECIFIC_BASE 1024 ++#endif ++#ifndef F_SEAL_SEAL ++#define F_SEAL_SEAL 0x0001 ++#endif ++#ifndef F_SEAL_SHRINK ++#define F_SEAL_SHRINK 0x0002 ++#endif ++#ifndef F_SEAL_GROW ++#define F_SEAL_GROW 0x0004 ++#endif ++#ifndef F_ADD_SEALS ++#define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9) ++#endif ++#ifndef F_GET_SEALS ++#define F_GET_SEALS (F_LINUX_SPECIFIC_BASE + 10) ++#endif ++ + #if defined(__arm__) && !defined(MAP_STACK) + #define MAP_STACK 0x20000 // Daisy build environment has old headers. + #endif +diff -up chromium-98.0.4758.80/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc.epel7-header-workarounds chromium-98.0.4758.80/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc +--- chromium-98.0.4758.80/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc.epel7-header-workarounds 2022-02-01 00:41:54.000000000 +0000 ++++ chromium-98.0.4758.80/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc 2022-02-03 18:37:49.535504412 +0000 +@@ -6,7 +6,24 @@ + + #include + #include +-#include ++#ifndef KCMP_FILE ++#define KCMP_FILE 0 ++#endif ++#ifndef F_LINUX_SPECIFIC_BASE ++#define F_LINUX_SPECIFIC_BASE 1024 ++#endif ++#ifndef F_SEAL_SEAL ++#define F_SEAL_SEAL 0x0001 ++#endif ++#ifndef F_SEAL_SHRINK ++#define F_SEAL_SHRINK 0x0002 ++#endif ++#ifndef F_SEAL_GROW ++#define F_SEAL_GROW 0x0004 ++#endif ++#ifndef F_ADD_SEALS ++#define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9) ++#endif + #include + + // Some arch's (arm64 for instance) unistd.h don't pull in symbols used here +diff -up chromium-98.0.4758.80/sandbox/policy/linux/bpf_gpu_policy_linux.cc.epel7-header-workarounds chromium-98.0.4758.80/sandbox/policy/linux/bpf_gpu_policy_linux.cc +--- chromium-98.0.4758.80/sandbox/policy/linux/bpf_gpu_policy_linux.cc.epel7-header-workarounds 2022-02-03 18:37:49.535504412 +0000 ++++ chromium-98.0.4758.80/sandbox/policy/linux/bpf_gpu_policy_linux.cc 2022-02-03 18:56:24.382093563 +0000 +@@ -22,6 +22,22 @@ + #include "sandbox/policy/linux/sandbox_linux.h" + #include "sandbox/policy/linux/sandbox_seccomp_bpf_linux.h" + ++#ifndef F_LINUX_SPECIFIC_BASE ++#define F_LINUX_SPECIFIC_BASE 1024 ++#endif ++#ifndef F_SEAL_SEAL ++#define F_SEAL_SEAL 0x0001 ++#endif ++#ifndef F_SEAL_SHRINK ++#define F_SEAL_SHRINK 0x0002 ++#endif ++#ifndef F_SEAL_GROW ++#define F_SEAL_GROW 0x0004 ++#endif ++#ifndef F_ADD_SEALS ++#define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9) ++#endif ++ + using sandbox::bpf_dsl::AllOf; + using sandbox::bpf_dsl::Allow; + using sandbox::bpf_dsl::Arg; +diff -up chromium-98.0.4758.80/ui/events/ozone/evdev/event_converter_evdev_impl.cc.epel7-header-workarounds chromium-98.0.4758.80/ui/events/ozone/evdev/event_converter_evdev_impl.cc +--- chromium-98.0.4758.80/ui/events/ozone/evdev/event_converter_evdev_impl.cc.epel7-header-workarounds 2022-02-03 18:37:49.536504389 +0000 ++++ chromium-98.0.4758.80/ui/events/ozone/evdev/event_converter_evdev_impl.cc 2022-02-03 18:57:16.842897816 +0000 +@@ -23,6 +23,10 @@ + #include "ui/events/ozone/evdev/numberpad_metrics.h" + #endif + ++#ifndef SW_PEN_INSERTED ++#define SW_PEN_INSERTED 0x0f /* set = pen inserted */ ++#endif ++ + namespace ui { + + namespace { diff --git a/chromium-98.0.4758.80-fedora-user-agent.patch b/chromium-98.0.4758.80-fedora-user-agent.patch new file mode 100644 index 00000000..84dddf2c --- /dev/null +++ b/chromium-98.0.4758.80-fedora-user-agent.patch @@ -0,0 +1,12 @@ +diff -up chromium-98.0.4758.80/content/common/user_agent.cc.fedora-user-agent chromium-98.0.4758.80/content/common/user_agent.cc +--- chromium-98.0.4758.80/content/common/user_agent.cc.fedora-user-agent 2022-02-02 19:16:37.841755606 +0000 ++++ chromium-98.0.4758.80/content/common/user_agent.cc 2022-02-02 19:19:52.395650550 +0000 +@@ -34,7 +34,7 @@ std::string GetUserAgentPlatform() { + #elif defined(OS_MAC) + return "Macintosh; "; + #elif defined(USE_OZONE) +- return "X11; "; // strange, but that's what Firefox uses ++ return "X11; Fedora; "; // strange, but that's what Firefox uses + #elif defined(OS_ANDROID) + return "Linux; "; + #elif defined(OS_FUCHSIA) diff --git a/chromium-98.0.4758.80-remoting-cstring.patch b/chromium-98.0.4758.80-remoting-cstring.patch new file mode 100644 index 00000000..5c969211 --- /dev/null +++ b/chromium-98.0.4758.80-remoting-cstring.patch @@ -0,0 +1,56 @@ +diff -up chromium-98.0.4758.80/remoting/base/util.cc.remoting-cstring chromium-98.0.4758.80/remoting/base/util.cc +--- chromium-98.0.4758.80/remoting/base/util.cc.remoting-cstring 2022-02-01 00:41:54.000000000 +0000 ++++ chromium-98.0.4758.80/remoting/base/util.cc 2022-02-02 15:55:01.352340901 +0000 +@@ -4,6 +4,7 @@ + + #include "remoting/base/util.h" + ++#include + #include + + #include "base/logging.h" +diff -up chromium-98.0.4758.80/remoting/client/display/gl_helpers.cc.remoting-cstring chromium-98.0.4758.80/remoting/client/display/gl_helpers.cc +--- chromium-98.0.4758.80/remoting/client/display/gl_helpers.cc.remoting-cstring 2022-02-01 00:41:54.000000000 +0000 ++++ chromium-98.0.4758.80/remoting/client/display/gl_helpers.cc 2022-02-02 15:55:01.353340854 +0000 +@@ -5,6 +5,7 @@ + #include "remoting/client/display/gl_helpers.h" + + #include "base/logging.h" ++#include + + namespace remoting { + +diff -up chromium-98.0.4758.80/remoting/host/fake_mouse_cursor_monitor.cc.remoting-cstring chromium-98.0.4758.80/remoting/host/fake_mouse_cursor_monitor.cc +--- chromium-98.0.4758.80/remoting/host/fake_mouse_cursor_monitor.cc.remoting-cstring 2022-02-01 00:41:54.000000000 +0000 ++++ chromium-98.0.4758.80/remoting/host/fake_mouse_cursor_monitor.cc 2022-02-02 15:55:01.353340854 +0000 +@@ -4,6 +4,7 @@ + + #include "remoting/host/fake_mouse_cursor_monitor.h" + ++#include + #include + + #include "base/check.h" +diff -up chromium-98.0.4758.80/remoting/host/host_config_unittest.cc.remoting-cstring chromium-98.0.4758.80/remoting/host/host_config_unittest.cc +--- chromium-98.0.4758.80/remoting/host/host_config_unittest.cc.remoting-cstring 2022-02-02 15:55:01.353340854 +0000 ++++ chromium-98.0.4758.80/remoting/host/host_config_unittest.cc 2022-02-02 15:57:20.295794172 +0000 +@@ -10,6 +10,7 @@ + #include "base/values.h" + #include "testing/gtest/include/gtest/gtest.h" + #include "third_party/abseil-cpp/absl/types/optional.h" ++#include + + namespace remoting { + +diff -up chromium-98.0.4758.80/remoting/host/host_secret.cc.remoting-cstring chromium-98.0.4758.80/remoting/host/host_secret.cc +--- chromium-98.0.4758.80/remoting/host/host_secret.cc.remoting-cstring 2022-02-01 00:41:54.000000000 +0000 ++++ chromium-98.0.4758.80/remoting/host/host_secret.cc 2022-02-02 15:55:01.353340854 +0000 +@@ -6,7 +6,7 @@ + + #include + +-#include ++#include + + #include "base/rand_util.h" + #include "base/strings/string_number_conversions.h" diff --git a/chromium-98.0.4758.80-remoting-extra-qualification.patch b/chromium-98.0.4758.80-remoting-extra-qualification.patch new file mode 100644 index 00000000..013fdc9d --- /dev/null +++ b/chromium-98.0.4758.80-remoting-extra-qualification.patch @@ -0,0 +1,84 @@ +diff -up chromium-98.0.4758.80/remoting/host/mojom/remoting_mojom_traits.h.extra-qualification chromium-98.0.4758.80/remoting/host/mojom/remoting_mojom_traits.h +--- chromium-98.0.4758.80/remoting/host/mojom/remoting_mojom_traits.h.extra-qualification 2022-02-04 00:55:00.643766557 +0000 ++++ chromium-98.0.4758.80/remoting/host/mojom/remoting_mojom_traits.h 2022-02-04 00:56:18.272148934 +0000 +@@ -21,7 +21,7 @@ + namespace mojo { + + template <> +-class mojo::StructTraits { ++class StructTraits { + public: + static bool value(bool value) { return value; } + +@@ -32,7 +32,7 @@ class mojo::StructTraits +-class mojo::StructTraits { ++class StructTraits { + public: + static float value(float value) { return value; } + +@@ -43,7 +43,7 @@ class mojo::StructTraits +-class mojo::StructTraits { ++class StructTraits { + public: + static int32_t value(int32_t value) { return value; } + +@@ -109,7 +109,7 @@ struct EnumTraits +-class mojo::StructTraits { + public: + static const std::string& mime_type( +@@ -127,7 +127,7 @@ class mojo::StructTraits +-class mojo::StructTraits { + public: + static bool pressed(const ::remoting::protocol::KeyEvent& event) { +@@ -163,7 +163,7 @@ class mojo::StructTraits +-class mojo::StructTraits { + public: + static absl::optional x( +@@ -252,7 +252,7 @@ class mojo::StructTraits +-class mojo::StructTraits { + public: + static const std::string& text(const ::remoting::protocol::TextEvent& event) { +@@ -264,7 +264,7 @@ class mojo::StructTraits +-class mojo::StructTraits { + public: + static uint32_t id(const ::remoting::protocol::TouchEventPoint& event) { +@@ -341,7 +341,7 @@ struct EnumTraits +-class mojo::StructTraits { + public: + static ::remoting::protocol::TouchEvent::TouchEventType event_type( diff --git a/chromium-browser.desktop b/chromium-browser.desktop index 962decbd..23d3257b 100644 --- a/chromium-browser.desktop +++ b/chromium-browser.desktop @@ -134,7 +134,7 @@ X-MultipleArgs=false Type=Application Icon=chromium-browser Categories=Network;WebBrowser; -MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp; +MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https; StartupWMClass=Chromium-browser Keywords=web;browser;internet; Actions=new-window;new-private-window; diff --git a/chromium.spec b/chromium.spec index a512a9f2..8ca7b9f0 100644 --- a/chromium.spec +++ b/chromium.spec @@ -155,7 +155,7 @@ BuildRequires: libicu-devel >= 5.4 %global gtk3 1 %if 0%{?rhel} == 7 || 0%{?rhel} == 8 -%global dts_version 9 +%global dts_version 11 %global bundleopus 1 %global bundlelibusbx 1 @@ -213,15 +213,15 @@ BuildRequires: libicu-devel >= 5.4 %global chromoting_client_id %nil %endif -%global majorversion 96 +%global majorversion 98 %if %{freeworld} Name: chromium%{chromium_channel}%{nsuffix} %else Name: chromium%{chromium_channel} %endif -Version: %{majorversion}.0.4664.110 -Release: 7%{?dist} +Version: %{majorversion}.0.4758.80 +Release: 1%{?dist} %if %{?freeworld} %if %{?shared} # chromium-libs-media-freeworld @@ -264,7 +264,7 @@ Patch11: chromium-93.0.4577.63-py3-bootstrap.patch Patch11: chromium-92.0.4515.107-py2-bootstrap.patch %endif # Add "Fedora" to the user agent string -Patch12: chromium-86.0.4240.75-fedora-user-agent.patch +Patch12: chromium-98.0.4758.80-fedora-user-agent.patch # Needs to be submitted.. Patch51: chromium-96.0.4664.45-gcc-remoting-constexpr.patch @@ -279,33 +279,22 @@ Patch57: chromium-96.0.4664.45-missing-cstring.patch # prepare for using system ffmpeg (clean) # http://svnweb.mageia.org/packages/cauldron/chromium-browser-stable/current/SOURCES/chromium-53-ffmpeg-no-deprecation-errors.patch?view=markup Patch58: chromium-53-ffmpeg-no-deprecation-errors.patch -# https://github.com/stha09/chromium-patches/blob/master/chromium-96-CouponDB-include.patch -Patch59: chromium-96-CouponDB-include.patch -# https://github.com/stha09/chromium-patches/blob/master/chromium-95-libyuv-aarch64.patch -Patch60: chromium-95-libyuv-aarch64.patch -# https://github.com/stha09/chromium-patches/blob/master/chromium-96-CommandLine-include.patch -Patch61: chromium-96-CommandLine-include.patch -# https://github.com/stha09/chromium-patches/blob/master/chromium-96-RestrictedCookieManager-tuple.patch -Patch62: chromium-96-RestrictedCookieManager-tuple.patch -# https://github.com/stha09/chromium-patches/blob/master/chromium-96-DrmRenderNodePathFinder-include.patch -Patch63: chromium-96-DrmRenderNodePathFinder-include.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-95-libyuv-arm.patch +Patch60: chromium-95-libyuv-arm.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-98-MiraclePtr-gcc-ice.patch +Patch61: chromium-98-MiraclePtr-gcc-ice.patch +# https://github.com/stha09/chromium-patches/blob/master/chromium-98-WaylandFrameManager-check.patch +Patch62: chromium-98-WaylandFrameManager-check.patch # Extra CXXFLAGS for aarch64 Patch64: chromium-91.0.4472.77-aarch64-cxxflags-addition.patch # Fix issue where closure_compiler thinks java is only allowed in android builds # https://bugs.chromium.org/p/chromium/issues/detail?id=1192875 Patch65: chromium-91.0.4472.77-java-only-allowed-in-android-builds.patch -# Silence GCC warnings during gn compile -Patch66: chromium-92.0.4515.107-gn-gcc-cleanup.patch # Fix missing cstring in remoting code -Patch67: chromium-84.0.4147.125-remoting-cstring.patch +Patch67: chromium-98.0.4758.80-remoting-cstring.patch # Apply fix_textrels hack for i686 (even without lld) Patch68: chromium-84.0.4147.125-i686-fix_textrels.patch -# Work around binutils bug in aarch64 (F33+) -Patch69: chromium-84.0.4147.125-aarch64-clearkeycdm-binutils-workaround.patch -# No const elements in std::vector -# https://github.com/chromium/chromium/commit/fd8ee2daf64a4348abca5dc9171523a1f9540c57#diff-45309c0989d0ee3ef14c373b6032b235c928574f72ac81e0b2ad8abf95c34547 -Patch70: chromium-96.0.4664.45-no-const-elements-in-std-vector.patch # Rawhide (f35) glibc defines SIGSTKSZ as a long instead of a constant Patch76: chromium-92.0.4515.107-rawhide-gcc-std-max-fix.patch @@ -314,7 +303,7 @@ Patch79: chromium-93.0.4577.63-widevine-no-download.patch # Fix crashes with components/cast_* # Thanks to Gentoo -Patch80: chromium-96-EnumTable-crash.patch +Patch80: chromium-98.0.4758.80-EnumTable-crash.patch # Add missing cmath header Patch84: chromium-94.0.4606.71-remoting-missing-cmath-header.patch @@ -323,10 +312,8 @@ Patch84: chromium-94.0.4606.71-remoting-missing-cmath-header.patch Patch86: chromium-94.0.4606.81-clang-format.patch # include full UrlResponseHead header Patch95: chromium-93.0.4577.63-mojo-header-fix.patch -# Fix multiple defines issue in webrtc/BUILD.gn -Patch96: chromium-94.0.4606.54-webrtc-BUILD.gn-fix-multiple-defines.patch # Fix extra qualification error -Patch97: chromium-94.0.4606.61-remoting-extra-qualification.patch +Patch97: chromium-98.0.4758.80-remoting-extra-qualification.patch # From gentoo Patch98: chromium-94.0.4606.71-InkDropHost-crash.patch # Enable WebRTCPPipeWireCapturer by default @@ -339,10 +326,10 @@ Patch101: chromium-75.0.3770.100-epel7-stdc++.patch # el7 only patch Patch102: chromium-80.0.3987.132-el7-noexcept.patch # Work around old and missing headers on EPEL7 -Patch103: chromium-90.0.4430.93-epel7-old-headers-workarounds.patch +Patch103: chromium-98.0.4758.80-epel7-old-headers-workarounds.patch # Use old cups (chromium's code workaround breaks on gcc) # Revert: https://github.com/chromium/chromium/commit/c3213f8779ddc427e89d982514185ed5e4c94e91 -Patch104: chromium-84.0.4147.89-epel7-old-cups.patch +Patch104: chromium-98.0.4758.80-epel7-old-cups.patch # Still not wrong, but it seems like only EL needs it Patch106: chromium-77-clang.patch # ARM failures on el8 related to int clashes @@ -355,15 +342,16 @@ Patch108: chromium-85.0.4183.83-el7-old-libdrm.patch # error: no matching function for call to 'std::basic_string::erase(std::basic_string::const_iterator, __gnu_cxx::__normal_iterator >&)' # 33 | property_name.erase(property_name.cbegin(), cur); # Not sure how this EVER worked anywhere, but it only seems to fail on EPEL-7. -Patch109: chromium-90.0.4430.93-epel7-erase-fix.patch +Patch109: chromium-98.0.4758.80-epel7-erase-fix.patch # Again, not sure how epel8 is the only one to hit this... # AARCH64 neon symbols need to be prefixed too to prevent multiple definition issue at linktime Patch110: chromium-90.0.4430.93-epel8-aarch64-libpng16-symbol-prefixes.patch - +# Add additional operator== to make el7 happy. +Patch111: chromium-98.0.4758.80-el7-extra-operator==.patch # VAAPI # Upstream turned VAAPI on in Linux in 86 -Patch202: chromium-89.0.4389.72-enable-hardware-accelerated-mjpeg.patch +Patch202: chromium-98.0.4758.80-enable-hardware-accelerated-mjpeg.patch Patch203: chromium-86.0.4240.75-vaapi-i686-fpermissive.patch Patch205: chromium-86.0.4240.75-fix-vaapi-on-intel.patch @@ -992,18 +980,13 @@ udev. %patch56 -p1 -b .missing-cstdint %patch57 -p1 -b .missing-cstring %patch58 -p1 -b .ffmpeg-deprecations -%patch59 -p1 -b .CouponDB-include -%patch60 -p1 -b .libyuv-aarch64 -%patch61 -p1 -b .CommandLine-include -%patch62 -p1 -b .RestrictedCookieManager-tuple -%patch63 -p1 -b .DrmRenderNodePathFinder-include +%patch60 -p1 -b .libyuv-arm +%patch61 -p1 -b .MiraclePtr-gcc-ice +%patch62 -p1 -b .WaylandFrameManager-check %patch64 -p1 -b .aarch64-cxxflags-addition %patch65 -p1 -b .java-only-allowed -%patch66 -p1 -b .gn-gcc-cleanup %patch67 -p1 -b .remoting-cstring %patch68 -p1 -b .i686-textrels -%patch69 -p1 -b .aarch64-clearkeycdm-binutils-workaround -%patch70 -p1 -b .no-const-elements-in-std-vector %if 0%{?fedora} >= 35 %patch76 -p1 -b .sigstkszfix %endif @@ -1012,7 +995,6 @@ udev. %patch84 -p1 -b .remoting-missing-cmath-header %patch86 -p1 -b .clang-format-py3 %patch95 -p1 -b .mojo-header-fix -%patch96 -p1 -b .webrtc-BUILD.gn-fix-multiple-defines %patch97 -p1 -b .remoting-extra-qualification %patch98 -p1 -b .InkDropHost-crash %patch99 -p1 -b .enable-WebRTCPipeWireCapturer-byDefault @@ -1030,6 +1012,7 @@ udev. %patch104 -p1 -b .el7cups %patch108 -p1 -b .el7-old-libdrm %patch109 -p1 -b .el7-erase-fix +%patch111 -p1 -b .el7-extra-operator-equalequal %endif %if 0%{?rhel} == 8 @@ -1144,7 +1127,7 @@ popd # Core defines are flags that are true for both the browser and headless. CHROMIUM_CORE_GN_DEFINES="" -CHROMIUM_CORE_GN_DEFINES+=' is_debug=false' +CHROMIUM_CORE_GN_DEFINES+=' is_debug=false dcheck_always_on=false dcheck_is_configurable=false' %ifarch x86_64 aarch64 CHROMIUM_CORE_GN_DEFINES+=' system_libdir="lib64"' %endif @@ -1216,7 +1199,7 @@ CHROMIUM_HEADLESS_GN_DEFINES+=' use_ozone=true ozone_auto_platforms=false ozone_ CHROMIUM_HEADLESS_GN_DEFINES+=' headless_use_embedded_resources=false icu_use_data_file=false v8_use_external_startup_data=false' CHROMIUM_HEADLESS_GN_DEFINES+=' enable_nacl=false enable_print_preview=false enable_remoting=false use_alsa=false' CHROMIUM_HEADLESS_GN_DEFINES+=' use_cups=false use_dbus=false use_gio=false use_kerberos=false use_libpci=false' -CHROMIUM_HEADLESS_GN_DEFINES+=' use_pulseaudio=false use_udev=false use_gtk=false use_glib=false use_x11=false' +CHROMIUM_HEADLESS_GN_DEFINES+=' use_pulseaudio=false use_udev=false use_gtk=false use_glib=false' export CHROMIUM_HEADLESS_GN_DEFINES %if 0%{?rhel} && 0%{?rhel} <= 8 @@ -1282,7 +1265,9 @@ build/linux/unbundle/remove_bundled_libraries.py \ 'third_party/catapult/common/py_vulcanize/third_party/rcssmin' \ 'third_party/catapult/common/py_vulcanize/third_party/rjsmin' \ 'third_party/catapult/third_party/beautifulsoup4' \ + 'third_party/catapult/third_party/beautifulsoup4-4.9.3' \ 'third_party/catapult/third_party/google-endpoints' \ + 'third_party/catapult/third_party/html5lib-1.1' \ 'third_party/catapult/third_party/html5lib-python' \ 'third_party/catapult/third_party/polymer' \ 'third_party/catapult/third_party/six' \ @@ -1448,6 +1433,7 @@ build/linux/unbundle/remove_bundled_libraries.py \ 'third_party/shell-encryption' \ 'third_party/simplejson' \ 'third_party/sinonjs' \ + 'third_party/six' \ 'third_party/skia' \ 'third_party/skia/include/third_party/skcms' \ 'third_party/skia/include/third_party/vulkan' \ @@ -1683,6 +1669,9 @@ echo %endif %endif +# bug #827861, vk_swiftshader_icd.json not getting properly installed in out/Release +sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > out/Release/vk_swiftshader_icd.json + %install rm -rf %{buildroot} @@ -1727,6 +1716,8 @@ rm -rf %{buildroot} cp -a vk_swiftshader_icd.json %{buildroot}%{chromium_path} %endif cp -a chrome %{buildroot}%{chromium_path}/%{chromium_browser_channel} + # Explicitly strip chromium-browser (since we don't use debuginfo here anyway) + strip %{buildroot}%{chromium_path}/%{chromium_browser_channel} cp -a chrome_sandbox %{buildroot}%{chromium_path}/chrome-sandbox cp -a chrome_crashpad_handler %{buildroot}%{chromium_path}/chrome_crashpad_handler cp -a ../../chrome/app/resources/manpage.1.in %{buildroot}%{_mandir}/man1/%{chromium_browser_channel}.1 @@ -2121,6 +2112,12 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %changelog +* Wed Feb 2 2022 Tom Callaway - 98.0.4758.80-1 +- update to 98.0.4758.80 + +* Wed Jan 19 2022 Fedora Release Engineering - 96.0.4664.110-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Wed Jan 5 2022 Tom Callaway - 96.0.4664.110-7 - i hate regex. trying again diff --git a/sources b/sources index 1f174608..5f19837e 100644 --- a/sources +++ b/sources @@ -21,4 +21,4 @@ SHA512 (NotoSansSymbols2-Regular.ttf) = 2644b42c3fdccfe12395f9b61553aced169a0f1d SHA512 (NotoSansTibetan-Regular.ttf) = fb5a48fcaea80eebe7d692f6fcf00d59d47658a358d0ec8e046fc559873f88bd595b2da474d2826abd9e9305f3741c69058d867b1e6048f37fe7d71b5d3af36a SHA512 (node-v12.22.6-linux-arm64.tar.xz) = 87ce5eb954deb1d0debe6fa02b28a3cc675e12fca1e51d44b123ab294aa39ce0c6b8ac9eae1e7a6e32673ea2c2d480651d9ba7eea73012f0529503eebe9eb34d SHA512 (node-v12.22.6-linux-x64.tar.xz) = e1b55c32343cb2ccc40d888c705414bebf9c46b02083d13731df79b1e79521b7277761f6bcca041e40e3a2e47c67bb8e7848aa2b919a9de5c2ebf62c4a9c7176 -SHA512 (chromium-96.0.4664.110-clean.tar.xz) = 87b72035e1c9f4b41f82e9fe9f47d2f1fdd16393ca851509bd76d843fe12c70da53452390f9cdc1dfcc660318fe3d8c91dd7d53ec2d927dc4dbbef6e36baca44 +SHA512 (chromium-98.0.4758.80-clean.tar.xz) = b3c95418683bc1ce24dcda8e1510fc5623ef97a9fca6574a75fb372648edaa078c715592c3f9fa0f6c0557b8edf1c3436faec093b620bef7b050a8c3aa4a2f96 From 8f14028d9831add019c627aee8cac3f12eaa0ea9 Mon Sep 17 00:00:00 2001 From: Tom spot Callaway Date: Tue, 8 Feb 2022 10:01:48 -0500 Subject: [PATCH 2/2] strip headless_shell too --- chromium.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/chromium.spec b/chromium.spec index 8ca7b9f0..6961bae2 100644 --- a/chromium.spec +++ b/chromium.spec @@ -1816,6 +1816,8 @@ rm -rf %{buildroot} %if %{build_headless} pushd %{headlessbuilddir} cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path} + # Explicitly strip headless_shell binary + strip %{buildroot}%{chromium_path}/headless_shell popd %endif