## START: Set by rpmautospec ## (rpmautospec version 0.8.4) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 4; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec # Generated by go2rpm 1.19.0 %bcond check 1 %global dockerd dockerd %global rootless rootless %global shim docker-group-shim %global rootless_dockerd %{dockerd}-%{rootless} %global rootless_dockerd_service %{dockerd}-%{rootless}-user.service %global debug_package %{nil} %global golicenses LICENSE %global godocs examples README.md %global goipath gitea.com/gitea/runner %global common_description %{expand: Official runner for Gitea. } %global major 1 %global minor 0 %global revision 0 %global tag v%{version} Version: %{major}.%{minor}.%{revision} %gometa -L -f Name: gitea-runner Release: %autorelease Summary: A runner for Gitea %global rootless_user %{name}-%{rootless} %global runner_service %{name}.service %global rootless_runner_service %{rootless_user}.service %global obsolete_user act-runner %global obsolete_name gitea-%{obsolete_user} %global obsolete_user_rootless %{obsolete_user}-%{rootless} # Generated by go-vendor-tools License: Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0 URL: %{gourl} Source0: %{gosource} Source1: %{runner_service} Source2: %{rootless_runner_service} Source3: %{rootless_dockerd_service} Source4: README-%{dockerd}.md Source5: README-%{rootless}-%{dockerd}.md Source6: register-rootless.sh Source7: %{name}-sysusers.conf Source8: register.sh Source9: %{name}-sysusers-%{dockerd}.conf # Generated by go-vendor-tools Source10: %{archivename}-vendor.tar.bz2 Source11: go-vendor-tools.toml BuildRequires: go >= 1.26 git-core sed systemd-rpm-macros go-rpm-macros go-vendor-tools Obsoletes: %{obsolete_name} < 1.0.0 Provides: %{obsolete_name} = %{version} %description %{common_description} # ############################################################# # ############################################################# # gitea-runner with dockerd package %package %{dockerd} Summary: Enable running gitea actions in docker containers Requires: %{name} Requires: ( moby-engine or docker-ce ) Requires(pre): glibc-common shadow-utils Conflicts: %{name}-%{rootless_dockerd} %{obsolete_name}-%{rootless_dockerd} Obsoletes: %{obsolete_name}-%{dockerd} < 1.0.0 Provides: %{obsolete_name}-%{dockerd} = %{version} %{?systemd_requires} %{?systemd_ordering} %description %{dockerd} %{common_description} Run gitea actions in docker containers %pre %{dockerd} # Check if we are replacing the %{obsolete_name} package if [ $1 -eq 1 ]; then getent group %{obsolete_user} >/dev/null || groupmod -n %{name} %{obsolete_user} || : getent passwd %{obsolete_user} >/dev/null || usermod -l %{name} -m -d %{_sharedstatedir}/%{name} %{obsolete_user} || : fi %sysusers_create_package %{name} %{S:7} %sysusers_create_package %{name} %{S:9} %post %{dockerd} %systemd_post %{runner_service} if [ $1 -eq 1 ] || [ ! -d %{_sharedstatedir}/%{name}/runner ]; then echo ' INFO Please read README-%{dockerd}.md to finish the installation' fi %preun %{dockerd} %systemd_preun %{runner_service} %postun %{dockerd} %systemd_postun %{runner_service} %systemd_postun_with_restart %{runner_service} # ############################################################# # ############################################################# # docker-ce docker group dependency provider shim package %package %{shim} Summary: Provide the group(docker) requirement when using non-rootless docker-ce Provides: group(docker) Requires: docker-ce %description %{shim} The %{name}-%{dockerd} package uses sysusers.d to manage users and group memberships. The user needs to be a member of the docker groupm that is created by docker-ce or moby-engine. Moby engine provides a group(docker), but docker-ce doesn't, so this shim provides that requirement to enable using the Gitea runner with the non-rootless docker-ce. # ############################################################# # gitea-runner with rootless dockerd package %package %{rootless_dockerd} Summary: Enable running gitea actions in non-root docker containers Requires: %{name} iptables sed coreutils Requires: ( moby-engine-rootless-extras or docker-ce-rootless-extras ) Requires(pre): glibc-common shadow-utils Conflicts: %{name}-%{dockerd} %{obsolete_name}-%{dockerd} Obsoletes: %{obsolete_name}-%{rootless_dockerd} < 1.0.0 Provides: %{obsolete_name}-%{rootless_dockerd} = %{version} %{?systemd_requires} %{?systemd_ordering} %description %{rootless_dockerd} %{common_description} Run gitea actions in non-root docker containers %pre %{rootless_dockerd} # sysusers.d doesn't handle either home directory creation or subuid/subgid configuration if [ $1 -eq 1 ]; then # Modify the existing user and group if we are upgrade obsoleting the package with the old naming if getent passwd %{obsolete_user_rootless} >/dev/null; then loginctl disable-linger %{obsolete_user_rootless} & systemctl --user -M %{obsolete_user_rootless}@ disable --now --no-warn %{rootless_dockerd_service} %{obsolete_name}-%{rootless}.service & loginctl terminate-user %{obsolete_user_rootless} & wait getent group %{obsolete_user_rootless} >/dev/null && groupmod -n %{rootless_user} %{obsolete_user_rootless} || : getent passwd %{obsolete_user_rootless} >/dev/null && usermod -l %{rootless_user} -m -d /home/%{rootless_user} %{obsolete_user_rootless} || : %{__mv} /home/%{rootless_user}/act_runner /home/%{rootless_user}/runner >/dev/null fi getent group '%{rootless_user}' >/dev/null || groupadd -r '%{rootless_user}' || : getent passwd '%{rootless_user}' >/dev/null || \ CREATE_MAIL_SPOOL=false useradd -r -m -F -g '%{rootless_user}' -s '/sbin/nologin' -c 'Rootless Gitea runner docker user' '%{rootless_user}' || : fi %post %{rootless_dockerd} %systemd_user_post %{rootless_runner_service} %{rootless_dockerd_service} loginctl enable-linger %{rootless_user} %preun %{rootless_dockerd} if [ $1 -eq 0 ]; then loginctl disable-linger %{rootless_user} fi %systemd_user_preun %{rootless_dockerd_service} %{rootless_runner_service} %postun %{rootless_dockerd} %systemd_user_postun %{rootless_dockerd_service} %{rootless_runner_service} %systemd_user_postun_with_restart %{rootless_dockerd_service} %{rootless_runner_service} # ############################################################# %prep %goprep -p1 -A %{__tar} -xf %{S:10} %generate_buildrequires %go_vendor_license_buildrequires -c %{S:11} %{__cp} %{S:4} %{S:5} . %build %global gomodulesmode GO111MODULE=on %gobuild -o %{gobuilddir}/bin/%{name} %{goipath} %check %go_vendor_license_check -c %{S:11} %install %go_vendor_license_install -c %{S:11} # The binary install -m 0755 -d %{buildroot}%{_bindir} install -m 0755 -p %{gobuilddir}/bin/%{name} %{buildroot}%{_bindir}/ # dockerd install -m 0755 -d %{buildroot}%{_unitdir} install -m 0755 -d %{buildroot}%{_sysconfdir}/%{name} install -m 0700 -d %{buildroot}%{_sharedstatedir}/%{name} install -D -m 0644 -p %{S:1} %{buildroot}%{_unitdir}/%{runner_service} install -D -m 0644 %{S:7} %{buildroot}%{_sysusersdir}/%{name}.conf install -D -m 0644 %{S:9} %{buildroot}%{_sysusersdir}/%{name}-%{dockerd}.conf bin/%{name} generate-config | \ sed -e '/^ A_TEST_ENV/d' -e '/^ - "ubuntu-/d' -e 's:file\: .runner:file\: %{_sharedstatedir}/%{name}/.runner:' -e 's/level: info/level: debug/' \ > %{buildroot}%{_sysconfdir}/%{name}/config.yaml install -D -m 0755 -p %{S:8} %{buildroot}%{_datadir}/%{name}/register.sh # dockerd-rootless install -m 0755 -d %{buildroot}%{_userunitdir} install -m 0755 -d %{buildroot}%{_datadir}/%{name} install -D -m 0644 -p %{S:2} %{buildroot}%{_userunitdir}/%{rootless_runner_service} install -D -m 0644 -p %{S:3} %{buildroot}%{_userunitdir}/%{rootless_dockerd_service} install -D -m 0755 -p %{S:6} %{buildroot}%{_datadir}/%{name}/register-rootless.sh %files -f %{go_vendor_license_filelist} %doc examples README.md %{_bindir}/%{name} %dir %{_datadir}/%{name} %files %{dockerd} %license LICENSE %doc README-%{dockerd}.md %dir %{_sysconfdir}/%{name} %config(noreplace) %{_sysconfdir}/%{name}/config.yaml %attr(0700, %{name}, %{name}) %dir %{_sharedstatedir}/%{name} %ghost %config(noreplace) %{_sharedstatedir}/%{name}/.runner %{_unitdir}/%{runner_service} %{_sysusersdir}/%{name}.conf %{_sysusersdir}/%{name}-%{dockerd}.conf %{_datadir}/%{name}/register.sh %files %{rootless_dockerd} %license LICENSE %doc README-%{rootless}-%{dockerd}.md %{_userunitdir}/%{rootless_runner_service} %{_userunitdir}/%{rootless_dockerd_service} %{_datadir}/%{name}/register-rootless.sh %files %{shim} %changelog ## START: Generated by rpmautospec * Tue Jun 02 2026 Daniel Demus - 1.0.0-4 - Implement go-vendor-tools * Sat May 30 2026 Daniel Demus - 1.0.0-3 - Missed act-runner -> gitea-runner renames * Fri May 29 2026 Daniel Demus - 1.0.0-2 - Missed act_runner -> gitea-runner renames * Thu May 28 2026 Daniel Demus - 1.0.0-1 - Release 1.0.0 (#9) * Thu Jan 02 2025 Daniel Demus - ## END: Generated by rpmautospec