diff --git a/SPECS/mattermost-server.spec b/SPECS/mattermost-server.spec new file mode 100644 index 0000000..aac2d09 --- /dev/null +++ b/SPECS/mattermost-server.spec @@ -0,0 +1,93 @@ +%global _hardened_build 1 +%define mattermost_user mattermost +%define mattermost_group mattermost +%define mattermost_home /var/lib/mattermost +%define mattermost_logdir /var/log/mattermost +#%define debug_package %{nil} + +Name : mattermost +Version : 5.8.0 +Release : 1%{dist} +License : MIT +URL : https://mattermost.io +Summary : Open source Slack-alternative in Golang and React +Source0 : mattermost.service +Source1 : mattermost.logrotate +BuildRequires: golang +BuildRequires: git +Requires : git + + +%description +Mattermost is a flexible, open source messaging platform +that meets even the most demanding privacy and security standards. + + +%prep +%setup -T -q -c %{name}-%{version} +export GOPATH=`pwd` +mkdir -p src/github.com/mattermost/ +cd src/github.com/mattermost/ +git clone https://github.com/mattermost/mattermost-server/ + + +%build +export GOPATH=`pwd` +cd src/github.com/mattermost/mattermost-server/ +git checkout tags/v%{version} +go get -d ./... +sed 's/amd64/%{_arch}/g' -i build/release.mk +make build-linux + + +%install +install -p -D -m 0644 bin/mattermost %{buildroot}%{_bindir}/mattermost +install -p -D -m 0644 bin/platform %{buildroot}%{_bindir}/mattermost-platform +install -p -D -m 0644 bin/interface_generator %{buildroot}%{_bindir}/mattermost-interface_generator +install -p -D -m 0644 %{SOURCE0} %{buildroot}%{_unitdir}/mattermost.service +mkdir -p %{buildroot}%{_sysconfdir}/%{name} +cp -r src/github.com/mattermost/mattermost-server/config/* %{buildroot}%{_sysconfdir}/%{name}/ +cp %{buildroot}%{_sysconfdir}/%{name}/default.json %{buildroot}%{_sysconfdir}/%{name}/config.json +mkdir -p %{buildroot}%{_datadir}/%{name}/ +cp -r src/github.com/mattermost/mattermost-server/templates/ %{buildroot}%{_datadir}/%{name}/ +cp -r src/github.com/mattermost/mattermost-server/fonts/ %{buildroot}%{_datadir}/%{name}/ +cp -r src/github.com/mattermost/mattermost-server/i18n/ %{buildroot}%{_datadir}/%{name}/ +install -p -D -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/mattermost +install -p -d -m 0700 %{buildroot}%{mattermost_home} +install -p -d -m 0700 %{buildroot}%{mattermost_logdir} + + +%pre +getent group %{mattermost_group} > /dev/null || groupadd -r %{mattermost_group} +getent passwd %{mattermost_user} > /dev/null || \ + useradd -r -d %{mattermost_home} -g %{mattermost_group} \ + -s /bin/bash -c "Mattermost user" %{mattermost_user} +exit 0 + + +%post +%systemd_post mattermost.service + + +%preun +%systemd_preun mattermost.service + + +%postun +%systemd_postun mattermost.service + + +%files +%attr(775,%{mattermost_user},%{mattermost_group}) %{_sysconfdir}/%{name}/ +%config(noreplace) %{_sysconfdir}/%{name}/config.json +%config(noreplace) %{_sysconfdir}/logrotate.d/%{name} +%{_bindir}/%{name} +%{_bindir}/%{name}-platform +%{_bindir}/%{name}-interface_generator +%{_datadir}/%{name}/templates/ +%{_datadir}/%{name}/fonts/ +%{_datadir}/%{name}/i18n/ +%{_unitdir}/mattermost.service + + +%changelog