%global debug_package %{nil} %global build_ldflags %{nil} %define _build_id_links none %global goipath forgejo.org Name: forgejo Version: 13.0.3 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-npm BuildRequires: sqlite-devel BuildRequires: systemd-rpm-macros Requires: git-core Requires: git-lfs Requires: sed %{?sysusers_requires_compat} %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}. %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 EXTRA_GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw" 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 %{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 -m750 -d \ %{buildroot}%{_sharedstatedir}/%{name} \ %{buildroot}%{_sharedstatedir}/%{name}/data \ %{buildroot}%{_sharedstatedir}/%{name}/log install -m640 -D %{S:4} %{buildroot}%{_sysconfdir}/sysconfig/%{name} install -m644 -p -D %{name}.complete %{buildroot}%{_datadir}/bash-completion/completions/%{name} %pre %sysusers_create_compat %{S:2} %post %systemd_post %{name}.service %preun %systemd_preun %{name}.service %postun %systemd_postun_with_restart %{name}.service %files %{_bindir}/%{name} %attr(0640,-,%{name}) %ghost %config(noreplace,missingok) %{_sysconfdir}/%{name}/app.ini %config(noreplace,missingok) %{_sysconfdir}/sysconfig/%{name} %{_unitdir}/%{name}.service %{_sysusersdir}/%{name}.conf %{_tmpfilesdir}/%{name}.conf %attr(0750,%{name},%{name}) %dir %{_sharedstatedir}/%{name} %attr(0750,%{name},%{name}) %dir %{_sharedstatedir}/%{name}/data %attr(0750,%{name},%{name}) %dir %{_sharedstatedir}/%{name}/log %files bash-completion %{_datadir}/bash-completion/completions/%{name} %changelog %autochangelog