Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package abseil-cpp for openSUSE:Factory checked in at 2025-09-30 17:39:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/abseil-cpp (Old) and /work/SRC/openSUSE:Factory/.abseil-cpp.new.11973 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "abseil-cpp" Tue Sep 30 17:39:50 2025 rev:50 rq:1307930 version:20250814.1 Changes: -------- --- /work/SRC/openSUSE:Factory/abseil-cpp/abseil-cpp.changes 2025-08-21 16:58:31.751958700 +0200 +++ /work/SRC/openSUSE:Factory/.abseil-cpp.new.11973/abseil-cpp.changes 2025-09-30 17:39:52.998946124 +0200 @@ -1,0 +2,11 @@ +Mon Sep 22 19:26:07 UTC 2025 - Andreas Stieger <[email protected]> + +- update to 20250814.1 (Abseil LTS branch, Aug 2025, Patch 1): + * Fix CHECK_<OP> ambiguous overload for operator<< in older + versions of GCC + * Fix CHECK_<OP> compilation failures on older versions of GCC + which eagerly tries to instantiate std::underlying_type for + non-enum types + * Add missing rules_cc loads + +------------------------------------------------------------------- Old: ---- abseil-cpp-20250814.0.tar.gz New: ---- abseil-cpp-20250814.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ abseil-cpp.spec ++++++ --- /var/tmp/diff_new_pack.WGYrf6/_old 2025-09-30 17:39:53.798979678 +0200 +++ /var/tmp/diff_new_pack.WGYrf6/_new 2025-09-30 17:39:53.802979846 +0200 @@ -20,7 +20,7 @@ %global soversion so.2508.0.0 %global lname_suffix 2508_0_0 Name: abseil-cpp -Version: 20250814.0 +Version: 20250814.1 Release: 0 Summary: C++ libraries which augment the C++ stdlib License: Apache-2.0 ++++++ abseil-cpp-20250814.0.tar.gz -> abseil-cpp-20250814.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abseil-cpp-20250814.0/MODULE.bazel new/abseil-cpp-20250814.1/MODULE.bazel --- old/abseil-cpp-20250814.0/MODULE.bazel 2025-08-14 21:54:55.000000000 +0200 +++ new/abseil-cpp-20250814.1/MODULE.bazel 2025-09-22 20:24:38.000000000 +0200 @@ -16,7 +16,7 @@ module( name = "abseil-cpp", - version = "20250814.0", + version = "20250814.1", compatibility_level = 1, ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abseil-cpp-20250814.0/absl/base/config.h new/abseil-cpp-20250814.1/absl/base/config.h --- old/abseil-cpp-20250814.0/absl/base/config.h 2025-08-14 21:54:55.000000000 +0200 +++ new/abseil-cpp-20250814.1/absl/base/config.h 2025-09-22 20:24:38.000000000 +0200 @@ -118,7 +118,7 @@ // LTS releases can be obtained from // https://github.com/abseil/abseil-cpp/releases. #define ABSL_LTS_RELEASE_VERSION 20250814 -#define ABSL_LTS_RELEASE_PATCH_LEVEL 0 +#define ABSL_LTS_RELEASE_PATCH_LEVEL 1 // Helper macro to convert a CPP variable to a string literal. #define ABSL_INTERNAL_DO_TOKEN_STR(x) #x diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abseil-cpp-20250814.0/absl/container/internal/raw_hash_set.cc new/abseil-cpp-20250814.1/absl/container/internal/raw_hash_set.cc --- old/abseil-cpp-20250814.0/absl/container/internal/raw_hash_set.cc 2025-08-14 21:54:55.000000000 +0200 +++ new/abseil-cpp-20250814.1/absl/container/internal/raw_hash_set.cc 2025-09-22 20:24:38.000000000 +0200 @@ -679,7 +679,7 @@ ABSL_SWISSTABLE_ASSERT(IsValidCapacity(new_capacity)); ABSL_SWISSTABLE_ASSERT(new_capacity > policy.soo_capacity()); - const size_t old_capacity = common.capacity(); + [[maybe_unused]] const size_t old_capacity = common.capacity(); [[maybe_unused]] ctrl_t* old_ctrl; [[maybe_unused]] void* old_slots; if constexpr (kMode == ResizeNonSooMode::kGuaranteedAllocated) { @@ -688,7 +688,7 @@ } const size_t slot_size = policy.slot_size; - const size_t slot_align = policy.slot_align; + [[maybe_unused]] const size_t slot_align = policy.slot_align; const bool has_infoz = infoz.IsSampled(); void* alloc = policy.get_char_alloc(common); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abseil-cpp-20250814.0/absl/debugging/BUILD.bazel new/abseil-cpp-20250814.1/absl/debugging/BUILD.bazel --- old/abseil-cpp-20250814.0/absl/debugging/BUILD.bazel 2025-08-14 21:54:55.000000000 +0200 +++ new/abseil-cpp-20250814.1/absl/debugging/BUILD.bazel 2025-09-22 20:24:38.000000000 +0200 @@ -14,6 +14,9 @@ # limitations under the License. # +load("@rules_cc//cc:cc_binary.bzl", "cc_binary") +load("@rules_cc//cc:cc_library.bzl", "cc_library") +load("@rules_cc//cc:cc_test.bzl", "cc_test") load( "//absl:copts/configure_copts.bzl", "ABSL_DEFAULT_COPTS", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abseil-cpp-20250814.0/absl/log/CMakeLists.txt new/abseil-cpp-20250814.1/absl/log/CMakeLists.txt --- old/abseil-cpp-20250814.0/absl/log/CMakeLists.txt 2025-08-14 21:54:55.000000000 +0200 +++ new/abseil-cpp-20250814.1/absl/log/CMakeLists.txt 2025-09-22 20:24:38.000000000 +0200 @@ -47,6 +47,7 @@ absl::base absl::config absl::core_headers + absl::has_ostream_operator absl::leak_check absl::log_internal_nullguard absl::log_internal_nullstream diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abseil-cpp-20250814.0/absl/log/check_test_impl.inc new/abseil-cpp-20250814.1/absl/log/check_test_impl.inc --- old/abseil-cpp-20250814.0/absl/log/check_test_impl.inc 2025-08-14 21:54:55.000000000 +0200 +++ new/abseil-cpp-20250814.1/absl/log/check_test_impl.inc 2025-09-22 20:24:38.000000000 +0200 @@ -13,6 +13,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +// SKIP_ABSL_INLINE_NAMESPACE_CHECK + #ifndef ABSL_LOG_CHECK_TEST_IMPL_H_ #define ABSL_LOG_CHECK_TEST_IMPL_H_ @@ -241,6 +243,18 @@ ABSL_TEST_CHECK_LT(1, 2); } +TEST(CHECKTest, TestBinaryChecksWithStringComparison) { + const std::string a = "a"; + ABSL_TEST_CHECK_EQ(a, "a"); + ABSL_TEST_CHECK_NE(a, "b"); + ABSL_TEST_CHECK_GE(a, a); + ABSL_TEST_CHECK_GE("b", a); + ABSL_TEST_CHECK_LE(a, "a"); + ABSL_TEST_CHECK_LE(a, "b"); + ABSL_TEST_CHECK_GT("b", a); + ABSL_TEST_CHECK_LT(a, "b"); +} + // For testing using CHECK*() on anonymous enums. enum { CASE_A, CASE_B }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abseil-cpp-20250814.0/absl/log/internal/BUILD.bazel new/abseil-cpp-20250814.1/absl/log/internal/BUILD.bazel --- old/abseil-cpp-20250814.0/absl/log/internal/BUILD.bazel 2025-08-14 21:54:55.000000000 +0200 +++ new/abseil-cpp-20250814.1/absl/log/internal/BUILD.bazel 2025-09-22 20:24:38.000000000 +0200 @@ -82,6 +82,7 @@ "//absl/base:nullability", "//absl/debugging:leak_check", "//absl/strings", + "//absl/strings:has_ostream_operator", ], ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abseil-cpp-20250814.0/absl/log/internal/check_op.h new/abseil-cpp-20250814.1/absl/log/internal/check_op.h --- old/abseil-cpp-20250814.0/absl/log/internal/check_op.h 2025-08-14 21:54:55.000000000 +0200 +++ new/abseil-cpp-20250814.1/absl/log/internal/check_op.h 2025-09-22 20:24:38.000000000 +0200 @@ -40,6 +40,7 @@ #include "absl/log/internal/nullstream.h" #include "absl/log/internal/strip.h" #include "absl/strings/has_absl_stringify.h" +#include "absl/strings/has_ostream_operator.h" #include "absl/strings/string_view.h" // `ABSL_LOG_INTERNAL_STRIP_STRING_LITERAL` wraps string literals that @@ -357,24 +358,27 @@ StringifyToStreamWrapper<T>> Detect(...); // Ellipsis has lowest preference when int passed. -// is_streamable is true for types that have an output stream operator<<. -template <class T, class = void> -struct is_streamable : std::false_type {}; - -template <class T> -struct is_streamable<T, std::void_t<decltype(std::declval<std::ostream&>() - << std::declval<T>())>> - : std::true_type {}; - // This overload triggers when T is neither possible to print nor an enum. template <typename T> std::enable_if_t<std::negation_v<std::disjunction< std::is_convertible<T, int>, std::is_enum<T>, std::is_pointer<T>, std::is_same<T, std::nullptr_t>, - is_streamable<T>, HasAbslStringify<T>>>, + HasOstreamOperator<T>, HasAbslStringify<T>>>, UnprintableWrapper> Detect(...); +// Equivalent to the updated std::underlying_type from C++20, which is no +// longer undefined behavior for non-enum types. +template <typename T, typename EnableT = void> +struct UnderlyingType {}; + +template <typename T> +struct UnderlyingType<T, std::enable_if_t<std::is_enum_v<T>>> { + using type = std::underlying_type_t<T>; +}; +template <typename T> +using UnderlyingTypeT = typename UnderlyingType<T>::type; + // This overload triggers when T is a scoped enum that has not defined an output // stream operator (operator<<) or AbslStringify. It causes the enum value to be // converted to a type that can be streamed. For consistency with other enums, a @@ -382,17 +386,17 @@ // one backed by another integer is converted to (u)int64_t. template <typename T> std::enable_if_t< - std::conjunction_v< - std::is_enum<T>, std::negation<std::is_convertible<T, int>>, - std::negation<is_streamable<T>>, std::negation<HasAbslStringify<T>>>, - std::conditional_t< - std::is_same_v<std::underlying_type_t<T>, bool> || - std::is_same_v<std::underlying_type_t<T>, char> || - std::is_same_v<std::underlying_type_t<T>, signed char> || - std::is_same_v<std::underlying_type_t<T>, unsigned char>, - std::underlying_type_t<T>, - std::conditional_t<std::is_signed_v<std::underlying_type_t<T>>, int64_t, - uint64_t>>> + std::conjunction_v<std::is_enum<T>, + std::negation<std::is_convertible<T, int>>, + std::negation<HasOstreamOperator<T>>, + std::negation<HasAbslStringify<T>>>, + std::conditional_t<std::is_same_v<UnderlyingTypeT<T>, bool> || + std::is_same_v<UnderlyingTypeT<T>, char> || + std::is_same_v<UnderlyingTypeT<T>, signed char> || + std::is_same_v<UnderlyingTypeT<T>, unsigned char>, + UnderlyingTypeT<T>, + std::conditional_t<std::is_signed_v<UnderlyingTypeT<T>>, + int64_t, uint64_t>>> Detect(...); } // namespace detect_specialization
