Hello community, here is the log from the commit of package grpc for openSUSE:Factory checked in at 2020-10-14 15:36:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/grpc (Old) and /work/SRC/openSUSE:Factory/.grpc.new.3486 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "grpc" Wed Oct 14 15:36:49 2020 rev:24 rq:841067 version:1.32.0 Changes: -------- --- /work/SRC/openSUSE:Factory/grpc/grpc.changes 2020-03-16 10:17:38.943570391 +0100 +++ /work/SRC/openSUSE:Factory/.grpc.new.3486/grpc.changes 2020-10-14 15:37:28.306326359 +0200 @@ -1,0 +2,79 @@ +Sun Oct 11 16:14:38 UTC 2020 - Atri Bhattacharya <[email protected]> + +- Specify gRPC_INSTALL_LIBDIR and gRPC_INSTALL_CMAKEDIR to + correctly configure install paths for libraries and cmake files + instead of moving them after the installation. +- Add grpc-correct-pkgconfig-path.patch to fix install path for + pkgconfig file relative to gRPC_INSTALL_LIBDIR. +- Add Requires: pkgconfig(libcares) for the -devel pkg. + +------------------------------------------------------------------- +Tue Sep 22 16:37:51 UTC 2020 - Michał Rostecki <[email protected]> + +- Add new subpackages - libupb and upb-devel. Currently, grpc + sources include also upb sources. Before this change, libupb and + upb-devel used to be included in a separate package - upb. + +------------------------------------------------------------------- +Fri Sep 18 19:53:23 UTC 2020 - Atri Bhattacharya <[email protected]> + +- Add pkgconfig(re2) to list of Requires for grpc-devel package. + +------------------------------------------------------------------- +Thu Sep 17 13:14:42 UTC 2020 - Jan Engelhardt <[email protected]> + +- Fixup 1.32.0 update with wrong grpc-devel -> + libgrpc-support-plugin1 require. + +------------------------------------------------------------------- +Sat Sep 12 22:11:30 UTC 2020 - Jan Engelhardt <[email protected]> + +- Drop now-obsolescent Conflicts. + +------------------------------------------------------------------- +Thu Sep 10 14:33:01 UTC 2020 - Atri Bhattacharya <[email protected]> + +- 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 <[email protected]> + +- Drop python modules provided by python-grpcio source package in + openSUSE:Factory. + +------------------------------------------------------------------- Old: ---- v1.25.0.tar.gz New: ---- grpc-correct-pkgconfig-path.patch grpc-find-re2-via-pkgconfig.patch v1.32.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ grpc.spec ++++++ --- /var/tmp/diff_new_pack.yD5GMI/_old 2020-10-14 15:37:29.946326932 +0200 +++ /var/tmp/diff_new_pack.yD5GMI/_new 2020-10-14 15:37:29.950326932 +0200 @@ -16,13 +16,12 @@ # -%define lver 8 +%define lver 12 %define lverp 1 +%define lverplugin 1 %define src_install_dir /usr/src/%name -%bcond_without python2 -%{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: grpc -Version: 1.25.0 +Version: 1.32.0 Release: 0 Summary: HTTP/2-based Remote Procedure Call implementation License: Apache-2.0 @@ -30,18 +29,20 @@ URL: https://grpc.io/ Source: https://github.com/grpc/grpc/archive/v%version.tar.gz Source2: %name-rpmlintrc -BuildRequires: %{python_module Cython} -BuildRequires: %{python_module devel} -BuildRequires: %{python_module setuptools} +# PATCH-FIX-UPSTREAM grpc-find-re2-via-pkgconfig.patch gh#grpc/grpc#24088 [email protected] -- Attempt to find Re2 library via pkg-config; patch taken from upstream PR +Patch0: grpc-find-re2-via-pkgconfig.patch +# PATCH-FIX-UPSTREAM grpc-correct-pkgconfig-path.patch [email protected] -- Make path for pkgconfig file installation consistent with gRPC_INSTALL_LIBDIR specification +Patch1: grpc-correct-pkgconfig-path.patch +BuildRequires: abseil-cpp-source BuildRequires: cmake BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: pkg-config -BuildRequires: python-rpm-macros BuildRequires: zypper BuildRequires: pkgconfig(libcares) BuildRequires: pkgconfig(openssl) >= 1.0.1 BuildRequires: pkgconfig(protobuf) >= 3.8.0 +BuildRequires: pkgconfig(re2) BuildRequires: pkgconfig(zlib) %description @@ -52,10 +53,6 @@ %package -n libgrpc%lver Summary: HTTP/2-based Remote Procedure Call implementation Group: System/Libraries -%if "%lver" == "7" -# prior error in packaging -Conflicts: libgrpc6 -%endif %description -n libgrpc%lver The reference implementation of the gRPC protocol, done on top of @@ -75,16 +72,55 @@ 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 -n libupb%lver +Summary: A small protobuf implementation in C +Group: System/Libraries + +%description -n libupb%lver +μpb (often written 'upb') is a small protobuf implementation written in C. + +upb generates a C API for creating, parsing, and serializing messages as +declared in .proto files. upb is heavily arena-based: all messages always live +in an arena (note: the arena can live in stack or static memory if desired). + %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 +Requires: pkgconfig(libcares) +Requires: pkgconfig(re2) %description devel This subpackage contains libraries and header files for developing applications that want to make use of the gRPC reference implementation. +%package -n upb-devel +Summary: Developmnt files for upb +Group: Development/Tools/Building +Requires: libupb%lver = %version + +%description -n upb-devel +μpb (often written 'upb') is a small protobuf implementation written in C. + +upb generates a C API for creating, parsing, and serializing messages as +declared in .proto files. upb is heavily arena-based: all messages always live +in an arena (note: the arena can live in stack or static memory if desired). + +This package provides development files for upb. + %package source Summary: Source code of gRPC Group: Development/Sources @@ -93,24 +129,10 @@ %description -n grpc-source This subpackage contains source code of the gRPC reference implementation. -%package -n python2-grpcio -Summary: Python language bindings for grpc, a HTTP/2 Remote Procedure Call implementation -Group: Development/Libraries/Python -Requires: libgrpc%lver = %version-%release - -%description -n python2-grpcio -This subpackage contains the python2 bindings. - -%package -n python3-grpcio -Summary: Python language bindings for grpc, a HTTP/2 Remote Procedure Call implementation -Group: Development/Libraries/Python -Requires: libgrpc%lver = %version-%release - -%description -n python3-grpcio -This subpackage contains the python3 bindings. - %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 @@ -119,36 +141,36 @@ export CFLAGS="%optflags -Wno-error" export CXXFLAGS="$CFLAGS" -make %{?_smp_mflags} STRIP=/bin/true V=1 VERBOSE=1 - -# build python module -export GRPC_PYTHON_BUILD_WITH_CYTHON=True -export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=True -export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=True -export GRPC_PYTHON_BUILD_SYSTEM_CARES=True -%python_build +%cmake -DgRPC_INSTALL=ON \ + -DgRPC_INSTALL_LIBDIR:PATH="%_lib" \ + -DgRPC_INSTALL_CMAKEDIR:PATH="%_libdir"/cmake/grpc \ + -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 -%python_install # 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" @@ -158,6 +180,8 @@ %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}* @@ -168,22 +192,24 @@ %_libdir/libgrpc++*.so.%{lverp}* %_libdir/libgrpcpp_channelz.so.%{lverp}* +%files -n libgrpc_plugin_support%lverplugin +%_libdir/libgrpc_plugin_support.so.%{lverplugin}* + +%files -n libupb%lver +%_libdir/libupb*.so.%{lver}* + %files devel %license LICENSE %_bindir/* %_includedir/* %_libdir/pkgconfig/*.pc %_libdir/*.so +%_libdir/cmake/grpc/ + +%files -n upb-devel +%_libdir/libupb*.so %files source %src_install_dir -%if %{with python2} -%files -n python2-grpcio -%python2_sitearch/grpc* -%endif - -%files -n python3-grpcio -%python3_sitearch/grpc* - %changelog ++++++ grpc-correct-pkgconfig-path.patch ++++++ Index: grpc-1.32.0/CMakeLists.txt =================================================================== --- grpc-1.32.0.orig/CMakeLists.txt +++ grpc-1.32.0/CMakeLists.txt @@ -15667,7 +15667,7 @@ function(generate_pkgconfig name descrip "${output_filepath}" @ONLY) install(FILES "${output_filepath}" - DESTINATION "lib/pkgconfig/") + DESTINATION "${gRPC_INSTALL_LIBDIR}/pkgconfig/") endfunction() # gpr .pc file ++++++ grpc-find-re2-via-pkgconfig.patch ++++++ >From 45e413d2520795e7281e9a592af81620349bc186 Mon Sep 17 00:00:00 2001 From: Paul Wankadia <[email protected]> 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 ) ++++++ v1.25.0.tar.gz -> v1.32.0.tar.gz ++++++ /work/SRC/openSUSE:Factory/grpc/v1.25.0.tar.gz /work/SRC/openSUSE:Factory/.grpc.new.3486/v1.32.0.tar.gz differ: char 13, line 1
