grpc/grpc.spec

160 lines
5.3 KiB
RPMSpec
Raw Normal View History

#
# spec file for package grpc
#
# Copyright (c) 2019 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.
Accepting request 648212 from home:tbechtold:branches:devel:tools - update to 1.15.1: Core * Document SSL portability and performance considerations. See https://github.com/grpc/grpc/blob/master/doc/ssl-performance.md . * Simplify call arena size growth. (#16396) * Make gRPC buildable with AIX and Solaris (no official support). (#15926) * PF: Check connectivity state before watching. (#16306) * Added system roots feature to load roots from OS trust store. (#16083) * Fix c-ares compilation under windows (but doesn't yet enable windows DNS queries), and then enables address sorting on Windows. (#16163) * Fix re-resolution in pick first. (#16076) * Allow error strings in final_info to propagate to filters on call destruction. (#16104) * Add resolver executor . (#16010) * Data race fix for lockfree_event. (#16053) * Channelz: Expose new Core API. (#16022) C++ * cmake: disable assembly optimizations only when necessary. (#16415) * C++ sync server: Return status RESOURCE_EXHAUSTED if no thread quota available. (#16356) * Use correct target name for gflags-config.cmake. (#16343) * Make should generate pkg-config file for gpr as well. (#15295) * Restrict the number of threads in C++ sync server. (#16217) * Allow reset of connection backoff. (#16225) C# * Add experimental support for Xamarin.Android and Xamarin.iOS, added Helloworld example for Xamarin. See https://github.com/grpc/grpc/tree/master/src/csharp/experimental. * Add experimental support for Unity Android and iOS. See https://github.com/grpc/grpc/tree/master/src/csharp/experimental. OBS-URL: https://build.opensuse.org/request/show/648212 OBS-URL: https://build.opensuse.org/package/show/devel:tools/grpc?expand=0&rev=31
2018-11-11 18:43:52 +01:00
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define lname libgrpc6
%define src_install_dir /usr/src/%{name}
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: grpc
Version: 1.16
Release: 0
%define rver 1.16.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%rver.tar.gz
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 source
Summary: Source code of gRPC
Group: Development/sources
BuildArch: noarch
%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: %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 -qn grpc-%rver
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 -Wno-error" CXXFLAGS="%optflags -Wno-error"
# 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
# Install sources
mkdir -p %{buildroot}%{src_install_dir}
tar -xzf %{SOURCE0} --strip-components=1 -C %{buildroot}%{src_install_dir}
# Fix env-script-interpreter rpmlint error
find %{buildroot}%{src_install_dir} -type f -exec sed -i 's|#!/usr/bin/env bash|#!/bin/bash|' "{}" +
find %{buildroot}%{src_install_dir} -type f -exec sed -i 's|#!/usr/bin/env ruby|#!/usr/bin/ruby|' "{}" +
find %{buildroot}%{src_install_dir} -type f \( -name "*.bzl" -o -name "*.py" \) -exec sed -i 's|#!/usr/bin/env python2.7|#!/usr/bin/python2.7|' "{}" +
find %{buildroot}%{src_install_dir} -type f \( -name "*.bzl" -o -name "*.py" \) -exec sed -i 's|#!/usr/bin/env python|#!/usr/bin/python|' "{}" +
%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 source
%{src_install_dir}
%files -n python2-grpcio
%python2_sitearch/grpcio-%rver-py*.egg-info
%python2_sitearch/grpc
%files -n python3-grpcio
%python3_sitearch/grpcio-%rver-py*.egg-info
%python3_sitearch/grpc
%changelog