--- /dev/null
+#
+# 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.
+
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
+#
+
+
+%define lname libgrpc
+%define src_install_dir /usr/src/%{name}
+%{?!python_module:%define python_module() python-%{**} python3-%{**}}
+Name: grpc
+Version: 1.35.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
+Source1001: grpc.manifest
+Source10: support_lib64_directory.patch
+
+BuildRequires: python-cython
+BuildRequires: python-devel
+BuildRequires: python-setuptools
+# BuildRequires: python-rpm-macros
+BuildRequires: cmake
+BuildRequires: gcc-c++
+BuildRequires: pkg-config
+BuildRequires: pkgconfig(libcares)
+BuildRequires: pkgconfig(openssl1.1) >= 1.0.1
+BuildRequires: pkgconfig(protobuf) >= 3.5
+BuildRequires: pkgconfig(zlib)
+BuildRequires: pkgconfig(re2)
+BuildRequires: abseil-cpp-devel
+
+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.
+
+%prep
+%setup -q
+cp %{SOURCE1001} .
+%{__patch} -p1 < %{SOURCE10}
+
+%build
+CFLAGS+=" -Wno-error -Wno-unused-parameter"
+CXXFLAGS+=" -Wno-error -Wno-unused-parameter"
+
+
+mkdir -p cmake/build
+cd cmake/build
+cmake ../.. -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+ -DINCLUDE_INSTALL_DIR=%{_includedir} \
+ -DLIB_INSTALL_DIR=%{_libdir} \
+ -DBUILD_SHARED_LIBS=ON \
+ -DgRPC_INSTALL=ON \
+ -DgRPC_ABSL_PROVIDER=package \
+ -DgRPC_CARES_PROVIDER=package \
+ -DgRPC_RE2_PROVIDER=package \
+ -DgRPC_PROTOBUF_PROVIDER=package \
+ -DgRPC_SSL_PROVIDER=package \
+ -DgRPC_ZLIB_PROVIDER=package
+
+
+make %{?_smp_mflags}
+
+%install
+cd cmake/build
+make install DESTDIR=$RPM_BUILD_ROOT INSTALL="%{__install} -p"
+
+rm -rf %{buildroot}%{_libdir}/cmake
+rm -rf %{buildroot}%{_datadir}/grpc/roots.pem
+
+%post -n %lname -p /sbin/ldconfig
+%postun -n %lname -p /sbin/ldconfig
+
+%files -n %lname
+%defattr(-,root,root)
+%_libdir/libaddress_sorting.so.*
+%_libdir/libupb.so.*
+%_libdir/libgpr*.so.*
+%_libdir/libgrpc*.so.*
+
+%files devel
+%defattr(-,root,root)
+%license LICENSE
+%_bindir/*
+%_includedir/*
+%_libdir/pkgconfig/*.pc
+%_libdir/*.so
+
+%changelog
--- /dev/null
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6bdae220..cea37780 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -38,9 +38,9 @@ set(PACKAGE_BUGREPORT "https://github.com/grpc/grpc/issues/")
+ project(${PACKAGE_NAME} LANGUAGES C CXX)
+
+ set(gRPC_INSTALL_BINDIR "bin" CACHE STRING "Installation directory for executables")
+-set(gRPC_INSTALL_LIBDIR "lib" CACHE STRING "Installation directory for libraries")
++set(gRPC_INSTALL_LIBDIR "${LIB_INSTALL_DIR}" CACHE STRING "Installation directory for libraries")
+ set(gRPC_INSTALL_INCLUDEDIR "include" CACHE STRING "Installation directory for headers")
+-set(gRPC_INSTALL_CMAKEDIR "lib/cmake/${PACKAGE_NAME}" CACHE STRING "Installation directory for cmake config files")
++set(gRPC_INSTALL_CMAKEDIR "${LIB_INSTALL_DIR}/cmake/${PACKAGE_NAME}" CACHE STRING "Installation directory for cmake config files")
+ set(gRPC_INSTALL_SHAREDIR "share/grpc" CACHE STRING "Installation directory for root certificates")
+
+ # Options
+@@ -16319,7 +16319,7 @@ function(generate_pkgconfig name description version requires
+ "${output_filepath}"
+ @ONLY)
+ install(FILES "${output_filepath}"
+- DESTINATION "lib/pkgconfig/")
++ DESTINATION "${LIB_INSTALL_DIR}/pkgconfig/")
+ endfunction()
+
+ # gpr .pc file
+@@ -16337,7 +16337,7 @@ generate_pkgconfig(
+ "gRPC"
+ "high performance general RPC framework"
+ "${gRPC_CORE_VERSION}"
+- "gpr openssl"
++ "gpr openssl1.1"
+ "-lgrpc -laddress_sorting -lre2 -lupb -lcares -lz -labsl_raw_hash_set -labsl_hashtablez_sampler -labsl_exponential_biased -labsl_hash -labsl_city -labsl_statusor -labsl_bad_variant_access -labsl_status -labsl_cord -labsl_str_format_internal -labsl_synchronization -labsl_graphcycles_internal -labsl_symbolize -labsl_demangle_internal -labsl_stacktrace -labsl_debugging_internal -labsl_malloc_internal -labsl_time -labsl_time_zone -labsl_civil_time -labsl_strings -labsl_strings_internal -labsl_throw_delegate -labsl_int128 -labsl_base -labsl_spinlock_wait -labsl_bad_optional_access -labsl_raw_logging_internal -labsl_log_severity"
+ ""
+ "grpc.pc")