%undefine _debugsource_packages %global _default_patch_fuzz 2 %global gitea_user git %global gitea_home /srv/%{name} Name: gitea Version: 1.20.5 Release: 2 Summary: Git with a cup of tea, painless self-hosted git service License: MIT Group: Development/Other URL: https://gitea.io/ Source: https://github.com/go-gitea/gitea/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz Source99: gitea-app.ini.tmpl Requires: git-core Suggests: mariadb-server Suggests: postgresql-server Suggests: memcached Suggests: redis BuildRequires: git-core BuildRequires: golang make BuildRequires: pam-devel BuildRequires: pkgconfig(sqlite3) BuildRequires: npm BuildRequires: systemd-rpm-macros %description The goal of this project is to make the easiest, fastest, and most painless way of setting up a self-hosted Git service. It is similar to GitHub, Bitbucket, and Gitlab. Gitea is a fork of Gogs. %prep %autosetup -p1 %build export GOPATH="`pwd`/.godeps" export LDFLAGS='-X "main.MakeVersion=GNU Make 4.3" -X "main.Version=%{version}" -X "main.Tags=bindata sqlite sqlite_unlock_notify pam"' TAGS="bindata sqlite sqlite_unlock_notify pam" make VERSION=%{version} generate all %install install -d %{buildroot}%{_localstatedir}/log/%{name} install -d %{buildroot}%{_unitdir} install -d %{buildroot}%{_sysconfdir}/default install -d %{buildroot}%{_sysconfdir}/%{name} install -d %{buildroot}%{_unitdir} install -Dm 0755 %{name} %{buildroot}%{_bindir}/%{name} install -Dm 0644 "custom/conf/app.example.ini" %{buildroot}%{_docdir}/%{name}/default-app.ini sed < %{SOURCE99} > %{buildroot}%{_sysconfdir}/%{name}/app.ini \ -e 's!_GITEA_USER_!%{gitea_user}!g' \ -e 's!_GITEA_HOME_!%{gitea_home}!g' cat > %{buildroot}%{_unitdir}/%{name}.service << EOF [Unit] Description=Gitea (Git with a cup of tea) After=network.target After=mariadb.service After=postgresql.service After=memcached.service After=redis.service [Service] LimitMEMLOCK=infinity LimitNOFILE=65535 RestartSec=2s Type=simple User=%{gitea_user} Group=%{gitea_user} WorkingDirectory=%{gitea_home} ExecStart=gitea web -c /etc/%{name}/app.ini Restart=always EnvironmentFile=-/etc/default/%{name} PrivateTmp=true PrivateDevices=true ProtectSystem=true ProtectHome=true [Install] WantedBy=multi-user.target EOF cat > %{buildroot}%{_sysconfdir}/default/%{name} << EOF USER=%{gitea_user} HOME=%{gitea_home} GITEA_WORK_DIR=%{gitea_home} EOF %clean chmod -R a+wrx .godeps rm -rf .godeps %pre getent passwd %{gitea_user} >/dev/null || useradd -r %{gitea_user} -d %{gitea_home} -m || : %postun userdel %{gitea_user} %files %{_bindir}/%{name} %dir %attr(0700,%{gitea_user},%{gitea_user}) %{_localstatedir}/log/%{name} %dir %{_sysconfdir}/%{name} %config(noreplace) %attr(0640,root,%{gitea_user}) %{_sysconfdir}/%{name}/app.ini %config(noreplace) %attr(0640,root,%{gitea_user}) %{_sysconfdir}/default/%{name} %{_unitdir}/%{name}.service %{_docdir}/%{name}/default-app.ini %doc *.md %changelog * Tue Feb 20 2024 Fritz Elfert - Initial packaging