music / rpms / abseil-cpp

Forked from rpms/abseil-cpp 3 years ago
Clone
ac534fb
# Installed library version
d70989c
%global lib_version 2111.0.0
ac534fb
a5ac5b8
Name:           abseil-cpp
d70989c
Version:        20211102.0
d70989c
Release:        1%{?dist}
a5ac5b8
Summary:        C++ Common Libraries
a5ac5b8
a5ac5b8
License:        ASL 2.0
a5ac5b8
URL:            https://abseil.io
a5ac5b8
Source0:        https://github.com/abseil/abseil-cpp/archive/%{version}/%{name}-%{version}.tar.gz
a5ac5b8
d70989c
# Remove test assertions that use ::testing::Conditional, which is not in a
d70989c
# released version of GTest. Not submitted upstream, as this is a workaround
d70989c
# rather than a fix. https://github.com/abseil/abseil-cpp/issues/1063
c43daf7
Patch0:         abseil-cpp-20211102.0-gtest-unreleased-features.patch
f7adba5
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
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
a5ac5b8
%package devel
a5ac5b8
Summary: Development files for %{name}
a5ac5b8
Requires: %{name}%{?_isa} = %{version}-%{release}
a5ac5b8
a5ac5b8
%description devel
a5ac5b8
Development headers for %{name}
a5ac5b8
a5ac5b8
%prep
ac534fb
%autosetup -p1 -S gendiff
a5ac5b8
d70989c
# Replace GTEST_FLAG_GET, which is not in a released version of GTest, with an
d70989c
# appropriate default value. Not submitted upstream, as this is a workaround
d70989c
# rather than a fix. https://github.com/abseil/abseil-cpp/issues/1063
d70989c
#
d70989c
# The find-then-sed pattern means we only discard mtimes on files that actually
d70989c
# needed to be modified.
d70989c
find . -type f -name '*.cc' \
d70989c
    -exec gawk '/GTEST_FLAG_GET/ { print FILENAME ; nextfile }' '{}' '+' |
d70989c
  xargs -r -t sed -r -i 's/GTEST_FLAG_GET/::testing::GTEST_FLAG/g'
d70989c
20f6167
# It’s extremely difficult to pass gtest options through to the test
20f6167
# executables from ctest. We could probably skip an entire executable (e.g.
20f6167
# absl_symbolize_test) by symlinking it to /bin/true, but the easiest way to
20f6167
# skip a *single test* is to patch the test source.
20f6167
20f6167
%ifarch s390x
20f6167
# TODO: why does this test fail?
20f6167
#
20f6167
#  48/167 Test  #49: absl_symbolize_test ................................***Failed    0.02 sec
20f6167
# TestWithReturnAddress passed
20f6167
# [==========] Running 7 tests from 1 test suite.
20f6167
# [----------] Global test environment set-up.
20f6167
# [----------] 7 tests from Symbolize
20f6167
# [ RUN      ] Symbolize.Cached
20f6167
# [       OK ] Symbolize.Cached (0 ms)
20f6167
# [ RUN      ] Symbolize.Truncation
20f6167
# [       OK ] Symbolize.Truncation (0 ms)
20f6167
# [ RUN      ] Symbolize.SymbolizeWithDemangling
20f6167
# [       OK ] Symbolize.SymbolizeWithDemangling (0 ms)
20f6167
# [ RUN      ] Symbolize.SymbolizeSplitTextSections
20f6167
# [       OK ] Symbolize.SymbolizeSplitTextSections (0 ms)
20f6167
# [ RUN      ] Symbolize.SymbolizeWithMultipleMaps
20f6167
# /builddir/build/BUILD/abseil-cpp-20210324.2/absl/debugging/symbolize_test.cc:315: Failure
20f6167
# Expected equality of these values:
20f6167
#   "kPadding1"
20f6167
#   buf
20f6167
#     Which is: ""
20f6167
# /builddir/build/BUILD/abseil-cpp-20210324.2/absl/debugging/symbolize_test.cc:349: Failure
20f6167
# Expected equality of these values:
20f6167
#   expected[i]
20f6167
#     Which is: "kPadding1"
20f6167
#   buf
20f6167
#     Which is: ""
20f6167
# /builddir/build/BUILD/abseil-cpp-20210324.2/absl/debugging/symbolize_test.cc:349: Failure
20f6167
# Expected equality of these values:
20f6167
#   expected[i]
20f6167
#     Which is: "kPadding1"
20f6167
#   buf
20f6167
#     Which is: ""
20f6167
# [  FAILED  ] Symbolize.SymbolizeWithMultipleMaps (1 ms)
20f6167
sed -r -i 's/\bSymbolizeWithMultipleMaps\b/DISABLED_&/' \
20f6167
    absl/debugging/symbolize_test.cc
20f6167
%endif
20f6167
d70989c
a5ac5b8
%build
ac534fb
%cmake \
90ddd34
  -GNinja \
ac534fb
  -DABSL_USE_EXTERNAL_GOOGLETEST:BOOL=ON \
d70989c
  -DABSL_FIND_GOOGLETEST:BOOL=ON \
d70989c
  -DABSL_ENABLE_INSTALL:BOOL=ON \
ac534fb
  -DBUILD_TESTING: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
ac534fb
%{_libdir}/libabsl_*.so.%{lib_version}
a5ac5b8
a5ac5b8
%files devel
a5ac5b8
%{_includedir}/absl
ac534fb
%{_libdir}/libabsl_*.so
a5ac5b8
%{_libdir}/cmake/absl
ac534fb
%{_libdir}/pkgconfig/*.pc
a5ac5b8
a5ac5b8
%changelog
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.