Updated to version 1.12.0.
This commit is contained in:
parent
7525731b50
commit
7e26e0d04c
2
sources
2
sources
|
@ -1 +1 @@
|
|||
SHA512 (spdlog-1.11.0.tar.gz) = 210f3135c7af3ec774ef9a5c77254ce172a44e2fa720bf590e1c9214782bf5c8140ff683403a85b585868bc308286fbdeb1c988e4ed1eb3c75975254ffe75412
|
||||
SHA512 (spdlog-1.12.0.tar.gz) = db9a4f13b6c39ffde759db99bcdfe5e2dbe4231e73b29eb906a3fa78d6b8ec66920b8bd4371df17ae21b7b562472a236bc4435678f3af92b6496be090074181d
|
||||
|
|
|
@ -1,274 +0,0 @@
|
|||
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
|
||||
index 7fe4791e..c0af3fd7 100644
|
||||
--- a/tests/CMakeLists.txt
|
||||
+++ b/tests/CMakeLists.txt
|
||||
@@ -13,6 +13,20 @@ if(PkgConfig_FOUND)
|
||||
pkg_check_modules(systemd libsystemd)
|
||||
endif()
|
||||
|
||||
+find_package(Catch2 3 QUIET)
|
||||
+if (Catch2_FOUND)
|
||||
+ message(STATUS "Packaged version of Catch will be used.")
|
||||
+else()
|
||||
+ message(STATUS "Bundled version of Catch will be downloaded and used.")
|
||||
+ include(FetchContent)
|
||||
+ FetchContent_Declare(
|
||||
+ Catch2
|
||||
+ GIT_REPOSITORY https://github.com/catchorg/Catch2.git
|
||||
+ GIT_TAG v3.3.2
|
||||
+ )
|
||||
+ FetchContent_MakeAvailable(Catch2)
|
||||
+endif()
|
||||
+
|
||||
set(SPDLOG_UTESTS_SOURCES
|
||||
test_file_helper.cpp
|
||||
test_file_logging.cpp
|
||||
@@ -52,6 +66,7 @@ function(spdlog_prepare_test test_target spdlog_lib)
|
||||
if(systemd_FOUND)
|
||||
target_link_libraries(${test_target} PRIVATE ${systemd_LIBRARIES})
|
||||
endif()
|
||||
+ target_link_libraries(${test_target} PRIVATE Catch2::Catch2WithMain)
|
||||
if(SPDLOG_SANITIZE_ADDRESS)
|
||||
spdlog_enable_sanitizer(${test_target})
|
||||
endif()
|
||||
diff --git a/tests/includes.h b/tests/includes.h
|
||||
index 16394440..33e88bfb 100644
|
||||
--- a/tests/includes.h
|
||||
+++ b/tests/includes.h
|
||||
@@ -4,7 +4,7 @@
|
||||
# pragma GCC diagnostic push
|
||||
# pragma GCC diagnostic ignored "-Wmaybe-uninitialized" // Workaround for GCC 12
|
||||
#endif
|
||||
-#include "catch.hpp"
|
||||
+#include <catch2/catch_all.hpp>
|
||||
#if defined(__GNUC__) && __GNUC__ == 12
|
||||
# pragma GCC diagnostic pop
|
||||
#endif
|
||||
diff --git a/tests/main.cpp b/tests/main.cpp
|
||||
index f8ed5192..c8dca193 100644
|
||||
--- a/tests/main.cpp
|
||||
+++ b/tests/main.cpp
|
||||
@@ -3,8 +3,7 @@
|
||||
# pragma GCC diagnostic ignored "-Wmaybe-uninitialized" // Workaround for GCC 12
|
||||
#endif
|
||||
|
||||
-#define CATCH_CONFIG_MAIN
|
||||
-#include "catch.hpp"
|
||||
+#include <catch2/catch_all.hpp>
|
||||
|
||||
#if defined(__GNUC__) && __GNUC__ == 12
|
||||
# pragma GCC diagnostic pop
|
||||
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();
|
|
@ -1,39 +0,0 @@
|
|||
From 0ca574ae168820da0268b3ec7607ca7b33024d05 Mon Sep 17 00:00:00 2001
|
||||
From: H1X4 <10332146+H1X4Dev@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)
|
|
@ -1,86 +0,0 @@
|
|||
From af1785b897c9d1098d4aa7213fad232be63c19b4 Mon Sep 17 00:00:00 2001
|
||||
From: Bernd Ritter <commel@users.noreply.github.com>
|
||||
Date: Fri, 19 May 2023 18:51:02 +0200
|
||||
Subject: [PATCH] Removes special format handling for fmt. (#2736)
|
||||
|
||||
* Removes special format handling for fmt. Regains test compatibility with fmt
|
||||
1.10.0.
|
||||
|
||||
fixes #2735
|
||||
|
||||
* reverted std::vector back to filename_t and used pointer to array start likewise as fmt's implementation uses
|
||||
|
||||
* calc_filename buffer increase softened, exception is throw if buffer exceeds 4k, filename parameter renamed to match intend.
|
||||
|
||||
* calc_filetime based on std::put_time for simpler implementation
|
||||
---
|
||||
include/spdlog/sinks/daily_file_sink.h | 46 +++++---------------------
|
||||
1 file changed, 9 insertions(+), 37 deletions(-)
|
||||
|
||||
diff --git a/include/spdlog/sinks/daily_file_sink.h b/include/spdlog/sinks/daily_file_sink.h
|
||||
index f6f1bb1d7..90af96768 100644
|
||||
--- a/include/spdlog/sinks/daily_file_sink.h
|
||||
+++ b/include/spdlog/sinks/daily_file_sink.h
|
||||
@@ -13,6 +13,9 @@
|
||||
#include <spdlog/details/circular_q.h>
|
||||
#include <spdlog/details/synchronous_factory.h>
|
||||
|
||||
+#include <iostream>
|
||||
+#include <sstream>
|
||||
+#include <iomanip>
|
||||
#include <chrono>
|
||||
#include <cstdio>
|
||||
#include <ctime>
|
||||
@@ -46,46 +49,15 @@ struct daily_filename_calculator
|
||||
*/
|
||||
struct daily_filename_format_calculator
|
||||
{
|
||||
- static filename_t calc_filename(const filename_t &filename, const tm &now_tm)
|
||||
+ static filename_t calc_filename(const filename_t &file_path, 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;
|
||||
- tm_format.append(filename);
|
||||
- // By appending an extra space we can distinguish an empty result that
|
||||
- // indicates insufficient buffer size from a guaranteed non-empty result
|
||||
- // https://github.com/fmtlib/fmt/issues/2238
|
||||
- tm_format.push_back(' ');
|
||||
-
|
||||
- const size_t MIN_SIZE = 10;
|
||||
- filename_t buf;
|
||||
- buf.resize(MIN_SIZE);
|
||||
- for (;;)
|
||||
- {
|
||||
- size_t count = strftime(buf.data(), buf.size(), tm_format.c_str(), &now_tm);
|
||||
- if (count != 0)
|
||||
- {
|
||||
- // Remove the extra space.
|
||||
- buf.resize(count - 1);
|
||||
- break;
|
||||
- }
|
||||
- buf.resize(buf.size() * 2);
|
||||
- }
|
||||
-
|
||||
- return buf;
|
||||
+#if defined(_WIN32) && defined(SPDLOG_WCHAR_FILENAMES)
|
||||
+ std::wstringstream stream;
|
||||
#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
|
||||
-
|
||||
+ std::stringstream stream;
|
||||
#endif
|
||||
+ stream << std::put_time(&now_tm, file_path.c_str());
|
||||
+ return stream.str();
|
||||
}
|
||||
|
||||
private:
|
14
spdlog.spec
14
spdlog.spec
|
@ -1,19 +1,12 @@
|
|||
Name: spdlog
|
||||
Version: 1.11.0
|
||||
Release: 6%{?dist}
|
||||
Version: 1.12.0
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: MIT
|
||||
Summary: Super fast C++ logging library
|
||||
URL: https://github.com/gabime/%{name}
|
||||
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
|
||||
|
||||
# https://github.com/gabime/spdlog/pull/2661
|
||||
Patch100: spdlog-catchv3-compatibility.patch
|
||||
# https://github.com/gabime/spdlog/pull/2694
|
||||
Patch101: spdlog-fmt10-compatibility.patch
|
||||
# https://github.com/gabime/spdlog/pull/2736
|
||||
Patch102: spdlog-fmt10-tests-fixes.patch
|
||||
|
||||
BuildRequires: catch-devel >= 3.0.0
|
||||
BuildRequires: cmake
|
||||
BuildRequires: fmt-devel >= 8.1.1
|
||||
|
@ -73,6 +66,9 @@ rm -f tests/catch.hpp
|
|||
%{_libdir}/pkgconfig/%{name}.pc
|
||||
|
||||
%changelog
|
||||
* Sat Jul 08 2023 Vitaly Zaitsev <vitaly@easycoding.org> - 1.12.0-1
|
||||
- Updated to version 1.12.0.
|
||||
|
||||
* Mon May 29 2023 Vitaly Zaitsev <vitaly@easycoding.org> - 1.11.0-6
|
||||
- Rebuilt due to fmt library update.
|
||||
|
||||
|
|
Loading…
Reference in New Issue