From 3cf294fda7928480daf60c313018844ab339d35b Mon Sep 17 00:00:00 2001 From: Jason Rothstein Date: Thu, 4 Jul 2019 11:27:54 -0500 Subject: [PATCH] Initial working package --- gogs.spec | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 gogs.spec diff --git a/gogs.spec b/gogs.spec new file mode 100644 index 0000000..cbb62dc --- /dev/null +++ b/gogs.spec @@ -0,0 +1,132 @@ +ExclusiveArch: %{go_arches} + +Name: gogs +Version: 0.11.86 +Release: 1%{?dist} +Summary: Go GIT Server + +License: MIT +URL: https://gogs.io/ +Source0: https://github.com/gogs/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz + +BuildRequires: golang +BuildRequires: pam-devel +Requires(pre): /usr/bin/getent +Requires(pre): /usr/sbin/useradd + +%description + + +%prep +%setup -q -c +%{__mkdir_p} src/github.com/gogs +mv %{name}-%{version} src/github.com/gogs/gogs + +%build +export GOPATH=%{gopath}:$(pwd) + +cd src/github.com/gogs/gogs + +case ${RPM_ARCH} in + i386) + GOARCH=386 + ;; + x86_64) + GOARCH=amd64 + ;; + *) + echo UNKNOWN ${RPM_ARCH} + exit 1 + ;; +esac + +case ${RPM_OS} in + linux) + GOOS=linux + ;; + *) + echo UNKNOWN ${RPM_OS} + exit 1 + ;; +esac + +export GOARCH +export GOOS + + +# +# It is best practice to always use external packages, rather than bundled +# content. As not all of these packages are yet available in Fedora, we will +# save this for a future date. +# +# rm -fr vendor +# + +# +# Using -a to force everything to compile +# +# Using -v to display what is happening +# +go build -a -v -tags 'cert pam sqlite' +sed -i \ + -e '/^#/d' \ + -e 's|^DISABLE_SSH\s.*$|DISABLE_SSH = true|g' \ + -e 's|^HTTP_ADDR\s.*$|HTTP_ADDR = localhost|g' \ + -e 's|^ROOT\s=.*$|ROOT = /var/lib/gogs/repositories|g' \ + -e 's|^ROOT_PATH\s=.*$|ROOT_PATH = /var/log/gogs|g' \ + -e 's|^RUN_MODE\s=.*$|RUN_MODE = prod|g' \ + -e 's|^RUN_USER\s=.*$|RUN_USER = gogs|g' \ + -e 's|^STATIC_ROOT_PATH\s=.*$|STATIC_ROOT_PATH = /var/lib/gogs|g' \ + -e 's|^TLS_MIN_MODE\s=.*$|TLS_MIN_MODE = TLS12|g' \ + -e 's|^USER\s=.*$|USER = gogs|g' \ + conf/app.ini +sed -i \ + -e 's|^User=.*$|User=gogs|g' \ + -e 's|^Group=.*$|Group=gogs|g' \ + -e 's|^WorkingDirectory=.*$|WorkingDirectory=/var/lib/gogs|g' \ + -e 's|^ExecStart=.*$|ExecStart=%{_bindir}/gogs web|g' \ + -e 's|^Environment=.*$|Environment=USER=gogs HOME=/var/lib/gogs GOGS_CUSTOM=/etc/gogs|g' \ + scripts/systemd/gogs.service + + +%install +rm -rf %{buildroot} +cd src/github.com/gogs/gogs +%{__install} -d %{buildroot}%{_bindir} +%{__install} -d %{buildroot}%{_sysconfdir}/gogs +%{__install} -d %{buildroot}/usr/lib/systemd/system +%{__install} -d %{buildroot}/var/lib/gogs +%{__install} -d %{buildroot}/var/log/gogs +%{__install} -p -m 0755 %{name} %{buildroot}%{_bindir}/%{name} +%{__cp} -rp conf %{buildroot}%{_sysconfdir}/gogs/ +%{__install} -p -m 0755 scripts/systemd/gogs.service %{buildroot}/usr/lib/systemd/system/gogs.service +%{__cp} -rp templates %{buildroot}/var/lib/gogs/ +%{__cp} -rp public %{buildroot}/var/lib/gogs/ + + +%pre +getent passwd gogs > /dev/null 2>&1 || useradd -r -d /var/lib/gogs -s /sbin/nologin gogs + + +%files +%license src/github.com/gogs/gogs/LICENSE +%doc src/github.com/gogs/gogs/README.md +%doc src/github.com/gogs/gogs/README_ZH.md +%doc src/github.com/gogs/gogs/scripts/mysql.sql +%attr(0770, gogs, gogs) %dir /var/lib/gogs +%attr(0770, gogs, gogs) %dir /var/log/gogs +%{_bindir}/%{name} +/usr/lib/systemd/system/gogs.service +%attr(-, gogs, gogs) %config(noreplace) %{_sysconfdir}/gogs +%attr(-, gogs, gogs) %config(noreplace) /var/lib/gogs/templates +%attr(-, gogs, gogs) %config(noreplace) /var/lib/gogs/public + + +%changelog +* Mon Feb 18 2019 Jason Rothstein +- Version bump +- make config files noreplace + +* Fri Dec 28 2018 Jason Rothstein +- initial version +