%global debug_package %{nil} %global build_ldflags %{nil} %define _build_id_links none %define service_user runner %define service_group runner Name: forgejo-runner Version: 13.1.0 Release: 1 Summary: Daemon that connects to a Forgejo instance and runs CI jobs License: GPL-3.0-or-later URL: https://code.forgejo.org/forgejo/runner Source0: %{url}/archive/v%{version}.tar.gz Source1: %{name}.service Source2: %{name}.sysusers BuildRequires: golang-bin >= 1.24 BuildRequires: golang-src >= 1.24 BuildRequires: perl BuildRequires: pkgconfig(bash-completion) BuildRequires: fish %description A daemon that connects to a Forgejo instance and runs jobs for continuous integration. %package -n %{name}-bash-completion Summary: Bash Completion for %{name} Requires: %{name} = %{version} Requires: bash-completion Supplements: (%{name} and bash-completion) BuildArch: noarch %description -n %{name}-bash-completion Bash command line completion support for %{name}. %package -n %{name}-fish-completion Summary: Fish Completion for %{name} Requires: %{name} = %{version} Supplements: (%{name} and fish) BuildArch: noarch %description -n %{name}-fish-completion Fish command line completion support for %{name}. %package -n %{name}-systemd Summary: Systemd integration for %{name} Requires: %{name} = %{version} Requires: systemd BuildRequires: systemd-rpm-macros %{?sysusers_requires_compat} %description -n %{name}-systemd Systemd service unit and system user configuration for %{name}. %prep %setup -q -n runner %build go build \ -buildmode=pie \ -ldflags="-X runner.forgejo.org/internal/pkg/ver.version=v%{version}" \ -o bin/%{name} bin/%{name} generate-config > config.yaml perl -p -i -e 's|file: \.runner|file: /etc/forgejo-runner/runners|g' config.yaml %install install -D -m 0755 bin/%{name} %{buildroot}%{_bindir}/%{name} install -D -m 0750 -d %{buildroot}%{_sysconfdir}/%{name} install -m 0640 config.yaml %{buildroot}%{_sysconfdir}/%{name}/config.yaml install -m 0640 /dev/null %{buildroot}%{_sysconfdir}/%{name}/runners install -D -m 0750 -d %{buildroot}%{_localstatedir}/lib/%{name} # Bash completion mkdir -p %{buildroot}%{_datadir}/bash-completion/completions/ %{buildroot}%{_bindir}/%{name} completion bash \ > %{buildroot}%{_datadir}/bash-completion/completions/%{name} # Fish completion mkdir -p %{buildroot}%{_datadir}/fish/vendor_completions.d/ %{buildroot}%{_bindir}/%{name} completion fish \ > %{buildroot}%{_datadir}/fish/vendor_completions.d/%{name}.fish # Systemd integration install -D -m 0644 %{S:1} {buildroot}%{_unitdir}/%{name}.service install -D -m 0644 %{S:2} {buildroot}%{_sysusersdir}/%{name}.conf %pre -n %{name}-systemd %sysusers_create_compat %{S:2} %post -n %{name}-systemd %systemd_post %{name}.service %preun -n %{name}-systemd %systemd_preun %{name}.service %postun -n %{name}-systemd %systemd_postun_with_restart %{name}.service %files %{_bindir}/%{name} %dir %{_sysconfdir}/%{name} %config(noreplace,missingok) %{_sysconfdir}/%{name}/config.yaml %{_sysconfdir}/%{name}/runners %dir %{_localstatedir}/lib/%{name} %files -n %{name}-bash-completion %{_datadir}/bash-completion/completions/%{name} %files -n %{name}-fish-completion %{_datadir}/fish/vendor_completions.d/%{name}.fish %files -n %{name}-systemd %{_unitdir}/%{name}.service %{_sysusersdir}/%{name}.conf %attr(0750,%{service_user},%{service_group}) %dir %{_sysconfdir}/%{name} %attr(0640,%{service_user},%{service_group}) %config(noreplace,missingok) %{_sysconfdir}/%{name}/config.yaml %attr(0640,%{service_user},%{service_group}) %{_sysconfdir}/%{name}/runners %attr(0750,%{service_user},%{service_group}) %dir %{_localstatedir}/lib/%{name} %changelog %autochangelog