Update best practices

This commit is contained in:
2026-05-10 22:54:29 -05:00
parent 842e22cca6
commit de923e571d
2 changed files with 40 additions and 41 deletions
+39 -41
View File
@@ -1,49 +1,43 @@
ExclusiveArch: %{go_arches} ExclusiveArch: %{go_arches}
%if 0%{?el9} %if 0%{?el8} || 0%{?el9} || 0%{?el10} || 0%{?fc42} || 0%{?fc43} || 0%{?fc44}
%global debug_package %{nil}
%endif
%if 0%{?el10}
%global debug_package %{nil}
%endif
%if 0%{?fc42}
%global debug_package %{nil}
%endif
%if 0%{?fc43}
%global debug_package %{nil}
%endif
%if 0%{?fc44}
%global debug_package %{nil} %global debug_package %{nil}
%endif %endif
Name: forgejo Name: forgejo
Version: 15.0.1 Version: 15.0.1
Release: 1%{?dist} Release: 2%{?dist}
Summary: Beyond coding. We forge. Summary: Beyond coding. We forge.
License: GPL-3.0-or-later License: GPL-3.0-or-later
URL: https://forgejo.org/ URL: https://forgejo.org/
Source0: https://codeberg.org/%{name}/%{name}/releases/download/v%{version}/%{name}-src-%{version}.tar.gz Source0: https://codeberg.org/%{name}/%{name}/releases/download/v%{version}/%{name}-src-%{version}.tar.gz
Source1: forgejo.sysusers
BuildRequires: git BuildRequires: git
BuildRequires: make
BuildRequires: golang >= 1.26.2 BuildRequires: golang >= 1.26.2
BuildRequires: pam-devel BuildRequires: pam-devel
Requires(pre): /usr/bin/getent BuildRequires: systemd-rpm-macros
Requires(pre): /usr/sbin/useradd %{?sysusers_requires_compat}
Requires: git Requires: git
%description %description
Forgejo is a self-hosted lightweight software forge. Easy to install and
low maintenance, it just does the job.
%prep %prep
%setup -q -n %{name}-src-%{version} %setup -q -n %{name}-src-%{version}
cp %{SOURCE1} .
%build %build
sed -i -e 's/-s -w //g' Makefile sed -i -e 's/-s -w //g' Makefile
LDFLAGS="" LDFLAGS=""
export LDFLAGS export LDFLAGS
%set_build_flags
make \ make \
make %{?_smp_mflags} \
TAGS="bindata timetzdata pam sqlite sqlite_unlock_notify" \ TAGS="bindata timetzdata pam sqlite sqlite_unlock_notify" \
FORGEJO_VERSION="%{version}-%{release}" \ FORGEJO_VERSION="%{version}-%{release}" \
build build
@@ -52,35 +46,36 @@ make \
sed -i \ sed -i \
-e 's|^User=.*$|User=forgejo|g' \ -e 's|^User=.*$|User=forgejo|g' \
-e 's|^Group=.*$|Group=forgejo|g' \ -e 's|^Group=.*$|Group=forgejo|g' \
-e 's|^WorkingDirectory=.*$|WorkingDirectory=/var/lib/forgejo|g' \ -e 's|^WorkingDirectory=.*$|WorkingDirectory=%{_sharedstatedir}/forgejo|g' \
-e 's|^ExecStart=.*$|ExecStart=%{_bindir}/forgejo web /etc/forgejo/app.ini|g' \ -e 's|^ExecStart=.*$|ExecStart=%{_bindir}/forgejo web --config %{_sysconfdir}/forgejo/app.ini|g' \
-e 's|^Environment=.*$|Environment=USER=forgejo HOME=/var/lib/forgejo FORGEJO_WORK_DIR=/var/lib/forgejo|g' \ -e 's|^Environment=.*$|Environment=USER=forgejo HOME=%{_sharedstatedir}/forgejo FORGEJO_WORK_DIR=%{_sharedstatedir}/forgejo|g' \
contrib/systemd/forgejo.service contrib/systemd/forgejo.service
%install %install
rm -rf %{buildroot} install -d %{buildroot}%{_bindir}
%{__install} -d %{buildroot}%{_bindir} install -d %{buildroot}%{_sysconfdir}/forgejo
%{__install} -d %{buildroot}%{_sysconfdir}/forgejo install -d %{buildroot}%{_unitdir}
%{__install} -d %{buildroot}/usr/lib/systemd/system install -d %{buildroot}%{_sysusersdir}
%{__install} -d %{buildroot}/var/lib/forgejo install -d %{buildroot}%{_sharedstatedir}/forgejo
%{__install} -d %{buildroot}/var/log/forgejo install -d %{buildroot}%{_localstatedir}/log/forgejo
%{__install} -p -m 0755 gitea %{buildroot}%{_bindir}/%{name} install -p -m 0755 gitea %{buildroot}%{_bindir}/%{name}
%{__install} -p -m 0644 contrib/systemd/forgejo.service %{buildroot}/usr/lib/systemd/system/forgejo.service install -p -m 0644 contrib/systemd/forgejo.service %{buildroot}%{_unitdir}/forgejo.service
install -p -m 0644 forgejo.sysusers %{buildroot}%{_sysusersdir}/forgejo.conf
%pre %pre
getent passwd forgejo > /dev/null 2>&1 || useradd -r -d /var/lib/forgejo -s /bin/bash forgejo %sysusers_create_compat forgejo.sysusers
%post %post
if [ -x /usr/bin/systemctl ] %systemd_post forgejo.service
then
systemctl condrestart forgejo %preun
elif [ -x /usr/sbin/service ] %systemd_preun forgejo.service
then
service forgejo condrestart %postun
fi %systemd_postun_with_restart forgejo.service
%files %files
@@ -90,14 +85,18 @@ fi
%doc DCO %doc DCO
%doc README.md %doc README.md
%doc RELEASE-NOTES.md %doc RELEASE-NOTES.md
%attr(0700, forgejo, forgejo) %dir /var/lib/forgejo %attr(0700, forgejo, forgejo) %dir %{_sharedstatedir}/forgejo
%attr(0700, forgejo, forgejo) %dir /var/log/forgejo %attr(0700, forgejo, forgejo) %dir %{_localstatedir}/log/forgejo
%{_bindir}/%{name} %{_bindir}/%{name}
%attr(0644, root, root) /usr/lib/systemd/system/forgejo.service %{_unitdir}/forgejo.service
%attr(-, forgejo, forgejo) %config(noreplace) %{_sysconfdir}/forgejo %{_sysusersdir}/forgejo.conf
%attr(0770, root, forgejo) %dir %{_sysconfdir}/forgejo
%changelog %changelog
* Sun May 10 2026 Jason Rothstein
- Implement systemd macros and sysusers.d best practices
* Thu Apr 30 2026 Jason Rothstein * Thu Apr 30 2026 Jason Rothstein
- 15.0.1 - 15.0.1
- Add Fedora 44 - Add Fedora 44
@@ -106,4 +105,3 @@ fi
* Sat Apr 25 2026 Jason Rothstein * Sat Apr 25 2026 Jason Rothstein
- 15.0.0 - 15.0.0
- golang >= 1.26.2 - golang >= 1.26.2
+1
View File
@@ -0,0 +1 @@
u forgejo - "Forgejo Git Service" /var/lib/forgejo /sbin/nologin