]> git.pld-linux.org Git - packages/libfmt.git/commitdiff
- updated to 10.0.0 (new soname) with time_point fix from upstream auto/th/libfmt-10.0.0-1
authorJakub Bogusz <qboosh@pld-linux.org>
Sat, 22 Jul 2023 13:01:30 +0000 (15:01 +0200)
committerJakub Bogusz <qboosh@pld-linux.org>
Sat, 22 Jul 2023 13:01:30 +0000 (15:01 +0200)
libfmt-time_point-fix.patch [new file with mode: 0644]
libfmt.spec

diff --git a/libfmt-time_point-fix.patch b/libfmt-time_point-fix.patch
new file mode 100644 (file)
index 0000000..4c30040
--- /dev/null
@@ -0,0 +1,63 @@
+From d7592ad8bfa41eda239497f672ae8dc7bda00a4b Mon Sep 17 00:00:00 2001
+From: Patrick Geltinger <patlkli@patlkli.org>
+Date: Fri, 12 May 2023 00:25:21 +0200
+Subject: [PATCH] Fix time_point formatting for durations with certain ratios
+ (#3430)
+
+* Fix time_point formatting
+
+* Add timestamps_ratios tests
+---
+ include/fmt/chrono.h |  3 ++-
+ test/chrono-test.cc  | 24 ++++++++++++++++++++++++
+ 2 files changed, 26 insertions(+), 1 deletion(-)
+
+diff --git a/include/fmt/chrono.h b/include/fmt/chrono.h
+index 1a2a12cf767..43daeeb4d39 100644
+--- a/include/fmt/chrono.h
++++ b/include/fmt/chrono.h
+@@ -2142,7 +2142,8 @@ struct formatter<std::chrono::time_point<std::chrono::system_clock, Duration>,
+           epoch - std::chrono::duration_cast<std::chrono::seconds>(epoch));
+       if (subsecs.count() < 0) {
+-        auto second = std::chrono::seconds(1);
++        auto second = std::chrono::duration_cast<Duration>(
++            std::chrono::seconds(1));
+         if (epoch.count() < ((Duration::min)() + second).count())
+           FMT_THROW(format_error("duration is too small"));
+         subsecs += second;
+diff --git a/test/chrono-test.cc b/test/chrono-test.cc
+index 8e2772fa0f6..33c0c2c6653 100644
+--- a/test/chrono-test.cc
++++ b/test/chrono-test.cc
+@@ -850,6 +850,30 @@ TEST(chrono_test, utc_clock) {
+ }
+ #endif
++TEST(chrono_test, timestamps_ratios) {
++  std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds>
++      t1(std::chrono::milliseconds(67890));
++
++  EXPECT_EQ(fmt::format("{:%M:%S}", t1), "01:07.890");
++
++  std::chrono::time_point<std::chrono::system_clock, std::chrono::minutes>
++      t2(std::chrono::minutes(7));
++
++  EXPECT_EQ(fmt::format("{:%M:%S}", t2), "07:00");
++
++  std::chrono::time_point<std::chrono::system_clock, 
++                          std::chrono::duration<int, std::ratio<9>>>
++      t3(std::chrono::duration<int, std::ratio<9>>(7));
++
++  EXPECT_EQ(fmt::format("{:%M:%S}", t3), "01:03");
++
++  std::chrono::time_point<std::chrono::system_clock, 
++                          std::chrono::duration<int, std::ratio<63>>>
++      t4(std::chrono::duration<int, std::ratio<63>>(1));
++
++  EXPECT_EQ(fmt::format("{:%M:%S}", t4), "01:03");
++}
++
+ TEST(chrono_test, timestamps_sub_seconds) {
+   std::chrono::time_point<std::chrono::system_clock,
+                           std::chrono::duration<long long, std::ratio<1, 3>>>
index 95a28665a068e0c5b53d62c9b9b85924ea21b745..7de79c4368cbcf7aaf3aeeb137e80fe080076147 100644 (file)
@@ -1,16 +1,17 @@
 Summary:       Small, safe and fast formatting library
 Summary(pl.UTF-8):     Mała, bezpieczna i szybka biblioteka do formatowania
 Name:          libfmt
-Version:       9.1.0
+Version:       10.0.0
 Release:       1
 License:       BSD
 Group:         Libraries
 #Source0Download: https://github.com/fmtlib/fmt/releases
 Source0:       https://github.com/fmtlib/fmt/archive/%{version}/%{name}-%{version}.tar.gz
-# Source0-md5: 21fac48cae8f3b4a5783ae06b443973a
+# Source0-md5: fa629bc1178918b7af4b2ea6b6a271dc
+Patch0:                %{name}-time_point-fix.patch
 URL:           https://github.com/fmtlib/fmt
-BuildRequires: cmake >= 3.1.0
-BuildRequires: libstdc++-devel
+BuildRequires: cmake >= 3.8
+BuildRequires: libstdc++-devel >= 6:4.7
 BuildRequires: rpmbuild(macros) >= 1.605
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
@@ -25,6 +26,7 @@ Summary:      Header files for fmt library
 Summary(pl.UTF-8):     Pliki nagłówkowe biblioteki fmt
 Group:         Development/Libraries
 Requires:      %{name} = %{version}-%{release}
+Requires:      libstdc++-devel >= 6:4.7
 
 %description devel
 Header files for fmt library.
@@ -46,6 +48,7 @@ Statyczna biblioteka fmt.
 
 %prep
 %setup -q -n fmt-%{version}
+%patch0 -p1
 
 %build
 install -d build
@@ -73,7 +76,7 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %doc README.rst ChangeLog.rst LICENSE.rst
 %attr(755,root,root) %{_libdir}/libfmt.so.*.*.*
-%ghost %{_libdir}/libfmt.so.9
+%ghost %{_libdir}/libfmt.so.10
 
 %files devel
 %defattr(644,root,root,755)
This page took 0.171764 seconds and 4 git commands to generate.