%global debug_package %{nil} %global build_ldflags %{nil} %define _build_id_links none %global goipath forgejo.org Name: forgejo Version: 16.0.4 Release: %autorelease Summary: A lightweight software forge License: GPL-3.0-or-later URL: https://codeberg.org/forgejo/forgejo Source0: %{URL}/releases/download/v%{version}/%{name}-src-%{version}.tar.gz Source1: forgejo.service Source2: forgejo.sysusers Source3: forgejo.tmpfiles Source4: forgejo.sysconfig BuildRequires: coreutils BuildRequires: go-rpm-macros BuildRequires: golang-bin >= 1.24 BuildRequires: golang-src >= 1.24 BuildRequires: make BuildRequires: nodejs BuildRequires: sqlite-devel Requires: git-core Requires: git-lfs Requires: sed %description Forgejo is a lightweight software forge. Use it to host git repositories, track their issues and allow people to contribute to them! %package bash-completion Summary: Bash completion files for %{name} Requires: bash Requires: %{name} = %{version}-%{release} BuildArch: noarch %description bash-completion Bash command-line completion support for %{name}. %package systemd Summary: Systemd integration for %{name} Requires: %{name} = %{version}-%{release} Requires: systemd BuildRequires: systemd-rpm-macros %{?sysusers_requires_compat} %description systemd Systemd integration for %{name}, including the service unit, system user, tmpfiles configuration and sysconfig configuration. %prep %setup -q -n forgejo-src-%{version} %build %global gomodulesmode GO111MODULE=on %global gotags bindata timetzdata sqlite sqlite_unlock_notify %global gobuildflags %{?gobuildflags} -tags '%gotags' make %{?_smp_mflags} TAGS="%gotags" generate-go export GO_LDFLAGS=" \ -X \"forgejo.org/modules/setting.CustomPath=%{_sysconfdir}/%{name}\" \ -X \"forgejo.org/modules/setting.CustomConf=%{_sysconfdir}/%{name}/conf/app.ini\" \ -X \"forgejo.org/modules/setting.AppWorkPath=%{_sharedstatedir}/%{name}\" \ -X \"main.Tags=%{gotags}\" \ -X \"main.ReleaseVersion=%{version}-%{release}\" \ -X \"main.Version=%{version}-%{release}\" \ " %gobuild -o forgejo %{goipath} sed -e 's/gitea/%{name}/g' \ < contrib/autocompletion/bash_autocomplete \ > %{name}.complete touch -r contrib/autocompletion/bash_autocomplete %{name}.complete %install install -m755 -D %{name} %{buildroot}%{_bindir}/%{name} install -m644 -p -D %{name}.complete \ %{buildroot}%{_datadir}/bash-completion/completions/%{name} # Systemd integration install -m644 -p -D %{S:1} \ %{buildroot}%{_unitdir}/%{name}.service install -m644 -p -D %{S:2} \ %{buildroot}%{_sysusersdir}/%{name}.conf install -m644 -p -D %{S:3} \ %{buildroot}%{_tmpfilesdir}/%{name}.conf install -m640 -D %{S:4} \ %{buildroot}%{_sysconfdir}/sysconfig/%{name} %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} %files bash-completion %{_datadir}/bash-completion/completions/%{name} %files systemd %{_unitdir}/%{name}.service %{_sysusersdir}/%{name}.conf %{_tmpfilesdir}/%{name}.conf %config(noreplace,missingok) %{_sysconfdir}/sysconfig/%{name} %attr(0640,-,%{name}) %ghost %config(noreplace,missingok) {_sysconfdir}/%{name}/app.ini %changelog %autochangelog