File protoc-gen-go-grpc.spec of Package protoc-gen-go-grpc
#
# spec file for package protoc-gen-go-grpc
#
# copyright (c) 2025 munix9@googlemail.com
#
%define pkg_org protoc-gen-go-grpc
%define flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == ""
%define pkg_nam %{pkg_org}
%define pkg_ver 1.5.1
%else
%define pkg_nam %{pkg_org}-%(echo "%{flavor}" | cut -d. -f1-2 | tr . _)
%define pkg_ver %{flavor}
%endif
%define pkg_bin %{pkg_org}-%{pkg_ver}
%define pkg_pri %(echo "%{pkg_ver}" | sed 's/[^0-9]*//g')
Name: %{pkg_nam}
Version: %{pkg_ver}
Release: 0
Summary: The Go language implementation of gRPC
License: Apache-2.0
URL: https://github.com/grpc/grpc-go
# https://github.com/grpc/grpc-go/releases?q=%22protoc-gen-go-grpc%22
Source0: %{url}/archive/cmd/%{pkg_org}/v%{version}/%{pkg_org}-%{version}.tar.gz
Source1: vendor-%{version}.tar.gz
BuildRequires: golang-packaging
Requires(post): update-alternatives
Requires(postun): update-alternatives
%if "%{flavor}" != ""
Provides: %{pkg_org} = %{version}
%endif
%description
The Go implementation of gRPC: A high performance, open source,
general RPC framework that puts mobile and HTTP/2 first.
%prep
%autosetup -n grpc-go-cmd-%{pkg_org}-v%{version} -a1 -p1
mv vendor cmd/%{pkg_org}
%build
pushd cmd/%{pkg_org}
go build -v -mod=readonly -mod=vendor -buildmode=pie -trimpath -ldflags=-buildid=
popd
%install
install -D -m 0755 cmd/%{pkg_org}/%{pkg_org} %{buildroot}%{_bindir}/%{pkg_bin}
install -d -m 0755 %{buildroot}%{_sysconfdir}/alternatives
touch %{buildroot}%{_sysconfdir}/alternatives/%{pkg_org}
ln -sf %{_sysconfdir}/alternatives/%{pkg_org} %{buildroot}%{_bindir}/%{pkg_org}
%check
export PATH=%{buildroot}%{_bindir}:$PATH
%{pkg_bin} -version
%post
%{_sbindir}/update-alternatives --install \
%{_bindir}/%{pkg_org} %{pkg_org} %{_bindir}/%{pkg_bin} %{pkg_pri}
%postun
if [ ! -f %{_bindir}/%{pkg_bin} ] ; then
%{_sbindir}/update-alternatives --remove %{pkg_org} %{_bindir}/%{pkg_bin}
fi
%files
%license LICENSE
%doc cmd/%{pkg_org}/README.md
%{_bindir}/%{pkg_bin}
%{_bindir}/%{pkg_org}
%ghost %{_sysconfdir}/alternatives/%{pkg_org}
%changelog