# template: default %global gem_name grpc %global gem_require_name %{gem_name} %global debug_package %{nil} Name: rubygem-%{gem_name} Version: 1.58.0 Release: 3%{?dist} Summary: GRPC system in Ruby License: Apache-2.0 URL: https://github.com/google/grpc/tree/master/src/ruby Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem # Backport from upstream c637a9f (grpc 1.62.0): fix clang 16 / GCC 14 # incompatible-pointer-types in rb_channel.c and rb_event_thread.c Patch0: grpc-clang16-compat.patch # Backport from upstream f55bf22 (grpc 1.68.0): fix incompatible pointer type # of grpc_compression_algorithm_name() in rb_compression_options.c Patch1: grpc-compression-const.patch # Backport from upstream 34be0d8 (grpc 1.62.0): remove -Wl,-wrap,memcpy # (undefined symbol on EL10) Patch2: grpc-remove-wrap-memcpy.patch # start specfile generated dependencies Requires: ruby >= 2.5.0 BuildRequires: ruby-devel >= 2.5.0 BuildRequires: rubygems-devel BuildRequires: rubygem(google-protobuf) >= 3.23 BuildRequires: rubygem(google-protobuf) < 4 BuildRequires: rubygem(googleapis-common-protos-types) >= 1.0 BuildRequires: rubygem(googleapis-common-protos-types) < 2 # Compiler is required for build of gem binary extension. # https://fedoraproject.org/wiki/Packaging:C_and_C++#BuildRequires_and_Requires BuildRequires: gcc # end specfile generated dependencies BuildRequires: gcc-c++ BuildRequires: libstdc++-static %description Send RPCs from Ruby using GRPC. %package doc Summary: Documentation for %{name} Requires: %{name} = %{version}-%{release} BuildArch: noarch %description doc Documentation for %{name}. %prep %autosetup -p1 -n %{gem_name}-%{version} %build export CXXFLAGS="${CXXFLAGS} -Wno-register" # Create the gem as gem install only works on a gem file gem build ../%{gem_name}-%{version}.gemspec # %%gem_install compiles any C extensions and installs the gem into ./%%gem_dir # by default, so that we can move it into the buildroot in %%install %gem_install %install mkdir -p %{buildroot}%{gem_dir} cp -a .%{gem_dir}/* \ %{buildroot}%{gem_dir}/ mkdir -p %{buildroot}%{gem_extdir_mri}/%{gem_name} cp -a .%{gem_extdir_mri}/gem.build_complete %{buildroot}%{gem_extdir_mri}/ cp -a .%{gem_extdir_mri}/%{gem_name}/*.so %{buildroot}%{gem_extdir_mri}/%{gem_name} %check # Ideally, this would be something like this: # GEM_PATH="%{buildroot}%{gem_dir}:$GEM_PATH" ruby -e "require '%{gem_require_name}'" # But that fails to find native extensions on EL8, so we fake the structure that ruby expects mkdir gem_ext_test cp -a %{buildroot}%{gem_dir} gem_ext_test/ mkdir -p gem_ext_test/gems/extensions/%{_arch}-%{_target_os}/$(ruby -r rbconfig -e 'print RbConfig::CONFIG["ruby_version"]')/ cp -a %{buildroot}%{gem_extdir_mri} gem_ext_test/gems/extensions/%{_arch}-%{_target_os}/$(ruby -r rbconfig -e 'print RbConfig::CONFIG["ruby_version"]')/ GEM_PATH="./gem_ext_test/gems:$GEM_PATH" ruby -e "require '%{gem_require_name}'" rm -rf gem_ext_test %files %dir %{gem_instdir} %{gem_extdir_mri} %{gem_instdir}/src %exclude %{gem_cache} %{gem_spec} %exclude %{gem_instdir}/.yardopts %exclude %{gem_instdir}/include %exclude %{gem_instdir}/third_party %exclude %{gem_instdir}/Makefile %exclude %{gem_instdir}/etc %files doc %doc %{gem_docdir} %changelog * Wed Jul 29 2026 Zach Huntington-Meath - 1.58.0-3 - Rebuild for EL10 - Add -Wno-register for GCC 14 on EL10 (vendored abseil-cpp C++17 compat) - Backport upstream c637a9f: fix incompatible-pointer-types (clang 16 / GCC 14) - Backport upstream f55bf22: fix incompatible pointer type of grpc_compression_algorithm_name (GCC 14) - Backport upstream 34be0d8: remove -Wl,-wrap,memcpy (undefined symbol on EL10) * Tue Jan 16 2024 Evgeni Golov - 1.58.0-2 - Explicitly BuildRequire gcc-c++ * Thu Sep 21 2023 Eric D. Helms 1.58.0-1 - Update to 1.58.0 * Fri Sep 30 2022 Eric D. Helms 1.49.1-1 - Add rubygem-grpc generated by gem2rpm using the default template