Accepting request 833510 from home:badshah400:branches:devel:tools
* Update to version 1.32.0. * Use cmake to configure and cmake macros to build and install. * New BuildRequires: abseil-cpp-source and pkgconfig(re2); copy abseil-cpp-source contents into source's third_party dir and build it as a module (since we don't have the actual abseil-cpp library built for openSUSE. * Add grpc-find-re2-via-pkgconfig.patch to enable finding system Re2 library via pkg-config; taken from upstream PR gh#grpc/grpc#24088. * Split out new shared lib package libgrpc_plugin_support1 for supporting grpc plugins. OBS-URL: https://build.opensuse.org/request/show/833510 OBS-URL: https://build.opensuse.org/package/show/devel:tools/grpc?expand=0&rev=63
This commit is contained in:
parent
99cc36b0e3
commit
effca5875f
120
grpc-find-re2-via-pkgconfig.patch
Normal file
120
grpc-find-re2-via-pkgconfig.patch
Normal file
@ -0,0 +1,120 @@
|
||||
From 45e413d2520795e7281e9a592af81620349bc186 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Wankadia <junyer@google.com>
|
||||
Date: Wed, 9 Sep 2020 04:26:36 -0700
|
||||
Subject: [PATCH] Attempt to find RE2 via CMake and via pkg-config.
|
||||
|
||||
---
|
||||
CMakeLists.txt | 1 +
|
||||
cmake/modules/Findre2.cmake | 58 +++++++++++++++++++++++++++++++
|
||||
cmake/re2.cmake | 6 +---
|
||||
templates/CMakeLists.txt.template | 1 +
|
||||
4 files changed, 61 insertions(+), 5 deletions(-)
|
||||
create mode 100644 cmake/modules/Findre2.cmake
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 4b04d25ac50..cecb4396c57 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -15624,6 +15624,7 @@ install(FILES
|
||||
)
|
||||
install(FILES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/Findc-ares.cmake
|
||||
+ ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/Findre2.cmake
|
||||
DESTINATION ${gRPC_INSTALL_CMAKEDIR}/modules
|
||||
)
|
||||
|
||||
diff --git a/cmake/modules/Findre2.cmake b/cmake/modules/Findre2.cmake
|
||||
new file mode 100644
|
||||
index 00000000000..41df4547138
|
||||
--- /dev/null
|
||||
+++ b/cmake/modules/Findre2.cmake
|
||||
@@ -0,0 +1,58 @@
|
||||
+# Copyright 2017 gRPC authors.
|
||||
+#
|
||||
+# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
+# you may not use this file except in compliance with the License.
|
||||
+# You may obtain a copy of the License at
|
||||
+#
|
||||
+# http://www.apache.org/licenses/LICENSE-2.0
|
||||
+#
|
||||
+# Unless required by applicable law or agreed to in writing, software
|
||||
+# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
+# See the License for the specific language governing permissions and
|
||||
+# limitations under the License.
|
||||
+
|
||||
+find_package(re2 QUIET CONFIG)
|
||||
+if(re2_FOUND)
|
||||
+ message(STATUS "Found RE2 via CMake.")
|
||||
+ return()
|
||||
+endif()
|
||||
+
|
||||
+find_package(PkgConfig REQUIRED)
|
||||
+# TODO(junyer): Use the IMPORTED_TARGET option whenever CMake 3.6 (or newer)
|
||||
+# becomes the minimum required: that will take care of the add_library() and
|
||||
+# set_property() calls; then we can simply alias PkgConfig::RE2 as re2::re2.
|
||||
+# For now, we can only set INTERFACE_* properties that existed in CMake 3.5.
|
||||
+pkg_check_modules(RE2 QUIET re2)
|
||||
+if(RE2_FOUND)
|
||||
+ set(re2_FOUND "${RE2_FOUND}")
|
||||
+ add_library(re2::re2 INTERFACE IMPORTED)
|
||||
+ if(RE2_INCLUDE_DIRS)
|
||||
+ set_property(TARGET re2::re2 PROPERTY
|
||||
+ INTERFACE_INCLUDE_DIRECTORIES "${RE2_INCLUDE_DIRS}")
|
||||
+ endif()
|
||||
+ if(RE2_CFLAGS_OTHER)
|
||||
+ # Filter out the -std flag, which is handled by CMAKE_CXX_STANDARD.
|
||||
+ # TODO(junyer): Use the FILTER option whenever CMake 3.6 (or newer)
|
||||
+ # becomes the minimum required: that will allow this to be concise.
|
||||
+ foreach(flag IN LISTS RE2_CFLAGS_OTHER)
|
||||
+ if("${flag}" MATCHES "^-std=")
|
||||
+ list(REMOVE_ITEM RE2_CFLAGS_OTHER "${flag}")
|
||||
+ endif()
|
||||
+ endforeach()
|
||||
+ set_property(TARGET re2::re2 PROPERTY
|
||||
+ INTERFACE_COMPILE_OPTIONS "${RE2_CFLAGS_OTHER}")
|
||||
+ endif()
|
||||
+ if(RE2_LDFLAGS)
|
||||
+ set_property(TARGET re2::re2 PROPERTY
|
||||
+ INTERFACE_LINK_LIBRARIES "${RE2_LDFLAGS}")
|
||||
+ endif()
|
||||
+ message(STATUS "Found RE2 via pkg-config.")
|
||||
+ return()
|
||||
+endif()
|
||||
+
|
||||
+if(re2_FIND_REQUIRED)
|
||||
+ message(FATAL_ERROR "Failed to find RE2.")
|
||||
+elseif(NOT re2_FIND_QUIETLY)
|
||||
+ message(WARNING "Failed to find RE2.")
|
||||
+endif()
|
||||
diff --git a/cmake/re2.cmake b/cmake/re2.cmake
|
||||
index 3e83aae6910..974b0a436e2 100644
|
||||
--- a/cmake/re2.cmake
|
||||
+++ b/cmake/re2.cmake
|
||||
@@ -45,13 +45,9 @@ if(gRPC_RE2_PROVIDER STREQUAL "module")
|
||||
set(gRPC_INSTALL FALSE)
|
||||
endif()
|
||||
elseif(gRPC_RE2_PROVIDER STREQUAL "package")
|
||||
- find_package(re2 REQUIRED CONFIG)
|
||||
-
|
||||
+ find_package(re2 REQUIRED)
|
||||
if(TARGET re2::re2)
|
||||
set(_gRPC_RE2_LIBRARIES re2::re2)
|
||||
- else()
|
||||
- set(_gRPC_RE2_LIBRARIES ${RE2_LIBRARIES})
|
||||
endif()
|
||||
- set(_gRPC_RE2_INCLUDE_DIR ${RE2_INCLUDE_DIRS})
|
||||
set(_gRPC_FIND_RE2 "if(NOT re2_FOUND)\n find_package(re2)\nendif()")
|
||||
endif()
|
||||
diff --git a/templates/CMakeLists.txt.template b/templates/CMakeLists.txt.template
|
||||
index c7f2556dc92..f7db0fd2d0c 100644
|
||||
--- a/templates/CMakeLists.txt.template
|
||||
+++ b/templates/CMakeLists.txt.template
|
||||
@@ -706,6 +706,7 @@
|
||||
)
|
||||
install(FILES
|
||||
<%text>${CMAKE_CURRENT_SOURCE_DIR}</%text>/cmake/modules/Findc-ares.cmake
|
||||
+ <%text>${CMAKE_CURRENT_SOURCE_DIR}</%text>/cmake/modules/Findre2.cmake
|
||||
DESTINATION <%text>${gRPC_INSTALL_CMAKEDIR}</%text>/modules
|
||||
)
|
||||
|
40
grpc.changes
40
grpc.changes
@ -1,3 +1,43 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 10 14:33:01 UTC 2020 - Atri Bhattacharya <badshah400@gmail.com>
|
||||
|
||||
- Update to version 1.32.0:
|
||||
* Core
|
||||
- Remove stream from stalled lists on remove_stream
|
||||
(gh#grpc/grpc#23984).
|
||||
- Do not cancel RPC if send metadata size if larger than
|
||||
peer's limit (gh#grpc/grpc#23806).
|
||||
- Don't consider receiving non-OK status as an error for HTTP2
|
||||
(gh#grpc/grpc#19545).
|
||||
- Keepalive throttling (gh#grpc/grpc#23313).
|
||||
- Include the target_uri in "target uri is not valid" error
|
||||
messages (gh#grpc/grpc#23782).
|
||||
- Fix "cannot send compressed message large than 1024B" in
|
||||
cronet_transport (gh#grpc/grpc#23219).
|
||||
- Receive SETTINGS frame on clients before declaring
|
||||
subchannel READY (gh#grpc/grpc#23636).
|
||||
- Enabled GPR_ABSEIL_SYNC (gh#grpc/grpc#23372).
|
||||
- Experimental xDS v3 support (gh#grpc/grpc#23281).
|
||||
* C++
|
||||
- Upgrade bazel used for all tests to 2.2.0
|
||||
(gh#grpc/grpc#23902).
|
||||
- Remove test targets and test helper libraries from Makefile
|
||||
(gh#grpc/grpc#23813).
|
||||
- Fix repeated builds broken by re2's cmake
|
||||
(gh#grpc/grpc#23587).
|
||||
- Log the peer address of grpc_cli CallMethod RPCs to stderr
|
||||
(gh#grpc/grpc#23557).
|
||||
- Use cmake to configure and cmake macros to build and install.
|
||||
- New BuildRequires: abseil-cpp-source and pkgconfig(re2); copy
|
||||
abseil-cpp-source contents into source's third_party dir and
|
||||
build it as a module (since we don't have the actual abseil-cpp
|
||||
library built for openSUSE.
|
||||
- Add grpc-find-re2-via-pkgconfig.patch to enable finding system
|
||||
Re2 library via pkg-config; taken from upstream PR
|
||||
gh#grpc/grpc#24088.
|
||||
- Split out new shared lib package libgrpc_plugin_support1 for
|
||||
supporting grpc plugins.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 9 22:43:27 UTC 2020 - Atri Bhattacharya <badshah400@gmail.com>
|
||||
|
||||
|
53
grpc.spec
53
grpc.spec
@ -16,11 +16,12 @@
|
||||
#
|
||||
|
||||
|
||||
%define lver 8
|
||||
%define lver 12
|
||||
%define lverp 1
|
||||
%define lverplugin 1
|
||||
%define src_install_dir /usr/src/%name
|
||||
Name: grpc
|
||||
Version: 1.25.0
|
||||
Version: 1.32.0
|
||||
Release: 0
|
||||
Summary: HTTP/2-based Remote Procedure Call implementation
|
||||
License: Apache-2.0
|
||||
@ -28,6 +29,9 @@ Group: Development/Tools/Building
|
||||
URL: https://grpc.io/
|
||||
Source: https://github.com/grpc/grpc/archive/v%version.tar.gz
|
||||
Source2: %name-rpmlintrc
|
||||
# PATCH-FIX-UPSTREAM grpc-find-re2-via-pkgconfig.patch gh#grpc/grpc#24088 badshah400@gmail.com -- Attempt to find Re2 library via pkg-config; patch taken from upstream PR
|
||||
Patch0: grpc-find-re2-via-pkgconfig.patch
|
||||
BuildRequires: abseil-cpp-source
|
||||
BuildRequires: cmake
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: gcc-c++
|
||||
@ -36,6 +40,7 @@ BuildRequires: zypper
|
||||
BuildRequires: pkgconfig(libcares)
|
||||
BuildRequires: pkgconfig(openssl) >= 1.0.1
|
||||
BuildRequires: pkgconfig(protobuf) >= 3.8.0
|
||||
BuildRequires: pkgconfig(re2)
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
|
||||
%description
|
||||
@ -69,11 +74,23 @@ The reference implementation of the gRPC protocol, done on top of
|
||||
HTTP/2 with support for synchronous and asynchronous calls. gRPC uses
|
||||
Protocol Buffers as the Interface Definition Language by default.
|
||||
|
||||
%package -n libgrpc_plugin_support%lverplugin
|
||||
Summary: HTTP/2-based Remote Procedure Call implementation - plugin support
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n libgrpc_plugin_support%lverplugin
|
||||
The reference implementation of the gRPC protocol, done on top of
|
||||
HTTP/2 with support for synchronous and asynchronous calls. gRPC uses
|
||||
Protocol Buffers as the Interface Definition Language by default.
|
||||
|
||||
This package provides the shared library to support plugins for grpc.
|
||||
|
||||
%package devel
|
||||
Summary: Development files for grpc, a HTTP/2 Remote Procedure Call implementation
|
||||
Group: Development/Tools/Building
|
||||
Requires: libgrpc%lver = %version
|
||||
Requires: libgrpc++%lverp = %version
|
||||
Requires: libgrpc-plugin-support%lverplugin = %version
|
||||
|
||||
%description devel
|
||||
This subpackage contains libraries and header files for developing
|
||||
@ -89,6 +106,8 @@ This subpackage contains source code of the gRPC reference implementation.
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
# Copy abseil-cpp source into empty third_party/abseil-cpp dir
|
||||
cp -r %_prefix/src/abseil-cpp/* third_party/abseil-cpp/
|
||||
|
||||
%build
|
||||
%define _lto_cflags %nil
|
||||
@ -97,28 +116,37 @@ mkdir -p third_party/protobuf/src
|
||||
|
||||
export CFLAGS="%optflags -Wno-error"
|
||||
export CXXFLAGS="$CFLAGS"
|
||||
make %{?_smp_mflags} STRIP=/bin/true V=1 VERBOSE=1
|
||||
%cmake -DgRPC_INSTALL=ON \
|
||||
-DgRPC_ABSL_PROVIDER=module \
|
||||
-DgRPC_CARES_PROVIDER=package \
|
||||
-DgRPC_PROTOBUF_PROVIDER=package \
|
||||
-DgRPC_RE2_PROVIDER=package \
|
||||
-DgRPC_SSL_PROVIDER=package \
|
||||
-DgRPC_ZLIB_PROVIDER=package
|
||||
%cmake_build
|
||||
|
||||
%install
|
||||
b="%buildroot"
|
||||
# work around "Argument list too long"
|
||||
ln -s "%buildroot" "b"
|
||||
%make_install DESTDIR="b" prefix="b/%_prefix" STRIP=/bin/true V=1 VERBOSE=1
|
||||
%cmake_install
|
||||
|
||||
find "$b/%_includedir" -type f -exec chmod a-x {} +
|
||||
pushd "$b/usr"
|
||||
rm -fv lib/*.a share/grpc/*.pem
|
||||
perl -i -pe 's{^prefix=.*}{prefix=%_prefix}' lib/pkgconfig/*.pc
|
||||
perl -i -pe 's{^libdir=.*}{libdir=%_libdir}' lib/pkgconfig/*.pc
|
||||
if test ! -d lib64 && test "%_lib" = lib64; then
|
||||
mv lib lib64
|
||||
fi
|
||||
popd
|
||||
|
||||
# Install sources
|
||||
pushd %__builddir
|
||||
make clean
|
||||
rm -f "b" "a.out"
|
||||
find . -type f "(" -name "*.so" -o -name "*.o" -o -name ".git*" ")" -exec rm -rf {} +
|
||||
rm -f "b"
|
||||
find . -type f "(" -name "*.so" -o -name "*.o" -o -name ".git*" -o -name "*.bin" -o -name "*.out" ")" -exec rm -rf {} +
|
||||
popd
|
||||
# Don't include abseil-cpp in sources
|
||||
rm -fr third_party/abseil-cpp/*
|
||||
|
||||
mkdir -p "%buildroot/%src_install_dir"
|
||||
cp -r * "%buildroot/%src_install_dir"
|
||||
|
||||
@ -128,22 +156,29 @@ cp -r * "%buildroot/%src_install_dir"
|
||||
%postun -n libgrpc%lver -p /sbin/ldconfig
|
||||
%post -n libgrpc++%lverp -p /sbin/ldconfig
|
||||
%postun -n libgrpc++%lverp -p /sbin/ldconfig
|
||||
%post -n libgrpc_plugin_support%lverplugin -p /sbin/ldconfig
|
||||
%postun -n libgrpc_plugin_support%lverplugin -p /sbin/ldconfig
|
||||
|
||||
%files -n libgrpc%lver
|
||||
%_libdir/libaddress_sorting.so.%{lver}*
|
||||
%_libdir/libgpr*.so.%{lver}*
|
||||
%_libdir/libgrpc*.so.%{lver}*
|
||||
%_libdir/libupb*.so.%{lver}*
|
||||
|
||||
%files -n libgrpc++%lverp
|
||||
%_libdir/libgrpc++*.so.%{lverp}*
|
||||
%_libdir/libgrpcpp_channelz.so.%{lverp}*
|
||||
|
||||
%files -n libgrpc_plugin_support%lverplugin
|
||||
%_libdir/libgrpc_plugin_support.so.%{lverplugin}*
|
||||
|
||||
%files devel
|
||||
%license LICENSE
|
||||
%_bindir/*
|
||||
%_includedir/*
|
||||
%_libdir/pkgconfig/*.pc
|
||||
%_libdir/*.so
|
||||
%_libdir/cmake/grpc/
|
||||
|
||||
%files source
|
||||
%src_install_dir
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ffbe61269160ea745e487f79b0fd06b6edd3d50c6d9123f053b5634737cf2f69
|
||||
size 16460163
|
3
v1.32.0.tar.gz
Normal file
3
v1.32.0.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f880ebeb2ccf0e47721526c10dd97469200e40b5f101a0d9774eb69efa0bd07a
|
||||
size 7174251
|
Loading…
Reference in New Issue
Block a user