public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/spdlog/files/, dev-libs/spdlog/
Date: Sat, 15 Jul 2023 06:07:28 +0000 (UTC)	[thread overview]
Message-ID: <1689400977.682906906c17c3127b5f9dfd984bbd4ea91902bc.sam@gentoo> (raw)

commit:     682906906c17c3127b5f9dfd984bbd4ea91902bc
Author:     David Roman <droman <AT> ifae <DOT> es>
AuthorDate: Mon Jun 26 22:25:38 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jul 15 06:02:57 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=68290690

dev-libs/spdlog: fix fmt-10.x compatibility

Closes: https://bugs.gentoo.org/906069
Signed-off-by: David Roman <davidroman96 <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-libs/spdlog/files/spdlog-fmt-10.patch          | 121 +++++++++++++++++++++
 ...og-1.11.0-r2.ebuild => spdlog-1.11.0-r3.ebuild} |   5 +-
 2 files changed, 125 insertions(+), 1 deletion(-)

diff --git a/dev-libs/spdlog/files/spdlog-fmt-10.patch b/dev-libs/spdlog/files/spdlog-fmt-10.patch
new file mode 100644
index 000000000000..5ee44c41ea6a
--- /dev/null
+++ b/dev-libs/spdlog/files/spdlog-fmt-10.patch
@@ -0,0 +1,121 @@
+diff --git a/include/spdlog/sinks/daily_file_sink.h b/include/spdlog/sinks/daily_file_sink.h
+index f6f1bb1d..90af9676 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:
+diff --git a/include/spdlog/logger.h b/include/spdlog/logger.h
+index 71544e84..1d802f32 100644
+--- a/include/spdlog/logger.h
++++ b/include/spdlog/logger.h
+@@ -369,9 +369,9 @@ protected:
+         {
+             memory_buf_t buf;
+ #ifdef SPDLOG_USE_STD_FORMAT
+-            fmt_lib::vformat_to(std::back_inserter(buf), fmt, fmt_lib::make_format_args(std::forward<Args>(args)...));
++            fmt_lib::vformat_to(std::back_inserter(buf), fmt, fmt_lib::make_format_args(args...));
+ #else
+-            fmt::vformat_to(fmt::appender(buf), fmt, fmt::make_format_args(std::forward<Args>(args)...));
++            fmt::vformat_to(fmt::appender(buf), fmt, fmt::make_format_args(args...));
+ #endif
+ 
+             details::log_msg log_msg(loc, name_, lvl, string_view_t(buf.data(), buf.size()));
+@@ -395,10 +395,9 @@ protected:
+             // format to wmemory_buffer and convert to utf8
+             wmemory_buf_t wbuf;
+ #    ifdef SPDLOG_USE_STD_FORMAT
+-            fmt_lib::vformat_to(
+-                std::back_inserter(wbuf), fmt, fmt_lib::make_format_args<fmt_lib::wformat_context>(std::forward<Args>(args)...));
++            fmt_lib::vformat_to(std::back_inserter(wbuf), fmt, fmt_lib::make_format_args<fmt_lib::wformat_context>(args...));
+ #    else
+-            fmt::vformat_to(std::back_inserter(wbuf), fmt, fmt::make_format_args<fmt::wformat_context>(std::forward<Args>(args)...));
++            fmt::vformat_to(std::back_inserter(wbuf), fmt, fmt::make_format_args<fmt::wformat_context>(args...));
+ #    endif
+ 
+             memory_buf_t buf;
+diff --git a/include/spdlog/common.h b/include/spdlog/common.h
+index e69201a8..5f671c5c 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)

diff --git a/dev-libs/spdlog/spdlog-1.11.0-r2.ebuild b/dev-libs/spdlog/spdlog-1.11.0-r3.ebuild
similarity index 94%
rename from dev-libs/spdlog/spdlog-1.11.0-r2.ebuild
rename to dev-libs/spdlog/spdlog-1.11.0-r3.ebuild
index 7d751c92f18e..a513025d8d54 100644
--- a/dev-libs/spdlog/spdlog-1.11.0-r2.ebuild
+++ b/dev-libs/spdlog/spdlog-1.11.0-r3.ebuild
@@ -24,13 +24,16 @@ RESTRICT="!test? ( test )"
 BDEPEND="
 	virtual/pkgconfig
 "
+
 DEPEND="
-	dev-libs/libfmt:0/9.1.0
+	dev-libs/libfmt
 "
+
 RDEPEND="${DEPEND}"
 
 PATCHES=(
 	"${FILESDIR}/${PN}-force_external_fmt.patch"
+	"${FILESDIR}/${PN}-fmt-10.patch"
 	"${FILESDIR}/${PN}-musl-1.2.4.patch"
 )
 


             reply	other threads:[~2023-07-15  6:07 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-15  6:07 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2023-09-04 12:30 [gentoo-commits] repo/gentoo:master commit in: dev-libs/spdlog/files/, dev-libs/spdlog/ Sam James
2023-05-10 15:22 Sam James
2022-05-11  1:04 Sam James
2021-06-25  0:31 Sam James
2020-08-08  9:04 Joonas Niilola
2020-01-21  2:12 Craig Andrews
2019-07-21 12:02 Andreas Sturmlechner
2018-08-08 21:21 Craig Andrews
2018-06-12 17:38 Michał Górny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1689400977.682906906c17c3127b5f9dfd984bbd4ea91902bc.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox