ac534fb
# Installed library version
66b7bf6
%global lib_version 2401.0.0
ac534fb
a5ac5b8
Name:           abseil-cpp
ff11d26
Version:        20240116.2
David Abdurachmanov 2f3f17b
Release:        2%{?dist}
a5ac5b8
Summary:        C++ Common Libraries
a5ac5b8
13bb680
# The entire source is Apache-2.0, except:
13bb680
#   - The following files are LicenseRef-Fedora-Public-Domain:
13bb680
#       absl/time/internal/cctz/src/tzfile.h
13bb680
#         ** This file is in the public domain, so clarified as of
13bb680
#         ** 1996-06-05 by Arthur David Olson.
13bb680
#       absl/time/internal/cctz/testdata/zoneinfo/iso3166.tab
13bb680
#         # This file is in the public domain, so clarified as of
13bb680
#         # 2009-05-17 by Arthur David Olson.
13bb680
#       absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab
13bb680
#         # This file is in the public domain.
e2ad089
#     Public-domain license text for these files was added to the
e2ad089
#     public-domain-text.txt file in fedora-license-data in commit
e2ad089
#     538bc87d5e3c1cb08e81d690ce4122e1273dc9cd
e2ad089
#     (https://gitlab.com/fedora/legal/fedora-license-data/-/merge_requests/205).
13bb680
License:        Apache-2.0 AND LicenseRef-Fedora-Public-Domain
a5ac5b8
URL:            https://abseil.io
a5ac5b8
Source0:        https://github.com/abseil/abseil-cpp/archive/%{version}/%{name}-%{version}.tar.gz
a5ac5b8
a5ac5b8
BuildRequires:  cmake
90ddd34
# The default make backend would work just as well; ninja is observably faster
90ddd34
BuildRequires:  ninja-build
a5ac5b8
BuildRequires:  gcc-c++
90ddd34
ac534fb
BuildRequires:  gmock-devel
ac534fb
BuildRequires:  gtest-devel
a5ac5b8
e2ad089
# The contents of absl/time/internal/cctz are derived from
e2ad089
# https://github.com/google/cctz (https://src.fedoraproject.org/rpms/cctz), but
e2ad089
# have been forked with Abseil-specific changes. It is not obvious from which
e2ad089
# particular version of CCTZ these sources are derived. Upstream was asked
e2ad089
# about a path to supporting a system copy as required by bundling guidelines:
e2ad089
#   Please comment on CCTZ bundling
e2ad089
#   https://github.com/abseil/abseil-cpp/discussions/1415
e2ad089
# They refused, for the time being, as follows:
e2ad089
#   “[…] we have no plans to change this decision, but we reserve the right to
e2ad089
#   change our minds.”
e2ad089
Provides:       bundled(cctz)
e2ad089
0da16bc
%ifarch s390x
0da16bc
# Symbolize.SymbolizeWithMultipleMaps fails in absl_symbolize_test on s390x
0da16bc
# with LTO
0da16bc
# https://github.com/abseil/abseil-cpp/issues/1133
0da16bc
%global _lto_cflags %{nil}
0da16bc
%endif
0da16bc
a5ac5b8
%description
a5ac5b8
Abseil is an open-source collection of C++ library code designed to augment
a5ac5b8
the C++ standard library. The Abseil library code is collected from
a5ac5b8
Google's own C++ code base, has been extensively tested and used in
a5ac5b8
production, and is the same code we depend on in our daily coding lives.
a5ac5b8
a5ac5b8
In some cases, Abseil provides pieces missing from the C++ standard; in
a5ac5b8
others, Abseil provides alternatives to the standard for special needs we've
a5ac5b8
found through usage in the Google code base. We denote those cases clearly
a5ac5b8
within the library code we provide you.
a5ac5b8
a5ac5b8
Abseil is not meant to be a competitor to the standard library; we've just
a5ac5b8
found that many of these utilities serve a purpose within our code base,
a5ac5b8
and we now want to provide those resources to the C++ community as a whole.
a5ac5b8
064ccdb
%package testing
064ccdb
Summary:        Libraries needed for running tests on the installed %{name}
064ccdb
Requires:       %{name}%{?_isa} = %{version}-%{release}
064ccdb
064ccdb
Provides:       bundled(cctz)
064ccdb
064ccdb
%description testing
064ccdb
%{summary}.
064ccdb
a5ac5b8
%package devel
064ccdb
Summary:        Development files for %{name}
064ccdb
Requires:       %{name}%{?_isa} = %{version}-%{release}
064ccdb
Requires:       %{name}-testing%{?_isa} = %{version}-%{release}
a5ac5b8
e2ad089
# Some of the headers from CCTZ are part of the -devel subpackage. See the
e2ad089
# corresponding virtual Provides in the base package for full details.
e2ad089
Provides:       bundled(cctz)
e2ad089
a5ac5b8
%description devel
a5ac5b8
Development headers for %{name}
a5ac5b8
a5ac5b8
%prep
ac534fb
%autosetup -p1 -S gendiff
a5ac5b8
David Abdurachmanov 2f3f17b
%ifarch riscv64
dd755b6
# [Bug]: NegativeNaN test fails on riscv64
dd755b6
# https://github.com/abseil/abseil-cpp/issues/1684
David Abdurachmanov 2f3f17b
# NOTE(davidlt): see https://github.com/WebAssembly/design/issues/646
David Abdurachmanov 2f3f17b
# [==========] 125 tests from 35 test suites ran. (3501 ms total)
David Abdurachmanov 2f3f17b
# [  PASSED  ] 124 tests.
David Abdurachmanov 2f3f17b
# [  FAILED  ] 1 test, listed below:
David Abdurachmanov 2f3f17b
# [  FAILED  ] FloatingPointLogFormatTest/0.NegativeNaN, where TypeParam = float
David Abdurachmanov 2f3f17b
#  1 FAILED TEST
David Abdurachmanov 2f3f17b
sed -r -i 's/\bNegativeNaN\b/DISABLED_&/' \
David Abdurachmanov 2f3f17b
    absl/log/log_format_test.cc
David Abdurachmanov 2f3f17b
%endif
David Abdurachmanov 2f3f17b
a5ac5b8
%build
10ba60b
# ABSL_BUILD_TEST_HELPERS is needed to build libraries for the -testing
10ba60b
# subpackage when tests are not enabled. It is therefore redundant here, but we
10ba60b
# still supply it to be more explicit.
ac534fb
%cmake \
90ddd34
  -GNinja \
ac534fb
  -DABSL_USE_EXTERNAL_GOOGLETEST:BOOL=ON \
d70989c
  -DABSL_FIND_GOOGLETEST:BOOL=ON \
d70989c
  -DABSL_ENABLE_INSTALL:BOOL=ON \
99fe9af
  -DABSL_BUILD_TESTING:BOOL=ON \
10ba60b
  -DABSL_BUILD_TEST_HELPERS:BOOL=ON \
ac534fb
  -DCMAKE_BUILD_TYPE:STRING=None \
ac534fb
  -DCMAKE_CXX_STANDARD:STRING=17
63c98b4
%cmake_build
a5ac5b8
a5ac5b8
a5ac5b8
%install
63c98b4
%cmake_install
a5ac5b8
ac534fb
%check
804bd00
%ctest
a5ac5b8
a5ac5b8
%files
a5ac5b8
%license LICENSE
ac534fb
%doc FAQ.md README.md UPGRADES.md
064ccdb
# All shared libraries except installed TESTONLY libraries; see the %%files
064ccdb
# list for the -testing subpackage for those.
064ccdb
%{_libdir}/libabsl_bad_any_cast_impl.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_bad_optional_access.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_bad_variant_access.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_base.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_city.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_civil_time.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_cord.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_cord_internal.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_cordz_functions.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_cordz_handle.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_cordz_info.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_cordz_sample_token.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_crc32c.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_crc_cord_state.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_crc_cpu_detect.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_crc_internal.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_debugging_internal.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_demangle_internal.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_die_if_null.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_examine_stack.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_exponential_biased.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_failure_signal_handler.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_flags_commandlineflag.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_flags_commandlineflag_internal.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_flags_config.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_flags_internal.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_flags_marshalling.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_flags_parse.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_flags_private_handle_accessor.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_flags_program_name.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_flags_reflection.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_flags_usage.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_flags_usage_internal.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_graphcycles_internal.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_hash.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_hashtablez_sampler.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_int128.so.%{lib_version}
6f91ede
%{_libdir}/libabsl_kernel_timeout_internal.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_leak_check.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_log_entry.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_log_flags.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_log_globals.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_log_initialize.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_log_internal_check_op.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_log_internal_conditions.so.%{lib_version}
66b7bf6
%{_libdir}/libabsl_log_internal_fnmatch.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_log_internal_format.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_log_internal_globals.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_log_internal_log_sink_set.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_log_internal_message.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_log_internal_nullguard.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_log_internal_proto.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_log_severity.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_log_sink.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_low_level_hash.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_malloc_internal.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_periodic_sampler.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_random_distributions.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_random_internal_distribution_test_util.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_random_internal_platform.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_random_internal_pool_urbg.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_random_internal_randen.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_random_internal_randen_hwaes.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_random_internal_randen_hwaes_impl.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_random_internal_randen_slow.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_random_internal_seed_material.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_random_seed_gen_exception.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_random_seed_sequences.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_raw_hash_set.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_raw_logging_internal.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_scoped_set_env.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_spinlock_wait.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_stacktrace.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_status.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_statusor.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_str_format_internal.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_strerror.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_strings.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_strings_internal.so.%{lib_version}
6f91ede
%{_libdir}/libabsl_string_view.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_symbolize.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_synchronization.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_throw_delegate.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_time.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_time_zone.so.%{lib_version}
66b7bf6
%{_libdir}/libabsl_vlog_config_internal.so.%{lib_version}
064ccdb
064ccdb
%files testing
064ccdb
# TESTONLY libraries (that are actually installed):
064ccdb
# absl/base/CMakeLists.txt
064ccdb
%{_libdir}/libabsl_exception_safety_testing.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_atomic_hook_test_helper.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_spinlock_test_common.so.%{lib_version}
064ccdb
# absl/container/CMakeLists.txt
064ccdb
%{_libdir}/libabsl_test_instance_tracker.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_hash_generator_testing.so.%{lib_version}
064ccdb
# absl/debugging/CMakeLists.txt
064ccdb
%{_libdir}/libabsl_stack_consumption.so.%{lib_version}
064ccdb
# absl/log/CMakeLists.txt
064ccdb
%{_libdir}/libabsl_log_internal_test_actions.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_log_internal_test_helpers.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_log_internal_test_matchers.so.%{lib_version}
064ccdb
%{_libdir}/libabsl_scoped_mock_log.so.%{lib_version}
064ccdb
# absl/strings/CMakeLists.txt
064ccdb
%{_libdir}/libabsl_pow10_helper.so.%{lib_version}
064ccdb
# absl/synchronization/CMakeLists.txt
064ccdb
%{_libdir}/libabsl_per_thread_sem_test_common.so.%{lib_version}
064ccdb
# absl/time/CMakeLists.txt
064ccdb
%{_libdir}/libabsl_time_internal_test_util.so.%{lib_version}
a5ac5b8
a5ac5b8
%files devel
a5ac5b8
%{_includedir}/absl
ac534fb
%{_libdir}/libabsl_*.so
a5ac5b8
%{_libdir}/cmake/absl
064ccdb
%{_libdir}/pkgconfig/absl_*.pc
a5ac5b8
a5ac5b8
%changelog
David Abdurachmanov 2f3f17b
* Wed May 29 2024 David Abdurachmanov <davidlt@rivosinc.com> - 20240116.2-2
David Abdurachmanov 2f3f17b
- Disable NegativeNaN test on riscv64
David Abdurachmanov 2f3f17b
ff11d26
* Tue Apr 09 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 20240116.2-1
ff11d26
- Update to 20240116.2 (close RHBZ#2274172)
ff11d26
66b7bf6
* Wed Jan 24 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 20240116.0-1
66b7bf6
- Update to 20240116.0
66b7bf6
32d65f9
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 20230802.1-4
32d65f9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
32d65f9
133248c
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 20230802.1-3
133248c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
133248c
b38e944
* Tue Oct 31 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 20230802.1-2
b38e944
- Rebuild for gtest 1.14.0
b38e944
f51fdd9
* Wed Sep 20 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 20230802.1-1
f51fdd9
- Update to 20230802.1 (close RHBZ#2239814)
f51fdd9
6f91ede
* Thu Aug 10 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 20230802.0-1
6f91ede
- Update to 20230802.0 (Abseil LTS branch, Aug 2023): close RHBZ#2229015
6f91ede
8f4c1cc
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 20230125.3-2
8f4c1cc
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
8f4c1cc
3632c58
* Tue May 09 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 20230125.3-1
3632c58
- Update to 20230125.3 (close RHBZ#2193306)
064ccdb
- Split installed TESTONLY libraries into a -testing subpackage; explicitly
064ccdb
  list all installed shared libraries
10ba60b
- Explicitly enable the ABSL_BUILD_TEST_HELPERS CMake option
3632c58
e32733e
* Thu Mar 30 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 20230125.2-1
e32733e
- Update to 20230125.2 (close RHBZ#2182229)
e32733e
e2ad089
* Thu Feb 23 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 20230125.1-1
e2ad089
- Update to 20230125.1 (close RHBZ#2162638)
e2ad089
33850f5
* Sat Jan 21 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 20220623.1-4
33850f5
- Backport upstream commit 4eef161 for GCC 13
33850f5
cd77648
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 20220623.1-3
cd77648
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
cd77648
63fe736
* Fri Sep 02 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 20220623.1-2
63fe736
- Update to 20220623.1 (close RHBZ#2123181)
63fe736
99fe9af
* Sat Aug 13 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 20220623.0-1
99fe9af
- Update to 20220623.0 (close RHBZ#2101021)
13bb680
- Update License to SPDX
99fe9af
e0b2e83
* Fri Jul 29 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 20211102.0-4
e0b2e83
- Do not leak -maes -msse4.1 into pkgconfig (fix RHBZ#2108658)
e0b2e83
245608b
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 20211102.0-3
245608b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
245608b
0da16bc
* Tue Mar 15 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 20211102.0-2
0da16bc
- Disable LTO on s390x to work around test failure
4b8d306
- Skip SysinfoTest.NominalCPUFrequency on all architectures; it fails
4b8d306
  occasionally on aarch64, and upstream says we should not care
0da16bc
d70989c
* Fri Feb 18 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 20211102.0-1
d70989c
- Update to 20211102.0 (close RHBZ#2019691)
804bd00
- Drop --output-on-failure, already in %%ctest expansion
20f6167
- On s390x, instead of ignoring all tests, skip only the single failing test
90ddd34
- Use ninja backend for CMake: speeds up build with no downsides
c43daf7
- Drop patch for armv7hl
d70989c
95b3923
* Mon Jan 31 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 20210324.2-4
95b3923
- Fix test failure (fix RHBZ#2045186)
95b3923
5633c82
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 20210324.2-3
5633c82
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
5633c82
a5c962e
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 20210324.2-2
a5c962e
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
a5c962e
ac534fb
* Fri May 21 2021 Rich Mattes <richmattes@gmail.com> - 20210324.1-2
ac534fb
- Update to release 20210324.2
ac534fb
- Enable and run test suite
ac534fb
ea6a624
* Mon Mar 08 2021 Rich Mattes <richmattes@gmail.com> - 20200923.3-1
ea6a624
- Update to release 20200923.3
ea6a624
8920859
* Mon Jan 25 2021 Fedora Release Engineering <releng@fedoraproject.org> - 20200923.2-2
8920859
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
8920859
7a492a8
* Sat Dec 19 2020 Rich Mattes <richmattes@gmail.com> - 20200923.2-1
7a492a8
- Update to release 20200923.2
7a492a8
- Rebuild to fix tagging in koji (rhbz#1885561)
7a492a8
0c16b9e
* Fri Jul 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20200225.2-4
0c16b9e
- Second attempt - Rebuilt for
0c16b9e
  https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
0c16b9e
71cf974
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20200225.2-3
71cf974
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
71cf974
a5ac5b8
* Wed May 27 2020 Rich Mattes <richmattes@gmail.com> - 20200225.2-2
a5ac5b8
- Don't remove buildroot in install
a5ac5b8
a5ac5b8
* Sun May 24 2020 Rich Mattes <richmattes@gmail.com> - 20200225.2-1
a5ac5b8
- Initial package.