Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package fmt for openSUSE:Factory checked in 
at 2022-01-08 23:23:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fmt (Old)
 and      /work/SRC/openSUSE:Factory/.fmt.new.1892 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "fmt"

Sat Jan  8 23:23:11 2022 rev:18 rq:944681 version:8.1.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/fmt/fmt.changes  2022-01-05 13:39:26.821511162 
+0100
+++ /work/SRC/openSUSE:Factory/.fmt.new.1892/fmt.changes        2022-01-08 
23:23:25.950222498 +0100
@@ -1,0 +2,7 @@
+Fri Jan  7 08:36:43 UTC 2022 - Luigi Baldoni <aloi...@gmx.com>
+
+- Update to version 8.1.1
+  * Restored ABI compatibility with version 8.0.x
+  * Fixed chorno formatting on big endian systems
+
+-------------------------------------------------------------------

Old:
----
  fmt-8.1.0.tar.gz

New:
----
  fmt-8.1.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ fmt.spec ++++++
--- /var/tmp/diff_new_pack.zLiq8e/_old  2022-01-08 23:23:26.614223040 +0100
+++ /var/tmp/diff_new_pack.zLiq8e/_new  2022-01-08 23:23:26.622223046 +0100
@@ -18,7 +18,7 @@
 
 %define sover   8
 Name:           fmt
-Version:        8.1.0
+Version:        8.1.1
 Release:        0
 Summary:        A formatting library for C++
 License:        MIT

++++++ fmt-8.1.0.tar.gz -> fmt-8.1.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fmt-8.1.0/ChangeLog.rst new/fmt-8.1.1/ChangeLog.rst
--- old/fmt-8.1.0/ChangeLog.rst 2022-01-02 17:34:01.000000000 +0100
+++ new/fmt-8.1.1/ChangeLog.rst 2022-01-06 23:35:15.000000000 +0100
@@ -1,5 +1,24 @@
-8.1.0 - TBD
------------
+8.1.1 - 2022-01-06
+------------------
+
+* Restored ABI compatibility with version 8.0.x
+  (`#2695 <https://github.com/fmtlib/fmt/issues/2695>`_,
+  `#2696 <https://github.com/fmtlib/fmt/pull/2696>`_).
+  Thanks `@saraedum (Julian R??th) <https://github.com/saraedum>`_.
+
+* Fixed chorno formatting on big endian systems
+  (`#2698 <https://github.com/fmtlib/fmt/issues/2698>`_,
+  `#2699 <https://github.com/fmtlib/fmt/pull/2699>`_).
+  Thanks `@phprus (Vladislav Shchapov) <https://github.com/phprus>`_ and
+  `@xvitaly (Vitaly Zaitsev) <https://github.com/xvitaly>`_.
+
+* Fixed a linkage error with mingw
+  (`#2691 <https://github.com/fmtlib/fmt/issues/2691>`_,
+  `#2692 <https://github.com/fmtlib/fmt/pull/2692>`_).
+  Thanks `@rbberger (Richard Berger) <https://github.com/rbberger>`_.
+
+8.1.0 - 2022-01-02
+------------------
 
 * Optimized chrono formatting
   (`#2500 <https://github.com/fmtlib/fmt/pull/2500>`_,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fmt-8.1.0/doc/build.py new/fmt-8.1.1/doc/build.py
--- old/fmt-8.1.0/doc/build.py  2022-01-02 17:34:01.000000000 +0100
+++ new/fmt-8.1.1/doc/build.py  2022-01-06 23:35:15.000000000 +0100
@@ -4,7 +4,7 @@
 import errno, os, re, sys
 from subprocess import check_call, CalledProcessError, Popen, PIPE, STDOUT
 
-versions = ['1.0.0', '1.1.0', '2.0.0', '3.0.2', '4.0.0', '4.1.0', '5.0.0', 
'5.1.0', '5.2.0', '5.2.1', '5.3.0', '6.0.0', '6.1.0', '6.1.1', '6.1.2', 
'6.2.0', '6.2.1', '7.0.0', '7.0.1', '7.0.2', '7.0.3', '7.1.0', '7.1.1', 
'7.1.2', '7.1.3', '8.0.0', '8.0.1']
+versions = ['1.0.0', '1.1.0', '2.0.0', '3.0.2', '4.0.0', '4.1.0', '5.0.0', 
'5.1.0', '5.2.0', '5.2.1', '5.3.0', '6.0.0', '6.1.0', '6.1.1', '6.1.2', 
'6.2.0', '6.2.1', '7.0.0', '7.0.1', '7.0.2', '7.0.3', '7.1.0', '7.1.1', 
'7.1.2', '7.1.3', '8.0.0', '8.0.1', '8.1.0', '8.1.1']
 
 class Pip:
   def __init__(self, venv_dir):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fmt-8.1.0/include/fmt/chrono.h 
new/fmt-8.1.1/include/fmt/chrono.h
--- old/fmt-8.1.0/include/fmt/chrono.h  2022-01-02 17:34:01.000000000 +0100
+++ new/fmt-8.1.1/include/fmt/chrono.h  2022-01-06 23:35:15.000000000 +0100
@@ -558,7 +558,15 @@
   auto usep = static_cast<unsigned long long>(sep);
   // Add ASCII '0' to each digit byte and insert separators.
   digits |= 0x3030003030003030 | (usep << 16) | (usep << 40);
-  memcpy(buf, &digits, 8);
+
+  constexpr const size_t len = 8;
+  if (const_check(is_big_endian())) {
+    char tmp[len];
+    memcpy(tmp, &digits, len);
+    std::reverse_copy(tmp, tmp + len, buf);
+  } else {
+    memcpy(buf, &digits, len);
+  }
 }
 
 template <typename Period> FMT_CONSTEXPR inline const char* get_units() {
@@ -1082,7 +1090,7 @@
   }
   template <typename T, FMT_ENABLE_IF(!has_member_data_tm_gmtoff<T>::value)>
   void format_utc_offset_impl(const T& tm) {
-#if defined(_WIN32)
+#if defined(_WIN32) && defined(_UCRT)
 #  if FMT_USE_TZSET
     tzset_once();
 #  endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fmt-8.1.0/include/fmt/core.h 
new/fmt-8.1.1/include/fmt/core.h
--- old/fmt-8.1.0/include/fmt/core.h    2022-01-02 17:34:01.000000000 +0100
+++ new/fmt-8.1.1/include/fmt/core.h    2022-01-06 23:35:15.000000000 +0100
@@ -17,7 +17,7 @@
 #include <type_traits>
 
 // The fmt library version in the form major * 10000 + minor * 100 + patch.
-#define FMT_VERSION 80100
+#define FMT_VERSION 80101
 
 #if defined(__clang__) && !defined(__ibmxl__)
 #  define FMT_CLANG_VERSION (__clang_major__ * 100 + __clang_minor__)
@@ -219,6 +219,20 @@
 #  endif
 #endif
 
+#ifndef FMT_DEPRECATED
+#  if FMT_HAS_CPP14_ATTRIBUTE(deprecated) || FMT_MSC_VER >= 1900
+#    define FMT_DEPRECATED [[deprecated]]
+#  else
+#    if (defined(__GNUC__) && !defined(__LCC__)) || defined(__clang__)
+#      define FMT_DEPRECATED __attribute__((deprecated))
+#    elif FMT_MSC_VER
+#      define FMT_DEPRECATED __declspec(deprecated)
+#    else
+#      define FMT_DEPRECATED /* deprecated */
+#    endif
+#  endif
+#endif
+
 #ifndef FMT_BEGIN_NAMESPACE
 #  define FMT_BEGIN_NAMESPACE \
     namespace fmt {           \
@@ -601,7 +615,7 @@
   constexpr error_handler(const error_handler&) = default;
 
   // This function is intentionally not constexpr to give a compile-time error.
-  void on_error(const char* message) { throw_format_error(message); }
+  FMT_NORETURN FMT_API void on_error(const char* message);
 };
 FMT_END_DETAIL_NAMESPACE
 
@@ -1373,21 +1387,20 @@
   using cstring_result = conditional_t<std::is_same<char_type, char>::value,
                                        const char*, unformattable_pointer>;
 
-  // DEPRECATED!
-  FMT_CONSTEXPR FMT_INLINE auto map(const signed char* val) -> cstring_result {
+  FMT_DEPRECATED FMT_CONSTEXPR FMT_INLINE auto map(const signed char* val)
+      -> cstring_result {
     return map(reinterpret_cast<const char*>(val));
   }
-  // DEPRECATED!
-  FMT_CONSTEXPR FMT_INLINE auto map(const unsigned char* val)
+  FMT_DEPRECATED FMT_CONSTEXPR FMT_INLINE auto map(const unsigned char* val)
       -> cstring_result {
     return map(reinterpret_cast<const char*>(val));
   }
-  // DEPRECATED!
-  FMT_CONSTEXPR FMT_INLINE auto map(signed char* val) -> cstring_result {
+  FMT_DEPRECATED FMT_CONSTEXPR FMT_INLINE auto map(signed char* val)
+      -> cstring_result {
     return map(reinterpret_cast<const char*>(val));
   }
-  // DEPRECATED!
-  FMT_CONSTEXPR FMT_INLINE auto map(unsigned char* val) -> cstring_result {
+  FMT_DEPRECATED FMT_CONSTEXPR FMT_INLINE auto map(unsigned char* val)
+      -> cstring_result {
     return map(reinterpret_cast<const char*>(val));
   }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fmt-8.1.0/include/fmt/format-inl.h 
new/fmt-8.1.1/include/fmt/format-inl.h
--- old/fmt-8.1.0/include/fmt/format-inl.h      2022-01-02 17:34:01.000000000 
+0100
+++ new/fmt-8.1.1/include/fmt/format-inl.h      2022-01-06 23:35:15.000000000 
+0100
@@ -2575,6 +2575,12 @@
   report_error(format_system_error, error_code, message);
 }
 
+// DEPRECATED!
+// This function is defined here and not inline for ABI compatiblity.
+FMT_FUNC void detail::error_handler::on_error(const char* message) {
+  throw_format_error(message);
+}
+
 FMT_FUNC std::string vformat(string_view fmt, format_args args) {
   // Don't optimize the "{}" case to keep the binary size small and because it
   // can be better optimized in fmt::format anyway.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fmt-8.1.0/include/fmt/format.h 
new/fmt-8.1.1/include/fmt/format.h
--- old/fmt-8.1.0/include/fmt/format.h  2022-01-02 17:34:01.000000000 +0100
+++ new/fmt-8.1.1/include/fmt/format.h  2022-01-06 23:35:15.000000000 +0100
@@ -110,20 +110,6 @@
 #  define FMT_CATCH(x) if (false)
 #endif
 
-#ifndef FMT_DEPRECATED
-#  if FMT_HAS_CPP14_ATTRIBUTE(deprecated) || FMT_MSC_VER >= 1900
-#    define FMT_DEPRECATED [[deprecated]]
-#  else
-#    if (defined(__GNUC__) && !defined(__LCC__)) || defined(__clang__)
-#      define FMT_DEPRECATED __attribute__((deprecated))
-#    elif FMT_MSC_VER
-#      define FMT_DEPRECATED __declspec(deprecated)
-#    else
-#      define FMT_DEPRECATED /* deprecated */
-#    endif
-#  endif
-#endif
-
 #ifndef FMT_MAYBE_UNUSED
 #  if FMT_HAS_CPP17_ATTRIBUTE(maybe_unused)
 #    define FMT_MAYBE_UNUSED [[maybe_unused]]
@@ -310,10 +296,18 @@
 }
 
 inline auto is_big_endian() -> bool {
+#ifdef _WIN32
+  return false;
+#elif defined(__BIG_ENDIAN__)
+  return true;
+#elif defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__)
+  return __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__;
+#else
   struct bytes {
     char data[sizeof(int)];
   };
   return bit_cast<bytes>(1).data[0] == 0;
+#endif
 }
 
 // A fallback implementation of uintptr_t for systems that lack it.
@@ -323,7 +317,7 @@
   fallback_uintptr() = default;
   explicit fallback_uintptr(const void* p) {
     *this = bit_cast<fallback_uintptr>(p);
-    if (is_big_endian()) {
+    if (const_check(is_big_endian())) {
       for (size_t i = 0, j = sizeof(void*) - 1; i < j; ++i, --j)
         std::swap(value[i], value[j]);
     }
@@ -526,7 +520,7 @@
   return next;
 }
 
-enum { invalid_code_point = ~uint32_t() };
+constexpr uint32_t invalid_code_point = ~uint32_t();
 
 // Invokes f(cp, sv) for every code point cp in s with sv being the string view
 // corresponding to the code point. cp is invalid_code_point on error.
@@ -3044,14 +3038,8 @@
 }
 #  endif
 
-/**
-  DEPRECATED! User-defined literal equivalent of fmt::format.
-
-  **Example**::
-
-    using namespace fmt::literals;
-    std::string message = "The answer is {}"_format(42);
- */
+// DEPRECATED!
+// User-defined literal equivalent of fmt::format.
 FMT_DEPRECATED constexpr auto operator"" _format(const char* s, size_t n)
     -> detail::udl_formatter<char> {
   return {{s, n}};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fmt-8.1.0/support/manage.py 
new/fmt-8.1.1/support/manage.py
--- old/fmt-8.1.0/support/manage.py     2022-01-02 17:34:01.000000000 +0100
+++ new/fmt-8.1.1/support/manage.py     2022-01-06 23:35:15.000000000 +0100
@@ -270,9 +270,9 @@
 
     # Create a release on GitHub.
     fmt_repo.push('origin', 'release')
-    params = {'access_token': os.getenv('FMT_TOKEN')}
+    auth_headers = {'Authorization': 'token ' + os.getenv('FMT_TOKEN')}
     r = requests.post('https://api.github.com/repos/fmtlib/fmt/releases',
-                      params=params,
+                      headers=auth_headers,
                       data=json.dumps({'tag_name': version,
                                        'target_commitish': 'release',
                                        'body': changes, 'draft': True}))
@@ -283,8 +283,8 @@
     package = 'fmt-{}.zip'.format(version)
     r = requests.post(
         '{}/{}/assets?name={}'.format(uploads_url, id, package),
-        headers={'Content-Type': 'application/zip'},
-        params=params, data=open('build/fmt/' + package, 'rb'))
+        headers={'Content-Type': 'application/zip'} | auth_headers,
+        data=open('build/fmt/' + package, 'rb'))
     if r.status_code != 201:
         raise Exception('Failed to upload an asset ' + str(r))
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fmt-8.1.0/test/core-test.cc 
new/fmt-8.1.1/test/core-test.cc
--- old/fmt-8.1.0/test/core-test.cc     2022-01-02 17:34:01.000000000 +0100
+++ new/fmt-8.1.1/test/core-test.cc     2022-01-06 23:35:15.000000000 +0100
@@ -740,10 +740,13 @@
 enum class test_scoped_enum {};
 
 TEST(core_test, is_formattable) {
+#if 0
+  // This should be enabled once corresponding map overloads are gone.
   static_assert(fmt::is_formattable<signed char*>::value, "");
   static_assert(fmt::is_formattable<unsigned char*>::value, "");
   static_assert(fmt::is_formattable<const signed char*>::value, "");
   static_assert(fmt::is_formattable<const unsigned char*>::value, "");
+#endif
   static_assert(!fmt::is_formattable<wchar_t>::value, "");
 #ifdef __cpp_char8_t
   static_assert(!fmt::is_formattable<char8_t>::value, "");
@@ -768,11 +771,6 @@
 
   static_assert(!fmt::is_formattable<convertible_to_pointer>::value, "");
 
-  static_assert(!fmt::is_formattable<signed char*, wchar_t>::value, "");
-  static_assert(!fmt::is_formattable<unsigned char*, wchar_t>::value, "");
-  static_assert(!fmt::is_formattable<const signed char*, wchar_t>::value, "");
-  static_assert(!fmt::is_formattable<const unsigned char*, wchar_t>::value, 
"");
-
   static_assert(!fmt::is_formattable<void (*)()>::value, "");
 
   struct s;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fmt-8.1.0/test/format-test.cc 
new/fmt-8.1.1/test/format-test.cc
--- old/fmt-8.1.0/test/format-test.cc   2022-01-02 17:34:01.000000000 +0100
+++ new/fmt-8.1.1/test/format-test.cc   2022-01-06 23:35:15.000000000 +0100
@@ -1386,22 +1386,6 @@
       format_error, "string pointer is null");
 }
 
-TEST(format_test, format_schar_string) {
-  signed char str[] = "test";
-  EXPECT_EQ("test", fmt::format("{0:s}", str));
-  const signed char* const_str = str;
-  EXPECT_EQ("test", fmt::format("{0:s}", const_str));
-}
-
-TEST(format_test, format_uchar_string) {
-  unsigned char str[] = "test";
-  EXPECT_EQ("test", fmt::format("{0:s}", str));
-  const unsigned char* const_str = str;
-  EXPECT_EQ("test", fmt::format("{0:s}", const_str));
-  unsigned char* ptr = str;
-  EXPECT_EQ("test", fmt::format("{0:s}", ptr));
-}
-
 void function_pointer_test(int, double, std::string) {}
 
 TEST(format_test, format_pointer) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fmt-8.1.0/test/printf-test.cc 
new/fmt-8.1.1/test/printf-test.cc
--- old/fmt-8.1.0/test/printf-test.cc   2022-01-02 17:34:01.000000000 +0100
+++ new/fmt-8.1.1/test/printf-test.cc   2022-01-06 23:35:15.000000000 +0100
@@ -481,12 +481,6 @@
   EXPECT_PRINTF(L"    (null)", L"%10s", null_wstr);
 }
 
-TEST(printf_test, uchar_string) {
-  unsigned char str[] = "test";
-  unsigned char* pstr = str;
-  EXPECT_EQ("test", fmt::sprintf("%s", pstr));
-}
-
 TEST(printf_test, pointer) {
   int n;
   void* p = &n;

Reply via email to