Skip to content

Commit

Permalink
Fix ABI compatibiity errors between abseil-cpp and dependent packag…
Browse files Browse the repository at this point in the history
…es. (#10003)
  • Loading branch information
surfacepatterns committed Aug 14, 2024
1 parent e7a6d3e commit bd89859
Show file tree
Hide file tree
Showing 7 changed files with 63 additions and 28 deletions.
21 changes: 18 additions & 3 deletions SPECS/abseil-cpp/abseil-cpp.spec
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
Summary: C++ Common Libraries
Name: abseil-cpp
Version: 20240116.0
Release: 1%{?dist}
Release: 2%{?dist}
License: ASL 2.0
Vendor: Microsoft Corporation
Distribution: Azure Linux
Expand All @@ -18,13 +18,17 @@ BuildRequires: make
BuildRequires: gmock-devel
BuildRequires: gtest
BuildRequires: gtest-devel
BuildRequires: python3
BuildRequires: tzdata

%if 0%{?with_check}
BuildRequires: ninja-build
BuildRequires: gcc-c++
BuildRequires: gmock
%endif

Requires: tzdata

%description
Abseil is an open-source collection of C++ library code designed to augment
the C++ standard library. The Abseil library code is collected from
Expand Down Expand Up @@ -68,15 +72,15 @@ Development headers for %{name}
-DABSL_ENABLE_INSTALL:BOOL=ON \
-DABSL_BUILD_TESTING:BOOL=ON \
-DABSL_BUILD_TEST_HELPERS:BOOL=ON \
-DCMAKE_BUILD_TYPE:STRING=None \
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo \
-DCMAKE_CXX_STANDARD:STRING=17
%cmake_build

%install
%cmake_install

%check
%ctest --output-on-failure
%ctest --output-on-failure --exclude-regex waiter_test

%files
%license LICENSE
Expand All @@ -90,6 +94,17 @@ Development headers for %{name}
%{_libdir}/pkgconfig/*.pc

%changelog
* Thu Jul 25 2024 Devin Anderson <[email protected]> - 20240116.0-2
- Change the build type back to 'RelWithDebInfo' so that 'abseil' compiles with
'NDEBUG' defined so that packages that link to 'abseil' with 'NDEBUG' defined
(e.g. 'grpc', 're2', 'protobuf') don't crash with deadlock messages related
to 'absl::Mutex' due to ABI breakage.
- Take dependency on 'tzdata' so that functionality in absl/time works. See
https://github.com/abseil/abseil-cpp/issues/329 for details.
- Disable flaky waiter tests, which sleep on the monotonic timer and then,
inexplicably, test how much time has passed against the system timer.
- Add explicit dependency on 'python3', which is used at build time.

* Tue Mar 19 2024 Betty Lakes <[email protected]> - 20240116.0-1
- Upgrade version to 20240116.0

Expand Down
8 changes: 4 additions & 4 deletions SPECS/grpc/grpc.signatures.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"Signatures": {
"grpc-1.62.0-submodules.tar.gz": "dba5605f82b99f65f7109644cbd0b92936f29f5308d2565c9cc6cfde27e215d0",
"grpc-1.62.0.tar.gz": "f40bde4ce2f31760f65dc49a2f50876f59077026494e67dccf23992548b1b04f"
}
"Signatures": {
"grpc-1.62.0-submodules.tar.gz": "dba5605f82b99f65f7109644cbd0b92936f29f5308d2565c9cc6cfde27e215d0",
"grpc-1.62.0.tar.gz": "f40bde4ce2f31760f65dc49a2f50876f59077026494e67dccf23992548b1b04f"
}
}
9 changes: 6 additions & 3 deletions SPECS/grpc/grpc.spec
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Summary: Open source remote procedure call (RPC) framework
Name: grpc
Version: 1.62.0
Release: 2%{?dist}
Release: 3%{?dist}
License: ASL 2.0
Vendor: Microsoft Corporation
Distribution: Azure Linux
Expand All @@ -10,7 +10,7 @@ URL: https://www.grpc.io
Source0: https://github.com/grpc/grpc/archive/v%{version}/%{name}-%{version}.tar.gz
Source1: %{name}-%{version}-submodules.tar.gz
Patch0: grpcio-cython3.patch
BuildRequires: abseil-cpp-devel
BuildRequires: abseil-cpp-devel >= 20240116.0-2
BuildRequires: build-essential
BuildRequires: c-ares-devel
BuildRequires: cmake
Expand All @@ -22,7 +22,7 @@ BuildRequires: protobuf-static
BuildRequires: re2-devel
BuildRequires: systemd-devel
BuildRequires: zlib-devel
Requires: abseil-cpp
Requires: abseil-cpp >= 20240116.0-2
Requires: c-ares
Requires: openssl
Requires: protobuf
Expand Down Expand Up @@ -153,6 +153,9 @@ export GRPC_PYTHON_CFLAGS="%{optflags} -std=c++$CXX_VERSION"
%{python3_sitearch}/grpcio-%{version}-py%{python3_version}.egg-info

%changelog
* Thu Jul 25 2024 Devin Anderson <[email protected]> - 1.62.0-3
- Bump release to rebuild with latest 'abseil-cpp'.

* Wed Mar 20 2024 Betty Lakes <[email protected]> - 1.62.0-2
- Bump release to rebuild with latest 'abseil-cpp'.

Expand Down
12 changes: 8 additions & 4 deletions SPECS/libarrow/libarrow.spec
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

Name: libarrow
Version: 15.0.0
Release: 5%{?dist}
Release: 6%{?dist}
Summary: A toolbox for accelerated data interchange and in-memory processing
License: Apache-2.0
URL: https://arrow.apache.org/
Expand Down Expand Up @@ -51,7 +51,7 @@ BuildRequires: pkgconfig
BuildRequires: python3-devel
BuildRequires: python3-numpy
BuildRequires: python3-Cython
BuildRequires: abseil-cpp-devel
BuildRequires: abseil-cpp-devel >= 20240116.0-2
BuildRequires: c-ares-devel
BuildRequires: thrift-devel
%if %{with have_rapidjson}
Expand Down Expand Up @@ -232,7 +232,7 @@ popd
%{_libdir}/pkgconfig/arrow-json.pc
%{_libdir}/pkgconfig/arrow.pc
%{_datadir}/arrow/gdb/gdb_arrow.py
#%{_datadir}/gdb/auto-load/usr/lib64/libarrow.so.*-gdb.py
#%%{_datadir}/gdb/auto-load/usr/lib64/libarrow.so.*-gdb.py


%files -n parquet-libs
Expand All @@ -246,6 +246,10 @@ popd
%{_libdir}/pkgconfig/parquet*.pc

%changelog
* Thu Jul 25 2024 Devin Anderson <[email protected]> - 15.0.0-6
- Bump release to rebuild with latest 'abseil-cpp'.
- Fix 'rpm' warning about macro expansion inside a comment.

* Mon May 20 2024 Henry Beberman <[email protected]> - 15.0.0-5
- Move to using source tarball from GitHub releases.

Expand Down Expand Up @@ -375,4 +379,4 @@ popd
- Arrow 8.0.0 GA

* Thu Jan 13 2022 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 7.0.0-1
- New upstream release.
- New upstream release.
23 changes: 15 additions & 8 deletions SPECS/opentelemetry-cpp/opentelemetry-cpp.spec
Original file line number Diff line number Diff line change
@@ -1,29 +1,32 @@
%global proto_name opentelemetry-proto
%global proto_version 1.1.0

Summary: The OpenTelemetry C++ Client
Name: opentelemetry-cpp
Version: 1.14.2
Release: 1%{?dist}
Release: 2%{?dist}
License: MIT
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: https://github.com/open-telemetry/opentelemetry-cpp
Source0: https://github.com/open-telemetry/opentelemetry-cpp/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
# Standard proto files source: https://github.com/open-telemetry/opentelemetry-proto
Source1: opentelemetry-proto-1.1.0.tar.gz
Source1: https://github.com/open-telemetry/%{proto_name}/archive/refs/tags/v%{proto_version}.tar.gz#/%{proto_name}-%{proto_version}.tar.gz

BuildRequires: c-ares-devel
BuildRequires: cmake
BuildRequires: curl-devel
BuildRequires: gmock-devel
BuildRequires: grpc-devel
BuildRequires: grpc-plugins
BuildRequires: gtest-devel
BuildRequires: abseil-cpp-devel
BuildRequires: abseil-cpp-devel >= 20240116.0-2
BuildRequires: nlohmann-json-devel
BuildRequires: protobuf-devel
BuildRequires: protobuf-static
BuildRequires: protobuf-c-devel
BuildRequires: re2-devel
BuildRequires: systemd-devel
Requires: abseil-cpp
Requires: abseil-cpp >= 20240116.0-2

%description
The official OpenTelemetry CPP client
Expand All @@ -38,8 +41,8 @@ Development Libraries for OpenTelemetry CPP client

%prep
%autosetup -p1
mkdir -p third_party/opentelemetry-proto
tar xf %{SOURCE1} -C third_party/opentelemetry-proto --strip-components=1
mkdir -p third_party/%{proto_name}
tar xf %{SOURCE1} -C third_party/%{proto_name} --strip-components=1

%build
mkdir build && cd build
Expand All @@ -53,7 +56,7 @@ mkdir build && cd build
-DWITH_ABSEIL=ON \
-DWITH_STL=ON \
-DWITH_ZPAGES=ON \
-DOTELCPP_PROTO_PATH=../third_party/opentelemetry-proto \
-DOTELCPP_PROTO_PATH=../third_party/%{proto_name} \
..

%make_build
Expand All @@ -74,6 +77,10 @@ mkdir build && cd build
%{_libdir}/cmake/opentelemetry-cpp/*

%changelog
* Thu Jul 25 2024 Devin Anderson <[email protected]> - 1.14.2-2
- Bump release to rebuild with latest 'abseil-cpp'.
- Provide explicit fetch for protobuf archive.

* Mon Mar 18 2024 Betty Lakes <[email protected]> - 1.14.2-1
- Upgrade to 1.14.2
- Upgrade opentelemetry-proto to 1.1.0
Expand Down
11 changes: 7 additions & 4 deletions SPECS/protobuf/protobuf.spec
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Summary: Google's data interchange format
Name: protobuf
Version: 25.3
Release: 3%{?dist}
Release: 4%{?dist}
License: BSD
Vendor: Microsoft Corporation
Distribution: Azure Linux
Expand All @@ -12,15 +12,15 @@ BuildRequires: curl
BuildRequires: libstdc++
BuildRequires: cmake
BuildRequires: unzip
BuildRequires: abseil-cpp-devel
BuildRequires: abseil-cpp-devel >= 20240116.0-2
%if 0%{?with_check}
BuildRequires: gtest-devel
BuildRequires: gmock-devel
%endif
Provides: %{name}-compiler = %{version}-%{release}
Provides: %{name}-lite = %{version}-%{release}

Requires: abseil-cpp
Requires: abseil-cpp >= 20240116.0-2

%description
Protocol Buffers (a.k.a., protobuf) are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data. You can find protobuf's documentation on the Google Developers site.
Expand All @@ -30,7 +30,7 @@ Summary: Development files for protobuf
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Provides: %{name}-lite-devel = %{version}-%{release}
Requires: abseil-cpp-devel
Requires: abseil-cpp-devel >= 20240116.0-2

%description devel
The protobuf-devel package contains libraries and header files for
Expand Down Expand Up @@ -122,6 +122,9 @@ popd
%{python3_sitelib}/*

%changelog
* Thu Jul 25 2024 Devin Anderson <[email protected]> - 25.3-4
- Bump release to rebuild with latest 'abseil-cpp'.

* Mon Jun 03 2024 Sindhu Karri <[email protected]> - 25.3-3
- Enable ptest using system gtest package

Expand Down
7 changes: 5 additions & 2 deletions SPECS/re2/re2.spec
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Summary: C++ fast alternative to backtracking RE engines
Name: re2
Version: %{shortver}
Release: 2%{?dist}
Release: 3%{?dist}
License: BSD-3-Clause
Vendor: Microsoft Corporation
Distribution: Azure Linux
Expand All @@ -13,7 +13,7 @@ Source0: https://github.com/google/%{name}/archive/refs/tags/%{longver}.t
BuildRequires: gcc
BuildRequires: make
BuildRequires: cmake
BuildRequires: abseil-cpp-devel
BuildRequires: abseil-cpp-devel >= 20240116.0-2
%if 0%{?with_check}
BuildRequires: gtest-devel
BuildRequires: gmock-devel
Expand Down Expand Up @@ -83,6 +83,9 @@ rm -fv %{buildroot}%{_libdir}/libre2.a
%{_libdir}/cmake/re2/*.cmake

%changelog
* Thu Jul 25 2024 Devin Anderson <[email protected]> - 20240201-3
- Bump release to rebuild with latest 'abseil-cpp'.

* Wed Mar 20 2024 Betty Lakes <[email protected]> - 20240201-2
- Bumping release to rebuild with latest 'abseil-cpp'.

Expand Down

0 comments on commit bd89859

Please sign in to comment.