[packages/libfmt] - updated to 10.0.0 (new soname) with time_point fix from upstream

qboosh qboosh at pld-linux.org
Sat Jul 22 15:45:07 CEST 2023


commit 8530a91552510181e9f34d36a156dfca9b048bcc
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sat Jul 22 15:01:30 2023 +0200

    - updated to 10.0.0 (new soname) with time_point fix from upstream

 libfmt-time_point-fix.patch | 63 +++++++++++++++++++++++++++++++++++++++++++++
 libfmt.spec                 | 13 ++++++----
 2 files changed, 71 insertions(+), 5 deletions(-)
---
diff --git a/libfmt.spec b/libfmt.spec
index 95a2866..7de79c4 100644
--- a/libfmt.spec
+++ b/libfmt.spec
@@ -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)
diff --git a/libfmt-time_point-fix.patch b/libfmt-time_point-fix.patch
new file mode 100644
index 0000000..4c30040
--- /dev/null
+++ b/libfmt-time_point-fix.patch
@@ -0,0 +1,63 @@
+From d7592ad8bfa41eda239497f672ae8dc7bda00a4b Mon Sep 17 00:00:00 2001
+From: Patrick Geltinger <patlkli at 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>>>
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/libfmt.git/commitdiff/8530a91552510181e9f34d36a156dfca9b048bcc



More information about the pld-cvs-commit mailing list