fmt/fmt.spec

79 lines
2.1 KiB
RPMSpec
Raw Normal View History

#
# spec file for package fmt
#
Accepting request 943557 from home:alois:branches:devel:libraries:c_c++ - Update to version 8.1.0 * Optimized chrono formatting. + Processing of some specifiers such as %z and %Y is now up to 10-20 times faster, for example on GCC 11 with libstdc++. * Implemented subsecond formatting for chrono durations. * Fixed handling of precision 0 when formatting chrono durations. * Fixed an overflow on invalid inputs in the tm formatter. * Added fmt::group_digits that formats integers with a non-localized digit separator (comma) for groups of three digits. * Added support for faint, conceal, reverse and blink text styles. * Added experimental support for compile-time floating point formatting. * Added UDL-based named argument support to compile-time format string checks. * Implemented escaping of string range elements. * Switched to JSON-like representation of maps and sets for consistency with Python's str.format. * Extended fmt::join to support C++20-only ranges. * Optimized handling of non-const-iterable ranges and implemented initial support for non-const-formattable types. * Disabled implicit conversions of scoped enums to integers that was accidentally introduced in earlier versions. * Deprecated implicit conversion of [const] signed char* and [const] unsigned char* to C strings. * Deprecated _format, a legacy UDL-based format API. * Marked format, formatted_size and to_string as [[nodiscard]]. * Added missing diagnostic when trying to format function and member pointers as well as objects convertible to pointers which is explicitly disallowed. * Optimized writing to a contiguous buffer with format_to_n. * Optimized writing to non-char buffers. * Decimal point is now localized when using the L specifier. * Improved floating point formatter implementation. * Fixed handling of very large precision in fixed format. * Made a table of cached powers used in FP formatting static. * Resolved a lookup ambiguity with C++20 format-related functions due to ADL. * Removed unnecessary inline namespace qualification. * Implemented argument forwarding in format_to_n. * Fixed handling of implicit conversions in fmt::to_string and format string compilation. * Changed the default access mode of files created by fmt::output_file to -rw-r--r-- for consistency with fopen. * Make fmt::ostream::flush public. * Improved C++14/17 attribute detection. * Improved documentation. * Improved fuzzers and added a fuzzer for chrono timepoint formatting. * Added the FMT_SYSTEM_HEADERS CMake option setting which marks {fmt}'s headers as system. It can be used to suppress warnings. * Added the Bazel build system support. * Improved build configuration and tests. * Fixed various warnings and compilation issues. OBS-URL: https://build.opensuse.org/request/show/943557 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/fmt?expand=0&rev=42
2022-01-03 11:19:28 +01:00
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Accepting request 901190 from home:alois:branches:devel:libraries:c_c++ - Update to version 8.0.0 * Enabled compile-time format string check by default. * Added compile-time formatting. * Optimized handling of format specifiers during format string compilation. * Added the ``_cf`` user-defined literal to represent a compiled format string. It can be used instead of the ``FMT_COMPILE`` macro. * Format string compilation now requires ``format`` functions of ``formatter`` specializations for user-defined types to be ``const``. * Added UDL-based named argument support to format string compilation. * Added format string compilation support to ``fmt::print``. * Added initial support for compiling {fmt} as a C++20 module. * Made symbols private by default reducing shared library size * Optimized includes making the result of preprocessing ``fmt/format.h``. * Added support of ranges with non-const ``begin`` / ``end`` * Added support of ``std::byte`` and other formattable types to ``fmt::join``. * Implemented the default format for ``std::chrono::system_clock``. * Made more chrono specifiers locale independent by default. Use the ``'L'`` specifier to get localized formatting. * Improved locale handling in chrono formatting. * Deprecated ``fmt/locale.h`` moving the formatting functions that take a locale to ``fmt/format.h`` (``char``) and ``fmt/xchar`` (other overloads). This doesn't introduce a dependency on ``<locale>`` so there is virtually no compile time effect. * Made parameter order in ``vformat_to`` consistent with ``format_to``. * Added support for time points with arbitrary durations. * Formatting floating-point numbers no longer produces trailing zeros by default. for consistency with ``std::format``. * Dropped a limit on the number of elements in a range and replaced ``{}`` with ``[]`` as range delimiters for consistency with Python's ``str.format``. * The ``'L'`` specifier for locale-specific numeric formatting can now be combined with presentation specifiers as in ``std::format``. * Made the ``0`` specifier ignored for infinity and NaN. * Made the hexfloat formatting use the right alignment by default. * Removed the deprecated numeric alignment (``'='``). Use the ``'0'`` specifier instead. * Removed the deprecated ``fmt/posix.h`` header that has been replaced with ``fmt/os.h``. * Removed the deprecated ``format_to_n_context``, ``format_to_n_args`` and ``make_format_to_n_args``. They have been replaced with ``format_context``, ``format_args` and ``make_format_args`` respectively. * Moved ``wchar_t``-specific functions and types to ``fmt/wchar.h``. You can define ``FMT_DEPRECATED_INCLUDE_WCHAR`` to automatically include ``fmt/wchar.h`` from ``fmt/format.h`` but this will be disabled in the next major release. * Fixed handling of the ``'+'`` specifier in localized formatting. * Added support for the ``'s'`` format specifier that gives textual representation of ``bool``. * Made ``fmt::ptr`` work with function pointers. * Fixed ``fmt::formatted_size`` with format string compilation * Fixed handling of empty format strings during format string compilation. * Fixed handling of enums in ``fmt::to_string``. * Improved width computation. * The experimental fast output stream (``fmt::ostream``) is now truncated by default for consistency with ``fopen``. * Fixed moving of ``fmt::ostream`` that holds buffered data * Replaced the ``fmt::system_error`` exception with a function of the same name that constructs ``std::system_error``. * Replaced the ``fmt::windows_error`` exception with a function of the same name that constructs ``std::system_error`` with the category returned by ``fmt::system_category()``. * Replaced ``fmt::error_code`` with ``std::error_code`` and made it formattable. * Added speech synthesis support. * Made ``format_to`` work with a memory buffer that has a custom allocator. * Added ``Allocator::max_size`` support to ``basic_memory_buffer``. * Added wide string support to ``fmt::join`` * Made iterators passed to ``formatter`` specializations via a format context satisfy C++20 ``std::output_iterator`` requirements. * Optimized the ``printf`` implementation. * Improved detection of ``constexpr`` ``char_traits``. * Fixed exception propagation from iterators. * Improved ``strftime`` error handling. * Stopped using deprecated GCC UDL template extension. * Added ``fmt/args.h`` to the install target. * Error messages are now passed to assert when exceptions are disabled. * Added the ``FMT_MASTER_PROJECT`` CMake option to control build and install targets when {fmt} is included via ``add_subdirectory``. * Improved build configuration. * Fixed various warnings and compilation issues. * Improved documentation. * Continuous integration and test improvements. - Bump soversion to 8 OBS-URL: https://build.opensuse.org/request/show/901190 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/fmt?expand=0&rev=40
2021-06-21 16:55:27 +02:00
%define sover 8
Name: fmt
Version: 8.1.1
Release: 0
Summary: A formatting library for C++
License: MIT
URL: http://fmtlib.net/
Source0: https://github.com/fmtlib/fmt/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
Source1: baselibs.conf
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: pkgconfig
%description
Fmt is a formatting library for C++. It can be used as an
alternative to (s)printf and IOStreams.
%package -n libfmt%{sover}
Summary: A formatting library for C++
%description -n libfmt%{sover}
Shared library for fmt, a formatting library for C++.
%package devel
Summary: Development files for fmt, a formatting library
Requires: libfmt%{sover} = %{version}
%description devel
Development files for fmt, a formatting library for C++.
%prep
%autosetup -p1
%build
%cmake -DCMAKE_INSTALL_INCLUDEDIR:PATH=%{_includedir}
%make_jobs
%install
%cmake_install
%check
# path needs to be exported otherwise unit tests will fail
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{_libdir}
%ctest
%post -n libfmt%{sover} -p /sbin/ldconfig
%postun -n libfmt%{sover} -p /sbin/ldconfig
%files -n libfmt%{sover}
%license LICENSE.rst
%{_libdir}/libfmt.so.%{sover}*
%files devel
%doc ChangeLog.rst README.rst
%{_includedir}/%{name}
%{_libdir}/cmake/%{name}
%{_libdir}/libfmt.so
%{_libdir}/pkgconfig/%{name}.pc
%changelog