Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package spdlog for openSUSE:Factory checked in at 2023-05-22 13:14:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/spdlog (Old) and /work/SRC/openSUSE:Factory/.spdlog.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "spdlog" Mon May 22 13:14:05 2023 rev:27 rq:1088053 version:1.11.0 Changes: -------- --- /work/SRC/openSUSE:Factory/spdlog/spdlog.changes 2022-11-04 17:31:37.219750166 +0100 +++ /work/SRC/openSUSE:Factory/.spdlog.new.1533/spdlog.changes 2023-05-22 13:14:07.894749295 +0200 @@ -1,0 +2,8 @@ +Sat May 20 12:51:48 UTC 2023 - Bernd Ritter <com...@posteo.de> + +- Applied three patches from upstream after update to dependency fmt 1.10 broke test in daily_file_sink #2735 + * patch 0ca574ae168820da0268b3ec7607ca7b33024d05.patch add support for a changed symbol in fmt 1.10.0 + * patch v1.11.0_removed_brackets_for_fmt_10.diff removes duplicate brackets from unit tests + * patch tt4g-fix-2735.diff solves the failing tests due to a now redundant workaround + +------------------------------------------------------------------- New: ---- 0ca574ae168820da0268b3ec7607ca7b33024d05.patch tt4g-fix-2735.diff v1.11.0_removed_brackets_for_fmt_10.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ spdlog.spec ++++++ --- /var/tmp/diff_new_pack.tmaiCu/_old 2023-05-22 13:14:09.102755324 +0200 +++ /var/tmp/diff_new_pack.tmaiCu/_new 2023-05-22 13:14:09.106755344 +0200 @@ -1,7 +1,7 @@ # # spec file for package spdlog # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -25,6 +25,12 @@ License: MIT URL: https://github.com/gabime/spdlog Source0: https://github.com/gabime/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz +# PATCH-FIX-UPSTREAM 0ca574ae168820da0268b3ec7607ca7b33024d05.patch +Patch0: 0ca574ae168820da0268b3ec7607ca7b33024d05.patch +# PATCH-FIX-UPSTREAM v1.11.0_removed_brackets_for_fmt_10.diff +Patch1: v1.11.0_removed_brackets_for_fmt_10.diff +# PATCH-FIX-UPSTREAM tt4g-fix-2735.diff +Patch2: tt4g-fix-2735.diff Source99: baselibs.conf BuildRequires: cmake >= 3.10 %if 0%{?suse_version} > 1500 ++++++ 0ca574ae168820da0268b3ec7607ca7b33024d05.patch ++++++ >From 0ca574ae168820da0268b3ec7607ca7b33024d05 Mon Sep 17 00:00:00 2001 From: H1X4 <10332146+h1x4...@users.noreply.github.com> Date: Fri, 31 Mar 2023 20:39:32 +0300 Subject: [PATCH] fix build for master fmt (non-bundled) (#2694) * fix build for master fmt (non-bundled) * update fmt_runtime_string macro * fix build of updated macro --- include/spdlog/common.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/include/spdlog/common.h b/include/spdlog/common.h index e69201a81..5f671c5c6 100644 --- a/include/spdlog/common.h +++ b/include/spdlog/common.h @@ -173,12 +173,19 @@ using format_string_t = fmt::format_string<Args...>; template<class T> using remove_cvref_t = typename std::remove_cv<typename std::remove_reference<T>::type>::type; +template <typename Char> +#if FMT_VERSION >= 90101 +using fmt_runtime_string = fmt::runtime_format_string<Char>; +#else +using fmt_runtime_string = fmt::basic_runtime<Char>; +#endif + // clang doesn't like SFINAE disabled constructor in std::is_convertible<> so have to repeat the condition from basic_format_string here, // in addition, fmt::basic_runtime<Char> is only convertible to basic_format_string<Char> but not basic_string_view<Char> template<class T, class Char = char> struct is_convertible_to_basic_format_string : std::integral_constant<bool, - std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt::basic_runtime<Char>>::value> + std::is_convertible<T, fmt::basic_string_view<Char>>::value || std::is_same<remove_cvref_t<T>, fmt_runtime_string<Char>>::value> {}; # if defined(SPDLOG_WCHAR_FILENAMES) || defined(SPDLOG_WCHAR_TO_UTF8_SUPPORT) ++++++ tt4g-fix-2735.diff ++++++ diff --git a/include/spdlog/sinks/daily_file_sink.h b/include/spdlog/sinks/daily_file_sink.h index f6f1bb1d..31516ee2 100644 --- a/include/spdlog/sinks/daily_file_sink.h +++ b/include/spdlog/sinks/daily_file_sink.h @@ -18,6 +18,7 @@ #include <ctime> #include <mutex> #include <string> +#include <vector> namespace spdlog { namespace sinks { @@ -48,7 +49,6 @@ struct daily_filename_format_calculator { static filename_t calc_filename(const filename_t &filename, const tm &now_tm) { -#ifdef SPDLOG_USE_STD_FORMAT // adapted from fmtlib: https://github.com/fmtlib/fmt/blob/8.0.1/include/fmt/chrono.h#L522-L546 filename_t tm_format; @@ -59,7 +59,7 @@ struct daily_filename_format_calculator tm_format.push_back(' '); const size_t MIN_SIZE = 10; - filename_t buf; + std::vector<char> buf; buf.resize(MIN_SIZE); for (;;) { @@ -73,19 +73,7 @@ struct daily_filename_format_calculator buf.resize(buf.size() * 2); } - return buf; -#else - // generate fmt datetime format string, e.g. {:%Y-%m-%d}. - filename_t fmt_filename = fmt::format(SPDLOG_FMT_STRING(SPDLOG_FILENAME_T("{{:{}}}")), filename); - - // MSVC doesn't allow fmt::runtime(..) with wchar, with fmtlib versions < 9.1.x -# if defined(_MSC_VER) && defined(SPDLOG_WCHAR_FILENAMES) && FMT_VERSION < 90101 - return fmt::format(fmt_filename, now_tm); -# else - return fmt::format(SPDLOG_FMT_RUNTIME(fmt_filename), now_tm); -# endif - -#endif + return std::string(buf.cbegin(), buf.cend()); } private: ++++++ v1.11.0_removed_brackets_for_fmt_10.diff ++++++ diff --git a/tests/test_daily_logger.cpp b/tests/test_daily_logger.cpp index c6e685de..82f28941 100644 --- a/tests/test_daily_logger.cpp +++ b/tests/test_daily_logger.cpp @@ -87,19 +87,19 @@ TEST_CASE("daily_logger with custom calculator", "[daily_logger]") * File name calculations */ -TEST_CASE("rotating_file_sink::calc_filename1", "[rotating_file_sink]]") +TEST_CASE("rotating_file_sink::calc_filename1", "[rotating_file_sink]") { auto filename = spdlog::sinks::rotating_file_sink_st::calc_filename(SPDLOG_FILENAME_T("rotated.txt"), 3); REQUIRE(filename == SPDLOG_FILENAME_T("rotated.3.txt")); } -TEST_CASE("rotating_file_sink::calc_filename2", "[rotating_file_sink]]") +TEST_CASE("rotating_file_sink::calc_filename2", "[rotating_file_sink]") { auto filename = spdlog::sinks::rotating_file_sink_st::calc_filename(SPDLOG_FILENAME_T("rotated"), 3); REQUIRE(filename == SPDLOG_FILENAME_T("rotated.3")); } -TEST_CASE("rotating_file_sink::calc_filename3", "[rotating_file_sink]]") +TEST_CASE("rotating_file_sink::calc_filename3", "[rotating_file_sink]") { auto filename = spdlog::sinks::rotating_file_sink_st::calc_filename(SPDLOG_FILENAME_T("rotated.txt"), 0); REQUIRE(filename == SPDLOG_FILENAME_T("rotated.txt")); @@ -110,7 +110,7 @@ TEST_CASE("rotating_file_sink::calc_filename3", "[rotating_file_sink]]") # include <regex> -TEST_CASE("daily_file_sink::daily_filename_calculator", "[daily_file_sink]]") +TEST_CASE("daily_file_sink::daily_filename_calculator", "[daily_file_sink]") { // daily_YYYY-MM-DD_hh-mm.txt auto filename = @@ -123,7 +123,7 @@ TEST_CASE("daily_file_sink::daily_filename_calculator", "[daily_file_sink]]") } #endif -TEST_CASE("daily_file_sink::daily_filename_format_calculator", "[daily_file_sink]]") +TEST_CASE("daily_file_sink::daily_filename_format_calculator", "[daily_file_sink]") { std::tm tm = spdlog::details::os::localtime(); // example-YYYY-MM-DD.log diff --git a/tests/test_errors.cpp b/tests/test_errors.cpp index 896e5b0a..939f1aeb 100644 --- a/tests/test_errors.cpp +++ b/tests/test_errors.cpp @@ -22,7 +22,7 @@ protected: } }; -TEST_CASE("default_error_handler", "[errors]]") +TEST_CASE("default_error_handler", "[errors]") { prepare_logdir(); spdlog::filename_t filename = SPDLOG_FILENAME_T(SIMPLE_LOG); @@ -40,7 +40,7 @@ TEST_CASE("default_error_handler", "[errors]]") struct custom_ex {}; -TEST_CASE("custom_error_handler", "[errors]]") +TEST_CASE("custom_error_handler", "[errors]") { prepare_logdir(); spdlog::filename_t filename = SPDLOG_FILENAME_T(SIMPLE_LOG); @@ -54,7 +54,7 @@ TEST_CASE("custom_error_handler", "[errors]]") require_message_count(SIMPLE_LOG, 2); } -TEST_CASE("default_error_handler2", "[errors]]") +TEST_CASE("default_error_handler2", "[errors]") { spdlog::drop_all(); auto logger = spdlog::create<failing_sink>("failed_logger"); @@ -62,7 +62,7 @@ TEST_CASE("default_error_handler2", "[errors]]") REQUIRE_THROWS_AS(logger->info("Some message"), custom_ex); } -TEST_CASE("flush_error_handler", "[errors]]") +TEST_CASE("flush_error_handler", "[errors]") { spdlog::drop_all(); auto logger = spdlog::create<failing_sink>("failed_logger"); @@ -70,7 +70,7 @@ TEST_CASE("flush_error_handler", "[errors]]") REQUIRE_THROWS_AS(logger->flush(), custom_ex); } -TEST_CASE("async_error_handler", "[errors]]") +TEST_CASE("async_error_handler", "[errors]") { prepare_logdir(); std::string err_msg("log failed with some msg"); @@ -98,7 +98,7 @@ TEST_CASE("async_error_handler", "[errors]]") } // Make sure async error handler is executed -TEST_CASE("async_error_handler2", "[errors]]") +TEST_CASE("async_error_handler2", "[errors]") { prepare_logdir(); std::string err_msg("This is async handler error message"); diff --git a/tests/test_file_helper.cpp b/tests/test_file_helper.cpp index 1d947078..dd3ca4f8 100644 --- a/tests/test_file_helper.cpp +++ b/tests/test_file_helper.cpp @@ -15,7 +15,7 @@ static void write_with_helper(file_helper &helper, size_t howmany) helper.flush(); } -TEST_CASE("file_helper_filename", "[file_helper::filename()]]") +TEST_CASE("file_helper_filename", "[file_helper::filename()]") { prepare_logdir(); @@ -25,7 +25,7 @@ TEST_CASE("file_helper_filename", "[file_helper::filename()]]") REQUIRE(helper.filename() == target_filename); } -TEST_CASE("file_helper_size", "[file_helper::size()]]") +TEST_CASE("file_helper_size", "[file_helper::size()]") { prepare_logdir(); spdlog::filename_t target_filename = SPDLOG_FILENAME_T(TEST_FILENAME); @@ -39,7 +39,7 @@ TEST_CASE("file_helper_size", "[file_helper::size()]]") REQUIRE(get_filesize(TEST_FILENAME) == expected_size); } -TEST_CASE("file_helper_reopen", "[file_helper::reopen()]]") +TEST_CASE("file_helper_reopen", "[file_helper::reopen()]") { prepare_logdir(); spdlog::filename_t target_filename = SPDLOG_FILENAME_T(TEST_FILENAME); @@ -51,7 +51,7 @@ TEST_CASE("file_helper_reopen", "[file_helper::reopen()]]") REQUIRE(helper.size() == 0); } -TEST_CASE("file_helper_reopen2", "[file_helper::reopen(false)]]") +TEST_CASE("file_helper_reopen2", "[file_helper::reopen(false)]") { prepare_logdir(); spdlog::filename_t target_filename = SPDLOG_FILENAME_T(TEST_FILENAME); @@ -78,7 +78,7 @@ static void test_split_ext(const spdlog::filename_t::value_type *fname, const sp REQUIRE(ext == expected_ext); } -TEST_CASE("file_helper_split_by_extension", "[file_helper::split_by_extension()]]") +TEST_CASE("file_helper_split_by_extension", "[file_helper::split_by_extension()]") { test_split_ext(SPDLOG_FILENAME_T("mylog.txt"), SPDLOG_FILENAME_T("mylog"), SPDLOG_FILENAME_T(".txt")); test_split_ext(SPDLOG_FILENAME_T(".mylog.txt"), SPDLOG_FILENAME_T(".mylog"), SPDLOG_FILENAME_T(".txt")); diff --git a/tests/test_file_logging.cpp b/tests/test_file_logging.cpp index 1c7a1853..7a7119ad 100644 --- a/tests/test_file_logging.cpp +++ b/tests/test_file_logging.cpp @@ -6,7 +6,7 @@ #define SIMPLE_LOG "test_logs/simple_log" #define ROTATING_LOG "test_logs/rotating_log" -TEST_CASE("simple_file_logger", "[simple_logger]]") +TEST_CASE("simple_file_logger", "[simple_logger]") { prepare_logdir(); spdlog::filename_t filename = SPDLOG_FILENAME_T(SIMPLE_LOG); @@ -23,7 +23,7 @@ TEST_CASE("simple_file_logger", "[simple_logger]]") REQUIRE(file_contents(SIMPLE_LOG) == spdlog::fmt_lib::format("Test message 1{}Test message 2{}", default_eol, default_eol)); } -TEST_CASE("flush_on", "[flush_on]]") +TEST_CASE("flush_on", "[flush_on]") { prepare_logdir(); spdlog::filename_t filename = SPDLOG_FILENAME_T(SIMPLE_LOG); @@ -44,7 +44,7 @@ TEST_CASE("flush_on", "[flush_on]]") spdlog::fmt_lib::format("Should not be flushed{}Test message 1{}Test message 2{}", default_eol, default_eol, default_eol)); } -TEST_CASE("rotating_file_logger1", "[rotating_logger]]") +TEST_CASE("rotating_file_logger1", "[rotating_logger]") { prepare_logdir(); size_t max_size = 1024 * 10; @@ -60,7 +60,7 @@ TEST_CASE("rotating_file_logger1", "[rotating_logger]]") require_message_count(ROTATING_LOG, 10); } -TEST_CASE("rotating_file_logger2", "[rotating_logger]]") +TEST_CASE("rotating_file_logger2", "[rotating_logger]") { prepare_logdir(); size_t max_size = 1024 * 10; @@ -100,7 +100,7 @@ TEST_CASE("rotating_file_logger2", "[rotating_logger]]") } // test that passing max_size=0 throws -TEST_CASE("rotating_file_logger3", "[rotating_logger]]") +TEST_CASE("rotating_file_logger3", "[rotating_logger]") { prepare_logdir(); size_t max_size = 0; diff --git a/tests/test_macros.cpp b/tests/test_macros.cpp index 2aeeecff..36537958 100644 --- a/tests/test_macros.cpp +++ b/tests/test_macros.cpp @@ -10,7 +10,7 @@ #define TEST_FILENAME "test_logs/simple_log" -TEST_CASE("debug and trace w/o format string", "[macros]]") +TEST_CASE("debug and trace w/o format string", "[macros]") { prepare_logdir();