grpc/grpc.spec

146 lines
5.0 KiB
RPMSpec
Raw Normal View History

#
# spec file for package grpc
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define lname libgrpc6
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: grpc
Accepting request 610355 from home:tbechtold:branches:devel:tools - update to 1.12.0: Core: * Update protobuf submodule to 3.5.2 (#15114) * Make GrpcBuffer{Reader|Writer} Public (#14541) * Compile Out Tracers Option (#15108) * Fix bug in an address sorting comparison (#15208) * Fix: Check retry timer before starting resolving (#15156) * Fix c-ares resolution with default authority (#15073) * Fix c-ares resolver crash when DNS server unreachable (#15134) * Performance: Avoid low severity log message construction (#14945) * Peformance: Enable SIO_LOOPBACK_FAST_PATH on Windows (#14905) C#: * Add RpcException.StatusCode property (#15140) * Improvements to C# build instructions (#15178) Python: * Eliminate grpcio package dependency on protobuf package (#15034). Please pay extra attention if you are using gRPC with Protocol Buffers and your deployment scripts do not explicitly list the correct dependencies and used to rely on the transitive Python package dependency from grpcio to protobuf. * A new grpc.Channel.close method is introduced and correct use of gRPC Python now requires that channels be closed after use. No existing code should observably break when upgrading to 1.12 but code that creates channels but does not close them will not be supported in 1.13 and later. Core: * Fix: Check retry timer before starting resolving (#15156) * Fix c-ares resolution with default authority (#15073) * Fix c-ares resolver crash when DNS server unreachable (#15134) * Add core underpinnings for TLS session ticket support (#14483) * Experimental support for configurable retries (use at your own risk) (#10684) * Fail calls with wait_for_ready=false on transient resolver failure (#14733) OBS-URL: https://build.opensuse.org/request/show/610355 OBS-URL: https://build.opensuse.org/package/show/devel:tools/grpc?expand=0&rev=20
2018-05-18 15:34:36 +02:00
Version: 1.12.0
Release: 0
Summary: HTTP/2-based Remote Procedure Call implementation
License: Apache-2.0
Group: Development/Tools/Building
Url: http://grpc.io/
Source: https://github.com/grpc/grpc/archive/v%version.tar.gz
# # PATCH-FEATURE-UPSTREAM 0001-Allow-building-the-python-module-with-system-openssl.patch -- https://github.com/grpc/grpc/pull/15548
Patch0: 0001-Allow-building-the-python-module-with-system-openssl.patch
# # PATCH-FEATURE-UPSTREAM 0002-Allow-building-the-python-module-with-system-zlib.patch -- https://github.com/grpc/grpc/pull/15548
Patch1: 0002-Allow-building-the-python-module-with-system-zlib.patch
# # PATCH-FEATURE-UPSTREAM 0003-Allow-building-the-python-module-with-system-cares.patch -- https://github.com/grpc/grpc/pull/15548
Patch2: 0003-Allow-building-the-python-module-with-system-cares.patch
BuildRequires: %{python_module Cython}
BuildRequires: %{python_module devel}
BuildRequires: %{python_module setuptools}
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: pkg-config
BuildRequires: python-rpm-macros
BuildRequires: pkgconfig(libcares)
BuildRequires: pkgconfig(openssl) >= 1.0.1
BuildRequires: pkgconfig(protobuf) >= 3.5
BuildRequires: pkgconfig(zlib)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
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 %lname
Summary: HTTP/2-based Remote Procedure Call implementation
Group: System/Libraries
%description -n %lname
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 devel
Summary: Development files for grpc, a HTTP/2 Remote Procedure Call implementation
Group: Development/Tools/Building
Requires: %lname = %version
%description devel
This subpackage contains libraries and header files for developing
applications that want to make use 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: %{lname} = %{version}-%{release}
Requires: python = %{python2_version}
%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: %{lname} = %{version}-%{release}
Requires: python = %{python3_version}
%description -n python3-grpcio
This subpackage contains the python3 bindings.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
Accepting request 610355 from home:tbechtold:branches:devel:tools - update to 1.12.0: Core: * Update protobuf submodule to 3.5.2 (#15114) * Make GrpcBuffer{Reader|Writer} Public (#14541) * Compile Out Tracers Option (#15108) * Fix bug in an address sorting comparison (#15208) * Fix: Check retry timer before starting resolving (#15156) * Fix c-ares resolution with default authority (#15073) * Fix c-ares resolver crash when DNS server unreachable (#15134) * Performance: Avoid low severity log message construction (#14945) * Peformance: Enable SIO_LOOPBACK_FAST_PATH on Windows (#14905) C#: * Add RpcException.StatusCode property (#15140) * Improvements to C# build instructions (#15178) Python: * Eliminate grpcio package dependency on protobuf package (#15034). Please pay extra attention if you are using gRPC with Protocol Buffers and your deployment scripts do not explicitly list the correct dependencies and used to rely on the transitive Python package dependency from grpcio to protobuf. * A new grpc.Channel.close method is introduced and correct use of gRPC Python now requires that channels be closed after use. No existing code should observably break when upgrading to 1.12 but code that creates channels but does not close them will not be supported in 1.13 and later. Core: * Fix: Check retry timer before starting resolving (#15156) * Fix c-ares resolution with default authority (#15073) * Fix c-ares resolver crash when DNS server unreachable (#15134) * Add core underpinnings for TLS session ticket support (#14483) * Experimental support for configurable retries (use at your own risk) (#10684) * Fail calls with wait_for_ready=false on transient resolver failure (#14733) OBS-URL: https://build.opensuse.org/request/show/610355 OBS-URL: https://build.opensuse.org/package/show/devel:tools/grpc?expand=0&rev=20
2018-05-18 15:34:36 +02:00
%build
make %{?_smp_mflags} STRIP=/bin/true V=1 VERBOSE=1 CFLAGS="%optflags" CXXFLAGS="%optflags"
# 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
export CFLAGS="%{optflags}"
%python_build
%install
b="%buildroot"
%make_install prefix="$b/%_prefix" STRIP=/bin/true V=1 VERBOSE=1
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
%post -n %lname -p /sbin/ldconfig
%postun -n %lname -p /sbin/ldconfig
%files -n %lname
%defattr(-,root,root)
%_libdir/libaddress_sorting.so.*
%_libdir/libgpr*.so.*
%_libdir/libgrpc*.so.*
%files devel
%defattr(-,root,root)
%license LICENSE
%_bindir/*
%_includedir/*
%_libdir/pkgconfig/*.pc
%_libdir/*.so
%files -n python2-grpcio
%{python2_sitearch}/grpcio-%{version}-py*.egg-info
%{python2_sitearch}/grpc
%files -n python3-grpcio
%{python3_sitearch}/grpcio-%{version}-py*.egg-info
%{python3_sitearch}/grpc
%changelog