public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/chromium] epel9-next: workaround for clang bug on el7
@ 2026-08-07 16:05 Than Ngo
0 siblings, 0 replies; only message in thread
From: Than Ngo @ 2026-08-07 16:05 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/chromium
Branch : epel9-next
Commit : d25279ef18c3a25c25b2dd17f318bd706832b9e2
Author : Than Ngo <than@redhat.com>
Date : 2023-05-04T21:21:02+02:00
Stats : +259/-48 in 2 file(s)
URL : https://src.fedoraproject.org/rpms/chromium/c/d25279ef18c3a25c25b2dd17f318bd706832b9e2?branch=epel9-next
Log:
workaround for clang bug on el7
---
diff --git a/chromium-113-constexpr-el7.patch b/chromium-113-constexpr-el7.patch
index 30bf11e..c474e12 100644
--- a/chromium-113-constexpr-el7.patch
+++ b/chromium-113-constexpr-el7.patch
@@ -1,66 +1,277 @@
-diff -up chromium-113.0.5672.63/components/version_info/version_info.h.me chromium-113.0.5672.63/components/version_info/version_info.h
---- chromium-113.0.5672.63/components/version_info/version_info.h.me 2023-05-04 09:11:37.195903527 +0200
-+++ chromium-113.0.5672.63/components/version_info/version_info.h 2023-05-04 10:34:52.213681698 +0200
-@@ -27,18 +27,18 @@ const std::string GetProductNameAndVersi
- const std::string& build_version);
+diff --git a/components/version_info/version_info.cc b/components/version_info/version_info.cc
+index c5b6a9ea17be1..9b1f5e4478f53 100644
+--- a/components/version_info/version_info.cc
++++ b/components/version_info/version_info.cc
+@@ -4,26 +4,15 @@
- // Returns the product name, e.g. "Chromium" or "Google Chrome".
--constexpr std::string GetProductName() {
-+std::string GetProductName() {
- return PRODUCT_NAME;
- }
+ #include "components/version_info/version_info.h"
- // Returns the version number, e.g. "6.0.490.1".
--constexpr std::string GetVersionNumber() {
-+std::string GetVersionNumber() {
- return PRODUCT_VERSION;
+-#include "base/check.h"
++#include <string>
++
+ #include "base/no_destructor.h"
+-#include "base/notreached.h"
+-#include "base/sanitizer_buildflags.h"
+ #include "base/strings/strcat.h"
+ #include "base/strings/string_number_conversions.h"
+ #include "base/version.h"
+-#include "build/branding_buildflags.h"
+-#include "build/build_config.h"
+-#include "build/chromeos_buildflags.h"
+-#include "components/version_info/version_info_values.h"
+
+ namespace version_info {
+
+-const std::string& GetProductNameAndVersionForUserAgent() {
+- static const base::NoDestructor<std::string> product_and_version(
+- "Chrome/" + GetVersionNumber());
+- return *product_and_version;
+-}
+-
+ const std::string GetProductNameAndVersionForReducedUserAgent(
+ const std::string& build_version) {
+ std::string product_and_version;
+@@ -32,14 +21,6 @@ const std::string GetProductNameAndVersionForReducedUserAgent(
+ return product_and_version;
}
- // Returns the product name and version information for the User-Agent header,
- // in the format: Chrome/<major_version>.<minor_version>.<build>.<patch>.
--constexpr std::string GetProductNameAndVersionForUserAgent() {
-+std::string GetProductNameAndVersionForUserAgent() {
- return "Chrome/" + GetVersionNumber();
+-std::string GetProductName() {
+- return PRODUCT_NAME;
+-}
+-
+-std::string GetVersionNumber() {
+- return PRODUCT_VERSION;
+-}
+-
+ int GetMajorVersionNumberAsInt() {
+ DCHECK(GetVersion().IsValid());
+ return GetVersion().components()[0];
+@@ -54,82 +35,4 @@ const base::Version& GetVersion() {
+ return *version;
}
-@@ -53,19 +53,19 @@ std::string GetMajorVersionNumber();
+-std::string GetLastChange() {
+- return LAST_CHANGE;
+-}
+-
+-bool IsOfficialBuild() {
+- return IS_OFFICIAL_BUILD;
+-}
+-
+-std::string GetOSType() {
+-#if BUILDFLAG(IS_WIN)
+- return "Windows";
+-#elif BUILDFLAG(IS_IOS)
+- return "iOS";
+-#elif BUILDFLAG(IS_MAC)
+- return "Mac OS X";
+-#elif BUILDFLAG(IS_CHROMEOS)
+-# if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+- return "ChromeOS";
+-# else
+- return "ChromiumOS";
+-# endif
+-#elif BUILDFLAG(IS_ANDROID)
+- return "Android";
+-#elif BUILDFLAG(IS_LINUX)
+- return "Linux";
+-#elif BUILDFLAG(IS_FREEBSD)
+- return "FreeBSD";
+-#elif BUILDFLAG(IS_OPENBSD)
+- return "OpenBSD";
+-#elif BUILDFLAG(IS_SOLARIS)
+- return "Solaris";
+-#elif BUILDFLAG(IS_FUCHSIA)
+- return "Fuchsia";
+-#else
+- return "Unknown";
+-#endif
+-}
+-
+-std::string GetChannelString(Channel channel) {
+- switch (channel) {
+- case Channel::STABLE:
+- return "stable";
+- case Channel::BETA:
+- return "beta";
+- case Channel::DEV:
+- return "dev";
+- case Channel::CANARY:
+- return "canary";
+- case Channel::UNKNOWN:
+- return "unknown";
+- }
+- NOTREACHED();
+- return std::string();
+-}
+-
+-std::string GetSanitizerList() {
+- std::string sanitizers;
+-#if defined(ADDRESS_SANITIZER)
+- sanitizers += "address ";
+-#endif
+-#if BUILDFLAG(IS_HWASAN)
+- sanitizers += "hwaddress ";
+-#endif
+-#if defined(LEAK_SANITIZER)
+- sanitizers += "leak ";
+-#endif
+-#if defined(MEMORY_SANITIZER)
+- sanitizers += "memory ";
+-#endif
+-#if defined(THREAD_SANITIZER)
+- sanitizers += "thread ";
+-#endif
+-#if defined(UNDEFINED_SANITIZER)
+- sanitizers += "undefined ";
+-#endif
+- return sanitizers;
+-}
+-
+ } // namespace version_info
+diff --git a/components/version_info/version_info.h b/components/version_info/version_info.h
+index cab516659a9e4..ffa554eed7598 100644
+--- a/components/version_info/version_info.h
++++ b/components/version_info/version_info.h
+@@ -7,7 +7,12 @@
+
+ #include <string>
+
++#include "base/notreached.h"
++#include "base/sanitizer_buildflags.h"
++#include "build/branding_buildflags.h"
++#include "build/build_config.h"
+ #include "components/version_info/channel.h"
++#include "components/version_info/version_info_values.h"
+
+ namespace base {
+ class Version;
+@@ -15,10 +20,6 @@ class Version;
+
+ namespace version_info {
+
+-// Returns the product name and version information for the User-Agent header,
+-// in the format: Chrome/<major_version>.<minor_version>.<build>.<patch>.
+-const std::string& GetProductNameAndVersionForUserAgent();
+-
+ // Returns the product name and reduced version information for the User-Agent
+ // header, in the format: Chrome/<major_version>.0.build_version.0, where
+ // `build_version` is a frozen BUILD number.
+@@ -26,10 +27,20 @@ const std::string GetProductNameAndVersionForReducedUserAgent(
+ const std::string& build_version);
+
+ // Returns the product name, e.g. "Chromium" or "Google Chrome".
+-std::string GetProductName();
++constexpr std::string GetProductName() {
++ return PRODUCT_NAME;
++}
+
+ // Returns the version number, e.g. "6.0.490.1".
+-std::string GetVersionNumber();
++constexpr std::string GetVersionNumber() {
++ return PRODUCT_VERSION;
++}
++
++// Returns the product name and version information for the User-Agent header,
++// in the format: Chrome/<major_version>.<minor_version>.<build>.<patch>.
++constexpr std::string GetProductNameAndVersionForUserAgent() {
++ return "Chrome/" + GetVersionNumber();
++}
+
+ // Returns the major component (aka the milestone) of the version as an int,
+ // e.g. 6 when the version is "6.0.490.1".
+@@ -42,22 +53,89 @@ std::string GetMajorVersionNumber();
const base::Version& GetVersion();
// Returns a version control specific identifier of this release.
--constexpr std::string GetLastChange() {
-+std::string GetLastChange() {
- return LAST_CHANGE;
- }
+-std::string GetLastChange();
++constexpr std::string GetLastChange() {
++ return LAST_CHANGE;
++}
// Returns whether this is an "official" release of the current version, i.e.
// whether knowing GetVersionNumber() is enough to completely determine what
// GetLastChange() is.
--constexpr bool IsOfficialBuild() {
-+bool IsOfficialBuild() {
- return IS_OFFICIAL_BUILD;
- }
+-bool IsOfficialBuild();
++constexpr bool IsOfficialBuild() {
++ return IS_OFFICIAL_BUILD;
++}
// Returns the OS type, e.g. "Windows", "Linux", "FreeBSD", ...
--constexpr std::string GetOSType() {
-+std::string GetOSType() {
- #if BUILDFLAG(IS_WIN)
- return "Windows";
- #elif BUILDFLAG(IS_IOS)
-@@ -97,7 +97,7 @@ constexpr std::string GetOSType() {
+-std::string GetOSType();
++constexpr std::string GetOSType() {
++#if BUILDFLAG(IS_WIN)
++ return "Windows";
++#elif BUILDFLAG(IS_IOS)
++ return "iOS";
++#elif BUILDFLAG(IS_MAC)
++ return "Mac OS X";
++#elif BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
++ return "ChromeOS";
++#else
++ return "ChromiumOS";
++#endif
++#elif BUILDFLAG(IS_ANDROID)
++ return "Android";
++#elif BUILDFLAG(IS_LINUX)
++ return "Linux";
++#elif BUILDFLAG(IS_FREEBSD)
++ return "FreeBSD";
++#elif BUILDFLAG(IS_OPENBSD)
++ return "OpenBSD";
++#elif BUILDFLAG(IS_SOLARIS)
++ return "Solaris";
++#elif BUILDFLAG(IS_FUCHSIA)
++ return "Fuchsia";
++#else
++ return "Unknown";
++#endif
++}
// Returns a string equivalent of |channel|, independent of whether the build
// is branded or not and without any additional modifiers.
--constexpr std::string GetChannelString(Channel channel) {
-+std::string GetChannelString(Channel channel) {
- switch (channel) {
- case Channel::STABLE:
- return "stable";
-@@ -114,7 +114,7 @@ constexpr std::string GetChannelString(C
- }
+-std::string GetChannelString(Channel channel);
++constexpr std::string GetChannelString(Channel channel) {
++ switch (channel) {
++ case Channel::STABLE:
++ return "stable";
++ case Channel::BETA:
++ return "beta";
++ case Channel::DEV:
++ return "dev";
++ case Channel::CANARY:
++ return "canary";
++ case Channel::UNKNOWN:
++ return "unknown";
++ }
++ NOTREACHED_NORETURN();
++}
// Returns a list of sanitizers enabled in this build.
--constexpr std::string GetSanitizerList() {
-+std::string GetSanitizerList() {
- return ""
- #if defined(ADDRESS_SANITIZER)
- "address "
+-std::string GetSanitizerList();
++constexpr std::string GetSanitizerList() {
++ return ""
++#if defined(ADDRESS_SANITIZER)
++ "address "
++#endif
++#if BUILDFLAG(IS_HWASAN)
++ "hwaddress "
++#endif
++#if defined(LEAK_SANITIZER)
++ "leak "
++#endif
++#if defined(MEMORY_SANITIZER)
++ "memory "
++#endif
++#if defined(THREAD_SANITIZER)
++ "thread "
++#endif
++#if defined(UNDEFINED_SANITIZER)
++ "undefined "
++#endif
++ ;
++}
+
+ } // namespace version_info
+
diff --git a/chromium.spec b/chromium.spec
index 9c7c926..e50a4ff 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -339,7 +339,7 @@ Patch106: chromium-98.0.4758.80-epel7-erase-fix.patch
# Add additional operator== to make el7 happy.
Patch107: chromium-99.0.4844.51-el7-extra-operator==.patch
-# workaround for clang bug
+# workaround for clang bug on el7
Patch108: chromium-113-constexpr-el7.patch
# fix FTBFS on el7, old kernel
Patch109: chromium-113-v4l2-revert-el7.patch
@@ -945,7 +945,7 @@ udev.
%patch -P105 -p1 -b .el7-old-libdrm
%patch -P106 -p1 -b .el7-erase-fix
%patch -P107 -p1 -b .el7-extra-operator-equalequal
-%patch -P108 -p1 -b .constexpr-el7
+%patch -P108 -p1 -R -b .constexpr-el7
%patch -P109 -p1 -b .v4l2-revert-el7
%endif
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-08-07 16:05 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-07 16:05 [rpms/chromium] epel9-next: workaround for clang bug on el7 Than Ngo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox